This commit is contained in:
2018-05-26 17:36:36 +09:00
244 changed files with 11542 additions and 6162 deletions
+2 -1
View File
@@ -16,7 +16,8 @@
"firephp/firephp-core": "^0.4.0",
"vlucas/valitron": "^1.4",
"php-extended/php-tail": "^2.1",
"pguardiario/phpuri": "^1.0"
"pguardiario/phpuri": "^1.0",
"symfony/lock": "^3.4"
},
"autoload": {
"psr-4": {
Generated
+170 -1
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"content-hash": "1753c2c2ad9fe40ecc5c6ae541dd2e78",
"content-hash": "a329d39be5161c87438d41f9adf4417b",
"packages": [
{
"name": "brandonwamboldt/utilphp",
@@ -454,6 +454,54 @@
],
"time": "2017-06-19T01:22:40+00:00"
},
{
"name": "paragonie/random_compat",
"version": "v2.0.12",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
"reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
"reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
"shasum": ""
},
"require": {
"php": ">=5.2.0"
},
"require-dev": {
"phpunit/phpunit": "4.*|5.*"
},
"suggest": {
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
},
"type": "library",
"autoload": {
"files": [
"lib/random.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Paragon Initiative Enterprises",
"email": "security@paragonie.com",
"homepage": "https://paragonie.com"
}
],
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
"keywords": [
"csprng",
"pseudorandom",
"random"
],
"time": "2018-04-04T21:24:14+00:00"
},
{
"name": "pguardiario/phpuri",
"version": "1.0",
@@ -702,6 +750,127 @@
],
"time": "2014-06-16T22:40:22+00:00"
},
{
"name": "symfony/lock",
"version": "v3.4.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/lock.git",
"reference": "3a707193326d31603824706e34a95af899a59788"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/lock/zipball/3a707193326d31603824706e34a95af899a59788",
"reference": "3a707193326d31603824706e34a95af899a59788",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8",
"psr/log": "~1.0",
"symfony/polyfill-php70": "~1.0"
},
"require-dev": {
"predis/predis": "~1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Lock\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
},
{
"name": "Jérémy Derussé",
"email": "jeremy@derusse.com"
}
],
"description": "Symfony Lock Component",
"homepage": "https://symfony.com",
"keywords": [
"cas",
"flock",
"locking",
"mutex",
"redlock",
"semaphore"
],
"time": "2018-04-29T14:44:26+00:00"
},
{
"name": "symfony/polyfill-php70",
"version": "v1.8.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php70.git",
"reference": "77454693d8f10dd23bb24955cffd2d82db1007a6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/77454693d8f10dd23bb24955cffd2d82db1007a6",
"reference": "77454693d8f10dd23bb24955cffd2d82db1007a6",
"shasum": ""
},
"require": {
"paragonie/random_compat": "~1.0|~2.0",
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.8-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php70\\": ""
},
"files": [
"bootstrap.php"
],
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2018-04-26T10:06:28+00:00"
},
{
"name": "vlucas/valitron",
"version": "v1.4.2",
+12 -24
View File
@@ -1,8 +1,10 @@
@charset "utf-8";
* { margin: 0px; padding: 0px; }
body { color:white; background-color:black; border-width:1px; border-color:gray; }
table {
body {
color:white; background-color:black; font-family: '맑은 고딕';
}
table {
border: solid 1px; border-spacing: 0px; border-collapse: separate; border-top-color: gray; border-left-color: gray; border-right-color: black; border-bottom-color: black;
padding: 0px;
font-size: 13px;
@@ -23,14 +25,8 @@ a.just_link {
text-decoration: none;
}
div {
margin:0px;
padding: 0px;
word-break: break-all;
font-family: '맑은 고딕';
}
.with_border{
margin:0;
border: solid 1px;
border-spacing: 0px;
border-collapse: separate;
@@ -58,8 +54,6 @@ div {
font-family: '맑은 고딕';;
}
font { font-family: '맑은 고딕';}
.obj_fill{
display:block;
width:100%;
@@ -72,24 +66,18 @@ button.with_skin {
font-size: 13px;
}
button.with_skin:disabled {
background-color:#333333;
}
input.with_skin {
background-color: black; color: white;
font-family: '맑은 고딕';
font-size: 13px;
}
select {
width: 100px; height: 18px;
background-color: black; color: white;
font-family: '맑은 고딕';
font-size: 13px;
}
button {
width: 100px; height: 20px;
background-color: black; color: white;
font-family: '맑은 고딕';
font-size: 13px;
line-height:1.3;
input.with_skin:disabled {
background-color: #333333;
}
.font0 { font-size: 10px; }
+6 -8
View File
@@ -21,6 +21,7 @@
right: 6px;
margin:6px;
height:40px;
line-height:40px;
}
#btn_delete_me{
@@ -37,15 +38,15 @@
#image_upload_filename{
position:absolute;
height:16px;
height:20px;
left:10px;
width:130px;
top:16px;
top:12px;
}
#image_upload_fake_btn{
top:16px;
height:20px;
top:12px;
height:22px;
right:10px;
position:absolute;
}
@@ -53,8 +54,7 @@
#image_upload{
opacity: 0;
position:absolute;
top:16px;
height:22px;
top:12px;
left:0;
height:20px;
width:100%;
@@ -70,7 +70,6 @@
bottom:0;
left:0;
width:50%;
height:20px;
}
#btn_remove_icon{
@@ -78,7 +77,6 @@
bottom:0;
right:0;
width:50%;
height:20px;
}
#third_use_disallow{
+1
View File
@@ -82,6 +82,7 @@ function logExceptionByCustomHandler(\Throwable $e){
], Json::PRETTY);
file_put_contents(ROOT.'/d_log/err_log.txt',"$data\n", FILE_APPEND);
echo $e->getTraceAsString();
throw $e;
}
set_exception_handler('\\sammo\\logExceptionByCustomHandler');
+7 -7
View File
@@ -10,13 +10,13 @@ require(__dir__.'/../vendor/autoload.php');
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>설치</title>
<script src="../e_lib/jquery-3.2.1.min.js"></script>
<script src="../e_lib/bootstrap.bundle.min.js"></script>
<script src="../e_lib/jquery.validate.min.js"></script>
<script src="../e_lib/sha512.min.js"></script>
<script src="../js/install.js"></script>
<link type="text/css" rel="stylesheet" href="../e_lib/bootstrap.min.css">
<link type="text/css" rel="stylesheet" href="../css/install.css">
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
<?=WebUtil::printJS('../e_lib/bootstrap.bundle.min.js')?>
<?=WebUtil::printJS('../e_lib/jquery.validate.min.js')?>
<?=WebUtil::printJS('../e_lib/sha512.min.js')?>
<?=WebUtil::printJS('../js/install.js')?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?=WebUtil::printCSS('../css/install.css')?>
</head>
<body>
<div class="container">
+10 -6
View File
@@ -2,7 +2,6 @@
DROP TABLE IF EXISTS `system`;
DROP TABLE IF EXISTS `member`;
DROP TABLE IF EXISTS `member_log`;
DROP TABLE IF EXISTS `config`;
-- 시스템 테이블
-- TODO:장기적으로는 key-value(json) storage 형태로 바꾸는게 나을 듯.
@@ -57,11 +56,16 @@ CREATE TABLE `member_log` (
)
ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
CREATE TABLE `config` (
###################
# KV storage
###################
CREATE TABLE if not exists `storage` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`key` VARCHAR(50) NOT NULL,
`value` VARCHAR(100) NULL DEFAULT NULL,
`namespace` VARCHAR(40) NOT NULL,
`key` VARCHAR(40) NOT NULL,
`value` TEXT NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `key` (`key`)
UNIQUE INDEX `key` (`namespace`, `key`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
COLLATE='utf8mb4_general_ci'
ENGINE=MyISAM
+9 -10
View File
@@ -6,14 +6,14 @@ include "func.php";
$session = Session::requireGameLogin()->setReadOnly();
if($session->userGrade < 4) {
?><!DOCTYPE html>
?>
<!DOCTYPE html>
<html>
<head>
<title>관리메뉴</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
관리자가 아닙니다.<br>
@@ -25,11 +25,10 @@ if($session->userGrade < 4) {
}
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select turntime,tnmt_time from game";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
list($turntime, $tnmt_time) = $gameStor->getValuesAsArray(['turntime','tnmt_time']);
$query = "select plock from plock";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -40,13 +39,13 @@ $plock = MYDB_fetch_array($result);
<head>
<title>삼국지 모의전투 HiDCHe</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<form action=_119_b.php method=post>
시간조정 : <input type=text size=3 name=minute><input type=submit name=btn value='분당김'><input type=submit name=btn value='분지연'> 최종갱신 : <?=$admin['turntime']?><br>
시간조정 : <input type=text size=3 name=minute2><input type=submit name=btn value='토너분당김'><input type=submit name=btn value='토너분지연'> 토너먼트 : <?=$admin['tnmt_time']?><br>
시간조정 : <input type=text size=3 name=minute><input type=submit name=btn value='분당김'><input type=submit name=btn value='분지연'> 최종갱신 : <?=$turntime?><br>
시간조정 : <input type=text size=3 name=minute2><input type=submit name=btn value='토너분당김'><input type=submit name=btn value='토너분지연'> 토너먼트 : <?=$tnmt_time?><br>
봉급지급 : <input type=submit name=btn value='금지급'><input type=submit name=btn value='쌀지급'><br>
락 풀 기 : <input type=submit name=btn value='락걸기'><input type=submit name=btn value='락풀기'> 현재 : <?=$plock['plock']>0?"동결중":"가동중"?><br>
</form>
+39 -22
View File
@@ -27,32 +27,51 @@ $minute2 = Util::getReq('minute2', 'int');
extractMissingPostToGlobals();
$db = DB::db();
$connect=$db->get();
$gameStor = KVStorage::getStorage($db, 'game_env');
switch($btn) {
case "분당김":
$query = "update game set turntime=DATE_SUB(turntime, INTERVAL $minute MINUTE),starttime=DATE_SUB(starttime, INTERVAL $minute MINUTE),tnmt_time=DATE_SUB(tnmt_time, INTERVAL $minute MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update general set turntime=DATE_SUB(turntime, INTERVAL $minute MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update auction set expire=DATE_SUB(expire, INTERVAL $minute MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->cacheValues('turntime', 'starttime', 'tnmt_time');
$turntime = (new \DateTimeImmutable($gameStor->turntime))->sub(new \DateInterval("PT{$minute}M"));
$starttime = (new \DateTimeImmutable($gameStor->starttime))->sub(new \DateInterval("PT{$minute}M"));
$tnmt_time = (new \DateTimeImmutable($gameStor->tnmt_time))->sub(new \DateInterval("PT{$minute}M"));
$gameStor->turntime = $turntime->format('Y-m-d H:i:s');
$gameStor->starttime = $starttime->format('Y-m-d H:i:s');
$gameStor->tnmt_time = $tnmt_time->format('Y-m-d H:i:s');
$db->update('general', [
'turntime'=>$db->sqleval('DATE_ADD(turntime, INTERVAL %i MINUTE)', $minute)
], true);
$db->update('auction', [
'expire'=>$db->sqleval('DATE_ADD(expire, INTERVAL %i MINUTE)', $minute)
], true);
break;
case "분지연":
$query = "update game set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE),starttime=DATE_ADD(starttime, INTERVAL $minute MINUTE),tnmt_time=DATE_ADD(tnmt_time, INTERVAL $minute MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update general set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update auction set expire=DATE_ADD(expire, INTERVAL $minute MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->cacheValues('turntime', 'starttime', 'tnmt_time');
$turntime = (new \DateTimeImmutable($gameStor->turntime))->add(new \DateInterval("PT{$minute}M"));
$starttime = (new \DateTimeImmutable($gameStor->starttime))->add(new \DateInterval("PT{$minute}M"));
$tnmt_time = (new \DateTimeImmutable($gameStor->tnmt_time))->add(new \DateInterval("PT{$minute}M"));
$gameStor->turntime = $turntime->format('Y-m-d H:i:s');
$gameStor->starttime = $starttime->format('Y-m-d H:i:s');
$gameStor->tnmt_time = $tnmt_time->format('Y-m-d H:i:s');
$db->update('general', [
'turntime'=>$db->sqleval('DATE_ADD(turntime, INTERVAL %i MINUTE)', $minute)
], true);
$db->update('auction', [
'expire'=>$db->sqleval('DATE_ADD(expire, INTERVAL %i MINUTE)', $minute)
], true);
break;
case "토너분당김":
$query = "update game set tnmt_time=DATE_SUB(tnmt_time, INTERVAL $minute2 MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$tnmt_time = new \DateTime($gameStor->tnmt_time);
$tnmt_time->sub(new \DateInterval("PT{$minute2}M"));
$gameStor->tnmt_time = $tnmt_time->format('Y-m-d H:i:s');
break;
case "토너분지연":
$query = "update game set tnmt_time=DATE_ADD(tnmt_time, INTERVAL $minute2 MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$tnmt_time = new \DateTimeImmutable($gameStor->tnmt_time);
$tnmt_time->add(new \DateInterval("PT{$minute2}M"));
$gameStor->tnmt_time = $tnmt_time->format('Y-m-d H:i:s');
break;
case "금지급":
processGoldIncome();
@@ -61,12 +80,10 @@ case "쌀지급":
processRiceIncome();
break;
case "락걸기":
$query = "update plock set plock=1";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$db->update('plock', ['plock'=>1], true);
break;
case "락풀기":
$query = "update plock set plock=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$db->update('plock', ['plock'=>0], true);
break;
}
+12 -13
View File
@@ -7,22 +7,21 @@ include "func.php";
$session = Session::requireGameLogin()->setReadOnly();
if($session->userGrade < 5) {
echo "<!DOCTYPE html>
?>
<!DOCTYPE html>
<html>
<head>
<title>관리메뉴</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
관리자가 아닙니다.<br>
";
echo banner();
echo "
<?=banner()?>
</body>
</html>";
</html>
<?php
exit();
}
@@ -36,15 +35,15 @@ $admin = getAdmin();
<head>
<title>게임관리</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class="tb_layout bg0">
<tr><td>게 임 관 리<br><?=backButton()?></td></tr>
</table>
<form name=form1 method=post action=_admin1_submit.php>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class="tb_layout bg0">
<tr><td width=110 align=right>운영자메세지</td>
<td colspan=3><input type=textarea size=90 style=color:white;background-color:black; name=msg value='<?=$admin['msg']?>'><input type=submit name=btn value=변경></td></td>
</tr>
@@ -81,7 +80,7 @@ $admin = getAdmin();
</tr>
</table>
</form>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+8 -13
View File
@@ -33,15 +33,14 @@ $startyear = Util::getReq('startyear', 'int', GameConst::$defaultStartYear);
extractMissingPostToGlobals();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$admin = getAdmin();
switch ($btn) {
case "변경":
$msg = addslashes(SQ2DQ($msg));
$query = "update game set msg='$msg'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gameStor->msg = $msg;
break;
case "로그쓰기":
$lognum = $admin['historyindex'] + 1;
@@ -51,20 +50,16 @@ switch ($btn) {
pushWorldHistory(["<R>★</><S>{$log}</>"]);
break;
case "변경1":
$query = "update game set starttime='$starttime'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gameStor->starttime = (new \DateTime($starttime))->format('Y-m-d H:i:s');
break;
case "변경2":
$query = "update game set maxgeneral='$maxgeneral'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gameStor->maxgeneral = $maxgeneral;
break;
case "변경3":
$query = "update game set maxnation='$maxnation'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gameStor->maxnation = $maxnation;
break;
case "변경4":
$query = "update game set startyear='$startyear'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gameStor->startyear = $startyear;
break;
case "1분턴":
case "2분턴":
@@ -88,8 +83,8 @@ switch ($btn) {
$turn = ($admin['year'] - $admin['startyear']) * 12 + $admin['month'] - 1;
$starttime = date("Y-m-d H:i:s", strtotime($admin['turntime']) - $turn * $unit);
$starttime = cutTurn($starttime, $turnterm);
$query = "update game set turnterm='$turnterm',starttime='$starttime'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gameStor->turnterm = $turnterm;
$gameStor->starttime = $starttime;
// 턴시간이 길어지는 경우 랜덤턴 배정
if ($turnterm < $admin['turnterm']) {
$query = "select no from general";
+15 -24
View File
@@ -7,52 +7,47 @@ include "func.php";
$session = Session::requireGameLogin()->setReadOnly();
if($session->userGrade < 5) {
echo "<!DOCTYPE html>
?>
<!DOCTYPE html>
<html>
<head>
<title>관리메뉴</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
관리자가 아닙니다.<br>
";
echo banner();
echo "
<?=banner()?>
</body>
</html>";
</html>
<?php
exit();
}
$db = DB::db();
$connect=$db->get();
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
?>
<!DOCTYPE html>
<html>
<head>
<title>회원관리</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>회 원 관 리<br><?=backButton()?></td></tr>
</table>
<form name=form1 method=post action=_admin2_submit.php>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td width=80 align=center>접속제한</td>
<td width=713 align=center><input type=submit name=btn value='전체 접속허용'><input type=submit name=btn value='전체 접속제한'></td>
</tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td width=80 align=center rowspan=12>회원선택<br><br><font color=cyan>NPC</font><br><font color=skyblue>NPC유저</font><br><font color=red>접속제한</font><br><b style=background-color:red;>블럭회원</b></td>
<td width=105 rowspan=12>
@@ -60,13 +55,9 @@ $admin = MYDB_fetch_array($result);
echo "
<select name=genlist[] size=20 multiple style=color:white;background-color:black;font-size:13>";
$generalList = $db->query('SELECT `no`, `name`, npc, `block` FROM general ORDER BY npc, binary(`name`)');
$query = "select no,name,npc,block from general order by npc,binary(name)";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gencount = MYDB_num_rows($result);
for($i=0; $i < $gencount; $i++) {
$general = MYDB_fetch_array($result);
foreach($generalList as $general){
$style = "style=;";
if($general['block'] > 0) { $style .= "background-color:red;"; }
if($general['npc'] >= 2) { $style .= "color:cyan;"; }
@@ -131,7 +122,7 @@ for($i=0; $i < 27; $i++) {
</tr>
</table>
</form>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+5 -4
View File
@@ -22,6 +22,7 @@ if(!$generalID){
}
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$src = MessageTarget::buildQuick($session->generalID);
@@ -97,7 +98,7 @@ switch($btn) {
], '`no` IN %li', $genlist);
break;
case "특기 부여":
list($year, $month) = $db->queryFirstList('select `year`, `month` from `game` where `no`=1');
list($year, $month) = $gameStor->getValuesAsArray(['year', 'month']);
$text = "특기 부여!";
foreach($db->query("SELECT `no`,leader,power,intel,dex0,dex10,dex20,dex30,dex40 FROM general WHERE `no` IN %li", $genlist) as $general){
@@ -191,12 +192,12 @@ switch($btn) {
], '`no` IN %li', $genlist);
break;
case "접속 허용":
$db->update('genera',[
$db->update('general',[
'con'=>0
], '`no` IN %li', $genlist);
break;
case "접속 제한":
$db->update('genera',[
$db->update('general',[
'con'=>1000
], '`no` IN %li', $genlist);
break;
@@ -326,7 +327,7 @@ switch($btn) {
], '`no` IN %li', $genlist);
break;
case "00턴":
$turnterm = $db->queryFirstField('SELECT turnterm FROM game LIMIT 1');
$turnterm = $gameStor->turnterm;
foreach($genlist as $generalID){
$turntime = getRandTurn($turnterm);
+16 -18
View File
@@ -7,46 +7,44 @@ include "func.php";
$session = Session::requireGameLogin()->setReadOnly();
if($session->userGrade < 5) {
echo "<!DOCTYPE html>
?>
<!DOCTYPE html>
<html>
<head>
<title>관리메뉴</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
관리자가 아닙니다.<br>
";
echo banner();
echo "
<?=banner()?>
</body>
</html>";
</html>
<?php
exit();
}
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$conlimit = $gameStor->conlimit;
?>
<!DOCTYPE html>
<html>
<head>
<title>멀티관리</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>멀 티 관 리<br><?=backButton()?></td></tr>
</table>
<form name=form1 method=post action=_admin4_submit.php>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td width=80 align=center rowspan=3>회원선택<br><br><font color=cyan>NPC</font><br><font color=skyblue>NPC유저</font><br><font color=red>접속제한</font><br><b style=background-color:red;>블럭회원</b></td>
<td width=105 rowspan=3>
@@ -65,7 +63,7 @@ for($i=0; $i < $gencount; $i++) {
if($general['block'] > 0) { $style .= "background-color:red;"; }
if($general['npc'] >= 2) { $style .= "color:cyan;"; }
elseif($general['npc'] == 1) { $style .= "color:skyblue;"; }
if($general['con'] > $admin['conlimit']) { $style .= "color:red;"; }
if($general['con'] > $conlimit) { $style .= "color:red;"; }
echo "
<option value={$general['no']} $style>{$general['name']}</option>";
@@ -90,7 +88,7 @@ echo "
<td><input type=textarea size=60 maxlength=255 name=msg style=background-color:black;color:white;><input type=submit name=btn value='메세지 전달'></td>
</tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td align=center width=100>장수명</td>
<td align=center width=180>최근로그인</td>
@@ -137,7 +135,7 @@ echo "
//NOTE: password의 md5 해시가 같은지 확인하는 방식으로는 앞으로 잡아낼 수 없다. 폐기
?>
</form>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+14 -18
View File
@@ -20,22 +20,21 @@ extractMissingPostToGlobals();
$session = Session::requireGameLogin()->setReadOnly();
if($session->userGrade < 5) {
echo "<!DOCTYPE html>
?>
<!DOCTYPE html>
<html>
<head>
<title>관리메뉴</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
관리자가 아닙니다.<br>
";
echo banner();
echo "
<?=banner()?>
</body>
</html>";
</html>
<?php
exit();
}
@@ -47,20 +46,17 @@ $sel2 = [];
$sel[$type] = "selected";
$sel2[$type2] = "selected";
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
?>
<!DOCTYPE html>
<html>
<head>
<title>일제정보</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>일 제 정 보<br><?=closeButton()?></td></tr>
<tr><td>
<form name=form1 method=post>정렬순서 :
@@ -115,7 +111,7 @@ for($i=1; $i <= $count; $i++) {
</td></tr>
</table>
<table align=center width=1600 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px; id=bg0>
<table align=center width=1600 class="tb_layout bg0">
<tr id=bg1>
<td align=center>국명</td>
<td align=center>접률</td>
@@ -262,11 +258,11 @@ for($i=0; $i < $nationCount; $i++) {
?>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=getSabotageLogRecent(20)?></td></tr>
</table>
<table align=center width=1760 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px; id=bg0>
<table align=center width=1760 class="tb_layout bg0">
<tr id=bg1>
<td width=30 align=center>년</td>
<td width=30 align=center>월</td>
@@ -317,7 +313,7 @@ for($i=0; $i < $count; $i++) {
?>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+12 -13
View File
@@ -14,22 +14,21 @@ extractMissingPostToGlobals();
$session = Session::requireGameLogin()->setReadOnly();
if($session->userGrade < 5) {
echo "<!DOCTYPE html>
?>
<!DOCTYPE html>
<html>
<head>
<title>관리메뉴</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
관리자가 아닙니다.<br>
";
echo banner();
echo "
<?=banner()?>
</body>
</html>";
</html>
<?php
exit();
}
@@ -44,11 +43,11 @@ $sel[$type] = "selected";
<head>
<title>접속정보</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>접 속 정 보<br><?=closeButton()?></td></tr>
<tr><td><form name=form1 method=post>정렬순서 :
<select name=type size=1>
@@ -61,7 +60,7 @@ $sel[$type] = "selected";
<input type=submit value='정렬하기'></form>
</td></tr>
</table>
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center class='tb_layout bg0'>
<tr id=bg1>
<td align=center width=120>장수명</td>
<td align=center width=50>접속률</td>
@@ -100,7 +99,7 @@ for($i=0; $i < $gencount; $i++) {
?>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+12 -13
View File
@@ -18,22 +18,21 @@ extractMissingPostToGlobals();
$session = Session::requireGameLogin()->setReadOnly();
if($session->userGrade < 5) {
echo "<!DOCTYPE html>
?>
<!DOCTYPE html>
<html>
<head>
<title>관리메뉴</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
관리자가 아닙니다.<br>
";
echo banner();
echo "
<?=banner()?>
</body>
</html>";
</html>
<?php
exit();
}
@@ -51,11 +50,11 @@ $sel[$type] = "selected";
<head>
<title>로그정보</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>로 그 정 보<br><?=closeButton()?></td></tr>
<tr><td>
<form name=form1 method=post>
@@ -99,7 +98,7 @@ for($i=0; $i < $gencount; $i++) {
</form>
</td></tr>
</table>
<table width=1000 align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table width=1000 align=center class='tb_layout bg0'>
<tr>
<td width=50% align=center id=bg1><font color=skyblue size=3>장 수 정 보</font></td>
<td width=50% align=center id=bg1><font color=orange size=3>-</font></td>
@@ -136,7 +135,7 @@ for($i=0; $i < $gencount; $i++) {
</td>
</tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+12 -13
View File
@@ -14,22 +14,21 @@ extractMissingPostToGlobals();
$session = Session::requireGameLogin()->setReadOnly();
if ($session->userGrade < 5) {
echo "<!DOCTYPE html>
?>
<!DOCTYPE html>
<html>
<head>
<title>관리메뉴</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
관리자가 아닙니다.<br>
";
echo banner();
echo "
<?=banner()?>
</body>
</html>";
</html>
<?php
exit();
}
@@ -47,11 +46,11 @@ $sel[$type] = "selected";
<head>
<title>외교정보</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>외 교 정 보<br><?=closeButton()?></td></tr>
<tr><td>
<form name=form1 method=post>
@@ -63,7 +62,7 @@ $sel[$type] = "selected";
</form>
</td></tr>
</table>
<table width=1000 align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table width=1000 align=center class='tb_layout bg0'>
<tr><td colspan=9 align=center bgcolor=blue>외 교 관 계</td></tr>
<tr>
<td width=100 align=center id=bg1>국 가 명</td>
@@ -155,7 +154,7 @@ for ($i=0; $i < $dipcount; $i++) {
}
?>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+25 -26
View File
@@ -74,6 +74,7 @@ $dec = 0;
$rice = 0;
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("시뮬", 2);
@@ -81,11 +82,9 @@ $query = "select no,tournament,con,turntime from general where owner='{$userID}'
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
$query = "select * from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$game = MYDB_fetch_array($result);
$admin = $gameStor->getAll();
$con = checkLimit($me['con'], $game['conlimit']);
$con = checkLimit($me['con']);
if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
if($session->userGrade < 3) {
@@ -173,7 +172,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
$opposecount = 0;
}
$warphase = getRate($game, $general['crewtype'], "spd"); //병종간 페이즈 수 얻기
$warphase = getRate($admin, $general['crewtype'], "spd"); //병종간 페이즈 수 얻기
// 우선 스케일링
$city['def'] *= 10;
@@ -301,7 +300,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
}
//회피
$ratio = rand() % 100; // 0 ~ 99
$ratio2 = getRate($game, $general['crewtype'], "avd"); //회피율
$ratio2 = getRate($admin, $general['crewtype'], "avd"); //회피율
if($ratio < $ratio2 && $avoid == 1) {
$msg .= "<C>●</><C>회피</>했다!</><br>";
$myCrew /= 10; // 10%만 소모
@@ -665,7 +664,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
}
//회피
$ratio = rand() % 100; // 0 ~ 99
$ratio2 = getRate($game, $general['crewtype'], "avd"); //회피율
$ratio2 = getRate($admin, $general['crewtype'], "avd"); //회피율
if($ratio < $ratio2 && $myAvoid == 1) {
$msg .= "<C>●</><C>회피</>했다!</><br>";
$myCrew /= 10; // 10%만 소모
@@ -673,7 +672,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
}
//회피
$ratio = rand() % 100; // 0 ~ 99
$ratio2 = getRate($game, $oppose['crewtype'], "avd"); //회피율
$ratio2 = getRate($admin, $oppose['crewtype'], "avd"); //회피율
if($ratio < $ratio2 && $opAvoid == 1) {
$msg .= "<C>●</>상대가 <R>회피</>했다!</><br>";
$opCrew /= 10; // 10%만 소모
@@ -802,8 +801,8 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
$def = 7000;
$wall = 7000;
$train3 = $game['city_rate'];
$atmos3 = $game['city_rate'];
$train3 = $admin['city_rate'];
$atmos3 = $admin['city_rate'];
}
switch($level1) {
@@ -1140,8 +1139,8 @@ switch($dex240) {
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title>전투시뮬레이션</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<style type="text/css">
select { background-color:black;color:white; }
input { background-color:black;color:white; }
@@ -1151,7 +1150,7 @@ input { background-color:black;color:white; }
<body>
<form method=post action=_simul.php>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr id=bg1>
<td>공격장수</td>
<td>상대장수</td>
@@ -1584,7 +1583,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격") {
?>
</td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr id=bg1>
<td align=right></td>
<td align=center>공격</td>
@@ -1598,31 +1597,31 @@ if($isgen == "장수공격" || $isgen == "성벽공격") {
<?php
for($i=0; $i <= 5; $i++) {
printSimul($game, $i);
printSimul($admin, $i);
}
echo "
<tr><td height=5 colspan=8 id=bg1></td></tr>";
for($i=10; $i <= 14; $i++) {
printSimul($game, $i);
printSimul($admin, $i);
}
echo "
<tr><td height=5 colspan=8 id=bg1></td></tr>";
for($i=20; $i <= 27; $i++) {
printSimul($game, $i);
printSimul($admin, $i);
}
echo "
<tr><td height=5 colspan=8 id=bg1></td></tr>";
for($i=30; $i <= 38; $i++) {
printSimul($game, $i);
printSimul($admin, $i);
}
echo "
<tr><td height=5 colspan=8 id=bg1></td></tr>";
for($i=40; $i <= 43; $i++) {
printSimul($game, $i);
printSimul($admin, $i);
}
echo "
<tr><td height=5 colspan=8 id=bg1></td></tr>";
@@ -1633,13 +1632,13 @@ if($isgen == "장수공격" || $isgen == "성벽공격") {
</html>
<?php
function printSimul($game, $i) {
$att = $game["att{$i}"];
$def = $game["def{$i}"];
$spd = $game["spd{$i}"];
$avd = $game["avd{$i}"];
$cst = $game["cst{$i}"];
$ric = $game["ric{$i}"];
function printSimul($admin, $i) {
$att = $admin["att{$i}"];
$def = $admin["def{$i}"];
$spd = $admin["spd{$i}"];
$avd = $admin["avd{$i}"];
$cst = $admin["cst{$i}"];
$ric = $admin["ric{$i}"];
echo "
<tr>
<td align=right>".GameUnitConst::byId($i)->name."</td>
+10 -12
View File
@@ -13,19 +13,16 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("명장일람", 2);
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$query = "select con,turntime from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
@@ -37,16 +34,16 @@ if ($con >= 2) {
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 명장일람</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>명 장 일 람<br><?=closeButton()?></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<form name=form1 action=a_bestGeneral.php method=post>
<tr><td align=center>
<input type=submit name=btn value='유저 보기'>
@@ -54,7 +51,7 @@ if ($con >= 2) {
</td></tr>
</form>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<?php
if (isset($btn) && $btn == "NPC 보기") {
//FIXME: query가 너무 적나라.
@@ -101,6 +98,7 @@ for ($i=0; $i < 21; $i++) {
$color = [];
$pic = [];
//FIXME: 쿼리에 index를 사용할 수 없는 녀석들이 있다. 그냥 모두 받아서 일괄 처리하는게 더 나을 수도 있음.
switch ($i) {
case 0: $query = "select nation,no,name,picture,imgsvr,experience as data from general where $sel order by data desc limit 0,10"; break;
case 1: $query = "select nation,no,name,picture,imgsvr,dedication as data from general where $sel order by data desc limit 0,10"; break;
@@ -202,7 +200,7 @@ for ($i=0; $i < 21; $i++) {
echo "
</table>
<br>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
";
$type = array(
@@ -340,7 +338,7 @@ for ($i=0; $i < 4; $i++) {
?>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+22 -22
View File
@@ -19,13 +19,13 @@ increaseRefresh("왕조일람", 2);
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 왕조일람</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style="font-size:13px;word-break:break-all;color:white;background-color:black" id=bg0>
<table align=center width=1000 class="tb_layout bg0">
<tr><td>역 대 왕 조<br>
<input type=button value='창 닫기' onclick=window.close()><br>
</td></tr>
@@ -43,7 +43,7 @@ if ($select == 0) {
echo "
<form action=a_emperior.php method=post>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style='font-size:13px;word-break:break-all;color:white;' id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td bgcolor=skyblue align=center colspan=8>
<font size=5>{$emperior['phase']}</font>
@@ -57,24 +57,24 @@ if ($select == 0) {
</td>
</tr>
<tr>
<td id=bg1 align=center width=123>국 력</td>
<td align=center width=123>{$emperior['power']}</td>
<td id=bg1 align=center width=123>장 수</td>
<td align=center width=123>{$emperior['gennum']}</td>
<td id=bg1 align=center width=123>속 령</td>
<td align=center width=123>{$emperior['citynum']}</td>
<td id=bg1 align=center width=123>성 향</td>
<td align=center width=123>{$emperior['type']}</td>
<td id=bg1 align=center width=80>국 력</td>
<td align=center width=170>{$emperior['power']}</td>
<td id=bg1 align=center width=80>장 수</td>
<td align=center width=170>{$emperior['gennum']}</td>
<td id=bg1 align=center width=80>속 령</td>
<td align=center width=170>{$emperior['citynum']}</td>
<td id=bg1 align=center width=80>성 향</td>
<td align=center width=170>{$emperior['type']}</td>
</tr>
<tr>
<td id=bg1 width=123 align=center>황 제</td>
<td width=123 align=center>{$emperior['l12name']}</td>
<td id=bg1 width=123 align=center>승 상</td>
<td width=123 align=center>{$emperior['l11name']}</td>
<td id=bg1 width=123 align=center>위 장 군</td>
<td width=123 align=center>{$emperior['l10name']}</td>
<td id=bg1 width=123 align=center>사 공</td>
<td width=123 align=center>{$emperior['l9name']}</td>
<td id=bg1 align=center>황 제</td>
<td align=center>{$emperior['l12name']}</td>
<td id=bg1 align=center>승 상</td>
<td align=center>{$emperior['l11name']}</td>
<td id=bg1 align=center>위 장 군</td>
<td align=center>{$emperior['l10name']}</td>
<td id=bg1 align=center>사 공</td>
<td align=center>{$emperior['l9name']}</td>
</tr>
</table>
</form>";
@@ -85,7 +85,7 @@ if ($select == 0) {
$emperior = MYDB_fetch_array($result);
echo "
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style='font-size:13px;word-break:break-all;color:white;' id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td bgcolor=skyblue align=center colspan=6>
<font size=5>{$emperior['phase']}</font>
@@ -197,7 +197,7 @@ if ($select == 0) {
}
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all;color:white; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+22 -22
View File
@@ -19,13 +19,13 @@ increaseRefresh("왕조일람", 2);
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 왕조일람</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>역 대 왕 조<br>
<input type=button value='창 닫기' onclick=window.close()><br>
</td></tr>
@@ -43,7 +43,7 @@ if ($select == 0) {
echo "
<form action=a_emperior2.php method=post>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td bgcolor=skyblue align=center colspan=8>
<font size=5>{$emperior['phase']}</font>
@@ -57,24 +57,24 @@ if ($select == 0) {
</td>
</tr>
<tr>
<td id=bg1 align=center width=123>국 력</td>
<td align=center width=123>{$emperior['power']}</td>
<td id=bg1 align=center width=123>장 수</td>
<td align=center width=123>{$emperior['gennum']}</td>
<td id=bg1 align=center width=123>속 령</td>
<td align=center width=123>{$emperior['citynum']}</td>
<td id=bg1 align=center width=123>성 향</td>
<td align=center width=123>{$emperior['type']}</td>
<td id=bg1 align=center width=80>국 력</td>
<td align=center width=170>{$emperior['power']}</td>
<td id=bg1 align=center width=80>장 수</td>
<td align=center width=170>{$emperior['gennum']}</td>
<td id=bg1 align=center width=80>속 령</td>
<td align=center width=170>{$emperior['citynum']}</td>
<td id=bg1 align=center width=80>성 향</td>
<td align=center width=170>{$emperior['type']}</td>
</tr>
<tr>
<td id=bg1 width=123 align=center>황 제</td>
<td width=123 align=center>{$emperior['l12name']}</td>
<td id=bg1 width=123 align=center>승 상</td>
<td width=123 align=center>{$emperior['l11name']}</td>
<td id=bg1 width=123 align=center>위 장 군</td>
<td width=123 align=center>{$emperior['l10name']}</td>
<td id=bg1 width=123 align=center>사 공</td>
<td width=123 align=center>{$emperior['l9name']}</td>
<td id=bg1 align=center>황 제</td>
<td align=center>{$emperior['l12name']}</td>
<td id=bg1 align=center>승 상</td>
<td align=center>{$emperior['l11name']}</td>
<td id=bg1 align=center>위 장 군</td>
<td align=center>{$emperior['l10name']}</td>
<td id=bg1 align=center>사 공</td>
<td align=center>{$emperior['l9name']}</td>
</tr>
</table>
</form>";
@@ -86,7 +86,7 @@ if ($select == 0) {
echo "
<form action=a_emperior2.php method=post>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td bgcolor=skyblue align=center colspan=6>
<font size=5>{$emperior['phase']}</font>
@@ -198,7 +198,7 @@ if ($select == 0) {
}
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+19 -21
View File
@@ -13,19 +13,16 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("장수일람", 2);
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$query = "select con,turntime from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
@@ -42,14 +39,15 @@ if ($type <= 0 || $type > 15) {
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 장수일람</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<script type="text/javascript" src="../e_lib/jquery-3.2.1.min.js"></script>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
<?=WebUtil::printJS('../d_shared/common_path.js')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>장 수 일 람<br><?=closeButton()?></td></tr>
<tr><td><form name=form1 method=post>정렬순서 :
<select id='viewType' name='type' size=1>
@@ -103,23 +101,23 @@ $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect)
$gencount = MYDB_num_rows($genresult);
echo"
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td width=64 align=center id=bg1>얼 굴</td>
<td width=100 align=center id=bg1>이 름</td>
<td width=50 align=center id=bg1>연령</td>
<td width=50 align=center id=bg1>성격</td>
<td width=90 align=center id=bg1>특기</td>
<td width=50 align=center id=bg1>레 벨</td>
<td width=100 align=center id=bg1>국 가</td>
<td width=60 align=center id=bg1>명 성</td>
<td width=60 align=center id=bg1>계 급</td>
<td width=80 align=center id=bg1>관 직</td>
<td width=140 align=center id=bg1>이 름</td>
<td width=45 align=center id=bg1>연령</td>
<td width=45 align=center id=bg1>성격</td>
<td width=80 align=center id=bg1>특기</td>
<td width=45 align=center id=bg1>레 벨</td>
<td width=140 align=center id=bg1>국 가</td>
<td width=55 align=center id=bg1>명 성</td>
<td width=55 align=center id=bg1>계 급</td>
<td width=75 align=center id=bg1>관 직</td>
<td width=45 align=center id=bg1>통솔</td>
<td width=45 align=center id=bg1>무력</td>
<td width=45 align=center id=bg1>지력</td>
<td width=45 align=center id=bg1>삭턴</td>
<td width=84 align=center id=bg1>벌점</td>
<td width=70 align=center id=bg1>벌점</td>
</tr>";
for ($j=0; $j < $gencount; $j++) {
$general = MYDB_fetch_array($genresult);
@@ -190,7 +188,7 @@ echo "
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+5 -5
View File
@@ -15,16 +15,16 @@ increaseRefresh("명예의전당", 2);
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 명예의 전당</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=Font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>명 예 의 전 당<br><?=closeButton()?></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<?php
$type = array(
"명 성",
@@ -114,7 +114,7 @@ for ($i=0; $i < 21; $i++) {
}
?>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+14 -15
View File
@@ -13,19 +13,18 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("연감", 2);
$query = "select startyear,year,month,conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear','year','month']);
$query = "select con,turntime from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
@@ -78,20 +77,20 @@ if ($month <= 0) {
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 연감</title>
<script src="../e_lib/jquery-3.2.1.min.js"></script>
<script src="../d_shared/common_path.js"></script>
<script src="js/common.js"></script>
<script src="js/base_map.js"></script>
<script src="js/map.js"></script>
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
<?=WebUtil::printJS('../d_shared/common_path.js')?>
<?=WebUtil::printJS('js/common.js')?>
<?=WebUtil::printJS('js/base_map.js')?>
<?=WebUtil::printJS('js/map.js')?>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<link href="css/map.css" rel="stylesheet">
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<?=WebUtil::printCSS('css/map.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>연 감<br><?=closeButton()?></td></tr>
<tr><td>
<form name=form1 method=post>
@@ -124,7 +123,7 @@ $history = MYDB_fetch_array($result);
</form>
</td></tr>
</table>
<table align=center width=1000 height=520 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 height=520 class='tb_layout bg0'>
<tr><td colspan=5 align=center id=bg1>중 원 지 도</td></tr>
<tr height=520>
<td width=698>
@@ -148,7 +147,7 @@ $history = MYDB_fetch_array($result);
</td>
</tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+16 -19
View File
@@ -8,19 +8,16 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("세력일람", 2);
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$query = "select con,turntime from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
?>
<!DOCTYPE html>
@@ -29,13 +26,13 @@ if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 세력일람</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>세 력 일 람<br><?=closeButton()?></td></tr>
</table>
<?php
@@ -127,19 +124,19 @@ for($i=1; $i <= $count; $i++) {
else { $l5 = $level5['name']; }
echo "
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
<table align=center width=1000 class='tb_layout bg2'>
<tr>
<td colspan=8 align=center style=color:".newColor($nation['color'])."; bgcolor={$nation['color']}>【 {$nation['name']} 】</td>
</tr>
<tr>
<td width=123 align=center id=bg1>성 향</td>
<td width=123 align=center><font color=yellow>".getNationType($nation['type'])."</font></td>
<td width=123 align=center id=bg1>작 위</td>
<td width=123 align=center>".getNationLevel($nation['level'])."</td>
<td width=123 align=center id=bg1>국 력</td>
<td width=123 align=center>{$nation['power']}</td>
<td width=123 align=center id=bg1>장수 / 속령</td>
<td width=123 align=center>{$gencount} / {$citycount}</td>
<td width=80 align=center id=bg1>성 향</td>
<td width=170 align=center><font color=yellow>".getNationType($nation['type'])."</font></td>
<td width=80 align=center id=bg1>작 위</td>
<td width=170 align=center>".getNationLevel($nation['level'])."</td>
<td width=80 align=center id=bg1>국 력</td>
<td width=170 align=center>{$nation['power']}</td>
<td width=80 align=center id=bg1>장수 / 속령</td>
<td width=170 align=center>{$gencount} / {$citycount}</td>
</tr>
<tr>
<td align=center id=bg1>".getLevel(12, $nation['level'])."</td>
@@ -209,7 +206,7 @@ $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect
$citycount = MYDB_num_rows($cityresult);
echo "
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
<table align=center width=1000 class='tb_layout bg2'>
<tr>
<td colspan=5 align=center>【 재 야 】</td>
</tr>
@@ -244,7 +241,7 @@ echo"
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+5 -5
View File
@@ -27,13 +27,13 @@ $sel[$type] = "selected";
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 빙의일람</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>빙 의 일 람<br><?=closeButton()?></td></tr>
<tr><td><form name=form1 method=post>정렬순서 :
<select name=type size=1>
@@ -71,7 +71,7 @@ $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect)
$gencount = MYDB_num_rows($genresult);
echo"
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td width=102 align=center id=bg1>희생된 장수</td>
<td width=102 align=center id=bg1>악령 이름</td>
@@ -120,7 +120,7 @@ echo "
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+14 -17
View File
@@ -8,20 +8,17 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("세력도", 2);
checkTurn();
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$query = "select con,turntime from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
?>
<!DOCTYPE html>
@@ -30,11 +27,11 @@ if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title><?=UniqueConst::$serverName?>: 세력도</title>
<script src="../e_lib/jquery-3.2.1.min.js"></script>
<script src="../d_shared/common_path.js"></script>
<script src="js/common.js"></script>
<script src="js/base_map.js"></script>
<script src="js/map.js"></script>
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
<?=WebUtil::printJS('../d_shared/common_path.js')?>
<?=WebUtil::printJS('js/common.js')?>
<?=WebUtil::printJS('js/base_map.js')?>
<?=WebUtil::printJS('js/map.js')?>
<script>
$(function(){
@@ -45,18 +42,18 @@ $(function(){
});
</script>
<link href="../d_shared/common.css" rel="stylesheet">
<link href="css/normalize.css" rel="stylesheet">
<link href="css/common.css" rel="stylesheet">
<link href="css/map.css" rel="stylesheet">
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/normalize.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<?=WebUtil::printCSS('css/map.css')?>
</head>
<body>
<table align=center width=1200 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1200 class='tb_layout bg0'>
<tr><td>세 력 도<br><?=closeButton()?></td></tr>
</table>
<table align=center width=1200 height=520 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1200 height=520 class='tb_layout bg0'>
<tr height=520>
<td width=498 valign=top>
<?=getGeneralPublicRecordRecent(34)?>
@@ -71,7 +68,7 @@ $(function(){
</td>
</tr>
</table>
<table align=center width=1200 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1200 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+89 -164
View File
@@ -5,13 +5,12 @@ include "lib.php";
include "func.php";
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("갱신정보", 2);
$query = "select year,month,refresh,maxrefresh,maxonline from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$game = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','refresh','maxrefresh','maxonline']);
$log = getRawFileLogRecent(__dir__.'/logs/_traffic.txt', 11, 100);
@@ -30,18 +29,21 @@ foreach($log as $i=>$value){
$refresh[$i] = $parse[3];
$online[$i] = $parse[4];
}
$year[] = $admin['year'];
$month[] = $admin['month'];
$date[] = date('Y-m-d H:i:s');
if ($game['maxrefresh'] == 0) {
$game['maxrefresh'] = 1;
if ($admin['maxrefresh'] == 0) {
$admin['maxrefresh'] = 1;
}
if ($game['maxrefresh'] < $game['refresh']) {
$game['maxrefresh'] = $game['refresh'];
if ($admin['maxrefresh'] < $admin['refresh']) {
$admin['maxrefresh'] = $admin['refresh'];
}
if ($game['maxonline'] == 0) {
$game['maxonline'] = 1;
if ($admin['maxonline'] == 0) {
$admin['maxonline'] = 1;
}
if ($game['maxonline'] < $curonline) {
$game['maxonline'] = $curonline;
if ($admin['maxonline'] < $curonline) {
$admin['maxonline'] = $curonline;
}
?>
<!DOCTYPE html>
@@ -49,218 +51,141 @@ if ($game['maxonline'] < $curonline) {
<head>
<title><?=UniqueConst::$serverName?>: 트래픽정보</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<style>
.big_bar{
float:left;
position:relative;
height:30px;
}
.big_bar span{
float:right;
padding:0;
margin:0;
line-height:30px;
padding-right:1ch;
}
.little_bar{
float:left;
position:relative;
height:17px;
}
span.out_bar{
line-height:30px;
margin-left:1ch;
}
</style>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>트 래 픽 정 보<br><?=closeButton()?></td></tr>
</table>
<br>
<table align=center width=1016 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all;>
<table align=center width=1016>
<tr><td align=left>
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center class='tb_layout bg0'>
<tr><td colspan=4 align=center id=bg2><font size=5>접 속 량</font></td></tr>
<?php
foreach($log as $i=>$value){
$w = round($refresh[$i] / $game['maxrefresh'] * 100, 1);
if ($w >= 100) {
$w -= 0.1;
}
if ($refresh[$i] < 10 && $w < 3) {
$w = 3;
} elseif ($refresh[$i] < 100 && $w < 6) {
$w = 6;
} elseif ($refresh[$i] < 1000 && $w < 9) {
$w = 9;
}
$w2 = round(100 - $w, 1);
$refresh[] = $admin['refresh'];
foreach($refresh as $i=>$value){
$w = round($value / $admin['maxrefresh'] * 100, 1);
$color = getTrafficColor($w);
$dt = substr($date[$i], 11, 5); ?>
<tr height=30>
<td width=100 align=center><?=$year[$i]?>년 <?=$month[$i]?>월</td>
<td width=60 align=center id=bg2><?=$dt?></td>
<td width=2 align=center id=bg1></td>
<td width=320 align=center>
<table align=center width=100% height=30 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<tr>
<td width=<?=$w?>% bgcolor=<?=$color?> align=right><?=$refresh[$i]?>&nbsp;</td>
<td width=<?=$w2?>% id=bg0><font size=1>&nbsp;</font></td>
</tr>
</table>
<td width=320>
<?php if($w == 0): ?>
<span class="out_bar"><?=$value?></span>
<?php elseif($w < 10): ?>
<div class='big_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'></div><span class="out_bar"><?=$value?></span>
<?php else:?>
<div class='big_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'><span><?=$value?></span></div>
<?php endif;?>
</td>
</tr>
<?php
}
$w = round($game['refresh'] / $game['maxrefresh'] * 100, 1);
if ($w >= 100) {
$w -= 0.1;
}
if ($game['refresh'] < 10 && $w < 3) {
$w = 3;
} elseif ($game['refresh'] < 100 && $w < 6) {
$w = 6;
} elseif ($game['refresh'] < 1000 && $w < 9) {
$w = 9;
}
$w2 = round(100 - $w, 1);
$color = getTrafficColor($w);
$dt = date('H:i');
?>
<tr height=30>
<td width=100 align=center><?=$game['year']?>년 <?=$game['month']?>월</td>
<td width=60 align=center id=bg2><?=$dt?></td>
<td width=2 align=center id=bg1></td>
<td width=320 align=center>
<table align=center width=100% height=30 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<tr>
<td width=<?=$w?>% bgcolor=<?=$color?> align=right><?=$game['refresh']?>&nbsp;</td>
<td width=<?=$w2?>% id=bg0><font size=1>&nbsp;</font></td>
</tr>
</table>
</td>
</tr>
<tr><td colspan=4 height=5 align=center id=bg1></td></tr>
<tr>
<td colspan=4 height=30 align=center id=bg0>최고기록: <?=$game['maxrefresh']?></td>
<td colspan=4 height=30 align=center id=bg0>최고기록: <?=$admin['maxrefresh']?></td>
</tr>
</table>
</td>
<td align=right>
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center class='tb_layout bg0'>
<tr><td colspan=4 align=center id=bg2><font size=5>접 속 자</font></td></tr>
<?php
foreach($log as $i=>$value){
$w = round($online[$i] / $game['maxonline'] * 100, 1);
if ($w >= 100) {
$w -= 0.1;
}
if ($online[$i] < 10 && $w < 3) {
$w = 3;
} elseif ($online[$i] < 100 && $w < 6) {
$w = 6;
} elseif ($online[$i] < 1000 && $w < 9) {
$w = 9;
}
$w2 = round(100 - $w, 1);
$online[] = $curonline;
foreach($online as $i=>$value){
$w = round($value / $admin['maxonline'] * 100, 1);
$color = getTrafficColor($w);
$dt = substr($date[$i], 11, 5); ?>
<tr height=30>
<td width=100 align=center><?=$year[$i]?>년 <?=$month[$i]?>월</td>
<td width=60 align=center id=bg2><?=$dt?></td>
<td width=2 align=center id=bg1></td>
<td width=320 align=center>
<table align=center width=100% height=30 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<tr>
<td width=<?=$w?>% bgcolor=<?=$color?> align=right><?=$online[$i]?>&nbsp;</td>
<td width=<?=$w2?>% id=bg0><font size=1>&nbsp;</font></td>
</tr>
</table>
<td width=320>
<?php if($w == 0): ?>
<span class="out_bar"><?=$value?></span>
<?php elseif($w < 10): ?>
<div class='big_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'></div><span class="out_bar"><?=$value?></span>
<?php else:?>
<div class='big_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'><span><?=$value?></span></div>
<?php endif;?>
</td>
</tr>
<?php
}
$w = round($curonline / $game['maxonline'] * 100, 1);
if ($w >= 100) {
$w -= 0.1;
}
if ($curonline < 10 && $w < 3) {
$w = 3;
} elseif ($curonline < 100 && $w < 6) {
$w = 6;
} elseif ($curonline < 1000 && $w < 9) {
$w = 9;
}
$w2 = round(100 - $w, 1);
$color = getTrafficColor($w);
$dt = date('H:i');
echo "
<tr height=30>
<td width=100 align=center>{$game['year']}년 {$game['month']}월</td>
<td width=60 align=center id=bg2>{$dt}</td>
<td width=2 align=center id=bg1></td>
<td width=320 align=center>
<table align=center width=100% height=30 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<tr>
<td width={$w}% bgcolor={$color} align=right>{$curonline}&nbsp;</td>
<td width={$w2}% id=bg0><font size=1>&nbsp;</font></td>
</tr>
</table>
</td>
</tr>
?>
<tr><td colspan=4 height=5 align=center id=bg1></td></tr>
<tr>
<td colspan=4 height=30 align=center id=bg0>최고기록: {$game['maxonline']}</td>
<td colspan=4 height=30 align=center id=bg0>최고기록: <?=$admin['maxonline']?></td>
</tr>
";
?>
</table>
</td></tr>
</table>
<br>
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center class='tb_layout bg0'>
<tr><td colspan=3 align=center id=bg2><font size=5>주 의 대 상 자 (순간과도갱신)</font></td></tr>
<?php
$query = "select sum(refresh) as refresh,sum(connect) as connect from general";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$user = MYDB_fetch_array($result);
$user['connect'] = round($user['connect'], 1);
$maxrefresh = $user['refresh'];
$max_refresh = $db->queryFirstRow('SELECT sum(refresh) as refresh, sum(`connect`) as `connect` from general');
$max_refresh['name'] = '접속자 총합';
$w = round($maxrefresh / $maxrefresh * 100, 1);
$w2 = round(100 - $w, 1);
$color = getTrafficColor($w);
echo "
<tr id=bg2>
<td width=98 align=center>주의대상자</td>
<td width=98 align=center>벌점(순간갱신)</td>
<td width=798 align=center>전체 대비</td>
</tr>
<tr>
<td align=center>접속자 총합</td>
<td align=center>{$user['connect']}({$maxrefresh})</td>
<td align=center>
<table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<tr>
<td width={$w}% bgcolor={$color}>&nbsp;</td>
<td width={$w2}%>&nbsp;</td>
</tr>
</table>
</td>
</tr>
";
$refresh_result = array_merge([$max_refresh], $db->query('SELECT `name`,refresh,`connect` FROM general ORDER BY refresh DESC LIMIT 5'));
$query = "select name,refresh,connect from general order by refresh desc limit 0,5";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$count = MYDB_num_rows($result);
for ($i=0; $i < $count; $i++) {
$user = MYDB_fetch_array($result);
$w = round($user['refresh'] / $maxrefresh * 100, 1);
foreach ($refresh_result as $i=>$user) {
$w = round($user['refresh'] / $max_refresh['refresh'] * 100, 1);
$w2 = round(100 - $w, 1);
$color = getTrafficColor($w);
echo "
?>
<tr>
<td width=98 align=center>{$user['name']}</td>
<td width=98 align=center>{$user['connect']}({$user['refresh']})</td>
<td width=798 align=center>
<table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<tr>
<td width={$w}% bgcolor={$color}>&nbsp;</td>
<td width={$w2}%>&nbsp;</td>
</tr>
</table>
<td width=98 align=center><?=$user['name']?></td>
<td width=98 align=center><?=$user['connect']?>(<?=$user['refresh']?>)</td>
<td width=798>
<?php if($w == 0): ?>
<?php elseif($w < 10): ?>
<div class='little_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'></div>
<?php else:?>
<div class='little_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'></div>
<?php endif;?>
</td>
</tr>
";
<?php
}
?>
</table>
<br>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
@@ -273,7 +198,7 @@ function getTrafficColor($per)
$r = getHex($per);
$b = getHex(100 - $per);
$color = $r . "00" . $b;
return $color;
return '#'.$color;
}
function getHex($dec)
+79 -41
View File
@@ -7,6 +7,7 @@ include "func.php";
$session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("설문조사", 1);
@@ -15,14 +16,9 @@ $query = "select no,vote from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
$query = "select develcost,voteopen,vote,votecomment from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['develcost','voteopen','vote','votecomment']);
$vote = explode("|", $admin['vote']);
if ($vote[0] == "") {
$vote[0] = "-";
}
$vote = $admin['vote']?:['-'];
?>
<!DOCTYPE html>
@@ -30,8 +26,17 @@ if ($vote[0] == "") {
<head>
<title><?=UniqueConst::$serverName?>: 설문조사</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<style>
.little_bar{
float:left;
position:relative;
height:17px;
line-height:17px;
text-align:center;
}
</style>
<script type="text/javascript">
function captureKey(e) {
if(e.keyCode == 13 && e.srcElement.type == 'text') {
@@ -44,10 +49,10 @@ function captureKey(e) {
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>설 문 조 사<br><?=closeButton()?></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<form name=form1 action=c_vote.php method=post>
<tr><td colspan=3 align=center id=bg2><font size=5>설 문 조 사 (<?=$admin['develcost']*5?>금과 추첨으로 유니크템 증정!)</font></td></tr>
<?php
@@ -137,21 +142,21 @@ if ($session->userGrade >= 5) {
";
}
if ($admin['votecomment'] != "") {
$comment = explode("|", $admin['votecomment']);
if ($admin['votecomment']) {
$comment = $admin['votecomment'];
$commentCount = count($comment);
} else {
$commentCount = 0;
}
echo "
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td colspan=4 align=center id=bg1>댓 글</td>
</tr>
";
for ($i=0; $i < $commentCount; $i++) {
$cmt = explode(":", $comment[$i]);
$cmt = $comment[$i];
$cmt[2] = Tag2Code($cmt[2]);
$j = $i+1;
echo "
@@ -175,7 +180,7 @@ if ($me['no'] > 0) {
?>
</table>
<br>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td colspan=3 align=center id=bg2><font size=5>
전 체 통 계
<?php
@@ -193,9 +198,7 @@ if ($admin['voteopen'] >= 1 || $session->userGrade >= 5) {
<tr>
<td width=98 align=center>전 체</td>
<td width=128 align=center>{$voteCount} / {$allCount} ({$percentage} %)</td>
<td width=768 align=center>
<table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<tr>
<td width=768>
";
$memCount = max(1, $db->queryFirstField('SELECT count(`no`) FROM general WHERE npc<2'));
@@ -227,17 +230,29 @@ if ($admin['voteopen'] >= 1 || $session->userGrade >= 5) {
$nationVote[$nation][$ownVote] += $cnt;
}
$totalPer = 0;
for ($i=0; $i < $voteTypeCount; $i++) {
$per = round(($totalVote[$i]??0) * 100 / $memCount, 1);
if($i == $voteTypeCount-1){
$per = 100-$totalPer;
}
else{
$totalPer += $per;
}
// if($per < 5) { $vote['cnt'] = "&nbsp;"; }
echo "
<td width={$per}% align=center style=color:".getNewColor($i)."; bgcolor=".getVoteColor($i).">{$totalVote[$i]}</td>
";
?>
<?php if($per == 0): ?>
<?php elseif($per < 10): ?>
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($i)?>;background-color:<?=getVoteColor($i)?>;'></div>
<?php else:?>
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($i)?>;background-color:<?=getVoteColor($i)?>;'><?=$totalVote[$i]?></div>
<?php endif;?>
<?php
}
echo "
</tr>
</table>
</td>
</tr>
";
@@ -260,22 +275,30 @@ if ($admin['voteopen'] >= 2 || $session->userGrade >= 5) {
<tr>
<td align=center bgcolor=black>재 야</td>
<td align=center>{$nationVoteCount[0]} / {$memCount} ({$percentage} %)</td>
<td align=center>
<table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<tr>
<td>
";
$totalPer = 0;
for ($i=0; $i < $voteTypeCount; $i++) {
$per = round(Util::array_get($nationVote[0][$i], 0) / $memCount * 100, 1);
if($i == $voteTypeCount-1){
$per = 100-$totalPer;
}
else{
$totalPer += $per;
}
// if($per < 5) { $vote['cnt'] = "&nbsp;"; }
echo "
<td width={$per}% align=center style=color:".getNewColor($i)."; bgcolor=".getVoteColor($i).">{$nationVote[0][$i]}</td>
";
?>
<?php if($per == 0): ?>
<?php elseif($per < 10): ?>
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($i)?>;background-color:<?=getVoteColor($i)?>;'></div>
<?php else:?>
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($i)?>;background-color:<?=getVoteColor($i)?>;'><?=$nationVote[0][$i]?></div>
<?php endif;?>
<?php
}
echo "
</tr>
</table>
</td>
</tr>
";
@@ -306,21 +329,36 @@ if ($admin['voteopen'] >= 2 || $session->userGrade >= 5) {
<td align=center style=color:".newColor($nation['color'])."; bgcolor={$nation['color']}>{$nation['name']}</td>
<td align=center>{$voteCount} / {$memCount} ({$percentage} %)</td>
<td align=center>
<table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<tr>
";
$totalPer = 0;
for ($k=0; $k < $voteTypeCount; $k++) {
$per = round($nationVote[$nation['nation']][$k] / $memCount * 100, 1);
if($memCount == 0){
$per = 0;
continue;
}
$per = round($nationVote[$nation['nation']][$k]??0 / $memCount * 100, 1);
if($i == $voteTypeCount-1){
$per = 100-$totalPer;
}
else{
$totalPer += $per;
}
// if($per < 5) { $vote['cnt'] = "&nbsp;"; }
echo "
<td width={$per}% align=center style=color:".getNewColor($k)."; bgcolor=".getVoteColor($k).">{$nationVote[$nation['nation']][$k]}</td>
";
?>
<?php if($per == 0): ?>
<?php elseif($per < 10): ?>
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($k)?>;background-color:<?=getVoteColor($k)?>;'></div>
<?php else:?>
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($k)?>;background-color:<?=getVoteColor($k)?>;'><?=$nationVote[$nation['nation']][$k]??0?></div>
<?php endif;?>
<?php
}
echo "
</tr>
</table>
</td>
</tr>
";
@@ -329,7 +367,7 @@ if ($admin['voteopen'] >= 2 || $session->userGrade >= 5) {
?>
</form>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+8 -12
View File
@@ -14,6 +14,7 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("거래장", 2);
@@ -22,11 +23,7 @@ $query = "select no,special,con,turntime from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
@@ -60,16 +57,15 @@ if ($msg2 == "") {
<head>
<title><?=UniqueConst::$serverName?>: 거래장</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>거 래 장<br><?=closeButton()?></td></tr>
<tr><td align=center id=bg2><font color=orange size=6><b>거 래 장</b></font><input type=button value='갱신' onclick=location.replace('b_auction.php')></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<form method=post action=c_auction.php>
<tr><td colspan=11 align=center bgcolor=orange><font size=5>팝 니 다</font></td></tr>
<tr align=center id=bg1>
@@ -167,7 +163,7 @@ for ($i=0; $i < $count; $i++) {
</form>
</table>
<br>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<form method=post action=c_auction.php>
<tr><td colspan=11 align=center bgcolor=skyblue><font size=5>삽 니 다</font></td></tr>
<tr align=center id=bg1>
@@ -265,7 +261,7 @@ for ($i=0; $i < $count; $i++) {
</form>
</table>
<br>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td align=center id=bg2><font size=5>최 근 기 록</font></td></tr>
<tr><td>
<?=getAuctionLogRecent(20)?>
+8 -10
View File
@@ -23,15 +23,13 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("감찰부", 2);
//전투 추진을 위해 갱신
checkTurn();
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$gameStor->resetCache();
$query = "select nation from general where no='$gen'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
@@ -45,7 +43,7 @@ $query = "select secretlimit from nation where nation='{$me['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$nation = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
@@ -77,13 +75,13 @@ $sel[$type] = "selected";
<head>
<title><?=UniqueConst::$serverName?>: 감찰부</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>감 찰 부<br><?=closeButton()?></td></tr>
<tr><td>
<form name=form1 method=post>
@@ -131,7 +129,7 @@ for ($i=0; $i < $gencount; $i++) {
</form>
</td></tr>
</table>
<table width=1000 align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table width=1000 align=center class='tb_layout bg0'>
<tr>
<td width=50% align=center id=bg1><font color=skyblue size=3>장 수 정 보</font></td>
<td width=50% align=center id=bg1><font color=orange size=3>장 수 열 전</font></td>
@@ -170,7 +168,7 @@ for ($i=0; $i < $gencount; $i++) {
</tr>
<?php endif; ?>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+16 -22
View File
@@ -8,6 +8,7 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("베팅장", 1);
@@ -17,11 +18,13 @@ $query = "select no,tournament,con,turntime,bet0+bet1+bet2+bet3+bet4+bet5+bet6+b
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
$query = "select conlimit,tournament,phase,tnmt_type,develcost,bet0,bet1,bet2,bet3,bet4,bet5,bet6,bet7,bet8,bet9,bet10,bet11,bet12,bet13,bet14,bet15,bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 as bet from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['tournament','phase','tnmt_type','develcost','bet0','bet1','bet2','bet3','bet4','bet5','bet6','bet7','bet8','bet9','bet10','bet11','bet12','bet13','bet14','bet15']);
$admin['bet'] =
$admin['bet0'] + $admin['bet1'] + $admin['bet2'] + $admin['bet3'] + $admin['bet4'] +
$admin['bet5'] + $admin['bet6'] + $admin['bet7'] + $admin['bet8'] + $admin['bet9'] +
$admin['bet10'] + $admin['bet11'] + $admin['bet12'] + $admin['bet13'] + $admin['bet14'] + $admin['bet15'];
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
@@ -54,29 +57,20 @@ if($str3){
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 베팅장</title>
<style>
body { color:white; background-color:black; border-width:1px; border-color:gray; }
table { font-family:'맑은 고딕';}
font { font-family:'맑은 고딕';}
input { font-family:'맑은 고딕';height:20px }
select { font-family:'굴림'; }
#bg0 { background-image:url(<?=ServConfig::$gameImagePath?>/back_walnut.jpg); }
#bg1 { background-image:url(<?=ServConfig::$gameImagePath?>/back_green.jpg); }
#bg2 { background-image:url(<?=ServConfig::$gameImagePath?>/back_blue.jpg); }
</style>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1120 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1120 class='tb_layout bg0'>
<tr><td>베 팅 장<br><?=closeButton()?></td></tr>
</table>
<table align=center width=1120 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:10px;word-break:break-all; id=bg0>
<table align=center width=1120 class='tb_layout bg0'>
<tr><td colspan=16><input type=button value='갱신' onclick='location.reload()'></td></tr>
<tr><td colspan=16 align=center><font color=white size=6><?=$tnmt_type?> (<?=$str1.$str2.$str3?>)</font></td></tr>
<tr><td height=50 colspan=16 align=center id=bg2><font color=limegreen size=6>16강 상황</font><br><font color=orange size=3>(전체 금액 : <?=$admin['bet']?> / 내 투자 금액 : <?=$me['bet']?>)</font></td></tr>
</table>
<table align=center width=1120 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:10px;word-break:break-all; id=bg0>
<table align=center width=1120 class='mimic_flex bg0' style='border:solid 1px gray;font-size:10px;'>
<tr align=center><td height=10 colspan=16></td></tr>
<tr align=center>
<?php
@@ -308,7 +302,7 @@ for ($i=0; $i < 16; $i++) {
?>
</tr>
</table>
<table align=center width=1120 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1120 class='tb_layout bg0'>
<tr align=center><td height=10 colspan=16></td></tr>
<?php
echo "
@@ -387,7 +381,7 @@ if ($admin['tournament'] == 6) {
</tr>
<tr align=center><td height=10 colspan=16></td></tr>
</table>
<table align=center width=1120 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1120 class='tb_layout bg0'>
<tr align=center><td height=50 colspan=4 id=bg2><font color=yellow size=6>토너먼트 랭킹</font></td></tr>
<tr align=center><td colspan=4 id=bg2><font color=skyblue size=3>순위 / 장수명 / 능력치 / 경기수 / 승리 / 무승부 / 패배 / 집계점수 / 우승횟수</font></td></tr>
<tr align=center>
@@ -402,7 +396,7 @@ for ($i=0; $i < 4; $i++) {
$grp = $i;
echo "
<td>
<table align=center width=280 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=280 class='tb_layout bg0'>
<tr><td colspan=9 align=center style=color:white;background-color:black;><font size=4>{$type1[$i]}</font></td></tr>
<tr id=bg1><td align=center>순</td><td align=center>장수</td><td align=center>{$type2[$i]}</td><td align=center>경</td><td align=center>승</td><td align=center>무</td><td align=center>패</td><td align=center>점</td><td align=center>勝</td></tr>";
@@ -429,7 +423,7 @@ for ($i=0; $i < 4; $i++) {
</td>
</tr>
</table>
<table align=center width=1120 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1120 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+4 -4
View File
@@ -27,13 +27,13 @@ if($me['level'] < 5) {
<head>
<title><?=UniqueConst::$serverName?>: 기밀실</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>기 밀 실<br><?=backButton()?></td></tr>
<form name=form1 method=post action=c_chiefboard.php>
<tr><td align=center>
@@ -65,7 +65,7 @@ for($i=0; $i < 20; $i++) {
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+8 -13
View File
@@ -8,14 +8,11 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("사령부", 1);
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$query = "select no,nation,level,con,turntime,belong from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
@@ -24,7 +21,7 @@ $query = "select secretlimit from nation where nation='{$me['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$nation = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
if($me['level'] == 0 || ($me['level'] == 1 && $me['belong'] < $nation['secretlimit'])) {
@@ -38,9 +35,7 @@ else { $btn = "hidden"; $btn2 = "hidden"; }
$date = date('Y-m-d H:i:s');
// 명령 목록
$query = "select year,month,turnterm from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','turnterm']);
$query = "
select nation,level,
@@ -84,8 +79,8 @@ for($i= $lv - 1; $i>=5; $i--){
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 사령부</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<script type="text/javascript">
function turn(type) {
if(type == 0) location.replace('turn_push_core.php');
@@ -96,10 +91,10 @@ function turn(type) {
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>사 령 부<input type=button value='갱신' onclick=location.replace('b_chiefcenter.php')><br><?=backButton()?></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td colspan=10 align=center bgcolor=skyblue>수뇌부 일정</td></tr>
<tr><td colspan=10 align=center>
<?php
@@ -188,7 +183,7 @@ for($k=0; $k < 2; $k++) {
?>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+22 -22
View File
@@ -34,8 +34,8 @@ $templates = new \League\Plates\Engine('templates');
<head>
<title><?=UniqueConst::$serverName?>: 도시정보</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link href="../d_shared/common.css" rel="stylesheet">
<link href="css/common.css" rel="stylesheet">
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<style>
#general_list tr td{
text-align:center;
@@ -53,11 +53,11 @@ $templates = new \League\Plates\Engine('templates');
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>도 시 정 보<br><?=backButton()?></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td width=998>
<form name=cityselect method=get>도시선택 :
@@ -175,27 +175,27 @@ if($city['trade'] == 0) {
}
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg2>
<table align=center width=1000 class='tb_layout bg2'>
<tr>
<td colspan=12 align=center style=color:"<?=newColor($nation['color'])?>"; bgcolor=<?=$nation['color']?>>【 <?=CityConst::$regionMap[$city['region']]?> | <?=CityConst::$levelMap[$city['level']]?> 】 <?=$city['name']?></td>
</tr>
<tr>
<td align=center width=48 class=bg1>주민</td>
<td align=center width=112><?=$city['pop']?>/<?=$city['pop2']?></td>
<td align=center width=48 class=bg1>농업</td>
<td align=center width=108><?=$city['agri']?>/<?=$city['agri2']?></td>
<td align=center width=48 class=bg1>상업</td>
<td align=center width=108><?=$city['comm']?>/<?=$city['comm2']?></td>
<td align=center width=48 class=bg1>치안</td>
<td align=center width=108><?=$city['secu']?>/<?=$city['secu2']?></td>
<td align=center width=48 class=bg1>수비</td>
<td align=center width=108><?=$city['def']?>/<?=$city['def2']?></td>
<td align=center width=48 class=bg1>성벽</td>
<td align=center width=108><?=$city['wall']?>/<?=$city['wall2']?></td>
<td align=center width=46 class=bg1>주민</td>
<td align=center width=140><?=$city['pop']?>/<?=$city['pop2']?></td>
<td align=center width=46 class=bg1>농업</td>
<td align=center width=140><?=$city['agri']?>/<?=$city['agri2']?></td>
<td align=center width=46 class=bg1>상업</td>
<td align=center width=140><?=$city['comm']?>/<?=$city['comm2']?></td>
<td align=center width=46 class=bg1>치안</td>
<td align=center width=140><?=$city['secu']?>/<?=$city['secu2']?></td>
<td align=center width=46 class=bg1>수비</td>
<td align=center width=140><?=$city['def']?>/<?=$city['def2']?></td>
<td align=center width=46 class=bg1>성벽</td>
<td align=center width=140><?=$city['wall']?>/<?=$city['wall2']?></td>
</tr>
<tr>
<td align=center class=bg1>민심</td>
@@ -230,11 +230,11 @@ if($city['trade'] == 0) {
<br>
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg0>
<table align=center class='tb_layout bg0'>
<thead>
<tr>
<td width=64 align=center class=bg1>얼 굴</td>
<td width=98 align=center class=bg1>이 름</td>
<td width=128 align=center class=bg1>이 름</td>
<td width=48 align=center class=bg1>통솔</td>
<td width=48 align=center class=bg1>무력</td>
<td width=48 align=center class=bg1>지력</td>
@@ -244,7 +244,7 @@ if($city['trade'] == 0) {
<td width=78 align=center class=bg1>병 사</td>
<td width=48 align=center class=bg1>훈련</td>
<td width=48 align=center class=bg1>사기</td>
<td width=310 align=center class=bg1>명 령</td>
<td width=280 align=center class=bg1>명 령</td>
</tr></thead><tbody class='bg0' id='general_list'>
<?php
@@ -365,7 +365,7 @@ for($j=0; $j < $gencount; $j++) {
</tbody>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+11 -18
View File
@@ -8,14 +8,11 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("내무부", 1);
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$query = "select no,nation,level,con,turntime,belong from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
@@ -24,7 +21,7 @@ $query = "select secretlimit from nation where nation='{$me['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$nation = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
@@ -49,16 +46,16 @@ if ($me['level'] >= 5) {
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 내무부</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>내 무 부<br><?=backButton()?></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td colspan=9 align=center bgcolor=blue>외 교 관 계</td></tr>
<tr>
<td width=100 align=center class=bg1>국 가 명</td>
@@ -71,9 +68,7 @@ if ($me['level'] >= 5) {
<td align=center class=bg1>비 고</td>
</tr>
<?php
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month']);
$query = "select nation,name,color,power,gennum from nation order by power desc";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
@@ -190,9 +185,7 @@ $query = "select nation,name,color,type,msg,gold,rice,bill,rate,scout,war,scoutm
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$nation = MYDB_fetch_array($result);
$query = "select gold_rate,rice_rate from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['gold_rate','rice_rate']);
// 금 수지
$deadIncome = getDeadIncome($nation['nation'], $nation['type'], $admin['gold_rate']);
@@ -220,7 +213,7 @@ if ($budgetricediff > 0) {
}
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<form name=form1 method=post action=c_dipcenter.php>
<tr><td colspan=2 height=10></td></tr>
<tr><td colspan=2 align=center bgcolor=orange>국 가 방 침 &amp; 임관 권유 메세지</td></tr>
@@ -231,7 +224,7 @@ if ($budgetricediff > 0) {
<tr><td colspan=2 align=center bgcolor=green>예 산 &amp; 정 책</td></tr>
<tr>
<td colspan=2>
<table width=998 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg0>
<table width=998 class='tb_layout bg0'>
<tr>
<td colspan=2 align=center class=bg1>자금 예산</td>
<td colspan=2 align=center class=bg1>병량 예산</td>
@@ -304,7 +297,7 @@ if ($nation['war'] == 0) {
<tr><td colspan=2 height=10></td></tr>
</form>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; class=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+17 -38
View File
@@ -8,14 +8,11 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("중원정보", 1);
$query = "select turnterm from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$query = "select no,nation from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
@@ -79,11 +76,11 @@ foreach ($db->queryAllLists('SELECT city, `name`, conflict FROM city WHERE confl
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title><?=UniqueConst::$serverName?>: 중원 정보</title>
<script src="../e_lib/jquery-3.2.1.min.js"></script>
<script src="../d_shared/common_path.js"></script>
<script src="js/common.js"></script>
<script src="js/base_map.js"></script>
<script src="js/map.js"></script>
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
<?=WebUtil::printJS('../d_shared/common_path.js')?>
<?=WebUtil::printJS('js/common.js')?>
<?=WebUtil::printJS('js/base_map.js')?>
<?=WebUtil::printJS('js/map.js')?>
<script>
$(function(){
@@ -94,19 +91,19 @@ $(function(){
});
</script>
<link href="css/normalize.css" rel="stylesheet">
<link href="../d_shared/common.css" rel="stylesheet">
<link href="css/common.css" rel="stylesheet">
<link href="css/map.css" rel="stylesheet">
<?=WebUtil::printCSS('css/normalize.css')?>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<?=WebUtil::printCSS('css/map.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>중 원 정 보<br><?=backButton()?></td></tr>
</table>
<br>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td colspan=<?=$nationcount+1?> align=center bgcolor=blue>외 교 현 황</td></tr>
<?php
echo "
@@ -179,31 +176,13 @@ for($i=0; $i < $nationcount; $i++) {
<?php if ($realConflict) : ?>
<br>
<table
align='center'
width=1000
border=1
cellspacing=0
cellpadding=0
bordercolordark='gray'
bordercolorlight='black'
style='font-size:13px;word-break:break-all;'
class='bg0'
>
<table align='center' width=1000 class='tb_layout bg0'>
<tr><td colspan=2 align=center bgcolor=magenta>분 쟁 현 황</td></tr>
<?php foreach($realConflict as list($cityID, $cityName, $conflict)): ?>
<tr>
<td align=center width=48><?=$cityName?></td>
<td width=948>
<table
border=0
cellspacing=0
cellpadding=0
bordercolordark='gray'
bordercolorlight='black'
style='font-size:13px;word-break:break-all;width:100%;'
class='bg0'
>
<td style='width:948px;position:relative;'>
<table class='tb_layout bg0' style='width:100%;'>
<?php foreach($conflict as $item): ?>
<tr>
<td
@@ -228,7 +207,7 @@ for($i=0; $i < $nationcount; $i++) {
<?php endif; ?>
<br>
<table class="bg0" align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style="font-size:13px;word-break:break-all;">
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td colspan=5 align=center bgcolor=green><font size=3>중 원 지 도</font></td>
</tr>
@@ -244,7 +223,7 @@ for($i=0; $i < $nationcount; $i++) {
</table>
<br>
<table class="bg0" align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style="font-size:13px;word-break:break-all;">
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+7 -10
View File
@@ -16,14 +16,11 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("암행부", 2);
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$query = "select no,nation,level,con,turntime,belong from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
@@ -32,7 +29,7 @@ $query = "select level,secretlimit from nation where nation='{$me['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$nation = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
@@ -55,13 +52,13 @@ $sel[$type] = "selected";
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 암행부</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>암 행 부<br><?=closeButton()?></td></tr>
<tr><td><form name=form1 method=post>정렬순서 :
<select name=type size=1>
@@ -101,7 +98,7 @@ $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect)
$gencount = MYDB_num_rows($genresult);
echo"
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center class='tb_layout bg0'>
<tr>
<td width=98 align=center id=bg1>이 름</td>
<td width=98 align=center id=bg1>통무지</td>
@@ -206,7 +203,7 @@ echo "
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+18 -18
View File
@@ -31,8 +31,8 @@ if($meLevel == 0) {
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 인사부</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<script type="text/javascript">
function out() {
return confirm('정말 추방하시겠습니까?');
@@ -42,7 +42,7 @@ function out() {
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>인 사 부<br><?=backButton()?></td></tr>
</table>
<br>
@@ -72,7 +72,7 @@ $query = "select name,picture,firenum from general where nation='{$nation['natio
$eagleresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
echo "
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td align=center style=color:".newColor($nation['color'])."; bgcolor={$nation['color']} colspan=6>
<font size=5>【 {$nation['name']} 】</font>
@@ -131,7 +131,7 @@ echo "
</td>
</tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<form method=post action=c_myBossInfo.php>
<tr><td colspan=6 height=5></td></tr>
<tr><td colspan=2 align=center bgcolor=red>추 방</td></tr>
@@ -144,14 +144,14 @@ if($meLevel >= 5 && $nation["l{$meLevel}set"] == 0) {
echo "
<select name=outlist size=1 style=color:white;background-color:black;>";
$query = "select no,name,level from general where nation='{$me['nation']}' and level!='12' and no!='{$me['no']}' order by npc,binary(name)";
$query = "select no,name,level,leader,power,intel,killturn from general where nation='{$me['nation']}' and level!='12' and no!='{$me['no']}' order by npc,binary(name)";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gencount = MYDB_num_rows($result);
for($i=0; $i < $gencount; $i++) {
$general = MYDB_fetch_array($result);
echo "
<option value={$general['no']}>{$general['name']}</option>";
<option value={$general['no']}>{$general['name']} <small>({$general['leader']}/{$general['power']}/{$general['intel']}, {$general['killturn']}턴)</small></option>";
}
echo "
@@ -167,7 +167,7 @@ echo "
</tr>
</form>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td colspan=4 height=5></td></tr>
<tr><td colspan=4 align=center bgcolor=blue>수 뇌 부 임 명</td></tr>
<tr>
@@ -217,12 +217,12 @@ echo "
";
$queries = [];
$queries[10] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
$queries[9] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
$queries[8] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
$queries[7] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
$queries[6] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
$queries[5] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
$queries[10] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$queries[9] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$queries[8] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$queries[7] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$queries[6] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$queries[5] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
for($i=10; $i >= $lv; $i--) {
if($i % 2 == 0) { echo "<tr>"; }
@@ -270,7 +270,7 @@ for($i=10; $i >= $lv; $i--) {
echo "
<tr><td colspan=4>※ <font color=red>빨간색</font>은 현재 임명중인 장수, <font color=orange>노란색</font>은 다른 관직에 임명된 장수, 하얀색은 일반 장수를 뜻합니다.</td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td colspan=5 height=5></td></tr>
";
if($meLevel >= 5) {
@@ -309,7 +309,7 @@ if($meLevel >= 5) {
<option value=0>____공석____</option>
";
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$count = MYDB_num_rows($result);
for($i=0; $i < $count; $i++) {
@@ -363,7 +363,7 @@ if($meLevel >= 5) {
<option value=0>____공석____</option>
";
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$count = MYDB_num_rows($result);
for($i=0; $i < $count; $i++) {
@@ -505,7 +505,7 @@ for($j=0; $j < $citycount; $j++) {
<tr><td colspan=5>※ <font color=orange>노란색</font>은 변경 불가능, 하얀색은 변경 가능 관직입니다.</td></tr>
</table>
<br>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+17 -17
View File
@@ -38,13 +38,13 @@ $sel = [$type => "selected"];
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 세력도시</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>세 력 도 시<br><?=backButton()?></td></tr>
<tr><td><form name=form1 method=post>정렬순서 :
<select name=type size=1>
@@ -123,23 +123,23 @@ for ($j=0; $j < $citycount; $j++) {
}
echo "
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
<table align=center width=1000 class='tb_layout bg2'>
<tr>
<td colspan=12 style=color:".newColor($nation['color'])."; bgcolor={$nation['color']}><font size=2>【 ".CityConst::$regionMap[$city['region']]." | ".CityConst::$levelMap[$city['level']]." 】 {$city['name']}</font></td>
</tr>
<tr>
<td align=center width=48 id=bg1>주민</td>
<td align=center width=112>{$city['pop']}/{$city['pop2']}</td>
<td align=center width=48 id=bg1>농업</td>
<td align=center width=108>{$city['agri']}/{$city['agri2']}</td>
<td align=center width=48 id=bg1>상업</td>
<td align=center width=108>{$city['comm']}/{$city['comm2']}</td>
<td align=center width=48 id=bg1>치안</td>
<td align=center width=108>{$city['secu']}/{$city['secu2']}</td>
<td align=center width=48 id=bg1>수비</td>
<td align=center width=108>{$city['def']}/{$city['def2']}</td>
<td align=center width=48 id=bg1>성벽</td>
<td align=center width=108>{$city['wall']}/{$city['wall2']}</td>
<td align=center width=46 id=bg1>주민</td>
<td align=center width=140>{$city['pop']}/{$city['pop2']}</td>
<td align=center width=46 id=bg1>농업</td>
<td align=center width=140>{$city['agri']}/{$city['agri2']}</td>
<td align=center width=46 id=bg1>상업</td>
<td align=center width=140>{$city['comm']}/{$city['comm2']}</td>
<td align=center width=46 id=bg1>치안</td>
<td align=center width=140>{$city['secu']}/{$city['secu2']}</td>
<td align=center width=46 id=bg1>수비</td>
<td align=center width=140>{$city['def']}/{$city['def2']}</td>
<td align=center width=46 id=bg1>성벽</td>
<td align=center width=140>{$city['wall']}/{$city['wall2']}</td>
</tr>
<tr>
<td align=center id=bg1>민심</td>
@@ -188,7 +188,7 @@ for ($j=0; $j < $citycount; $j++) {
}
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+5 -5
View File
@@ -38,13 +38,13 @@ $sel = [$type => "selected"];
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 세력장수</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>세 력 장 수<br><?=backButton()?></td></tr>
<tr><td><form name=form1 method=post>정렬순서 :
<select name=type size=1>
@@ -114,7 +114,7 @@ $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect)
$gencount = MYDB_num_rows($genresult);
echo"
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center class='tb_layout bg0'>
<tr>
<td width=64 align=center id=bg1>얼 굴</td>
<td width=98 align=center id=bg1>이 름</td>
@@ -191,7 +191,7 @@ for($j=0; $j < $gencount; $j++) {
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+7 -8
View File
@@ -8,6 +8,7 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("세력정보", 1);
@@ -27,13 +28,13 @@ if($me['level'] == 0) {
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 세력정보</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>세 력 정 보<br><?=backButton()?></td></tr>
</table>
<br>
@@ -65,9 +66,7 @@ $query = "select sum(crew) as totcrew,sum(leader)*100 as maxcrew from general wh
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
$query = "select gold_rate,rice_rate from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['gold_rate','rice_rate']);
// 금 수지
$deadIncome = getDeadIncome($nation['nation'], $nation['type'], $admin['gold_rate']);
@@ -89,7 +88,7 @@ if($budgetricediff > 0) { $budgetricediff = "+{$budgetricediff}"; }
else { $budgetricediff = "$budgetricediff"; }
echo "
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
<table align=center width=1000 class='tb_layout bg2'>
<tr>
<td colspan=8 align=center style=color:".newColor($nation['color'])."; bgcolor={$nation['color']}>【 ";echo $me['nation']==0?"공 백 지":"{$nation['name']}";echo " 】</td>
</tr>
@@ -156,7 +155,7 @@ echo"
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+39 -26
View File
@@ -7,6 +7,8 @@ include "func.php";
$btn = Util::getReq('btn');
$mode = Util::getReq('mode', 'int', 2);
$tnmt = Util::getReq('tnmt', 'int', 1);
//$detachNPC = Util::getReq('detachNPC', 'bool');
$detachNPC = false;
extractMissingPostToGlobals();
@@ -23,37 +25,53 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("내정보", 1);
$query = "select myset from general where owner='{$userID}'";
$query = "select no,npc,mode,tnmt,myset 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 {
$submit = 'hidden';
}
if ($btn == "설정저장" && $me['myset'] > 0) {
if (($btn == "설정저장" || $detachNPC) && $me['myset'] > 0) {
if ($me['myset'] > 1) {
$submit = 'submit';
} else {
$submit = 'hidden';
}
$me['myset'] -= 1;
$db->update('general', [
'myset'=>$db->sqleval('myset-1'),
'mode'=>$mode,
'tnmt'=>$tnmt
], 'owner=%i', $userID);
}
$query = "select no,mode,tnmt,myset from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
if($me['npc'] == 1 && $detachNPC){
$turnterm = $gameStor->turnterm;
if($turnterm < 10){
$targetKillTurn = 30 / $turnterm;
}
else{
$targetKillTurn = 60 / $turnterm;
}
$db->update('general', [
'killturn'=>$targetKillTurn
], 'owner=%i AND npc=1', $userID);
$me['killturn']=$targetKillTurn;
}
}
?>
<!DOCTYPE html>
@@ -61,45 +79,40 @@ $me = MYDB_fetch_array($result);
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 내정보</title>
<link href="../d_shared/common.css" rel="stylesheet">
<link rel=stylesheet href="css/common.css">
<script type="text/javascript">
function go(type) {
if(type == 0){
location.replace('c_vacation.php');
}
}
</script>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>내 정 보<br><?=backButton()?></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td width=50%>
<?php myInfo(); ?>
<?php myInfo2(); ?>
</td>
<td width=50% valign=top>
<td width=50% valign=top style="padding-left:4ch;">
<form name=form1 action=b_myPage.php method=post>
&nbsp;&nbsp;&nbsp;&nbsp;토너먼트 【
토너먼트 【
<input type=radio name=tnmt value=0 <?=$me['tnmt']==0?"checked":""; ?>>수동참여
<input type=radio name=tnmt value=1 <?=$me['tnmt']==1?"checked":""; ?>>자동참여
】<br>
&nbsp;&nbsp;&nbsp;&nbsp;∞<font color=orange>개막직전 남는자리가 있을경우 랜덤하게 참여합니다.</font><br><br>
&nbsp;&nbsp;&nbsp;&nbsp;수비 【
∞<font color=orange>개막직전 남는자리가 있을경우 랜덤하게 참여합니다.</font><br><br>
수비 【
<input type=radio name=mode value=2 <?=$me['mode']==2?"checked":""; ?>>◎(훈사80)
<input type=radio name=mode value=1 <?=$me['mode']==1?"checked":""; ?>>○(훈사60)
<input type=radio name=mode value=0 <?=$me['mode']==0?"checked":""; ?>>×
】<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;<input type=<?=$submit?> name=btn style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160px;height:30px;font-size:13px; value=설정저장><br>
&nbsp;&nbsp;&nbsp;&nbsp;∞<font color=orange>설정저장은 이달중 <?=$me['myset']?>회 남았습니다.</font><br><br>
<input type=<?=$submit?> name=btn style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160px;height:30px;font-size:13px; value=설정저장><br>
∞<font color=orange>설정저장은 이달중 <?=$me['myset']?>회 남았습니다.</font><br><br>
</form>
&nbsp;&nbsp;&nbsp;&nbsp;휴 가 신 청<br>
&nbsp;&nbsp;&nbsp;&nbsp;<input type=button style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160px;height:30px;font-size:13px; value=휴가신청 onclick='go(0)'>
휴 가 신 청<br>
<a href="c_vacation.php"><button type="button" style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160px;height:30px;font-size:13px;>휴가 신청</button></a><br><br>
<!--빙의 해제용 삭턴 조절<br>
<a href="b_myPage.php?detachNPC=1"><button type="button" style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160px;height:30px;font-size:13px;>빙의 해체 요청</button></a>-->
</td>
</tr>
<tr>
@@ -127,7 +140,7 @@ function go(type) {
</td>
</tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?></td></tr>
</table>
+4 -4
View File
@@ -22,13 +22,13 @@ $me = MYDB_fetch_array($result);
<head>
<title><?=UniqueConst::$serverName?>: 회의실</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>회 의 실<br><?=backButton()?></td></tr>
<form name=form1 method=post action=c_nationboard.php>
<tr><td align=center>
@@ -60,7 +60,7 @@ for($i=0; $i < 20; $i++) {
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+3 -3
View File
@@ -17,13 +17,13 @@ increaseRefresh("국법", 1);
<head>
<title><?=UniqueConst::$serverName?>: 국법</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td>국 법<br><?=backButton()?></td></tr>
<tr><td>
+16 -24
View File
@@ -8,6 +8,7 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("토너먼트", 1);
@@ -17,11 +18,9 @@ $query = "select no,tournament,con,turntime from general where owner='{$userID}'
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
$query = "select conlimit,tournament,phase,tnmt_msg,tnmt_type,develcost,tnmt_trig from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['tournament','phase','tnmt_msg','tnmt_type','develcost','tnmt_trig']);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
@@ -44,24 +43,15 @@ case 3: $tnmt_type = "<font color=cyan>설전</font>"; $tp = "itl"; $tp2 = "
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 토너먼트</title>
<style>
body { color:white; background-color:black; border-width:1px; border-color:gray; }
table { font-family:'맑은 고딕'; }
font { font-family:'맑은 고딕'; }
input { font-family:'맑은 고딕'; height:20px }
select { font-family:'굴림'; line-height:100%; }
#bg0 { background-image:url(<?=ServConfig::$gameImagePath?>/back_walnut.jpg); }
#bg1 { background-image:url(<?=ServConfig::$gameImagePath?>/back_green.jpg); }
#bg2 { background-image:url(<?=ServConfig::$gameImagePath?>/back_blue.jpg); }
</style>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=2000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=2000 class='tb_layout bg0'>
<tr><td>삼모전 토너먼트<br><?=closeButton()?></td></tr>
</table>
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center class='tb_layout bg0'>
<?php
if ($session->userGrade >= 5) {
$sel = [];
@@ -193,7 +183,7 @@ if($str3){
echo "
<tr>
<td colspan=8>
<table align=center width=2000 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=2000 class='bg0 mimic_flex'>
<tr align=center>";
$query = "select npc,name,win from tournament where grp>=60 order by grp, grp_no";
@@ -403,9 +393,11 @@ for ($i=0; $i < 16; $i++) {
echo"
</tr>";
$query = "select tournament,bet0,bet1,bet2,bet3,bet4,bet5,bet6,bet7,bet8,bet9,bet10,bet11,bet12,bet13,bet14,bet15,bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 as bet from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$betting = MYDB_fetch_array($result);
$betting = $gameStor->getValues(['tournament','bet0','bet1','bet2','bet3','bet4','bet5','bet6','bet7','bet8','bet9','bet10','bet11','bet12','bet13','bet14','bet15']);
$betting['bet'] = 0;
for($i=0;$i<16;$i+=1){
$betting['bet'] += $betting['bet'.$i];
}
$bet = [];
for ($i=0; $i < 16; $i++) {
if($betting['bet'] == 0){
@@ -444,7 +436,7 @@ for ($i=0; $i < 8; $i++) {
$grp = $i + 10;
echo "
<td>
<table align=center width=250 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=250 class='tb_layout bg0'>
<tr><td colspan=9 style=background-color:black;>{$num[$i]}조</td></tr>
<tr id=bg1><td align=center>순</td><td align=center>장수</td><td align=center>{$tp2}</td><td align=center>경</td><td align=center>승</td><td align=center>무</td><td align=center>패</td><td align=center>점</td><td align=center>득</td></tr>";
@@ -470,7 +462,7 @@ for ($i=0; $i < 8; $i++) {
$grp = $i;
echo "
<td>
<table align=center width=250 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=250 class='tb_layout bg0'>
<tr><td colspan=9 style=background-color:black;>{$num[$i]}조</td></tr>
<tr id=bg1><td align=center>순</td><td align=center>장수</td><td align=center>{$tp2}</td><td align=center>경</td><td align=center>승</td><td align=center>무</td><td align=center>패</td><td align=center>점</td><td align=center>득</td></tr>";
@@ -506,7 +498,7 @@ if ($admin['tournament'] == 2 || $admin['tournament'] == 3) {
</font>
</td></tr>
</table>
<table align=center width=2000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=2000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+11 -12
View File
@@ -26,23 +26,22 @@ $troopcount = MYDB_num_rows($result);
<head>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<title><?=UniqueConst::$serverName?>: 부대편성</title>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table width=1000 class='tb_layout bg0'>
<tr><td>부 대 편 성<br><?=backButton()?></td></tr>
</table>
<form name=form1 method=post action=c_troop.php>
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table class='tb_layout bg0'>
<tr>
<td align=center width=64 id=bg1>선 택</td>
<td align=center width=98 id=bg1>부 대 정 보</td>
<td align=center width=64 id=bg1>부 대 장</td>
<td align=center width=662 id=bg1 style=table-layout:fixed;word-break:break-all;>장 수</td>
<td align=center width=98 id=bg1 style=table-layout:fixed;word-break:break-all;>부대장행동</td>
<td width=64 class='bg1 center'>선 택</td>
<td width=98 class='bg1 center'>부 대 정 보</td>
<td width=64 class='bg1 center'>부 대 장</td>
<td width=662 class='bg1 center' style=table-layout:fixed;word-break:break-all;>장 수</td>
<td width=98 class='bg1 center' style=table-layout:fixed;word-break:break-all;>부대장행동</td>
</tr>
<?php
for($i=0; $i < $troopcount; $i++) {
@@ -139,7 +138,7 @@ echo "
<br>";
echo "
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td width=80 id=bg1>부 대 명</td>
<td width=100><input type=text style=color:white;background-color:black; size=12 maxlength=6 name=name></td>";
@@ -155,7 +154,7 @@ echo "
</table>";
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+3 -4
View File
@@ -34,13 +34,12 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("입찰", 1);
$query = "select turnterm from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$turnterm = $gameStor->turnterm;
$query = "select no,name,gold,rice,special from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
@@ -56,7 +55,7 @@ $bidCount = MYDB_num_rows($result);
$btCount = $tradeCount + $bidCount;
$unit = $admin['turnterm'] * 60;
$unit = $turnterm * 60;
$amount = Util::round($amount / 10) * 10;
$cost = Util::round($cost / 10) * 10;
+4 -4
View File
@@ -38,10 +38,11 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("베팅", 1);
$tournament = $db->queryFirstField('SELECT tournament FROM game LIMIT 1');
$tournament = $gameStor->tournament;
if($tournament != 6) {
header('Location: b_betting.php');
exit();
@@ -59,9 +60,8 @@ if($betGold + 500 <= $myGold && $betGold + $oldBet <= 1000 && $betGold + $totalB
"bet{$betTarget}"=>$db->sqleval("bet{$betTarget} + %i", $betGold),
'betgold'=>$db->sqleval('betgold + %i', $betGold)
], 'owner = %i', $userID);
$db->update('game', [
"bet{$betTarget}"=>$db->sqleval("bet{$betTarget} + %i", $betGold)
], true);
$gameStor->setValue("bet{$betTarget}", $gameStor->getValue("bet{$betTarget}") + $betGold);//TODO: +로 증가하는 storage값은 별도로 분리
}
header('location: b_betting.php');
+28 -26
View File
@@ -18,11 +18,10 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select startyear,year,month,scenario from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear','year','month','scenario']);
$query = "select no,nation,level from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -39,19 +38,20 @@ if($meLevel < 5){
exit();
}
if($btn == "임명") {
if($genlist !== 0){
$query = "select no,nation,level,leader,power,intel from general where no='$genlist'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
if(!$genlist){
header('location:b_myBossInfo.php');
exit();
}
if(!$general){
header('location:b_myBossInfo.php');
exit();
}
$query = "select no,nation,level,leader,power,intel from general where no='$genlist'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
if(!$general){
header('location:b_myBossInfo.php');
exit();
}
//임명할사람이 군주이면 불가, 내가 수뇌부이어야함, 공석아닌때는 국가가 같아야함
if($meLevel < 5 || ($general['nation'] != $me['nation'] && $genlist != 0) || ($general['level'] == 12 && $genlist != 0)) {
@@ -60,6 +60,10 @@ if($btn == "임명") {
exit();
}
} elseif($btn == "추방") {
if(!$outlist){
header('location:b_myBossInfo.php');
exit();
}
$query = "select no,name,gold,rice,nation,troop,level,npc,picture,imgsvr from general where no='$outlist'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
@@ -211,13 +215,11 @@ if($btn == "추방") {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:<D>{$nation['name']}</>에서 추방됨");
list($year, $month) = $gameStor->getValuesAsArray(['year','month']);
pushGeneralHistory($general, "<C>●</>{$year}{$month}월:<D>{$nation['name']}</>에서 추방됨");
pushGenLog($general, $log);
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
pushGeneralPublicRecord($alllog, $year, $month);
}
header('location:b_myBossInfo.php');
die();
@@ -245,12 +247,12 @@ if($btn == "임명" && $level >= 5 && $level <= 11) {
if($genlist != 0) {
$valid = 0;
switch($level) {
case 10: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
case 9: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
case 8: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
case 7: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
case 6: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
case 5: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
case 10: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 9: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 8: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 7: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 6: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 5: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
default: $valid = 1; break;
}
if($valid == 1) {
@@ -302,8 +304,8 @@ if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) {
if($genlist != 0) {
$valid = 0;
switch($level) {
case 4: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
case 3: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
case 4: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 3: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
default: $valid = 1; break;
}
+17 -21
View File
@@ -21,11 +21,10 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select tournament,phase,tnmt_type,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['tournament','phase','tnmt_type','develcost']);
$query = "select no,name,tournament from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -80,8 +79,8 @@ if($btn == '참가') {
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$grpCount = MYDB_num_rows($result);
if($grpCount >= 8) {
$query = "update game set tournament=2, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament = 2;
$gameStor->phase = 0;
}
header('location:b_tournament.php');
die();
@@ -93,15 +92,13 @@ if($session->userGrade < 5) {
}
if($btn == "자동개최설정") {
$db->update('game', ['tnmt_trig'=>$trig], true);
$gameStor->tnmt_trig = $trig;
} elseif($btn == "개최") {
startTournament($auto, $type);
} elseif($btn == "중단") {
$db->update('game', [
'tnmt_auto'=>0,
'tournament'=>0,
'phase'=>0
], true);
$gameStor->tnmt_auto = 0;
$gameStor->tournament = 0;
$gameStor->phase = 0;
} elseif($btn == "투입" || $btn == "무명투입" || $btn == "쪼렙투입" || $btn == "일반투입" || $btn == "굇수투입" || $btn == "랜덤투입") {
if($btn == "투입") {
$query = "select no,name,npc,leader,power,intel,explevel,gold,horse,weap,book from general where no='$gen'";
@@ -164,7 +161,7 @@ if($btn == "자동개최설정") {
}
$map = [];
for($i=0; $i < 8; $i++) {
if($occupied[$i] == 0) {
if(!isset($occupied[$i]) || $occupied[$i] == 0) {
$map[] = $i;
}
}
@@ -184,8 +181,8 @@ if($btn == "자동개최설정") {
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$grpCount = MYDB_num_rows($result);
if($grpCount >= 8) {
$query = "update game set tournament=2, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament=2;
$gameStor->phase=0;
}
} elseif($btn == "쪼렙전부투입" || $btn == "일반전부투입" || $btn == "굇수전부투입" || $btn == "랜덤전부투입") {
@@ -241,8 +238,8 @@ if($btn == "자동개최설정") {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
$query = "update game set tournament=2, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament = 2;
$gameStor->phase = 0;
} elseif($btn == "무명전부투입") {
fillLowGenAll();
} elseif($btn == "예선") {
@@ -261,8 +258,9 @@ if($btn == "자동개최설정") {
final16set();
} elseif($btn == "베팅마감") {
$dt = date("Y-m-d H:i:s", time() + 60);
$query = "update game set tournament='7',phase='0',tnmt_time='$dt'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament=7;
$gameStor->phase=0;
$gameStor->tnmt_time = $dt;
} elseif($btn == "16강") {
finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 16);
} elseif($btn == "8강") {
@@ -276,9 +274,7 @@ if($btn == "자동개최설정") {
} elseif($btn == "회수") {
setRefund();
} elseif($btn == "메시지") {
$msg = addslashes(SQ2DQ($msg));
$query = "update game set tnmt_msg='$msg'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tnmt_msg = $msg;
}
header('location:b_tournament.php');
+3 -8
View File
@@ -8,16 +8,11 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$connect=$db->get();
$gameStor = KVStorage::getStorage($db, 'game_env');
$query = "select killturn from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$killturn = $gameStor->killturn;
$admin['killturn'] *= 3;
$query = "update general set killturn='{$admin['killturn']}' where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$db->update('general', ['killturn'=>$killturn*3], 'owner=%i', $userID);
header('location:b_myPage.php');
+19 -32
View File
@@ -17,11 +17,10 @@ $session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select develcost,vote,votecomment from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['develcost', 'cost', 'vote', 'votecomment']);
$query = "select no,vote,name,nation,horse,weap,book,item,npc from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -36,22 +35,16 @@ if($btn == "투표" && $me['vote'] == 0 && $sel > 0) {
$log = uniqueItem($me, $log, 1);
pushGenLog($me, $log);
}
else if($btn == "댓글" && $comment != "") {
$comment = str_replace("|", " ", $comment);
$comment = str_replace(":", " ", $comment);
else if($btn == "댓글" && trim($comment) != "") {
$comment = trim($comment);
$comment = addslashes(SQ2DQ($comment));
$nation = getNationStaticInfo($me['nation']);
if($admin['votecomment'] != "") { $admin['votecomment'] .= "|"; }
$admin['votecomment'] .= "{$nation['name']}:{$me['name']}:{$comment}";
$query = "update game set votecomment='{$admin['votecomment']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
if(!$admin['votecomment']){
$admin['votecomment'] = [];
}
$admin['votecomment'][] = [$nation['name'],$me['name'],$comment];
$gameStor->votecomment = $admin['votecomment'];
}
if($session->userGrade < 5){
@@ -62,22 +55,19 @@ if($session->userGrade < 5){
if($btn == "수정") {
if($title != "") {
$vote = explode("|", $admin['vote']);
$vote[0] = addslashes(SQ2DQ($title));
$admin['vote'] = implode("|", $vote);
$query = "update game set vote='{$admin['vote']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$vote = $admin['vote']?:[];
$vote[0] = $title;
$gameStor->vote = $vote;
}
} elseif($btn == "추가") {
if($str != "") {
$str = addslashes(SQ2DQ($str));
$admin['vote'] .= "|{$str}";
$query = "update game set vote='{$admin['vote']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin['vote'][] = $str;
$gameStor->vote=$admin['vote'];
}
} elseif($btn == "리셋") {
$query = "update game set voteopen=1,vote='',votecomment=''";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->voteopen=1;
$gameStor->vote='';
$gameStor->votecomment='';
$query = "update general set vote='0'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -85,14 +75,11 @@ if($btn == "수정") {
$query = "update general set newvote='1' where vote=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
} elseif($btn == "숨김") {
$query = "update game set voteopen=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->voteopen = 0;
} elseif($btn == "전체통계만") {
$query = "update game set voteopen=1";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->voteopen = 1;
} elseif($btn == "전부") {
$query = "update game set voteopen=2";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->voteopen = 2;
}
header('location:a_vote.php');
+5 -6
View File
@@ -15,8 +15,8 @@ $connect=$db->get();
<head>
<title>커맨드리스트</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<script type="text/javascript">
<?php
if(!$session->isLoggedIn()){
@@ -67,15 +67,14 @@ myCommandList();
function myCommandList() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$userID = Session::getUserID();
$date = date('Y-m-d H:i:s');
// 명령 목록
$query = "select year,month,turnterm from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','turnterm']);
$query = "select no,turntime,term,turn0,turn1,turn2,turn3,turn4,turn5,turn6,turn7,turn8,turn9,turn10,turn11,turn12,turn13,turn14,turn15,turn16,turn17,turn18,turn19,turn20,turn21,turn22,turn23 from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -86,7 +85,7 @@ function myCommandList() {
}
$turn = getTurn($me, 2);
echo "<table width=300 height=700 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
echo "<table width=300 height=700 class='tb_layout bg2'>
<form name=clock>
<tr>
<td colspan=4 align=center id=bg0><b>- 명령 목록 - <input value='$date' type=text name=clock size=19 style=background-color:black;color:white;border-style:none;></b></td>
+55 -1
View File
@@ -3,13 +3,67 @@
html, body{
background-color:black;
color:white;
line-height:1.3;
}
table { font-family:'맑은 고딕'; }
font { font-family:'맑은 고딕'; }
input { font-family:'맑은 고딕'; height:20px }
input { font-family:'맑은 고딕'; font-size:13px; }
select { font-family:'굴림'; line-height:100%; }
.center{
text-align:center;
}
table.mimic_flex{
border-collapse: collapse;
border:none;
padding:0;
}
.mimic_flex td, .mimic_flex th {
border:none !important;
padding: 0px;
word-break: break-all;
}
table.tb_layout {
border-collapse: collapse;
padding: 0px;
font-size: 13px;
word-break: break-all;
font-family: '맑은 고딕';
}
.tb_layout td, .tb_layout th {
border:solid 1px gray;
padding: 0px;
word-break: break-all;
font-family: '맑은 고딕';;
}
div.bar_out{
position:relative;
border-top:solid 1px #888888;
border-bottom:solid 1px #333333;
padding:0;
margin:0;
width:100%;
overflow: hidden;
}
div.bar_out div{
position:absolute;
left:0;
top:0;
height:100%;
}
div.bar_out div.bar_in{
width:100%;
}
/* */
.ev_warning{
+4
View File
@@ -63,4 +63,8 @@ color:white;
font-size:13px;
margin:0;
display:block;
}
.nation_info td{
height:18px;
}
+8 -8
View File
@@ -22,9 +22,9 @@
.msg_plate{
width:100%;
border-bottom:groove 0.1em;
border-left:groove 0.1em;
border-right:groove 0.1em;
border-bottom:solid 1px gray;
border-left:solid 1px gray;
border-right:solid 1px gray;
height:64px;
font-size:12px;
word-break:break-all;
@@ -61,7 +61,7 @@
float:left;
width:64px;
height:64px;
border-right:groove 0.1em;
border-right:solid 1px gray;
}
.msg_time{
@@ -105,7 +105,7 @@
.board_header{
color:white;
border:groove 0.1em;
border:solid 1px gray;
}
.board_side{
@@ -113,9 +113,9 @@
height:1370px;
width:498px;
overflow-y: hidden;
border-left:groove 1px;
border-right:groove 1px;
border-bottom:groove 1px;
border-left:solid 1px;
border-right:solid 1px;
border-bottom:solid 1px;
}
.msg_body{
+48
View File
@@ -0,0 +1,48 @@
.container{
width:1000px;
margin:0 auto;
}
.card_holder{
text-align:center;
}
.general_card{
width:100px;
display:inline-block;
}
.general_card h4 {
margin:0;
}
.general_card p {
margin:0;
}
.general_card .select_btn {
width:100%;
}
.general_card label {
display: block;
padding-left: 15px;
text-indent: -15px;
}
.general_card input {
width: 13px;
height: 13px;
padding: 0;
margin:0;
vertical-align: bottom;
position: relative;
top: -1px;
*overflow: hidden;
}
#outdate_token{
color:red;
display:none;
}
+12
View File
@@ -0,0 +1,12 @@
<?php
namespace sammo;
class GameCustomConst
{
/** @var int 유저 스탯 총합 */
public static $defaultStatTotal = _tK_statTotal_;
public static $defaultStatMin = _tK_statMin_;
public static $defaultStatMax = _tK_statMax_;
public static $defaultStatNPCMax = _tK_statNPCMax_;
public static $chiefStatMin = _tK_statChiefMin_;
}
+317 -341
View File
@@ -89,20 +89,19 @@ function GetImageURL($imgsvr, $filepath='') {
* @param null|int $con 장수의 벌점
* @param null|int $conlimit 최대 벌점
*/
function checkLimit($con = null, $conlimit = null) {
function checkLimit($con = null) {
$session = Session::getInstance();
if($session->userGrade>=4){
return 0;
}
$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($conlimit === null){
$conlimit = $db->queryFirstField('SELECT conlimit FROM game LIMIT 1');
}
$conlimit = $gameStor->conlimit;
if($con > $conlimit) {
return 2;
@@ -173,9 +172,9 @@ function cityInfo() {
}
if($nation['color'] == "" ) { $nation['color'] = "#000000"; }
echo "<table width=640 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
<tr><td colspan=8 align=center style=height:20px;color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>【 ".CityConst::$regionMap[$city['region']]." | ".CityConst::$levelMap[$city['level']]."{$city['name']}</td></tr>
<tr><td colspan=8 align=center style=height:20px;color:".newColor($nation['color']).";background-color:{$nation['color']}><b>";
echo "<table style='width:100%;' class='tb_layout bg2'>
<tr><td colspan=8 style=text-align:center;height:20px;color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>【 ".CityConst::$regionMap[$city['region']]." | ".CityConst::$levelMap[$city['level']]."{$city['name']}</td></tr>
<tr><td colspan=8 style=text-align:center;height:20px;color:".newColor($nation['color']).";background-color:{$nation['color']}><b>";
if($city['nation'] == 0) {
echo "공 백 지";
@@ -211,46 +210,46 @@ function cityInfo() {
</b></td>
</tr>
<tr>
<td rowspan=2 align=center id=bg1><b>주민</b></td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>주민</b></td>
<td height=7 colspan=3>".bar($pop)."</td>
<td rowspan=2 align=center id=bg1><b>민심</b></td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>민심</b></td>
<td height=7>".bar($rate)."</td>
<td rowspan=2 align=center id=bg1><b>태수</b></td>
<td rowspan=2 align=center>{$gen1['name']}</td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>태수</b></td>
<td rowspan=2 style='text-align:center;'>{$gen1['name']}</td>
</tr>
<tr>
<td colspan=3 align=center>{$city['pop']}/{$city['pop2']}</td>
<td align=center>{$city['rate']}</td>
<td colspan=3 style='text-align:center;'>{$city['pop']}/{$city['pop2']}</td>
<td style='text-align:center;'>{$city['rate']}</td>
</tr>
<tr>
<td width=50 rowspan=2 align=center id=bg1><b>농업</b></td>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>농업</b></td>
<td width=100 height=7>".bar($agri)."</td>
<td width=50 rowspan=2 align=center id=bg1><b>상업</b></td>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>상업</b></td>
<td width=100 height=7>".bar($comm)."</td>
<td width=50 rowspan=2 align=center id=bg1><b>치안</b></td>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>치안</b></td>
<td width=100 height=7>".bar($secu)."</td>
<td width=50 rowspan=2 align=center id=bg1><b>군사</b></td>
<td rowspan=2 align=center>{$gen2['name']}</td>
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>군사</b></td>
<td rowspan=2 style='text-align:center;'>{$gen2['name']}</td>
</tr>
<tr>
<td align=center>{$city['agri']}/{$city['agri2']}</td>
<td align=center>{$city['comm']}/{$city['comm2']}</td>
<td align=center>{$city['secu']}/{$city['secu2']}</td>
<td style='text-align:center;'>{$city['agri']}/{$city['agri2']}</td>
<td style='text-align:center;'>{$city['comm']}/{$city['comm2']}</td>
<td style='text-align:center;'>{$city['secu']}/{$city['secu2']}</td>
</tr>
<tr>
<td rowspan=2 align=center id=bg1><b>수비</b></td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>수비</b></td>
<td height=7>".bar($def)."</td>
<td rowspan=2 align=center id=bg1><b>성벽</b></td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>성벽</b></td>
<td height=7>".bar($wall)."</td>
<td rowspan=2 align=center id=bg1><b>시세</b></td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>시세</b></td>
<td height=7>".bar($trade)."</td>
<td rowspan=2 align=center id=bg1><b>시중</b></td>
<td rowspan=2 align=center>{$gen3['name']}</td>
<td rowspan=2 style='text-align:center;' class='bg1'><b>시중</b></td>
<td rowspan=2 style='text-align:center;'>{$gen3['name']}</td>
</tr>
<tr>
<td align=center>{$city['def']}/{$city['def2']}</td>
<td align=center>{$city['wall']}/{$city['wall2']}</td>
<td align=center>{$tradeStr}</td>
<td style='text-align:center;'>{$city['def']}/{$city['def2']}</td>
<td style='text-align:center;'>{$city['wall']}/{$city['wall2']}</td>
<td style='text-align:center;'>{$tradeStr}</td>
</tr>
</table>
";
@@ -258,12 +257,11 @@ function cityInfo() {
function myNationInfo() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$userID = Session::getUserID();
$query = "select startyear,year from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear','year']);
$query = "select no,nation from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -289,43 +287,43 @@ function myNationInfo() {
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$level11 = MYDB_fetch_array($genresult);
echo "<table width=498 height=190 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
echo "<table width=498 class='tb_layout bg2 nation_info'>
<tr>
<td colspan=4 align=center ";
<td colspan=4 ";
if($me['nation'] == 0) { echo "style=color:white;background-color:000000;font-weight:bold;font-size:13px;>【재 야】"; }
else { echo "style=color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>국가【 {$nation['name']}"; }
if($me['nation'] == 0) { echo "style='color:white;background-color:000000;font-weight:bold;font-size:13px;text-align:center;'>【재 야】"; }
else { echo "style='color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;text-align:center'>국가【 {$nation['name']}"; }
echo "
</td>
</tr>
<tr>
<td align=center id=bg1><b>성 향</b></td>
<td align=center colspan=3><font color=\"yellow\">".getNationType($nation['type'])."</font> (".getNationType2($nation['type']).")</td>
<td class='bg1 center'><b>성 향</b></td>
<td colspan=3 class='center'><font color=\"yellow\">".getNationType($nation['type'])."</font> (".getNationType2($nation['type']).")</td>
</td>
</tr>
<tr>
<td width=68 align=center id=bg1><b>".getLevel(12, $nation['level'])."</b></td>
<td width=178 align=center>";echo $level12?$level12['name']:"-"; echo "</td>
<td width=68 align=center id=bg1><b>".getLevel(11, $nation['level'])."</b></td>
<td width=178 align=center>";echo $level11?$level11['name']:"-"; echo "</td>
<td width=68 class='bg1 center'><b>".getLevel(12, $nation['level'])."</b></td>
<td width=178 class='center'>";echo $level12?$level12['name']:"-"; echo "</td>
<td width=68 class='bg1 center'><b>".getLevel(11, $nation['level'])."</b></td>
<td width=178 class='center'>";echo $level11?$level11['name']:"-"; echo "</td>
</tr>
<tr>
<td align=center id=bg1><b>총주민</b></td>
<td align=center>";echo $me['nation']==0?"해당 없음":"{$city['totpop']}/{$city['maxpop']}";echo "</td>
<td align=center id=bg1><b>총병사</b></td>
<td align=center>";echo $me['nation']==0?"해당 없음":"{$general['totcrew']}/{$general['maxcrew']}"; echo "</td>
<td class='bg1 center'><b>총주민</b></td>
<td class='center'>";echo $me['nation']==0?"해당 없음":"{$city['totpop']}/{$city['maxpop']}";echo "</td>
<td class='bg1 center'><b>총병사</b></td>
<td class='center'>";echo $me['nation']==0?"해당 없음":"{$general['totcrew']}/{$general['maxcrew']}"; echo "</td>
</td>
</tr>
<tr>
<td align=center id=bg1><b>국 고</b></td>
<td align=center>";echo $me['nation']==0?"해당 없음":"{$nation['gold']}";echo "</td>
<td align=center id=bg1><b>병 량</b></td>
<td align=center>";echo $me['nation']==0?"해당 없음":"{$nation['rice']}";echo "</td>
<td class='bg1 center'><b>국 고</b></td>
<td class='center'>";echo $me['nation']==0?"해당 없음":"{$nation['gold']}";echo "</td>
<td class='bg1 center'><b>병 량</b></td>
<td class='center'>";echo $me['nation']==0?"해당 없음":"{$nation['rice']}";echo "</td>
</tr>
<tr>
<td align=center id=bg1><b>지급율</b></td>
<td align=center>";
<td class='bg1 center'><b>지급율</b></td>
<td class='center'>";
if($me['nation'] == 0) {
echo "해당 없음";
} else {
@@ -333,8 +331,8 @@ function myNationInfo() {
}
echo "
</td>
<td align=center id=bg1><b>세 율</b></td>
<td align=center>";
<td class='bg1 center'><b>세 율</b></td>
<td class='center'>";
if($me['nation'] == 0) {
echo "해당 없음";
} else {
@@ -374,28 +372,28 @@ function myNationInfo() {
</td>
</tr>
<tr>
<td align=center id=bg1><b>속 령</b></td>
<td align=center>";echo $me['nation']==0?"-":"{$city['cnt']}"; echo "</td>
<td align=center id=bg1><b>장 수</b></td>
<td align=center>";echo $me['nation']==0?"-":"{$general['cnt']}"; echo "</td>
<td style='text-align:center;' class='bg1'><b>속 령</b></td>
<td style='text-align:center;'>";echo $me['nation']==0?"-":"{$city['cnt']}"; echo "</td>
<td style='text-align:center;' class='bg1'><b>장 수</b></td>
<td style='text-align:center;'>";echo $me['nation']==0?"-":"{$general['cnt']}"; echo "</td>
</tr>
<tr>
<td align=center id=bg1><b>국 력</b></td>
<td align=center>{$nation['power']}</td>
<td align=center id=bg1><b>기술력</b></td>
<td align=center>";echo $me['nation']==0?"-":"{$nation['tech']}"; echo "</td>
<td style='text-align:center;' class='bg1'><b>국 력</b></td>
<td style='text-align:center;'>{$nation['power']}</td>
<td style='text-align:center;' class='bg1'><b>기술력</b></td>
<td style='text-align:center;'>";echo $me['nation']==0?"-":"{$nation['tech']}"; echo "</td>
</tr>
<tr>
<td align=center id=bg1><b>전 략</b></td>
<td align=center>{$nation['sabotagelimit']}</td>
<td align=center id=bg1><b>외 교</b></td>
<td align=center>{$nation['surlimit']}</td>
<td style='text-align:center;' class='bg1'><b>전 략</b></td>
<td style='text-align:center;'>{$nation['sabotagelimit']}</td>
<td style='text-align:center;' class='bg1'><b>외 교</b></td>
<td style='text-align:center;'>{$nation['surlimit']}</td>
</tr>
<tr>
<td align=center id=bg1><b>임 관</b></td>
<td align=center>{$nation['scout']}</td>
<td align=center id=bg1><b>전 쟁</b></td>
<td align=center>{$nation['war']}</td>
<td style='text-align:center;' class='bg1'><b>임 관</b></td>
<td style='text-align:center;'>{$nation['scout']}</td>
<td style='text-align:center;' class='bg1'><b>전 쟁</b></td>
<td style='text-align:center;'>{$nation['war']}</td>
</tr>
</table>
";
@@ -435,12 +433,11 @@ function commandGroup($typename, $type=0) {
function commandTable() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$userID = Session::getUserID();
$query = "select startyear,year,develcost,scenario from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'develcost', 'scenario']);
$query = "select no,npc,troop,city,nation,level,crew,makelimit,special from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -675,12 +672,11 @@ function commandTable() {
function CoreCommandTable() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$userID = Session::getUserID();
$query = "select develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$develcost = $gameStor->develcost;
$query = "select no,nation,city,level from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -727,8 +723,8 @@ function CoreCommandTable() {
commandGroup("", 1);
commandGroup("====== 특 수 ======");
addCommand("초토화", 65, $valid);
addCommand("천도/3턴(금쌀{$admin['develcost']}0)", 66, $valid);
$cost = $admin['develcost'] * 500 + 60000; // 7만~13만
addCommand("천도/3턴(금쌀{$develcost}0)", 66, $valid);
$cost = $develcost * 500 + 60000; // 7만~13만
addCommand("증축/6턴(금쌀{$cost})", 67, $valid);
addCommand("감축/6턴", 68, $valid);
commandGroup("", 1);
@@ -777,11 +773,10 @@ function myInfo() {
function generalInfo($no) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select show_img_level from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$show_img_level = $gameStor->show_img_level;
$query = "select block,no,name,picture,imgsvr,injury,nation,city,troop,leader,leader2,power,power2,intel,intel2,explevel,experience,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,killturn,age,personal,special,specage,special2,specage2,mode,con,connect from general where no='$no'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -877,77 +872,77 @@ function generalInfo($no) {
else { $general['mode'] = "<font color=red>수비 안함</font>"; }
$weapImage = ServConfig::$gameImagePath."/weap{$general['crewtype']}.png";
if($admin['show_img_level'] < 2) { $weapImage = ServConfig::$sharedIconPath."/default.jpg"; };
if($show_img_level < 2) { $weapImage = ServConfig::$sharedIconPath."/default.jpg"; };
$imageTemp = GetImageURL($general['imgsvr']);
echo "<table width=498 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
echo "<table width=498 class='tb_layout bg2'>
<tr>
<td width=64 height=64 align=center rowspan=3 style='background:no-repeat center url(\"{$imageTemp}/{$general['picture']}\");background-size:64px;'>&nbsp;</td>
<td align=center colspan=9 height=16 style=color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>{$general['name']}{$level} | {$call} | {$color}{$injury}</font> 】 ".substr($general['turntime'], 11)."</td>
<td width=64 height=64 rowspan=3 style='text-align:center;background:no-repeat center url(\"{$imageTemp}/{$general['picture']}\");background-size:64px;'>&nbsp;</td>
<td colspan=9 height=16 style=text-align:center;color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>{$general['name']}{$level} | {$call} | {$color}{$injury}</font> 】 ".substr($general['turntime'], 11)."</td>
</tr>
<tr height=16>
<td align=center id=bg1><b>통솔</b></td>
<td align=center>&nbsp;{$color}{$leader}</font>{$lbonus}&nbsp;</td>
<td align=center width=45>".bar(expStatus($general['leader2']), 20)."</td>
<td align=center id=bg1><b>무력</b></td>
<td align=center>&nbsp;{$color}{$power}</font>&nbsp;</td>
<td align=center width=45>".bar(expStatus($general['power2']), 20)."</td>
<td align=center id=bg1><b>지력</b></td>
<td align=center>&nbsp;{$color}{$intel}</font>&nbsp;</td>
<td align=center width=45>".bar(expStatus($general['intel2']), 20)."</td>
<td style='text-align:center;' class='bg1'><b>통솔</b></td>
<td style='text-align:center;'>&nbsp;{$color}{$leader}</font>{$lbonus}&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['leader2']), 20)."</td>
<td style='text-align:center;' class='bg1'><b>무력</b></td>
<td style='text-align:center;'>&nbsp;{$color}{$power}</font>&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['power2']), 20)."</td>
<td style='text-align:center;' class='bg1'><b>지력</b></td>
<td style='text-align:center;'>&nbsp;{$color}{$intel}</font>&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['intel2']), 20)."</td>
</tr>
<tr>
<td align=center id=bg1><b>명마</b></td>
<td align=center colspan=2><font size=1>$horsename</font></td>
<td align=center id=bg1><b>무기</b></td>
<td align=center colspan=2><font size=1>$weapname</font></td>
<td align=center id=bg1><b>서적</b></td>
<td align=center colspan=2><font size=1>$bookname</font></td>
<td style='text-align:center;' class='bg1'><b>명마</b></td>
<td style='text-align:center;' colspan=2><font size=1>$horsename</font></td>
<td style='text-align:center;' class='bg1'><b>무기</b></td>
<td style='text-align:center;' colspan=2><font size=1>$weapname</font></td>
<td style='text-align:center;' class='bg1'><b>서적</b></td>
<td style='text-align:center;' colspan=2><font size=1>$bookname</font></td>
</tr>
<tr>
<td align=center height=64 rowspan=3 style='background:no-repeat center url(\"{$weapImage}\");background-size:64px;'></td>
<td align=center id=bg1><b>자금</b></td>
<td align=center colspan=2>{$general['gold']}</td>
<td align=center id=bg1><b>군량</b></td>
<td align=center colspan=2>{$general['rice']}</td>
<td align=center id=bg1><b>도구</b></td>
<td align=center colspan=2><font size=1>$itemname</font></td>
<td height=64 rowspan=3 style='text-align:center;background:no-repeat center url(\"{$weapImage}\");background-size:64px;'></td>
<td style='text-align:center;' class='bg1'><b>자금</b></td>
<td style='text-align:center;' colspan=2>{$general['gold']}</td>
<td style='text-align:center;' class='bg1'><b>군량</b></td>
<td style='text-align:center;' colspan=2>{$general['rice']}</td>
<td style='text-align:center;' class='bg1'><b>도구</b></td>
<td style='text-align:center;' colspan=2><font size=1>$itemname</font></td>
</tr>
<tr>
<td align=center id=bg1><b>병종</b></td>
<td align=center colspan=2>$typename</td>
<td align=center id=bg1><b>병사</b></td>
<td align=center colspan=2>{$general['crew']}</td>
<td align=center id=bg1><b>성격</b></td>
<td align=center colspan=2>".getGenChar($general['personal'])."</td>
<td style='text-align:center;' class='bg1'><b>병종</b></td>
<td style='text-align:center;' colspan=2>$typename</td>
<td style='text-align:center;' class='bg1'><b>병사</b></td>
<td style='text-align:center;' colspan=2>{$general['crew']}</td>
<td style='text-align:center;' class='bg1'><b>성격</b></td>
<td style='text-align:center;' colspan=2>".getGenChar($general['personal'])."</td>
</tr>
<tr>
<td align=center id=bg1><b>훈련</b></td>
<td align=center colspan=2>$train</td>
<td align=center id=bg1><b>사기</b></td>
<td align=center colspan=2>$atmos</td>
<td align=center id=bg1><b>특기</b></td>
<td align=center colspan=2>$special / $special2</td>
<td style='text-align:center;' class='bg1'><b>훈련</b></td>
<td style='text-align:center;' colspan=2>$train</td>
<td style='text-align:center;' class='bg1'><b>사기</b></td>
<td style='text-align:center;' colspan=2>$atmos</td>
<td style='text-align:center;' class='bg1'><b>특기</b></td>
<td style='text-align:center;' colspan=2>$special / $special2</td>
</tr>
<tr height=20>
<td align=center id=bg1><b>Lv</b></td>
<td align=center>&nbsp;{$general['explevel']}&nbsp;</td>
<td align=center colspan=5>".bar(getLevelPer($general['experience'], $general['explevel']), 20)."</td>
<td align=center id=bg1><b>연령</b></td>
<td align=center colspan=2>{$general['age']}</td>
<td style='text-align:center;' class='bg1'><b>Lv</b></td>
<td style='text-align:center;'>&nbsp;{$general['explevel']}&nbsp;</td>
<td style='text-align:center;' colspan=5>".bar(getLevelPer($general['experience'], $general['explevel']), 20)."</td>
<td style='text-align:center;' class='bg1'><b>연령</b></td>
<td style='text-align:center;' colspan=2>{$general['age']}</td>
</tr>
<tr height=20>
<td align=center id=bg1><b>수비</b></td>
<td align=center colspan=3>{$general['mode']}</td>
<td align=center id=bg1><b>삭턴</b></td>
<td align=center colspan=2>{$general['killturn']} 턴</td>
<td align=center id=bg1><b>실행</b></td>
<td align=center colspan=2>$remaining 분 남음</td>
<td style='text-align:center;' class='bg1'><b>수비</b></td>
<td style='text-align:center;' colspan=3>{$general['mode']}</td>
<td style='text-align:center;' class='bg1'><b>삭턴</b></td>
<td style='text-align:center;' colspan=2>{$general['killturn']} 턴</td>
<td style='text-align:center;' class='bg1'><b>실행</b></td>
<td style='text-align:center;' colspan=2>$remaining 분 남음</td>
</tr>
<tr height=20>
<td align=center id=bg1><b>부대</b></td>
<td align=center colspan=3>{$troop['name']}</td>
<td align=center id=bg1><b>벌점</b></td>
<td align=center colspan=5>".getConnect($general['connect'])." {$general['connect']}({$general['con']})</td>
<td style='text-align:center;' class='bg1'><b>부대</b></td>
<td style='text-align:center;' colspan=3>{$troop['name']}</td>
<td style='text-align:center;' class='bg1'><b>벌점</b></td>
<td style='text-align:center;' colspan=5>".getConnect($general['connect'])." {$general['connect']}({$general['con']})</td>
</tr>
</table>";
}
@@ -1002,104 +997,107 @@ function generalInfo2($no) {
if($dex30 > 100) { $dex30 = 100; }
if($dex40 > 100) { $dex40 = 100; }
$general['dex0'] = getDexCall($general['dex0']);
$general['dex10'] = getDexCall($general['dex10']);
$general['dex20'] = getDexCall($general['dex20']);
$general['dex30'] = getDexCall($general['dex30']);
$general['dex40'] = getDexCall($general['dex40']);
$general['dex0_text'] = getDexCall($general['dex0']);
$general['dex10_text'] = getDexCall($general['dex10']);
$general['dex20_text'] = getDexCall($general['dex20']);
$general['dex30_text'] = getDexCall($general['dex30']);
$general['dex40_text'] = getDexCall($general['dex40']);
echo "<table width=498 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
<tr><td align=center colspan=6 id=bg1><b>추 가 정 보</b></td></tr>
$general['dex0_short'] = sprintf('%.1fK', $general['dex0']/1000);
$general['dex10_short'] = sprintf('%.1fK', $general['dex10']/1000);
$general['dex20_short'] = sprintf('%.1fK', $general['dex20']/1000);
$general['dex30_short'] = sprintf('%.1fK', $general['dex30']/1000);
$general['dex40_short'] = sprintf('%.1fK', $general['dex40']/1000);
echo "<table width=498 class='tb_layout bg2'>
<tr><td style='text-align:center;' colspan=6 class='bg1'><b>추 가 정 보</b></td></tr>
<tr>
<td align=center id=bg1><b>명성</b></td>
<td align=center>$experience</td>
<td align=center id=bg1><b>계급</b></td>
<td align=center colspan=3>$dedication</td>
<td style='text-align:center;' class='bg1'><b>명성</b></td>
<td style='text-align:center;'>$experience</td>
<td style='text-align:center;' class='bg1'><b>계급</b></td>
<td style='text-align:center;' colspan=3>$dedication</td>
</tr>
<tr>
<td width=64 align=center id=bg1><b>전투</b></td>
<td width=132 align=center>{$general['warnum']}</td>
<td width=48 align=center id=bg1><b>계략</b></td>
<td width=98 align=center>{$general['firenum']}</td>
<td width=48 align=center id=bg1><b>사관</b></td>
<td width=98 align=center>{$general['belong']}년</td>
<td width=64 style='text-align:center;' class='bg1'><b>전투</b></td>
<td width=132 style='text-align:center;'>{$general['warnum']}</td>
<td width=48 style='text-align:center;' class='bg1'><b>계략</b></td>
<td width=98 style='text-align:center;'>{$general['firenum']}</td>
<td width=48 style='text-align:center;' class='bg1'><b>사관</b></td>
<td width=98 style='text-align:center;'>{$general['belong']}년</td>
</tr>
<tr>
<td align=center id=bg1><b>승률</b></td>
<td align=center>{$general['winrate']} %</td>
<td align=center id=bg1><b>승리</b></td>
<td align=center>{$general['killnum']}</td>
<td align=center id=bg1><b>패배</b></td>
<td align=center>{$general['deathnum']}</td>
<td style='text-align:center;' class='bg1'><b>승률</b></td>
<td style='text-align:center;'>{$general['winrate']} %</td>
<td style='text-align:center;' class='bg1'><b>승리</b></td>
<td style='text-align:center;'>{$general['killnum']}</td>
<td style='text-align:center;' class='bg1'><b>패배</b></td>
<td style='text-align:center;'>{$general['deathnum']}</td>
</tr>
<tr>
<td align=center id=bg1><b>살상률</b></td>
<td align=center>{$general['killrate']} %</td>
<td align=center id=bg1><b>사살</b></td>
<td align=center>{$general['killcrew']}</td>
<td align=center id=bg1><b>피살</b></td>
<td align=center>{$general['deathcrew']}</td>
<td style='text-align:center;' class='bg1'><b>살상률</b></td>
<td style='text-align:center;'>{$general['killrate']} %</td>
<td style='text-align:center;' class='bg1'><b>사살</b></td>
<td style='text-align:center;'>{$general['killcrew']}</td>
<td style='text-align:center;' class='bg1'><b>피살</b></td>
<td style='text-align:center;'>{$general['deathcrew']}</td>
</tr>
</table>
<table width=498 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
<tr><td align=center colspan=3 id=bg1><b>숙 련 도</b></td></tr>
<table width=498 class='tb_layout bg2'>
<tr><td style='text-align:center;' colspan=4 class='bg1'><b>숙 련 도</b></td></tr>
<tr height=16>
<td width=64 align=center id=bg1><b>보병</b></td>
<td width=64>  {$general['dex0']}</td>
<td width=366 align=center>".bar($dex0, 16)."</td>
<td width=64 style='text-align:center;' class='bg1'><b>보병</b></td>
<td width=40> {$general['dex0_text']}</td>
<td width=60 align=right>{$general['dex0_short']}&nbsp;</td>
<td width=330 style='text-align:center;'>".bar($dex0, 16)."</td>
</tr>
<tr height=16>
<td align=center id=bg1><b>궁병</b></td>
<td>  {$general['dex10']}</td>
<td align=center>".bar($dex10, 16)."</td>
<td style='text-align:center;' class='bg1'><b>궁병</b></td>
<td> {$general['dex10_text']}</td>
<td align=right>{$general['dex10_short']}&nbsp;</td>
<td style='text-align:center;'>".bar($dex10, 16)."</td>
</tr>
<tr height=16>
<td align=center id=bg1><b>기병</b></td>
<td>  {$general['dex20']}</td>
<td align=center>".bar($dex20, 16)."</td>
<td style='text-align:center;' class='bg1'><b>기병</b></td>
<td> {$general['dex20_text']}</td>
<td align=right>{$general['dex20_short']}&nbsp;</td>
<td style='text-align:center;'>".bar($dex20, 16)."</td>
</tr>
<tr height=16>
<td align=center id=bg1><b>귀병</b></td>
<td>  {$general['dex30']}</td>
<td align=center>".bar($dex30, 16)."</td>
<td style='text-align:center;' class='bg1'><b>귀병</b></td>
<td> {$general['dex30_text']}</td>
<td align=right>{$general['dex30_short']}&nbsp;</td>
<td style='text-align:center;'>".bar($dex30, 16)."</td>
</tr>
<tr height=16>
<td align=center id=bg1><b>차병</b></td>
<td>  {$general['dex40']}</td>
<td align=center>".bar($dex40, 16)."</td>
<td style='text-align:center;' class='bg1'><b>차병</b></td>
<td> {$general['dex40_text']}</td>
<td align=right>{$general['dex40_short']}&nbsp;</td>
<td style='text-align:center;'>".bar($dex40, 16)."</td>
</tr>
</table>";
}
function adminMsg() {
$db = DB::db();
$connect=$db->get();
$gameStor = KVStorage::getStorage($db, 'game_env');
$msg = $gameStor->msg;
$query = "select msg from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
echo "운영자 메세지 : <font color=yellow>";
echo $admin['msg']."</font>";
return "운영자 메세지 : <span style='color:yellow;'>$msg</span>";
}
function getOnlineNum() {
return DB::db()->queryFirstField('select `online` from `game` where `no`=1');
return KVStorage::getStorage(DB::db(), 'game_env')->online;
}
function onlinegen() {
$db = DB::db();
$connect=$db->get();
$gameStor = KVStorage::getStorage($db, 'game_env');
$onlinegen = "";
$generalID = Session::getInstance()->generalID;
$nationID = DB::db()->queryFirstField('select `nation` from `general` where `no` = %i', $generalID);
if($nationID === null || Util::toInt($nationID) === 0) {
$query = "select onlinegen from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$game = MYDB_fetch_array($result);
$onlinegen = $game['onlinegen'];
$onlinegen = $gameStor->onlinegen;
} else {
$onlinegen = DB::db()->queryFirstField('select onlinegen from nation where nation=%i',$nationID);
}
@@ -1108,12 +1106,9 @@ function onlinegen() {
function onlineNation() {
$db = DB::db();
$connect=$db->get();
$gameStor = KVStorage::getStorage($db, 'game_env');
$query = "select onlinenation from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$game = MYDB_fetch_array($result);
return $game['onlinenation'];
return $gameStor->onlinenation;
}
function nationMsg() {
@@ -1148,14 +1143,14 @@ function msgprint($msg, $name, $picture, $imgsvr, $when, $num, $type) {
$imageTemp = GetImageURL($imgsvr);
echo "
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table style='text-align:center;' width=1000 class='tb_layout bg0'>
<tr>
<td width=64 align=center id=bg1><font size=1>$name</font></td>
<td width=772 align=center id=bg1><font size=4><b>$message[0]</b></font></td>
<td width=148 align=center id=bg1>$when</td>
<td width=64 style='text-align:center;' class='bg1'><font size=1>$name</font></td>
<td width=772 style='text-align:center;' class='bg1'><font size=4><b>$message[0]</b></font></td>
<td width=148 style='text-align:center;' class='bg1'>$when</td>
</tr>
<tr>
<td width=64 height=64 valign=top><img width='64' height='64' src={$imageTemp}/{$picture} border=0></td>
<td width=64 height=64 valign=top><img width='64' height='64' src={$imageTemp}/{$picture} border='0'></td>
<td width=932 colspan=2>$message[1]</td>
</tr>";
for($i=0; $i < $count; $i++) {
@@ -1166,14 +1161,14 @@ function msgprint($msg, $name, $picture, $imgsvr, $when, $num, $type) {
$regen = MYDB_fetch_array($result);
echo "
<tr>
<td width=64 align=center><font size=1>{$regen['name']}</font></td>
<td width=64 style='text-align:center;'><font size=1>{$regen['name']}</font></td>
<td width=932 colspan=2>$reply</td>
</tr>";
}
echo "
<tr>
<form name=reply_form{$num} method=post action=$board>
<td width=64 align=center>댓글달기</td>
<td width=64 style='text-align:center;'>댓글달기</td>
<td width=932 colspan=2>
<input type=textarea name=reply maxlength=250 style=color:white;background-color:black;width:830px;>
<input type=submit value=댓글달기>
@@ -1257,9 +1252,8 @@ function increaseRefresh($type="", $cnt=1) {
$date = date('Y-m-d H:i:s');
$db = DB::db();
$db->update('game', [
'refresh'=>$db->sqleval('refresh+%i', $cnt)
], true);
$gameStor = KVStorage::getStorage($db, 'game_env');
$gameStor->refresh = $gameStor->refresh+$cnt; //TODO: +로 증가하는 값은 별도로 분리
if($generalID) {
$db->update('general', [
@@ -1327,22 +1321,21 @@ function increaseRefresh($type="", $cnt=1) {
function updateTraffic() {
$online = getOnlineNum();
$db = DB::db();
$game = $db->queryFirstRow('SELECT year,month,refresh,maxonline,maxrefresh from game limit 1');
$gameStor = KVStorage::getStorage($db, 'game_env');
$admin = $gameStor->getValues(['year','month','refresh','maxonline','maxrefresh']);
//최다갱신자
$user = $db->queryFirstRow('select name,refresh from general order by refresh desc limit 1');
if($game['maxrefresh'] < $game['refresh']) {
$game['maxrefresh'] = $game['refresh'];
if($admin['maxrefresh'] < $admin['refresh']) {
$admin['maxrefresh'] = $admin['refresh'];
}
if($game['maxonline'] < $online) {
$game['maxonline'] = $online;
if($admin['maxonline'] < $online) {
$admin['maxonline'] = $online;
}
$db->update('game',[
'refresh'=>0,
'maxrefresh'=>$game['maxrefresh'],
'maxonline'=>$game['maxonline']
], true);
$gameStor->refresh = 0;
$gameStor->maxrefresh = $admin['maxrefresh'];
$gameStor->maxonline = $admin['maxonline'];
$db->update('general', ['refresh'=>0], true);
@@ -1351,9 +1344,9 @@ function updateTraffic() {
file_put_contents(__dir__."/logs/_traffic.txt",
Json::encode([
$date,
$game['year'],
$game['month'],
$game['refresh'],
$admin['year'],
$admin['month'],
$admin['refresh'],
$online,
$user['name']."(".$user['refresh'].")"
])."\n"
@@ -1363,15 +1356,14 @@ function updateTraffic() {
function CheckOverhead() {
//서버정보
$db = DB::db();
$admin = $db->queryFirstRow('SELECT turnterm, conlimit from game LIMIT 1');
$gameStor = KVStorage::getStorage($db, 'game_env');
list($turnterm, $conlimit) = $gameStor->getValuesAsArray(['turnterm', 'conlimit']);
$con = Util::round(pow($admin['turnterm'], 0.6) * 3) * 10;
$con = Util::round(pow($turnterm, 0.6) * 3) * 10;
if($con != $admin['conlimit']){
$db->update('game', [
'conlimit' => $con
], true);
if($con != $conlimit){
$gameStor->conlimit = $con;
}
}
@@ -1409,27 +1401,30 @@ function unlock() {
}
function timeover() {
$admin = DB::db()->queryFirstRow(
'SELECT turnterm,TIMESTAMPDIFF(SECOND,turntime,now()) as diff from game limit 1'
);
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$t = min($admin['turnterm'], 5);
list($turnterm, $turntime) = $gameStor->getValuesAsArray(['turnterm', 'turntime']);
$diff = (new \DateTime())->getTimestamp() - (new \DateTime($turntime))->getTimestamp();
$term = $admin['diff'];
$t = min($turnterm, 5);
$term = $diff;
if($term >= $t || $term < 0) { return 1; }
else { return 0; }
}
function checkDelay() {
$db = DB::db();
$connect=$db->get();
$gameStor = KVStorage::getStorage($db, 'game_env');
//서버정보
$query = "select turnterm,now() as now,TIMESTAMPDIFF(MINUTE,turntime,now()) as offset from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$now = new \DateTimeImmutable();
$turntime = new \DateTimeImmutable($gameStor->turntime);
$timeMinDiff = intdiv($now->getTimestamp() - $turntime->getTimestamp(), 60);
// 1턴이상 갱신 없었으면 서버 지연
$term = $admin['turnterm'];
$term = $gameStor->turnterm;
if($term >= 20){
$threshold = 1;
}
@@ -1440,20 +1435,25 @@ function checkDelay() {
$threshold = 3;
}
//지연 해야할 밀린 턴 횟수
$iter = intdiv($admin['offset'], $term);
$iter = intdiv($timeMinDiff, $term);
if($iter > $threshold) {
$minute = $iter * $term;
$query = "update game set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE),starttime=DATE_ADD(starttime, INTERVAL $minute MINUTE),tnmt_time=DATE_ADD(tnmt_time, INTERVAL $minute MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update general set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE) where turntime<=DATE_ADD(turntime, INTERVAL $term MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update auction set expire=DATE_ADD(expire, INTERVAL $minute MINUTE)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$newTurntime = $turntime->add(new \DateInterval("PT{$minute}M"));
$newNextTurntime = $turntime->add(new \DateInterval("PT{$term}M"));
$gameStor->turntime = $newTurntime->format('Y-m-d H:i:s');
$db->update('general', [
'turntime'=> $db->sqleval('DATE_ADD(turntime, INTERVAL %i MINUTE)', $minute)
], 'turntime<=DATE_ADD(turntime, INTERVAL %i MINUTE)', $term);
$db->update('auction', [
'expire'=> $db->sqleval('DATE_ADD(expire, INTERVAL %i MINUTE)', $minute)
], true);
}
}
function updateOnline() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$nationname = ["재야"];
@@ -1487,8 +1487,7 @@ function updateOnline() {
$onnationstr .= "{$nationname[$key]}】, ";
if($key == 0) {
$query = "update game set onlinegen='$onnation[0]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->onlinegen = $onnation[0];
} else {
$query = "update nation set onlinegen='$onnation[$key]' where nation='$key'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1497,12 +1496,13 @@ function updateOnline() {
}
//접속중인 국가
$query = "update game set online='$onlinenum',onlinenation='$onnationstr'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->online = $onlinenum;
$gameStor->onlinenation = $onnationstr;
}
function checkTurn() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$alllog = [];
@@ -1537,14 +1537,11 @@ function checkTurn() {
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', 진입');
//천통시에는 동결
$query = "select turntime from game where isUnited=2";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$down = MYDB_num_rows($result);
if($down > 0) {
$query = "update plock set plock=1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
if($gameStor->isUnited == 2) {
$db->update('plock', ['plock'=>1], true);
return;
}
$gameStor->cacheAll();
// 1턴이상 갱신 없었으면 서버 지연
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', checkDelay');
checkDelay();
@@ -1555,14 +1552,11 @@ function checkTurn() {
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', CheckOverhead');
CheckOverhead();
//서버정보
$query = "select * from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$date = date('Y-m-d H:i:s');
// 최종 처리 월턴의 다음 월턴시간 구함
$prevTurn = cutTurn($admin['turntime'], $admin['turnterm']);
$nextTurn = addTurn($prevTurn, $admin['turnterm']);
$prevTurn = cutTurn($gameStor->turntime, $gameStor->turnterm);
$nextTurn = addTurn($prevTurn, $gameStor->turnterm);
// 현재 턴 이전 월턴까지 모두처리.
//최종 처리 이후 다음 월턴이 현재 시간보다 전이라면
while($nextTurn <= $date) {
@@ -1600,15 +1594,15 @@ function checkTurn() {
// 잡금 해제
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', unlock');
$gameStor->resetCache(true);
unlock();
return false;
}
// 그 시각 년도,월 저장
$dt = turnDate($nextTurn);
$admin['year'] = $dt[0]; $admin['month'] = $dt[1];
list($gameStor->year, $gameStor->month) = turnDate($nextTurn);
pushLockLog(["-- checkTurn() ".$admin['month']."월 : ".date('Y-m-d H:i:s')." : ".$session->userName]);
pushLockLog(["-- checkTurn() ".$gameStor->month."월 : ".date('Y-m-d H:i:s')." : ".$session->userName]);
// 이벤트 핸들러 동작
foreach (DB::db()->query('SELECT * from event') as $rawEvent) {
@@ -1617,13 +1611,12 @@ function checkTurn() {
$action = Json::decode($rawEvent['action']);
$event = new Event\EventHandler($cond, $action);
$event->tryRunEvent(['currentEventID'=>$eventID] + $admin);
$event->tryRunEvent(['currentEventID'=>$eventID] + $gameStor->getAll(true));
}
// 분기계산. 장수들 턴보다 먼저 있다면 먼저처리
if($admin['month'] == 1) {
if($gameStor->month == 1) {
// NPC 등장
//if($admin['scenario'] > 0 && $admin['scenario'] < 20) { RegNPC(); }
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processGoldIncome');
processGoldIncome();
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processSpring');
@@ -1639,14 +1632,14 @@ function checkTurn() {
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', addAge');
addAge();
// 새해 알림
$alllog[] = "<C>◆</>{$admin['month']}월:<C>{$admin['year']}</>년이 되었습니다.";
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
} elseif($admin['month'] == 4) {
$alllog[] = "<C>◆</>{$gameStor->month}월:<C>{$gameStor->year}</>년이 되었습니다.";
pushGeneralPublicRecord($alllog, $gameStor->year, $gameStor->month);
} elseif($gameStor->month == 4) {
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateQuaterly');
updateQuaterly();
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', disaster');
disaster();
} elseif($admin['month'] == 7) {
} elseif($gameStor->month == 7) {
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processRiceIncome');
processRiceIncome();
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processFall');
@@ -1657,7 +1650,7 @@ function checkTurn() {
disaster();
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', tradeRate');
tradeRate();
} elseif($admin['month'] == 10) {
} elseif($gameStor->month == 10) {
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateQuaterly');
updateQuaterly();
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', disaster');
@@ -1668,18 +1661,16 @@ function checkTurn() {
// 다음달로 넘김
$prevTurn = $nextTurn;
$nextTurn = addTurn($prevTurn, $admin['turnterm']);
$nextTurn = addTurn($prevTurn, $gameStor->turnterm);
}
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', '.__LINE__);
// 이시각 정각 시까지 업데이트 완료했음
$query = "update game set turntime='$prevTurn'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->turntime = $prevTurn;
// 그 시각 년도,월 저장
$dt = turnDate($prevTurn);
$admin['year'] = $dt[0]; $admin['month'] = $dt[1];
list($gameStor->year, $gameStor->month) = turnDate($prevTurn);
// 현재시간의 월턴시간 이후 분단위 장수 처리
do {
$query = "select no,name,turntime,turn0,npc from general where turntime<='$date' order by turntime";
@@ -1707,8 +1698,7 @@ function checkTurn() {
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', '.__LINE__);
$query = "update game set turntime='$date'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->turntime = $date;
// 부상 과도 제한
$query = "update general set injury='80' where injury>'80'";
@@ -1721,6 +1711,7 @@ function checkTurn() {
processAuction();
// 잡금 해제
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', unlock');
$gameStor->resetCache(true);
unlock();
pushLockLog(["- checkTurn() 출 : ".date('Y-m-d H:i:s')." : ".$session->userName]);
@@ -1732,15 +1723,14 @@ function checkTurn() {
function addAge() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
//나이와 호봉 증가
$query = "update general set age=age+1,belong=belong+1";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "select startyear,year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
if($admin['year'] >= $admin['startyear']+3) {
$query = "select no,name,nation,leader,power,intel from general where specage<=age and special='0'";
@@ -1776,8 +1766,8 @@ function addAge() {
function turnDate($curtime) {
$db = DB::db();
$admin = $db->queryFirstRow('SELECT startyear,starttime,turnterm,year,month from game limit 1');
$gameStor = KVStorage::getStorage($db, 'game_env');
$admin = $gameStor->getValues(['startyear', 'starttime', 'turnterm', 'year', 'month']);
$turn = $admin['starttime'];
$curturn = cutTurn($curtime, $admin['turnterm']);
@@ -1793,10 +1783,8 @@ function turnDate($curtime) {
// 바뀐 경우만 업데이트
if($admin['month'] != $month || $admin['year'] != $year) {
$db->update('game', [
'year'=>$year,
'month'=>$month
], true);
$gameStor->year = $year;
$gameStor->month = $month;
}
return [$year, $month];
@@ -1805,11 +1793,9 @@ function turnDate($curtime) {
function triggerTournament() {
$db = DB::db();
$connect=$db->get();
$gameStor = KVStorage::getStorage($db, 'game_env');
$query = "select tournament,tnmt_trig from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['tournament', 'tnmt_trig']);
//현재 토너먼트 없고, 자동개시 걸려있을때, 40%확률
if($admin['tournament'] == 0 && $admin['tnmt_trig'] > 0 && rand() % 100 < 40) {
@@ -1902,13 +1888,12 @@ function PreprocessCommand($no) {
function updateTurntime($no) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$alllog = [];
$log = [];
$query = "select year,month,isUnited,turnterm from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month', 'isUnited', 'turnterm']);
$query = "select no,name,name2,nation,troop,age,turntime,killturn,level,deadyear,npc,npc_org,affinity,npcid from general where no='$no'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -2152,6 +2137,7 @@ function CheckHall($no) {
function uniqueItem($general, $log, $vote=0) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$alllog = [];
$history = [];
@@ -2161,15 +2147,13 @@ function uniqueItem($general, $log, $vote=0) {
if($general['npc'] >= 2) { return $log; }
if($general['weap'] > 6 || $general['book'] > 6 || $general['horse'] > 6 || $general['item'] > 6) { return $log; }
$query = "select year,month,scenario from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$game = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month', 'scenario']);
$query = "select count(*) as cnt from general where npc<2";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gen = MYDB_fetch_array($result);
if($game['scenario'] == 0) { $prob = $gen['cnt'] * 5; } // 5~6개월에 하나씩 등장
if($admin['scenario'] == 0) { $prob = $gen['cnt'] * 5; } // 5~6개월에 하나씩 등장
else { $prob = $gen['cnt']; } // 1~2개월에 하나씩 등장
if($vote == 1) { $prob = Util::round($gen['cnt'] * 0.7 / 3); } // 투표율 70%, 투표 한번에 2~3개 등장
@@ -2210,63 +2194,63 @@ function uniqueItem($general, $log, $vote=0) {
switch($sel) {
case 0:
$log[] = "<C>●</><C>".getWeapName($it)."</>(을)를 습득했습니다!";
$alllog[0] = "<C>●</>{$game['month']}월:<Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
pushGeneralHistory($general, "<C>●</>{$game['year']}{$game['month']}월:<C>".getWeapName($it)."</>(을)를 습득");
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:<C>".getWeapName($it)."</>(을)를 습득");
if($vote == 0) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 1) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 2) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 3) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
}
break;
case 1:
$log[] = "<C>●</><C>".getBookName($it)."</>(을)를 습득했습니다!";
$alllog[0] = "<C>●</>{$game['month']}월:<Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
pushGeneralHistory($general, "<C>●</>{$game['year']}{$game['month']}월:<C>".getBookName($it)."</>(을)를 습득");
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:<C>".getBookName($it)."</>(을)를 습득");
if($vote == 0) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 1) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 2) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 3) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
}
break;
case 2:
$log[] = "<C>●</><C>".getHorseName($it)."</>(을)를 습득했습니다!";
$alllog[0] = "<C>●</>{$game['month']}월:<Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
pushGeneralHistory($general, "<C>●</>{$game['year']}{$game['month']}월:<C>".getHorseName($it)."</>(을)를 습득");
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:<C>".getHorseName($it)."</>(을)를 습득");
if($vote == 0) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 1) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 2) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 3) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
}
break;
case 3:
$log[] = "<C>●</><C>".getItemName($it)."</>(을)를 습득했습니다!";
$alllog[0] = "<C>●</>{$game['month']}월:<Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
pushGeneralHistory($general, "<C>●</>{$game['year']}{$game['month']}월:<C>".getItemName($it)."</>(을)를 습득");
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:<C>".getItemName($it)."</>(을)를 습득");
if($vote == 0) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 1) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 2) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
} elseif($vote == 3) {
$history[] = "<C>●</>{$game['year']}{$game['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
}
break;
}
pushGeneralPublicRecord($alllog, $game['year'], $game['month']);
pushWorldHistory($history, $game['year'], $game['month']);
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
pushWorldHistory($history, $admin['year'], $admin['month']);
}
}
return $log;
@@ -2363,13 +2347,8 @@ function checkExperience($general, $log) {
function getAdmin() {
$db = DB::db();
$connect=$db->get();
$query = "select * from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
return $admin;
$gameStor = KVStorage::getStorage($db, 'game_env');
return $gameStor->getAll();
}
function getMe() {
@@ -2419,14 +2398,13 @@ function getNation($nation) {
function deleteNation($general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$nation = getNationStaticInfo($general['nation']);
@@ -2454,11 +2432,10 @@ function deleteNation($general) {
function nextRuler($general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$query = "select nation,name from nation where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -2568,7 +2545,7 @@ function searchDistance(int $from, int $maxDist=99, bool $distForm = false) {
}
}
function isClose(int $nation1, int $nation2, bool $includeNoSupply=true) {
function isNeighbor(int $nation1, int $nation2, bool $includeNoSupply=true) {
$db = DB::db();
$nation1Cities = [];
@@ -2661,12 +2638,11 @@ function CharCritical($rate, $personal) {
function SabotageInjury($city, $type=0) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$query = "select no,name,nation from general where city='$city'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
+4 -6
View File
@@ -18,11 +18,10 @@ function GetStuffName($stuff) {
function registerAuction() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select startyear,year,month,turnterm from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'turnterm']);
$unit = 60 * $admin['turnterm'];
@@ -142,6 +141,7 @@ function registerAuction() {
function processAuction() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$trader = [];
@@ -153,9 +153,7 @@ function processAuction() {
$date = date("Y-m-d H:i:s");
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$query = "select * from auction where expire<='$date'";
$result2 = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
+8 -9
View File
@@ -457,28 +457,27 @@ function getCoreTurn($nation, $level) {
function processCommand($no) {
$session = Session::getInstance();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40 from general where no='$no'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
$query = "select month,killturn from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
list($month, $killturn) = $gameStor->getValuesAsArray(['month', 'killturn']);
$log = [];
// 블럭자는 미실행. 삭턴 감소
if($general['block'] == 2) {
$date = substr($general['turntime'],11,5);
$log[] = "<C>●</>{$admin['month']}월:현재 멀티, 또는 비매너로 인한<R>블럭</> 대상자입니다. <1>$date</>";
$log[] = "<C>●</>{$month}월:현재 멀티, 또는 비매너로 인한<R>블럭</> 대상자입니다. <1>$date</>";
pushGenLog($general, $log);
$query = "update general set recturn='',resturn='BLOCK_2',myset=3,con=0,killturn=killturn-1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
} elseif($general['block'] == 3) {
$date = substr($general['turntime'],11,5);
$log[] = "<C>●</>{$admin['month']}월:현재 악성유저로 분류되어 <R>블럭, 발언권 무효</> 대상자입니다. <1>$date</>";
$log[] = "<C>●</>{$month}월:현재 악성유저로 분류되어 <R>블럭, 발언권 무효</> 대상자입니다. <1>$date</>";
pushGenLog($general, $log);
$query = "update general set recturn='',resturn='BLOCK_3',myset=3,con=0,killturn=killturn-1 where no='{$general['no']}'";
@@ -530,14 +529,14 @@ function processCommand($no) {
$command = DecodeCommand($general['turn0']);
//삭턴 처리
if($general['npc'] >= 2 || $general['killturn'] > $admin['killturn']) {
if($general['npc'] >= 2 || $general['killturn'] > $killturn) {
$query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn=killturn-1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
} elseif($command[0] == 0) {
$query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn=killturn-1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
} else {
$query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn='{$admin['killturn']}' where no='{$general['no']}'";
$query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn='{$killturn}' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
//FIXME: 운영자 같이 사망하면 안되는 인물에 대한 처리가 필요
@@ -551,7 +550,7 @@ function processCommand($no) {
switch($command[0]) {
case 0: //휴식
$date = substr($general['turntime'],11,5);
$log[] = "<C>●</>{$admin['month']}월:아무것도 실행하지 않았습니다. <1>$date</>";
$log[] = "<C>●</>{$month}월:아무것도 실행하지 않았습니다. <1>$date</>";
pushGenLog($general, $log);
break;
case 1: process_1($general, 1); break; //농업
+7 -7
View File
@@ -284,19 +284,19 @@ function getLevel($level, $nlevel=8) {
function getCall($leader, $power, $intel) {
$call = '평범';
if($leader >= GameConst::$goodgenleader && $power >= GameConst::$goodgenpower && $intel >= GameConst::$goodgenintel) {
if($leader >= GameConst::$chiefStatMin && $power >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
$call = '만능';
} elseif($leader >= GameConst::$goodgenleader && $power >= GameConst::$goodgenpower) {
} elseif($leader >= GameConst::$chiefStatMin && $power >= GameConst::$chiefStatMin) {
$call = '용장';
} elseif($leader >= GameConst::$goodgenleader && $intel >= GameConst::$goodgenintel) {
} elseif($leader >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
$call = '지장';
} elseif($power >= GameConst::$goodgenpower && $intel >= GameConst::$goodgenintel) {
} elseif($power >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
$call = '명장';
} elseif($leader >= GameConst::$goodgenleader) {
} elseif($leader >= GameConst::$chiefStatMin) {
$call = '명사';
} elseif($power >= GameConst::$goodgenpower) {
} elseif($power >= GameConst::$chiefStatMin) {
$call = '용맹';
} elseif($intel >= GameConst::$goodgenintel) {
} elseif($intel >= GameConst::$chiefStatMin) {
$call = '현명';
}
return $call;
+27 -99
View File
@@ -5,77 +5,8 @@ namespace sammo;
* 게임 룰에 해당하는 함수 모음
*/
// 37.5 ~ 75
function abilityRand() {
$total = 150;
$leader = (rand()%100 + 1) / 100.0 + 1.0;
$power = (rand()%100 + 1) / 100.0 + 1.0;
$intel = (rand()%100 + 1) / 100.0 + 1.0;
$rate = $leader + $power + $intel;
$leader = intdiv($leader * $total, $rate);
$power = intdiv($power * $total, $rate);
$intel = intdiv($intel * $total, $rate);
while($leader+$power+$intel < 150) {
$leader++;
}
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
}
// 14 ~ 75
function abilityLeadpow() {
$total = 150;
$leader = (rand()%100 + 1) / 100.0 + 6.0;
$power = (rand()%100 + 1) / 100.0 + 6.0;
$intel = (rand()%100 + 1) / 100.0 + 1.0;
$rate = $leader + $power + $intel;
$leader = intdiv($leader * $total, $rate);
$power = intdiv($power * $total, $rate);
$intel = intdiv($intel * $total, $rate);
while($leader+$power+$intel < 150) {
$leader++;
}
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
}
function abilityLeadint() {
$total = 150;
$leader = (rand()%100 + 1) / 100.0 + 6.0;
$power = (rand()%100 + 1) / 100.0 + 1.0;
$intel = (rand()%100 + 1) / 100.0 + 6.0;
$rate = $leader + $power + $intel;
$leader = intdiv($leader * $total, $rate);
$power = intdiv($power * $total, $rate);
$intel = intdiv($intel * $total, $rate);
while($leader+$power+$intel < 150) {
$leader++;
}
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
}
function abilityPowint() {
$total = 150;
$leader = (rand()%100 + 1) / 100.0 + 1.0;
$power = (rand()%100 + 1) / 100.0 + 6.0;
$intel = (rand()%100 + 1) / 100.0 + 6.0;
$rate = $leader + $power + $intel;
$leader = intdiv($leader * $total, $rate);
$power = intdiv($power * $total, $rate);
$intel = intdiv($intel * $total, $rate);
while($leader+$power+$intel < 150) {
$leader++;
}
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
}
/**
/**
* 게임 내부에 사용하는 유틸리티 함수들을 분리
*/
@@ -257,12 +188,15 @@ function checkSupply() {
}
$queue = new \SplQueue();
foreach(getAllNationStaticInfo() as $nation){
foreach($db->query('SELECT capital, nation FROM nation WHERE `level` > 0') as $nation){
$capitalID = $nation['capital'];
if(!$capitalID){
continue;
}
$city = &$cities[$capitalID];
if($nation['nation'] != $city['nation']){
continue;
}
$city['supply'] = true;
$queue->enqueue($city['id']);
}
@@ -338,6 +272,7 @@ function updateQuaterly() {
// 벌점 감소와 건국제한-1 전턴제한-1 외교제한-1, 1달마다 실행, 병사 있는 장수의 군량 감소, 수입비율 조정
function preUpdateMonthly() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
//연감 월결산
@@ -346,9 +281,7 @@ function preUpdateMonthly() {
if($result == false) { return false; }
$query = "select startyear,year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
//배신 횟수 최대 10회 미만
$query = "update general set betray=9 where betray>9";
@@ -428,8 +361,10 @@ function preUpdateMonthly() {
$ratio = 100;
// 20 ~ 140원
$develcost = ($admin['year'] - $admin['startyear'] + 10) * 2;
$query = "update game set gold_rate='$ratio',rice_rate='$ratio',city_rate='$rate',develcost='$develcost'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->gold_rate = $ratio;
$gameStor->rice_rate = $ratio;
$gameStor->city_rate = $rate;
$gameStor->develcost = $develcost;
//매달 사망자 수입 결산
processDeadIncome($ratio);
@@ -490,11 +425,10 @@ function preUpdateMonthly() {
// 외교 로그처리, 외교 상태 처리
function postUpdateMonthly() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select startyear,year,month,scenario from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'scenario']);
$history = [];
@@ -644,11 +578,10 @@ group by A.nation
function checkWander() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$needRefresh = false;
@@ -675,15 +608,14 @@ function checkWander() {
function checkMerge() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$mylog = [];
$youlog = [];
$history = [];
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$query = "select * from diplomacy where state='3' and term='0'";
$dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -797,11 +729,10 @@ function checkMerge() {
function checkSurrender() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$query = "select * from diplomacy where state='5' and term='0'";
$dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -921,12 +852,11 @@ function checkSurrender() {
function updateNationState() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$history = array();
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$query = "select nation,name,level from nation";
$nationresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1002,11 +932,10 @@ function updateNationState() {
function checkStatistic() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$nationHists = [];
$specialHists = [];
@@ -1158,11 +1087,10 @@ function checkStatistic() {
function checkEmperior() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select year,month,isUnited from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month', 'isUnited']);
$query = "select nation,name from nation where level>0";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1182,8 +1110,8 @@ function checkEmperior() {
if($count == $allcount) {
pushNationHistory($nation, "<C>●</>{$admin['year']}{$admin['month']}월:<D><b>{$nation['name']}</b></>(이)가 전토를 통일");
$query = "update game set isUnited=2,conlimit=conlimit*100";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->isUnited = 2;
$gameStor->conlimit = $gameStor->conlimit*100;
$query = "select no from general where npc<2 and age>=45";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
+6 -7
View File
@@ -151,10 +151,9 @@ function pushWorldHistory(array $history, $year=null, $month=null) {
return;
}
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
if($year === null || $month === null){
$game = $db->queryFirstRow('SELECT year, month FROM game LIMIT 1');
$year = $game['year'];
$month = $game['month'];
list($year, $month) = $gameStor->getValuesAsArray(['year', 'month']);
}
$request = array_map(function($text) use ($year, $month) {
return ['year'=>$year, 'month'=>$month, 'text'=>$text];
@@ -199,10 +198,9 @@ function pushGeneralPublicRecord(array $history, $year=null, $month=null) {
return;
}
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
if($year === null || $month === null){
$game = $db->queryFirstRow('SELECT year, month FROM game LIMIT 1');
$year = $game['year'];
$month = $game['month'];
list($year, $month) = $gameStor->getValuesAsArray(['year', 'month']);
}
$request = array_map(function($text) use ($year, $month) {
return ['year'=>$year, 'month'=>$month, 'text'=>$text];
@@ -249,7 +247,8 @@ function LogHistory($isFirst=0) {
if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', LogHistory Start');
$db = DB::db();
$obj = $db->queryFirstRow('SELECT year, month, startyear FROM game limit 1');
$gameStor = KVStorage::getStorage($db, 'game_env');
$obj = $gameStor->getValues(['startyear', 'year', 'month']);
//TODO: 새롭게 추가할 지도 값 받아오는 함수를 이용하여 재구성
$map = getWorldMap([
+9 -14
View File
@@ -9,8 +9,8 @@ function printLimitMsg($turntime) {
<head>
<title>접속제한</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
<link rel='stylesheet' href='css/common.css' type='text/css'>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
</head>
<body>
<font size=4><b>
@@ -28,15 +28,11 @@ function bar($per, $h=7) {
else { $bd = 1; $h = 12; $h2 = 8; }
$per = round($per, 1);
if($per < 1 || $per > 99) { $per = Util::round($per); }
$str1 = "<td width='{$per}%' background=".ServConfig::$gameImagePath."/pb{$h2}.gif></td>";
$str2 = "<td width='*%' background=".ServConfig::$gameImagePath."/pr{$h2}.gif></td>";
if($per <= 0) { $str1 = ""; }
elseif($per >= 100) { $str2 = ""; }
$str = "
<table width=100% height={$h} border={$bd} cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black>
<tr>{$str1}{$str2}</tr>
</table>";
$str = "<div class='bar_out' style='height:{$h2}px;'>
<div class='bar_in' style='background:url(".ServConfig::$gameImagePath."/pr{$h2}.gif)'></div>
<div style='width:{$per}%;background:url(".ServConfig::$gameImagePath."/pb{$h2}.gif)'></div>
</div>";
return $str;
}
@@ -110,11 +106,10 @@ function printCitiesBasedOnDistance(int $cityNo, int $maxDistance=1) {
function info($type=0) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select year,month,turnterm,maxgeneral from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month', 'turnterm', 'maxgeneral']);
$termtype = "{$admin['turnterm']}분 턴";
+5 -4
View File
@@ -54,11 +54,12 @@ function getWorldMap($req){
$userID = $session->userID;
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$game = $db->queryFirstRow('select `startyear`, `year`, `month` from `game` where `no` = 1');
$startYear = Util::toInt($game['startyear']);
$year = Util::toInt($game['year']);
$month = Util::toInt($game['month']);
list($startYear, $year, $month) = $gameStor->getValuesAsArray(['startyear', 'year', 'month']);
$startYear = Util::toInt($startYear);
$year = Util::toInt($year);
$month = Util::toInt($month);
$general = $db->queryFirstRow(
'select `no`, `city`, `nation` from `general` where `owner`=%i',
+5 -7
View File
@@ -165,11 +165,10 @@ function SetCrew($no, $personal, $gold, $leader, $genType, $tech, $region, $city
function processAI($no) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select startyear,year,month,turnterm,scenario,gold_rate,rice_rate from game limit 1";
$result = MYDB_query($query, $connect) or Error("processAI00 ".MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear','year','month','turnterm','scenario','gold_rate','rice_rate']);
// 초반 여부
if($admin['startyear']+2 > $admin['year'] || ($admin['startyear']+2 == $admin['year'] && $admin['month'] < 5)) {
$isStart = 1;
@@ -479,7 +478,7 @@ function processAI($no) {
for($i=0; $i < $nationCount; $i++) {
$youNation = MYDB_fetch_array($result);
if(isClose($general['nation'], $youNation['nation'])) {
if(isNeighbor($general['nation'], $youNation['nation'])) {
$command = EncodeCommand(0, 0, $youNation['nation'], 62);
$query = "update nation set l12turn0='$command' where nation='{$general['nation']}'";
MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),"");
@@ -1045,13 +1044,12 @@ function processAI($no) {
function Promotion($nation, $level) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$lv = getNationChiefLevel($level);
$query = "select scenario,killturn from game limit 1";
$result = MYDB_query($query, $connect) or Error("processAI00 ".MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['scenario', 'killturn']);
//우선 수뇌 해제 (승상 뺴고)
$query = "update general set level=1 where level<11 and level>4 and nation='$nation'";
+53 -77
View File
@@ -187,6 +187,7 @@ function CriticalScore($score, $type) {
function process_1(&$general, $type) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -194,9 +195,7 @@ function process_1(&$general, $type) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'develcost']);
if($type == 1) { $dtype = "농지 개간"; $atype = ""; $btype = ""; $stype = "agri"; }
elseif($type == 2) { $dtype = "상업 투자"; $atype = ""; $btype = ""; $stype = "comm"; }
@@ -288,6 +287,7 @@ function process_1(&$general, $type) {
function process_3(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -295,9 +295,7 @@ function process_3(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'develcost']);
$dtype = "기술 연구";
@@ -388,6 +386,7 @@ function process_3(&$general) {
function process_4(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -395,9 +394,7 @@ function process_4(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'develcost']);
$query = "select * from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -479,6 +476,7 @@ function process_4(&$general) {
function process_5(&$general, $type) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -486,9 +484,7 @@ function process_5(&$general, $type) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'develcost']);
if($type == 1) { $dtype = "수비 강화"; $stype = "def"; }
elseif($type == 2) { $dtype = "성벽 보수"; $stype = "wall"; }
@@ -580,6 +576,7 @@ function process_5(&$general, $type) {
function process_7(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -587,9 +584,7 @@ function process_7(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'develcost']);
$query = "select * from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -671,6 +666,7 @@ function process_7(&$general) {
function process_8(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -678,9 +674,7 @@ function process_8(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'develcost']);
$dtype = "치안"; $stype = "secu";
@@ -770,6 +764,7 @@ function process_8(&$general) {
function process_9(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -777,9 +772,7 @@ function process_9(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month', 'develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -860,6 +853,7 @@ function process_9(&$general) {
function process_11(&$general, $type) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -870,9 +864,7 @@ function process_11(&$general, $type) {
if($type == 1) { $defaultatmos = GameConst::$defaultAtmosLow; $defaulttrain = GameConst::$defaultTrainLow; }
else { $defaultatmos = GameConst::$defaultAtmosHigh; $defaulttrain = GameConst::$defaultTrainHigh; }
$query = "select year,month,startyear from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
$query = "select level,tech from nation where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1046,6 +1038,7 @@ function process_11(&$general, $type) {
function process_13(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1053,9 +1046,7 @@ function process_13(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$nation = getNationStaticInfo($general['nation']);
@@ -1115,6 +1106,7 @@ function process_13(&$general) {
function process_14(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1122,9 +1114,7 @@ function process_14(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$nation = getNationStaticInfo($general['nation']);
@@ -1177,6 +1167,7 @@ function process_14(&$general) {
function process_15(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1184,9 +1175,7 @@ function process_15(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$query = "select nation,tech from nation where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1250,6 +1239,7 @@ function process_15(&$general) {
function process_16(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1257,9 +1247,7 @@ function process_16(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
$query = "select nation,war,sabotagelimit,tech from nation where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1343,6 +1331,7 @@ function process_16(&$general) {
function process_17(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1350,9 +1339,7 @@ function process_17(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
if($general['crew'] == 0) {
$log[] = "<C>●</>{$admin['month']}월:병사가 없습니다. 소집해제 실패. <1>$date</>";
@@ -1384,6 +1371,7 @@ function process_17(&$general) {
function process_21(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1393,7 +1381,7 @@ function process_21(&$general) {
$db = DB::db();
$admin = $db->queryFirstRow('SELECT year, month, develcost FROM game limit 1');
$admin = $gameStor->getValues(['year', 'month', 'develcost']);
$city = CityConst::byID($general['city']);
$command = DecodeCommand($general['turn0']);
$destination = $command[1];
@@ -1445,6 +1433,7 @@ function process_21(&$general) {
function process_26(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1454,9 +1443,7 @@ function process_26(&$general) {
$troop = getTroop($general['troop']);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$query = "select nation,name,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1511,6 +1498,7 @@ function process_26(&$general) {
function process_28(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1520,9 +1508,7 @@ function process_28(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$nation = getNationStaticInfo($general['nation']);
@@ -1577,6 +1563,7 @@ function process_28(&$general) {
function process_30(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1584,9 +1571,7 @@ function process_30(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month', 'develcost']);
$query = "select path from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1645,6 +1630,7 @@ function process_30(&$general) {
function process_31(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1653,9 +1639,7 @@ function process_31(&$general) {
$date = substr($general['turntime'],11,5);
$msg = [];
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month', 'develcost']);
$dist = searchDistance($general['city'], 2, false);
$command = DecodeCommand($general['turn0']);
@@ -1786,6 +1770,7 @@ function process_31(&$general) {
function process_41(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1793,9 +1778,7 @@ function process_41(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month', 'develcost']);
$ratio = rand() % 100;
$exp = $general['crew'] / 400;
@@ -1855,6 +1838,7 @@ function process_41(&$general) {
function process_42(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1862,9 +1846,7 @@ function process_42(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$type = rand() % 27 + 1;
$exp = 30;
@@ -2076,6 +2058,7 @@ function process_42(&$general) {
function process_43(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$genlog = [];
@@ -2084,9 +2067,7 @@ function process_43(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$command = DecodeCommand($general['turn0']);
$what = $command[3];
@@ -2167,6 +2148,7 @@ function process_43(&$general) {
function process_44(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -2174,9 +2156,7 @@ function process_44(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$query = "select name,gold,rice from nation where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -2258,6 +2238,7 @@ function process_44(&$general) {
function process_48(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -2265,9 +2246,7 @@ function process_48(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$city = getCity($general['city']);
@@ -2366,6 +2345,7 @@ function process_48(&$general) {
function process_49(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -2374,9 +2354,7 @@ function process_49(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$nation = getNationStaticInfo($general['nation']);
@@ -2503,6 +2481,7 @@ function process_49(&$general) {
function process_50(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -2510,11 +2489,9 @@ function process_50(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$month = $gameStor->month;
$log[] = "<C>●</>{$admin['month']}월:건강 회복을 위해 요양합니다. <1>$date</>";
$log[] = "<C>●</>{$month}월:건강 회복을 위해 요양합니다. <1>$date</>";
// 경험치 상승 // 공헌도, 명성 상승
$exp = 10;
$ded = 7;
@@ -2530,6 +2507,7 @@ function process_50(&$general) {
function process_99(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -2537,9 +2515,7 @@ function process_99(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$log[] = "<C>●</>{$admin['month']}월:아직 구현되지 않았습니다. <1>$date</>";
+72 -86
View File
@@ -3,6 +3,7 @@ namespace sammo;
function process_23(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$genlog = [];
@@ -12,9 +13,7 @@ function process_23(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -105,6 +104,7 @@ function process_23(&$general) {
function process_24(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$genlog = [];
@@ -113,9 +113,7 @@ function process_24(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month,scenario,startyear from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','scenario','startyear']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -233,6 +231,7 @@ function process_24(&$general) {
function process_27(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -249,9 +248,7 @@ function process_27(&$general) {
$who = $command[2];
$where = $command[1];
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -310,8 +307,9 @@ function process_27(&$general) {
function process_51(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$date = substr($general['turntime'],11,5);
list($year, $month, $turnterm) = $db->queryFirstList('SELECT year,month,turnterm FROM game LIMIT 1');
list($year, $month, $turnterm) = $gameStor->getValuesAsArray(['year','month','turnterm']);
if($general['level'] < 5 || $general['nation']==0) {
pushGenLog($general, ["<C>●</>{$month}월:수뇌부가 아닙니다. 권고 실패. <1>$date</>"]);
@@ -393,6 +391,7 @@ function process_51(&$general) {
function process_52(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -401,9 +400,7 @@ function process_52(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -505,8 +502,9 @@ function process_52(&$general) {
function process_53(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$date = substr($general['turntime'],11,5);
list($year, $month, $turnterm) = $db->queryFirstList('SELECT year,month,turnterm FROM game LIMIT 1');
list($year, $month, $turnterm) = $gameStor->getValuesAsArray(['year','month','turnterm']);
if($general['level'] < 5 || $general['nation']==0) {
pushGenLog($general, ["<C>●</>{$month}월:수뇌부가 아닙니다. 제의 실패. <1>$date</>"]);
@@ -589,8 +587,9 @@ function process_53(&$general) {
function process_61(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$date = substr($general['turntime'],11,5);
list($year, $month, $turnterm) = $db->queryFirstList('SELECT year,month,turnterm FROM game LIMIT 1');
list($year, $month, $turnterm) = $gameStor->getValuesAsArray(['year','month','turnterm']);
if($general['level'] < 5 || $general['nation']==0) {
pushGenLog($general, ["<C>●</>{$month}월:수뇌부가 아닙니다. 제의 실패. <1>$date</>"]);
@@ -689,6 +688,7 @@ function process_61(&$general) {
function process_62(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -696,9 +696,7 @@ function process_62(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','startyear']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -744,7 +742,7 @@ function process_62(&$general) {
$log[] = "<C>●</>{$admin['month']}월:아국과 불가침중입니다. 선포 실패. <1>$date</>";
} elseif($dipcount != 0) {
$log[] = "<C>●</>{$admin['month']}월:상대국이 외교 진행중입니다. 선포 실패. <1>$date</>";
} elseif(!isClose($nation['nation'], $younation['nation'])) {
} elseif(!isNeighbor($nation['nation'], $younation['nation'])) {
$log[] = "<C>●</>{$admin['month']}월:인접하지 않았습니다. 선포 실패. <1>$date</>";
} elseif($admin['year'] <= $admin['startyear']) {
$log[] = "<C>●</>{$admin['month']}월:초반제한 해제 2년전부터 가능합니다. 선포 실패. <1>$date</>";
@@ -809,8 +807,9 @@ function process_62(&$general) {
function process_63(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$date = substr($general['turntime'],11,5);
list($year, $month, $turnterm) = $db->queryFirstList('SELECT year,month,turnterm FROM game LIMIT 1');
list($year, $month, $turnterm) = $gameStor->getValuesAsArray(['year','month','turnterm']);
if($general['level'] < 5 || $general['nation']==0) {
pushGenLog($general, ["<C>●</>{$month}월:수뇌부가 아닙니다. 제의 실패. <1>$date</>"]);
@@ -892,8 +891,9 @@ function process_63(&$general) {
function process_64(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$date = substr($general['turntime'],11,5);
list($year, $month, $turnterm) = $db->queryFirstList('SELECT year,month,turnterm FROM game LIMIT 1');
list($year, $month, $turnterm) = $gameStor->getValuesAsArray(['year','month','turnterm']);
if($general['level'] < 5 || $general['nation']==0) {
pushGenLog($general, ["<C>●</>{$month}월:수뇌부가 아닙니다. 제의 실패. <1>$date</>"]);
@@ -975,6 +975,7 @@ function process_64(&$general) {
function process_65(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -982,9 +983,7 @@ function process_65(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1069,6 +1068,7 @@ function process_65(&$general) {
function process_66(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1077,9 +1077,7 @@ function process_66(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1159,6 +1157,7 @@ function process_66(&$general) {
function process_67(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1167,9 +1166,7 @@ function process_67(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1250,6 +1247,7 @@ function process_67(&$general) {
function process_68(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1258,9 +1256,7 @@ function process_68(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1353,6 +1349,7 @@ function process_68(&$general) {
function process_71(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1362,9 +1359,7 @@ function process_71(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1459,6 +1454,7 @@ function process_71(&$general) {
function process_72(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1468,9 +1464,7 @@ function process_72(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1574,6 +1568,7 @@ function process_72(&$general) {
function process_73(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1583,9 +1578,7 @@ function process_73(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1705,6 +1698,7 @@ function process_73(&$general) {
function process_74(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1714,9 +1708,7 @@ function process_74(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1849,6 +1841,7 @@ function process_74(&$general) {
function process_75(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1858,9 +1851,7 @@ function process_75(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1975,6 +1966,7 @@ function process_75(&$general) {
function process_76(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -1984,9 +1976,7 @@ function process_76(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month,develcost,npccount,turnterm from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear','year','month','develcost','npccount','turnterm']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -2069,34 +2059,34 @@ function process_76(&$general) {
$type = rand() % 10;
switch($type) {
case 0: case 1: case 2: case 3:
$leader = 65 + rand()%11;
$intel = 10 + rand()%6;
$power = 150 - $leader - $intel;
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
$intel = GameConst::$defaultStatMin + rand()%6;
$power = GameConst::$defaultStatTotal - $leader - $intel;
break;
case 4: case 5: case 6: case 7:
$leader = 65 + rand()%11;
$power = 10 + rand()%6;
$intel = 150 - $leader - $power;
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
$power = GameConst::$defaultStatMin + rand()%6;
$intel = GameConst::$defaultStatTotal - $leader - $power;
break;
case 8: case 9:
$leader = 10 + rand()%6;
$power = 65 + rand()%11;
$intel = 150 - $leader - $power;
$leader = GameConst::$defaultStatMin + rand()%6;
$power = GameConst::$defaultStatMax - 10 + rand()%11;
$intel = GameConst::$defaultStatTotal - $leader - $power;
break;
}
// 국내 최고능치 기준으로 랜덤성 스케일링
if($avgGen['lpi'] > 210) {
$leader = Util::round($leader * $avgGen['lpi'] / 150 * (60+rand()%31)/100);
$power = Util::round($power * $avgGen['lpi'] / 150 * (60+rand()%31)/100);
$intel = Util::round($intel * $avgGen['lpi'] / 150 * (60+rand()%31)/100);
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
} elseif($avgGen['lpi'] > 180) {
$leader = Util::round($leader * $avgGen['lpi'] / 150 * (75+rand()%21)/100);
$power = Util::round($power * $avgGen['lpi'] / 150 * (75+rand()%21)/100);
$intel = Util::round($intel * $avgGen['lpi'] / 150 * (75+rand()%21)/100);
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
} else {
$leader = Util::round($leader * $avgGen['lpi'] / 150 * (90+rand()%11)/100);
$power = Util::round($power * $avgGen['lpi'] / 150 * (90+rand()%11)/100);
$intel = Util::round($intel * $avgGen['lpi'] / 150 * (90+rand()%11)/100);
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
}
$over1 = 0;
$over2 = 0;
@@ -2121,14 +2111,14 @@ function process_76(&$general) {
$power = $power + $over1 + $over2 + $over3;
}
// 너무 높은 능치는 제한
if($leader > 95) {
$leader = 95;
if($leader > GameConst::$defaultStatNPCMax) {
$leader = GameConst::$defaultStatNPCMax;
}
if($power > 95) {
$power = 95;
if($power > GameConst::$defaultStatNPCMax) {
$power = GameConst::$defaultStatNPCMax;
}
if($intel > 95) {
$intel = 95;
if($intel > GameConst::$defaultStatNPCMax) {
$intel = GameConst::$defaultStatNPCMax;
}
$npccount = 10000 + $npcid;
@@ -2163,8 +2153,7 @@ function process_76(&$general) {
$npcid++;
}
//npccount
$query = "update game set npccount={$npcid}";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->npccount=$npcid;
//국가 기술력 그대로
$query = "select no from general where nation='{$general['nation']}'";
@@ -2194,6 +2183,7 @@ function process_76(&$general) {
function process_77(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -2203,9 +2193,7 @@ function process_77(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -2322,6 +2310,7 @@ function process_77(&$general) {
function process_78(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -2331,9 +2320,7 @@ function process_78(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -2447,6 +2434,7 @@ function process_78(&$general) {
function process_81(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -2455,9 +2443,7 @@ function process_81(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month']);
$query = "select nation from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
+48 -59
View File
@@ -3,6 +3,7 @@ namespace sammo;
function process_22(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -10,9 +11,7 @@ function process_22(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear','year','month','develcost']);
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -60,6 +59,7 @@ function process_22(&$general) {
function process_25(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -67,9 +67,7 @@ function process_25(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
$query = "select nation from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -183,6 +181,7 @@ function process_25(&$general) {
function process_29(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -190,9 +189,7 @@ function process_29(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month,develcost,npccount,turnterm,scenario from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear','year','month','develcost','npccount','turnterm','scenario']);
$query = "select nation,name,level,gennum,scout from nation where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -279,53 +276,53 @@ function process_29(&$general) {
if($admin['scenario'] == 0) {
switch($type) {
case 0: case 1:
$leader = 65 + rand()%11;
$intel = 10 + rand()%6;
$power = 150 - $leader - $intel;
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
$intel = GameConst::$defaultStatMin + rand()%6;
$power = GameConst::$defaultStatTotal - $leader - $intel;
break;
case 2: case 3:
$leader = 65 + rand()%11;
$power = 10 + rand()%6;
$intel = 150 - $leader - $power;
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
$power = GameConst::$defaultStatMin + rand()%6;
$intel = GameConst::$defaultStatTotal - $leader - $power;
break;
case 4: case 5: case 6: case 7: case 8: case 9:
$leader = 10 + rand()%6;
$power = 65 + rand()%11;
$intel = 150 - $leader - $power;
$leader = GameConst::$defaultStatMin + rand()%6;
$power = GameConst::$defaultStatMax - 10 + rand()%11;
$intel = GameConst::$defaultStatTotal - $leader - $power;
break;
}
} else {
switch($type) {
case 0: case 1: case 2: case 3:
$leader = 65 + rand()%11;
$intel = 10 + rand()%6;
$power = 150 - $leader - $intel;
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
$intel = GameConst::$defaultStatMin + rand()%6;
$power = GameConst::$defaultStatTotal - $leader - $intel;
break;
case 4: case 5: case 6: case 7:
$leader = 65 + rand()%11;
$power = 10 + rand()%6;
$intel = 150 - $leader - $power;
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
$power = GameConst::$defaultStatMin + rand()%6;
$intel = GameConst::$defaultStatTotal - $leader - $power;
break;
case 8: case 9:
$leader = 10 + rand()%6;
$power = 65 + rand()%11;
$intel = 150 - $leader - $power;
$leader = GameConst::$defaultStatMin + rand()%6;
$power = GameConst::$defaultStatMax - 10 + rand()%11;
$intel = GameConst::$defaultStatTotal - $leader - $power;
break;
}
}
// 국내 최고능치 기준으로 랜덤성 스케일링
if($avgGen['lpi'] > 210) {
$leader = Util::round($leader * $avgGen['lpi'] / 150 * (60+rand()%31)/100);
$power = Util::round($power * $avgGen['lpi'] / 150 * (60+rand()%31)/100);
$intel = Util::round($intel * $avgGen['lpi'] / 150 * (60+rand()%31)/100);
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
} elseif($avgGen['lpi'] > 180) {
$leader = Util::round($leader * $avgGen['lpi'] / 150 * (75+rand()%21)/100);
$power = Util::round($power * $avgGen['lpi'] / 150 * (75+rand()%21)/100);
$intel = Util::round($intel * $avgGen['lpi'] / 150 * (75+rand()%21)/100);
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
} else {
$leader = Util::round($leader * $avgGen['lpi'] / 150 * (90+rand()%11)/100);
$power = Util::round($power * $avgGen['lpi'] / 150 * (90+rand()%11)/100);
$intel = Util::round($intel * $avgGen['lpi'] / 150 * (90+rand()%11)/100);
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
}
$over1 = 0;
$over2 = 0;
@@ -400,8 +397,7 @@ function process_29(&$general) {
$npcid++;
//npccount
$query = "update game set npccount={$npcid}";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->npccount=$npcid;
//국가 기술력 그대로
$query = "select no from general where nation='{$general['nation']}'";
@@ -437,6 +433,7 @@ function process_29(&$general) {
function process_45(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -444,9 +441,7 @@ function process_45(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
$query = "select name,chemi from nation where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -549,6 +544,7 @@ function process_45(&$general) {
function process_46(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -556,9 +552,7 @@ function process_46(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
$query = "select * from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -637,6 +631,7 @@ function process_46(&$general) {
function process_47(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -644,9 +639,7 @@ function process_47(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
$nation = getNationStaticInfo($general['nation']);
@@ -702,6 +695,7 @@ function process_47(&$general) {
function process_54(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -710,9 +704,7 @@ function process_54(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month']);
$command = DecodeCommand($general['turn0']);
$who = $command[1];
@@ -768,6 +760,7 @@ function process_54(&$general) {
function process_55(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -776,9 +769,7 @@ function process_55(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select startyear,year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
$query = "select name from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -857,6 +848,7 @@ function process_55(&$general) {
function process_56(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -864,9 +856,7 @@ function process_56(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month']);
$nation = getNationStaticInfo($general['nation']);
@@ -910,6 +900,7 @@ function process_56(&$general) {
function process_57(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -918,9 +909,7 @@ function process_57(&$general) {
$history = [];
$date = substr($general['turntime'],11,5);
$query = "select year,month,killturn from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month', 'killturn']);
$query = "select nation,name from nation where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
+8 -12
View File
@@ -4,6 +4,7 @@ namespace sammo;
function process_32(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -12,9 +13,7 @@ function process_32(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$dist = searchDistance($general['city'], 5, false);
$command = DecodeCommand($general['turn0']);
@@ -129,6 +128,7 @@ function process_32(&$general) {
function process_33(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -138,9 +138,7 @@ function process_33(&$general) {
//탈취는 0까지 무제한
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$dist = searchDistance($general['city'], 5, false);
$command = DecodeCommand($general['turn0']);
@@ -281,6 +279,7 @@ function process_33(&$general) {
function process_34(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -289,9 +288,7 @@ function process_34(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$dist = searchDistance($general['city'], 5, false);
$command = DecodeCommand($general['turn0']);
@@ -407,6 +404,7 @@ function process_34(&$general) {
function process_35(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
@@ -415,9 +413,7 @@ function process_35(&$general) {
$date = substr($general['turntime'],11,5);
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','develcost']);
$dist = searchDistance($general['city'], 5, false);
$command = DecodeCommand($general['turn0']);
+3 -1
View File
@@ -66,7 +66,9 @@ function CoreTurnTable() {
function allButton() {
$npcmode = DB::db()->queryFirstField("select npcmode from game limit 1");
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$npcmode = $gameStor->npcmode;
if($npcmode == 1) {
$site = "a_npcList.php";
$call = "빙의일람";
+8 -12
View File
@@ -8,6 +8,7 @@ namespace sammo;
//1월마다 실행
function processSpring() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
//인구 증가
@@ -37,9 +38,7 @@ function processSpring() {
$query = "update nation set gold=gold*0.95 where gold>100000";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
pushWorldHistory(["<R>★</>{$admin['year']}{$admin['month']}월: <S>모두들 즐거운 게임 하고 계신가요? ^^ <Y>삼국일보</> 애독해 주시고, <M>훼접</>은 삼가주세요~</>"], $admin['year'], $admin['month']);
}
@@ -47,10 +46,9 @@ function processSpring() {
function processGoldIncome() {
$db = DB::db();
$connect=$db->get();
$gameStor = new KVStorage($db, 'game_env');
$query = "select year,month,gold_rate from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','gold_rate']);
$adminLog = [];
$query = "select name,nation,gold,rate_tmp,bill,type from nation";
@@ -369,11 +367,10 @@ function processFall() {
function processRiceIncome() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select year,month,rice_rate from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year','month','rice_rate']);
$adminLog = [];
$query = "select name,nation,rice,rate_tmp,bill,type from nation";
@@ -570,11 +567,10 @@ function tradeRate() {
function disaster() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select startyear,year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
//재난표시 초기화
$query = "update city set state=0 where state<=10";
+66 -72
View File
@@ -4,11 +4,13 @@ namespace sammo;
function processTournament() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select tournament,phase,tnmt_type,tnmt_auto,tnmt_time,now() as now,TIMESTAMPDIFF(SECOND,tnmt_time,now()) as offset from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['tournament', 'phase', 'tnmt_type', 'tnmt_auto', 'tnmt_time']);
$now = new \DateTime();
$admin['now'] = $now->format('Y-m-d H:i:s');
$admin['offset'] = $now->getTimestamp() - (new \DateTime($admin['tnmt_time']))->getTimestamp();
//수동일땐 무시
if($admin['tnmt_auto'] == 0) { return; }
@@ -83,8 +85,9 @@ function processTournament() {
if($betTerm > 3600) { $betTerm = 3600; }
//처리 초 더한 날짜
$dt = date("Y-m-d H:i:s", strtotime($admin['tnmt_time']) + $unit * $i + $betTerm);
$query = "update game set tournament='$tnmt',phase='$phase',tnmt_time='$dt'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament = $tnmt;
$gameStor->phase = $phase;
$gameStor->tnmt_time = $dt;
return;
}
@@ -95,28 +98,29 @@ function processTournament() {
//지정시간대 넘어가면 중단 20~24시
if($hr < 20) {
$dt = substr($dt, 0, 11)."20:00:00";
$query = "update game set tournament='$tnmt',phase='$phase',tnmt_time='$dt'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament = $tnmt;
$gameStor->phase = $phase;
$gameStor->tnmt_time = $dt;
return;
}
}
}
$second = $unit * $iter;
$query = "update game set tournament='$tnmt',phase='$phase',tnmt_time=DATE_ADD(tnmt_time, INTERVAL {$second} SECOND)";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament = $tnmt;
$gameStor->phase = $phase;
$gameStor->tnmt_time = (new \DateTimeImmutable($admin['tnmt_time']))->add(new \DateInterval("PT{$second}S"))->format('Y-m-d H:i:s');
}
}
function getTournamentTerm() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select tnmt_auto from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$tnmt_auto = $gameStor->tnmt_auto;
switch($admin['tnmt_auto']) {
switch($tnmt_auto) {
case 0: $str = ''; break;
case 1: $str = "경기당 12분"; break;
case 2: $str = "경기당 7분"; break;
@@ -131,14 +135,11 @@ function getTournamentTerm() {
function getTournamentTime() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select tournament,tnmt_time from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$tnmt = $admin['tournament'];
$dt = substr($admin['tnmt_time'], 11, 5);
list($tnmt, $tnmt_time) = $gameStor->getValuesAsArray(['tournament', 'tnmt_time']);
$dt = substr($tnmt_time, 11, 5);
switch($tnmt) {
case 1: $tnmt = "개막시간 {$dt}"; break;
case 2: $tnmt = "다음경기 {$dt}"; break;
@@ -170,11 +171,11 @@ function getTournament($tnmt) {
return $tnmt;
}
function printRow($k, $npc, $name, $abil, $game, $win, $draw, $lose, $gd, $gl, $prmt) {
function printRow($k, $npc, $name, $abil, $tgame, $win, $draw, $lose, $gd, $gl, $prmt) {
if($prmt > 0) { $name = "<font color=orange>".$name."</font>"; }
elseif($npc >= 2) { $name = "<font color=cyan>".$name."</font>"; }
elseif($npc == 1) { $name = "<font color=skyblue>".$name."</font>"; }
echo "<tr align=center><td id=bg2>$k</td><td>$name</td><td>$abil</td><td>$game</td><td>$win</td><td>$draw</td><td>$lose</td><td>$gd</td><td>$gl</td></tr>";
echo "<tr align=center><td id=bg2>$k</td><td>$name</td><td>$abil</td><td>$tgame</td><td>$win</td><td>$draw</td><td>$lose</td><td>$gd</td><td>$gl</td></tr>";
}
function printFighting($tournament, $phase) {
@@ -231,6 +232,7 @@ function printFighting($tournament, $phase) {
function startTournament($auto, $type) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
eraseTnmtFightLogAll();
@@ -246,12 +248,16 @@ function startTournament($auto, $type) {
default:$unit = 60; break;
}
$query = "select year,month from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month']);
$query = "update game set tnmt_auto='$auto',tnmt_time=DATE_ADD(now(), INTERVAL {$unit} MINUTE),tournament=1,tnmt_type='$type',phase=0,bet0=0,bet1=0,bet2=0,bet3=0,bet4=0,bet5=0,bet6=0,bet7=0,bet8=0,bet9=0,bet10=0,bet11=0,bet12=0,bet13=0,bet14=0,bet15=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tnmt_auto = $auto;
$gameStor->tnmt_time = (new \DateTimeImmutable())->add(new \DateInterval("PT{$unit}M"))->format('Y-m-d H:i:s');
$gameStor->tournament = 1;
$gameStor->tnmt_type = $type;
$gameStor->phase = 0;
for($i=0;$i<16;$i+=1){
$gameStor->setValue("bet{$i}", 0);
}
$query = "update general set tournament=0,bet0=0,bet1=0,bet2=0,bet3=0,bet4=0,bet5=0,bet6=0,bet7=0,bet8=0,bet9=0,bet10=0,bet11=0,bet12=0,bet13=0,bet14=0,bet15=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "truncate tournament";
@@ -269,14 +275,13 @@ function startTournament($auto, $type) {
function fillLowGenAll() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$general = [];
$grpCount = [];
$query = "select develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$develcost = $gameStor->develcost;
$general['no'] = 0;
$general['name'] = "무명장수";
@@ -293,7 +298,7 @@ function fillLowGenAll() {
}
//자동신청하고, 돈 있고, 아직 참가 안한 장수
$query = "select no,npc,name,leader,power,intel,explevel from general where tnmt='1' and tournament='0' and gold>='{$admin['develcost']}' order by rand() limit 0,64";
$query = "select no,npc,name,leader,power,intel,explevel from general where tnmt='1' and tournament='0' and gold>='{$develcost}' order by rand() limit 0,64";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$genCount = MYDB_num_rows($result);
@@ -308,7 +313,7 @@ function fillLowGenAll() {
if($genCount > 0) {
$genCount--;
$gen = MYDB_fetch_array($result);
$query = "update general set gold=gold-'{$admin['develcost']}',tournament='1' where no='{$gen['no']}'";
$query = "update general set gold=gold-'{$develcost}',tournament='1' where no='{$gen['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "insert into tournament (no, npc, name, ldr, pwr, itl, lvl, grp, grp_no) values ('{$gen['no']}', '{$gen['npc']}', '{$gen['name']}', '{$gen['leader']}', '{$gen['power']}', '{$gen['intel']}', '{$gen['explevel']}', '$i', '$grpCount[$i]')";
@@ -327,8 +332,8 @@ function fillLowGenAll() {
}
}
$query = "update game set tournament=2, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament = 2;
$gameStor->phase = 0;
}
//0 경기없음
@@ -376,6 +381,7 @@ function getTwo($tournament, $phase) {
function qualify($tnmt_type, $tnmt, $phase) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$cand = getTwo($tnmt, $phase);
@@ -385,11 +391,10 @@ function qualify($tnmt_type, $tnmt, $phase) {
fight($tnmt_type, $tnmt, $phase, $i, $cand[0], $cand[1], 0);
}
if($phase < 55) {
$query = "update game set phase=phase+1";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->phase+=1;
} else {
$query = "update game set tournament=3, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->phase=0;
$gameStor->tournament=3;
for($i=0; $i < 8; $i++) {
$query = "select grp,grp_no,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$i' order by gd desc, gl desc, seq limit 0,4";
@@ -416,6 +421,7 @@ function qualifyAll($tnmt_type, $tnmt, $phase) {
function selection($tnmt_type, $tnmt, $phase) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
//시드1 배정
@@ -444,18 +450,14 @@ function selection($tnmt_type, $tnmt, $phase) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
if($phase < 31) {
$query = "update game set phase=phase+1";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->phase+=1;
} else {
$query = "update game set tournament=4, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournamemt = 4;
$gameStor->phase=0;
}
}
function selectionAll($tnmt_type, $tnmt, $phase) {
$db = DB::db();
$connect=$db->get();
$start = $phase;
$end = $phase - ($phase % 8) + 8;
for($i=$start; $i < $end; $i++) {
@@ -465,6 +467,7 @@ function selectionAll($tnmt_type, $tnmt, $phase) {
function finallySingle($tnmt_type, $tnmt, $phase) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$cand = getTwo($tnmt, $phase);
@@ -474,11 +477,10 @@ function finallySingle($tnmt_type, $tnmt, $phase) {
fight($tnmt_type, $tnmt, $phase, $i, $cand[0], $cand[1], 0);
}
if($phase < 5) {
$query = "update game set phase=phase+1";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->phase+=1;
} else {
$query = "update game set tournament=5, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament=5;
$gameStor->phase=0;
for($i=10; $i < 18; $i++) {
$query = "select grp,grp_no,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$i' order by gd desc, gl desc, seq limit 0,2";
@@ -493,9 +495,6 @@ function finallySingle($tnmt_type, $tnmt, $phase) {
}
function finallyAll($tnmt_type, $tnmt, $phase) {
$db = DB::db();
$connect=$db->get();
$start = $phase;
$end = $phase - ($phase % 2) + 2;
for($i=$start; $i < $end; $i++) {
@@ -505,6 +504,7 @@ function finallyAll($tnmt_type, $tnmt, $phase) {
function final16set() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
//1조1-5조2, 2조1-6조2, 3조1-7조2, 4조1-8조2, 5조1-1조2, 6조1-2조2, 7조1-3조2, 8조1-4조2
@@ -523,12 +523,13 @@ function final16set() {
$query = "update tournament set prmt=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update game set tournament=6, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament=6;
$gameStor->phase=0;
}
function finalFight($tnmt_type, $tnmt, $phase, $type) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
switch($type) {
@@ -541,8 +542,7 @@ function finalFight($tnmt_type, $tnmt, $phase, $type) {
$grp = $phase + $offset;
fight($tnmt_type, $tnmt, $phase, $grp, 0, 1, 1);
$query = "update game set phase=phase+1";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->phase+=1;
$query = "select * from tournament where grp='$grp' and win>0 and (grp_no=0 or grp_no=1)";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -554,18 +554,17 @@ function finalFight($tnmt_type, $tnmt, $phase, $type) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
if($phase >= $turn) {
$query = "update game set tournament='$next', phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tournament = $next;
$gameStor->phase = 0;
}
}
function setGift($tnmt_type, $tnmt, $phase) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select year,month,develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['year', 'month', 'develcost']);
$genNo = [];
$genName = [];
@@ -656,8 +655,7 @@ function setGift($tnmt_type, $tnmt, $phase) {
$general2 = MYDB_fetch_array($result);
//자동진행 끝
$query = "update game set tnmt_auto=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tnmt_auto = 0;
//장수열전 기록
$query = "select no from general where no={$general['no']}";
@@ -693,9 +691,9 @@ function setGift($tnmt_type, $tnmt, $phase) {
$general = MYDB_fetch_array($result);
$no = ($general['grp'] - 20) * 2 + $general['grp_no'];
$query = "select bet{$no},bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 as bet from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['bet0','bet1','bet2','bet3','bet4','bet5','bet6','bet7','bet8','bet9','bet10','bet11','bet12','bet13','bet14','bet15']);
$admin['bet'] = array_sum($admin);
$bet = @round($admin['bet'] / $admin["bet{$no}"], 2);
//당첨칸에 베팅한 사람들만
@@ -715,14 +713,11 @@ function setGift($tnmt_type, $tnmt, $phase) {
function setRefund() {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$query = "select develcost from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
//16강자 명성 돈
$cost = $admin['develcost'];
$cost = $gameStor->develcost;
$query = "select no from tournament where grp<10";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$count = MYDB_num_rows($result);
@@ -733,8 +728,7 @@ function setRefund() {
}
//자동진행 끝
$query = "update game set tnmt_auto=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gameStor->tnmt_auto = 0;
//베팅금 환수
$query = "update general set gold=gold+bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
+77 -79
View File
@@ -10,6 +10,7 @@ $userID = Session::getUserID();
increaseRefresh("메인", 1);
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
if (!$userID) {
@@ -39,65 +40,20 @@ if ($me['newmsg'] == 1 || $me['newvote'] == 1) {
], 'owner=%i', $userID);
}
$query = "select develcost,online,conlimit,tournament,tnmt_type,turnterm,scenario,scenario_text,extended_general,fiction,npcmode,vote from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['develcost','online','conlimit','tournament','tnmt_type','turnterm','scenario','scenario_text','extended_general','fiction','npcmode','vote']);
$query = "select plock from plock limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$plock = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
}
$scenario = $admin['scenario_text'];
?>
<!DOCTYPE html>
<html>
<head>
<title><?=UniqueConst::$serverName?>: 메인</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="../e_lib/jquery-3.2.1.min.js"></script>
<script src="../e_lib/jquery.redirect.js"></script>
<script src="../d_shared/common_path.js"></script>
<script src="js/common.js"></script>
<script src="js/main.js"></script>
<script src="js/base_map.js"></script>
<script src="js/map.js"></script>
<script src="js/msg.js"></script>
<script>
$(function(){
reloadWorldMap({
hrefTemplate:'b_currentCity.php?citylist={0}'
});
setInterval(function(){
refreshMsg();
}, 10000);
});
</script>
<link href="css/normalize.css" rel="stylesheet">
<link href="../d_shared/common.css" rel="stylesheet">
<link href="css/common.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<link href="css/map.css" rel="stylesheet">
<link href="css/msg.css" rel="stylesheet">
</head>
<body class="img_back">
<div id="container">
<div><?=allButton()?></div>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 style=font-size:13px;word-break:break-all; id=bg0>
<tr height=50>
<td colspan=5 align=center><font size=4>삼국지 모의전투 HiDCHe (<font color=cyan><?=$scenario?></font>)</font></td>
</tr>
<?php
$valid = 0;
if ($admin['extended_general'] == 0) {
$extend = "표준";
@@ -118,25 +74,67 @@ if ($admin['npcmode'] == 0) {
$valid = 1;
}
$color = "cyan";
if ($valid == 1) {
echo "
<tr height=30>
<td width=398 colspan=2 align=center><font color={$color}>{$scenario}</font></td>
<td width=198 align=center><font color={$color}>NPC수 : {$extend}</font></td>
<td width=198 align=center><font color={$color}>NPC상성 : {$fiction}</font></td>
<td width=198 align=center><font color={$color}>NPC선택 : {$npcmode}</font></td>
</tr>";
}
?>
<!DOCTYPE html>
<html>
<head>
<title><?=UniqueConst::$serverName?>: 메인</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
<?=WebUtil::printJS('../e_lib/jquery.redirect.js')?>
<?=WebUtil::printJS('../d_shared/common_path.js')?>
<?=WebUtil::printJS('js/common.js')?>
<?=WebUtil::printJS('js/main.js')?>
<?=WebUtil::printJS('js/base_map.js')?>
<?=WebUtil::printJS('js/map.js')?>
<?=WebUtil::printJS('js/msg.js')?>
<script>
$(function(){
reloadWorldMap({
hrefTemplate:'b_currentCity.php?citylist={0}'
});
setInterval(function(){
refreshMsg();
}, 10000);
});
</script>
<?=WebUtil::printCSS('css/normalize.css')?>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<?=WebUtil::printCSS('css/main.css')?>
<?=WebUtil::printCSS('css/map.css')?>
<?=WebUtil::printCSS('css/msg.css')?>
</head>
<body class="img_back">
<div id="container">
<div><?=allButton()?></div>
<table class="tb_layout bg0" style="width:1000px;">
<tr height=50>
<td colspan=5 align=center><font size=4>삼국지 모의전투 HiDCHe (<font color=cyan><?=$scenario?></font>)</font></td>
</tr>
<?php if ($valid == 1): ?>
<tr height=30>
<td width=398 colspan=2 align=center><font color=<?=$color?>><?=$scenario?></font></td>
<td width=198 align=center><font color=<?=$color?>>NPC수 : <?=$extend?></font></td>
<td width=198 align=center><font color=<?=$color?>>NPC상성 : <?=$fiction?></font></td>
<td width=198 align=center><font color=<?=$color?>>NPC선택 : <?=$npcmode?></font></td>
</tr>
<?php endif; ?>
<tr height=30>
<td width=198 align=center><?=info(2)?></td>
<td width=198 align=center>전체 접속자 : <?=$admin['online']?> 명</td>
<td width=198 align=center>턴당 갱신횟수 : <?=$admin['conlimit']?>회</td>
<td width=398 colspan=2 align=center><?=info(3)?></td>
<td width=198><?=info(2)?></td>
<td width=198>전체 접속자 : <?=$admin['online']?> 명</td>
<td width=198>턴당 갱신횟수 : <?=$admin['conlimit']?>회</td>
<td width=398 colspan=2><?=info(3)?></td>
</tr>
<tr height=30>
<td align=center>
<td>
<?php
if ($plock['plock'] == 0) {
echo "<marquee scrollamount=2><font color=cyan>서버 가동중</font></marquee>";
@@ -182,7 +180,7 @@ echo "
<td colspan=2 align=center>
";
$vote = explode("|", $admin['vote']);
$vote = $admin['vote']?:[''];
$vote[0] = Tag2Code($vote[0]);
if ($vote[0] == "") {
echo "<font color=magenta>진행중 설문 없음</font>";
@@ -195,10 +193,10 @@ echo "
</td>
</tr>";
?>
<tr><td colspan=5>접속중인 국가: <?=onlinenation()?></td></tr>
<tr><td colspan=5><?php adminMsg(); ?></td></tr>
<tr><td colspan=5> 국가방침 <?php nationMsg(); ?></td></tr>
<tr><td colspan=5> 접속자 <?=onlinegen()?></td></tr>
<tr><td colspan=5 style="text-align:left;">접속중인 국가: <?=onlinenation()?></td></tr>
<tr><td colspan=5 style="text-align:left;"><?=adminMsg()?></td></tr>
<tr><td colspan=5 style="text-align:left;"> 국가방침 <?php nationMsg(); ?></td></tr>
<tr><td colspan=5 style="text-align:left;"> 접속자 <?=onlinegen()?></td></tr>
<?php
if ($session->userGrade >= 5) {
echo "
@@ -227,7 +225,7 @@ else if($session->userGrade == 4){
?>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 style=font-size:13px;word-break:break-all; id=bg0>
<table class="tb_layout bg0" style="width:1000px;">
<tr>
<td width=698 height=520 colspan=2>
<?=getMapHtml()?>
@@ -237,7 +235,7 @@ else if($session->userGrade == 4){
<form name=form2 action=preprocessing.php method=post target=commandlist>
<tr>
<td rowspan=3 width=50 valign=top><?=turnTable()?></td>
<td width=646><?php cityInfo(); ?></td>
<td width=646 style="border:none;text-align:center;"><?php cityInfo(); ?></td>
</tr>
<tr>
<td width=646 align=right>
@@ -259,31 +257,31 @@ else if($session->userGrade == 4){
</td>
</tr>
<tr>
<td width=646 align=right>
<td width=646 align=right style="border:none;">
<?php commandTable(); ?>
<input id="mainBtnSubmit" type=button style=background-color:<?=GameConst::$basecolor2?>;color:white;width:110px;font-size:13px; value='실 행' onclick='refreshing(this, 3,form2)'><input type=button style=background-color:<?=GameConst::$basecolor2?>;color:white;width:110px;font-size:13px; value='갱 신' onclick='refreshing(this, 0,0)'><input type=button style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160px;font-size:13px; value='로비로' onclick=location.replace('../')><br>
</td>
</tr>
</form>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 style=font-size:13px;word-break:break-all; id=bg0>
<table class="tb_layout bg0" style="width:1000px;">
<tr>
<td width=498><?php myNationInfo(); ?></td>
<td width=498><?php myInfo(); ?></td>
<td width=498 style="border:none;"><?php myNationInfo(); ?></td>
<td width=498 style="border:none;"><?php myInfo(); ?></td>
</tr>
<tr><td colspan=2><?=commandButton()?></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 style=font-size:13px;word-break:break-all; id=bg0>
<table class="tb_layout bg0">
<tr>
<td width=498 align=center id=bg1><b>장수 동향</b></td>
<td width=498 align=center id=bg1><b>개인 기록</b></td>
<td width=498 class='bg1 center'><b>장수 동향</b></td>
<td width=498 class='bg1 center'><b>개인 기록</b></td>
</tr>
<tr>
<td width=498 ><?=getGeneralPublicRecordRecent(15)?></td>
<td width=498 ><?=getGenLogRecent($me['no'], 15)?></td>
<td width=498 style="text-align:left;"><?=getGeneralPublicRecordRecent(15)?></td>
<td width=498 style="text-align:left;"><?=getGenLogRecent($me['no'], 15)?></td>
</tr>
<tr><td width=998 colspan=2 align=center id=bg1><b>중원 정세</b></td></tr>
<tr><td width=998 colspan=2><?=getWorldHistoryRecent(15)?></td></tr>
<tr><td width=998 colspan=2 class='bg1 center'><b>중원 정세</b></td></tr>
<tr><td width=998 colspan=2 style="text-align:left;"><?=getWorldHistoryRecent(15)?></td></tr>
</table>
<div class="message_input_form bg0">
<select id="mailbox_list" size="1">
+8 -8
View File
@@ -20,14 +20,14 @@ if($session->userGrade < 5){
<title>설치</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="../e_lib/jquery-3.2.1.min.js"></script>
<script src="../e_lib/bootstrap.bundle.min.js"></script>
<script src="../e_lib/jquery.validate.min.js"></script>
<script src="js/common.js"></script>
<script src="js/install.js"></script>
<link rel="stylesheet" href="css/normalize.css" >
<link rel="stylesheet" href="../e_lib/bootstrap.min.css">
<link rel="stylesheet" href="css/install.css" >
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
<?=WebUtil::printJS('../e_lib/bootstrap.bundle.min.js')?>
<?=WebUtil::printJS('../e_lib/jquery.validate.min.js')?>
<?=WebUtil::printJS('js/common.js')?>
<?=WebUtil::printJS('js/install.js')?>
<?=WebUtil::printCSS('css/normalize.css')?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?=WebUtil::printCSS('css/install.css')?>
</head>
<body>
<div class="container" style="min-width:720px;">
+8 -8
View File
@@ -20,14 +20,14 @@ if($session->userGrade == 5){
<title>설치</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="../e_lib/jquery-3.2.1.min.js"></script>
<script src="../e_lib/bootstrap.bundle.min.js"></script>
<script src="../e_lib/jquery.validate.min.js"></script>
<script src="js/common.js"></script>
<script src="js/install_db.js"></script>
<link rel="stylesheet" href="css/normalize.css" >
<link rel="stylesheet" href="../e_lib/bootstrap.min.css">
<link rel="stylesheet" href="css/install.css" >
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
<?=WebUtil::printJS('../e_lib/bootstrap.bundle.min.js')?>
<?=WebUtil::printJS('../e_lib/jquery.validate.min.js')?>
<?=WebUtil::printJS('js/common.js')?>
<?=WebUtil::printJS('js/install.js')?>
<?=WebUtil::printCSS('css/normalize.css')?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?=WebUtil::printCSS('css/install.css')?>
</head>
<body>
<div class="container" style="min-width:720px;">
+56 -6
View File
@@ -5,16 +5,66 @@ include 'lib.php';
include "func.php";
$db = DB::db();
$reserved = $db->queryFirstRow(
'SELECT * FROM reserved_open WHERE `date` <= %s LIMIT 1',
(new \DateTime())->format('Y-m-d H:i:s')
);
$gameStor = KVStorage::getStorage($db, 'game_env');
$reserved = $db->queryFirstRow('SELECT `date`, options FROM reserved_open ORDER BY `date` ASC LIMIT 1');
if(!$reserved){
Json::die([
'result'=>true,
'affected'=>0
'affected'=>0,
'status'=>'no_reserved'
]);
}
$reservedDate = new \DateTime($reserved['date']);
$now = new \DateTime();
$status = 'not_yet';
list($isUnited, $lastTurn) = $gameStor->getValuesAsArray(['isunited', 'turntime']);
if($isUnited === null || $lastTurn === null){
$isUnited = 2;
$lastTurn = '2000-01-01';
}
if($lastTurn !== null){
$lastTurn = new \DateTime($lastTurn);
}
if($lastTurn === null){
//이미 리셋된 상태임
}
else if(file_exists(__dir__.'/.htaccess')){
//일단 서버는 닫혀 있음
}
else if(
$isUnited == 2 &&
$now->getTimestamp() - $lastTurn->getTimestamp() > $reservedDate->getTimestamp() - $now->getTimestamp()
){
//정지 상태 & 중간 넘음
AppConf::getList()[DB::prefix()]->closeServer();
$status = 'closed';
}
else if(
$isUnited > 0 &&
$now->getTimestamp() - $lastTurn->getTimestamp() > ($reservedDate->getTimestamp() - $now->getTimestamp()) * 2
){
//천통 & 비정지 상태 & 2/3 넘음
AppConf::getList()[DB::prefix()]->closeServer();
$status = 'closed';
}
else if($reservedDate->getTimestamp() - $now->getTimestamp() <= 60*10){
//어쨌든 간에 10분 남았다면.
AppConf::getList()[DB::prefix()]->closeServer();
$status = 'closed';
}
if($now < $reservedDate){
Json::die([
'result'=>true,
'affected'=>0,
'status'=>$status
]);
}
+170
View File
@@ -0,0 +1,170 @@
<?php
namespace sammo;
include "lib.php";
include "func.php";
const VALID_SECOND = 90;
const PICK_MORE_SECOND = 10;
const KEEP_CNT = 3;
$refresh = Util::getReq('refresh', 'bool', false);
$keepResult = Util::getReq('keep', 'array_int', []);
$session = Session::requireLogin([])->setReadOnly();
$userID = Session::getUserID();
$oNow = new \DateTimeImmutable();
$now = $oNow->format('Y-m-d H:i:s');
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$oldGeneral = $db->queryFirstField('SELECT `no` FROM general WHERE `owner`=%i', $userID);
if($oldGeneral !== null){
Json::die([
'result'=>false,
'reason'=>'이미 장수가 생성되었습니다'
]);
}
list(
$maxgeneral,
$turnterm,
$npcmode
) = $gameStor->getValuesAsArray(['maxgeneral', 'turnterm', 'npcmode']);
if(!$npcmode){
Json::die([
'result'=>false,
'reason'=>'빙의 가능한 서버가 아닙니다'
]);
}
$token = $db->queryFirstRow('SELECT * FROM select_npc_token WHERE `owner`=%i AND `valid_until`>=%s', $userID, $now);
$pickResult = [];
if($token && $refresh){
$pickMoreFrom = (new \DateTime($token['pick_more_from']))->getTimestamp();
$nowT = $oNow->getTimestamp();
if($nowT >= $pickMoreFrom){
$oldPickResult = Json::decode($token['pick_result']);
foreach($keepResult as $keepId){
if(\key_exists($keepId, $oldPickResult) && $oldPickResult[$keepId]['keepCnt'] > 0){
$pickResult[$keepId] = $oldPickResult[$keepId];
$pickResult[$keepId]['keepCnt']-=1;
}
}
if(count($pickResult) == count($oldPickResult)){
$refresh = false;
}
}
else{
Json::die([
'result'=>false,
'reason'=>'아직 다시 뽑을 수 없습니다',
]);
}
}
if($token && !$refresh){
$pickMoreFrom = (new \DateTime($token['pick_more_from']))->getTimestamp();
$nowT = $oNow->getTimestamp();
Json::die([
'result'=>true,
'pick'=>Json::decode($token['pick_result']),
'pickMoreFrom'=>$token['pick_more_from'],
'pickMoreSeconds'=>$pickMoreFrom-$nowT,
'validUntil'=>$token['valid_until']
]);
}
$candidates = [];
$weight = [];
foreach($db->query('SELECT `no`, `name`, leader, power, intel, imgsvr, picture, special, special2 FROM general WHERE npc=2') as $general){
$general['special'] = \sammo\SpecialityConst::DOMESTIC[$general['special']][0]??'-';
$general['special2'] = \sammo\SpecialityConst::WAR[$general['special2']][0]??'-';
$candidates[$general['no']] = $general + ['keepCnt'=>KEEP_CNT];
$allStat = $general['leader'] + $general['power'] + $general['intel'];
$weight[$general['no']] = pow($allStat, 1.5);
}
foreach($db->queryFirstColumn('SELECT pick_result FROM select_npc_token WHERE `owner`!=%i AND valid_until >=%s', $userID, $now) as $reserved){
$reserved = Json::decode($reserved);
foreach(array_keys($reserved) as $reservedNPC){
if(key_exists($reservedNPC, $weight)){
unset($candidates[$reservedNPC]);
unset($weight[$reservedNPC]);
}
}
}
$pickLimit = min(count($candidates), 5);
while(count($pickResult) < $pickLimit){
$generalID = Util::choiceRandomUsingWeight($weight);
if(!key_exists($generalID, $pickResult)){
$pickResult[$generalID] = $candidates[$generalID];
}
}
$newNonce = mt_rand(0, 0xfffffff);
$validSecond = max(VALID_SECOND, $turnterm*40);
$pickMoreSecond = max(PICK_MORE_SECOND, Util::round(pow($turnterm, 0.672)*8));
$validUntil = $oNow->add(new \DateInterval(sprintf('PT%dS', $validSecond)));
$pickMoreFrom = $oNow->add(new \DateInterval(sprintf('PT%dS', $pickMoreSecond)));
$db->delete('select_npc_token', 'valid_until < %s', $now);
$inserted = 0;
if($token){
$db->update('select_npc_token', [
'valid_until'=>$validUntil->format('Y-m-d H:i:s'),
'pick_more_from'=>$pickMoreFrom->format('Y-m-d H:i:s'),
'pick_result'=>Json::encode($pickResult),
'nonce'=>$newNonce
], 'owner = %i AND nonce = %i', $userID, $token['nonce']);
if($db->affectedRows()){
$inserted = -1;
}
}
else{
$db->insertIgnore('select_npc_token', [
'owner'=>$userID,
'valid_until'=>$validUntil->format('Y-m-d H:i:s'),
'pick_more_from'=>'2000-01-01 01:00:00',
'pick_result'=>Json::encode($pickResult),
'nonce'=>$newNonce
]);
if($db->affectedRows()){
$inserted = 1;
}
}
if($inserted === 0){
Json::die([
'result'=>false,
'reason'=>'중복 요청, 다시 랜덤 토큰을 확인해주세요'
]);
}
Json::die([
'result'=>true,
'pick'=>$pickResult,
'pickMoreFrom'=>($inserted===-1)?$pickMoreFrom->format('Y-m-d H:i:s'):'2000-01-01 01:00:00',
'pickMoreSeconds'=>($inserted===-1)?$pickMoreSecond:0,
'validUntil'=>$validUntil->format('Y-m-d H:i:s')
]);
+14 -4
View File
@@ -51,10 +51,19 @@ $reserve_open = Util::getReq('reserve_open');
if($reserve_open){
$reserve_open = new \DateTime($reserve_open);
$db = DB::db();
if (!$db->queryFirstField("SHOW TABLES LIKE 'storage'")) {
$clearResult = ResetHelper::clearDB();
if(!$clearResult['result']){
Json::die($clearResult);
}
}
$clearResult = ResetHelper::clearDB();
if(!$clearResult['result']){
Json::die($clearResult);
if (!$db->queryFirstField("SHOW TABLES LIKE 'reserved_open'")) {
Json::die([
'result'=>false,
'reason'=>'예약 테이블이 없음!'
]);
}
$scenarioObj = new Scenario($scenario, true);
@@ -69,7 +78,8 @@ if($reserve_open){
'extend'=>$extend,
'npcmode'=>$npcmode,
'show_img_level'=>$show_img_level,
'tournament_trig'=>$tournament_trig
'tournament_trig'=>$tournament_trig,
'gameConf'=>$scenarioObj->getGameConf()
]),
'date'=>$reserve_open->format('Y-m-d H:i:s')
]);
+113
View File
@@ -0,0 +1,113 @@
<?php
namespace sammo;
include "lib.php";
include "func.php";
$pick = Util::getReq('pick', 'int');
if(!$pick){
Json::die([
'result'=>false,
'reason'=>'장수를 선택하지 않았습니다'
]);
}
$session = Session::requireLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$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){
Json::die([
'result'=>false,
'reason'=>'멤버 정보를 가져오지 못했습니다.'
]);
}
$pickResult = $db->queryFirstField('SELECT pick_result FROM select_npc_token WHERE `owner`=%i AND `valid_until`>=%s', $userID, $now);
if(!$pickResult){
Json::die([
'result'=>false,
'reason'=>'유효한 장수 목록이 없습니다.'
]);
}
$pickResult = Json::decode($pickResult);
if(!key_exists($pick, $pickResult)){
Json::die([
'result'=>false,
'reason'=>'선택한 장수가 목록에 없습니다.'
]);
}
$pickedNPC = $pickResult[$pick];
$gencount = $db->queryFirstField('SELECT count(`no`) FROM general WHERE npc<2');
list(
$year,
$month,
$maxgeneral,
$npcmode
) = $gameStor->getValuesAsArray(['year', 'month', 'maxgeneral', 'npcmode']);
if(!$npcmode){
Json::die([
'result'=>false,
'reason'=>'빙의 가능한 서버가 아닙니다'
]);
}
if ($gencount >= $maxgeneral) {
Json::die([
'result'=>false,
'reason'=>'더 이상 등록 할 수 없습니다.'
]);
}
//등록 시작
$db->update('general', [
'name2'=>$userNick,
'npc'=>1,
'killturn'=>6,
'mode'=>2,
'owner'=>$userID,
], 'owner <= 0 AND npc = 2 AND no = %i', $pick);
if(!$db->affectedRows()){
Json::die([
'result'=>false,
'reason'=>'장수 등록에 실패했습니다.'
]);
}
$db->delete('select_npc_token', 'owner=%i or valid_until < %s', $userID, $now);
pushGeneralHistory($pickedNPC, "<C>●</>{$year}{$month}월:<Y>{$pickedNPC['name']}</>의 육체에 <Y>{$userNick}</>(이)가 빙의되다.");
//pushGenLog($me, $mylog);
pushGeneralPublicRecord(["<C>●</>{$month}월:<Y>{$pickedNPC['name']}</>의 육체에 <Y>{$userNick}</>(이)가 <S>빙의</>됩니다!"], $year, $month);
pushAdminLog(["가입 : {$userID} // {$session->userName} // {$pick} // ".getenv("REMOTE_ADDR")]);
$rootDB->insert('member_log', [
'member_no' => $userID,
'date'=>date('Y-m-d H:i:s'),
'action_type'=>'make_general',
'action'=>Json::encode([
'server'=>DB::prefix(),
'type'=>'npc',
'generalID'=>$pickedNPC['no'],
'generalName'=>$pickedNPC['name']
])
]);
Json::die([
'result'=>true,
'reason'=>'success'
]);
+17 -7
View File
@@ -17,6 +17,7 @@ if(!class_exists('\\sammo\\DB')){
}
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
if(file_exists(__dir__.'/.htaccess')){
$reserved = $db->queryFirstRow(
@@ -37,7 +38,8 @@ if(file_exists(__dir__.'/.htaccess')){
'turnterm'=>$options['turnterm'],
'fictionMode'=>($options['fiction']?'가상':'사실'),
'npcMode'=>($options['npcmode']?'가능':'불가'),
'openDatetime'=>$reserved['date']
'openDatetime'=>$reserved['date'],
'gameConf'=>$options['gameConf']
],
'game'=>null,
'me'=>null
@@ -46,16 +48,24 @@ if(file_exists(__dir__.'/.htaccess')){
//TODO: 천통시에도 예약 오픈 알림이 필요..?
$game = $db->queryFirstRow('SELECT isUnited, npcMode, year, month, scenario, scenario_text, maxgeneral as maxUserCnt, turnTerm from game where `no`=1');
$admin = $gameStor->getValues(['isunited', 'npcmode', 'year', 'month', 'scenario', 'scenario_text', 'maxgeneral', 'turnterm']);
$admin['maxUserCnt'] = $admin['maxgeneral'];
$admin['npcMode'] = $admin['npcmode'];
$admin['turnTerm'] = $admin['turnterm'];
$admin['isUnited'] = $admin['isunited'];
unset($admin['npcmode']);
unset($admin['maxgeneral']);
unset($admin['turnterm']);
unset($admin['isunited']);
$nationCnt = $db->queryFirstField('SELECT count(`nation`) from nation where `level` > 0');
$genCnt = $db->queryFirstField('SELECT count(`no`) from general where `npc` < 2');
$npcCnt = $db->queryFirstField('SELECT count(`no`) from general where `npc` >= 2');
$game['scenario'] = $game['scenario_text'];
$game['userCnt'] = $genCnt;
$game['npcCnt'] = $npcCnt;
$game['nationCnt'] = $nationCnt;
$admin['scenario'] = $admin['scenario_text'];
$admin['userCnt'] = $genCnt;
$admin['npcCnt'] = $npcCnt;
$admin['nationCnt'] = $nationCnt;
$me = [];
@@ -72,6 +82,6 @@ if($general){
//TODO: 이를 표현하는 방법은 '이전 버전'의 serverListPost.php를 참고할 것.
Json::die([
'game'=>$game,
'game'=>$admin,
'me'=>$me?:null
]);
+20 -15
View File
@@ -23,6 +23,7 @@ if (!$member) {
}
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
?>
@@ -31,23 +32,27 @@ $connect=$db->get();
<head>
<title><?=UniqueConst::$serverName?>: 장수생성</title>
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
<link href="../d_shared/common.css" rel="stylesheet">
<link rel='stylesheet' href="css/common.css">
<script type="text/javascript" src="../e_lib/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="js/join.js"></script>
<script>
var defaultStatTotal = <?=GameConst::$defaultStatTotal?>;
var defaultStatMin = <?=GameConst::$defaultStatMin?>;
var defaultStatMax = <?=GameConst::$defaultStatMax?>;
</script>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
<?=WebUtil::printJS('../d_shared/common_path.js')?>
<?=WebUtil::printJS('js/join.js')?>
</head>
<body>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td> <br><?=backButton()?></td></tr>
</table>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td align=center><?=info(0)?></td></tr>
</table>
<?php
$query = "select show_img_level,maxgeneral from game limit 1";
$result = MYDB_query($query, $connect) or Error("join ".MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['show_img_level','maxgeneral']);
$query = "select no from general where npc<2";
$result = MYDB_query($query, $connect) or Error("join ".MYDB_error($connect), "");
@@ -60,7 +65,7 @@ if ($gencount >= $admin['maxgeneral']) {
}
?>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td align=center colspan=2 id=bg1>임관 권유 메세지</td></tr>
<?php
$query = "select name,scoutmsg,color from nation";
@@ -81,7 +86,7 @@ for ($i=0; $i < $nationcount; $i++) {
</table>
<form name=form1 method=post action=join_post.php>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr>
<td colspan=3 align=center id=bg1>장수 생성</td>
</tr>
@@ -98,7 +103,7 @@ if ($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture']
<tr>
<td align=right id=bg1>전콘 사용 여부</td>
<td width=64 height=64>
<img width='64' height='64' src='{$imageTemp}/{$member['picture']}' border=0>
<img width='64' height='64' src='{$imageTemp}/{$member['picture']}' border='0'>
</td>
<td>
<input type=checkbox name=pic value=1 checked>사용
@@ -156,13 +161,13 @@ if ($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture']
</tr>
<tr>
<td align=center colspan=3>
<font color=orange>모든 능력치는 ( 10 <= 능력치 <= 75 ) 사이로 잡으셔야 합니다.<br>
<font color=orange>모든 능력치는 ( 10 <= 능력치 <= <?=GameConst::$defaultStatMax?> ) 사이로 잡으셔야 합니다.<br>
외의 능력치는 가입되지 않습니다.</font>
</td>
</tr>
<tr>
<td align=center colspan=3>
능력치의 총합은 150입니다. 가입후 0~10 능력치 보너스를 받게 됩니다.<br>
능력치의 총합은 <?=GameConst::$defaultStatTotal?>입니다. 가입후 0~10의 능력치 보너스를 받게 됩니다.<br>
임의의 도시에서 재야로 시작하며 건국과 임관은 게임 내에서 실행합니다.
</td>
</tr>
@@ -172,7 +177,7 @@ if ($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture']
</tr>
</table>
</form>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr>
<tr><td><?=banner()?> </td></tr>
</table>
+18 -17
View File
@@ -23,12 +23,12 @@ $v
'leader',
'power',
'intel'
], 10)
], GameConst::$defaultStatMin)
->rule('max', [
'leader',
'power',
'intel'
], 75)
], GameConst::$defaultStatMax)
->rule('min', 'character', 0)
->rule('max', 'character', 11);
@@ -66,9 +66,10 @@ if (!$member) {
}
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$gameStor->cacheValues(['year','month','maxgeneral','scenario','show_img_level','turnterm','genius','npcmode']);
########## 동일 정보 존재여부 확인. ##########
$admin = $db->queryFirstRow('SELECT year,month,maxgeneral,scenario,show_img_level,turnterm,genius,npcmode from game limit 1');
$gencount = $db->queryFirstField('SELECT count(`no`) FROM general WHERE npc<2');
$oldGeneral = $db->queryFirstField('SELECT `no` FROM general WHERE `owner`=%i', $userID);
$oldName = $db->queryFirstField('SELECT `no` FROM general WHERE `name`=%s', $name);
@@ -87,7 +88,7 @@ if ($oldName) {
</script>");
exit;
}
if ($admin['maxgeneral'] <= $gencount) {
if ($gameStor->maxgeneral <= $gencount) {
echo("<script>
window.alert('더이상 등록할 수 없습니다!')
history.go(-1)
@@ -108,9 +109,9 @@ if (mb_strlen($name) > 6) {
</script>");
exit;
}
if ($leader + $power + $intel > 150) {
if ($leader + $power + $intel > GameConst::$defaultStatTotal) {
echo("<script>
window.alert('능력치가 150을 넘어섰습니다. 다시 가입해주세요!')
window.alert('능력치가 ".GameConst::$defaultStatTotal."을 넘어섰습니다. 다시 가입해주세요!')
history.go(-1)
</script>");
exit;
@@ -118,10 +119,8 @@ if ($leader + $power + $intel > 150) {
$genius = Util::randBool(0.01);
// 현재 1%
if ($genius && $admin['genius'] > 0) {
$db->update('game', [
'genius'=>$db->sqleval('genius-1')
], true);
if ($genius && $gameStor->genius > 0) {
$gameStor->genius = $gameStor->genius-1;
} else {
$genius = false;
}
@@ -166,6 +165,8 @@ if ($genius) {
$specage = Util::round((80 - $age)/12) + $age;
$special = 0;
$admin = $gameStor->getValues(['scenario', 'turnterm', 'show_img_level']);
if ($admin['scenario'] > 0) {
$specage2 = $age + 3;
$specage = $age + 3;
@@ -239,14 +240,14 @@ $log = [];
$mylog = [];
if ($genius) {
$log[0] = "<C>●</>{$admin['month']}월:<G><b>{$cityname}</b></>에서 <Y>{$name}</>(이)라는 기재가 천하에 이름을 알립니다.";
$log[1] = "<C>●</>{$admin['month']}월:<C>".getGenSpecial($special2)."</> 특기를 가진 <C>천재</>의 등장으로 온 천하가 떠들썩합니다.";
$log[0] = "<C>●</>{$gameStor->month}월:<G><b>{$cityname}</b></>에서 <Y>{$name}</>(이)라는 기재가 천하에 이름을 알립니다.";
$log[1] = "<C>●</>{$gameStor->month}월:<C>".getGenSpecial($special2)."</> 특기를 가진 <C>천재</>의 등장으로 온 천하가 떠들썩합니다.";
pushWorldHistory(["<C>●</>{$admin['year']}{$admin['month']}월:<L><b>【천재】</b></><G><b>{$cityname}</b></>에 천재가 등장했습니다."], $admin['year'], $admin['month']);
pushWorldHistory(["<C>●</>{$gameStor->year}{$gameStor->month}월:<L><b>【천재】</b></><G><b>{$cityname}</b></>에 천재가 등장했습니다."], $gameStor->year, $gameStor->month);
} else {
$log[0] = "<C>●</>{$admin['month']}월:<G><b>{$cityname}</b></>에서 <Y>{$name}</>(이)라는 호걸이 천하에 이름을 알립니다.";
$log[0] = "<C>●</>{$gameStor->month}월:<G><b>{$cityname}</b></>에서 <Y>{$name}</>(이)라는 호걸이 천하에 이름을 알립니다.";
}
pushGeneralHistory($me, "<C>●</>{$admin['year']}{$admin['month']}월:<Y>{$name}</>, <G>{$cityname}</>에서 큰 뜻을 품다.");
pushGeneralHistory($me, "<C>●</>{$gameStor->year}{$gameStor->month}월:<Y>{$name}</>, <G>{$cityname}</>에서 큰 뜻을 품다.");
$mylog[] = "<C>●</>삼국지 모의전투 PHP의 세계에 오신 것을 환영합니다 ^o^";
$mylog[] = "<C>●</>처음 하시는 경우에는 <D>도움말</>을 참고하시고,";
$mylog[] = "<C>●</>문의사항이 있으시면 게시판에 글을 남겨주시면 되겠네요~";
@@ -255,10 +256,10 @@ $mylog[] = "<C>●</>통솔 <C>$pleader</> 무력 <C>$ppower</> 지력 <C>$pinte
$mylog[] = "<C>●</>연령은 <C>$age</>세로 시작합니다.";
if ($genius) {
$mylog[] = "<C>●</>축하합니다! 천재로 태어나 처음부터 <C>".getGenSpecial($special2)."</> 특기를 가지게 됩니다!";
pushGeneralHistory($me, "<C>●</>{$admin['year']}{$admin['month']}월:<C>".getGenSpecial($special2)."</> 특기를 가진 천재로 탄생.");
pushGeneralHistory($me, "<C>●</>{$gameStor->year}{$gameStor->month}월:<C>".getGenSpecial($special2)."</> 특기를 가진 천재로 탄생.");
}
pushGenLog($me, $mylog);
pushGeneralPublicRecord($log, $admin['year'], $admin['month']);
pushGeneralPublicRecord($log, $gameStor->year, $gameStor->month);
pushAdminLog(["가입 : {$userID} // {$name} // {$generalID}".getenv("REMOTE_ADDR")]);
+10
View File
@@ -118,4 +118,14 @@ var TemplateEngine = function (html, options) {
try { result = new Function('obj', code).apply(options, [options]); }
catch (err) { console.error("'" + err.message + "'", " in \n\nCode:\n", code, "\n"); }
return result;
}
function getIconPath(imgsvr, picture){
// ../d_shared/common_path.js 필요
if(!imgsvr){
return pathConfig.sharedIcon+'/'+picture;
}
else{
return pathConfig.root+'/d_pic/'+picture;
}
}
+59 -46
View File
@@ -1,7 +1,5 @@
jQuery(function($){
var totalAbil = 150;
var $leader = $('#leader');
var $power = $('#power');
var $intel = $('#intel');
@@ -12,16 +10,16 @@ jQuery(function($){
var intel = Math.random()*65 + 10;
var rate = leader + power + intel;
leader = Math.floor(leader / rate * totalAbil);
power = Math.floor(power / rate * totalAbil);
intel = Math.floor(intel / rate * totalAbil);
leader = Math.floor(leader / rate * defaultStatTotal);
power = Math.floor(power / rate * defaultStatTotal);
intel = Math.floor(intel / rate * defaultStatTotal);
while(leader+power+intel < totalAbil){
while(leader+power+intel < defaultStatTotal){
leader+=1;
}
if(leader > 75 || power > 75 || intel > 75 || leader < 10 || power < 10 || intel < 10){
if(leader > defaultStatMax || power > defaultStatMax || intel > defaultStatMax || leader < defaultStatMin || power < defaultStatMin || intel < defaultStatMin){
return abilityRand();
}
@@ -37,27 +35,32 @@ jQuery(function($){
var intel = Math.random() * 1;
var rate = leader + power + intel;
leader = Math.floor(leader / rate * totalAbil);
power = Math.floor(power / rate * totalAbil);
intel = Math.floor(intel / rate * totalAbil);
leader = Math.floor(leader / rate * defaultStatTotal);
power = Math.floor(power / rate * defaultStatTotal);
intel = Math.floor(intel / rate * defaultStatTotal);
while(leader+power+intel < totalAbil){
while(leader+power+intel < defaultStatTotal){
power+=1;
}
if(intel < 10){
leader -= 10 - intel;
intel = 10;
if(intel < defaultStatMin){
leader -= defaultStatMin - intel;
intel = defaultStatMin;
}
if(leader > 75){
power += leader - 75;
leader = 75;
if(leader > defaultStatMax){
power += leader - defaultStatMax;
leader = defaultStatMax;
}
if(power > 75){
leader += power - 75;
power = 75;
if(power > defaultStatMax){
leader += power - defaultStatMax;
power = defaultStatMax;
}
if(leader > defaultStatMax){
intel += leader - defaultStatMax;
leader = defaultStatMax;
}
$leader.val(leader);
@@ -71,27 +74,32 @@ jQuery(function($){
var intel = Math.random() * 6;
var rate = leader + power + intel;
leader = Math.floor(leader / rate * totalAbil);
power = Math.floor(power / rate * totalAbil);
intel = Math.floor(intel / rate * totalAbil);
leader = Math.floor(leader / rate * defaultStatTotal);
power = Math.floor(power / rate * defaultStatTotal);
intel = Math.floor(intel / rate * defaultStatTotal);
while(leader+power+intel < totalAbil){
while(leader+power+intel < defaultStatTotal){
intel+=1;
}
if(power < 10){
leader -= 10 - power;
power = 10;
if(power < defaultStatMin){
leader -= defaultStatMin - power;
power = defaultStatMin;
}
if(leader > 75){
intel += leader - 75;
leader = 75;
if(leader > defaultStatMax){
intel += leader - defaultStatMax;
leader = defaultStatMax;
}
if(intel > 75){
leader += intel - 75;
intel = 75;
if(intel > defaultStatMax){
leader += intel - defaultStatMax;
intel = defaultStatMax;
}
if(leader > defaultStatMax){
power += leader - defaultStatMax;
leader = defaultStatMax;
}
$leader.val(leader);
@@ -105,27 +113,32 @@ jQuery(function($){
var intel = Math.random() * 6;
var rate = leader + power + intel;
leader = Math.floor(leader / rate * totalAbil);
power = Math.floor(power / rate * totalAbil);
intel = Math.floor(intel / rate * totalAbil);
leader = Math.floor(leader / rate * defaultStatTotal);
power = Math.floor(power / rate * defaultStatTotal);
intel = Math.floor(intel / rate * defaultStatTotal);
while(leader+power+intel < totalAbil){
while(leader+power+intel < defaultStatTotal){
intel+=1;
}
if(leader < 10){
power -= 10 - leader;
leader = 10;
if(leader < defaultStatMin){
power -= defaultStatMin - leader;
leader = defaultStatMin;
}
if(power > 75){
intel += power - 75;
power = 75;
if(power > defaultStatMax){
intel += power - defaultStatMax;
power = defaultStatMax;
}
if(intel > 75){
power += intel - 75;
intel = 75;
if(intel > defaultStatMax){
power += intel - defaultStatMax;
intel = defaultStatMax;
}
if(power > defaultStatMax){
leader += power - defaultStatMax;
power = defaultStatMax;
}
$leader.val(leader);
+134
View File
@@ -0,0 +1,134 @@
var templateGeneralCard =
'<div class="general_card">\
<h4 class="bg1 with_border"><%name%></h4>\
<h4><img src="<%iconPath%>" height=64 width=64></h4>\
<p><%leader%> / <%power%> / <%intel%><br>\
<%special%> / <%special2%></p>\
<button type="subject" class="with_skin with_border select_btn" value="<%no%>" name="pick">빙의하기</button>\
<label><input <%keepCnt?"":disabled="disabled"%> type="checkbox" value="<%no%>" name="keep[]" class="keep_select">보관(<%keepCnt%>)</label>\
</div>';
function pickGeneral(){
$btn = $(this);
$.post({
url:'j_select_npc.php',
dataType:'json',
data:{
pick:$btn.val()
}
}).then(function(result){
if(!result.result){
alert(result.reason);
location.refresh();
}
alert('빙의에 성공했습니다.');
location.href = './';
});
return false;
}
function updateOutdateTimer(){
var $validUntilText = $('#valid_until_text');
var now = Date.now();
var validUntil = $validUntilText.data('until');
if(validUntil <= 0){
return;
}
else if(validUntil < now){
$validUntilText.data('until',0);
$('#valid_until').hide();
$('#outdate_token').show();
return;
}
else if(validUntil - now <= 30000){
$validUntilText.css('color', "rgb(255, {0}, {0})".format(255*(validUntil - now)/30000));
}
setTimeout(updateOutdateTimer, 1000);
}
function updatePickMoreTimer(){
var $btn = $('#btn_pick_more');
var now = Date.now();
var remain = ($btn.data('available') - now) / 1000;
if(remain <= 0){
$btn.prop('disabled', false)
$btn.html('다른 장수 보기');
return;
}
$btn.html('다른 장수 보기({0}초)'.format(Math.ceil(remain)));
setTimeout(updatePickMoreTimer, 250);
}
function printGenerals(value){
$('.card_holder').empty();
$('#valid_until').show();
$('#valid_until_text').html(value.validUntil).data('until', (new Date(value.validUntil)).getTime()).css('color','white');
$('#outdate_token').hide();
var time = Date.now() + value.pickMoreSeconds*1000;
$('#btn_pick_more').data('available', time).prop('disabled',true);
var pick = $.map(value.pick, function(value, key) {
return value;
});
pick.sort(function(lhs, rhs){
var lsum = lhs.leader+lhs.power+lhs.intel;
var rsum = rhs.leader+rhs.power+rhs.intel;
return lsum - rsum;
});
$.each(pick, function(idx, cardData){
cardData.iconPath = getIconPath(cardData.imgsvr, cardData.picture);
var $card = $(TemplateEngine(templateGeneralCard, cardData));
console.log($card);
$('.card_holder').append($card);
$card.find('.select_btn').click(pickGeneral);
});
updatePickMoreTimer();
updateOutdateTimer();
}
$(function($){
$.post('j_get_select_npc_token.php').then(function(value){
if(!value.result){
alert(value.reason);
return;
}
console.log(value);
printGenerals(value);
});
$('#btn_pick_more').click(function(){
var generals = $.map($('.keep_select:checked'), function(value){
return $(value).val();
});
console.log(generals);
$.post({
url:'j_get_select_npc_token.php',
dataType:'json',
data:{
refresh:true,
keep:generals
}
}).then(function(result){
if(!result.result){
alert(result.reason);
location.refresh();
}
console.log(result);
printGenerals(result);
});
});
});
+8 -6
View File
@@ -7,11 +7,9 @@ $loader->addPsr4('sammo\\', __DIR__.'/sammo', true);
$loader->addClassMap((function () {
$d_settingMap = [];
foreach (glob(__dir__.'/d_setting/*.php') as $filepath) {
foreach (glob(__dir__.'/d_setting/*.orig.php') as $filepath) {
$filepath = str_replace('.orig.php', '.php', $filepath);
$filename = basename($filepath);
if (Util::ends_with($filename, '.orig.php')) {
continue;
}
$classname = explode('.', $filename)[0];
$d_settingMap['sammo\\'.$classname] = $filepath;
};
@@ -64,9 +62,10 @@ function extractMissingPostToGlobals()
{
$result = [];
if (isset($_POST) && count($_POST) > 0) {
foreach($_POST as $key=>$val){
if(is_numeric($key)){
continue;
}
if(isset($GLOBALS[$key])){
continue;
}
@@ -77,6 +76,9 @@ function extractMissingPostToGlobals()
if (isset($_GET) && count($_GET) > 0) {
foreach($_GET as $key=>$val){
if(is_numeric($key)){
continue;
}
if(isset($GLOBALS[$key])){
continue;
}
+22 -22
View File
@@ -6,18 +6,17 @@ function processWar($general, $city) {
'@phan-var array<string,int|string|null> $general';
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$templates = new \League\Plates\Engine('templates');
$date = substr($general['turntime'],11,5);
$query = "select * from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$game = MYDB_fetch_array($result);
$admin = $gameStor->getAll();
$year = $game['year'];
$month = $game['month'];
$year = $admin['year'];
$month = $admin['month'];
$log = [];
$batlog = [];
@@ -155,7 +154,7 @@ function processWar($general, $city) {
$city = addConflict($city, $general['nation'], 1);//NOTE: 이 경우 두 국가가 분쟁 중인 경우에는 병량패퇴의 이득이 없다.
ConquerCity($game, $general, $city, $nation, $destnation);
ConquerCity($admin, $general, $city, $nation, $destnation);
break;
// 장수가 없어서 도시 공격
} elseif($opposecount == 0) {
@@ -190,13 +189,13 @@ function processWar($general, $city) {
if($myCrew <= 0) { $myCrew = rand() % 90 + 10; }
//훈련 사기따라
$myCrew = getCrew($myCrew, $game['city_rate']+$oppAtmosBonus, CharTrain($general['train']+$genTrain+$genTrainBonus, $general['personal']));
$cityCrew = getCrew($cityCrew, CharAtmos($general['atmos']+$genAtmos+$genAtmosBonus, $general['personal']), $game['city_rate']+$oppTrainBonus);
$myCrew = getCrew($myCrew, $admin['city_rate']+$oppAtmosBonus, CharTrain($general['train']+$genTrain+$genTrainBonus, $general['personal']));
$cityCrew = getCrew($cityCrew, CharAtmos($general['atmos']+$genAtmos+$genAtmosBonus, $general['personal']), $admin['city_rate']+$oppTrainBonus);
//숙련도 따라
$genDexAtt = getGenDex($general, $general['crewtype']);
$genDexDef = getGenDex($general, 40);
$cityCrew *= getDexLog($genDexAtt, ($game['city_rate']-60)*7200);
$myCrew *= getDexLog(($game['city_rate']-60)*7200, $genDexDef);
$cityCrew *= getDexLog($genDexAtt, ($admin['city_rate']-60)*7200);
$myCrew *= getDexLog(($admin['city_rate']-60)*7200, $genDexDef);
$avoid = 1;
// 병종간 특성
@@ -433,7 +432,7 @@ function processWar($general, $city) {
// 도시쌀 소모 계산
$opexp = Util::round($opexp / 50 * 0.8);
$rice = Util::round($opexp * 5 * getCrewtypeRice(0, 0) * ($game['city_rate']/100 - 0.2));
$rice = Util::round($opexp * 5 * getCrewtypeRice(0, 0) * ($admin['city_rate']/100 - 0.2));
$destnation['rice'] -= $rice;
if($destnation['rice'] < 0) { $destnation['rice'] = 0; }
$query = "update nation set rice='{$destnation['rice']}' where nation='{$destnation['nation']}'";
@@ -464,7 +463,7 @@ function processWar($general, $city) {
if($nation['type'] == 3 || $nation['type'] == 13) { $num *= 1.1; }
if($nation['type'] == 5 || $nation['type'] == 6 || $nation['type'] == 7 || $nation['type'] == 8 || $nation['type'] == 12) { $num *= 0.9; }
// 부드러운 기술 제한
if(TechLimit($game['startyear'], $year, $nation['tech'])) { $num = intdiv($num, 4); }
if(TechLimit($admin['startyear'], $year, $nation['tech'])) { $num = intdiv($num, 4); }
$query = "update nation set totaltech=totaltech+'$num',tech=totaltech/'$gencount' where nation='{$nation['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 죽은수 기술로 누적
@@ -477,7 +476,7 @@ function processWar($general, $city) {
$num *= 0.9;
}
// 부드러운 기술 제한
if(TechLimit($game['startyear'], $year, $destnation['tech'])) { $num = intdiv($num, 4); }
if(TechLimit($admin['startyear'], $year, $destnation['tech'])) { $num = intdiv($num, 4); }
$query = "update nation set totaltech=totaltech+'$num',tech=totaltech/'$destgencount' where nation='{$destnation['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//양국 평균 기술가격
@@ -517,7 +516,7 @@ function processWar($general, $city) {
$alllog = [];
$history = [];
ConquerCity($game, $general, $city, $nation, $destnation);
ConquerCity($admin, $general, $city, $nation, $destnation);
break;
// 공격 장수 병사 소진시 실패 처리
} elseif($general['crew'] <= 0) {
@@ -1339,7 +1338,7 @@ function processWar($general, $city) {
if($nation['type'] == 3 || $nation['type'] == 13) { $num *= 1.1; }
if($nation['type'] == 5 || $nation['type'] == 6 || $nation['type'] == 7 || $nation['type'] == 8 || $nation['type'] == 12) { $num *= 0.9; }
// 부드러운 기술 제한
if(TechLimit($game['startyear'], $year, $nation['tech'])) { $num = intdiv($num, 4); }
if(TechLimit($admin['startyear'], $year, $nation['tech'])) { $num = intdiv($num, 4); }
$query = "update nation set totaltech=totaltech+'$num',tech=totaltech/'$gencount' where nation='{$nation['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1362,7 +1361,7 @@ function processWar($general, $city) {
if($destnation['type'] == 3 || $destnation['type'] == 13) { $num *= 1.1; }
if($destnation['type'] == 5 || $destnation['type'] == 6 || $destnation['type'] == 7 || $destnation['type'] == 8 || $destnation['type'] == 12) { $num *= 0.9; }
// 부드러운 기술 제한
if(TechLimit($game['startyear'], $year, $destnation['tech'])) { $num = intdiv($num, 4); }
if(TechLimit($admin['startyear'], $year, $destnation['tech'])) { $num = intdiv($num, 4); }
$query = "update nation set totaltech=totaltech+'$num',tech=totaltech/'$destgencount' where nation='{$destnation['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//양국 평균 기술가격
@@ -1627,18 +1626,19 @@ function getCityDef($city) {
return $def;
}
function getRate($game, $type, $dtype) {
function getRate($admin, $type, $dtype) {
$t = "{$dtype}{$type}";
return $game[$t];
return $admin[$t];
}
function addConflict($city, $nationID, $mykillnum) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$nationlist = [];
$killnum = [0];
list($year, $month) = $db->queryFirstList('SELECT year, month FROM game LIMIT 1');
list($year, $month) = $gameStor->getValuesAsArray(['year', 'month']);
$conflict = Json::decode($city['conflict']);
@@ -1697,7 +1697,7 @@ function getConquerNation($city) : int {
return Util::array_first_key($conflict);
}
function ConquerCity($game, $general, $city, $nation, $destnation) {
function ConquerCity($admin, $general, $city, $nation, $destnation) {
'@phan-var array<string,mixed> $city';
$db = DB::db();
$connect=$db->get();
@@ -1712,8 +1712,8 @@ function ConquerCity($game, $general, $city, $nation, $destnation) {
$destnationName = "공백지인";
}
$year = $game['year'];
$month = $game['month'];
$year = $admin['year'];
$month = $admin['month'];
$alllog[] = "<C>●</>{$month}월:<Y>{$general['name']}</>(이)가 <G><b>{$city['name']}</b></> 공략에 <S>성공</>했습니다.";
$log[] = "<C>●</><G><b>{$city['name']}</b></> 공략에 <S>성공</>했습니다.";
+30 -38
View File
@@ -116,18 +116,18 @@ switch($commandtype) {
}
function starter($name, $type=0) {
echo '
?>
<!DOCTYPE html>
<html>
<head>
<title>'.$name.'</title>
<title><?=$name?></title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="../e_lib/jquery-3.2.1.min.js"></script>
<script src="../d_shared/common_path.js"></script>
<script src="js/common.js"></script>
<script src="js/base_map.js"></script>
<script src="js/map.js"></script>
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
<?=WebUtil::printJS('../d_shared/common_path.js')?>
<?=WebUtil::printJS('js/common.js')?>
<?=WebUtil::printJS('js/base_map.js')?>
<?=WebUtil::printJS('js/map.js')?>
<script>
$(function(){
var $target = $("form[name=form1] select[name=double]");
@@ -143,19 +143,17 @@ $(function(){
});
});
</script>
<link href="css/normalize.css" rel="stylesheet">
<link href="../d_shared/common.css" rel="stylesheet">
<link href="css/common.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<link href="css/map.css" rel="stylesheet">
';
echo '
<?=WebUtil::printCSS('css/normalize.css')?>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<?=WebUtil::printCSS('css/main.css')?>
<?=WebUtil::printCSS('css/map.css')?>
</head>
<body class="img_back">
<table class="bg0" align="center" width="1000" border="1" cellspacing="0" cellpadding="0" bordercolordark="gray" bordercolorlight="black" style="font-size:13px;word-break:break-all;">
<tr><td class="bg1" align="center">'.$name.'</td></tr>
<table class="tb_layout bg0" style="width:1000px;margin:auto;">
<tr><td class="bg1" align="center"><?=$name?></td></tr>
<tr><td>
';
<?php
if($type == 1) echo CoreBackButton();
else echo backButton();
}
@@ -195,13 +193,11 @@ function command_99($turn) {
function command_11($turn, $command) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$userID = Session::getUserID();
starter("징병");
$query = "select * from game limit 1";
$result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$query = "select no,nation,level,personal,special2,level,city,crew,horse,injury,leader,crewtype,gold from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),"");
@@ -221,7 +217,7 @@ function command_11($turn, $command) {
$ownCities = [];
$ownRegions = [];
$relativeYear = $admin['year'] - $admin['startyear'];
$relativeYear = $gameStor->year - $gameStor->startyear;
$tech = $nation['tech'];
foreach(DB::db()->query('SELECT city, region from city where nation = %i', $me['nation']) as $city){
@@ -279,7 +275,7 @@ function calc(cost, formnum) {
form.cost.value = Math.round(crew * cost);
}
</script>
<table border=1 cellspacing=0 bordercolordark=gray bordercolorlight=black>
<table class='tb_layout' style='margin:auto;'>
<tr>
<td colspan=10 align=center id=bg2>
현재 기술력 : <input type=text style=text-align:right;color:white;background-color:black size=5 readonly value=".getTechCall($nation['tech']).">
@@ -360,7 +356,7 @@ function calc(cost, formnum) {
$speed = $unit->speed;
$avoid = $unit->avoid;
$weapImage = ServConfig::$gameImagePath."/weap{$i}.png";
if($admin['show_img_level'] < 2) { $weapImage = ServConfig::$sharedIconPath."/default.jpg"; }
if($gameStor->show_img_level < 2) { $weapImage = ServConfig::$sharedIconPath."/default.jpg"; }
$baseRiceShort = round($baseRice, 1);
$baseCostShort = round($baseCost, 1);
@@ -403,13 +399,11 @@ function calc(cost, formnum) {
function command_12($turn, $command) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$userID = Session::getUserID();
starter("모병");
$query = "select * from game limit 1";
$result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$query = "select no,nation,level,personal,special2,level,city,crew,horse,injury,leader,crewtype,gold from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),"");
@@ -429,7 +423,7 @@ function command_12($turn, $command) {
$ownCities = [];
$ownRegions = [];
$relativeYear = $admin['year'] - $admin['startyear'];
$relativeYear = $gameStor->year - $gameStor->startyear;
$tech = $nation['tech'];
foreach(DB::db()->query('SELECT city, region from city where nation = %i', $me['nation']) as $city){
@@ -487,7 +481,7 @@ function calc(cost, formnum) {
form.cost.value = Math.round(crew * cost * 2);
}
</script>
<table border=1 cellspacing=0 bordercolordark=gray bordercolorlight=black>
<table class='tb_layout' style='margin:auto;'>
<tr><td align=center colspan=10>모병은 가격 2배의 자금이 소요됩니다.</td></tr>
<tr>
<td colspan=10 align=center id=bg2>
@@ -570,7 +564,7 @@ function calc(cost, formnum) {
$speed = $unit->speed;
$avoid = $unit->avoid;
$weapImage = ServConfig::$gameImagePath."/weap{$i}.png";
if($admin['show_img_level'] < 2) { $weapImage = ServConfig::$sharedIconPath."/default.jpg"; }
if($gameStor->show_img_level < 2) { $weapImage = ServConfig::$sharedIconPath."/default.jpg"; }
$baseRiceShort = round($baseRice, 1);
$baseCostShort = round($baseCost, 1);
@@ -963,15 +957,12 @@ function command_24($turn, $command) {
function command_25($turn, $command) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$userID = Session::getUserID();
starter("임관");
$query = "select startyear,year from game limit 1";
$result = MYDB_query($query, $connect) or Error("command_46 ".MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$query = "select no,nations from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error("command_27 ".MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
@@ -1004,7 +995,7 @@ function command_25($turn, $command) {
$scoutStr .= "<tr><td align=center width=100 style=color:".newColor($nation['color']).";background-color:{$nation['color']};>{$nation['name']}</td><td width=900 style=color:".newColor($nation['color']).";background-color:{$nation['color']}>".$nation['scoutmsg']."</td></tr>";
}
if($admin['year'] < $admin['startyear']+3 && $nation['gennum'] >= 10) {
if($gameStor->year < $gameStor->startyear+3 && $nation['gennum'] >= 10) {
echo "
<option value={$nation['nation']} style=color:{$nation['color']};background-color:red;> {$nation['name']} </option>";
} elseif($nation['scout'] == 1) {
@@ -1031,7 +1022,7 @@ function command_25($turn, $command) {
echo "
</form>
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<table align=center width=1000 class='tb_layout bg0'>
<tr><td align=center colspan=2 id=bg1>임관 권유 메세지</td></tr>
{$scoutStr}
</table>";
@@ -1530,11 +1521,12 @@ function command_44($turn, $command) {
function command_46($turn, $command) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
starter("건국");
$maxnation = $db->queryFirstField('SELECT maxnation FROM game LIMIT 1');
$maxnation = $gameStor->maxnation;
$colorUsed = [];
@@ -1785,7 +1777,7 @@ function command_51($turn, $command) {
for($i=1; $i <= $count; $i++) {
$nation = MYDB_fetch_array($result);
if($myNation['power'] <= $nation['power'] * 3 || !isClose($me['nation'], $nation['nation'])) {
if($myNation['power'] <= $nation['power'] * 3 || !isNeighbor($me['nation'], $nation['nation'])) {
echo "<option style=color:{$nation['color']};background-color:red; value={$nation['nation']}>【 {$nation['name']} 】</option>";
} else {
echo "<option style=color:{$nation['color']} value={$nation['nation']}>【 {$nation['name']} 】</option>";
@@ -1929,7 +1921,7 @@ function command_53($turn, $command) {
for($i=1; $i <= $count; $i++) {
$nation = MYDB_fetch_array($result);
if($myNation['power']+$nation['power'] > $cond1 || $myNation['gennum']+$nation['gennum'] > $cond2 || !isClose($me['nation'], $nation['nation'])) {
if($myNation['power']+$nation['power'] > $cond1 || $myNation['gennum']+$nation['gennum'] > $cond2 || !isNeighbor($me['nation'], $nation['nation'])) {
echo "<option style=color:{$nation['color']};background-color:red; value={$nation['nation']}>【 {$nation['name']} 】</option>";
} else {
echo "<option style=color:{$nation['color']} value={$nation['nation']}>【 {$nation['name']} 】</option>";
+3 -4
View File
@@ -225,6 +225,8 @@ class DiplomaticMessage extends Message{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$general = $db->queryFirstRow(
'SELECT `name`, `level` FROM general WHERE `no`=%i AND nation=%i',
$receiverID,
@@ -281,10 +283,7 @@ class DiplomaticMessage extends Message{
return $result;
}
list(
$year,
$month
) = $db->queryFirstList('SELECT year, month FROM game LIMIT 1');
list($year, $month) = $gameStor->getValuesAsArray(['year', 'month']);
$this->dest->generalID = $receiverID;
+5 -3
View File
@@ -3,6 +3,7 @@ namespace sammo\Engine;
use \sammo\DB;
use \sammo\DiplomaticMessage;
use \sammo\KVStorage;
//NOTE: A가 B에게 항복, 통합 서신을 보냈을 때 통합 후 대상이 A이므로 A가 주체임.
class Diplomacy{
@@ -24,6 +25,7 @@ class Diplomacy{
}
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$srcNation = $db->queryFirstRow(
'SELECT nation, `name`, `power`, capital, gold, rice, surlimit, color, `level` FROM nation WHERE nation=%i',
$srcNationID
@@ -58,7 +60,7 @@ class Diplomacy{
$this->startYear,
$this->year,
$this->month
) = $db->queryFirstList('SELECT startyear, year, month FROM game LIMIT 1');
) = $gameStor->getValuesAsArray(['startyear', 'year', 'month']);
}
@@ -148,7 +150,7 @@ class Diplomacy{
return $prev;
}
if(!\sammo\isClose($this->srcNation['nation'], $this->destNation['nation'], false)){
if(!\sammo\isNeighbor($this->srcNation['nation'], $this->destNation['nation'], false)){
return [DiplomaticMessage::DECLINED, '상대국의 도시들과 보급선이 이어지지 않았습니다.'];
}
@@ -160,7 +162,7 @@ class Diplomacy{
return $prev;
}
if(!\sammo\isClose($this->srcNation['nation'], $this->destNation['nation'], true)){
if(!\sammo\isNeighbor($this->srcNation['nation'], $this->destNation['nation'], true)){
return [DiplomaticMessage::DECLINED, '상대국의 도시와 인접하지 않았습니다.'];
}
+3 -1
View File
@@ -3,6 +3,7 @@ namespace sammo\Engine;
use \sammo\DB;
use \sammo\ScoutMessage;
use \sammo\KVStorage;
/**
* 인사(등용, 추방, 임명, 망명) 헬퍼 클래스?
@@ -21,6 +22,7 @@ class Personnel{
public function __construct(int $nationID, int $senderID){
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$nation = $db->queryFirstRow(
'SELECT nation, `name`, `level`, capital, scout FROM nation WHERE nation=%i',
$nationID
@@ -39,7 +41,7 @@ class Personnel{
$this->year,
$this->month,
$this->killturn
) = $db->queryFirstList('SELECT startyear, year, month, killturn FROM game LIMIT 1');
) = $gameStor->getValuesAsArray(['startyear', 'year', 'month', 'killturn']);
}
+2 -2
View File
@@ -140,10 +140,10 @@ class ChangeCity extends \sammo\Event\Action{
if($targetType == 'cities'){
if(is_numeric($this->targetArgs)){
return DB::db()->queryFirstColumn('SELECT city FROM city WHERE city IN (%ls)', $this->targetArgs);
return DB::db()->queryFirstColumn('SELECT city FROM city WHERE city IN %ls', $this->targetArgs);
}
else{
return DB::db()->queryFirstColumn('SELECT city FROM city WHERE name IN (%ls)', $this->targetArgs);
return DB::db()->queryFirstColumn('SELECT city FROM city WHERE name IN %ls', $this->targetArgs);
}
}
+1 -1
View File
@@ -18,7 +18,7 @@ class RegNPC extends \sammo\Event\Action{
int $birth = 160,
int $death = 300,
$ego = null,
string $char = '',
$char = '',
$text = ''
){
$this->npc = new \sammo\Scenario\NPC(
+6 -4
View File
@@ -50,13 +50,15 @@ class Date extends \sammo\Event\Condition{
}
$lhs = [
$this->year,
$this->month
];
$rhs = [
$this->year!==null?(int)$env['year']:null,
$this->month!==null?(int)$env['month']:null
];
$rhs = [
$this->year,
$this->month
];
$value = false;
switch($this->cmp){
+1 -7
View File
@@ -1,7 +1,7 @@
<?php
namespace sammo;
class GameConst
class GameConst extends GameCustomConst
{
/** @var string 버전 */
public static $title = "삼국지 모의전투 PHP HiDCHe";
@@ -45,12 +45,6 @@ class GameConst
public static $sabotageDefaultAmount = 100;
/** @var int 계략시 수치 감소량($firingbase ~ $firingpower)*/
public static $sabotageAmountCoef = 400;
/** @var int 명장,지장에 사용될 통솔 제한*/
public static $goodgenleader = 65;
/** @var int 명장에 사용될 무력 제한*/
public static $goodgenpower = 65;
/** @var int 지장에 사용될 지력 제한*/
public static $goodgenintel = 65;
/** @var string 기본 배경색깔 푸른색*/
public static $basecolor = "#000044";
/** @var string 기본 배경색깔 초록색*/
+9 -3
View File
@@ -89,7 +89,7 @@ class ResetHelper{
}
}
(KVStorage::getStorage($db, 'game_env'))->resetValues();
return [
'result'=>true
@@ -127,10 +127,12 @@ class ResetHelper{
}
$scenarioObj = new Scenario($scenario, false);
$scenarioObj->buildConf();
$startyear = $scenarioObj->getYear()??GameConst::$defaultStartYear;
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$db->insert('plock', [
'plock'=>1
]);
@@ -159,6 +161,8 @@ class ResetHelper{
$killturn = 4800 / $turnterm;
if($npcmode == 1) { $killturn = intdiv($killturn, 3); }
$env = [
'scenario'=>$scenario,
'scenario_text'=>$scenarioObj->getTitle(),
@@ -194,7 +198,9 @@ class ResetHelper{
]);
}
$db->insert('game', $env);
foreach($env as $key=>$value){
$gameStor->$key = $value;
}
$scenarioObj->build($env);

Some files were not shown because too many files have changed in this diff Show More