diff --git a/hwe/b_myPage.php b/hwe/b_myPage.php index e72171e4..86604c68 100644 --- a/hwe/b_myPage.php +++ b/hwe/b_myPage.php @@ -18,21 +18,24 @@ if($tnmt < 0 || $tnmt > 1){ $tnmt = 1; } +$showDieImmediatelyBtn = false; +$availableDieImmediately = false; + //로그인 검사 $session = Session::requireGameLogin()->setReadOnly(); $userID = Session::getUserID(); $db = DB::db(); $gameStor = KVStorage::getStorage($db, 'game_env'); +$gameStor->cacheValues(['turnterm', 'opentime', 'turntime']); $connect=$db->get(); increaseRefresh("내정보", 1); -$query = "select no,npc,mode,tnmt,myset,train,atmos from general where owner='{$userID}'"; +$query = "select no,npc,mode,tnmt,myset,train,atmos,lastrefresh from general where owner='{$userID}'"; $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), ""); $me = MYDB_fetch_array($result); - if ($me['myset'] > 0) { $submit = 'submit'; } else { @@ -91,6 +94,13 @@ if (($btn == "설정저장" || $detachNPC) && $me['myset'] > 0) { } } +if($gameStor->turntime <= $gameStor->opentime){ + //서버 가오픈시 할 수 있는 행동 + $showDieImmediatelyBtn = true; + if(addTurn($me['lastrefresh'], $gameStor->turnterm, 2) <= TimeUtil::DatetimeNow()){ + $availableDieImmediately = true; + } +} ?> @@ -106,7 +116,21 @@ if (($btn == "설정저장" || $detachNPC) && $me['myset'] > 0) { + @@ -138,6 +162,12 @@ if (($btn == "설정저장" || $detachNPC) && $me['myset'] > 0) {

+ + + 가오픈 기간 내 장수 삭제
+

+ + 개인용 CSS
diff --git a/hwe/c_die_immediately.php b/hwe/c_die_immediately.php new file mode 100644 index 00000000..de600f30 --- /dev/null +++ b/hwe/c_die_immediately.php @@ -0,0 +1,67 @@ +queryFirstRow('SELECT no,name,name2,npc,lastrefresh FROM general WHERE owner=%i', $userID); + +if(!$general){ + header('location:b_myPage.php'); + die(); +} + +increaseRefresh("장수 삭제", 1); +$gameStor->cacheValues(['turnterm', 'opentime', 'turntime', 'year', 'month']); + +if($gameStor->turntime <= $gameStor->opentime){ + //서버 가오픈시 할 수 있는 행동 + if(addTurn($general['lastrefresh'], $gameStor->turnterm, 2) <= TimeUtil::DatetimeNow()){ + $availableDieImmediately = true; + } +} + +if(!$availableDieImmediately){ + header('location:b_myPage.php'); + die(); +} + + +if($general['npc'] == 0){ + if(!$db->query('DELETE FROM general WHERE owner=%i AND npc=0', $userID)){ + trigger_error("올바르지 않은 삭제 프로세스 $userID", E_USER_WARNING); + } + $generalName = $general['name']; + $josaYi = JosaUtil::pick($generalName, '이'); + pushGeneralPublicRecord(["●{$gameStor->month}월:{$generalName}{$josaYi} 이 홀연히 모습을 감추었습니다"], $gameStor->year, $gameStor->month); +} +else{ + $turnterm = $gameStor->turnterm; + if($turnterm < 10){ + $targetKillTurn = 30 / $turnterm; + } + else{ + $targetKillTurn = 60 / $turnterm; + } + if(!$db->update('general', [ + 'killturn'=>$targetKillTurn + ], 'owner=%i AND npc=1', $userID)){ + trigger_error("올바르지 않은 빙의 해제 프로세스 $userID", E_USER_WARNING); + } + $generalName = $general['name2']; + $josaYi = JosaUtil::pick($generalName, '이'); + pushGeneralPublicRecord(["●{$gameStor->month}월:{$generalName}{$josaYi} 이 홀연히 모습을 감추었습니다"], $gameStor->year, $gameStor->month); +} + + +$session->logoutGame(); +header('location:..'); \ No newline at end of file diff --git a/hwe/join_post.php b/hwe/join_post.php index 89bd02cc..a7e0395f 100644 --- a/hwe/join_post.php +++ b/hwe/join_post.php @@ -189,8 +189,8 @@ else{ $turntime = getRandTurn($admin['turnterm'], new \DateTimeImmutable($admin['turntime'])); -$lastconnect = date('Y-m-d H:i:s'); -if ($lastconnect >= $turntime) { +$now = date('Y-m-d H:i:s'); +if ($now >= $turntime) { $turntime = addTurn($turntime, $admin['turnterm']); } @@ -233,7 +233,8 @@ $db->insert('general', [ 'level' => 0, 'turntime' => $turntime, 'killturn' => 6, - 'lastconnect' => $lastconnect, + 'lastconnect' => $now, + 'lastrefresh' => $now, 'crewtype'=>GameUnitConst::DEFAULT_CREWTYPE, 'makelimit' => 0, 'age' => $age,