diff --git a/.vscode/settings.json b/.vscode/settings.json
index 4447baa4..87d45fb0 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -5,7 +5,7 @@
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
- "**/logs/*.txt": true,
+ "**/logs/**/*.txt": true,
"**/session/sess*":true,
"/che":true,
"/kwe":true,
diff --git a/hwe/a_traffic.php b/hwe/a_traffic.php
index fbfc4ff9..b3e021c7 100644
--- a/hwe/a_traffic.php
+++ b/hwe/a_traffic.php
@@ -12,7 +12,7 @@ increaseRefresh("갱신정보", 2);
$admin = $gameStor->getValues(['year','month','refresh','maxrefresh','maxonline']);
-$log = getRawFileLogRecent(__dir__.'/logs/_traffic.txt', 11, 100);
+$log = getRawFileLogRecent(__dir__.'/logs/'.UniqueConst::$serverID.'/_traffic.txt', 11, 100);
$date = [];
$year = [];
diff --git a/hwe/func.php b/hwe/func.php
index 53bda63e..53e44080 100644
--- a/hwe/func.php
+++ b/hwe/func.php
@@ -1266,7 +1266,7 @@ function increaseRefresh($type="", $cnt=1) {
$date2 = substr($date, 0, 10);
$online = getOnlineNum();
file_put_contents(
- __dir__."/logs/_{$date2}_refresh.txt",
+ __dir__."/logs/".UniqueConst::$serverID."/_{$date2}_refresh.txt",
sprintf(
"%s, %s, %s, %s, %s, %d\n",
$date,
@@ -1303,7 +1303,7 @@ function increaseRefresh($type="", $cnt=1) {
}
if($str != "") {
file_put_contents(
- __dir__."/logs/_{$date2}_ipcheck.txt",
+ __dir__."/logs/".UniqueConst::$serverID."/_{$date2}_ipcheck.txt",
sprintf(
"%s, %s, %s%s\n",
$session->userName,
@@ -1338,7 +1338,7 @@ function updateTraffic() {
$date = date('Y-m-d H:i:s');
//일시|년|월|총갱신|접속자|최다갱신자
- file_put_contents(__dir__."/logs/_traffic.txt",
+ file_put_contents(__dir__."/logs/".UniqueConst::$serverID."/_traffic.txt",
Json::encode([
$date,
$admin['year'],
diff --git a/hwe/func_history.php b/hwe/func_history.php
index 43c4a217..813916ec 100644
--- a/hwe/func_history.php
+++ b/hwe/func_history.php
@@ -5,7 +5,7 @@ namespace sammo;
function delStepLog() {
$date = date('Y_m_d');
- @unlink(__dir__."/logs/_{$date}_steplog.txt");
+ @unlink(__dir__."/logs/".UniqueConst::$serverID."/_{$date}_steplog.txt");
}
function pushRawFileLog($path, $lines){
@@ -50,81 +50,81 @@ function eraseTnmtFightLogAll(){
}
function eraseTnmtFightLog(int $group){
- $filepath = __dir__."/logs/fight{$group}.txt";
+ $filepath = __dir__."/logs/".UniqueConst::$serverID."/fight{$group}.txt";
if(file_exists($filepath)){
@unlink($filepath);
}
}
function pushTnmtFightLog(int $group, $log) {
- pushRawFileLog(__dir__."/logs/fight{$group}.txt", $log);
+ pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/fight{$group}.txt", $log);
}
function getTnmtFightLogAll(int $group) {
- return join('
',getFormattedFileLogAll(__dir__."/logs/fight{$group}.txt"));
+ return join('
',getFormattedFileLogAll(__dir__."/logs/".UniqueConst::$serverID."/fight{$group}.txt"));
}
function pushSabotageLog($log) {
- pushRawFileLog(__dir__."/logs/_sabotagelog.txt", $log);
+ pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_sabotagelog.txt", $log);
}
function getSabotageLogRecent($count) {
- return join('
', getFormattedFileLogRecent(__dir__."/logs/_sabotagelog.txt", $count, 150));
+ return join('
', getFormattedFileLogRecent(__dir__."/logs/".UniqueConst::$serverID."/_sabotagelog.txt", $count, 150));
}
function pushProcessLog($log) {
$date = date('Y_m_d');
- pushRawFileLog(__dir__."/logs/_{$date}_processlog.txt", $log);
+ pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_{$date}_processlog.txt", $log);
}
function pushStepLog($log) {
$date = date('Y_m_d');
- pushRawFileLog(__dir__."/logs/_{$date}_steplog.txt", $log);
+ pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_{$date}_steplog.txt", $log);
}
function pushLockLog($log) {
$date = date('Y_m_d');
- pushRawFileLog(__dir__."/logs/_{$date}_locklog.txt", $log);
+ pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_{$date}_locklog.txt", $log);
}
function pushAdminLog($log) {
- pushRawFileLog(__dir__."/logs/_adminlog.txt", $log);
+ pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_adminlog.txt", $log);
}
function pushAuctionLog($log) {
- pushRawFileLog(__dir__."/logs/_auctionlog.txt", $log);
+ pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_auctionlog.txt", $log);
}
function getAuctionLogRecent(int $count) {
- return join('
', array_reverse(getFormattedFileLogRecent(__dir__."/logs/_auctionlog.txt", $count, 300)));
+ return join('
', array_reverse(getFormattedFileLogRecent(__dir__."/logs/".UniqueConst::$serverID."/_auctionlog.txt", $count, 300)));
}
function pushGenLog($general, $log) {
$no = Util::toInt($general['no']);
- pushRawFileLog(__dir__."/logs/gen{$no}.txt", $log);
+ pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/gen{$no}.txt", $log);
}
function getGenLogRecent(int $no, int $count) {
- return join('
', array_reverse(getFormattedFileLogRecent(__dir__."/logs/gen{$no}.txt", $count, 300)));
+ return join('
', array_reverse(getFormattedFileLogRecent(__dir__."/logs/".UniqueConst::$serverID."/gen{$no}.txt", $count, 300)));
}
function pushBatRes($general, $log) {
$no = Util::toInt($general['no']);
- pushRawFileLog(__dir__."/logs/batres{$no}.txt", $log);
+ pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/batres{$no}.txt", $log);
}
function getBatResRecent(int $no, int $count) {
- return join('
', array_reverse(getFormattedFileLogRecent(__dir__."/logs/batres{$no}.txt", $count, 300)));
+ return join('
', array_reverse(getFormattedFileLogRecent(__dir__."/logs/".UniqueConst::$serverID."/batres{$no}.txt", $count, 300)));
}
function pushBatLog($general, $log) {
$no = Util::toInt($general['no']);
- pushRawFileLog(__dir__."/logs/batlog{$no}.txt", $log);
+ pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/batlog{$no}.txt", $log);
}
function getBatLogRecent(int $no, int $count) {
- return join('
', array_reverse(getFormattedFileLogRecent(__dir__."/logs/batlog{$no}.txt", $count, 300)));
+ return join('
', array_reverse(getFormattedFileLogRecent(__dir__."/logs/".UniqueConst::$serverID."/batlog{$no}.txt", $count, 300)));
}
//DB-based
diff --git a/hwe/lib.php b/hwe/lib.php
index d5e0d5ea..3fa6a8de 100644
--- a/hwe/lib.php
+++ b/hwe/lib.php
@@ -35,7 +35,7 @@ function Error($message='', $url="")
if (!$url) {
$url = $_SERVER['REQUEST_URI'];
}
- file_put_contents(__dir__."/logs/_db_bug.txt", "{\"url\":\"$url\",\"msg\":\"$message\"}\n", FILE_APPEND);
+ file_put_contents(__dir__."/logs/".UniqueConst::$serverID."/_db_bug.txt", "{\"url\":\"$url\",\"msg\":\"$message\"}\n", FILE_APPEND);
$templates = new \League\Plates\Engine(__dir__.'/templates');
diff --git a/hwe/sammo/ResetHelper.php b/hwe/sammo/ResetHelper.php
index ccf7c07d..03e5fdb7 100644
--- a/hwe/sammo/ResetHelper.php
+++ b/hwe/sammo/ResetHelper.php
@@ -55,13 +55,15 @@ class ResetHelper{
$db = DB::db();
$mysqli_obj = $db->get();
- FileUtil::delInDir($servRoot."/logs");
- FileUtil::delInDir($servRoot."/data");
+ $serverID = DB::prefix().'_'.Util::randomStr(12);
+
+ mkdir($servRoot.'/logs/'.$serverID, 0644);
+ mkdir($servRoot.'/data/'.$serverID, 0644);
$result = Util::generateFileUsingSimpleTemplate(
$servRoot.'/d_setting/UniqueConst.orig.php',
$servRoot.'/d_setting/UniqueConst.php',[
- 'serverID'=>DB::prefix().'_'.Util::randomStr(8),
+ 'serverID'=>$serverID,
'serverName'=>AppConf::getList()[$prefix]->getKorName(),
], true
);
diff --git a/hwe/sql/schema.sql b/hwe/sql/schema.sql
index 4c6b34e9..2946d5e7 100644
--- a/hwe/sql/schema.sql
+++ b/hwe/sql/schema.sql
@@ -376,9 +376,40 @@ create table if not exists hall (
UNIQUE INDEX `type` (`type`, `rank`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
+CREATE TABLE if not exists `ng_hall` (
+ `id` INT(11) NOT NULL AUTO_INCREMENT,
+ `server_id` CHAR(20) NOT NULL,
+ `scenario` INT(11) NOT NULL,
+ `general_no` INT(11) NOT NULL,
+ `type` INT(11) NOT NULL,
+ `value` INT(11) NOT NULL,
+ `owner` INT(11) NULL DEFAULT NULL,
+ `aux` TEXT NOT NULL DEFAULT '{}',
+ PRIMARY KEY (`id`),
+ UNIQUE INDEX `server_general` (`server_id`, `type`, `general_no`),
+ UNIQUE INDEX `owner` (`owner`, `server_id`),
+ INDEX `server_show` (`server_id`, `type`, `value`),
+ INDEX `scenario` (`scenario`, `type`, `value`)
+)
+ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
+
+
###########################################################################
## 왕조 테이블
###########################################################################
+
+CREATE TABLE if not exists `ng_games` (
+ `id` INT(11) NOT NULL AUTO_INCREMENT,
+ `server_id` CHAR(20) NOT NULL,
+ `date` DATETIME NOT NULL,
+ `united` INT(1) NOT NULL DEFAULT '0',
+ `aux` TEXT NOT NULL COMMENT 'json',
+ PRIMARY KEY (`id`),
+ UNIQUE INDEX `server_id` (`server_id`),
+ INDEX `date` (`date`)
+)
+ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
+
create table if not exists emperior (
no int(6) not null auto_increment,
phase char(255) default '',