국호 변경 추가

This commit is contained in:
2020-03-05 07:33:11 +09:00
parent 0bb45979df
commit 225c356b2d
7 changed files with 155 additions and 1 deletions
+27
View File
@@ -106,6 +106,31 @@ if($command == 61) {
die();
}
// 국호변경
if($command == 82) {
$query = "select no,nation,level from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
$name = StringUtil::neutralize($name);
if($name == "") { $name = "무명"; }
$db->update('general', [
'makenation'=>$name
], 'owner=%i', $userID);
$count = count($turn);
$str = "type=type";
for($i=0; $i < $count; $i++) {
$str .= ",l{$me['level']}turn{$turn[$i]}='{$comStr}'";
}
$query = "update nation set {$str} where nation='{$me['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
header('location:b_chiefcenter.php', true, 303);
die();
}
//포상, 몰수, 발령, 항복권고, 원조
//선전포고, 종전, 파기, 초토화, 천도, 증축, 감축
//백성동원, 수몰, 허보, 피장파장, 의병모집, 이호경식, 급습
@@ -130,6 +155,8 @@ if($command == 23 || $command == 24 || $command == 27 || $command == 51 || $comm
die();
}
//일반 턴
$query = [];
foreach($turn as $turnIdx){
+8 -1
View File
@@ -759,9 +759,10 @@ function CoreCommandTable() {
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
$query = "select level,can_change_flag from nation where nation='{$me['nation']}'";
$query = "select level,can_change_flag,aux from nation where nation='{$me['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$nation = MYDB_fetch_array($result);
$nationAux = Json::decode($nation['aux']);
$query = "select no from general where nation='{$me['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -831,6 +832,12 @@ function CoreCommandTable() {
} else {
addCommand("국기 변경", 81, 0);
}
if($nation['level']==7 && !$nationAux['used_82']??0){
addCommand("국호 변경", 82, 1);
}
else{
addCommand("국호 변경", 82, 0);
}
commandGroup("", 1);
echo "
</select>
+4
View File
@@ -476,6 +476,9 @@ function getCoreTurn($nation, $level) {
$str[$i] = "【<font color={$color}>국기</font>】를 변경";
break;
case 82: //국호변경
$str[$i] = "국호를 변경";
break;
default:
$str[$i] = "????";
break;
@@ -552,6 +555,7 @@ function processCommand($no, $reduceTurn) {
case 77: process_77($general); break; //이호경식
case 78: process_78($general); break; //급습
case 81: process_81($general); break; //국기변경
case 82: process_82($general); break; //국호변경
case 99: break; //수뇌부휴식
}
+1
View File
@@ -1015,6 +1015,7 @@ function updateNationState() {
$josaUl = JosaUtil::pick(getNationLevel($nationlevel), '을');
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<Y><b>【작위】</b></><D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>{$josaUl} 자칭하였습니다.";
pushNationHistory($nation, "<C>●</>{$admin['year']}{$admin['month']}월:<D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>{$josaUl} 자칭");
$db->update('nation', ['can_change_flag'=>1], 'nation=%i', $nation['nation']);
break;
case 6:
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<Y><b>【작위】</b></><D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>에 등극하였습니다.";
+80
View File
@@ -2477,3 +2477,83 @@ function process_81(&$general) {
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
pushGenLog($general, $log);
}
function process_82(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
$alllog = [];
$history = [];
$date = substr($general['turntime'],11,5);
$admin = $gameStor->getValues(['year','month']);
$query = "select nation from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$city = MYDB_fetch_array($result);
$query = "select nation,name,type,sabotagelimit,aux from nation where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$nation = MYDB_fetch_array($result);
$nationAux = Json::decode($nation['aux']??'{}');
$newNationName = $general['makenation'];
$nationExists = $db->queryFirstField('SELECT nation FROM nation WHERE name = %s', $newNationName);
if($nationExists){
$log[] = "<C>●</>{$admin['month']}월:이미 같은 국호를 가진 곳이 있습니다. 국호변경 실패. <1>$date</>";
}
else if($city['nation'] != $general['nation']) {
$log[] = "<C>●</>{$admin['month']}월:아국이 아닙니다. 국호변경 실패. <1>$date</>";
} elseif($general['level'] < 5) {
$log[] = "<C>●</>{$admin['month']}월:수뇌부가 아닙니다. 국호변경 실패. <1>$date</>";
} elseif($nationAux['used_82']??0) {
$log[] = "<C>●</>{$admin['month']}월:더이상 변경이 불가능합니다. 국호변경 실패. <1>$date</>";
} else {
$josaRo = JosaUtil::pick($newNationName, '로');
$log[] = "<C>●</>{$admin['month']}월:국호를 <D><b>{$newNationName}{$josaRo}</b></> 변경합니다. <1>$date</>";
$exp = 10;
$ded = 10;
// 성격 보정
$exp = CharExperience($exp, $general['personal']);
$ded = CharDedication($ded, $general['personal']);
$josaYi = JosaUtil::pick($general['name'], '이');
$josaYiNation = JosaUtil::pick($nation['name'], '이');
$query = "select no,name from general where nation='{$general['nation']}' and no!='{$general['no']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$cnt = MYDB_num_rows($result);
$genlog = ["<C>●</><Y>{$general['name']}</>{$josaYi} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다."];
for($i=0; $i < $cnt; $i++) {
$gen = MYDB_fetch_array($result);
pushGenLog($gen, $genlog);
}
$alllog[] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다.";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<L><b>【국호변경】</b></><D><b>{$nation['name']}</b></>{$josaYiNation} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다.";
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경");
pushNationHistory($nation, "<C>●</>{$admin['year']}{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경");
$nationAux['used_82'] = 1;
//국기변경
$db->update('nation', [
'name'=>$newNationName,
'aux'=>Json::encode($nationAux)
], 'nation=%i', $nation['nation']);
//경험치, 공헌치
$query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
refreshNationStaticInfo();
}
pushWorldHistory($history, $admin['year'], $admin['month']);
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
pushGenLog($general, $log);
}
+1
View File
@@ -124,6 +124,7 @@ switch($commandtype) {
// case 78: command_78($turn, 78); break; //급습
// case 81: command_81($turn, 81); break; //국기변경
// case 82: command_82($turn, 82); break; //국호변경
// case 99: command_99($turn); break; //수뇌부 후식
default: command_Other($turn, $commandtype); break;
+34
View File
@@ -117,6 +117,7 @@ switch($commandtype) {
case 77: command_77($turn, 77); break; //이호경식
case 78: command_78($turn, 78); break; //급습
case 81: command_81($turn, 81); break; //국기변경
case 82: command_82($turn, 82); break; //국호변경
case 99: command_99($turn); break; //수뇌부 휴식
default:command_Single($turn, 0); break; //휴식
@@ -2620,3 +2621,36 @@ function command_81($turn, $command) {
";
ender(1);
}
function command_82($turn, $command) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$userID = Session::getUserID();
$nationID = $db->queryFirstField('SELECT nation FROM general WHERE owner = %i', $userID);
$nation = $db->queryFirstRow('SELECT level,aux FROM nation WHERE nation = %i', $nationID);
$nationAux = Json::decode($nation['aux']??'{}');
starter("국호변경");
if($nation && $nation['level'] == 7 && !$nationAux['used_82']??0){
?>
나라의 이름을 바꿉니다. 황제가 된 후 1회 가능합니다.<br>
<form name=form1 action=c_double.php method=post>
국명 : <input type=text name=name size=18 maxlength=9 style=text-align:right;color:white;background-color:black>
<input type=submit value='국호 변경'>
<input type=hidden name=command value=<?=$command?>>
<?php
for($i=0; $i < count($turn); $i++) {
echo "<input type=hidden name=turn[] value=$turn[$i]>";
}
echo "</form>";
} else {
echo "국호 변경이 불가능합니다.<br>";
}
ender();
}