diff --git a/hwe/_admin2_submit.php b/hwe/_admin2_submit.php
index a5359528..968d34d4 100644
--- a/hwe/_admin2_submit.php
+++ b/hwe/_admin2_submit.php
@@ -38,13 +38,13 @@ if ($genlist) {
}
switch ($btn) {
case "전체 접속허용":
- $db->update('general', [
- 'con' => 0
+ $db->update('general_access_log', [
+ 'refresh_score' => 0
], true);
break;
case "전체 접속제한":
- $db->update('general', [
- 'con' => 1000
+ $db->update('general_access_log', [
+ 'refresh_score' => 1000
], true);
break;
case "블럭 해제":
@@ -186,14 +186,14 @@ switch ($btn) {
], '`no` IN %li', $genlist);
break;
case "접속 허용":
- $db->update('general', [
- 'con' => 0
- ], '`no` IN %li', $genlist);
+ $db->update('general_access_log', [
+ 'refresh_score' => 0
+ ], '`general_id` IN %li', $genlist);
break;
case "접속 제한":
- $db->update('general', [
- 'con' => 1000
- ], '`no` IN %li', $genlist);
+ $db->update('general_access_log', [
+ 'refresh_score' => 1000
+ ], '`general_id` IN %li', $genlist);
break;
case "메세지 전달":
$text = $msg ?? '';
diff --git a/hwe/a_genList.php b/hwe/a_genList.php
index aebeac24..68c6bcbf 100644
--- a/hwe/a_genList.php
+++ b/hwe/a_genList.php
@@ -16,10 +16,13 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("장수일람", 2);
-$me = $db->queryFirstRow('SELECT con,turntime FROM general WHERE owner = %i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT refresh_score,turntime FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner = %i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
printLimitMsg($me['turntime']);
exit();
}
diff --git a/hwe/a_kingdomList.php b/hwe/a_kingdomList.php
index 7f45c2c9..d54444cc 100644
--- a/hwe/a_kingdomList.php
+++ b/hwe/a_kingdomList.php
@@ -13,10 +13,13 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
$gameStor->cacheValues(['killturn', 'autorun_user', 'turnterm']);
increaseRefresh("세력일람", 2);
-$me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT refresh_score, turntime FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
printLimitMsg($me['turntime']);
exit();
}
diff --git a/hwe/b_betting.php b/hwe/b_betting.php
index d97c5a96..7fdd8ecd 100644
--- a/hwe/b_betting.php
+++ b/hwe/b_betting.php
@@ -21,12 +21,15 @@ $generalID = $session->generalID;
-$me = $db->queryFirstRow('SELECT no,tournament,con,turntime from general where owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no,tournament,refresh_score,turntime FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id where owner=%i', $userID
+);
$admin = $gameStor->getValues(['tournament', 'phase', 'tnmt_type', 'turnterm', 'develcost']);
$turnTerm = $admin['turnterm'];
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
printLimitMsg($me['turntime']);
exit();
}
@@ -107,7 +110,7 @@ if ($str3) {
?>
-
diff --git a/hwe/b_genList.php b/hwe/b_genList.php
index 5725b7b2..0cbae607 100644
--- a/hwe/b_genList.php
+++ b/hwe/b_genList.php
@@ -19,12 +19,15 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("암행부", 1);
-$me = $db->queryFirstRow('SELECT no,nation,officer_level,con,turntime,belong,permission,penalty from general where owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no,nation,officer_level,refresh_score,turntime,belong,permission,penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
$nationLevel = $db->queryFirstField('SELECT level FROM nation WHERE nation=%i', $me['nation']);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
printLimitMsg($me['turntime']);
exit();
}
@@ -45,7 +48,7 @@ $templates = new \League\Plates\Engine('templates');
?>
-
diff --git a/hwe/b_tournament.php b/hwe/b_tournament.php
index ea74537a..461c18d1 100644
--- a/hwe/b_tournament.php
+++ b/hwe/b_tournament.php
@@ -14,14 +14,16 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("토너먼트", 1);
TurnExecutionHelper::executeAllCommand();
-$me = $db->queryFirstRow('select no,tournament,con,turntime from general where owner=%i', $userID);
-$generalID = $session->generalID;
+$me = $db->queryFirstRow(
+ 'SELECT no,tournament,refresh_score,turntime from `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id where owner=%i', $userID
+);
$admin = $gameStor->getValues(['tournament', 'phase', 'turnterm', 'tnmt_msg', 'tnmt_type', 'develcost', 'tnmt_trig']);
$turnTerm = $admin['turnterm'];
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
printLimitMsg($me['turntime']);
exit();
}
@@ -100,7 +102,7 @@ $globalBetTotal = array_sum($globalBet);
?>
-
diff --git a/hwe/func.php b/hwe/func.php
index b1ed51b6..90f5da0a 100644
--- a/hwe/func.php
+++ b/hwe/func.php
@@ -105,10 +105,9 @@ function GetImageURL($imgsvr, $filepath = '')
}
/**
- * @param null|int $con 장수의 벌점
- * @param null|int $conlimit 최대 벌점
+ * @param null|int $refreshScore 장수의 벌점
*/
-function checkLimit($con = null)
+function checkLimit($refreshScore = null)
{
$session = Session::getInstance();
if ($session->userGrade >= 4) {
@@ -118,15 +117,15 @@ function checkLimit($con = null)
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
- if ($con === null) {
- $con = $db->queryFirstField('SELECT con FROM general WHERE `owner`=%i', Session::getUserID());
+ if ($refreshScore === null) {
+ $refreshScore = $db->queryFirstField('SELECT refresh_score FROM general_access_log WHERE `general_id`=%i', Session::getGeneralID());
}
- $conlimit = $gameStor->conlimit;
+ $refreshLimit = $gameStor->refreshLimit;
- if ($con > $conlimit) {
+ if ($refreshScore > $refreshLimit) {
return 2;
//접속제한 90%이면 경고문구
- } elseif ($con > $conlimit * 0.9) {
+ } elseif ($refreshScore > $refreshLimit * 0.9) {
return 1;
} else {
return 0;
@@ -753,7 +752,7 @@ function generalInfo(General $generalObj)
부대 |
{$troopInfo} |
벌점 |
- " . getRefreshScoreText($refreshScoreTotal) . " {$refreshScoreTotal}({$generalObj->getVar('con')}) |
+ " . getRefreshScoreText($refreshScoreTotal) . " {$refreshScoreTotal}({$generalObj->getVar('refresh_score')}) |
";
}
@@ -1087,13 +1086,13 @@ function CheckOverhead()
//서버정보
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
- list($turnterm, $conlimit) = $gameStor->getValuesAsArray(['turnterm', 'conlimit']);
+ [$turnterm, $refreshLimit] = $gameStor->getValuesAsArray(['turnterm', 'refreshLimit']);
- $con = Util::round(pow($turnterm, 0.6) * 3) * 10;
+ $nextRefreshLimit = Util::round(pow($turnterm, 0.6) * 3) * 10;
- if ($con != $conlimit) {
- $gameStor->conlimit = $con;
+ if ($nextRefreshLimit != $refreshLimit) {
+ $gameStor->refreshLimit = $nextRefreshLimit;
}
}
diff --git a/hwe/func_converter.php b/hwe/func_converter.php
index 84bbf0ca..97d60796 100644
--- a/hwe/func_converter.php
+++ b/hwe/func_converter.php
@@ -133,19 +133,19 @@ function getNationType(?string $type) {
}
-function getRefreshScoreText($con) {
- if($con < 50) $conname = '안함';
- elseif($con < 100) $conname = '무관심';
- elseif($con < 200) $conname = '가끔';
- elseif($con < 400) $conname = '보통';
- elseif($con < 800) $conname = '자주';
- elseif($con < 1600) $conname = '열심';
- elseif($con < 3200) $conname = '중독';
- elseif($con < 6400) $conname = '폐인';
- elseif($con < 12800) $conname = '경고';
- else $conname = '헐...';
+function getRefreshScoreText($score) {
+ if($score < 50) $scoreName = '안함';
+ elseif($score < 100) $scoreName = '무관심';
+ elseif($score < 200) $scoreName = '가끔';
+ elseif($score < 400) $scoreName = '보통';
+ elseif($score < 800) $scoreName = '자주';
+ elseif($score < 1600) $scoreName = '열심';
+ elseif($score < 3200) $scoreName = '중독';
+ elseif($score < 6400) $scoreName = '폐인';
+ elseif($score < 12800) $scoreName = '경고';
+ else $scoreName = '헐...';
- return $conname;
+ return $scoreName;
}
function getNationType2(?string $type) {
diff --git a/hwe/func_gamerule.php b/hwe/func_gamerule.php
index bc4f491c..465c97eb 100644
--- a/hwe/func_gamerule.php
+++ b/hwe/func_gamerule.php
@@ -698,7 +698,7 @@ function checkEmperior()
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
- $admin = $gameStor->getValues(['year', 'month', 'isunited', 'conlimit']);
+ $admin = $gameStor->getValues(['year', 'month', 'isunited', 'refreshLimit']);
if ($admin['isunited'] != 0) {
return;
}
@@ -760,7 +760,7 @@ function checkEmperior()
}
$gameStor->isunited = 2;
- $gameStor->conlimit = $gameStor->conlimit * 100;
+ $gameStor->refreshLimit = $gameStor->refreshLimit * 100;
foreach ($db->queryFirstColumn('SELECT no FROM general WHERE npc<2 AND age>=%i', GameConst::$minPushHallAge) as $hallGeneralNo) {
CheckHall($hallGeneralNo);
diff --git a/hwe/j_board_article_add.php b/hwe/j_board_article_add.php
index 4b4b3a89..35ea3ae6 100644
--- a/hwe/j_board_article_add.php
+++ b/hwe/j_board_article_add.php
@@ -17,10 +17,13 @@ $text = Util::getPost('text');
increaseRefresh("회의실", 1);
-$me = $db->queryFirstRow('SELECT no, nation, name, officer_level, permission, con, turntime, belong, penalty, `picture`,`imgsvr` FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, nation, name, officer_level, permission, refresh_score, turntime, belong, penalty, `picture`,`imgsvr` FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
Json::die([
'result'=>false,
'reason'=>'접속 제한입니다.'
@@ -50,7 +53,7 @@ if($permission < 0){
'result'=>false,
'reason'=>'국가에 소속되어있지 않습니다.'
]);
-
+
}
else if ($isSecretBoard && $permission < 2) {
Json::die([
diff --git a/hwe/j_board_comment_add.php b/hwe/j_board_comment_add.php
index 12ada898..4fc660be 100644
--- a/hwe/j_board_comment_add.php
+++ b/hwe/j_board_comment_add.php
@@ -16,10 +16,13 @@ $text = Util::getPost('text');
increaseRefresh("회의실", 1);
-$me = $db->queryFirstRow('SELECT no, nation, name, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, nation, name, officer_level, permission, refresh_score, turntime, belong, penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
Json::die([
'result'=>false,
'reason'=>'접속 제한입니다.'
@@ -58,7 +61,7 @@ if($permission < 0){
'result'=>false,
'reason'=>'국가에 소속되어있지 않습니다.'
]);
-
+
}
else if ($isSecretBoard && $permission < 2) {
Json::die([
diff --git a/hwe/j_board_get_articles.php b/hwe/j_board_get_articles.php
index 9b902cf4..5a740f23 100644
--- a/hwe/j_board_get_articles.php
+++ b/hwe/j_board_get_articles.php
@@ -16,11 +16,14 @@ $isSecretBoard = Util::getPost('isSecret', 'bool', false);
increaseRefresh("회의실", 1);
-$me = $db->queryFirstRow('SELECT no, nation, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, nation, officer_level, permission, refresh_score, turntime, belong, penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
Json::die([
'result'=>false,
'reason'=>'접속 제한입니다.'
@@ -33,7 +36,7 @@ if($permission < 0){
'result'=>false,
'reason'=>'국가에 소속되어있지 않습니다.'
]);
-
+
}
else if ($isSecretBoard && $permission < 2) {
Json::die([
@@ -72,4 +75,3 @@ Json::die([
'articles'=>$articles,
'reason'=>'success'
]);
-
diff --git a/hwe/j_diplomacy_destroy_letter.php b/hwe/j_diplomacy_destroy_letter.php
index fec91ff8..f7ed149e 100644
--- a/hwe/j_diplomacy_destroy_letter.php
+++ b/hwe/j_diplomacy_destroy_letter.php
@@ -17,10 +17,13 @@ $letterNo = Util::getPost('letterNo', 'int');
increaseRefresh("외교부", 1);
-$me = $db->queryFirstRow('SELECT no, name, nation, officer_level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, name, nation, officer_level, permission, refresh_score, turntime, belong, penalty, picture, imgsvr FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
Json::die([
'result'=>false,
'reason'=>'접속 제한입니다.'
diff --git a/hwe/j_diplomacy_get_letter.php b/hwe/j_diplomacy_get_letter.php
index 39aed480..425eb7d7 100644
--- a/hwe/j_diplomacy_get_letter.php
+++ b/hwe/j_diplomacy_get_letter.php
@@ -16,11 +16,14 @@ $isSecretBoard = Util::getPost('isSecret', 'bool', false);
increaseRefresh("외교부", 1);
-$me = $db->queryFirstRow('SELECT no, nation, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, nation, officer_level, permission, refresh_score, turntime, belong, penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
Json::die([
'result'=>false,
'reason'=>'접속 제한입니다.'
@@ -33,7 +36,7 @@ if($permission < 0){
'result'=>false,
'reason'=>'국가에 소속되어있지 않습니다.'
]);
-
+
}
$letters = [];
@@ -83,4 +86,3 @@ Json::die([
'myNationID'=>$me['nation'],
'reason'=>'success'
]);
-
diff --git a/hwe/j_diplomacy_respond_letter.php b/hwe/j_diplomacy_respond_letter.php
index 42a30ab1..ce8c4d8f 100644
--- a/hwe/j_diplomacy_respond_letter.php
+++ b/hwe/j_diplomacy_respond_letter.php
@@ -22,10 +22,13 @@ $reason = Util::getPost('reason', 'string', '');
increaseRefresh("외교부", 1);
-$me = $db->queryFirstRow('SELECT no, name, nation, officer_level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, name, nation, officer_level, permission, refresh_score, turntime, belong, penalty, picture, imgsvr FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
Json::die([
'result'=>false,
'reason'=>'접속 제한입니다.'
diff --git a/hwe/j_diplomacy_rollback_letter.php b/hwe/j_diplomacy_rollback_letter.php
index 5908776d..f8bc1f9b 100644
--- a/hwe/j_diplomacy_rollback_letter.php
+++ b/hwe/j_diplomacy_rollback_letter.php
@@ -17,10 +17,13 @@ $letterNo = Util::getPost('letterNo', 'int');
increaseRefresh("외교부", 1);
-$me = $db->queryFirstRow('SELECT no, name, nation, officer_level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, name, nation, officer_level, permission, refresh_score, turntime, belong, penalty, picture, imgsvr FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
Json::die([
'result'=>false,
'reason'=>'접속 제한입니다.'
diff --git a/hwe/j_diplomacy_send_letter.php b/hwe/j_diplomacy_send_letter.php
index 728759bd..ea05671e 100644
--- a/hwe/j_diplomacy_send_letter.php
+++ b/hwe/j_diplomacy_send_letter.php
@@ -24,10 +24,13 @@ if($prevNo < 1){
$prevNo = null;
}
-$me = $db->queryFirstRow('SELECT no, name, nation, officer_level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, name, nation, officer_level, permission, refresh_score, turntime, belong, penalty, picture, imgsvr FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
Json::die([
'result'=>false,
'reason'=>'접속 제한입니다.'
diff --git a/hwe/j_general_log_old.php b/hwe/j_general_log_old.php
index 0779fef3..99860480 100644
--- a/hwe/j_general_log_old.php
+++ b/hwe/j_general_log_old.php
@@ -33,12 +33,15 @@ if($generalID <= 0 || $reqTo <= 0){
$db = DB::db();
-$me = $db->queryFirstRow('SELECT no,nation,officer_level,con,turntime,belong,permission,penalty from general where owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no,nation,officer_level,refresh_score,turntime,belong,permission,penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
$nationID = $me['nation'];
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
Json::die([
'result'=>false,
'reason'=>'접속 제한입니다.'
@@ -61,7 +64,7 @@ if($generalID !== $targetID){
'reason'=>'권한이 부족합니다. 수뇌부가 아니거나 사관년도가 부족합니다.'
]);
}
-
+
if($testGeneralNationID !== $nationID){
Json::die([
'result'=>false,
diff --git a/hwe/j_set_npc_control.php b/hwe/j_set_npc_control.php
index a59d1d85..bc8d0a96 100644
--- a/hwe/j_set_npc_control.php
+++ b/hwe/j_set_npc_control.php
@@ -39,7 +39,10 @@ if (!$data || !is_array($data)) {
$db = DB::db();
-$me = $db->queryFirstRow('SELECT no, name, npc, nation, city, officer_level, con, turntime, belong, permission, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, name, npc, nation, city, officer_level, refresh_score, turntime, belong, permission, penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
$nationID = $me['nation'];
diff --git a/hwe/old_index.php b/hwe/old_index.php
index 173bed68..704d994f 100644
--- a/hwe/old_index.php
+++ b/hwe/old_index.php
@@ -29,7 +29,8 @@ if (!$session->isGameLoggedIn()) {
}
$me = $db->queryFirstRow(
- 'SELECT no,con,turntime,newmsg,newvote,`officer_level` from general where owner = %i',
+ 'SELECT no,refresh_score,turntime,newmsg,newvote,`officer_level` FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner = %i',
$userID
);
@@ -51,8 +52,8 @@ if ($me['newmsg'] == 1 || $me['newvote'] == 1) {
$plock = boolval($db->queryFirstField('SELECT plock FROM plock WHERE `type`="GAME" LIMIT 1'));
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
printLimitMsg($me['turntime']);
exit();
}
@@ -198,7 +199,7 @@ if ($lastVoteID) {
= info(2) ?>
전체 접속자 수 : = $gameStor->online_user_cnt ?> 명
- 턴당 갱신횟수 : = $gameStor->conlimit ?>회
+ 턴당 갱신횟수 : = $gameStor->refreshLimit ?>회
= info(3) ?>
@@ -367,7 +368,7 @@ if ($lastVoteID) {
userID;
- $me = $db->queryFirstRow('SELECT no,nation,officer_level,con,turntime,belong,penalty,permission FROM general WHERE owner=%i', $userID);
- $con = checkLimit($me['con']);
- if ($con >= 2) {
+ $me = $db->queryFirstRow(
+ 'SELECT no,nation,officer_level,refresh_score,turntime,belong,penalty,permission FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+ );
+ $limitState = checkLimit($me['refresh_score']);
+ if ($limitState >= 2) {
return "접속 제한중입니다.";
}
diff --git a/hwe/sammo/API/General/GetFrontInfo.php b/hwe/sammo/API/General/GetFrontInfo.php
index dfddd964..43def670 100644
--- a/hwe/sammo/API/General/GetFrontInfo.php
+++ b/hwe/sammo/API/General/GetFrontInfo.php
@@ -174,7 +174,7 @@ class GetFrontInfo extends \sammo\BaseAPI
'online_nation', 'online_user_cnt',
'year', 'month', 'startyear',
'maxgeneral',
- 'conlimit',
+ 'refreshLimit',
'server_cnt',
]);
@@ -537,8 +537,8 @@ class GetFrontInfo extends \sammo\BaseAPI
$nationID = $general->getNationID();
$cityID = $general->getCityID();
- $con = checkLimit($general->getVar('con'));
- if ($con >= 2) {
+ $limitState = checkLimit($general->getVar('refresh_score') ?? 0);
+ if ($limitState >= 2) {
return [
'result' => false,
'reason' => '접속 제한중입니다.',
diff --git a/hwe/sammo/API/Global/GeneralList.php b/hwe/sammo/API/Global/GeneralList.php
index 5355bb2d..27a558a5 100644
--- a/hwe/sammo/API/Global/GeneralList.php
+++ b/hwe/sammo/API/Global/GeneralList.php
@@ -42,9 +42,12 @@ class GeneralList extends \sammo\BaseAPI
$userID = $session->userID;
if ($session->isGameLoggedIn()) {
increaseRefresh("장수일람", 2);
- $me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner=%i', $userID);
- $con = checkLimit($me['con']);
- if ($con >= 2) {
+ $me = $db->queryFirstRow(
+ 'SELECT refresh_score, turntime FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+ );
+ $limitState = checkLimit($me['refresh_score']);
+ if ($limitState >= 2) {
return '접속 제한중입니다. 1턴 이내에 너무 많은 갱신을 하셨습니다.';
}
} else {
diff --git a/hwe/sammo/API/Global/GetHistory.php b/hwe/sammo/API/Global/GetHistory.php
index 068d883b..c91257b5 100644
--- a/hwe/sammo/API/Global/GetHistory.php
+++ b/hwe/sammo/API/Global/GetHistory.php
@@ -148,13 +148,16 @@ class GetHistory extends \sammo\BaseAPI
}
increaseRefresh("연감", 1);
- $me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner = %i', $session->userID);
+ $me = $db->queryFirstRow(
+ 'SELECT refresh_score, turntime FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner = %i', $session->userID
+ );
if (!$me) {
return '장수가 사망했습니다.';
}
- $con = checkLimit($me['con']);
- if ($con >= 2) {
+ $limitState = checkLimit($me['refresh_score']);
+ if ($limitState >= 2) {
return templateLimitMsg($me['turntime']);
}
}
diff --git a/hwe/sammo/API/Message/GetOldMessage.php b/hwe/sammo/API/Message/GetOldMessage.php
index e683d086..c4c93f17 100644
--- a/hwe/sammo/API/Message/GetOldMessage.php
+++ b/hwe/sammo/API/Message/GetOldMessage.php
@@ -75,7 +75,7 @@ class GetOldMessage extends \sammo\BaseAPI
$db = DB::db();
- $me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`con`,`picture`,`imgsvr`,penalty,permission FROM general WHERE `owner`=%i', $userID);
+ $me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`picture`,`imgsvr`,penalty,permission FROM general WHERE `owner`=%i', $userID);
if ($me === null) {
return '장수가 사망했습니다.';
diff --git a/hwe/sammo/API/Message/GetRecentMessage.php b/hwe/sammo/API/Message/GetRecentMessage.php
index ae535db0..41c74a4d 100644
--- a/hwe/sammo/API/Message/GetRecentMessage.php
+++ b/hwe/sammo/API/Message/GetRecentMessage.php
@@ -73,7 +73,7 @@ class GetRecentMessage extends \sammo\BaseAPI
$db = DB::db();
- $me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`con`,`picture`,`imgsvr`,penalty,permission FROM general WHERE `owner`=%i', $userID);
+ $me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`picture`,`imgsvr`,penalty,permission FROM general WHERE `owner`=%i', $userID);
if ($me === null) {
return '장수가 사망했습니다.';
diff --git a/hwe/sammo/API/Message/SendMessage.php b/hwe/sammo/API/Message/SendMessage.php
index cc740342..9937bf36 100644
--- a/hwe/sammo/API/Message/SendMessage.php
+++ b/hwe/sammo/API/Message/SendMessage.php
@@ -108,7 +108,7 @@ class SendMessage extends \sammo\BaseAPI
$unlimited = new \DateTime('9999-12-31');
$db = DB::db();
- $destUser = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`con`,`picture`,`imgsvr`,permission,penalty FROM general WHERE `no`=%i', $destGeneralID);
+ $destUser = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`picture`,`imgsvr`,permission,penalty FROM general WHERE `no`=%i', $destGeneralID);
if (!$destUser) {
return '존재하지 않는 유저입니다.';
@@ -160,15 +160,18 @@ class SendMessage extends \sammo\BaseAPI
}
$db = DB::db();
- $me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`con`,`picture`,`imgsvr`,penalty,permission,belong FROM general WHERE `owner`=%i', $userID);
+ $me = $db->queryFirstRow(
+ 'SELECT `no`,`name`,`nation`,`officer_level`,`refresh_score`,`picture`,`imgsvr`,penalty,permission,belong FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE `owner`=%i', $userID
+ );
if (!$me) {
$session->logoutGame();
return '장수가 없습니다.';
}
- $con = checkLimit($me['con']);
- if ($con >= 2) {
+ $limitState = checkLimit($me['refresh_score']);
+ if ($limitState >= 2) {
return '접속 제한입니다.';
}
diff --git a/hwe/sammo/API/Nation/GeneralList.php b/hwe/sammo/API/Nation/GeneralList.php
index 17c9011d..28f17547 100644
--- a/hwe/sammo/API/Nation/GeneralList.php
+++ b/hwe/sammo/API/Nation/GeneralList.php
@@ -146,9 +146,12 @@ class GeneralList extends \sammo\BaseAPI
$gameStor = \sammo\KVStorage::getStorage($db, 'game_env');
$env = $gameStor->getValues(['year', 'month', 'turntime', 'turnterm', 'autorun_user', 'killturn']);
- $me = $db->queryFirstRow('SELECT con, turntime, belong, nation, officer_level, permission, penalty FROM general WHERE owner=%i', $session->getUserID());
- $con = checkLimit($me['con']);
- if ($con >= 2) {
+ $me = $db->queryFirstRow(
+ 'SELECT refresh_score, turntime, belong, nation, officer_level, permission, penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $session->getUserID()
+ );
+ $limitState = checkLimit($me['refresh_score']);
+ if ($limitState >= 2) {
return '접속 제한중입니다. 1턴 이내에 너무 많은 갱신을 하셨습니다.';
}
diff --git a/hwe/sammo/API/Nation/GetGeneralLog.php b/hwe/sammo/API/Nation/GetGeneralLog.php
index 1be029b2..a9d556f9 100644
--- a/hwe/sammo/API/Nation/GetGeneralLog.php
+++ b/hwe/sammo/API/Nation/GetGeneralLog.php
@@ -109,10 +109,12 @@ class GetGeneralLog extends \sammo\BaseAPI
$reqTo = $this->args['reqTo'] ?? null;
$db = DB::db();
- $me = $db->queryFirstRow('SELECT no,nation,officer_level,con,turntime,belong,permission,penalty from general where owner=%i', $userID);
+ $me = $db->queryFirstRow(
+ 'SELECT no,nation,officer_level,refresh_score,turntime,belong,permission,penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID);
- $con = checkLimit($me['con']);
- if ($con >= 2) {
+ $limitState = checkLimit($me['refresh_score']);
+ if ($limitState >= 2) {
return '접속 제한입니다.';
}
diff --git a/hwe/sammo/API/NationCommand/GetReservedCommand.php b/hwe/sammo/API/NationCommand/GetReservedCommand.php
index 5eb77e1a..06abcb99 100644
--- a/hwe/sammo/API/NationCommand/GetReservedCommand.php
+++ b/hwe/sammo/API/NationCommand/GetReservedCommand.php
@@ -39,12 +39,15 @@ class GetReservedCommand extends \sammo\BaseAPI
$gameStor = KVStorage::getStorage($db, 'game_env');
$userID = $session->userID;
- $me = $db->queryFirstRow('SELECT no,nation,officer_level,con,turntime,belong,penalty,permission FROM general WHERE owner=%i', $userID);
+ $me = $db->queryFirstRow(
+ 'SELECT no,nation,officer_level,refresh_score,turntime,belong,penalty,permission FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+ );
$nationLevel = $db->queryFirstField('SELECT level FROM nation WHERE nation = %i', $me['nation']);
$nationID = $me['nation'];
- $con = checkLimit($me['con']);
- if ($con >= 2) {
+ $limitState = checkLimit($me['refresh_score']);
+ if ($limitState >= 2) {
return "접속 제한중입니다. 1턴 이내에 너무 많은 갱신을 하셨습니다. (다음 갱신 가능 시각 : {$me['turntime']})";
}
diff --git a/hwe/sammo/Event/Action/InvaderEnding.php b/hwe/sammo/Event/Action/InvaderEnding.php
index d4d5888a..aa458fbc 100644
--- a/hwe/sammo/Event/Action/InvaderEnding.php
+++ b/hwe/sammo/Event/Action/InvaderEnding.php
@@ -63,7 +63,7 @@ class InvaderEnding extends \sammo\Event\Action{
$gameStor->setValue('isunited', 3);
$logger->flush();
- $gameStor->conlimit = $gameStor->conlimit * 100;
+ $gameStor->refreshLimit = $gameStor->refreshLimit * 100;
$eventID = Util::array_get($env['currentEventID']);
$db->delete('event', 'id = %i', $eventID);
diff --git a/hwe/sammo/ResetHelper.php b/hwe/sammo/ResetHelper.php
index 917cb2ba..a6cb8003 100644
--- a/hwe/sammo/ResetHelper.php
+++ b/hwe/sammo/ResetHelper.php
@@ -280,7 +280,7 @@ class ResetHelper{
'msg'=>'공지사항',//TODO:공지사항
'maxgeneral'=>GameConst::$defaultMaxGeneral,
'maxnation'=>GameConst::$defaultMaxNation,
- 'conlimit'=>30000,
+ 'refreshLimit'=>30000,
'develcost'=>$develcost,
'turntime'=>$turntime,
'starttime'=>$starttime,
diff --git a/hwe/sammo/TurnExecutionHelper.php b/hwe/sammo/TurnExecutionHelper.php
index c20a1a76..5621ce2b 100644
--- a/hwe/sammo/TurnExecutionHelper.php
+++ b/hwe/sammo/TurnExecutionHelper.php
@@ -175,7 +175,9 @@ class TurnExecutionHelper
$general = $this->getGeneral();
$generalID = $general->getID();
$logger = $general->getLogger();
- $general->setVar('con', 0);
+ $db->update('general_access_log', [
+ 'refresh_score' => 0,
+ ], 'general_id=%i', $generalID);
$generalName = $general->getName();
diff --git a/hwe/t_diplomacy.php b/hwe/t_diplomacy.php
index 1969d018..dc4f6c81 100644
--- a/hwe/t_diplomacy.php
+++ b/hwe/t_diplomacy.php
@@ -13,11 +13,14 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("내무부", 1);
-$me = $db->queryFirstRow('SELECT no, nation, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, nation, officer_level, permission, refresh_score, turntime, belong, penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
printLimitMsg($me['turntime']);
exit();
}
diff --git a/hwe/v_NPCControl.php b/hwe/v_NPCControl.php
index 6500ccd9..366ecef4 100644
--- a/hwe/v_NPCControl.php
+++ b/hwe/v_NPCControl.php
@@ -15,13 +15,16 @@ $gameStor->cacheValues(['autorun_user', 'develcost']);
increaseRefresh("NPC 정책", 1);
-$me = $db->queryFirstRow('SELECT no, npc, nation, city, officer_level, con, turntime, belong, permission, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, npc, nation, city, officer_level, refresh_score, turntime, belong, permission, penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
$nationID = $me['nation'];
$nation = $db->queryFirstRow('SELECT nation,level,name,color,type,gold,rice,bill,tech,rate,scout,war,secretlimit,capital FROM nation WHERE nation = %i', $nationID);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
printLimitMsg($me['turntime']);
exit();
}
diff --git a/hwe/v_auction.php b/hwe/v_auction.php
index dac367e7..820d6b14 100644
--- a/hwe/v_auction.php
+++ b/hwe/v_auction.php
@@ -12,9 +12,6 @@ $db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$isResAuction = Util::getReq('type') !== 'unique';
-
-$me = $db->queryFirstRow('SELECT no, nation, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
-
?>
diff --git a/hwe/v_board.php b/hwe/v_board.php
index f552a145..2e87beba 100644
--- a/hwe/v_board.php
+++ b/hwe/v_board.php
@@ -15,14 +15,7 @@ $isSecretBoard = Util::getReq('isSecret', 'bool', false);
//increaseRefresh("회의실", 1);
-$me = $db->queryFirstRow('SELECT no, nation, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
-
-
-$con = checkLimit($me['con']);
-if ($con >= 2) {
- printLimitMsg($me['turntime']);
- exit();
-}
+$me = $db->queryFirstRow('SELECT no, nation, officer_level, permission, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
$permission = checkSecretPermission($me);
if ($permission < 0) {
diff --git a/hwe/v_history.php b/hwe/v_history.php
index aafc1452..7b4113e7 100644
--- a/hwe/v_history.php
+++ b/hwe/v_history.php
@@ -31,9 +31,6 @@ else{
[$currentYear, $currentMonth] = [$l_year, $l_month];
}
-
-$me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner = %i', $userID);
-
?>
diff --git a/hwe/v_nationStratFinan.php b/hwe/v_nationStratFinan.php
index c2c2647a..bcc1c6f3 100644
--- a/hwe/v_nationStratFinan.php
+++ b/hwe/v_nationStratFinan.php
@@ -13,10 +13,13 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("내무부", 1);
-$me = $db->queryFirstRow('SELECT no, nation, officer_level, con, turntime, belong, permission, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow(
+ 'SELECT no, nation, officer_level, refresh_score, turntime, belong, permission, penalty FROM `general`
+ LEFT JOIN general_access_log AS l ON `general`.no = l.general_id WHERE owner=%i', $userID
+);
-$con = checkLimit($me['con']);
-if ($con >= 2) {
+$limitState = checkLimit($me['refresh_score']);
+if ($limitState >= 2) {
printLimitMsg($me['turntime']);
exit();
}