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', [