From 83abf44380dd4846d58af55af36e75a696f97f19 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Sun, 18 Feb 2024 03:24:21 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9C=A0=EC=A0=80=EC=9D=98=20=EC=A0=9C?= =?UTF-8?q?=EC=9E=AC=20=EB=AA=A9=EB=A1=9D=EC=9D=84=20=EC=9E=A5=EC=88=98=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1/=EB=B9=99=EC=9D=98=EC=8B=9C=20=EA=B0=80?= =?UTF-8?q?=EC=A0=B8=EC=98=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/j_select_npc.php | 11 ++++++++--- hwe/sammo/API/General/Join.php | 8 ++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/hwe/j_select_npc.php b/hwe/j_select_npc.php index 4524c6f7..d30b1435 100644 --- a/hwe/j_select_npc.php +++ b/hwe/j_select_npc.php @@ -27,14 +27,18 @@ $rootDB = RootDB::db(); $oNow = new \DateTimeImmutable(); $now = $oNow->format('Y-m-d H:i:s'); -$userNick = RootDB::db()->queryFirstField('SELECT `NAME` FROM member WHERE `NO`=%i',$userID); -if(!$userNick){ +$member = $rootDB->queryFirstRow('SELECT `name`, `penalty` FROM member WHERE `NO`=%i', $userID); +if(!$member){ Json::die([ 'result'=>false, 'reason'=>'멤버 정보를 가져오지 못했습니다.' ]); } +$userNick = $member['name']; +$memberPenalty = JSON::decode($member['penalty'] ?? '{}'); +$penalty = array_merge($memberPenalty['any'] ?? [], $memberPenalty[DB::prefix()] ?? []); + $pickResult = $db->queryFirstField('SELECT pick_result FROM select_npc_token WHERE `owner`=%i AND `valid_until`>=%s', $userID, $now); if(!$pickResult){ Json::die([ @@ -86,7 +90,8 @@ $db->update('general', [ 'defence_train'=>80, 'permission'=>'normal', 'owner'=>$userID, - 'aux'=>Json::encode($genAux) + 'aux'=>Json::encode($genAux), + 'penalty'=>Json::encode($penalty), ], 'owner <= 0 AND npc = 2 AND no = %i', $pick); $db->insertIgnore('general_access_log', [ GeneralAccessLogColumn::generalID->value => $pick, diff --git a/hwe/sammo/API/General/Join.php b/hwe/sammo/API/General/Join.php index d4713ddb..33343b13 100644 --- a/hwe/sammo/API/General/Join.php +++ b/hwe/sammo/API/General/Join.php @@ -149,12 +149,15 @@ class Join extends \sammo\BaseAPI $rootDB = RootDB::db(); //회원 테이블에서 정보확인 - $member = $rootDB->queryFirstRow('SELECT `no`, id, picture, grade, `name`, imgsvr FROM member WHERE no=%i', $userID); + $member = $rootDB->queryFirstRow('SELECT `no`, id, picture, grade, `name`, imgsvr, `penalty` FROM member WHERE no=%i', $userID); if (!$member) { return "잘못된 접근입니다!!!"; } + $memberPenalty = JSON::decode($member['penalty'] ?? "{}"); + $penalty = array_merge($memberPenalty['any'] ?? [], $memberPenalty[DB::prefix()] ?? []); + $db = DB::db(); $gameStor = KVStorage::getStorage($db, 'game_env'); $gameStor->cacheValues(['year', 'month', 'maxgeneral', 'scenario', 'show_img_level', 'block_general_create', 'turnterm', 'turntime', 'genius', 'npcmode']); @@ -424,7 +427,8 @@ class Join extends \sammo\BaseAPI 'specage' => $specage, 'special' => $special, 'specage2' => $specage2, - 'special2' => $special2 + 'special2' => $special2, + 'penalty' => Json::encode($penalty), ]); $generalID = $db->insertId(); $db->insert('general_access_log', [