[881bf08aee]v.0.10.0 커밋까지 반영

This commit is contained in:
2019-04-07 23:23:46 +09:00
13 changed files with 118 additions and 53 deletions
+1 -1
View File
@@ -351,7 +351,7 @@ if($meLevel == 12):
<?php <?php
endif; endif;
?> ?>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 id='officer_list' class='tb_layout bg0'>
<tr><td colspan=5 height=5></td></tr> <tr><td colspan=5 height=5></td></tr>
<?php <?php
if($meLevel >= 5) { if($meLevel >= 5) {
+31 -20
View File
@@ -59,7 +59,7 @@ if($btn == "임명") {
header('location:b_myBossInfo.php'); header('location:b_myBossInfo.php');
exit(); 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),""); $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result); $general = MYDB_fetch_array($result);
@@ -302,27 +302,29 @@ if($btn == "임명" && $level >= 5 && $level <= 11) {
if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) { if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) {
switch($level) { switch($level) {
case 4: $lv = 1; break; case 4: $genlv = 'gen1'; $genlvset = 'gen1set'; break;
case 3: $lv = 2; break; case 3: $genlv = 'gen2'; $genlvset = 'gen2set'; break;
case 2: $lv = 3; 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),""); $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$city = MYDB_fetch_array($result); $city = MYDB_fetch_array($result);
if(!$city){ if(!$city){
header('location:b_myBossInfo.php'); header('location:b_myBossInfo.php');
die(); die();
} }
$oldlist = $city["gen{$lv}"]; $oldlist = $city[$genlv];
if($oldlist != 0) { if($oldlist != 0) {
//기존 장수 일반으로 //기존 장수 일반으로
$query = "update general set level=1 where no='$oldlist'"; $db->update('general', [
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); 'level'=>1
], 'no=%i', $oldlist);
//기존 자리 공석으로 //기존 자리 공석으로
$query = "update city set gen{$lv}=0 where city='$citylist'"; $db->update('city', [
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $genlv=>0
], 'city = %i AND nation = %i', $citylist , $me['nation']);
} }
if($genlist != 0) { if($genlist != 0) {
$valid = 0; $valid = 0;
@@ -334,17 +336,26 @@ if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) {
if($valid == 1) { if($valid == 1) {
// 신임 장수의 원래 자리 해제 // 신임 장수의 원래 자리 해제
$query = "update city set gen1=0 where gen1='$genlist'"; $db->update('city', [
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); 'gen1'=>0,
$query = "update city set gen2=0 where gen2='$genlist'"; ], 'gen1=%i', $genlist);
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $db->update('city', [
$query = "update city set gen3=0 where gen3='$genlist'"; 'gen2'=>0,
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); ], 'gen2=%i', $genlist);
$db->update('city', [
'gen3'=>0,
], 'gen3=%i', $genlist);
//신임 장수 //신임 장수
$query = "update general set level='$level' where no='$genlist'"; $db->update('city', [
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $genlv=>$genlist,
$query = "update city set gen{$lv}='$genlist',gen{$lv}set='1' where city='$citylist'"; $genlvset=>1
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); ], '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'); header('location:b_myBossInfo.php');
+15 -4
View File
@@ -1475,7 +1475,7 @@ function CheckHall($no) {
]; ];
$jsonAux = Json::encode($aux); $jsonAux = Json::encode($aux);
$db->insertUpdate('ng_hall', [ $db->insertIgnore('ng_hall', [
'server_id'=>UniqueConst::$serverID, 'server_id'=>UniqueConst::$serverID,
'scenario'=>$scenarioIdx, 'scenario'=>$scenarioIdx,
'general_no'=>$no, 'general_no'=>$no,
@@ -1483,10 +1483,21 @@ function CheckHall($no) {
'value'=>$general[$typeName]??0, 'value'=>$general[$typeName]??0,
'owner'=>$general['owner']??null, 'owner'=>$general['owner']??null,
'aux'=>$jsonAux '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);
}
} }
} }
+21 -11
View File
@@ -860,18 +860,28 @@ function process_54(&$general) {
$log[] = "<C>●</>{$admin['month']}월:현재 통합 진행중입니다. 선양 실패."; $log[] = "<C>●</>{$admin['month']}월:현재 통합 진행중입니다. 선양 실패.";
} else { } else {
//군주 교체 //군주 교체
$query = "update general set level='12' where no='$who'"; $db->update('general', [
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); 'level'=>12,
// 태수,군사,종사이었다면 해제 'permission'=>'normal'
$query = "update city set gen1='0' where gen1='$who'"; ], 'no=%i', $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),"");
$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'], '이'); $josaYi = JosaUtil::pick($general['name'], '이');
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<Y><b>【선양】</b></><Y>{$general['name']}</>{$josaYi} <D><b>{$nation['name']}</b></>의 군주 자리를 <Y>{$nextruler['name']}</>에게 선양했습니다."; $history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<Y><b>【선양】</b></><Y>{$general['name']}</>{$josaYi} <D><b>{$nation['name']}</b></>의 군주 자리를 <Y>{$nextruler['name']}</>에게 선양했습니다.";
+1 -1
View File
@@ -36,7 +36,7 @@ function processSpring() {
$admin = $gameStor->getValues(['year', 'month']); $admin = $gameStor->getValues(['year', 'month']);
pushWorldHistory(["<R>★</>{$admin['year']}{$admin['month']}월: <S>모두들 즐거운 게임 하고 계신가요? ^^ <Y>삼국일보</> 애독해 주시고, <M>훼접</>은 삼가주세요~</>"], $admin['year'], $admin['month']); pushWorldHistory(["<R>★</>{$admin['year']}{$admin['month']}월: <S>모두들 즐거운 게임 하고 계신가요? ^^ <Y>매너 있는 플레이</> 부탁드리고, <M>지나친 훼접</>은 삼가주세요~</>"], $admin['year'], $admin['month']);
} }
function processGoldIncome() { function processGoldIncome() {
+1 -1
View File
@@ -12,7 +12,7 @@ $result = [
$session = Session::requireGameLogin([])->setReadOnly(); $session = Session::requireGameLogin([])->setReadOnly();
$userID = Session::getUserID(); $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){ if(!$generalInfo){
Json::die($result); Json::die($result);
} }
+11
View File
@@ -112,6 +112,17 @@ $msg = new Message(
); );
$msgID = $msg->send(); $msgID = $msg->send();
$msg = new Message(
Message::MSGTYPE_NATIONAL,
$src,
$dest,
$msgText,
$now,
$unlimited,
['invalid' => true]
);
$msgID = $msg->send();
Json::die([ Json::die([
'result'=>true, 'result'=>true,
'reason'=>'success' 'reason'=>'success'
+2 -2
View File
@@ -49,7 +49,7 @@ $now = new \DateTime();
$unlimited = new \DateTime('9999-12-31'); $unlimited = new \DateTime('9999-12-31');
$db = DB::db(); $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){ if(!$me){
$session->logoutGame(); $session->logoutGame();
@@ -161,7 +161,7 @@ if($mailbox > 0) {
} }
$destPermission = checkSecretPermission($destUser, false); $destPermission = checkSecretPermission($destUser, false);
if($permission == 4 && $destPermission == 4){ if($permission == 4 && $destPermission == 4 && $destUser['nation'] != $me['nation']){
Json::die([ Json::die([
'result' => false, 'result' => false,
'reason' => '외교권자끼리는 메시지를 보낼 수 없습니다.', 'reason' => '외교권자끼리는 메시지를 보낼 수 없습니다.',
+1 -10
View File
@@ -330,16 +330,7 @@ $(function() {
//window.$html = $html; //window.$html = $html;
var cnt =0; var cnt =0;
var $tmpTable = null; var $tmpTable = $html.filter('#officer_list').eq(0);
$html.each(function(idx){
if(this.tagName == "TABLE"){
cnt+=1;
if(cnt==5){
$tmpTable = $(this);
return false;
}
}
});
$selects = $tmpTable.find("select"); $selects = $tmpTable.find("select");
if($selects.length == 0){ if($selects.length == 0){
+1 -1
View File
@@ -385,7 +385,7 @@ function refreshMailboxList(obj){
var $item = $('<option value="{0}">{1}</option>'.format(generalID, textName)); var $item = $('<option value="{0}">{1}</option>'.format(generalID, textName));
if(permissionLevel == 4 && isAmbassador){ if(permissionLevel == 4 && isAmbassador && myNation.mailbox != nation.mailbox){
$item.prop('disabled', true); $item.prop('disabled', true);
} }
$optgroup.append($item); $optgroup.append($item);
+14
View File
@@ -345,6 +345,20 @@ class DiplomaticMessage extends Message{
$this->invalidate(); $this->invalidate();
$newMsg->send(); $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; return self::ACCEPTED;
} }
+10
View File
@@ -1107,6 +1107,12 @@ class GeneralAI{
$arg = null; $arg = null;
$generalObj->setVar('killturn', 1); $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{ else{
$command = 'che_집합'; //집합 $command = 'che_집합'; //집합
$arg = []; $arg = [];
@@ -1618,6 +1624,10 @@ class GeneralAI{
//이 함수를 부르는건 군주 AI이므로, 군주는 세지 않아도 됨 //이 함수를 부르는건 군주 AI이므로, 군주는 세지 않아도 됨
$userChief = []; $userChief = [];
$db->update('general', [
'permission'=>'ambassador',
], 'nation=%i AND npc < 2 AND level > 4', $nationID);
foreach($db->query( foreach($db->query(
'SELECT no, npc, level, killturn FROM general WHERE nation = %i AND 12 > level AND level > 4', $nationID 'SELECT no, npc, level, killturn FROM general WHERE nation = %i AND 12 > level AND level > 4', $nationID
) as $chief){ ) as $chief){
+9 -2
View File
@@ -33,7 +33,7 @@ else if ($isSecretBoard && $permission < 2) {
die(); die();
} }
$boardName = $isSecretBoard?'회의실':'기밀실'; $boardName = $isSecretBoard?'기밀실':'회의실';
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
@@ -63,6 +63,13 @@ var isSecretBoard = <?=($isSecretBoard?'true':'false')?>; //
</head> </head>
<body> <body>
<div style='width:1000px;margin:auto;' class='tb_layout bg0'>
<?=$boardName?><br>
<?=backButton()?>
</div>
<table id='newArticle' class='bg0'> <table id='newArticle' class='bg0'>
<thead> <thead>
<tr><td colspan='2' class='newArticleHeader bg2'>새 게시물 작성</td> <tr><td colspan='2' class='newArticleHeader bg2'>새 게시물 작성</td>
@@ -113,7 +120,7 @@ var isSecretBoard = <?=($isSecretBoard?'true':'false')?>; //
</tr> </tr>
</template> </template>
<div style='width=1000px;' class='tb_layout bg0'> <div style='width:1000px;margin:auto;' class='tb_layout bg0'>
<?=backButton()?><br> <?=backButton()?><br>
<?=banner()?> <?=banner()?>
</div> </div>