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 ?>: 내정보
= WebUtil::printStaticValues([
- 'availableDieImmediately' => $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;
-
+
가오픈 기간 내 장수 삭제 (= substr($targetTime, 0, 19) ?> 부터)
-
+
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('..');
});