관직 비우기 안되는 것 수정
This commit is contained in:
+360
-359
@@ -1,360 +1,361 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace sammo;
|
namespace sammo;
|
||||||
|
|
||||||
include "lib.php";
|
include "lib.php";
|
||||||
include "func.php";
|
include "func.php";
|
||||||
|
|
||||||
WebUtil::requireAJAX();
|
WebUtil::requireAJAX();
|
||||||
|
|
||||||
$action = Util::getPost('action');
|
$action = Util::getPost('action');
|
||||||
$officerLevel = Util::getPost('officerLevel', 'int');
|
$officerLevel = Util::getPost('officerLevel', 'int');
|
||||||
$destGeneralID = Util::getPost('destGeneralID', 'int');
|
$destGeneralID = Util::getPost('destGeneralID', 'int');
|
||||||
$destCityID = Util::getPost('destCityID', 'int');
|
$destCityID = Util::getPost('destCityID', 'int');
|
||||||
|
|
||||||
//로그인 검사
|
//로그인 검사
|
||||||
$session = Session::requireGameLogin()->setReadOnly();
|
$session = Session::requireGameLogin()->setReadOnly();
|
||||||
$userID = Session::getUserID();
|
$userID = Session::getUserID();
|
||||||
|
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
$gameStor->cacheValues(['startyear','year','month','scenario']);
|
$gameStor->cacheValues(['startyear','year','month','scenario']);
|
||||||
|
|
||||||
$me = $db->queryFirstRow('SELECT no,nation,officer_level from general where owner=%i', $userID);
|
$me = $db->queryFirstRow('SELECT no,nation,officer_level from general where owner=%i', $userID);
|
||||||
$myOfficerLevel = $me['officer_level'];
|
$myOfficerLevel = $me['officer_level'];
|
||||||
$nationID = $me['nation'];
|
$nationID = $me['nation'];
|
||||||
|
|
||||||
//수뇌가 아니면 아무것도 할 수 없음
|
//수뇌가 아니면 아무것도 할 수 없음
|
||||||
if($myOfficerLevel < 5){
|
if($myOfficerLevel < 5){
|
||||||
Json::die([
|
Json::die([
|
||||||
'result'=>false,
|
'result'=>false,
|
||||||
'reason'=>'수뇌가 아닙니다.'
|
'reason'=>'수뇌가 아닙니다.'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($action === '추방' && $destGeneralID==0){
|
if($action === '추방' && $destGeneralID==0){
|
||||||
Json::die([
|
Json::die([
|
||||||
'result'=>false,
|
'result'=>false,
|
||||||
'reason'=>'장수가 지정되지 않았습니다.'
|
'reason'=>'장수가 지정되지 않았습니다.'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($destGeneralID==0){
|
if($destGeneralID==0){
|
||||||
$general = new DummyGeneral(true);
|
$general = new DummyGeneral(true);
|
||||||
}
|
$general->setVar('nation', $nationID);
|
||||||
else{
|
}
|
||||||
$general = General::createGeneralObjFromDB($destGeneralID, [
|
else{
|
||||||
'name', 'leadership', 'strength', 'intel', 'gold','rice',
|
$general = General::createGeneralObjFromDB($destGeneralID, [
|
||||||
'troop','officer_level','npc','picture','imgsvr',
|
'name', 'leadership', 'strength', 'intel', 'gold','rice',
|
||||||
'permission','penalty','belong', 'crewtype',
|
'troop','officer_level','npc','picture','imgsvr',
|
||||||
'experience', 'dedication', 'betray', 'dedlevel', 'explevel', 'makelimit',
|
'permission','penalty','belong', 'crewtype',
|
||||||
], 1);
|
'experience', 'dedication', 'betray', 'dedlevel', 'explevel', 'makelimit',
|
||||||
|
], 1);
|
||||||
if($general instanceof DummyGeneral){
|
|
||||||
Json::die([
|
if($general instanceof DummyGeneral){
|
||||||
'result'=>false,
|
Json::die([
|
||||||
'reason'=>'올바르지 않은 장수입니다.'
|
'result'=>false,
|
||||||
]);
|
'reason'=>'올바르지 않은 장수입니다.'
|
||||||
}
|
]);
|
||||||
|
}
|
||||||
if($nationID != $general->getNationID()){
|
|
||||||
Json::die([
|
if($nationID != $general->getNationID()){
|
||||||
'result'=>false,
|
Json::die([
|
||||||
'reason'=>'아국 장수가 아닙니다'
|
'result'=>false,
|
||||||
]);
|
'reason'=>'아국 장수가 아닙니다'
|
||||||
}
|
]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if($officerLevel == 12){
|
|
||||||
Json::die([
|
if($officerLevel == 12){
|
||||||
'result'=>false,
|
Json::die([
|
||||||
'reason'=>'군주를 대상으로 할 수 없습니다.'
|
'result'=>false,
|
||||||
]);
|
'reason'=>'군주를 대상으로 할 수 없습니다.'
|
||||||
}
|
]);
|
||||||
|
}
|
||||||
function do수뇌임명(General $general, int $targetOfficerLevel):?string{
|
|
||||||
$generalID = $general->getID();
|
function do수뇌임명(General $general, int $targetOfficerLevel):?string{
|
||||||
$nationID = $general->getNationID();
|
$generalID = $general->getID();
|
||||||
|
$nationID = $general->getNationID();
|
||||||
$db = DB::db();
|
|
||||||
|
$db = DB::db();
|
||||||
[$chiefSet, $nationLevel] = $db->queryFirstList('SELECT chief_set,level FROM nation WHERE nation = %i',$nationID);
|
|
||||||
|
[$chiefSet, $nationLevel] = $db->queryFirstList('SELECT chief_set,level FROM nation WHERE nation = %i',$nationID);
|
||||||
// 임명가능 레벨
|
|
||||||
$lv = getNationChiefLevel($nationLevel);
|
// 임명가능 레벨
|
||||||
|
$lv = getNationChiefLevel($nationLevel);
|
||||||
if($targetOfficerLevel < $lv){
|
|
||||||
return '임명불가능한 관직입니다.';
|
if($targetOfficerLevel < $lv){
|
||||||
}
|
return '임명불가능한 관직입니다.';
|
||||||
|
}
|
||||||
if(isOfficerSet($chiefSet, $targetOfficerLevel)){
|
|
||||||
return '지금은 임명할 수 없습니다.';
|
if(isOfficerSet($chiefSet, $targetOfficerLevel)){
|
||||||
}
|
return '지금은 임명할 수 없습니다.';
|
||||||
|
}
|
||||||
//기존 장수 일반으로
|
|
||||||
$db->update('general', [
|
//기존 장수 일반으로
|
||||||
'officer_level'=>1,
|
$db->update('general', [
|
||||||
'officer_city'=>0,
|
'officer_level'=>1,
|
||||||
], 'nation=%i AND officer_level=%i AND no!=%i', $nationID, $targetOfficerLevel, $generalID);
|
'officer_city'=>0,
|
||||||
|
], 'nation=%i AND officer_level=%i AND no!=%i', $nationID, $targetOfficerLevel, $generalID);
|
||||||
if($targetOfficerLevel === 11){
|
|
||||||
|
if($targetOfficerLevel === 11){
|
||||||
}
|
|
||||||
else if($targetOfficerLevel % 2 == 0){
|
}
|
||||||
if($general->getVar('strength') < GameConst::$chiefStatMin){
|
else if($targetOfficerLevel % 2 == 0){
|
||||||
return '무력이 부족합니다.';
|
if($general->getVar('strength') < GameConst::$chiefStatMin){
|
||||||
}
|
return '무력이 부족합니다.';
|
||||||
|
}
|
||||||
}
|
|
||||||
else{
|
}
|
||||||
if($general->getVar('intel') < GameConst::$chiefStatMin){
|
else{
|
||||||
return '지력이 부족합니다.';
|
if($general->getVar('intel') < GameConst::$chiefStatMin){
|
||||||
}
|
return '지력이 부족합니다.';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//신임 장수
|
|
||||||
$general->setVar('officer_level', $targetOfficerLevel);
|
//신임 장수
|
||||||
$general->setVar('officer_city', 0);
|
$general->setVar('officer_level', $targetOfficerLevel);
|
||||||
$db->update('nation', [
|
$general->setVar('officer_city', 0);
|
||||||
'chief_set'=> $db->sqleval('chief_set | %i', doOfficerSet(0, $targetOfficerLevel)),
|
$db->update('nation', [
|
||||||
], 'nation=%i', $nationID);
|
'chief_set'=> $db->sqleval('chief_set | %i', doOfficerSet(0, $targetOfficerLevel)),
|
||||||
$general->applyDB($db);
|
], 'nation=%i', $nationID);
|
||||||
|
$general->applyDB($db);
|
||||||
return null;
|
|
||||||
}
|
return null;
|
||||||
|
}
|
||||||
function do도시임명(General $general, int $cityID, int $targetOfficerLevel):?string{
|
|
||||||
$nationID = $general->getNationID();
|
function do도시임명(General $general, int $cityID, int $targetOfficerLevel):?string{
|
||||||
|
$nationID = $general->getNationID();
|
||||||
$db = DB::db();
|
|
||||||
|
$db = DB::db();
|
||||||
if(CityConst::byID($cityID) === null){
|
|
||||||
return '올바르지 않은 도시입니다';
|
if(CityConst::byID($cityID) === null){
|
||||||
}
|
return '올바르지 않은 도시입니다';
|
||||||
|
}
|
||||||
$officerSet = $db->queryFirstField('SELECT officer_set FROM city WHERE nation=%i AND city=%i', $nationID, $cityID);
|
|
||||||
if($officerSet === null){
|
$officerSet = $db->queryFirstField('SELECT officer_set FROM city WHERE nation=%i AND city=%i', $nationID, $cityID);
|
||||||
return '아국 도시가 아닙니다';
|
if($officerSet === null){
|
||||||
}
|
return '아국 도시가 아닙니다';
|
||||||
|
}
|
||||||
if(isOfficerSet($officerSet, $targetOfficerLevel)){
|
|
||||||
return '이미 다른 장수가 임명되어있습니다';
|
if(isOfficerSet($officerSet, $targetOfficerLevel)){
|
||||||
}
|
return '이미 다른 장수가 임명되어있습니다';
|
||||||
|
}
|
||||||
//기존 장수 일반으로
|
|
||||||
$db->update('general', [
|
//기존 장수 일반으로
|
||||||
'officer_level'=>1,
|
$db->update('general', [
|
||||||
'officer_city'=>0,
|
'officer_level'=>1,
|
||||||
], 'officer_level=%i AND officer_city=%i AND no!=%i', $targetOfficerLevel, $cityID, $general->getID());
|
'officer_city'=>0,
|
||||||
|
], 'officer_level=%i AND officer_city=%i AND no!=%i', $targetOfficerLevel, $cityID, $general->getID());
|
||||||
if($general instanceof DummyGeneral){
|
|
||||||
return null;
|
if($general instanceof DummyGeneral){
|
||||||
}
|
return null;
|
||||||
|
}
|
||||||
if($targetOfficerLevel === 4 && $general->getVar('strength') < GameConst::$chiefStatMin){
|
|
||||||
return '무력이 부족합니다.';
|
if($targetOfficerLevel === 4 && $general->getVar('strength') < GameConst::$chiefStatMin){
|
||||||
}
|
return '무력이 부족합니다.';
|
||||||
|
}
|
||||||
if($targetOfficerLevel === 3 && $general->getVar('intel') < GameConst::$chiefStatMin){
|
|
||||||
return '지력이 부족합니다.';
|
if($targetOfficerLevel === 3 && $general->getVar('intel') < GameConst::$chiefStatMin){
|
||||||
}
|
return '지력이 부족합니다.';
|
||||||
|
}
|
||||||
//신임 장수
|
|
||||||
$db->update('city', [
|
//신임 장수
|
||||||
'officer_set'=>$db->sqleval('officer_set | %i', doOfficerSet(0, $targetOfficerLevel)),
|
$db->update('city', [
|
||||||
], 'city=%i AND nation=%i', $cityID, $nationID);
|
'officer_set'=>$db->sqleval('officer_set | %i', doOfficerSet(0, $targetOfficerLevel)),
|
||||||
$general->setVar('officer_level', $targetOfficerLevel);
|
], 'city=%i AND nation=%i', $cityID, $nationID);
|
||||||
$general->setVar('officer_city', $cityID);
|
$general->setVar('officer_level', $targetOfficerLevel);
|
||||||
$general->applyDB($db);
|
$general->setVar('officer_city', $cityID);
|
||||||
|
$general->applyDB($db);
|
||||||
return null;
|
|
||||||
}
|
return null;
|
||||||
|
}
|
||||||
function do추방(General $general, int $myOfficerLevel):?string{
|
|
||||||
$generalID = $general->getID();
|
function do추방(General $general, int $myOfficerLevel):?string{
|
||||||
$generalName = $general->getVar('name');
|
$generalID = $general->getID();
|
||||||
$nationID = $general->getNationID();
|
$generalName = $general->getVar('name');
|
||||||
|
$nationID = $general->getNationID();
|
||||||
|
|
||||||
|
|
||||||
//추방할사람이 외교권자이면 불가
|
|
||||||
$permission = checkSecretPermission($general->getRaw());
|
//추방할사람이 외교권자이면 불가
|
||||||
if($permission == 4){
|
$permission = checkSecretPermission($general->getRaw());
|
||||||
return '외교권자는 추방할 수 없습니다.';
|
if($permission == 4){
|
||||||
}
|
return '외교권자는 추방할 수 없습니다.';
|
||||||
|
}
|
||||||
$db = DB::db();
|
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$db = DB::db();
|
||||||
$env = $gameStor->getValues(['startyear','year','month','scenario']);
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
$env = $gameStor->getValues(['startyear','year','month','scenario']);
|
||||||
$nation = $db->queryFirstRow('SELECT name,chief_set,color FROM nation WHERE nation=%i', $nationID);
|
|
||||||
$nationName = $nation['name'];
|
$nation = $db->queryFirstRow('SELECT name,chief_set,color FROM nation WHERE nation=%i', $nationID);
|
||||||
|
$nationName = $nation['name'];
|
||||||
$logger = $general->getLogger();
|
|
||||||
|
$logger = $general->getLogger();
|
||||||
//이미 지정했다면 무시
|
|
||||||
if(isOfficerSet($nation['chief_set'], $myOfficerLevel) || ($myOfficerLevel == 0 && $myOfficerLevel == 12)) {
|
//이미 지정했다면 무시
|
||||||
return '이미 추방 권한을 사용했습니다.';
|
if(isOfficerSet($nation['chief_set'], $myOfficerLevel) || ($myOfficerLevel == 0 && $myOfficerLevel == 12)) {
|
||||||
}
|
return '이미 추방 권한을 사용했습니다.';
|
||||||
$gold = 0;
|
}
|
||||||
$rice = 0;
|
$gold = 0;
|
||||||
// 금쌀1000이상은 남김
|
$rice = 0;
|
||||||
if($general->getVar('gold') > GameConst::$defaultGold) {
|
// 금쌀1000이상은 남김
|
||||||
$gold = $general->getVar('gold') - GameConst::$defaultGold;
|
if($general->getVar('gold') > GameConst::$defaultGold) {
|
||||||
$general->setVar('gold', GameConst::$defaultGold);
|
$gold = $general->getVar('gold') - GameConst::$defaultGold;
|
||||||
}
|
$general->setVar('gold', GameConst::$defaultGold);
|
||||||
if($general->getVar('rice') > GameConst::$defaultRice) {
|
}
|
||||||
$rice = $general->getVar('rice') - GameConst::$defaultRice;
|
if($general->getVar('rice') > GameConst::$defaultRice) {
|
||||||
$general->setVar('rice', GameConst::$defaultRice);
|
$rice = $general->getVar('rice') - GameConst::$defaultRice;
|
||||||
}
|
$general->setVar('rice', GameConst::$defaultRice);
|
||||||
|
}
|
||||||
$general->setVar('nation', 0);
|
|
||||||
$general->setVar('officer_level', 0);
|
$general->setVar('nation', 0);
|
||||||
$general->setVar('officer_city', 0);
|
$general->setVar('officer_level', 0);
|
||||||
$general->setVar('belong', 0);
|
$general->setVar('officer_city', 0);
|
||||||
$oldMakeLimit = $general->getVar('makelimit');
|
$general->setVar('belong', 0);
|
||||||
$general->setVar('makelimit', 12);
|
$oldMakeLimit = $general->getVar('makelimit');
|
||||||
$general->setVar('permission', 'normal');
|
$general->setVar('makelimit', 12);
|
||||||
|
$general->setVar('permission', 'normal');
|
||||||
$josaYi = JosaUtil::pick($generalName, '이');
|
|
||||||
$logger->pushGlobalActionLog("<Y>{$generalName}</>{$josaYi} <D><b>{$nationName}</b></>에서 <R>추방</>당했습니다.");
|
$josaYi = JosaUtil::pick($generalName, '이');
|
||||||
$logger->pushGeneralActionLog("<D><b>{$nationName}</b></>에서 <R>추방</>당했습니다.", ActionLogger::PLAIN);
|
$logger->pushGlobalActionLog("<Y>{$generalName}</>{$josaYi} <D><b>{$nationName}</b></>에서 <R>추방</>당했습니다.");
|
||||||
|
$logger->pushGeneralActionLog("<D><b>{$nationName}</b></>에서 <R>추방</>당했습니다.", ActionLogger::PLAIN);
|
||||||
// 명성/공헌 N*10%감소
|
|
||||||
if($env['year'] <= $env['startyear'] && $general->getNPCType() < 2){
|
// 명성/공헌 N*10%감소
|
||||||
$general->setVar('makelimit', $oldMakeLimit);
|
if($env['year'] <= $env['startyear'] && $general->getNPCType() < 2){
|
||||||
}
|
$general->setVar('makelimit', $oldMakeLimit);
|
||||||
else{
|
}
|
||||||
$betrayCnt = $general->getVar('betray');
|
else{
|
||||||
$general->addExperience(-$general->getVar('experience')*0.1*$betrayCnt);
|
$betrayCnt = $general->getVar('betray');
|
||||||
$general->addDedication(-$general->getVar('dedication')*0.1*$betrayCnt);
|
$general->addExperience(-$general->getVar('experience')*0.1*$betrayCnt);
|
||||||
$general->increaseVarWithLimit('betray', 1, null, GameConst::$maxBetrayCnt);
|
$general->addDedication(-$general->getVar('dedication')*0.1*$betrayCnt);
|
||||||
}
|
$general->increaseVarWithLimit('betray', 1, null, GameConst::$maxBetrayCnt);
|
||||||
|
}
|
||||||
//부대장일 경우
|
|
||||||
if($general->getVar('troop') == $generalID){
|
//부대장일 경우
|
||||||
// 모두 탈퇴
|
if($general->getVar('troop') == $generalID){
|
||||||
$db->update('general', [
|
// 모두 탈퇴
|
||||||
'troop'=>0,
|
$db->update('general', [
|
||||||
], 'troop = %i', $generalID);
|
'troop'=>0,
|
||||||
$db->delete('troop', 'troop_leader=%i', $generalID);
|
], 'troop = %i', $generalID);
|
||||||
}
|
$db->delete('troop', 'troop_leader=%i', $generalID);
|
||||||
$general->setVar('troop', 0);
|
}
|
||||||
|
$general->setVar('troop', 0);
|
||||||
if($general->getNPCType() >= 2 && ($env['scenario'] < 100 || Util::randBool(0.01))) {
|
|
||||||
|
if($general->getNPCType() >= 2 && ($env['scenario'] < 100 || Util::randBool(0.01))) {
|
||||||
$str = Util::choiceRandom([
|
|
||||||
'날 버리다니... 곧 전장에서 복수해주겠다...',
|
$str = Util::choiceRandom([
|
||||||
'추방이라... 내가 무얼 잘못했단 말인가...',
|
'날 버리다니... 곧 전장에서 복수해주겠다...',
|
||||||
'어디 추방해가면서 잘되나 보자... 꼭 복수하겠다...',
|
'추방이라... 내가 무얼 잘못했단 말인가...',
|
||||||
'인덕이 제일이거늘... 추방이 웬말인가... 저주한다!',
|
'어디 추방해가면서 잘되나 보자... 꼭 복수하겠다...',
|
||||||
'날 추방했으니 그 복수로 적국에 정보를 팔아 넘겨야겠군요. 그럼 이만.'
|
'인덕이 제일이거늘... 추방이 웬말인가... 저주한다!',
|
||||||
]);
|
'날 추방했으니 그 복수로 적국에 정보를 팔아 넘겨야겠군요. 그럼 이만.'
|
||||||
|
]);
|
||||||
$src = new MessageTarget(
|
|
||||||
$generalID,
|
$src = new MessageTarget(
|
||||||
$generalName,
|
$generalID,
|
||||||
$nationID,
|
$generalName,
|
||||||
$nation['name'],
|
$nationID,
|
||||||
$nation['color'],
|
$nation['name'],
|
||||||
GetImageURL($general->getVar('imgsvr'), $general->getVar('picture'))
|
$nation['color'],
|
||||||
);
|
GetImageURL($general->getVar('imgsvr'), $general->getVar('picture'))
|
||||||
$msg = new Message(
|
);
|
||||||
Message::MSGTYPE_PUBLIC,
|
$msg = new Message(
|
||||||
$src,
|
Message::MSGTYPE_PUBLIC,
|
||||||
$src,
|
$src,
|
||||||
$str,
|
$src,
|
||||||
new \DateTime(),
|
$str,
|
||||||
new \DateTime('9999-12-31'),
|
new \DateTime(),
|
||||||
[]
|
new \DateTime('9999-12-31'),
|
||||||
);
|
[]
|
||||||
$msg->send();
|
);
|
||||||
}
|
$msg->send();
|
||||||
|
}
|
||||||
if($env['year'] < $env['startyear']+3) {
|
|
||||||
//초반엔 군주 부상 증가(엔장 임관지양)
|
if($env['year'] < $env['startyear']+3) {
|
||||||
$db->update('general', [
|
//초반엔 군주 부상 증가(엔장 임관지양)
|
||||||
'injury'=>$db->sqleval('least(injury + 1, %i)', 80),
|
$db->update('general', [
|
||||||
], 'nation=%i AND officer_level=12', $nationID);
|
'injury'=>$db->sqleval('least(injury + 1, %i)', 80),
|
||||||
|
], 'nation=%i AND officer_level=12', $nationID);
|
||||||
$db->update('nation', [
|
|
||||||
'gennum'=>$db->sqleval('gennum - %i', $general->getNPCType()!=5?1:0),
|
$db->update('nation', [
|
||||||
'gold'=>$db->sqleval('gold + %i', $gold),
|
'gennum'=>$db->sqleval('gennum - %i', $general->getNPCType()!=5?1:0),
|
||||||
'rice'=>$db->sqleval('rice + %i', $rice),
|
'gold'=>$db->sqleval('gold + %i', $gold),
|
||||||
], 'nation = %i', $nationID);
|
'rice'=>$db->sqleval('rice + %i', $rice),
|
||||||
} else {
|
], 'nation = %i', $nationID);
|
||||||
//이번분기는 추방불가(초반 제외)
|
} else {
|
||||||
$db->update('nation', [
|
//이번분기는 추방불가(초반 제외)
|
||||||
'chief_set'=>$db->sqleval('chief_set | %i', doOfficerSet(0, $myOfficerLevel)),
|
$db->update('nation', [
|
||||||
'gennum'=>$db->sqleval('gennum - %i', $general->getNPCType()!=5?1:0),
|
'chief_set'=>$db->sqleval('chief_set | %i', doOfficerSet(0, $myOfficerLevel)),
|
||||||
'gold'=>$db->sqleval('gold + %i', $gold),
|
'gennum'=>$db->sqleval('gennum - %i', $general->getNPCType()!=5?1:0),
|
||||||
'rice'=>$db->sqleval('rice + %i', $rice),
|
'gold'=>$db->sqleval('gold + %i', $gold),
|
||||||
], 'nation = %i', $nationID);
|
'rice'=>$db->sqleval('rice + %i', $rice),
|
||||||
}
|
], 'nation = %i', $nationID);
|
||||||
|
}
|
||||||
$logger->pushGeneralHistoryLog("<D>{$nation['name']}</>에서 추방됨");
|
|
||||||
$general->applyDB($db);
|
$logger->pushGeneralHistoryLog("<D>{$nation['name']}</>에서 추방됨");
|
||||||
|
$general->applyDB($db);
|
||||||
return null;
|
|
||||||
}
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if($action == "임명") {
|
|
||||||
if(2 <= $officerLevel && $officerLevel <= 4){
|
if($action == "임명") {
|
||||||
if(!$destCityID){
|
if(2 <= $officerLevel && $officerLevel <= 4){
|
||||||
Json::die([
|
if(!$destCityID){
|
||||||
'result'=>false,
|
Json::die([
|
||||||
'reason'=>'도시가 지정되지 않았습니다.'
|
'result'=>false,
|
||||||
]);
|
'reason'=>'도시가 지정되지 않았습니다.'
|
||||||
}
|
]);
|
||||||
$result = do도시임명($general, $destCityID, $officerLevel);
|
}
|
||||||
if($result !== null){
|
$result = do도시임명($general, $destCityID, $officerLevel);
|
||||||
Json::die([
|
if($result !== null){
|
||||||
'result'=>false,
|
Json::die([
|
||||||
'reason'=>$result
|
'result'=>false,
|
||||||
]);
|
'reason'=>$result
|
||||||
}
|
]);
|
||||||
Json::die([
|
}
|
||||||
'result'=>true,
|
Json::die([
|
||||||
'reason'=>'success'
|
'result'=>true,
|
||||||
]);
|
'reason'=>'success'
|
||||||
}
|
]);
|
||||||
|
}
|
||||||
if(5 <= $officerLevel && $officerLevel < 12){
|
|
||||||
$result = do수뇌임명($general, $officerLevel);
|
if(5 <= $officerLevel && $officerLevel < 12){
|
||||||
if($result !== null){
|
$result = do수뇌임명($general, $officerLevel);
|
||||||
Json::die([
|
if($result !== null){
|
||||||
'result'=>false,
|
Json::die([
|
||||||
'reason'=>$result
|
'result'=>false,
|
||||||
]);
|
'reason'=>$result
|
||||||
}
|
]);
|
||||||
Json::die([
|
}
|
||||||
'result'=>true,
|
Json::die([
|
||||||
'reason'=>'success'
|
'result'=>true,
|
||||||
]);
|
'reason'=>'success'
|
||||||
}
|
]);
|
||||||
|
}
|
||||||
Json::die([
|
|
||||||
'result'=>false,
|
Json::die([
|
||||||
'reason'=>'올바르지 않은 지정입니다.'
|
'result'=>false,
|
||||||
]);
|
'reason'=>'올바르지 않은 지정입니다.'
|
||||||
}
|
]);
|
||||||
|
}
|
||||||
if($action == "추방") {
|
|
||||||
$result = do추방($general, $myOfficerLevel);
|
if($action == "추방") {
|
||||||
if($result !== null){
|
$result = do추방($general, $myOfficerLevel);
|
||||||
Json::die([
|
if($result !== null){
|
||||||
'result'=>false,
|
Json::die([
|
||||||
'reason'=>$result
|
'result'=>false,
|
||||||
]);
|
'reason'=>$result
|
||||||
}
|
]);
|
||||||
Json::die([
|
}
|
||||||
'result'=>true,
|
Json::die([
|
||||||
'reason'=>'success'
|
'result'=>true,
|
||||||
]);
|
'reason'=>'success'
|
||||||
}
|
]);
|
||||||
|
}
|
||||||
Json::die([
|
|
||||||
'result'=>false,
|
Json::die([
|
||||||
'reason'=>'올바르지 않은 명령입니다.'
|
'result'=>false,
|
||||||
|
'reason'=>'올바르지 않은 명령입니다.'
|
||||||
]);
|
]);
|
||||||
+194
-200
@@ -1,201 +1,195 @@
|
|||||||
function changePermission(isAmbassador, rawGeneralList){
|
function changePermission(isAmbassador, rawGeneralList) {
|
||||||
console.log(isAmbassador);
|
console.log(isAmbassador);
|
||||||
console.log(rawGeneralList);
|
console.log(rawGeneralList);
|
||||||
|
|
||||||
var generalList = [];
|
var generalList = [];
|
||||||
$.each(rawGeneralList, function(idx, value){
|
$.each(rawGeneralList, function(idx, value) {
|
||||||
generalList.push(parseInt(value.id));
|
generalList.push(parseInt(value.id));
|
||||||
})
|
})
|
||||||
|
|
||||||
$.post({
|
$.post({
|
||||||
url:'j_general_set_permission.php',
|
url: 'j_general_set_permission.php',
|
||||||
dataType:'json',
|
dataType: 'json',
|
||||||
data:{
|
data: {
|
||||||
isAmbassador:isAmbassador,
|
isAmbassador: isAmbassador,
|
||||||
genlist:generalList
|
genlist: generalList
|
||||||
},
|
},
|
||||||
}).then(function(data){
|
}).then(function(data) {
|
||||||
if(!data){
|
if (!data) {
|
||||||
alert('변경하지 못했습니다.');
|
alert('변경하지 못했습니다.');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!data.result){
|
if (!data.result) {
|
||||||
alert('변경하지 못했습니다. : '+data.reason);
|
alert('변경하지 못했습니다. : ' + data.reason);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
alert('변경했습니다.');
|
alert('변경했습니다.');
|
||||||
location.reload();
|
location.reload();
|
||||||
}, errUnknown);
|
}, errUnknown);
|
||||||
}
|
}
|
||||||
|
|
||||||
$(function(){
|
$(function() {
|
||||||
$('#selectAmbassador').select2({
|
$('#selectAmbassador').select2({
|
||||||
theme: 'bootstrap4',
|
theme: 'bootstrap4',
|
||||||
placeholder: "",
|
placeholder: "",
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
language: "ko",
|
language: "ko",
|
||||||
width:300,
|
width: 300,
|
||||||
maximumSelectionLength: 2,
|
maximumSelectionLength: 2,
|
||||||
containerCss: {
|
containerCss: {
|
||||||
display: "inline-block !important;",
|
display: "inline-block !important;",
|
||||||
color: 'white !important'
|
color: 'white !important'
|
||||||
},
|
},
|
||||||
data:candidateAmbassadors,
|
data: candidateAmbassadors,
|
||||||
//containerCssClass: 'simple-select2-align-center bg-secondary text-secondary',
|
//containerCssClass: 'simple-select2-align-center bg-secondary text-secondary',
|
||||||
dropdownCssClass: 'simple-select2-align-center bg-secondary text-secondary',
|
dropdownCssClass: 'simple-select2-align-center bg-secondary text-secondary',
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#selectAuditor').select2({
|
$('#selectAuditor').select2({
|
||||||
theme: 'bootstrap4',
|
theme: 'bootstrap4',
|
||||||
placeholder: "",
|
placeholder: "",
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
language: "ko",
|
language: "ko",
|
||||||
width:300,
|
width: 300,
|
||||||
maximumSelectionLength: 2,
|
maximumSelectionLength: 2,
|
||||||
containerCss: {
|
containerCss: {
|
||||||
display: "inline-block !important;",
|
display: "inline-block !important;",
|
||||||
color: 'white !important'
|
color: 'white !important'
|
||||||
},
|
},
|
||||||
data:candidateAuditors,
|
data: candidateAuditors,
|
||||||
//containerCssClass: 'simple-select2-align-center bg-secondary text-secondary',
|
//containerCssClass: 'simple-select2-align-center bg-secondary text-secondary',
|
||||||
dropdownCssClass: 'simple-select2-align-center bg-secondary text-secondary',
|
dropdownCssClass: 'simple-select2-align-center bg-secondary text-secondary',
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#changeAmbassador').click(function(){
|
$('#changeAmbassador').click(function() {
|
||||||
if(!confirm('외교권자를 변경할까요?')){
|
if (!confirm('외교권자를 변경할까요?')) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
changePermission(true, $('#selectAmbassador').select2('data'));
|
changePermission(true, $('#selectAmbassador').select2('data'));
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#changeAuditor').click(function(){
|
$('#changeAuditor').click(function() {
|
||||||
if(!confirm('조언자를 변경할까요?')){
|
if (!confirm('조언자를 변경할까요?')) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
changePermission(false, $('#selectAuditor').select2('data'));
|
changePermission(false, $('#selectAuditor').select2('data'));
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btn_kick').click(function(){
|
$('#btn_kick').click(function() {
|
||||||
var $kickSelect = $('#genlist_kick option:selected');
|
var $kickSelect = $('#genlist_kick option:selected');
|
||||||
var generalID = $kickSelect.val();
|
var generalID = $kickSelect.val();
|
||||||
if(!generalID){
|
if (!generalID) {
|
||||||
alert('장수를 선택해주세요');
|
alert('장수를 선택해주세요');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var generalName = $kickSelect.data('name');
|
var generalName = $kickSelect.data('name');
|
||||||
if(!confirm('{0}를 추방하시겠습니까?'.format(generalName))){
|
if (!confirm('{0}를 추방하시겠습니까?'.format(generalName))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$.post({
|
$.post({
|
||||||
url:'j_myBossInfo.php',
|
url: 'j_myBossInfo.php',
|
||||||
dataType:'json',
|
dataType: 'json',
|
||||||
data:{
|
data: {
|
||||||
action:'추방',
|
action: '추방',
|
||||||
destGeneralID:generalID
|
destGeneralID: generalID
|
||||||
},
|
},
|
||||||
}).then(function(data){
|
}).then(function(data) {
|
||||||
if(!data){
|
if (!data) {
|
||||||
alert('추방하지 못했습니다.');
|
alert('추방하지 못했습니다.');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!data.result){
|
if (!data.result) {
|
||||||
alert('추방하지 못했습니다. : '+data.reason);
|
alert('추방하지 못했습니다. : ' + data.reason);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
alert('{0}를 추방했습니다.'.format(generalName));
|
alert('{0}를 추방했습니다.'.format(generalName));
|
||||||
location.reload();
|
location.reload();
|
||||||
}, errUnknown);
|
}, errUnknown);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.btn_appoint').click(function(){
|
$('.btn_appoint').click(function() {
|
||||||
var $btn = $(this);
|
var $btn = $(this);
|
||||||
var officerLevel = $btn.data('officer_level');
|
var officerLevel = $btn.data('officer_level');
|
||||||
var officerLevelText = $btn.data('officer_level_text');
|
var officerLevelText = $btn.data('officer_level_text');
|
||||||
var cityID = 0;
|
var cityID = 0;
|
||||||
var cityName = '_';
|
var cityName = '_';
|
||||||
var $generalSelect = $('#genlist_{0} option:selected'.format(officerLevel));
|
var $generalSelect = $('#genlist_{0} option:selected'.format(officerLevel));
|
||||||
var $citySelect = $('#citylist_{0} option:selected'.format(officerLevel));
|
var $citySelect = $('#citylist_{0} option:selected'.format(officerLevel));
|
||||||
|
|
||||||
var generalID = $generalSelect.val();
|
var generalID = parseInt($generalSelect.val());
|
||||||
var generalName = $generalSelect.data('name');
|
var generalName = $generalSelect.data('name');
|
||||||
var generalOfficerLevel = $generalSelect.data('officer_level');
|
var generalOfficerLevel = $generalSelect.data('officer_level');
|
||||||
|
|
||||||
|
|
||||||
if(officerLevel >= 5){
|
if (officerLevel >= 5) {
|
||||||
if(generalID == 0){
|
if (generalID == 0) {
|
||||||
if(!confirm('{0}직을 비우시겠습니까?'.format(officerLevelText))){
|
if (!confirm('{0}직을 비우시겠습니까?'.format(officerLevelText))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
} else if (generalOfficerLevel >= 5) {
|
||||||
else if(generalOfficerLevel >= 5){
|
if (!confirm('이미 수뇌인 {0}을(를) {1}직에 임명하시겠습니까?'.format(generalName, officerLevelText))) {
|
||||||
if(!confirm('이미 수뇌인 {0}을(를) {1}직에 임명하시겠습니까?'.format(generalName, officerLevelText))){
|
return false;
|
||||||
return false;
|
}
|
||||||
}
|
} else {
|
||||||
}
|
if (!confirm('{0}을(를) {1}직에 임명하시겠습니까?'.format(generalName, officerLevelText))) {
|
||||||
else{
|
return false;
|
||||||
if(!confirm('{0}을(를) {1}직에 임명하시겠습니까?'.format(generalName, officerLevelText))){
|
}
|
||||||
return false;
|
}
|
||||||
}
|
} else {
|
||||||
}
|
cityID = $citySelect.val();
|
||||||
}
|
if (!cityID) {
|
||||||
else{
|
alert('도시를 선택해주세요');
|
||||||
cityID = $citySelect.val();
|
return false;
|
||||||
if(!cityID){
|
}
|
||||||
alert('도시를 선택해주세요');
|
cityName = $citySelect.find('option:selected .name_field').text();
|
||||||
return false;
|
|
||||||
}
|
if (generalID == 0) {
|
||||||
cityName = $citySelect.find('option:selected .name_field').text();
|
if (!confirm('{0} {1}직을 비우시겠습니까?'.format(cityName, officerLevelText))) {
|
||||||
|
return false;
|
||||||
if(generalID == 0){
|
}
|
||||||
if(!confirm('{0} {1}직을 비우시겠습니까?'.format(cityName, officerLevelText))){
|
} else if (generalOfficerLevel >= 5) {
|
||||||
return false;
|
if (!confirm('수뇌인 {0}을(를) {1} {2}직에 임명하시겠습니까?'.format(generalName, cityName, officerLevelText))) {
|
||||||
}
|
return false;
|
||||||
}
|
}
|
||||||
else if(generalOfficerLevel >= 5){
|
} else {
|
||||||
if(!confirm('수뇌인 {0}을(를) {1} {2}직에 임명하시겠습니까?'.format(generalName, cityName, officerLevelText))){
|
if (!confirm('{0}을(를) {1} {2}직에 임명하시겠습니까?'.format(generalName, cityName, officerLevelText))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
}
|
||||||
if(!confirm('{0}을(를) {1} {2}직에 임명하시겠습니까?'.format(generalName, cityName, officerLevelText))){
|
|
||||||
return false;
|
$.post({
|
||||||
}
|
url: 'j_myBossInfo.php',
|
||||||
}
|
dataType: 'json',
|
||||||
}
|
data: {
|
||||||
|
action: '임명',
|
||||||
$.post({
|
destGeneralID: generalID,
|
||||||
url:'j_myBossInfo.php',
|
destCityID: cityID,
|
||||||
dataType:'json',
|
officerLevel: officerLevel
|
||||||
data:{
|
},
|
||||||
action:'임명',
|
}).then(function(data) {
|
||||||
destGeneralID:generalID,
|
if (!data) {
|
||||||
destCityID:cityID,
|
alert('임명하지 못했습니다.');
|
||||||
officerLevel:officerLevel
|
return false;
|
||||||
},
|
}
|
||||||
}).then(function(data){
|
if (!data.result) {
|
||||||
if(!data){
|
alert('임명하지 못했습니다. : ' + data.reason);
|
||||||
alert('임명하지 못했습니다.');
|
return false;
|
||||||
return false;
|
}
|
||||||
}
|
|
||||||
if(!data.result){
|
if (generalID) {
|
||||||
alert('임명하지 못했습니다. : '+data.reason);
|
alert('{0}을(를) 임명했습니다.'.format(generalName));
|
||||||
return false;
|
} else {
|
||||||
}
|
alert('관직을 비웠습니다.');
|
||||||
|
}
|
||||||
if(generalID){
|
|
||||||
alert('{0}을(를) 임명했습니다.'.format(generalName));
|
location.reload();
|
||||||
}
|
}, errUnknown);
|
||||||
else{
|
|
||||||
alert('관직을 비웠습니다.');
|
})
|
||||||
}
|
|
||||||
|
|
||||||
location.reload();
|
|
||||||
}, errUnknown);
|
|
||||||
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
Reference in New Issue
Block a user