From 687559a1a320839ac6288314b3d4b53dc3527044 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Sat, 2 Jul 2022 02:43:10 +0900 Subject: [PATCH] =?UTF-8?q?refac:=20=EC=9E=A5=EC=88=98=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=EB=A5=BC=20api=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .phan/config.php | 1 - hwe/b_myPage.php | 14 ++--- hwe/j_die_immediately.php | 61 --------------------- hwe/sammo/API/General/DieOnPrestart.php | 71 +++++++++++++++++++++++++ hwe/ts/SammoAPI.ts | 1 + hwe/ts/myPage.ts | 17 +----- 6 files changed, 81 insertions(+), 84 deletions(-) delete mode 100644 hwe/j_die_immediately.php create mode 100644 hwe/sammo/API/General/DieOnPrestart.php diff --git a/.phan/config.php b/.phan/config.php index b808b9ed..e14e398c 100644 --- a/.phan/config.php +++ b/.phan/config.php @@ -83,7 +83,6 @@ return [ 'hwe/j_board_article_add.php', 'hwe/j_board_comment_add.php', 'hwe/j_board_get_articles.php', - 'hwe/j_die_immediately.php', 'hwe/j_diplomacy_destroy_letter.php', 'hwe/j_diplomacy_get_letter.php', 'hwe/j_diplomacy_respond_letter.php', diff --git a/hwe/b_myPage.php b/hwe/b_myPage.php index 697d2a94..e78c63de 100644 --- a/hwe/b_myPage.php +++ b/hwe/b_myPage.php @@ -5,8 +5,8 @@ namespace sammo; include "lib.php"; include "func.php"; -$showDieImmediatelyBtn = false; -$availableDieImmediately = false; +$showDieOnPrestart = false; +$availableDieOnPrestart = false; //로그인 검사 $session = Session::requireGameLogin()->setReadOnly(); @@ -32,9 +32,9 @@ $targetTime = addTurn($me->getVar('lastrefresh'), $gameStor->turnterm, 2); if ($gameStor->turntime <= $gameStor->opentime) { //서버 가오픈시 할 수 있는 행동 if ($me->getNPCType() == 0) { - $showDieImmediatelyBtn = true; + $showDieOnPrestartBtn = true; if ($targetTime <= TimeUtil::now()) { - $availableDieImmediately = true; + $availableDieOnPrestart = true; } } } @@ -51,7 +51,7 @@ $use_auto_nation_turn = $me->getAuxVar('use_auto_nation_turn') ?? 1; <?= UniqueConst::$serverName ?>: 내정보 $availableDieImmediately, + 'availableDieOnPrestart' => $availableDieOnPrestart, 'staticValues' => [ 'items' => Util::mapWithKey(fn (string $key, BaseItem $item) => [ 'name' => $item->getName(), @@ -122,9 +122,9 @@ $use_auto_nation_turn = $me->getAuxVar('use_auto_nation_turn') ?? 1; - + 가오픈 기간 내 장수 삭제 ( 부터)
-

+

npcmode == 2 && $me->getNPCType() == 0) : ?> diff --git a/hwe/j_die_immediately.php b/hwe/j_die_immediately.php deleted file mode 100644 index 86063d0f..00000000 --- a/hwe/j_die_immediately.php +++ /dev/null @@ -1,61 +0,0 @@ -queryFirstRow('SELECT no,name,owner_name,npc,lastrefresh FROM general WHERE owner=%i AND npc = 0', $userID); - -if(!$general){ - Json::die([ - 'result'=>false, - 'reason'=>'장수가 없습니다.' - ]); -} - -increaseRefresh("장수 삭제", 1); -$gameStor->cacheValues(['turnterm', 'opentime', 'turntime', 'year', 'month']); - -if($gameStor->turntime > $gameStor->opentime){ - Json::die([ - 'result'=>false, - 'reason'=>'이미 서버가 시작되었습니다.' - ]); -} - - -$targetTime = addTurn($general['lastrefresh'], $gameStor->turnterm, 2); -if($targetTime > TimeUtil::now()){ - $targetTimeShort = substr($targetTime, 0, 19); - Json::die([ - 'result'=>false, - 'reason'=>"아직 삭제할 수 없습니다. {$targetTimeShort} 부터 가능합니다." - ]); -} - - -$generalObj = General::createGeneralObjFromDB($general['no']); -if($generalObj instanceof DummyGeneral){ - trigger_error("올바르지 않은 삭제 프로세스 $userID", E_USER_WARNING); -} -$generalName = $generalObj->getName(); -$josaYi = JosaUtil::pick($generalName, '이'); -$generalObj->kill($db, true, "{$generalName}{$josaYi} 이 홀연히 모습을 감추었습니다"); - -$session->logoutGame(); -Json::die([ - 'result'=>true, - 'reason'=>'success' -]); \ No newline at end of file diff --git a/hwe/sammo/API/General/DieOnPrestart.php b/hwe/sammo/API/General/DieOnPrestart.php new file mode 100644 index 00000000..d0e61386 --- /dev/null +++ b/hwe/sammo/API/General/DieOnPrestart.php @@ -0,0 +1,71 @@ +userID; + + + $db = DB::db(); + $gameStor = KVStorage::getStorage($db, 'game_env'); + $gameStor->cacheValues(['turnterm', 'opentime', 'turntime', 'year', 'month']); + + $general = $db->queryFirstRow('SELECT no,name,owner_name,npc,lastrefresh FROM general WHERE owner=%i AND npc = 0', $userID); + + if (!$general) { + return '장수가 없습니다'; + } + + increaseRefresh("장수 삭제", 1); + + + if ($gameStor->turntime > $gameStor->opentime) { + return '게임이 시작되었습니다.'; + } + + //서버 가오픈시 할 수 있는 행동 + $targetTime = addTurn($general['lastrefresh'], $gameStor->turnterm, 2); + if ($targetTime > TimeUtil::now()) { + $targetTimeShort = substr($targetTime, 0, 19); + return "아직 삭제할 수 없습니다. {$targetTimeShort} 부터 가능합니다."; + } + + $generalObj = General::createGeneralObjFromDB($general['no']); + if ($generalObj instanceof DummyGeneral) { + trigger_error("올바르지 않은 삭제 프로세스 $userID", E_USER_WARNING); + } + + $generalName = $generalObj->getName(); + $josaYi = JosaUtil::pick($generalName, '이'); + $generalObj->kill($db, true, "{$generalName}{$josaYi} 이 홀연히 모습을 감추었습니다"); + + $session->logoutGame(); + return null; + } +} diff --git a/hwe/ts/SammoAPI.ts b/hwe/ts/SammoAPI.ts index 04e36d78..95d7a654 100644 --- a/hwe/ts/SammoAPI.ts +++ b/hwe/ts/SammoAPI.ts @@ -125,6 +125,7 @@ const apiRealPath = { DropItem: PUT as APICallT<{ itemType: ItemTypeKey; }>, + DieOnPrestart: POST as APICallT, }, Global: { GeneralList: GET as APICallT, diff --git a/hwe/ts/myPage.ts b/hwe/ts/myPage.ts index 4be1f0e1..7b1cb17c 100644 --- a/hwe/ts/myPage.ts +++ b/hwe/ts/myPage.ts @@ -130,22 +130,15 @@ $(function ($) { }); - $('#die_immediately').on('click', async function (e) { + $('#dieOnPrestart').on('click', async function (e) { e.preventDefault(); if (!confirm('정말로 삭제하시겠습니까?')) { return false; } - let result: InvalidResponse; - try { - const response = await axios({ - url: 'j_die_immediately.php', - method: 'post', - responseType: 'json', - }); - result = response.data; + await SammoAPI.General.DieOnPrestart(); } catch (e) { console.log(e); @@ -154,12 +147,6 @@ $(function ($) { return; } - if (!result.result) { - alert(`실패했습니다: ${result.reason}`); - location.reload(); - return; - } - location.replace('..'); });