diff --git a/hwe/b_myBossInfo.php b/hwe/b_myBossInfo.php index fcc24014..e87c5453 100644 --- a/hwe/b_myBossInfo.php +++ b/hwe/b_myBossInfo.php @@ -351,7 +351,7 @@ if($meLevel == 12): - +
= 5) { diff --git a/hwe/c_myBossInfo.php b/hwe/c_myBossInfo.php index 49b78a9a..f138d2c7 100644 --- a/hwe/c_myBossInfo.php +++ b/hwe/c_myBossInfo.php @@ -59,7 +59,7 @@ if($btn == "임명") { header('location:b_myBossInfo.php'); exit(); } - $query = "select no,name,gold,rice,nation,troop,level,npc,picture,imgsvr,permission,penalty from general where no='$outlist'"; + $query = "select no,name,gold,rice,nation,troop,level,npc,picture,imgsvr,permission,penalty,belong from general where no='$outlist'"; $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $general = MYDB_fetch_array($result); @@ -302,27 +302,29 @@ if($btn == "임명" && $level >= 5 && $level <= 11) { if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) { switch($level) { - case 4: $lv = 1; break; - case 3: $lv = 2; break; - case 2: $lv = 3; break; + case 4: $genlv = 'gen1'; $genlvset = 'gen1set'; break; + case 3: $genlv = 'gen2'; $genlvset = 'gen2set'; break; + case 2: $genlv = 'gen3'; $genlvset = 'gen3set'; break; } - $query = "select gen{$lv} from city where nation='{$me['nation']}' and city='$citylist'"; + $query = "select {$genlv} from city where nation='{$me['nation']}' and city='$citylist'"; $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $city = MYDB_fetch_array($result); if(!$city){ header('location:b_myBossInfo.php'); die(); } - $oldlist = $city["gen{$lv}"]; + $oldlist = $city[$genlv]; if($oldlist != 0) { //기존 장수 일반으로 - $query = "update general set level=1 where no='$oldlist'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $db->update('general', [ + 'level'=>1 + ], 'no=%i', $oldlist); //기존 자리 공석으로 - $query = "update city set gen{$lv}=0 where city='$citylist'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $db->update('city', [ + $genlv=>0 + ], 'city = %i AND nation = %i', $citylist , $me['nation']); } if($genlist != 0) { $valid = 0; @@ -334,17 +336,26 @@ if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) { 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),""); + $db->update('city', [ + 'gen1'=>0, + ], 'gen1=%i', $genlist); + $db->update('city', [ + 'gen2'=>0, + ], 'gen2=%i', $genlist); + $db->update('city', [ + 'gen3'=>0, + ], 'gen3=%i', $genlist); + //신임 장수 - $query = "update general set level='$level' where no='$genlist'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - $query = "update city set gen{$lv}='$genlist',gen{$lv}set='1' where city='$citylist'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $db->update('city', [ + $genlv=>$genlist, + $genlvset=>1 + ], 'city=%i AND nation=%i', $citylist, $general['nation']); + if($db->affectedRows() > 0){ + $db->update('general',[ + 'level'=>$level + ], 'no=%i', $genlist); + } } } header('location:b_myBossInfo.php'); diff --git a/hwe/func.php b/hwe/func.php index 5f2e595e..802fd745 100644 --- a/hwe/func.php +++ b/hwe/func.php @@ -1475,7 +1475,7 @@ function CheckHall($no) { ]; $jsonAux = Json::encode($aux); - $db->insertUpdate('ng_hall', [ + $db->insertIgnore('ng_hall', [ 'server_id'=>UniqueConst::$serverID, 'scenario'=>$scenarioIdx, 'general_no'=>$no, @@ -1483,10 +1483,21 @@ function CheckHall($no) { 'value'=>$general[$typeName]??0, 'owner'=>$general['owner']??null, 'aux'=>$jsonAux - ],[ - 'value'=>$general[$typeName]??0, - 'aux'=>$jsonAux ]); + + if($db->affectedRows() == 0){ + $db->update('ng_hall', [ + 'value'=>$general[$typeName]??0, + 'aux'=>$jsonAux + ], + 'server_id = %s AND scenario = %i AND general_no = %i AND type = %i AND value < %?', + UniqueConst::$serverID, + $scenarioIdx, + $no, + $idx, + $general[$typeName]??0); + } + } } diff --git a/hwe/func_process_personnel.old.php b/hwe/func_process_personnel.old.php index 5e67931f..b3335805 100644 --- a/hwe/func_process_personnel.old.php +++ b/hwe/func_process_personnel.old.php @@ -860,18 +860,28 @@ function process_54(&$general) { $log[] = "●{$admin['month']}월:현재 통합 진행중입니다. 선양 실패."; } else { //군주 교체 - $query = "update general set level='12' where no='$who'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - // 태수,군사,종사이었다면 해제 - $query = "update city set gen1='0' where gen1='$who'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - $query = "update city set gen2='0' where gen2='$who'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - $query = "update city set gen3='0' where gen3='$who'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $db->update('general', [ + 'level'=>12, + 'permission'=>'normal' + ], 'no=%i', $who); - $query = "update general set resturn='SUCCESS',level='1',experience=experience*0.7 where no='{$general['no']}'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 태수,군사,종사이었다면 해제 + $db->update('city', [ + 'gen1'=>0, + ], 'gen1=%i', $who); + $db->update('city', [ + 'gen2'=>0, + ], 'gen2=%i', $who); + $db->update('city', [ + 'gen3'=>0, + ], 'gen3=%i', $who); + + $db->update('general', [ + 'resturn'=>'SUCCESS', + 'level'=>1, + 'permission'=>'auditor', + 'experience'=>$db->sqleval('experience*0.7'), + ], 'no=%i', $general['no']); $josaYi = JosaUtil::pick($general['name'], '이'); $history[] = "●{$admin['year']}년 {$admin['month']}월:【선양】{$general['name']}{$josaYi} {$nation['name']}의 군주 자리를 {$nextruler['name']}에게 선양했습니다."; diff --git a/hwe/func_time_event.php b/hwe/func_time_event.php index 8ee81d14..725507fa 100644 --- a/hwe/func_time_event.php +++ b/hwe/func_time_event.php @@ -36,7 +36,7 @@ function processSpring() { $admin = $gameStor->getValues(['year', 'month']); - pushWorldHistory(["★{$admin['year']}년 {$admin['month']}월: 모두들 즐거운 게임 하고 계신가요? ^^ 삼국일보 애독해 주시고, 훼접은 삼가주세요~"], $admin['year'], $admin['month']); + pushWorldHistory(["★{$admin['year']}년 {$admin['month']}월: 모두들 즐거운 게임 하고 계신가요? ^^ 매너 있는 플레이 부탁드리고, 지나친 훼접은 삼가주세요~"], $admin['year'], $admin['month']); } function processGoldIncome() { diff --git a/hwe/j_basic_info.php b/hwe/j_basic_info.php index b7fccd3a..ac458e7c 100644 --- a/hwe/j_basic_info.php +++ b/hwe/j_basic_info.php @@ -12,7 +12,7 @@ $result = [ $session = Session::requireGameLogin([])->setReadOnly(); $userID = Session::getUserID(); -$generalInfo = DB::db()->queryFirstRow('SELECT `no`, `nation`, `level`, penalty, permission from `general` where `owner`=%i', $userID); +$generalInfo = DB::db()->queryFirstRow('SELECT `no`, `nation`, `level`, belong, penalty, permission from `general` where `owner`=%i', $userID); if(!$generalInfo){ Json::die($result); } diff --git a/hwe/j_diplomacy_respond_letter.php b/hwe/j_diplomacy_respond_letter.php index a8e492c7..294f3fc4 100644 --- a/hwe/j_diplomacy_respond_letter.php +++ b/hwe/j_diplomacy_respond_letter.php @@ -112,6 +112,17 @@ $msg = new Message( ); $msgID = $msg->send(); +$msg = new Message( + Message::MSGTYPE_NATIONAL, + $src, + $dest, + $msgText, + $now, + $unlimited, + ['invalid' => true] +); +$msgID = $msg->send(); + Json::die([ 'result'=>true, 'reason'=>'success' diff --git a/hwe/j_msg_submit.php b/hwe/j_msg_submit.php index 51bd87b9..e5abb600 100644 --- a/hwe/j_msg_submit.php +++ b/hwe/j_msg_submit.php @@ -49,7 +49,7 @@ $now = new \DateTime(); $unlimited = new \DateTime('9999-12-31'); $db = DB::db(); -$me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`level`,`con`,`picture`,`imgsvr`,penalty,permission FROM general WHERE `owner`=%i', $userID); +$me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`level`,`con`,`picture`,`imgsvr`,penalty,permission,belong FROM general WHERE `owner`=%i', $userID); if(!$me){ $session->logoutGame(); @@ -161,7 +161,7 @@ if($mailbox > 0) { } $destPermission = checkSecretPermission($destUser, false); - if($permission == 4 && $destPermission == 4){ + if($permission == 4 && $destPermission == 4 && $destUser['nation'] != $me['nation']){ Json::die([ 'result' => false, 'reason' => '외교권자끼리는 메시지를 보낼 수 없습니다.', diff --git a/hwe/js/ext.expand_city.js b/hwe/js/ext.expand_city.js index 6a7e2c45..2b705fd1 100644 --- a/hwe/js/ext.expand_city.js +++ b/hwe/js/ext.expand_city.js @@ -330,16 +330,7 @@ $(function() { //window.$html = $html; var cnt =0; - var $tmpTable = null; - $html.each(function(idx){ - if(this.tagName == "TABLE"){ - cnt+=1; - if(cnt==5){ - $tmpTable = $(this); - return false; - } - } - }); + var $tmpTable = $html.filter('#officer_list').eq(0); $selects = $tmpTable.find("select"); if($selects.length == 0){ diff --git a/hwe/js/msg.js b/hwe/js/msg.js index b812cc49..b70eaf93 100644 --- a/hwe/js/msg.js +++ b/hwe/js/msg.js @@ -385,7 +385,7 @@ function refreshMailboxList(obj){ var $item = $(''.format(generalID, textName)); - if(permissionLevel == 4 && isAmbassador){ + if(permissionLevel == 4 && isAmbassador && myNation.mailbox != nation.mailbox){ $item.prop('disabled', true); } $optgroup.append($item); diff --git a/hwe/sammo/DiplomaticMessage.php b/hwe/sammo/DiplomaticMessage.php index 183d2e0a..2bb69009 100644 --- a/hwe/sammo/DiplomaticMessage.php +++ b/hwe/sammo/DiplomaticMessage.php @@ -345,6 +345,20 @@ class DiplomaticMessage extends Message{ $this->invalidate(); $newMsg->send(); + $newMsg = new Message( + self::MSGTYPE_DIPLOMACY, + $this->dest, + $this->src, + "【외교】{$year}년 {$month}월: {$this->src->nationName}{$josaYi} {$this->dest->nationName}에게 제안한 {$this->diplomacyDetail}{$this->diplomacyName} 동의.", + new \DateTime(), + new \DateTime('9999-12-31'), + [ + 'delete'=>$this->id, + 'silence'=>true, + ] + ); + $newMsg->send(); + return self::ACCEPTED; } diff --git a/hwe/sammo/GeneralAI.php b/hwe/sammo/GeneralAI.php index 9f641790..599046b3 100644 --- a/hwe/sammo/GeneralAI.php +++ b/hwe/sammo/GeneralAI.php @@ -1107,6 +1107,12 @@ class GeneralAI{ $arg = null; $generalObj->setVar('killturn', 1); } + else if($general->getVar('level') == 12){ + $command = 'che_선양'; + $arg = [ + 'destGeneralID'=> $db->queryFirstField('SELECT `no` FROM general WHERE nation = %i AND npc != 5 ORDER BY RAND() LIMIT 1', $general->getNationID()) + ]; + } else{ $command = 'che_집합'; //집합 $arg = []; @@ -1618,6 +1624,10 @@ class GeneralAI{ //이 함수를 부르는건 군주 AI이므로, 군주는 세지 않아도 됨 $userChief = []; + $db->update('general', [ + 'permission'=>'ambassador', + ], 'nation=%i AND npc < 2 AND level > 4', $nationID); + foreach($db->query( 'SELECT no, npc, level, killturn FROM general WHERE nation = %i AND 12 > level AND level > 4', $nationID ) as $chief){ diff --git a/hwe/t_board.php b/hwe/t_board.php index 2827e080..5ca5cd8a 100644 --- a/hwe/t_board.php +++ b/hwe/t_board.php @@ -33,7 +33,7 @@ else if ($isSecretBoard && $permission < 2) { die(); } -$boardName = $isSecretBoard?'회의실':'기밀실'; +$boardName = $isSecretBoard?'기밀실':'회의실'; ?> @@ -63,6 +63,13 @@ var isSecretBoard = ; // + +
+
+ +
+ +
@@ -113,7 +120,7 @@ var isSecretBoard = ; // -
+

새 게시물 작성