월마다 최대 국력, 최대 병력, 최대 도시 수를 계산하는 코드 추가. ng_old_nations에도 반영
This commit is contained in:
+4
-1
@@ -224,7 +224,10 @@ if($serverID){
|
|||||||
else{
|
else{
|
||||||
$nation['generalsFull'] = [];
|
$nation['generalsFull'] = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(key_exists('aux', $nation)){
|
||||||
|
$nation += $nation['aux'];
|
||||||
|
}
|
||||||
|
|
||||||
echo $templates->render('oldNation', $nation);
|
echo $templates->render('oldNation', $nation);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2455,6 +2455,7 @@ function deleteNation($general) {
|
|||||||
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $general['nation']);
|
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $general['nation']);
|
||||||
$oldNationGenerals = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $general['nation']);
|
$oldNationGenerals = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $general['nation']);
|
||||||
$oldNation['generals'] = $oldNationGenerals;
|
$oldNation['generals'] = $oldNationGenerals;
|
||||||
|
$oldNation['aux'] = Json::decode($oldNation['aux']);
|
||||||
|
|
||||||
// 전 장수 재야로 // 전 장수 소속 무소속으로
|
// 전 장수 재야로 // 전 장수 소속 무소속으로
|
||||||
$query = "update general set belong=0,troop=0,level=0,nation=0,makelimit=12 where nation='{$general['nation']}'";
|
$query = "update general set belong=0,troop=0,level=0,nation=0,makelimit=12 where nation='{$general['nation']}'";
|
||||||
|
|||||||
+51
-28
@@ -427,6 +427,15 @@ function postUpdateMonthly() {
|
|||||||
|
|
||||||
$history = [];
|
$history = [];
|
||||||
|
|
||||||
|
//도시 수 측정
|
||||||
|
$cityNations = [];
|
||||||
|
foreach($db->queryAllLists('SELECT city, name, nation FROM city') as [$cityID, $cityName, $cityNation]){
|
||||||
|
if(!key_exists($cityNation, $cityNations)){
|
||||||
|
$cityNations[$cityNation] = [];
|
||||||
|
}
|
||||||
|
$cityNations[$cityNation][] = $cityName;
|
||||||
|
}
|
||||||
|
|
||||||
//각 국가 전월 장수수 대비 당월 장수수로 단합도 산정
|
//각 국가 전월 장수수 대비 당월 장수수로 단합도 산정
|
||||||
//각 국가 장수수를 구하고 국력 산정
|
//각 국가 장수수를 구하고 국력 산정
|
||||||
// $query = "select nation,gennum from nation where level>0";
|
// $query = "select nation,gennum from nation where level>0";
|
||||||
@@ -438,34 +447,33 @@ function postUpdateMonthly() {
|
|||||||
// 접속률
|
// 접속률
|
||||||
// 숙련도
|
// 숙련도
|
||||||
// 명성,공헌
|
// 명성,공헌
|
||||||
$query = "
|
$nations = $db->query('SELECT
|
||||||
select
|
A.nation,
|
||||||
A.nation,
|
A.gennum, A.gennum2, A.chemi, A.aux,
|
||||||
A.gennum, A.gennum2, A.chemi,
|
round((
|
||||||
round((
|
round(((A.gold+A.rice)+(select sum(gold+rice) from general where nation=A.nation))/100)
|
||||||
round(((A.gold+A.rice)+(select sum(gold+rice) from general where nation=A.nation))/100)
|
+A.tech
|
||||||
+A.tech
|
+if(A.level=0,0,(
|
||||||
+if(A.level=0,0,(
|
select round(
|
||||||
select round(
|
sum(pop)*sum(pop+agri+comm+secu+wall+def)/sum(pop2+agri2+comm2+secu2+wall2+def2)/100
|
||||||
sum(pop)*sum(pop+agri+comm+secu+wall+def)/sum(pop2+agri2+comm2+secu2+wall2+def2)/100
|
) from city where nation=A.nation and supply=1
|
||||||
) from city where nation=A.nation and supply=1
|
))
|
||||||
))
|
+(select sum(leader+power+intel) from general where nation=A.nation)
|
||||||
+(select sum(leader+power+intel) from general where nation=A.nation)
|
+(select round(sum(dex0+dex10+dex20+dex30+dex40)/1000) from general where nation=A.nation)
|
||||||
+(select round(sum(dex0+dex10+dex20+dex30+dex40)/1000) from general where nation=A.nation)
|
+(select round(sum(experience+dedication)/100) from general where nation=A.nation)
|
||||||
+(select round(sum(experience+dedication)/100) from general where nation=A.nation)
|
+(select round(avg(connect)) from general where nation=A.nation)
|
||||||
+(select round(avg(connect)) from general where nation=A.nation)
|
)/10)
|
||||||
)/10)
|
as power,
|
||||||
as power
|
(select sum(crew) from general where nation=A.nation) as totalCrew
|
||||||
from nation A
|
from nation A
|
||||||
group by A.nation
|
group by A.nation');
|
||||||
";
|
foreach($nations as $nation) {
|
||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
|
||||||
$nationCount = MYDB_num_rows($result);
|
|
||||||
$genNum = [];
|
|
||||||
for($i=0; $i < $nationCount; $i++) {
|
|
||||||
$nation = MYDB_fetch_array($result);
|
|
||||||
$genNum[$nation['nation']] = $nation['gennum'];
|
$genNum[$nation['nation']] = $nation['gennum'];
|
||||||
|
|
||||||
|
$aux = Json::decode($nation['aux']);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if($nation['gennum'] > $nation['gennum2']) {
|
if($nation['gennum'] > $nation['gennum2']) {
|
||||||
// 장수가 증가했을때
|
// 장수가 증가했을때
|
||||||
$nation['chemi'] -= ceil(($nation['gennum'] - $nation['gennum2']) / $nation['gennum'] * 100);
|
$nation['chemi'] -= ceil(($nation['gennum'] - $nation['gennum2']) / $nation['gennum'] * 100);
|
||||||
@@ -479,9 +487,21 @@ group by A.nation
|
|||||||
if($nation['chemi'] > 100) { $nation['chemi'] = 100; }
|
if($nation['chemi'] > 100) { $nation['chemi'] = 100; }
|
||||||
|
|
||||||
//약간의 랜덤치 부여 (95% ~ 105%)
|
//약간의 랜덤치 부여 (95% ~ 105%)
|
||||||
|
|
||||||
$nation['power'] = Util::round($nation['power'] * (rand()%101 + 950) / 1000);
|
$nation['power'] = Util::round($nation['power'] * (rand()%101 + 950) / 1000);
|
||||||
$query = "update nation set power='{$nation['power']}',gennum2='{$nation['gennum']}',chemi='{$nation['chemi']}' where nation='{$nation['nation']}'";
|
$aux['maxPower'] = max($aux['maxPower']??0, $nation['power']);
|
||||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$aux['maxCrew'] = max($aux['maxCrew']??0, Util::toInt($nation['totalCrew']));
|
||||||
|
|
||||||
|
if(count($cityNations[$nation['nation']]??[]) > count($aux['maxCities']??[])){
|
||||||
|
$aux['maxCities'] = $cityNations[$nation['nation']];
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->update('nation', [
|
||||||
|
'power'=>$nation['power'],
|
||||||
|
'gennum2'=>$nation['gennum'],
|
||||||
|
'chemi'=>$nation['chemi'],
|
||||||
|
'aux'=>Json::encode($aux)
|
||||||
|
], 'nation=%i', $nation['nation']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 전쟁기한 세팅
|
// 전쟁기한 세팅
|
||||||
@@ -690,6 +710,7 @@ function checkMerge() {
|
|||||||
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $me['nation']);
|
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $me['nation']);
|
||||||
$oldNationGenerals = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $me['nation']);
|
$oldNationGenerals = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $me['nation']);
|
||||||
$oldNation['generals'] = $oldNationGenerals;
|
$oldNation['generals'] = $oldNationGenerals;
|
||||||
|
$oldNation['aux'] = Json::decode($oldNation['aux']);
|
||||||
|
|
||||||
// 자금 통합, 외교제한 5년, 기술유지
|
// 자금 통합, 외교제한 5년, 기술유지
|
||||||
$query = "update nation set name='{$you['makenation']}',gold=gold+'{$mynation['gold']}',rice=rice+'{$mynation['rice']}',surlimit='24',totaltech='$newTotalTech',tech='$newTech',gennum='{$newGenCount}' where nation='{$younation['nation']}'";
|
$query = "update nation set name='{$you['makenation']}',gold=gold+'{$mynation['gold']}',rice=rice+'{$mynation['rice']}',surlimit='24',totaltech='$newTotalTech',tech='$newTech',gennum='{$newGenCount}' where nation='{$younation['nation']}'";
|
||||||
@@ -820,6 +841,7 @@ function checkSurrender() {
|
|||||||
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $me['nation']);
|
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $me['nation']);
|
||||||
$oldNationGenerals = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $me['nation']);
|
$oldNationGenerals = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $me['nation']);
|
||||||
$oldNation['generals'] = $oldNationGenerals;
|
$oldNation['generals'] = $oldNationGenerals;
|
||||||
|
$oldNation['aux'] = Json::decode($oldNation['aux']);
|
||||||
|
|
||||||
$newGenCount = $gencount + $gencount2;
|
$newGenCount = $gencount + $gencount2;
|
||||||
if($newGenCount < GameConst::$initialNationGenLimit) { $newGenCount = GameConst::$initialNationGenLimit; }
|
if($newGenCount < GameConst::$initialNationGenLimit) { $newGenCount = GameConst::$initialNationGenLimit; }
|
||||||
@@ -1332,6 +1354,7 @@ function checkEmperior() {
|
|||||||
|
|
||||||
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $nation['nation']);
|
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $nation['nation']);
|
||||||
$oldNation['generals'] = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $nation['nation']);
|
$oldNation['generals'] = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $nation['nation']);
|
||||||
|
$oldNation['aux'] = Json::decode($oldNation['aux']);
|
||||||
|
|
||||||
storeOldGenerals(0, $admin['year'], $admin['month']);
|
storeOldGenerals(0, $admin['year'], $admin['month']);
|
||||||
storeOldGenerals($nation['nation'], $admin['year'], $admin['month']);
|
storeOldGenerals($nation['nation'], $admin['year'], $admin['month']);
|
||||||
|
|||||||
@@ -1816,6 +1816,7 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
|
|||||||
//다른 코드와는 다르게 공용으로 쓰므로 남겨둠
|
//다른 코드와는 다르게 공용으로 쓰므로 남겨둠
|
||||||
return $gen['no'];
|
return $gen['no'];
|
||||||
}, $oldNationGenerals);
|
}, $oldNationGenerals);
|
||||||
|
$oldNation['aux'] = Json::decode($oldNation['aux']);
|
||||||
|
|
||||||
foreach($oldNationGenerals as $gen){
|
foreach($oldNationGenerals as $gen){
|
||||||
|
|
||||||
|
|||||||
@@ -32,15 +32,15 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="bg1">최대 영토 수</td>
|
<td class="bg1">최대 영토 수</td>
|
||||||
<td><?=count($cities??[])?></td>
|
<td><?=count($maxCities??[])?></td>
|
||||||
<td class="bg1">최대 병력 수</td>
|
<td class="bg1">최대 병력 수</td>
|
||||||
<td><?=$maxArmy??0?>명</td>
|
<td><?=$maxCrew??0?>명</td>
|
||||||
<td class="bg1">최대 국력</td>
|
<td class="bg1">최대 국력</td>
|
||||||
<td><?=$maxPower??0?></td>
|
<td><?=$maxPower??0?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign=top class="bg1"> 최대영토</td>
|
<td valign=top class="bg1"> 최대영토</td>
|
||||||
<td colspan=5><?=join(', ',$cities??[])?></td>
|
<td colspan=5><?=join(', ',$maxCities??[])?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign=top class="bg1"> 장수명단</td>
|
<td valign=top class="bg1"> 장수명단</td>
|
||||||
|
|||||||
Reference in New Issue
Block a user