gen123 => officer432

This commit is contained in:
2019-10-05 02:45:20 +09:00
parent cd25aaaca6
commit 1e7e01b6b0
27 changed files with 299 additions and 486 deletions
+17 -6
View File
@@ -180,9 +180,20 @@ $city = $db->queryFirstRow('SELECT * FROM city WHERE city=%i', $citylist);
$cityNation = getNationStaticInfo($city['nation']);
//태수, 군사, 종사
$gen1 = $db->queryFirstRow('SELECT `name`, npc FROM general WHERE `no`=%i', $city['gen1']);
$gen2 = $db->queryFirstRow('SELECT `name`, npc FROM general WHERE `no`=%i', $city['gen2']);
$gen3 = $db->queryFirstRow('SELECT `name`, npc FROM general WHERE `no`=%i', $city['gen3']);
$officer = [
4=>['name'=>'-', 'npc'=>0],
3=>['name'=>'-', 'npc'=>0],
2=>['name'=>'-', 'npc'=>0]
];
$officerQuery = [];
if($city['officer4']){ $officerQuery[] = $city['officer4']; }
if($city['officer3']){ $officerQuery[] = $city['officer3']; }
if($city['officer2']){ $officerQuery[] = $city['officer2']; }
if($officerQuery){
foreach($db->query('SELECT `name`, npc, `level` FROM general WHERE `no` IN %li', $city['officer4']) as $officerInfo){
$officer[$officerInfo['level']] = $officerInfo;
}
}
if($city['trade'] === null) {
$city['trade'] = "- ";
@@ -433,11 +444,11 @@ foreach($generalsFormat as $general){
<td align=center class=bg1>인구</td>
<td align=center><?=round($city['pop']/$city['pop2']*100, 2)?>%</td>
<td align=center class=bg1>태수</td>
<td align=center><?=$gen1['name']??'-'?></td>
<td align=center><?=$officer[4]['name']?></td>
<td align=center class=bg1>군사</td>
<td align=center><?=$gen2['name']??'-'?></td>
<td align=center><?=$officer[3]['name']?></td>
<td align=center class=bg1>종사</td>
<td align=center><?=$gen3['name']??'-'?></td>
<td align=center><?=$officer[2]['name']?></td>
</tr>
<tr>
<td align=center class=bg1>도시명</td>
+19 -19
View File
@@ -364,7 +364,7 @@ if($meLevel >= 5) {
<select name=citylist size=1 style=color:white;background-color:black;>
";
$query = "select city,name,region from city where nation='{$nation['nation']}' and gen1set=0 order by region,level desc,binary(name)"; // 도시 이름 목록
$query = "select city,name,region from city where nation='{$nation['nation']}' and officer4set=0 order by region,level desc,binary(name)"; // 도시 이름 목록
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$citycount = MYDB_num_rows($result);
@@ -418,7 +418,7 @@ if($meLevel >= 5) {
<select name=citylist size=1 style=color:white;background-color:black;>
";
$query = "select city,name,region from city where nation='{$nation['nation']}' and gen2set=0 order by region,level desc,binary(name)"; // 도시 이름 목록
$query = "select city,name,region from city where nation='{$nation['nation']}' and officer3set=0 order by region,level desc,binary(name)"; // 도시 이름 목록
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$citycount = MYDB_num_rows($result);
@@ -472,7 +472,7 @@ if($meLevel >= 5) {
<select name=citylist size=1 style=color:white;background-color:black;>
";
$query = "select city,name,region from city where nation='{$nation['nation']}' and gen3set=0 order by region, level desc,binary(name)"; // 도시 이름 목록
$query = "select city,name,region from city where nation='{$nation['nation']}' and officer2set=0 order by region, level desc,binary(name)"; // 도시 이름 목록
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$citycount = MYDB_num_rows($result);
@@ -533,7 +533,7 @@ echo "
$citylevel = getCityLevelList();
$query = "select city,name,gen1,gen2,gen3,level,region,gen1set,gen2set,gen3set from city where nation='{$nation['nation']}' order by region,level desc,binary(name)"; // 도시 이름 목록
$query = "select city,name,officer4,officer3,officer2,level,region,officer4set,officer3set,officer2set from city where nation='{$nation['nation']}' order by region,level desc,binary(name)"; // 도시 이름 목록
$cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$citycount = MYDB_num_rows($cityresult);
@@ -541,15 +541,15 @@ $region = 0;
for($j=0; $j < $citycount; $j++) {
$city = MYDB_fetch_array($cityresult);
$query = "select name,belong,city from general where no='{$city['gen1']}'";
$query = "select name,belong,city from general where no='{$city['officer4']}'";
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gen1 = MYDB_fetch_array($genresult);
$query = "select name,belong,city from general where no='{$city['gen2']}'";
$officer4 = MYDB_fetch_array($genresult);
$query = "select name,belong,city from general where no='{$city['officer3']}'";
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gen2 = MYDB_fetch_array($genresult);
$query = "select name,belong,city from general where no='{$city['gen3']}'";
$officer3 = MYDB_fetch_array($genresult);
$query = "select name,belong,city from general where no='{$city['officer2']}'";
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gen3 = MYDB_fetch_array($genresult);
$officer2 = MYDB_fetch_array($genresult);
if($region != $city['region']) {
echo "
@@ -558,19 +558,19 @@ for($j=0; $j < $citycount; $j++) {
$region = $city['region'];
}
$gen1['name'] = $gen1['name']==""?"-":$gen1['name']." ({$gen1['belong']}년) 【".CityConst::byID($gen1['city'])->name."】";
$gen2['name'] = $gen2['name']==""?"-":$gen2['name']." ({$gen2['belong']}년) 【".CityConst::byID($gen2['city'])->name."】";
$gen3['name'] = $gen3['name']==""?"-":$gen3['name']." ({$gen3['belong']}년) 【".CityConst::byID($gen3['city'])->name."】";
if($city['gen1set'] == 1) { $gen1['name'] = "<font color=orange>".$gen1['name']."</font>"; }
if($city['gen2set'] == 1) { $gen2['name'] = "<font color=orange>".$gen2['name']."</font>"; }
if($city['gen3set'] == 1) { $gen3['name'] = "<font color=orange>".$gen3['name']."</font>"; }
$officer4['name'] = $officer4['name']==""?"-":$officer4['name']." ({$officer4['belong']}년) 【".CityConst::byID($officer4['city'])->name."】";
$officer3['name'] = $officer3['name']==""?"-":$officer3['name']." ({$officer3['belong']}년) 【".CityConst::byID($officer3['city'])->name."】";
$officer2['name'] = $officer2['name']==""?"-":$officer2['name']." ({$officer2['belong']}년) 【".CityConst::byID($officer2['city'])->name."】";
if($city['officer4set'] == 1) { $officer4['name'] = "<font color=orange>".$officer4['name']."</font>"; }
if($city['officer3set'] == 1) { $officer3['name'] = "<font color=orange>".$officer3['name']."</font>"; }
if($city['officer2set'] == 1) { $officer2['name'] = "<font color=orange>".$officer2['name']."</font>"; }
echo "
<tr>
<td width=78 align=center style=color:".newColor($nation['color'])."; bgcolor={$nation['color']}><font size=3>【{$citylevel[$city['level']]}】</font></td>
<td width=78 align=right style=color:".newColor($nation['color'])."; bgcolor={$nation['color']}><font size=3>{$city['name']}&nbsp;&nbsp;</font></td>
<td align=center>{$gen1['name']}</td>
<td align=center>{$gen2['name']}</td>
<td align=center>{$gen3['name']}</td>
<td align=center>{$officer4['name']}</td>
<td align=center>{$officer3['name']}</td>
<td align=center>{$officer2['name']}</td>
</tr>
";
}
+23 -15
View File
@@ -72,9 +72,6 @@ $sel = [$type => "selected"];
</td></tr>
</table>
<?php
$query = "select nation from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
$nation = getNationStaticInfo($me['nation']); //국가정보
@@ -105,17 +102,28 @@ for ($j=0; $j < $citycount; $j++) {
if ($city['city'] == $nation['capital']) {
$city['name'] = "<font color=cyan>[{$city['name']}]</font>";
}
$query = "select name from general where no='{$city['gen1']}'"; // 태수
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gen1 = MYDB_fetch_array($genresult);
$query = "select name from general where no='{$city['gen2']}'"; // 군사
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gen2 = MYDB_fetch_array($genresult);
$officerQuery = [];
$officerName = [
2=>'-',
3=>'-',
4=>'-'
];
if ($city['officer4'] > 0) {
$officerQuery[] = $city['officer4'];
}
if ($city['officer3'] > 0) {
$officerQuery[] = $city['officer3'];
}
if ($city['officer2'] > 0) {
$officerQuery[] = $city['officer2'];
}
$query = "select name from general where no='{$city['gen3']}'"; // 종사
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gen3 = MYDB_fetch_array($genresult);
if($officerQuery){
foreach($db->query('SELECT `level`, `name` FROM general WHERE `no` IN %li', $officerQuery) as $genOfficer){
$officerName[$genOfficer['level']] = $genOfficer['name'];
}
}
if ($type == 10 && $city['region'] != $region) {
echo "<br>";
@@ -157,15 +165,15 @@ for ($j=0; $j < $citycount; $j++) {
<td align=center>".round($city['pop']/$city['pop2']*100, 2)." %</td>
<td align=center id=bg1>태수</td>
<td align=center>";
echo $gen1['name']==''?"-":"{$gen1['name']}";
echo $officerName[4];
echo "</td>
<td align=center id=bg1>군사</td>
<td align=center>";
echo $gen2['name']==''?"-":"{$gen2['name']}";
echo $officerName[3];
echo "</td>
<td align=center id=bg1>종사</td>
<td align=center>";
echo $gen3['name']==''?"-":"{$gen3['name']}";
echo $officerName[2];
echo "</td>
</tr>
<tr>
+2 -2
View File
@@ -107,8 +107,8 @@ $me->applyDB($db);
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td width=50%>
<?php myInfo($me); ?>
<?php myInfo2(); ?>
<?php generalInfo($me); ?>
<?php generalInfo2($me); ?>
</td>
<td width=50% valign=top style="padding-left:4ch;">
<form name=form1 action=b_myPage.php method=post>
+17 -26
View File
@@ -179,12 +179,11 @@ if($btn == "추방") {
}
// 도시관직해제
$query = "update city set gen1='0' where gen1='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update city set gen2='0' where gen2='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update city set gen3='0' where gen3='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
if(2 <= $general['level'] && $general['level'] <= 4){
$db->update('city', [
'officer'.$general['level']=>0
], "officer{$general['level']} = %i", $general['no']);
}
if($general['npc'] >= 2 && ($admin['scenario'] < 100 || rand()%100 == 0)) {
switch(rand()%5) {
@@ -272,12 +271,11 @@ if($btn == "임명" && $level >= 5 && $level <= 11) {
}
if($valid == 1) {
// 신임 장수의 원래 자리 해제
$query = "update city set gen1=0 where gen1='$genlist'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update city set gen2=0 where gen2='$genlist'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update city set gen3=0 where gen3='$genlist'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
if(2 <= $general['level'] && $general['level'] <= 4){
$db->update('city', [
'officer'.$general['level']=>0
], "officer{$general['level']} = %i", $general['no']);
}
//신임 장수
$query = "update general set level='$level' where no='$genlist'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -293,11 +291,8 @@ if($btn == "임명" && $level >= 5 && $level <= 11) {
if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) {
switch($level) {
case 4: $genlv = 'gen1'; $genlvset = 'gen1set'; break;
case 3: $genlv = 'gen2'; $genlvset = 'gen2set'; break;
case 2: $genlv = 'gen3'; $genlvset = 'gen3set'; break;
}
$genlv = 'officer'.$level;
$genlvset = 'officer'.$level.'set';
$query = "select {$genlv} from city where nation='{$me['nation']}' and city='$citylist'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -328,15 +323,11 @@ if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) {
if($valid == 1) {
// 신임 장수의 원래 자리 해제
$db->update('city', [
'gen1'=>0,
], 'gen1=%i', $genlist);
$db->update('city', [
'gen2'=>0,
], 'gen2=%i', $genlist);
$db->update('city', [
'gen3'=>0,
], 'gen3=%i', $genlist);
if(2 <= $general['level'] && $general['level'] <= 4){
$db->update('city', [
'officer'.$general['level']=>0
], "officer{$general['level']} = %i", $general['no']);
}
//신임 장수
$db->update('city', [
+62 -279
View File
@@ -123,121 +123,50 @@ function getRandGenName() {
function cityInfo() {
function cityInfo(General $generalObj) {
$db = DB::db();
$connect=$db->get();
$userID = Session::getUserID();
$query = "select no,city from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
// 도시 정보
$city = getCity($me['city']);
$city = $generalObj->getRawCity();
$nation = getNationStaticInfo($city['nation']);
$pop = $city['pop'] / $city['pop2'] * 100;
$trust = $city['trust'];
$agri = $city['agri'] / $city['agri2'] * 100;
$comm = $city['comm'] / $city['comm2'] * 100;
$secu = $city['secu'] / $city['secu2'] * 100;
$def = $city['def'] / $city['def2'] * 100;
$wall = $city['wall'] / $city['wall2'] * 100;
if($city['trade'] === null) {
$trade = 0;
$tradeStr = "상인없음";
} else {
$trade = ($city['trade']-95) * 10;
$tradeStr = $city['trade'] . "%";
}
if(!$nation){
$nation = getNationStaticInfo(0);
}
if($nation['color'] == "" ) { $nation['color'] = "#000000"; }
echo "<table style='width:100%;' class='tb_layout bg2'>
<tr><td colspan=8 style=text-align:center;height:20px;color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>【 ".CityConst::$regionMap[$city['region']]." | ".CityConst::$levelMap[$city['level']]."{$city['name']}</td></tr>
<tr><td colspan=8 style=text-align:center;height:20px;color:".newColor($nation['color']).";background-color:{$nation['color']}><b>";
$city['nationName'] = $nation['name'];
$city['nationTextColor'] = newColor($nation['color']);
$city['nationColor'] = $nation['color'];
$city['region'] = CityConst::$regionMap[$city['region']];
$city['level'] = CityConst::$levelMap[$city['level']];
if($city['nation'] == 0) {
echo "공 백 지";
} else {
echo "지배 국가 【 {$nation['name']}";
$officerQuery = [];
$officerName = [
2=>'-',
3=>'-',
4=>'-'
];
if ($city['officer4'] > 0) {
$officerQuery[] = $city['officer4'];
}
if ($city['officer3'] > 0) {
$officerQuery[] = $city['officer3'];
}
if ($city['officer2'] > 0) {
$officerQuery[] = $city['officer2'];
}
if($city['gen1'] > 0) {
$query = "select name from general where no='{$city['gen1']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gen1 = MYDB_fetch_array($result);
} else {
$gen1 = ['name'=>'-'];
if($officerQuery){
foreach($db->query('SELECT `level`, `name` FROM general WHERE `no` IN %li', $officerQuery) as $genOfficer){
$officerName[$genOfficer['level']] = $genOfficer['name'];
}
}
$city['officerName'] = $officerName;
if($city['gen2'] > 0) {
$query = "select name from general where no='{$city['gen2']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gen2 = MYDB_fetch_array($result);
} else {
$gen2 = ['name'=>'-'];
}
if($city['gen3'] > 0) {
$query = "select name from general where no='{$city['gen3']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gen3 = MYDB_fetch_array($result);
} else {
$gen3 = ['name'=>'-'];
}
echo "
</b></td>
</tr>
<tr>
<td rowspan=2 style='text-align:center;' class='bg1'><b>주민</b></td>
<td height=7 colspan=3>".bar($pop)."</td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>민심</b></td>
<td height=7>".bar($trust)."</td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>태수</b></td>
<td rowspan=2 style='text-align:center;'>{$gen1['name']}</td>
</tr>
<tr>
<td colspan=3 style='text-align:center;'>{$city['pop']}/{$city['pop2']}</td>
<td style='text-align:center;'>".round($city['trust'], 1)."</td>
</tr>
<tr>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>농업</b></td>
<td width=100 height=7>".bar($agri)."</td>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>상업</b></td>
<td width=100 height=7>".bar($comm)."</td>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>치안</b></td>
<td width=100 height=7>".bar($secu)."</td>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>군사</b></td>
<td rowspan=2 style='text-align:center;'>{$gen2['name']}</td>
</tr>
<tr>
<td style='text-align:center;'>{$city['agri']}/{$city['agri2']}</td>
<td style='text-align:center;'>{$city['comm']}/{$city['comm2']}</td>
<td style='text-align:center;'>{$city['secu']}/{$city['secu2']}</td>
</tr>
<tr>
<td rowspan=2 style='text-align:center;' class='bg1'><b>수비</b></td>
<td height=7>".bar($def)."</td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>성벽</b></td>
<td height=7>".bar($wall)."</td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>시세</b></td>
<td height=7>".bar($trade)."</td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>종사</b></td>
<td rowspan=2 style='text-align:center;'>{$gen3['name']}</td>
</tr>
<tr>
<td style='text-align:center;'>{$city['def']}/{$city['def2']}</td>
<td style='text-align:center;'>{$city['wall']}/{$city['wall2']}</td>
<td style='text-align:center;'>{$tradeStr}</td>
</tr>
</table>
";
$templates = new \League\Plates\Engine('templates');
$templates->registerFunction('bar', '\sammo\bar');
return $templates->render('mainCityInfo', $city);
}
function myNationInfo() {
@@ -610,10 +539,6 @@ function chiefCommandTable() {
";
}
function myInfo(General $generalObj) {
generalInfo($generalObj);
}
function generalInfo(General $generalObj) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
@@ -651,11 +576,7 @@ function generalInfo(General $generalObj) {
$levelText = getLevelText($generalLevel, $nation['level']);
if(2 <= $generalLevel && $generalLevel <= 4){
$cityOfficerKey = [
2=>'gen3',
3=>'gen2',
4=>'gen1'
][$generalLevel];
$cityOfficerKey = 'officer'.$generalLevel;
$cityOfficerName = $db->queryFirstField('SELECT name FROM city where %b = %i',$cityOfficerKey, $generalObj->getID());
$levelText = "{$cityOfficerName} {$levelText}";
}
@@ -805,42 +726,32 @@ function generalInfo(General $generalObj) {
</table>";
}
function myInfo2() {
$db = DB::db();
$connect=$db->get();
$userID = Session::getUserID();
$query = "select no from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
generalInfo2($me['no']);
}
function generalInfo2($no) {
$db = DB::db();
$connect=$db->get();
$query = "select personal,experience,dedication,firenum,warnum,killnum,deathnum,killcrew,deathcrew,belong,killnum*100/warnum as winrate,killcrew/deathcrew*100 as killrate,dex0,dex10,dex20,dex30,dex40 from general where no='$no'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
function generalInfo2(General $generalObj) {
$general = $generalObj->getRaw();
$general['winrate'] = round($general['winrate'], 2);
$general['killrate'] = round($general['killrate'], 2);
switch($general['personal']) {
case 0: case 1; case 6:
$experience = "<font color=cyan>".getHonor($general['experience'])." ({$general['experience']})</font>"; break;
case 4: case 5: case 7: case 10:
$experience = "<font color=magenta>".getHonor($general['experience'])." ({$general['experience']})</font>"; break;
default:
$experience = getHonor($general['experience'])." ({$general['experience']})"; break;
$experienceBonus = $generalObj->onCalcStat($generalObj, 'experience', 10000) - 10000;
if($experienceBonus > 0){
$experience = "<font color=cyan>".getHonor($general['experience'])." ({$general['experience']})</font>";
}
switch($general['personal']) {
case 10:
$dedication = "<font color=magenta>".getDed($general['dedication'])." ({$general['dedication']})</font>"; break;
default:
$dedication = getDed($general['dedication'])." ({$general['dedication']})"; break;
else if($experienceBonus < 0){
$experience = "<font color=magenta>".getHonor($general['experience'])." ({$general['experience']})</font>";
}
else{
$experience = getHonor($general['experience'])." ({$general['experience']})";
}
$dedicationBonus = $generalObj->onCalcStat($generalObj, 'dedication', 10000) - 10000;
if($dedicationBonus > 0){
$dedication = "<font color=cyan>".getHonor($general['dedication'])." ({$general['dedication']})</font>";
}
else if($dedicationBonus < 0){
$dedication = "<font color=magenta>".getHonor($general['dedication'])." ({$general['dedication']})</font>";
}
else{
$dedication = getHonor($general['dedication'])." ({$general['dedication']})";
}
$dex0 = $general['dex0'] / GameConst::$dexLimit * 100;
@@ -1741,118 +1652,6 @@ function uniqueItem($general, $log, $vote=0) {
return $log;
}
function checkAbilityEx(int $generalID, ActionLogger $actLog){
$db = DB::db();
$general = $db->queryFirstRow('SELECT leadership,leadership2,strength,strength2,intel,intel2 FROM general WHERE no = %i',$generalID);
if(!$general){
return;
}
if($general['leadership2'] < 0){
$db->update('general',[
'leadership2'=>$db->sqleval('leadership2 + %i', GameConst::$upgradeLimit),
'leadership'=>$db->sqleval('leadership - 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<R>통솔</>이 <C>1</> 떨어졌습니다!', ActionLogger::PLAIN);
return;
}
if($general['strength2'] < 0){
$db->update('general',[
'strength2'=>$db->sqleval('strength2 + %i', GameConst::$upgradeLimit),
'strength'=>$db->sqleval('strength - 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<R>무력</>이 <C>1</> 떨어졌습니다!', ActionLogger::PLAIN);
return;
}
if($general['intel2'] < 0){
$db->update('general',[
'intel2'=>$db->sqleval('intel2 + %i', GameConst::$upgradeLimit),
'intel'=>$db->sqleval('intel - 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<R>지력</>이 <C>1</> 떨어졌습니다!', ActionLogger::PLAIN);
return;
}
if($general['leadership2'] >= GameConst::$upgradeLimit){
$db->update('general',[
'leadership2'=>$db->sqleval('leadership2 - %i', GameConst::$upgradeLimit),
'leadership'=>$db->sqleval('leadership + 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<S>통솔</>이 <C>1</> 올랐습니다!', ActionLogger::PLAIN);
return;
}
if($general['strength2'] >= GameConst::$upgradeLimit){
$db->update('general',[
'strength2'=>$db->sqleval('strength2 - %i', GameConst::$upgradeLimit),
'strength'=>$db->sqleval('strength + 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<S>무력</>이 <C>1</> 올랐습니다!', ActionLogger::PLAIN);
return;
}
if($general['intel2'] >= GameConst::$upgradeLimit){
$db->update('general',[
'intel2'=>$db->sqleval('intel2 - %i', GameConst::$upgradeLimit),
'intel'=>$db->sqleval('intel + 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<S>지력</>이 <C>1</> 올랐습니다!', ActionLogger::PLAIN);
return;
}
}
function checkAbility($general, $log) {
$db = DB::db();
$connect=$db->get();
$limit = GameConst::$upgradeLimit;
$query = "select no,leadership,leadership2,strength,strength2,intel,intel2 from general where no='{$general['no']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
if($general['leadership2'] < 0) {
$query = "update general set leadership2='$limit'+leadership2,leadership=leadership-1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><R>통솔</>이 <C>1</> 떨어졌습니다!";
} elseif($general['leadership2'] >= $limit) {
$query = "update general set leadership2=leadership2-'$limit',leadership=leadership+1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><S>통솔</>이 <C>1</> 올랐습니다!";
}
if($general['strength2'] < 0) {
$query = "update general set strength2='$limit'+strength2,strength=strength-1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><R>무력</>이 <C>1</> 떨어졌습니다!";
} elseif($general['strength2'] >= $limit) {
$query = "update general set strength2=strength2-'$limit',strength=strength+1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><S>무력</>이 <C>1</> 올랐습니다!";
}
if($general['intel2'] < 0) {
$query = "update general set intel2='$limit'+intel2,intel=intel-1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><R>지력</>이 <C>1</> 떨어졌습니다!";
} elseif($general['intel2'] >= $limit) {
$query = "update general set intel2=intel2-'$limit',intel=intel+1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><S>지력</>이 <C>1</> 올랐습니다!";
}
return $log;
}
function checkDedication($general, $log) {
$db = DB::db();
$connect=$db->get();
@@ -1901,18 +1700,6 @@ function getAdmin() {
return $gameStor->getAll();
}
function getMe() {
$db = DB::db();
$connect=$db->get();
$userID = Session::getUserID();
$query = "select * from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error("접속자가 많아 접속을 중단합니다. 잠시후 갱신해주세요.<br>getMe : ".MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
return $me;
}
function getCity($city, $sel="*") {
$db = DB::db();
$connect=$db->get();
@@ -1962,9 +1749,9 @@ function deleteNation(General $general) {
$db->update('city', [
'nation'=>0,
'front'=>0,
'gen1'=>0,
'gen2'=>0,
'gen3'=>0,
'officer4'=>0,
'officer3'=>0,
'officer2'=>0,
], 'nation=%i', $nationID);
// 부대 삭제
$db->delete('troop', 'nation=%i', $nationID);
@@ -1997,7 +1784,7 @@ function nextRuler(General $general) {
//npc or npc유저인 경우 후계 찾기
if($general->getVar('npc') > 0) {
$candidate = $db->queryFirstRow(
'SELECT no,name,nation,IF(ABS(affinity-%i)>75,150-ABS(affinity-%i),ABS(affinity-%i)) as npcmatch2 from general where nation=%i and level!=12 and npc>0 order by npcmatch2,rand() LIMIT 1',
'SELECT no,name,nation,level,IF(ABS(affinity-%i)>75,150-ABS(affinity-%i),ABS(affinity-%i)) as npcmatch2 from general where nation=%i and level!=12 and npc>0 order by npcmatch2,rand() LIMIT 1',
$general->getVar('affinity'),
$general->getVar('affinity'),
$nationID
@@ -2005,13 +1792,13 @@ function nextRuler(General $general) {
}
if(!$candidate){
$candidate = $db->queryFirstRow(
'SELECT no,name,npc FROM general WHERE nation=%i and level!= 12 AND level >= 9 ORDER BY level DESC LIMIT 1',
'SELECT no,name,npc,level FROM general WHERE nation=%i and level!= 12 AND level >= 9 ORDER BY level DESC LIMIT 1',
$nationID
);
}
if(!$candidate){
$candidate = $db->queryFirstRow(
'SELECT no,name,npc FROM general WHERE nation=%i and level!= 12 ORDER BY dedication DESC LIMIT 1',
'SELECT no,name,npc,level FROM general WHERE nation=%i and level!= 12 ORDER BY dedication DESC LIMIT 1',
$nationID
);
}
@@ -2031,15 +1818,11 @@ function nextRuler(General $general) {
$db->update('general', [
'level'=>12
], 'no=%i', $nextRulerID);
$db->update('city', [
'gen1'=>0
], 'gen1=%i', $nextRulerID);
$db->update('city', [
'gen2'=>0
], 'gen2=%i', $nextRulerID);
$db->update('city', [
'gen3'=>0
], 'gen3=%i', $nextRulerID);
if(2 <= $candidate['level'] && $candidate['level'] <= 4){
$db->update('city', [
'officer'.$candidate['level']=>0
], "officer{$candidate['level']}=%i", $nextRulerID);
}
$josaYi = JosaUtil::pick($nextRulerName, '이');
+6 -6
View File
@@ -232,7 +232,7 @@ function updateQuaterly() {
$query = "update nation set capset='0',l12set='0',l11set='0',l10set='0',l9set='0',l8set='0',l7set='0',l6set='0',l5set='0'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//관직 변경 제한 해제
$query = "update city set gen1set='0',gen2set='0',gen3set='0'";
$query = "update city set officer4set='0',officer3set='0',officer2set='0'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
@@ -270,13 +270,13 @@ function preUpdateMonthly() {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
//민심30이하 공백지 처리
$query = "select city,name,gen1,gen2,gen3 from city where trust<=30 and supply='0'";
$query = "select city,name,officer4,officer3,officer2 from city where trust<=30 and supply='0'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$cityCount = MYDB_num_rows($result);
for($i=0; $i < $cityCount; $i++) {
$city = MYDB_fetch_array($result);
$query = "update general set level=1 where no='{$city['gen1']}' or no='{$city['gen2']}' or no='{$city['gen3']}'";
$query = "update general set level=1 where no='{$city['officer4']}' or no='{$city['officer3']}' or no='{$city['officer2']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$josaYi = JosaUtil::pick($city['name'], '이');
@@ -284,7 +284,7 @@ function preUpdateMonthly() {
}
pushWorldHistory($history, $admin['year'], $admin['month']);
//민심30이하 공백지 처리
$query = "update city set nation='0',gen1='0',gen2='0',gen3='0',conflict='{}',term=0,front=0 where trust<=30 and supply='0'";
$query = "update city set nation='0',officer4='0',officer3='0',officer2='0',conflict='{}',term=0,front=0 where trust<=30 and supply='0'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//접률감소
@@ -678,7 +678,7 @@ function checkMerge() {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$db->delete('nation_turn', 'nation_id=%i', $me['nation']);
// 아국 모든 도시들 상대국 소속으로
$query = "update city set nation='{$you['nation']}',gen1='0',gen2='0',gen3='0',conflict='{}' where nation='{$me['nation']}'";
$query = "update city set nation='{$you['nation']}',officer4='0',officer3='0',officer2='0',conflict='{}' where nation='{$me['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 아국 모든 장수들 일반으로 하고 상대국 소속으로, 수도로 이동
$query = "update general set belong=1,level=1,nation='{$you['nation']}' where nation='{$me['nation']}'";
@@ -839,7 +839,7 @@ function checkSurrender() {
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$king = MYDB_fetch_array($result);
// 아국 모든 도시들 상대국 소속으로
$query = "update city set nation='{$you['nation']}',gen1='0',gen2='0',gen3='0',conflict='{}' where nation='{$me['nation']}'";
$query = "update city set nation='{$you['nation']}',officer4='0',officer3='0',officer2='0',conflict='{}' where nation='{$me['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 제의국 모든 장수들 공헌도0.95, 명성0.95
$query = "update general set dedication=dedication*0.95,experience=experience*0.95 where nation='{$you['nation']}'";
+3 -3
View File
@@ -431,7 +431,7 @@ function process_65(&$general) {
$command = DecodeCommand($nation["l{$general['level']}turn0"]);
$which = $command[1];
$query = "select city,name,nation,pop,gen1,gen2,gen3 from city where city='$which'";
$query = "select city,name,nation,pop,officer4,officer3,officer2 from city where city='$which'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$destcity = MYDB_fetch_array($result);
@@ -474,11 +474,11 @@ function process_65(&$general) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//직위해제
$query = "update general set level=1 where no='{$destcity['gen1']}' or no='{$destcity['gen2']}' or no='{$destcity['gen3']}'";
$query = "update general set level=1 where no='{$destcity['officer4']}' or no='{$destcity['officer3']}' or no='{$destcity['officer2']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//성 공백지로
$query = "update city set pop=pop*0.1,trust=50,agri=agri*0.1,comm=comm*0.1,secu=secu*0.1,nation='0',front='0',gen1='0',gen2='0',gen3='0',conflict='{}' where city='{$destcity['city']}'";
$query = "update city set pop=pop*0.1,trust=50,agri=agri*0.1,comm=comm*0.1,secu=secu*0.1,nation='0',front='0',officer4='0',officer3='0',officer2='0',conflict='{}' where city='{$destcity['city']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//전장수 10% 삭감
+6 -6
View File
@@ -242,9 +242,9 @@ function getGoldIncome($nationNo, $rate, $admin_rate, $type) {
$tax1 = ($city['pop'] * $city['comm'] / $city['comm2'] * $ratio / 1000) / 3;
$tax1 *= (1 + $city['secu']/$city['secu2']/10); //치안에 따라 최대 10% 추가
//도시 관직 추가 세수
if(Util::array_get($level4[$city['gen1']]) == $city['city']) { $tax1 *= 1.05; }
if(Util::array_get($level3[$city['gen2']]) == $city['city']) { $tax1 *= 1.05; }
if(Util::array_get($level2[$city['gen3']]) == $city['city']) { $tax1 *= 1.05; }
if(Util::array_get($level4[$city['officer4']]) == $city['city']) { $tax1 *= 1.05; }
if(Util::array_get($level3[$city['officer3']]) == $city['city']) { $tax1 *= 1.05; }
if(Util::array_get($level2[$city['officer2']]) == $city['city']) { $tax1 *= 1.05; }
//수도 추가 세수 130%~105%
if($city['city'] == $nation['capital']) { $tax1 *= 1+(1/3/$nation['level']); };
@@ -484,9 +484,9 @@ function getRiceIncome($nationNo, $rate, $admin_rate, $type) {
$tax1 *= (1 + $city['secu']/$city['secu2']/10); //치안에 따라 최대 10% 추가
$tax2 *= (1 + $city['secu']/$city['secu2']/10); //치안에 따라 최대 10% 추가
//도시 관직 추가 세수
if(Util::array_get($level4[$city['gen1']]) == $city['city']) { $tax1 *= 1.05; $tax2 *= 1.05; }
if(Util::array_get($level3[$city['gen2']]) == $city['city']) { $tax1 *= 1.05; $tax2 *= 1.05; }
if(Util::array_get($level2[$city['gen3']]) == $city['city']) { $tax1 *= 1.05; $tax2 *= 1.05; }
if(Util::array_get($level4[$city['officer4']]) == $city['city']) { $tax1 *= 1.05; $tax2 *= 1.05; }
if(Util::array_get($level3[$city['officer3']]) == $city['city']) { $tax1 *= 1.05; $tax2 *= 1.05; }
if(Util::array_get($level2[$city['officer2']]) == $city['city']) { $tax1 *= 1.05; $tax2 *= 1.05; }
//수도 추가 세수 130%~105%
if($city['city'] == $nation['capital']) { $tax1 *= 1+(1/3/$nation['level']); $tax2 *= 1+(1/3/$nation['level']); }
$income[0] += $tax1;
+2 -2
View File
@@ -252,7 +252,7 @@ else if($session->userGrade == 4){
</tr>
<tr>
<td rowspan=3 width=50 valign=top><?=turnTable()?></td>
<td style="width:650px;border:none;text-align:center;"><?php cityInfo($generalObj); ?></td>
<td style="width:650px;border:none;text-align:center;"><?=cityInfo($generalObj)?></td>
</tr>
<tr>
<td style='width:650px;' align=right>
@@ -283,7 +283,7 @@ else if($session->userGrade == 4){
<table class="tb_layout bg0" style="width:1000px;">
<tr>
<td width=498 style="border:none;"><?php myNationInfo(); ?></td>
<td width=498 style="border:none;"><?php myInfo($generalObj); ?></td>
<td width=498 style="border:none;"><?php generalInfo($generalObj); ?></td>
</tr>
<tr><td colspan=2><?=commandButton()?></td></tr>
</table>
+5 -5
View File
@@ -157,7 +157,7 @@ $cityCheck = [
'pop', 'agri', 'comm', 'secu', 'def', 'wall',
'trust', 'level',
'pop2', 'agri2', 'comm2', 'secu2', 'def2', 'wall2',
'dead', 'state', 'gen1', 'gen2', 'gen3', 'conflict',
'dead', 'state', 'officer4', 'officer3', 'officer2', 'conflict',
],
'numeric'=>[
'pop', 'agri', 'comm', 'secu', 'def', 'wall', 'trust', 'dead'
@@ -165,7 +165,7 @@ $cityCheck = [
'integer'=>[
'city', 'nation', 'supply',
'pop2', 'agri2', 'comm2', 'secu2', 'def2', 'wall2',
'state', 'gen1', 'gen2', 'gen3'
'state', 'officer4', 'officer3', 'officer2'
],
'min'=>[
['def', 0],
@@ -216,9 +216,9 @@ $nationCheck = [
['gold', 0],
['rice', 0],
['gennum', 1],
['gen1', 0],
['gen2', 0],
['gen3', 0],
['officer4', 0],
['officer3', 0],
['officer2', 0],
],
'in'=>[
['type', array_keys(getNationTypeList())],
+9 -9
View File
@@ -607,9 +607,9 @@ jQuery(function($){
dead:0,
state:0,
gen1:0,
gen2:0,
gen3:0,
officer4:0,
officer3:0,
officer2:0,
conflict:'{}',
};
@@ -624,13 +624,13 @@ jQuery(function($){
var attackerGeneral = extendGeneralInfoForDB(allData.attackerGeneral);
if(attackerGeneral.level == 4){
attackerCity.gen1 = attackerGeneral.no;
attackerCity.officer4 = attackerGeneral.no;
}
if(attackerGeneral.level == 3){
attackerCity.gen2 = attackerGeneral.no;
attackerCity.officer3 = attackerGeneral.no;
}
if(attackerGeneral.level == 2){
attackerCity.gen3 = attackerGeneral.no;
attackerCity.officer2 = attackerGeneral.no;
}
var defenderNation = $.extend({}, defaultNation, allData.defenderNation);
@@ -647,13 +647,13 @@ jQuery(function($){
$.each(allData.defenderGenerals, function(){
var defenderGeneral = extendGeneralInfoForDB(this);
if(defenderGeneral.level == 4){
defenderCity.gen1 = defenderGeneral.no;
defenderCity.officer4 = defenderGeneral.no;
}
if(defenderGeneral.level == 3){
defenderCity.gen2 = defenderGeneral.no;
defenderCity.officer3 = defenderGeneral.no;
}
if(defenderGeneral.level == 2){
defenderCity.gen3 = defenderGeneral.no;
defenderCity.officer2 = defenderGeneral.no;
}
defenderGenerals.push(defenderGeneral);
+8 -8
View File
@@ -595,7 +595,7 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
$query = "update general set dedication=dedication*0.5,experience=experience*0.9 where nation='{$city['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 전 도시 공백지로
$query = "update city set nation='0',gen1='0',gen2='0',gen3='0',conflict='{}',term=0 where nation='{$city['nation']}'";
$query = "update city set nation='0',officer4='0',officer3='0',officer2='0',conflict='{}',term=0 where nation='{$city['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 전 장수 소속 무소속으로, 재야로, 부대 탈퇴
$query = "update general set nation='0',belong='0',level='0',troop='0' where nation='{$city['nation']}'";
@@ -622,7 +622,7 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
// 태수,군사,종사은 일반으로...
$db->update('general',[
'level'=>1
], 'no IN %li',[$city['gen1'], $city['gen2'], $city['gen3']]);
], 'no IN %li',[$city['officer4'], $city['officer3'], $city['officer2']]);
//수도였으면 긴급 천도
if(isset($destnation['capital']) && $destnation['capital'] == $city['city']) {
@@ -685,12 +685,12 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
'comm'=>$db->sqleval('comm*0.7'),
'secu'=>$db->sqleval('secu*0.7'),
'nation'=>$conquerNation,
'gen1'=>0,
'gen2'=>0,
'gen3'=>0,
'gen1set'=>0,
'gen2set'=>0,
'gen3set'=>0
'officer4'=>0,
'officer3'=>0,
'officer2'=>0,
'officer4set'=>0,
'officer3set'=>0,
'officer2set'=>0
];
if($city['level'] > 3) {
$query['def'] = 1000;
+3 -3
View File
@@ -242,9 +242,9 @@ class CityConstBase{
protected static $buildInitCommon = [
'trust'=>50,
'trade'=>100,
'gen1'=>0,
'gen2'=>0,
'gen3'=>0
'officer4'=>0,
'officer3'=>0,
'officer2'=>0
];
protected static $buildInit = [
+11 -5
View File
@@ -69,13 +69,19 @@ class che_귀환 extends Command\GeneralCommand{
$generalID = $general->getID();
$date = substr($general->getVar('turntime'),11,5);
switch($general->getVar('level')){
case 2: [$cityID, $cityName] = $db->queryFirstList('SELECT city, name FROM city WHERE gen3=%i', $generalID); break;
case 3: [$cityID, $cityName] = $db->queryFirstList('SELECT city, name FROM city WHERE gen2=%i', $generalID); break;
case 4: [$cityID, $cityName] = $db->queryFirstList('SELECT city, name FROM city WHERE gen1=%i', $generalID); break;
default: [$cityID, $cityName] = $db->queryFirstList('SELECT city, name FROM city WHERE city=%i', $this->nation['capital']); break;
$generalLevel = $general->getVar('level');
$target = null;
if(2 <= $generalLevel && 4 <= $generalLevel){
$target = $db->queryFirstList(
'SELECT city, name FROM city WHERE %b=%i AND nation = %i',
'officer'.$general->getVar('level'), $generalID, $general->getNationID()
);
}
if(!$target){
$target = $db->queryFirstList('SELECT city, name FROM city WHERE city=%i', $this->nation['capital']);
}
[$cityID, $cityName] = $target;
$josaRo = JosaUtil::pick($cityName, '로');
$logger = $general->getLogger();
+8 -11
View File
@@ -81,20 +81,17 @@ class che_모반시도 extends Command\GeneralCommand{
$logger = $general->getLogger();
$lordLogger = $this->destGeneralObj->getLogger();
$generalLevel = $general->getVar('level');
$general->setVar('level', 12);
$lordGeneral->setVar('level', 1);
$lordGeneral->multiplyVar('experience', 0.7);
$db->update('city', [
'gen1'=>0
], 'gen1=%i', $general->getID());
$db->update('city', [
'gen2'=>0
], 'gen2=%i', $general->getID());
$db->update('city', [
'gen3'=>0
], 'gen3=%i', $general->getID());
if(2 <= $generalLevel && $generalLevel <= 4){
$db->update('city', [
'officer'.$generalLevel=>0
], "officer{$generalLevel}=%i", $general->getID());
}
$josaYi = JosaUtil::pick($generalName, '이');
$logger->pushGlobalHistoryLog("<Y><b>【모반】</b></><Y>{$generalName}</>{$josaYi} <D><b>{$nationName}</b></>의 군주 자리를 찬탈했습니다.");
$logger->pushNationalHistoryLog("<Y>{$generalName}</>{$josaYi} <Y>{$lordName}</>에게서 군주자리를 찬탈");
+3 -3
View File
@@ -121,9 +121,9 @@ class che_방랑 extends Command\GeneralCommand{
$db->update('city', [
'nation'=>0,
'front'=>0,
'gen1'=>0,
'gen2'=>0,
'gen3'=>0,
'officer4'=>0,
'officer3'=>0,
'officer2'=>0,
'conflict'=>'{}'
], 'nation=%i', $nationID);
+6 -9
View File
@@ -102,19 +102,16 @@ class che_선양 extends Command\GeneralCommand{
$logger = $general->getLogger();
$destLogger = $destGeneral->getLogger();
$destGeneralLevel = $destGeneral->getVar('level');
$destGeneral->setVar('level', 12);
$general->setVar('level', 1);
$general->multiplyVar('experience', 0.7);
$db->update('city', [
'gen1'=>0
], 'gen1=%i', $destGeneral->getID());
$db->update('city', [
'gen2'=>0
], 'gen2=%i', $destGeneral->getID());
$db->update('city', [
'gen3'=>0
], 'gen3=%i', $destGeneral->getID());
if(2 <= $destGeneralLevel && $destGeneralLevel <= 4){
$db->update('city', [
'officer'.$destGeneralLevel=>0
], "officer{$destGeneralLevel}=%i", $destGeneral->getID());
}
$josaYi = JosaUtil::pick($generalName, '이');
$logger->pushGlobalHistoryLog("<Y><b>【선양】</b></><Y>{$generalName}</>{$josaYi} <D><b>{$nationName}</b></>의 군주 자리를 <Y>{$destGeneralName}</>에게 선양했습니다.");
+2 -8
View File
@@ -139,14 +139,8 @@ class Personnel{
if(5 <= $general['level'] && $general['level'] <= 11){
$setOriginalNationValues["l{$general['level']}set"] = 0;
}
else if($general['level'] == 4){
$setOriginalCityValues['gen1'] = 0;
}
else if($general['level'] == 3){
$setOriginalCityValues['gen2'] = 0;
}
else if($general['level'] == 2){
$setOriginalCityValues['gen3'] = 0;
else if(2 <= $general['level'] && $general['level'] <= 4){
$setOriginalCityValues['officer'.$general['level']] = 0;
}
$setValues['experience'] = $db->sqleval('experience * (1 - 0.1 * betray)');//XXX: 상수
+13 -11
View File
@@ -65,21 +65,23 @@ class RaiseInvader extends \sammo\Event\Action{
}
$generals = [];
foreach($db->query('SELECT gen1, gen2, gen3 from city where city in %li', $cities) as $city){
list($gen1, $gen2, $gen3) = $city;
if($gen1 != 0) $generals[]=$gen1;
if($gen2 != 0) $generals[]=$gen2;
if($gen3 != 0) $generals[]=$gen3;
foreach($db->query('SELECT officer4, officer3, officer2 from city where city in %li', $cities) as $city){
list($officer4, $officer3, $officer2) = $city;
if($officer4 != 0) $generals[]=$officer4;
if($officer3 != 0) $generals[]=$officer3;
if($officer2 != 0) $generals[]=$officer2;
}
$db->update('general', [
'level'=>1
], 'no in %li', $generals);
if($generals){
$db->update('general', [
'level'=>1
], 'no in %li', $generals);
}
$db->update('city', [
'gen1'=>0,
'gen2'=>0,
'gen3'=>0,
'officer4'=>0,
'officer3'=>0,
'officer2'=>0,
'nation'=>0
], 'city in %li', $cities);
}
+7 -12
View File
@@ -313,22 +313,17 @@ class General implements iAction{
$generalName = $this->getName();
// 군주였으면 유지 이음
if($this->getVar('level') == 12) {
$generalLevel = $this->getVar('level');
if($generalLevel == 12) {
nextRuler($this);
}
//도시의 태수, 군사, 종사직도 초기화
$db->update('city', [
'gen1'=>0,
], 'gen1=%i', $generalID);
$db->update('city', [
'gen2'=>0,
], 'gen2=%i', $generalID);
$db->update('city', [
'gen3'=>0,
], 'gen3=%i', $generalID);
if(2 <= $generalLevel && $generalLevel <= 4){
$db->update('city', [
'officer'.$generalLevel=>0
], "officer{$generalLevel} = %i", $generalID);
}
// 부대 처리
$troopLeaderID = $this->getVar('troop');
+5 -5
View File
@@ -532,7 +532,7 @@ class GeneralAI{
$supplyCitiesID[] = $cityID;
if($nationCity['front']){
$frontCitiesID[] = $cityID;
if($nationCity['gen1']){
if($nationCity['officer4']){
$frontImportantCitiesID[] = $cityID;
}
}
@@ -1300,7 +1300,7 @@ class GeneralAI{
$developTurn = $this->chooseDevelopTurn($cityFull);
if($cityFull && Util::randBool(0.2)){
$moveRawCities = $db->query('SELECT city,front,(pop/10+agri+comm+secu+def+wall)/(pop2/10+agri2+comm2+secu2+def2+wall2)*100 as dev, gen2 FROM city WHERE nation=%i', $nationID);
$moveRawCities = $db->query('SELECT city,front,(pop/10+agri+comm+secu+def+wall)/(pop2/10+agri2+comm2+secu2+def2+wall2)*100 as dev, officer3 FROM city WHERE nation=%i', $nationID);
$moveCities = [];
foreach($moveRawCities as $moveCity){
@@ -1309,7 +1309,7 @@ class GeneralAI{
continue;
}
$score = 1 / $moveCity['dev'];
if($moveCity['gen2']){
if($moveCity['officer3']){
$score *= 1.3;
}
$moveCities[$moveCityID] = $score;
@@ -1429,7 +1429,7 @@ class GeneralAI{
return null;
}
$frontCities = $db->query('SELECT city, front, gen1 FROM city WHERE nation=%i AND front > 0 AND supply = 1');
$frontCities = $db->query('SELECT city, front, officer4 FROM city WHERE nation=%i AND front > 0 AND supply = 1');
if(!$frontCities){
//접경이 아직 없음
@@ -1442,7 +1442,7 @@ class GeneralAI{
$frontCityID = $frontCity['city'];
$score = 0.2;
if($frontCity['front'] > 1 && $frontCity['gen1']){
if($frontCity['front'] > 1 && $frontCity['officer4']){
$score += 3;
}
$attackableCities[$frontCityID] = $score;
+2 -14
View File
@@ -19,20 +19,8 @@ class TriggerGeneralLevel implements iAction{
}
}
else{
if($this->generalLevel == 2){
if($city['gen3'] != $general['no']){
$this->generalLevel = 1;
}
}
else if($this->generalLevel == 3){
if($city['gen2'] != $general['no']){
$this->generalLevel = 1;
}
}
else if($this->generalLevel == 4){
if($city['gen1'] != $general['no']){
$this->generalLevel = 1;
}
if(2 <= $this->generalLevel && $this->generalLevel <= 4 && $city['officer'.$this->generalLevel] != $general['no']){
$this->generalLevel = 1;
}
}
+1 -7
View File
@@ -173,13 +173,7 @@ class WarUnitGeneral extends WarUnit{
else if($genLevel == 11 || $genLevel == 9 || $genLevel == 7 || $genLevel == 5){
$opposeWarPowerMultiply *= 0.95;
}
else if($genLevel == 4 && $generalNo == $this->getCityVar('gen1')){
$opposeWarPowerMultiply *= 0.95;
}
else if($genLevel == 3 && $generalNo == $this->getCityVar('gen2')){
$opposeWarPowerMultiply *= 0.95;
}
else if($genLevel == 2 && $generalNo == $this->getCityVar('gen3')){
else if(2 <= $genLevel && $genLevel <= 4 && $generalNo == $this->getCityVar('officer'.$genLevel)){
$opposeWarPowerMultiply *= 0.95;
}
}
+6 -6
View File
@@ -263,12 +263,12 @@ $city_schema = "
def2 int(5) default 0,
wall int(5) default 0,
wall2 int(5) default 0,
gen1 int(4) default 0,
gen2 int(4) default 0,
gen3 int(4) default 0,
gen1set int(1) default 0,
gen2set int(1) default 0,
gen3set int(1) default 0,
officer4 int(4) default 0,
officer3 int(4) default 0,
officer2 int(4) default 0,
officer4set int(1) default 0,
officer3set int(1) default 0,
officer2set int(1) default 0,
state int(2) default 0,
region int(2) default 0,
term int(1) default 0,
+6 -6
View File
@@ -268,12 +268,12 @@ CREATE TABLE `city` (
`def2` INT(5) NOT NULL,
`wall` INT(5) NOT NULL,
`wall2` INT(5) NOT NULL,
`gen1` INT(4) NOT NULL DEFAULT '0',
`gen2` INT(4) NOT NULL DEFAULT '0',
`gen3` INT(4) NOT NULL DEFAULT '0',
`gen1set` INT(1) NOT NULL DEFAULT '0',
`gen2set` INT(1) NOT NULL DEFAULT '0',
`gen3set` INT(1) NOT NULL DEFAULT '0',
`officer4` INT(4) NOT NULL DEFAULT '0',
`officer3` INT(4) NOT NULL DEFAULT '0',
`officer2` INT(4) NOT NULL DEFAULT '0',
`officer4set` INT(1) NOT NULL DEFAULT '0',
`officer3set` INT(1) NOT NULL DEFAULT '0',
`officer2set` INT(1) NOT NULL DEFAULT '0',
`state` INT(2) NOT NULL DEFAULT '0',
`region` INT(2) NOT NULL COMMENT 'TODO:Delete',
`term` INT(1) NOT NULL DEFAULT '0',
+47
View File
@@ -0,0 +1,47 @@
<table style='width:100%;' class='tb_layout bg2'>
<tr><td colspan=8 style='text-align:center;height:20px;color:<?=$nationTextColor?>;background-color:<?=$nationColor?>;font-weight:bold;font-size:13px;'> <?=$region?> | <?=$level?> 】 <?=$name?></td></tr>
<tr><td colspan=8 style='text-align:center;height:20px;color:<?=$nationTextColor?>;background-color:<?=$nationColor?>'><b><?=$nationName?'공 백 지':"지배 국가 【 {$nationName} 】"?></b></td>
</tr>
<tr>
<td rowspan=2 style='text-align:center;' class='bg1'><b>주민</b></td>
<td height=7 colspan=3><?=$this->bar($pop/$pop2*100)?></td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>민심</b></td>
<td height=7><?=$this->bar($trust)?></td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>태수</b></td>
<td rowspan=2 style='text-align:center;'><?=$officerName[4]?></td>
</tr>
<tr>
<td colspan=3 style='text-align:center;'><?=$pop?>/<?=$pop2?></td>
<td style='text-align:center;'><?=round($trust, 1)?></td>
</tr>
<tr>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>농업</b></td>
<td width=100 height=7><?=$this->bar($agri/$agri2*100)?></td>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>상업</b></td>
<td width=100 height=7><?=$this->bar($comm/$comm2*100)?></td>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>치안</b></td>
<td width=100 height=7><?=$this->bar($secu/$secu2*100)?></td>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>군사</b></td>
<td rowspan=2 style='text-align:center;'><?=$officerName[3]?></td>
</tr>
<tr>
<td style='text-align:center;'><?=$agri?>/<?=$agri2?></td>
<td style='text-align:center;'><?=$comm?>/<?=$comm2?></td>
<td style='text-align:center;'><?=$secu?>/<?=$secu2?></td>
</tr>
<tr>
<td rowspan=2 style='text-align:center;' class='bg1'><b>수비</b></td>
<td height=7><?=$this->bar($def/$def2*100)?></td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>성벽</b></td>
<td height=7><?=$this->bar($wall/$wall2*100)?></td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>시세</b></td>
<td height=7><?=$this->bar(($trade-95)*10)?></td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>종사</b></td>
<td rowspan=2 style='text-align:center;'><?=$officerName[2]?></td>
</tr>
<tr>
<td style='text-align:center;'><?=$def?>/<?=$def2?></td>
<td style='text-align:center;'><?=$wall?>/<?=$wall2?></td>
<td style='text-align:center;'><?=$trade?"{$trade}%":'상인없음'?></td>
</tr>
</table>