임시로 외교 서신 받는 기능 추가

This commit is contained in:
2018-04-17 01:54:57 +09:00
parent e90e508005
commit 7ef3f0d5c5
+9 -80
View File
@@ -29,13 +29,6 @@ if ($msgID === null || !is_bool($msgResponse)) {
]);
}
$msg = Message::getMessageByID($msgID);
if($msg === null){
Json::die([
'result'=>false,
'reason'=>'올바르지 않은 메시지'
]);
}
$general = DB::db()->queryFirstRow('select `no`, `name`, `nation`, `nations`, `level`, `npc`, `gold`, `rice`, `troop` from `general` where `no` = %i', $generalID);
if(!$general){
Json::die([
@@ -44,87 +37,23 @@ if(!$general){
]);
}
list($result, $messageInfo) = getSingleMessage($msgID);
if (!$result) {
$msg = Message::getMessageByID($msgID);
if($msg === null){
Json::die([
'result'=>false,
'reason'=>$messageInfo
'reason'=>'올바르지 않은 메시지'
]);
}
'@phan-var-force mixed[] $messageInfo';
$msgType = $messageInfo['type'];
$validUntil = $messageInfo['valid_until'];
$date = date('Y-m-d H:i:s');
if ($validUntil < $date) {
Json::die([
'result'=>false,
'reason'=>'만료된 메시지'
]);
if($msgResponse){
$result = $msg->agreeMessage($general['no']);
}
$msgOption = Json::decode(Util::array_get($messageInfo['option'], '{}'));
$msgAction = Util::array_get($msgOption['action'], null);
$messageInfo['option'] = $msgOption;
$msgSrc = Json::decode($messageInfo['src']);
$messageInfo['src'] = $msgSrc;
$msgDest = Json::decode($messageInfo['dest']);
$messageInfo['dest'] = $msgDest;
if (!$msgAction) {
Json::die([
'result'=>false,
'reason'=>'응답 대상 메시지 아님'
]);
}
if ($msgType == 'diplomacy' && $msgSrc['nation_id'] != $msgDest['nation_id']) {
//여기로 올일이 있나?
Json::die([
'result'=>false,
'reason'=>'(버그) 외교 대상 동일'
]);
}
if($msgType == 'diplomacy'){
if($general['level'] < 6){
Json::die([
'result'=>false,
'reason'=>'외교 권한 없음'
]);
}
if($general['nation'] != $msgDest['nation_id']){
Json::die([
'result'=>false,
'reason'=>'올바르지 않은 소속 국가'
]);
}
}
switch ($msgAction) {
case 'scout':
//TODO: 등용장 받음. 함수 호출
$result = acceptScout($messageInfo, $general, $msgResponse);
break;
case 'ally':
$result = acceptAlly($messageInfo, $general, $msgResponse);
break;
//TODO:기타 등등
case '':
Json::die([]);
break;
default:
//구현이 정상적으로 된 경우 이쪽으로 오지 않음
$result = [false, '처리 대상 아님'];
else{
$result = $msg->declineMessage($general['no']);
}
Json::die([
'result' => $result[0],
'reason' => $result[1]
'result' => $result===DiplomaticMessage::ACCEPTED,
'reason' => 'result'
]);