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) {
=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
=WebUtil::printCSS('../d_shared/common.css')?>
=WebUtil::printCSS('css/common.css')?>
+
@@ -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,