Merge pull request 'refactor: bootstrap4 => bootstrap5' (#200) from no_bootstrap4 into devel

Reviewed-on: https://storage.hided.net/gitea/devsam/core/pulls/200
This commit was merged in pull request #200.
This commit is contained in:
2021-12-11 02:53:55 +09:00
132 changed files with 7099 additions and 7133 deletions
+12
View File
@@ -23,5 +23,17 @@ module.exports = {
'@typescript-eslint/no-floating-promises': 'error', '@typescript-eslint/no-floating-promises': 'error',
"vue/no-multiple-template-root": "off", "vue/no-multiple-template-root": "off",
"vue/no-v-for-template-key": "off", "vue/no-v-for-template-key": "off",
"vue/multi-word-component-names": "off",//TODO: 삭제
},
settings: {
'import/resolver': {
alias: {
map: [
['@', './hwe/ts'],
['@util', './hwe/ts/util'],
['@scss', './hwe/scss'],
]
} }
} }
},
}
+28 -41
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
require(__DIR__ . '/../vendor/autoload.php'); require(__DIR__ . '/../vendor/autoload.php');
@@ -6,6 +7,7 @@ require(__DIR__.'/../vendor/autoload.php');
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko"> <html lang="ko">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -13,11 +15,14 @@ require(__DIR__.'/../vendor/autoload.php');
<title>설치</title> <title>설치</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('../dist_js/vendors.js') ?> <?= WebUtil::printJS('../dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('../dist_js/install.js') ?> <?= WebUtil::printJS('../dist_js/install.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?> <?= WebUtil::printCSS('../dist_css/vendor.css') ?>
<?= WebUtil::printCSS('../dist_css/common_ts.css') ?>
<?= WebUtil::printCSS('../css/install.css') ?> <?= WebUtil::printCSS('../css/install.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
<div class="container"> <div class="container">
<h1 class="row justify-content-md-center">삼국지 모의전투 HiDCHe 설치</h1> <h1 class="row justify-content-md-center">삼국지 모의전투 HiDCHe 설치</h1>
@@ -33,16 +38,14 @@ require(__DIR__.'/../vendor/autoload.php');
<div class="form-group row"> <div class="form-group row">
<label for="db_host" class="col-sm-4 col-form-label">DB호스트</label> <label for="db_host" class="col-sm-4 col-form-label">DB호스트</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="text" class="form-control" name="db_host" id="db_host" <input type="text" class="form-control" name="db_host" id="db_host" placeholder="호스트" value="localhost" />
placeholder="호스트" value="localhost" />
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="db_port" class="col-sm-4 col-form-label">DB포트</label> <label for="db_port" class="col-sm-4 col-form-label">DB포트</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="text" class="form-control" name="db_port" id="db_port" <input type="text" class="form-control" name="db_port" id="db_port" placeholder="접속 포트" value="3306" />
placeholder="접속 포트" value="3306" />
</div> </div>
</div> </div>
@@ -57,52 +60,43 @@ require(__DIR__.'/../vendor/autoload.php');
<div class="form-group row"> <div class="form-group row">
<label for="db_pw" class="col-sm-4 col-form-label">DB비밀번호</label> <label for="db_pw" class="col-sm-4 col-form-label">DB비밀번호</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="password" class="form-control" name="db_pw" id="db_pw" <input type="password" class="form-control" name="db_pw" id="db_pw" placeholder="DB비밀번호" />
placeholder="DB비밀번호"/>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="db_name" class="col-sm-4 col-form-label">DB명</label> <label for="db_name" class="col-sm-4 col-form-label">DB명</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="text" class="form-control" name="db_name" id="db_name" <input type="text" class="form-control" name="db_name" id="db_name" placeholder="DB명(예:sammo)" />
placeholder="DB명(예:sammo)"/>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="serv_host" class="col-sm-4 col-form-label">접속 경로</label> <label for="serv_host" class="col-sm-4 col-form-label">접속 경로</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="text" class="form-control" name="serv_host" id="serv_host" <input type="text" class="form-control" name="serv_host" id="serv_host" placeholder="접속경로(예:http://www.example.com)" />
placeholder="접속경로(예:http://www.example.com)"/>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="shared_icon_path" class="col-sm-4 col-form-label">공용 아이콘 주소</label> <label for="shared_icon_path" class="col-sm-4 col-form-label">공용 아이콘 주소</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="text" class="form-control" name="shared_icon_path" id="shared_icon_path" <input type="text" class="form-control" name="shared_icon_path" id="shared_icon_path" placeholder="공용 아이콘 주소(웹 주소, 또는 접속 경로에 따른 상대 주소)" value="../image/icons" />
placeholder="공용 아이콘 주소(웹 주소, 또는 접속 경로에 따른 상대 주소)"
value="../image/icons" />
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="game_image_path" class="col-sm-4 col-form-label">게임 이미지 주소</label> <label for="game_image_path" class="col-sm-4 col-form-label">게임 이미지 주소</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="text" class="form-control" name="game_image_path" id="game_image_path" <input type="text" class="form-control" name="game_image_path" id="game_image_path" placeholder="게임 이미지 주소(웹 주소, 또는 접속 경로에 따른 상대 주소)" value="../image/game" />
placeholder="게임 이미지 주소(웹 주소, 또는 접속 경로에 따른 상대 주소)"
value="../image/game" />
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="image_request_key" class="col-sm-4 col-form-label">이미지 갱신 키</label> <label for="image_request_key" class="col-sm-4 col-form-label">이미지 갱신 키</label>
<div class="input-group col-sm-8"> <div class="input-group col-sm-8">
<input type="text" class="form-control" name="image_request_key" id="image_request_key" <input type="text" class="form-control" name="image_request_key" id="image_request_key" placeholder="이미지 서버의 hook/HashKey.php의 값과 동일하게" value="" />
placeholder="이미지 서버의 hook/HashKey.php의 값과 동일하게" <div class="input-group-text">
value="" />
<div class="input-group-append">
<button id="btn_random_generate_key" class="btn btn-secondary" type="button">랜덤 생성</button> <button id="btn_random_generate_key" class="btn btn-secondary" type="button">랜덤 생성</button>
</div> </div>
</div> </div>
@@ -113,31 +107,27 @@ require(__DIR__.'/../vendor/autoload.php');
<div class="form-group row"> <div class="form-group row">
<label for="kakao_rest_key" class="col-sm-4 col-form-label">카카오 API Rest Key</label> <label for="kakao_rest_key" class="col-sm-4 col-form-label">카카오 API Rest Key</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="text" class="form-control" name="kakao_rest_key" id="kakao_rest_key" <input type="text" class="form-control" name="kakao_rest_key" id="kakao_rest_key" placeholder="카카오톡 API의 Rest Key" value="" />
placeholder="카카오톡 API의 Rest Key"
value="" />
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="kakao_admin_key" class="col-sm-4 col-form-label">카카오 API Admin Key</label> <label for="kakao_admin_key" class="col-sm-4 col-form-label">카카오 API Admin Key</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="text" class="form-control" name="kakao_admin_key" id="kakao_admin_key" <input type="text" class="form-control" name="kakao_admin_key" id="kakao_admin_key" placeholder="카카오톡 API의 Admin Key" value="" />
placeholder="카카오톡 API의 Admin Key"
value="" />
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<div class="col-sm-4"></div> <div class="col-sm-4"></div>
<div class="col-sm-8"> <div class="col-sm-8">
<button type="submit" <button type="submit" class="btn btn-primary btn-lg btn-block login-button">설정 파일 생성</button>
class="btn btn-primary btn-lg btn-block login-button">설정 파일 생성</button>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
</div><!--DB 폼 끝--> </div>
<!--DB 폼 끝-->
<div class="card" id="admin_form_card" style="display:none"> <div class="card" id="admin_form_card" style="display:none">
<h3 class="card-header"> <h3 class="card-header">
@@ -148,8 +138,7 @@ require(__DIR__.'/../vendor/autoload.php');
<div class="form-group row"> <div class="form-group row">
<label for="username" class="col-sm-3 col-form-label">계정명</label> <label for="username" class="col-sm-3 col-form-label">계정명</label>
<div class="col-sm-9"> <div class="col-sm-9">
<input type="text" class="form-control" name="username" id="username" <input type="text" class="form-control" name="username" id="username" placeholder="계정명" />
placeholder="계정명"/>
</div> </div>
</div> </div>
@@ -157,24 +146,21 @@ require(__DIR__.'/../vendor/autoload.php');
<div class="form-group row"> <div class="form-group row">
<label for="password" class="col-sm-3 col-form-label">비밀번호</label> <label for="password" class="col-sm-3 col-form-label">비밀번호</label>
<div class="col-sm-9"> <div class="col-sm-9">
<input type="password" class="form-control" name="password" id="password" <input type="password" class="form-control" name="password" id="password" placeholder="비밀번호" />
placeholder="비밀번호"/>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="confirm_password" class="col-sm-3 col-form-label">비밀번호 확인</label> <label for="confirm_password" class="col-sm-3 col-form-label">비밀번호 확인</label>
<div class="col-sm-9"> <div class="col-sm-9">
<input type="password" class="form-control" name="confirm_password" id="confirm_password" <input type="password" class="form-control" name="confirm_password" id="confirm_password" placeholder="비밀번호 확인" />
placeholder="비밀번호 확인"/>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="nickname" class="col-sm-3 col-form-label">닉네임</label> <label for="nickname" class="col-sm-3 col-form-label">닉네임</label>
<div class="col-sm-9"> <div class="col-sm-9">
<input type="text" class="form-control" name="nickname" id="nickname" <input type="text" class="form-control" name="nickname" id="nickname" placeholder="닉네임" value="운영자" />
placeholder="닉네임" value="운영자"/>
</div> </div>
</div> </div>
@@ -183,13 +169,13 @@ require(__DIR__.'/../vendor/autoload.php');
<div class="form-group row"> <div class="form-group row">
<div class="col-sm-3"></div> <div class="col-sm-3"></div>
<div class="col-sm-9"> <div class="col-sm-9">
<button type="submit" <button type="submit" class="btn btn-primary btn-lg btn-block login-button">관리자 계정 생성</button>
class="btn btn-primary btn-lg btn-block login-button">관리자 계정 생성</button>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
</div><!--ADMIN 폼 끝--> </div>
<!--ADMIN 폼 끝-->
<!-- TODO: conf_kakao.php --> <!-- TODO: conf_kakao.php -->
@@ -197,4 +183,5 @@ require(__DIR__.'/../vendor/autoload.php');
</div> </div>
</div> </div>
</body> </body>
</html> </html>
+1 -1
View File
@@ -24,7 +24,7 @@ $plock = $db->queryFirstField('SELECT plock FROM plock');
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?=WebUtil::printCSS('../d_shared/common.css')?> <?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?> <?=WebUtil::printCSS('dist_css/common.css')?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
+1 -1
View File
@@ -22,7 +22,7 @@ $admin = getAdmin();
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?=WebUtil::printCSS('../d_shared/common.css')?> <?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?> <?=WebUtil::printCSS('dist_css/common.css')?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
+1 -1
View File
@@ -23,7 +23,7 @@ $db = DB::db();
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?= WebUtil::printCSS('css/common.css') ?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
+1 -1
View File
@@ -40,7 +40,7 @@ function colorBlockedName($general){
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?= WebUtil::printCSS('css/common.css') ?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
+1 -1
View File
@@ -39,7 +39,7 @@ $sel2[$type2] = "selected";
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?= WebUtil::printCSS('css/common.css') ?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
+1 -1
View File
@@ -86,7 +86,7 @@ $generalObj = General::createGeneralObjFromDB($gen);
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?= WebUtil::printCSS('css/common.css') ?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
+1 -1
View File
@@ -31,7 +31,7 @@ $sel[$type] = "selected";
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?=WebUtil::printCSS('../d_shared/common.css')?> <?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?> <?=WebUtil::printCSS('dist_css/common.css')?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
+95 -48
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -25,26 +26,30 @@ $templates = new \League\Plates\Engine(__DIR__.'/templates');
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1136" /> <meta name="viewport" content="width=1136" />
<title><?= UniqueConst::$serverName ?>: 명장일람</title> <title><?= UniqueConst::$serverName ?>: 명장일람</title>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/hallOfFame.css') ?> <?= WebUtil::printCSS('css/hallOfFame.css') ?>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
</head> </head>
<body> <body>
<table align=center width=1100 class='tb_layout bg0'> <table align=center width=1100 class='tb_layout bg0'>
<tr><td>명 장 일 람<br><?=closeButton()?></td></tr> <tr>
<td>명 장 일 람<br><?= closeButton() ?></td>
</tr>
</table> </table>
<table align=center width=1100 class='tb_layout bg0'> <table align=center width=1100 class='tb_layout bg0'>
<form name=form1 action=a_bestGeneral.php method=post> <form name=form1 action=a_bestGeneral.php method=post>
<tr><td align=center> <tr>
<td align=center>
<input type=submit name=btn value='유저 보기'> <input type=submit name=btn value='유저 보기'>
<input type=submit name=btn value='NPC 보기'> <input type=submit name=btn value='NPC 보기'>
</td></tr> </td>
</tr>
</form> </form>
</table> </table>
<div style="margin:auto;width:1100px;"> <div style="margin:auto;width:1100px;">
@@ -65,8 +70,14 @@ foreach (getAllNationStaticInfo() as $nation) {
} }
$types = [ $types = [
["명 성", "int", function($v){$v['value'] = $v['experience']; return $v; }], ["명 성", "int", function ($v) {
["계 급", "int", function($v){$v['value'] = $v['dedication']; return $v; }], $v['value'] = $v['experience'];
return $v;
}],
["계 급", "int", function ($v) {
$v['value'] = $v['dedication'];
return $v;
}],
["계 략 성 공", "int", function ($v) use ($gameStor) { ["계 략 성 공", "int", function ($v) use ($gameStor) {
$v['value'] = $v['firenum']; $v['value'] = $v['firenum'];
if ($gameStor->isunited) { if ($gameStor->isunited) {
@@ -80,49 +91,75 @@ $types = [
$v['fgColor'] = newColor($v['bgColor']); $v['fgColor'] = newColor($v['bgColor']);
return $v; return $v;
}], }],
["전 투 횟 수", "int", function($v){$v['value'] = $v['warnum']; return $v; }], ["전 투 횟 수", "int", function ($v) {
["승 리", "int", function($v){$v['value'] = $v['killnum']; return $v; }], $v['value'] = $v['warnum'];
return $v;
}],
["승 리", "int", function ($v) {
$v['value'] = $v['killnum'];
return $v;
}],
["승 률", "percent", function ($v) { ["승 률", "percent", function ($v) {
if ($v['warnum'] < 10) { if ($v['warnum'] < 10) {
$v['value'] = 0; $v['value'] = 0;
} } else {
else{
$v['value'] = $v['killnum'] / max(1, $v['warnum']); $v['value'] = $v['killnum'] / max(1, $v['warnum']);
} }
return $v; return $v;
}], }],
["점 령", "int", function($v){$v['value'] = $v['occupied']; return $v; }], ["점 령", "int", function ($v) {
["사 살", "int", function($v){$v['value'] = $v['killcrew']; return $v; }], $v['value'] = $v['occupied'];
return $v;
}],
["사 살", "int", function ($v) {
$v['value'] = $v['killcrew'];
return $v;
}],
["살 상 률", "percent", function ($v) { ["살 상 률", "percent", function ($v) {
if ($v['warnum'] < 10) { if ($v['warnum'] < 10) {
$v['value'] = 0; $v['value'] = 0;
} } else {
else{
$v['value'] = $v['killcrew'] / max(1, $v['deathcrew']); $v['value'] = $v['killcrew'] / max(1, $v['deathcrew']);
} }
return $v; return $v;
}], }],
["대 인 사 살", "int", function($v){$v['value'] = $v['killcrew_person']; return $v; }], ["대 인 사 살", "int", function ($v) {
$v['value'] = $v['killcrew_person'];
return $v;
}],
["대 인 살 상 률", "percent", function ($v) { ["대 인 살 상 률", "percent", function ($v) {
if ($v['warnum'] < 10) { if ($v['warnum'] < 10) {
$v['value'] = 0; $v['value'] = 0;
} } else {
else{
$v['value'] = $v['killcrew_person'] / max(1, $v['deathcrew_person']); $v['value'] = $v['killcrew_person'] / max(1, $v['deathcrew_person']);
} }
return $v; return $v;
}], }],
["보 병 숙 련 도", "int", function($v){$v['value'] = $v['dex1']; return $v; }], ["보 병 숙 련 도", "int", function ($v) {
["궁 병 숙 련 도", "int", function($v){$v['value'] = $v['dex2']; return $v; }], $v['value'] = $v['dex1'];
["기 병 숙 련 도", "int", function($v){$v['value'] = $v['dex3']; return $v; }], return $v;
["귀 병 숙 련 도", "int", function($v){$v['value'] = $v['dex4']; return $v; }], }],
[" 병 숙 련 도", "int", function($v){$v['value'] = $v['dex5']; return $v; }], [" 병 숙 련 도", "int", function ($v) {
$v['value'] = $v['dex2'];
return $v;
}],
["기 병 숙 련 도", "int", function ($v) {
$v['value'] = $v['dex3'];
return $v;
}],
["귀 병 숙 련 도", "int", function ($v) {
$v['value'] = $v['dex4'];
return $v;
}],
["차 병 숙 련 도", "int", function ($v) {
$v['value'] = $v['dex5'];
return $v;
}],
["전 력 전 승 률", "percent", function ($v) { ["전 력 전 승 률", "percent", function ($v) {
$totalCnt = $v['ttw'] + $v['ttd'] + $v['ttl']; $totalCnt = $v['ttw'] + $v['ttd'] + $v['ttl'];
if ($totalCnt < 50) { if ($totalCnt < 50) {
$v['value'] = 0; $v['value'] = 0;
} } else {
else{
$v['value'] = $v['ttw'] / max(1, $totalCnt); $v['value'] = $v['ttw'] / max(1, $totalCnt);
} }
return $v; return $v;
@@ -131,8 +168,7 @@ $types = [
$totalCnt = $v['tlw'] + $v['tld'] + $v['tll']; $totalCnt = $v['tlw'] + $v['tld'] + $v['tll'];
if ($totalCnt < 50) { if ($totalCnt < 50) {
$v['value'] = 0; $v['value'] = 0;
} } else {
else{
$v['value'] = $v['tlw'] / max(1, $totalCnt); $v['value'] = $v['tlw'] / max(1, $totalCnt);
} }
return $v; return $v;
@@ -141,8 +177,7 @@ $types = [
$totalCnt = $v['tsw'] + $v['tsd'] + $v['tsl']; $totalCnt = $v['tsw'] + $v['tsd'] + $v['tsl'];
if ($totalCnt < 50) { if ($totalCnt < 50) {
$v['value'] = 0; $v['value'] = 0;
} } else {
else{
$v['value'] = $v['tsw'] / max(1, $totalCnt); $v['value'] = $v['tsw'] / max(1, $totalCnt);
} }
return $v; return $v;
@@ -151,21 +186,28 @@ $types = [
$totalCnt = $v['tiw'] + $v['tid'] + $v['til']; $totalCnt = $v['tiw'] + $v['tid'] + $v['til'];
if ($totalCnt < 50) { if ($totalCnt < 50) {
$v['value'] = 0; $v['value'] = 0;
} } else {
else{
$v['value'] = $v['tiw'] / max(1, $totalCnt); $v['value'] = $v['tiw'] / max(1, $totalCnt);
} }
return $v; return $v;
}], }],
["베 팅 투 자 액", "int", function($v){$v['value'] = $v['betgold']; return $v; }], ["베 팅 투 자 액", "int", function ($v) {
["베 팅 당 첨", "int", function($v){$v['value'] = $v['betwin']; return $v; }], $v['value'] = $v['betgold'];
["베 팅 수 익 금", "int", function($v){$v['value'] = $v['betwingold']; return $v; }], return $v;
}],
["베 팅 당 첨", "int", function ($v) {
$v['value'] = $v['betwin'];
return $v;
}],
["베 팅 수 익 금", "int", function ($v) {
$v['value'] = $v['betwingold'];
return $v;
}],
["베 팅 수 익 률", "percent", function ($v) { ["베 팅 수 익 률", "percent", function ($v) {
if ($v['betgold'] < GameConst::$defaultGold) { if ($v['betgold'] < GameConst::$defaultGold) {
$v['value'] = 0; $v['value'] = 0;
} } else {
else{
$v['value'] = $v['betwingold'] / max(1, $v['betgold']); $v['value'] = $v['betwingold'] / max(1, $v['betgold']);
} }
return $v; return $v;
@@ -178,8 +220,9 @@ foreach($db->query(
experience, dedication, experience, dedication,
dex1, dex2, dex3, dex4, dex5, dex1, dex2, dex3, dex4, dex5,
horse, weapon, book, item horse, weapon, book, item
FROM general WHERE %l", $btn == "NPC 보기"?"npc>=2":"npc<2") as $general FROM general WHERE %l",
){ $btn == "NPC 보기" ? "npc>=2" : "npc<2"
) as $general) {
$generalID = $general['no']; $generalID = $general['no'];
$general['bgColor'] = $nationColor[$general['nation']] ?? GameConst::$basecolor4; $general['bgColor'] = $nationColor[$general['nation']] ?? GameConst::$basecolor4;
$general['fgColor'] = newColor($general['bgColor']); $general['fgColor'] = newColor($general['bgColor']);
@@ -188,8 +231,7 @@ foreach($db->query(
if (key_exists('picture', $general)) { if (key_exists('picture', $general)) {
$imageTemp = GetImageURL($general['imgsvr']); $imageTemp = GetImageURL($general['imgsvr']);
$general['pictureFullPath'] = "$imageTemp/{$general['picture']}"; $general['pictureFullPath'] = "$imageTemp/{$general['picture']}";
} } else {
else{
$general['pictureFullPath'] = GetImageURL(0) . "/default.jpg"; $general['pictureFullPath'] = GetImageURL(0) . "/default.jpg";
} }
@@ -218,8 +260,7 @@ foreach($types as $idx=>[$typeName, $typeValue, $typeFunc]){
if ($typeValue == 'percent') { if ($typeValue == 'percent') {
$general['printValue'] = number_format($value * 100, 2) . '%'; $general['printValue'] = number_format($value * 100, 2) . '%';
} } else {
else {
$general['printValue'] = number_format($value); $general['printValue'] = number_format($value);
} }
return $general; return $general;
@@ -248,7 +289,10 @@ $itemTypes = [
'item' => '도 구' 'item' => '도 구'
]; ];
$simpleItemTypes = array_keys($itemTypes); array_map(function($itemType){return $itemType[1];}, $itemTypes); $simpleItemTypes = array_keys($itemTypes);
array_map(function ($itemType) {
return $itemType[1];
}, $itemTypes);
$itemOwners = []; $itemOwners = [];
foreach ($generals as $general) { foreach ($generals as $general) {
@@ -261,11 +305,9 @@ foreach($generals as $general){
if (key_exists($itemClassName, $itemOwners)) { if (key_exists($itemClassName, $itemOwners)) {
$itemOwners[$itemClassName][] = $general; $itemOwners[$itemClassName][] = $general;
} } else {
else{
$itemOwners[$itemClassName] = [$general]; $itemOwners[$itemClassName] = [$general];
} }
} }
} }
@@ -332,8 +374,13 @@ foreach(GameConst::$allItems as $itemType=>$itemList){
?> ?>
</div> </div>
<table align=center width=1100 class='tb_layout bg0'> <table align=center width=1100 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?> </td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?> </td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+14 -6
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -18,19 +19,21 @@ increaseRefresh("왕조일람", 1);
<title><?= UniqueConst::$serverName ?>: 왕조일람</title> <title><?= UniqueConst::$serverName ?>: 왕조일람</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
<table align=center width=1000 class="tb_layout bg0"> <table align=center width=1000 class="tb_layout bg0">
<tr><td>역 대 왕 조<br> <tr>
<td>역 대 왕 조<br>
<button onclick=window.close()>창 닫기</button><br> <button onclick=window.close()>창 닫기</button><br>
</td></tr> </td>
</tr>
</table> </table>
<?php <?php
@@ -123,8 +126,13 @@ foreach($emperiors as $emperior){
?> ?>
<table style="margin-top:10px;" align=center width=1000 class='tb_layout bg0'> <table style="margin-top:10px;" align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+1 -2
View File
@@ -26,9 +26,8 @@ $serverID = $emperior['server_id']??($emperior['serverID']??null);
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<title><?=UniqueConst::$serverName?>: 왕조일람</title> <title><?=UniqueConst::$serverName?>: 왕조일람</title>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?=WebUtil::printCSS('../d_shared/common.css')?> <?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?> <?=WebUtil::printCSS('dist_css/common.css')?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
+19 -8
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -43,20 +44,24 @@ if($gameStor->isunited){
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<title><?= UniqueConst::$serverName ?>: 장수일람</title> <title><?= UniqueConst::$serverName ?>: 장수일람</title>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>장 수 일 람<br><?=closeButton()?></td></tr> <tr>
<tr><td><form name=form1 method=post>정렬순서 : <td>장 수 일 람<br><?= closeButton() ?></td>
</tr>
<tr>
<td>
<form name=form1 method=post>정렬순서 :
<select id='viewType' name='type' size=1> <select id='viewType' name='type' size=1>
<option value=1>국가</option> <option value=1>국가</option>
<option value=2>통솔</option> <option value=2>통솔</option>
@@ -74,8 +79,10 @@ if($gameStor->isunited){
<option value=14>연령</option> <option value=14>연령</option>
<option value=15>NPC</option> <option value=15>NPC</option>
</select> </select>
<input type=submit value='정렬하기'></form> <input type=submit value='정렬하기'>
</td></tr> </form>
</td>
</tr>
</table> </table>
<?php <?php
$nationname = []; $nationname = [];
@@ -202,8 +209,12 @@ echo "
?> ?>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
+23 -25
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -31,8 +32,7 @@ $scenarioList = (function(){
if ($scenarioIdx && key_exists($scenarioIdx, $scenarioList[$seasonIdx] ?? [])) { if ($scenarioIdx && key_exists($scenarioIdx, $scenarioList[$seasonIdx] ?? [])) {
$searchScenarioName = $scenarioList[$seasonIdx][$scenarioIdx]['name']; $searchScenarioName = $scenarioList[$seasonIdx][$scenarioIdx]['name'];
$searchFilter = $db->sqleval('season = %i AND scenario = %i', $seasonIdx, $scenarioIdx); $searchFilter = $db->sqleval('season = %i AND scenario = %i', $seasonIdx, $scenarioIdx);
} } else {
else{
$searchScenarioName = '* 모두 *'; $searchScenarioName = '* 모두 *';
$searchFilter = $db->sqleval('season = %i', $seasonIdx); $searchFilter = $db->sqleval('season = %i', $seasonIdx);
} }
@@ -46,38 +46,34 @@ else{
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1136" /> <meta name="viewport" content="width=1136" />
<title><?= UniqueConst::$serverName ?>: 명예의 전당</title> <title><?= UniqueConst::$serverName ?>: 명예의 전당</title>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/hallOfFame.css') ?> <?= WebUtil::printCSS('css/hallOfFame.css') ?>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJs('dist_js/hallOfFame.js') ?> <?= WebUtil::printJs('dist_js/hallOfFame.js') ?>
</head> </head>
<body> <body>
<table align=center width=1100 class='tb_layout bg0'> <table align=center width=1100 class='tb_layout bg0'>
<tr><td>명 예 의 전 당<br><?=closeButton()?></td></tr> <tr>
<tr><td> <td>명 예 의 전 당<br><?= closeButton() ?></td>
</tr>
<tr>
<td>
시나리오 검색 : <select id="by_scenario" name="by_scenario"> 시나리오 검색 : <select id="by_scenario" name="by_scenario">
<?php foreach ($scenarioList as $iterSeasonIdx => $subScenarioList) : ?> <?php foreach ($scenarioList as $iterSeasonIdx => $subScenarioList) : ?>
<option <option data-season="<?= $iterSeasonIdx ?>" value="" <?= ($iterSeasonIdx == $seasonIdx && $scenarioIdx === null) ? "selected='selected'" : '' ?>>* 시즌 : <?= $iterSeasonIdx ?> 종합 *</option>
data-season="<?=$iterSeasonIdx?>"
value=""
<?=($iterSeasonIdx == $seasonIdx && $scenarioIdx === null)?"selected='selected'":''?>
>* 시즌 : <?=$iterSeasonIdx?> 종합 *</option>
<?php foreach ($subScenarioList as $info) : ?> <?php foreach ($subScenarioList as $info) : ?>
<option <option data-season="<?= $iterSeasonIdx ?>" value="<?= $info['scenario'] ?>" <?= ($iterSeasonIdx == $seasonIdx && $info['scenario'] === $scenarioIdx) ? "selected='selected'" : '' ?>><?= $info['name'] ?>(<?= $info['cnt'] ?>회)</option>
data-season="<?=$iterSeasonIdx?>"
value="<?=$info['scenario']?>"
<?=($iterSeasonIdx == $seasonIdx && $info['scenario']===$scenarioIdx)?"selected='selected'":''?>
><?=$info['name']?>(<?=$info['cnt']?>회)</option>
<?php endforeach; ?> <?php endforeach; ?>
<?php endforeach; ?> <?php endforeach; ?>
?> ?>
</select> </select>
</td></tr> </td>
</tr>
</table> </table>
<div style="margin:auto;width:1100px;"> <div style="margin:auto;width:1100px;">
<?php <?php
@@ -129,8 +125,7 @@ foreach($types as $typeName=>[$typeDescribe, $typeValue]) {
if (!key_exists('bgColor', $general)) { if (!key_exists('bgColor', $general)) {
if (!key_exists('color', $general)) { if (!key_exists('color', $general)) {
$general['bgColor'] = GameConst::$basecolor4; $general['bgColor'] = GameConst::$basecolor4;
} } else {
else{
$general['bgColor'] = $general['color']; $general['bgColor'] = $general['color'];
} }
} }
@@ -142,8 +137,7 @@ foreach($types as $typeName=>[$typeDescribe, $typeValue]) {
if (key_exists('picture', $general)) { if (key_exists('picture', $general)) {
$imageTemp = GetImageURL($general['imgsvr']); $imageTemp = GetImageURL($general['imgsvr']);
$general['pictureFullPath'] = "$imageTemp/{$general['picture']}"; $general['pictureFullPath'] = "$imageTemp/{$general['picture']}";
} } else {
else{
$general['pictureFullPath'] = GetImageURL(0) . "/default.jpg"; $general['pictureFullPath'] = GetImageURL(0) . "/default.jpg";
} }
@@ -151,8 +145,7 @@ foreach($types as $typeName=>[$typeDescribe, $typeValue]) {
$value = $general['value']; $value = $general['value'];
if ($typeValue == 'percent') { if ($typeValue == 'percent') {
$general['printValue'] = number_format($value * 100, 2) . '%'; $general['printValue'] = number_format($value * 100, 2) . '%';
} } else {
else {
$general['printValue'] = number_format($value); $general['printValue'] = number_format($value);
} }
} }
@@ -168,8 +161,13 @@ foreach($types as $typeName=>[$typeDescribe, $typeValue]) {
?> ?>
</div> </div>
<table align=center width=1100 class='tb_layout bg0'> <table align=center width=1100 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?> </td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?> </td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+30 -14
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -47,8 +48,7 @@ $e = $e_year * 12 + $e_month;
if ($serverID !== UniqueConst::$serverID) { if ($serverID !== UniqueConst::$serverID) {
$mapTheme = $db->queryFirstField('SELECT map FROM ng_games WHERE server_id=%s', $serverID) ?: 'che'; $mapTheme = $db->queryFirstField('SELECT map FROM ng_games WHERE server_id=%s', $serverID) ?: 'che';
} } else {
else{
$mapTheme = $admin['map_theme'] ?? 'che'; $mapTheme = $admin['map_theme'] ?? 'che';
} }
@@ -56,8 +56,7 @@ else{
if ($serverID !== UniqueConst::$serverID && !$yearmonth) { if ($serverID !== UniqueConst::$serverID && !$yearmonth) {
$year = $s_year; $year = $s_year;
$month = $s_month; $month = $s_month;
} } else if (!$yearmonth) {
else if (!$yearmonth) {
$year = $admin['year']; $year = $admin['year'];
$month = $admin['month'] - 1; $month = $admin['month'] - 1;
} else { } else {
@@ -101,11 +100,11 @@ $nations = Json::decode($history['nations']);
<title><?= UniqueConst::$serverName ?>: 연감</title> <title><?= UniqueConst::$serverName ?>: 연감</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS("js/map/theme_{$mapTheme}.js") ?> <?= WebUtil::printJS("js/map/theme_{$mapTheme}.js") ?>
<?= WebUtil::printJS('dist_js/history.js') ?> <?= WebUtil::printJS('dist_js/history.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/map.css') ?> <?= WebUtil::printCSS('css/map.css') ?>
<?= WebUtil::printCSS('css/history.css') ?> <?= WebUtil::printCSS('css/history.css') ?>
@@ -122,8 +121,11 @@ var nations = <?=$nations?$history['nations']:'{}'?>;
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>연 감<br><?=closeButton()?></td></tr> <tr>
<tr><td> <td>연 감<br><?= closeButton() ?></td>
</tr>
<tr>
<td>
<form name=form1 method=post> <form name=form1 method=post>
연월 선택 : 연월 선택 :
<input type=submit name=btn value="◀◀ 이전달"> <input type=submit name=btn value="◀◀ 이전달">
@@ -134,10 +136,15 @@ var nations = <?=$nations?$history['nations']:'{}'?>;
<input type=submit name=btn value='조회하기'> <input type=submit name=btn value='조회하기'>
<input type=submit name=btn value="다음달 ▶▶"> <input type=submit name=btn value="다음달 ▶▶">
</form> </form>
</td></tr> </td>
</tr>
</table> </table>
<table align=center width=1000 height=520 class='tb_layout bg0'> <table align=center width=1000 height=520 class='tb_layout bg0'>
<thead><tr><th colspan=5 align=center class='bg1'>중 원 지 도</th></tr></thead> <thead>
<tr>
<th colspan=5 align=center class='bg1'>중 원 지 도</th>
</tr>
</thead>
<tbody> <tbody>
<tr height=520> <tr height=520>
<td width=698> <td width=698>
@@ -167,13 +174,17 @@ var nations = <?=$nations?$history['nations']:'{}'?>;
</table> </table>
</td> </td>
</tr> </tr>
<tr><th colspan=5 align=center class='bg1'>중 원 정 세</th></tr> <tr>
<th colspan=5 align=center class='bg1'>중 원 정 세</th>
</tr>
<tr> <tr>
<td colspan=5 valign=top> <td colspan=5 valign=top>
<?= formatHistoryToHTML(Json::decode($history['global_history'])) ?> <?= formatHistoryToHTML(Json::decode($history['global_history'])) ?>
</td> </td>
</tr> </tr>
<tr><th colspan=5 align=center class='bg1'>장 수 동 향</th></tr> <tr>
<th colspan=5 align=center class='bg1'>장 수 동 향</th>
</tr>
<tr> <tr>
<td colspan=5 valign=top> <td colspan=5 valign=top>
<?= formatHistoryToHTML(Json::decode($history['global_action'])) ?> <?= formatHistoryToHTML(Json::decode($history['global_action'])) ?>
@@ -182,8 +193,12 @@ var nations = <?=$nations?$history['nations']:'{}'?>;
</tbody> </tbody>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?> </td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?> </td>
</tr>
</table> </table>
<script> <script>
window.serverNick = '<?= DB::prefix() ?>'; window.serverNick = '<?= DB::prefix() ?>';
@@ -198,4 +213,5 @@ reloadWorldMap({
}); });
</script> </script>
</body> </body>
</html> </html>
+27 -12
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -15,7 +16,10 @@ increaseRefresh("세력일람", 2);
$me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner=%i', $userID); $me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']); $con = checkLimit($me['con']);
if($con >= 2) { printLimitMsg($me['turntime']); exit(); } if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
}
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
@@ -27,22 +31,26 @@ if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
<title><?= UniqueConst::$serverName ?>: 세력일람</title> <title><?= UniqueConst::$serverName ?>: 세력일람</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/extKingdoms.js') ?> <?= WebUtil::printJS('dist_js/extKingdoms.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>세 력 일 람<br><?=closeButton()?></td></tr> <tr>
<td>세 력 일 람<br><?= closeButton() ?></td>
</tr>
</table> </table>
<?php <?php
$nations = getAllNationStaticInfo(); $nations = getAllNationStaticInfo();
uasort($nations, function($lhs, $rhs){return $rhs['power']<=>$lhs['power'];}); uasort($nations, function ($lhs, $rhs) {
return $rhs['power'] <=> $lhs['power'];
});
$nations[0] = getNationStaticInfo(0); $nations[0] = getNationStaticInfo(0);
@@ -80,8 +88,7 @@ foreach ($nations as $nation) {
$generalPermission = checkSecretPermission($general, false); $generalPermission = checkSecretPermission($general, false);
if ($generalPermission == 4) { if ($generalPermission == 4) {
$ambassadors[] = $general['name']; $ambassadors[] = $general['name'];
} } else if ($generalPermission == 3) {
else if($generalPermission == 3){
$auditors[] = $general['name']; $auditors[] = $general['name'];
} }
} }
@@ -141,9 +148,13 @@ foreach ($nations as $nation) {
<tr> <tr>
<td colspan=8> 장수 일람 : "; <td colspan=8> 장수 일람 : ";
foreach ($generals as $general) { foreach ($generals as $general) {
if($general['npc'] >= 2) { echo "<font color=cyan>{$general['name']}</font>, "; } if ($general['npc'] >= 2) {
elseif($general['npc'] == 1) { echo "<font color=skyblue>{$general['name']}</font>, "; } echo "<font color=cyan>{$general['name']}</font>, ";
else { echo "{$general['name']}, "; } } elseif ($general['npc'] == 1) {
echo "<font color=skyblue>{$general['name']}</font>, ";
} else {
echo "{$general['name']}, ";
}
} }
echo " echo "
</td> </td>
@@ -187,8 +198,12 @@ echo"
?> ?>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
+20 -10
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -28,18 +29,22 @@ $sel[$type] = "selected";
<title><?= UniqueConst::$serverName ?>: 빙의일람</title> <title><?= UniqueConst::$serverName ?>: 빙의일람</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>빙 의 일 람<br><?=closeButton()?></td></tr> <tr>
<tr><td><form name=form1 method=post>정렬순서 : <td>빙 의 일 람<br><?= closeButton() ?></td>
</tr>
<tr>
<td>
<form name=form1 method=post>정렬순서 :
<select name=type size=1> <select name=type size=1>
<option <?= $sel[1] ?? '' ?> value=1>이름</option> <option <?= $sel[1] ?? '' ?> value=1>이름</option>
<option <?= $sel[2] ?? '' ?> value=2>국가</option> <option <?= $sel[2] ?? '' ?> value=2>국가</option>
@@ -50,8 +55,10 @@ $sel[$type] = "selected";
<option <?= $sel[7] ?? '' ?> value=7>명성</option> <option <?= $sel[7] ?? '' ?> value=7>명성</option>
<option <?= $sel[8] ?? '' ?> value=8>계급</option> <option <?= $sel[8] ?? '' ?> value=8>계급</option>
</select> </select>
<input type=submit value='정렬하기'></form> <input type=submit value='정렬하기'>
</td></tr> </form>
</td>
</tr>
</table> </table>
<?php <?php
$nationName = []; $nationName = [];
@@ -84,8 +91,7 @@ if($isAsc){
usort($generalList, function ($lhs, $rhs) use ($sortKey) { usort($generalList, function ($lhs, $rhs) use ($sortKey) {
return $lhs[$sortKey] <=> $rhs[$sortKey]; return $lhs[$sortKey] <=> $rhs[$sortKey];
}); });
} } else {
else{
usort($generalList, function ($lhs, $rhs) use ($sortKey) { usort($generalList, function ($lhs, $rhs) use ($sortKey) {
return $rhs[$sortKey] <=> $lhs[$sortKey]; return $rhs[$sortKey] <=> $lhs[$sortKey];
}); });
@@ -125,8 +131,12 @@ else{
<?php endforeach; ?> <?php endforeach; ?>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
+17 -6
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -18,10 +19,14 @@ $mapTheme = $gameStor->map_theme??'che';
$me = $db->queryFirstRow('SELECT con,turntime from general where owner=%i', $userID); $me = $db->queryFirstRow('SELECT con,turntime from general where owner=%i', $userID);
$con = checkLimit($me['con']); $con = checkLimit($me['con']);
if($con >= 2) { printLimitMsg($me['turntime']); exit(); } if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
}
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -29,6 +34,7 @@ if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
<title><?= UniqueConst::$serverName ?>: 세력도</title> <title><?= UniqueConst::$serverName ?>: 세력도</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?= WebUtil::printJS('d_shared/base_map.js') ?> <?= WebUtil::printJS('d_shared/base_map.js') ?>
<?= WebUtil::printJS('dist_js/map.js') ?> <?= WebUtil::printJS('dist_js/map.js') ?>
@@ -45,10 +51,9 @@ $(function(){
}); });
</script> </script>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?= WebUtil::printCSS('css/normalize.css') ?> <?= WebUtil::printCSS('css/normalize.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/map.css') ?> <?= WebUtil::printCSS('css/map.css') ?>
@@ -56,7 +61,9 @@ $(function(){
<body> <body>
<table align=center width=1200 class='tb_layout bg0'> <table align=center width=1200 class='tb_layout bg0'>
<tr><td>세 력 도<br><?=closeButton()?></td></tr> <tr>
<td>세 력 도<br><?= closeButton() ?></td>
</tr>
</table> </table>
<table align=center width=1200 height=520 class='tb_layout bg0'> <table align=center width=1200 height=520 class='tb_layout bg0'>
<tr height=520> <tr height=520>
@@ -74,8 +81,12 @@ $(function(){
</tr> </tr>
</table> </table>
<table align=center width=1200 class='tb_layout bg0'> <table align=center width=1200 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?> </td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?> </td>
</tr>
</table> </table>
</body> </body>
+73 -16
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -47,6 +48,7 @@ if ($admin['maxonline'] < $curonline) {
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title><?= UniqueConst::$serverName ?>: 트래픽정보</title> <title><?= UniqueConst::$serverName ?>: 트래픽정보</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
@@ -54,10 +56,10 @@ if ($admin['maxonline'] < $curonline) {
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<style> <style>
.big_bar { .big_bar {
@@ -65,6 +67,7 @@ if ($admin['maxonline'] < $curonline) {
position: relative; position: relative;
height: 30px; height: 30px;
} }
.big_bar span { .big_bar span {
float: right; float: right;
padding: 0; padding: 0;
@@ -85,15 +88,23 @@ span.out_bar{
} }
</style> </style>
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>트 래 픽 정 보<br><?=closeButton()?></td></tr> <tr>
<td>트 래 픽 정 보<br><?= closeButton() ?></td>
</tr>
</table> </table>
<br> <br>
<table align=center width=1016> <table align=center width=1016>
<tr><td align=left> <tr>
<td align=left>
<table align=center class='tb_layout bg0'> <table align=center class='tb_layout bg0'>
<tr><td colspan=4 align=center class='bg2'><font size=5>접 속 량</font></td></tr> <tr>
<td colspan=4 align=center class='bg2'>
<font size=5>접 속 량</font>
</td>
</tr>
<?php <?php
$refresh[] = $admin['refresh']; $refresh[] = $admin['refresh'];
foreach ($refresh as $i => $value) { foreach ($refresh as $i => $value) {
@@ -118,7 +129,9 @@ foreach($refresh as $i=>$value){
<?php <?php
} }
?> ?>
<tr><td colspan=4 height=5 align=center class='bg1'></td></tr> <tr>
<td colspan=4 height=5 align=center class='bg1'></td>
</tr>
<tr> <tr>
<td colspan=4 height=30 align=center class='bg0'>최고기록: <?= $admin['maxrefresh'] ?></td> <td colspan=4 height=30 align=center class='bg0'>최고기록: <?= $admin['maxrefresh'] ?></td>
</tr> </tr>
@@ -128,7 +141,11 @@ foreach($refresh as $i=>$value){
</td> </td>
<td align=right> <td align=right>
<table align=center class='tb_layout bg0'> <table align=center class='tb_layout bg0'>
<tr><td colspan=4 align=center class='bg2'><font size=5>접 속 자</font></td></tr> <tr>
<td colspan=4 align=center class='bg2'>
<font size=5>접 속 자</font>
</td>
</tr>
<?php <?php
$online[] = $curonline; $online[] = $curonline;
foreach ($online as $i => $value) { foreach ($online as $i => $value) {
@@ -153,16 +170,23 @@ foreach($online as $i=>$value){
<?php <?php
} }
?> ?>
<tr><td colspan=4 height=5 align=center class='bg1'></td></tr> <tr>
<td colspan=4 height=5 align=center class='bg1'></td>
</tr>
<tr> <tr>
<td colspan=4 height=30 align=center class='bg0'>최고기록: <?= $admin['maxonline'] ?></td> <td colspan=4 height=30 align=center class='bg0'>최고기록: <?= $admin['maxonline'] ?></td>
</tr> </tr>
</table> </table>
</td></tr> </td>
</tr>
</table> </table>
<br> <br>
<table align=center class='tb_layout bg0'> <table align=center class='tb_layout bg0'>
<tr><td colspan=3 align=center class='bg2'><font size=5>주 의 대 상 자 (순간과도갱신)</font></td></tr> <tr>
<td colspan=3 align=center class='bg2'>
<font size=5>주 의 대 상 자 (순간과도갱신)</font>
</td>
</tr>
<?php <?php
$max_refresh = $db->queryFirstRow('SELECT sum(refresh) as refresh, sum(`connect`) as `connect` from general'); $max_refresh = $db->queryFirstRow('SELECT sum(refresh) as refresh, sum(`connect`) as `connect` from general');
$max_refresh['name'] = '접속자 총합'; $max_refresh['name'] = '접속자 총합';
@@ -192,10 +216,15 @@ foreach ($refresh_result as $i=>$user) {
</table> </table>
<br> <br>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?> </td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?> </td>
</tr>
</table> </table>
</body> </body>
</html> </html>
<?php <?php
@@ -218,9 +247,37 @@ function getHex($dec)
function getHexCode($hex) function getHexCode($hex)
{ {
switch ($hex) { switch ($hex) {
case 0: return "0"; case 1: return "1"; case 2: return "2"; case 3: return "3"; case 0:
case 4: return "4"; case 5: return "5"; case 6: return "6"; case 7: return "7"; return "0";
case 8: return "8"; case 9: return "9"; case 10: return "A"; case 11: return "B"; case 1:
case 12: return "C"; case 13: return "D"; case 14: return "E"; case 15: return "F"; return "1";
case 2:
return "2";
case 3:
return "3";
case 4:
return "4";
case 5:
return "5";
case 6:
return "6";
case 7:
return "7";
case 8:
return "8";
case 9:
return "9";
case 10:
return "A";
case 11:
return "B";
case 12:
return "C";
case 13:
return "D";
case 14:
return "E";
case 15:
return "F";
} }
} }
+60 -26
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -23,6 +24,7 @@ $vote = $admin['vote']?:['-'];
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title><?= UniqueConst::$serverName ?>: 설문조사</title> <title><?= UniqueConst::$serverName ?>: 설문조사</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
@@ -30,10 +32,10 @@ $vote = $admin['vote']?:['-'];
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<style> <style>
.little_bar { .little_bar {
@@ -55,13 +57,20 @@ function captureKey(e) {
</script> </script>
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>설 문 조 사<br><?=closeButton()?></td></tr> <tr>
<td>설 문 조 사<br><?= closeButton() ?></td>
</tr>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<form name=form1 action=c_vote.php method=post> <form name=form1 action=c_vote.php method=post>
<tr><td colspan=3 align=center class='bg2'><font size=5>설 문 조 사 (<?=$admin['develcost']*5?>금과 추첨으로 유니크템 증정!)</font></td></tr> <tr>
<td colspan=3 align=center class='bg2'>
<font size=5>설 문 조 사 (<?= $admin['develcost'] * 5 ?>금과 추첨으로 유니크템 증정!)</font>
</td>
</tr>
<?php <?php
if ($isVoteAdmin) { if ($isVoteAdmin) {
@@ -181,7 +190,9 @@ if ($me['no'] > 0) {
</table> </table>
<br> <br>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td colspan=3 align=center class='bg2'><font size=5> <tr>
<td colspan=3 align=center class='bg2'>
<font size=5>
전 체 통 계 전 체 통 계
<?php <?php
if ($isVoteAdmin) { if ($isVoteAdmin) {
@@ -235,8 +246,7 @@ if ($admin['voteopen'] >= 1 || $isVoteAdmin) {
$per = round(($totalVote[$i] ?? 0) * 100 / $memCount, 1); $per = round(($totalVote[$i] ?? 0) * 100 / $memCount, 1);
if ($i == $voteTypeCount - 1) { if ($i == $voteTypeCount - 1) {
$per = 100 - $totalPer; $per = 100 - $totalPer;
} } else {
else{
$totalPer += $per; $totalPer += $per;
} }
@@ -281,8 +291,7 @@ if ($admin['voteopen'] >= 2 || $isVoteAdmin) {
$per = round(Util::array_get($nationVote[0][$i], 0) / $memCount * 100, 1); $per = round(Util::array_get($nationVote[0][$i], 0) / $memCount * 100, 1);
if ($i == $voteTypeCount - 1) { if ($i == $voteTypeCount - 1) {
$per = 100 - $totalPer; $per = 100 - $totalPer;
} } else {
else{
$totalPer += $per; $totalPer += $per;
} }
// if($per < 5) { $vote['cnt'] = "&nbsp;"; } // if($per < 5) { $vote['cnt'] = "&nbsp;"; }
@@ -309,8 +318,7 @@ if ($admin['voteopen'] >= 2 || $isVoteAdmin) {
$voteCount = $nationVoteCount[$nation['nation']] ?? 0; $voteCount = $nationVoteCount[$nation['nation']] ?? 0;
if ($memCount == 0) { if ($memCount == 0) {
$percentage = 100; $percentage = 100;
} } else {
else{
$percentage = round($voteCount / $memCount * 100, 1); $percentage = round($voteCount / $memCount * 100, 1);
} }
@@ -333,8 +341,7 @@ if ($admin['voteopen'] >= 2 || $isVoteAdmin) {
if ($i == $voteTypeCount - 1) { if ($i == $voteTypeCount - 1) {
$per = 100 - $totalPer; $per = 100 - $totalPer;
} } else {
else{
$totalPer += $per; $totalPer += $per;
} }
@@ -359,10 +366,15 @@ if ($admin['voteopen'] >= 2 || $isVoteAdmin) {
</form> </form>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?> </td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?> </td>
</tr>
</table> </table>
</body> </body>
</html> </html>
<?php <?php
@@ -374,14 +386,30 @@ function getVoteColor($type)
switch ($type) { switch ($type) {
default: default:
case 0: $color = "black"; break; case 0:
case 1: $color = "red"; break; $color = "black";
case 2: $color = "orange"; break; break;
case 3: $color = "yellow"; break; case 1:
case 4: $color = "green"; break; $color = "red";
case 5: $color = "blue"; break; break;
case 6: $color = "navy"; break; case 2:
case 7: $color = "purple"; break; $color = "orange";
break;
case 3:
$color = "yellow";
break;
case 4:
$color = "green";
break;
case 5:
$color = "blue";
break;
case 6:
$color = "navy";
break;
case 7:
$color = "purple";
break;
} }
return $color; return $color;
@@ -394,9 +422,15 @@ function getNewColor($type)
} }
switch ($type) { switch ($type) {
case 2: $color = "black"; break; case 2:
case 3: $color = "black"; break; $color = "black";
default:$color = "white"; break; break;
case 3:
$color = "black";
break;
default:
$color = "white";
break;
} }
return $color; return $color;
+48 -14
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -44,6 +45,7 @@ if ($msg2 == "") {
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title><?= UniqueConst::$serverName ?>: 거래장</title> <title><?= UniqueConst::$serverName ?>: 거래장</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
@@ -51,20 +53,31 @@ if ($msg2 == "") {
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>거 래 장<br><?=closeButton()?></td></tr> <tr>
<tr><td align=center class='bg2'><font color=orange size=6><b>거 래 장</b></font><input type=button value='갱신' onclick="location.replace('b_auction.php')"></td></tr> <td>거 래 장<br><?= closeButton() ?></td>
</tr>
<tr>
<td align=center class='bg2'>
<font color=orange size=6><b>거 래 장</b></font><input type=button value='갱신' onclick="location.replace('b_auction.php')">
</td>
</tr>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<form method=post action=c_auction.php> <form method=post action=c_auction.php>
<tr><td colspan=11 align=center bgcolor=orange><font size=5>팝 니 다</font></td></tr> <tr>
<td colspan=11 align=center bgcolor=orange>
<font size=5>팝 니 다</font>
</td>
</tr>
<tr align=center class='bg1'> <tr align=center class='bg1'>
<td width=68>거래번호</td> <td width=68>거래번호</td>
<td width=48>선택</td> <td width=48>선택</td>
@@ -152,7 +165,11 @@ foreach($db->query('SELECT * from auction where type=0 order by expire') as $auc
<br> <br>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<form method=post action=c_auction.php> <form method=post action=c_auction.php>
<tr><td colspan=11 align=center bgcolor=skyblue><font size=5>삽 니 다</font></td></tr> <tr>
<td colspan=11 align=center bgcolor=skyblue>
<font size=5>삽 니 다</font>
</td>
</tr>
<tr align=center class='bg1'> <tr align=center class='bg1'>
<td width=68>거래번호</td> <td width=68>거래번호</td>
<td width=48>선택</td> <td width=48>선택</td>
@@ -238,12 +255,23 @@ foreach($db->query('SELECT * from auction where type=1 order by expire') as $auc
</table> </table>
<br> <br>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td align=center class='bg2'><font size=5>최 근 기 록</font></td></tr> <tr>
<tr><td> <td align=center class='bg2'>
<font size=5>최 근 기 록</font>
</td>
</tr>
<tr>
<td>
<?= getAuctionLogRecent(20) ?> <?= getAuctionLogRecent(20) ?>
</td></tr> </td>
<tr><td align=center class='bg2'><font size=5>도 움 말</font></td></tr> </tr>
<tr><td> <tr>
<td align=center class='bg2'>
<font size=5>도 움 말</font>
</td>
</tr>
<tr>
<td>
<font color=white size=2> <font color=white size=2>
ㆍ판매거래는 거래자가 판매할 물품을 거래하면, 구입을 희망하는 사람이 현재가보다 높게 입찰하여 구입하는 방식입니다.<br> ㆍ판매거래는 거래자가 판매할 물품을 거래하면, 구입을 희망하는 사람이 현재가보다 높게 입찰하여 구입하는 방식입니다.<br>
ㆍ<font color=cyan>Hint</font>) 쌀이 귀한 경우는 입찰자가 많아서 자연스레 단가가 오르게 됩니다. (해당 물품을 사려는 가격이 오름)<br> ㆍ<font color=cyan>Hint</font>) 쌀이 귀한 경우는 입찰자가 많아서 자연스레 단가가 오르게 됩니다. (해당 물품을 사려는 가격이 오름)<br>
@@ -267,9 +295,15 @@ foreach($db->query('SELECT * from auction where type=1 order by expire') as $auc
ㆍ<font color=cyan>Hint</font>) 단가가 낮으면(<1.00) 금이 비싸므로 구매가 이득입니다.<br> ㆍ<font color=cyan>Hint</font>) 단가가 낮으면(<1.00) 금이 비싸므로 구매가 이득입니다.<br>
ㆍ즐거운 거래! ㆍ즐거운 거래!
</font> </font>
</td></tr> </td>
<tr><td><?=closeButton()?></td></tr> </tr>
<tr><td><?=banner()?> </td></tr> <tr>
<td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?> </td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+47 -26
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -63,8 +64,7 @@ $permission = checkSecretPermission($me);
if ($permission < 0) { if ($permission < 0) {
echo '국가에 소속되어있지 않습니다.'; echo '국가에 소속되어있지 않습니다.';
die(); die();
} } else if ($permission < 1) {
else if ($permission < 1) {
echo "권한이 부족합니다. 수뇌부가 아니거나 사관년도가 부족합니다."; echo "권한이 부족합니다. 수뇌부가 아니거나 사관년도가 부족합니다.";
die(); die();
} }
@@ -82,25 +82,24 @@ if ($btn == '정렬하기') {
[$queryTypeText, $reqArgType, $comp] = $queryMap[$reqQueryType]; [$queryTypeText, $reqArgType, $comp] = $queryMap[$reqQueryType];
if ($reqArgType === 0) { if ($reqArgType === 0) {
$generalBasicList = $db->query('SELECT no, name, npc, turntime, officer_level FROM general WHERE nation = %i', $nationID); $generalBasicList = $db->query('SELECT no, name, npc, turntime, officer_level FROM general WHERE nation = %i', $nationID);
} } else if ($reqArgType === 1) {
else if($reqArgType===1){
$generalBasicList = $db->query('SELECT no, name, npc, turntime, officer_level, %b FROM general WHERE nation = %i', $reqQueryType, $nationID); $generalBasicList = $db->query('SELECT no, name, npc, turntime, officer_level, %b FROM general WHERE nation = %i', $reqQueryType, $nationID);
} } else if ($reqArgType === 2) {
else if($reqArgType===2){ $generalBasicList = $db->query(
$generalBasicList = $db->query('SELECT no, name, npc, turntime, officer_level, value as %b 'SELECT no, name, npc, turntime, officer_level, value as %b
FROM general LEFT JOIN rank_data FROM general LEFT JOIN rank_data
ON general.no = rank_data.general_id ON general.no = rank_data.general_id
WHERE rank_data.type = %s AND general.nation = %i', WHERE rank_data.type = %s AND general.nation = %i',
$reqQueryType, $reqQueryType, $nationID $reqQueryType,
$reqQueryType,
$nationID
); );
} } else if ($reqArgType === 3) {
else if($reqArgType===3){
$generalBasicList = array_map(function ($arr) { $generalBasicList = array_map(function ($arr) {
$arr['aux'] = Json::decode($arr['aux']); $arr['aux'] = Json::decode($arr['aux']);
return $arr; return $arr;
}, $db->query('SELECT no, name, npc, turntime, officer_level, aux FROM general WHERE nation = %i', $nationID)); }, $db->query('SELECT no, name, npc, turntime, officer_level, aux FROM general WHERE nation = %i', $nationID));
} } else {
else{
throw new \sammo\MustNotBeReachedException(); throw new \sammo\MustNotBeReachedException();
} }
@@ -122,18 +121,21 @@ $showGeneral = General::createGeneralObjFromDB($gen);
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>감 찰 부<br><?=closeButton()?></td></tr> <tr>
<tr><td> <td>감 찰 부<br><?= closeButton() ?></td>
</tr>
<tr>
<td>
<form name=form1 method=post> <form name=form1 method=post>
정렬순서 : 정렬순서 :
<select name='query_type' size=1> <select name='query_type' size=1>
@@ -150,24 +152,34 @@ $showGeneral = General::createGeneralObjFromDB($gen);
</select> </select>
<input type=submit name=btn value='조회하기'> <input type=submit name=btn value='조회하기'>
</form> </form>
</td></tr> </td>
</tr>
</table> </table>
<table width=1000 align=center class='tb_layout bg0'> <table width=1000 align=center class='tb_layout bg0'>
<tr> <tr>
<td width=50% align=center class='bg1'><font color=skyblue size=3>장 수 정 보</font></td> <td width=50% align=center class='bg1'>
<td width=50% align=center class='bg1'><font color=orange size=3>장 수 열 전</font></td> <font color=skyblue size=3>장 수 정 보</font>
</td>
<td width=50% align=center class='bg1'>
<font color=orange size=3>장 수 열 전</font>
</td>
</tr> </tr>
<tr> <tr>
<td valign=top> <td valign=top>
<?php generalInfo($showGeneral); generalInfo2($showGeneral); ?> <?php generalInfo($showGeneral);
generalInfo2($showGeneral); ?>
</td> </td>
<td valign=top> <td valign=top>
<?= formatHistoryToHTML(getGeneralHistoryLogAll($gen)) ?> <?= formatHistoryToHTML(getGeneralHistoryLogAll($gen)) ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td align=center class='bg1'><font color=orange size=3>전투 기록</font></td> <td align=center class='bg1'>
<td align=center class='bg1'><font color=orange size=3>전투 결과</font></td> <font color=orange size=3>전투 기록</font>
</td>
<td align=center class='bg1'>
<font color=orange size=3>전투 결과</font>
</td>
</tr> </tr>
<tr> <tr>
<td valign=top> <td valign=top>
@@ -179,8 +191,12 @@ $showGeneral = General::createGeneralObjFromDB($gen);
</tr> </tr>
<?php if ($showGeneral->getNPCType() > 1 || $permission >= 2) : ?> <?php if ($showGeneral->getNPCType() > 1 || $permission >= 2) : ?>
<tr> <tr>
<td align=center class='bg1'><font color=orange size=3>개인 기록</font></td> <td align=center class='bg1'>
<td align=center class='bg1'><font color=orange size=3>&nbsp;</font></td> <font color=orange size=3>개인 기록</font>
</td>
<td align=center class='bg1'>
<font color=orange size=3>&nbsp;</font>
</td>
</tr> </tr>
<tr> <tr>
<td valign=top> <td valign=top>
@@ -192,8 +208,13 @@ $showGeneral = General::createGeneralObjFromDB($gen);
<?php endif; ?> <?php endif; ?>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?> </td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?> </td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+137 -34
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -35,11 +36,32 @@ if ($con >= 2) {
} }
switch ($admin['tnmt_type']) { switch ($admin['tnmt_type']) {
default: throw new \RuntimeException('Invalid tnmt_type'); default:
case 0: $tnmt_type = "<font color=cyan>전력전</font>"; $tp = "total"; $tp2 = "종합"; $tp3 = "total"; break; throw new \RuntimeException('Invalid tnmt_type');
case 1: $tnmt_type = "<font color=cyan>통솔전</font>"; $tp = "leadership"; $tp2 = "통솔"; $tp3 = "leadership"; break; case 0:
case 2: $tnmt_type = "<font color=cyan>일기토</font>"; $tp = "strength"; $tp2 = "무력"; $tp3 = "strength"; break; $tnmt_type = "<font color=cyan>전력전</font>";
case 3: $tnmt_type = "<font color=cyan>설전</font>"; $tp = "intel"; $tp2 = "지력"; $tp3 = "intel"; break; $tp = "total";
$tp2 = "종합";
$tp3 = "total";
break;
case 1:
$tnmt_type = "<font color=cyan>통솔전</font>";
$tp = "leadership";
$tp2 = "통솔";
$tp3 = "leadership";
break;
case 2:
$tnmt_type = "<font color=cyan>일기토</font>";
$tp = "strength";
$tp2 = "무력";
$tp3 = "strength";
break;
case 3:
$tnmt_type = "<font color=cyan>설전</font>";
$tp = "intel";
$tp2 = "지력";
$tp3 = "intel";
break;
} }
$str1 = getTournament($admin['tournament']); $str1 = getTournament($admin['tournament']);
@@ -58,6 +80,7 @@ if($str3){
<?php if ($con == 1) { <?php if ($con == 1) {
MessageBox("접속제한이 얼마 남지 않았습니다!"); MessageBox("접속제한이 얼마 남지 않았습니다!");
} ?> } ?>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -65,24 +88,39 @@ if($str3){
<title><?= UniqueConst::$serverName ?>: 베팅장</title> <title><?= UniqueConst::$serverName ?>: 베팅장</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/betting.js') ?> <?= WebUtil::printJS('dist_js/betting.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
<table align=center width=1120 class='tb_layout bg0'> <table align=center width=1120 class='tb_layout bg0'>
<tr><td>베 팅 장<br><?=closeButton()?></td></tr> <tr>
<td>베 팅 장<br><?= closeButton() ?></td>
</tr>
</table> </table>
<table align=center width=1120 class='tb_layout bg0'> <table align=center width=1120 class='tb_layout bg0'>
<tr><td colspan=16><input type=button value='갱신' onclick='location.reload()'></td></tr> <tr>
<tr><td colspan=16 align=center><font color=white size=6><?=$tnmt_type?> (<?=$str1.$str2.$str3?>)</font></td></tr> <td colspan=16><input type=button value='갱신' onclick='location.reload()'></td>
<tr><td height=50 colspan=16 align=center class='bg2'><font color=limegreen size=6>16강 상황</font><br><font color=orange size=3>(전체 금액 : <?=$globalBetTotal?> / 내 투자 금액 : <?=$myBetTotal?>)</font></td></tr> </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 class='bg2'>
<font color=limegreen size=6>16강 상황</font><br>
<font color=orange size=3>(전체 금액 : <?= $globalBetTotal ?> / 내 투자 금액 : <?= $myBetTotal ?>)</font>
</td>
</tr>
</table> </table>
<table align=center width=1120 class='mimic_flex bg0' style='border:solid 1px gray;font-size:10px;'> <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>
<td height=10 colspan=16></td>
</tr>
<tr align=center> <tr align=center>
<?php <?php
$generalList = $db->query('SELECT npc,name,win from tournament where grp>=60 order by grp, grp_no LIMIT 1'); $generalList = $db->query('SELECT npc,name,win from tournament where grp>=60 order by grp, grp_no LIMIT 1');
@@ -298,8 +336,7 @@ $gold = [];
for ($i = 0; $i < 16; $i++) { for ($i = 0; $i < 16; $i++) {
if ($globalBet[$i] == 0) { if ($globalBet[$i] == 0) {
$bet[$i] = "∞"; $bet[$i] = "∞";
} } else {
else{
$bet[$i] = round($globalBetTotal / $globalBet[$i], 2); $bet[$i] = round($globalBetTotal / $globalBet[$i], 2);
} }
} }
@@ -307,17 +344,17 @@ for ($i=0; $i < 16; $i++) {
for ($i = 0; $i < 16; $i++) { for ($i = 0; $i < 16; $i++) {
if (!is_numeric($bet[$i])) { if (!is_numeric($bet[$i])) {
$gold[$i] = 0; $gold[$i] = 0;
} } else {
else{
$gold[$i] = Util::round($myBet[$i] * $bet[$i]); $gold[$i] = Util::round($myBet[$i] * $bet[$i]);
} }
} }
?> ?>
</tr> </tr>
</table> </table>
<table align=center width=1120 class='tb_layout bg0'> <table align=center width=1120 class='tb_layout bg0'>
<tr align=center><td height=10 colspan=16></td></tr> <tr align=center>
<td height=10 colspan=16></td>
</tr>
<?php <?php
echo " echo "
<tr align=center>"; <tr align=center>";
@@ -328,8 +365,22 @@ for ($i=0; $i < 16; $i++) {
?> ?>
</tr> </tr>
<tr align=center> <tr align=center>
<td>×</td><td>×</td><td>×</td><td>×</td><td>×</td><td>×</td><td>×</td><td>×</td> <td>×</td>
<td>×</td><td>×</td><td>×</td><td>×</td><td>×</td><td>×</td><td>×</td><td>×</td> <td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
<td>×</td>
</tr> </tr>
<tr align=center> <tr align=center>
<?php <?php
@@ -339,8 +390,22 @@ for ($i=0; $i < 16; $i++) {
?> ?>
</tr> </tr>
<tr align=center> <tr align=center>
<td>∥</td><td>∥</td><td>∥</td><td>∥</td><td>∥</td><td>∥</td><td>∥</td><td>∥</td> <td>∥</td>
<td>∥</td><td>∥</td><td>∥</td><td>∥</td><td>∥</td><td>∥</td><td>∥</td><td>∥</td> <td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
<td>∥</td>
</tr> </tr>
<tr align=center> <tr align=center>
<?php <?php
@@ -390,33 +455,51 @@ if ($admin['tournament'] == 6) {
<font color=skyblue size=4>( 베팅후 500원 이하일땐 베팅이 불가능합니다. )</font> <font color=skyblue size=4>( 베팅후 500원 이하일땐 베팅이 불가능합니다. )</font>
</td> </td>
</tr> </tr>
<tr align=center><td height=10 colspan=16></td></tr> <tr align=center>
<td height=10 colspan=16></td>
</tr>
</table> </table>
<table align=center width=1120 class='tb_layout bg0'> <table align=center width=1120 class='tb_layout bg0'>
<tr align=center><td height=50 colspan=4 class='bg2'><font color=yellow size=6>토너먼트 랭킹</font></td></tr> <tr align=center>
<tr align=center><td colspan=4 class='bg2'><font color=skyblue size=3>순위 / 장수명 / 능력치 / 경기수 / 승리 / 무승부 / 패배 / 집계점수 / 우승횟수</font></td></tr> <td height=50 colspan=4 class='bg2'>
<font color=yellow size=6>토너먼트 랭킹</font>
</td>
</tr>
<tr align=center>
<td colspan=4 class='bg2'>
<font color=skyblue size=3>순위 / 장수명 / 능력치 / 경기수 / 승리 / 무승부 / 패배 / 집계점수 / 우승횟수</font>
</td>
</tr>
<tr align=center> <tr align=center>
<?php <?php
$tournamentType = [ $tournamentType = [
'전 력 전' => [ '전 력 전' => [
'종합', '종합',
function(General $general){return $general->getVar('leadership')+$general->getVar('strength')+$general->getVar('intel');}, function (General $general) {
return $general->getVar('leadership') + $general->getVar('strength') + $general->getVar('intel');
},
'tt', 'tt',
], ],
'통 솔 전' => [ '통 솔 전' => [
'통솔', '통솔',
function(General $general){return $general->getVar('leadership');}, function (General $general) {
return $general->getVar('leadership');
},
'tl', 'tl',
], ],
'일 기 토' => [ '일 기 토' => [
'무력', '무력',
function(General $general){return $general->getVar('strength');}, function (General $general) {
return $general->getVar('strength');
},
'ts', 'ts',
], ],
'설 전' => [ '설 전' => [
'지력', '지력',
function(General $general){return $general->getVar('intel');}, function (General $general) {
return $general->getVar('intel');
},
'ti', 'ti',
], ],
]; ];
@@ -429,8 +512,22 @@ $type4 = array("total", "leadership", "strength", "intel");
foreach ($tournamentType as $tournamentTypeText => [$statTypeText, $statFunc, $rankColumn]) : ?> foreach ($tournamentType as $tournamentTypeText => [$statTypeText, $statFunc, $rankColumn]) : ?>
<td> <td>
<table align=center width=280 class='tb_layout 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><?=$tournamentTypeText?></font></td></tr> <tr>
<tr class='bg1'><td align=center>순</td><td align=center>장수</td><td align=center><?=$statTypeText?></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> <td colspan=9 align=center style=color:white;background-color:black;>
<font size=4><?= $tournamentTypeText ?></font>
</td>
</tr>
<tr class='bg1'>
<td align=center>순</td>
<td align=center>장수</td>
<td align=center><?= $statTypeText ?></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>
<?php <?php
$prizeColumn = "{$rankColumn}p"; $prizeColumn = "{$rankColumn}p";
$gameColumn = "{$rankColumn}g"; $gameColumn = "{$rankColumn}g";
@@ -474,7 +571,8 @@ foreach($tournamentType as $tournamentTypeText=>[$statTypeText,$statFunc,$rankCo
); );
} }
?> ?>
</table></td> </table>
</td>
<?php endforeach; ?> <?php endforeach; ?>
</tr> </tr>
<tr> <tr>
@@ -488,8 +586,13 @@ foreach($tournamentType as $tournamentTypeText=>[$statTypeText,$statFunc,$rankCo
</tr> </tr>
</table> </table>
<table align=center width=1120 class='tb_layout bg0'> <table align=center width=1120 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+49 -69
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -10,6 +11,7 @@ $generalObj = General::createGeneralObjFromDB($session->generalID);
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -17,10 +19,10 @@ $generalObj = General::createGeneralObjFromDB($session->generalID);
<title><?= UniqueConst::$serverName ?>: 사령부</title> <title><?= UniqueConst::$serverName ?>: 사령부</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/chiefCenter.js') ?> <?= WebUtil::printJS('dist_js/chiefCenter.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/chiefCenter.css') ?> <?= WebUtil::printCSS('css/chiefCenter.css') ?>
<script type="text/javascript"> <script type="text/javascript">
@@ -34,75 +36,53 @@ var maxChiefTurn = <?=GameConst::$maxChiefTurn?>;
<div class='tb_layout bg0'>사 령 부<button type='button' id='reloadTable'>갱신</button><br> <div class='tb_layout bg0'>사 령 부<button type='button' id='reloadTable'>갱신</button><br>
<?= backButton() ?></div> <?= backButton() ?></div>
<div style='background-color:skyblue;text-align:center;'>수뇌부 일정</div> <div style='background-color:skyblue;text-align:center;'>수뇌부 일정</div>
<div class="chiefSubTable" style='height:<?=22*(GameConst::$maxChiefTurn+1)?>px;' <div class="chiefSubTable" style='height:<?= 22 * (GameConst::$maxChiefTurn + 1) ?>px;'>
><div class='chiefTurnIdxPanel' <div class='chiefTurnIdxPanel'>
><div class='bg1 chiefTurnIdx'>.</div <div class='bg1 chiefTurnIdx'>.</div <?php foreach (Util::range(GameConst::$maxChiefTurn) as $idx) : ?>>
<?php foreach(Util::range(GameConst::$maxChiefTurn) as $idx):?> <div class='bg0 chiefTurnIdx'><?= $idx + 1 ?></div <?php endforeach; ?>>
><div class='bg0 chiefTurnIdx'><?=$idx+1?></div </div <?php foreach ([12, 10, 8, 6] as $chiefIdx) : ?>>
<?php endforeach; ?> <div class='bg2 chiefPlate' style='flex-grow:1;' id='chief_<?= $chiefIdx ?>'>
></div <div class='bg1 chiefNamePlate'><span class='chiefLevelText'>-</span> : <span class='chiefName'>&nbsp;</span></div <?php foreach (Util::range(GameConst::$maxChiefTurn) as $turnIdx) : ?>>
<?php foreach([12, 10, 8, 6] as $chiefIdx): ?> <div class='chiefTurnBox turn<?= $turnIdx ?>'>
><div class='bg2 chiefPlate' style='flex-grow:1;' id='chief_<?=$chiefIdx?>' <div class='chiefTurnTime'>&nbsp;</div>
><div class='bg1 chiefNamePlate'><span class='chiefLevelText'>-</span> : <span class='chiefName'>&nbsp;</span></div <div class='chiefTurnPad'><span class='chiefTurnText'>&nbsp;</span></div>
<?php foreach(Util::range(GameConst::$maxChiefTurn) as $turnIdx): ?> </div <?php endforeach; ?>>
><div class='chiefTurnBox turn<?=$turnIdx?>' </div <?php endforeach; ?>>
><div class='chiefTurnTime'>&nbsp;</div <div class='chiefTurnIdxPanel tail'>
><div class='chiefTurnPad'><span class='chiefTurnText'>&nbsp;</span></div <div class='bg1 chiefTurnIdx'>.</div <?php foreach (Util::range(GameConst::$maxChiefTurn) as $idx) : ?>>
></div <div class='bg0 chiefTurnIdx'><?= $idx + 1 ?></div <?php endforeach; ?>>
<?php endforeach; ?> </div>
></div </div>
<?php endforeach; ?> <div id='controlPlate' style='display:flex;flex-flow:row wrap;justify-content:center;'>
><div class='chiefTurnIdxPanel tail' <div style='width:400px;text-align:right;'><?= chiefTurnTable()
><div class='bg1 chiefTurnIdx'>.</div ?></div>
<?php foreach(Util::range(GameConst::$maxChiefTurn) as $idx):?> <div style='width:400px;display: flex;justify-content: center;flex-direction: column;'>
><div class='bg0 chiefTurnIdx'><?=$idx+1?></div <div><input type='button' id='turnPush' style='visibility:hidden;background-color:<?= GameConst::$basecolor2 ?>;color:white;font-size:14px;' value='미루기▼'><input type='button' id='turnPull' style='visibility:hidden;background-color:<?= GameConst::$basecolor2 ?>;color:white;font-size:14px;' value='▲당기기'></div>
<?php endforeach; ?> <div><?= chiefCommandTable($generalObj)
></div ?><br><input type='button' id='setCommand' style='visibility:hidden;background-color:<?= GameConst::$basecolor2 ?>;color:white;font-size:14px;' value='실 행'></div>
></div </div>
><div id='controlPlate' style='display:flex;flex-flow:row wrap;justify-content:center;' </div>
><div style='width:400px;text-align:right;' <div class="chiefSubTable" style='height:<?= 22 * (GameConst::$maxChiefTurn + 1) ?>px;'>
><?=chiefTurnTable() <div class='chiefTurnIdxPanel'>
?></div <div class='bg1 chiefTurnIdx'>.</div <?php foreach (Util::range(GameConst::$maxChiefTurn) as $idx) : ?>>
><div style='width:400px;display: flex;justify-content: center;flex-direction: column;' <div class='bg0 chiefTurnIdx'><?= $idx + 1 ?></div <?php endforeach; ?>>
><div </div <?php foreach ([11, 9, 7, 5] as $chiefIdx) : ?>>
><input type='button' id='turnPush' style='visibility:hidden;background-color:<?=GameConst::$basecolor2?>;color:white;font-size:14px;' value='미루기▼' <div class='bg2 chiefPlate' style='flex-grow:1;' id='chief_<?= $chiefIdx ?>'>
><input type='button' id='turnPull' style='visibility:hidden;background-color:<?=GameConst::$basecolor2?>;color:white;font-size:14px;' value='▲당기기' <div class='bg1 chiefNamePlate'><span class='chiefLevelText'>-</span> : <span class='chiefName'>&nbsp;</span></div <?php foreach (Util::range(GameConst::$maxChiefTurn) as $turnIdx) : ?>>
></div <div class='chiefTurnBox turn<?= $turnIdx ?>'>
><div <div class='chiefTurnTime'>&nbsp;</div>
><?=chiefCommandTable($generalObj) <div class='chiefTurnPad'><span class='chiefTurnText'>&nbsp;</span></div>
?><br><input type='button' id='setCommand' style='visibility:hidden;background-color:<?=GameConst::$basecolor2?>;color:white;font-size:14px;' value='실 행' </div <?php endforeach; ?>>
></div </div <?php endforeach; ?>>
></div <div class='chiefTurnIdxPanel tail'>
></div <div class='bg1 chiefTurnIdx'>.</div <?php foreach (Util::range(GameConst::$maxChiefTurn) as $idx) : ?>>
><div class="chiefSubTable" style='height:<?=22*(GameConst::$maxChiefTurn+1)?>px;' <div class='bg0 chiefTurnIdx'><?= $idx + 1 ?></div <?php endforeach; ?>>
><div class='chiefTurnIdxPanel' </div>
><div class='bg1 chiefTurnIdx'>.</div </div>
<?php foreach(Util::range(GameConst::$maxChiefTurn) as $idx):?> <div><?= backButton()
><div class='bg0 chiefTurnIdx'><?=$idx+1?></div
<?php endforeach; ?>
></div
<?php foreach([11, 9, 7, 5] as $chiefIdx): ?>
><div class='bg2 chiefPlate' style='flex-grow:1;' id='chief_<?=$chiefIdx?>'
><div class='bg1 chiefNamePlate'><span class='chiefLevelText'>-</span> : <span class='chiefName'>&nbsp;</span></div
<?php foreach(Util::range(GameConst::$maxChiefTurn) as $turnIdx): ?>
><div class='chiefTurnBox turn<?=$turnIdx?>'
><div class='chiefTurnTime'>&nbsp;</div
><div class='chiefTurnPad'><span class='chiefTurnText'>&nbsp;</span></div
></div
<?php endforeach; ?>
></div
<?php endforeach; ?>
><div class='chiefTurnIdxPanel tail'
><div class='bg1 chiefTurnIdx'>.</div
<?php foreach(Util::range(GameConst::$maxChiefTurn) as $idx):?>
><div class='bg0 chiefTurnIdx'><?=$idx+1?></div
<?php endforeach; ?>
></div
></div
><div
><?=backButton()
?><?= banner() ?><?= banner()
?></div> ?></div>
</div> </div>
</body> </body>
</html> </html>
+44 -30
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -35,12 +36,12 @@ $templates = new \League\Plates\Engine('templates');
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/currentCity.js') ?> <?= WebUtil::printJS('dist_js/currentCity.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../e_lib/select2/select2.min.css') ?> <?= WebUtil::printCSS('../e_lib/select2/select2.min.css') ?>
<?= WebUtil::printCSS('../e_lib/select2/select2-bootstrap4.css') ?> <?= WebUtil::printCSS('../e_lib/select2/select2-bootstrap4.css') ?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<style> <style>
#general_list tr td { #general_list tr td {
@@ -60,7 +61,9 @@ $templates = new \League\Plates\Engine('templates');
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>도 시 정 보<br><?=backButton()?></td></tr> <tr>
<td>도 시 정 보<br><?= backButton() ?></td>
</tr>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
@@ -80,7 +83,10 @@ if($me['officer_level'] == 0) {
$city = $db->queryFirstRow('SELECT city,name,nation from city where city=%i', $me['city']); $city = $db->queryFirstRow('SELECT city,name,nation from city where city=%i', $me['city']);
echo " echo "
<option value={$city['city']}"; <option value={$city['city']}";
if($city['city'] == $citylist) { echo " selected"; $valid = 1; } if ($city['city'] == $citylist) {
echo " selected";
$valid = 1;
}
echo ">【" . StringUtil::padString($city['name'], 4, '_') . "】"; echo ">【" . StringUtil::padString($city['name'], 4, '_') . "】";
if ($city['nation'] == 0) echo "공백지"; if ($city['nation'] == 0) echo "공백지";
elseif ($me['nation'] == $city['nation']) echo "본국"; elseif ($me['nation'] == $city['nation']) echo "본국";
@@ -91,7 +97,10 @@ if($me['officer_level'] == 0) {
foreach ($db->query('SELECT city,name,nation from city where nation=%i', $me['nation']) as $city) { foreach ($db->query('SELECT city,name,nation from city where nation=%i', $me['nation']) as $city) {
echo " echo "
<option value={$city['city']}"; <option value={$city['city']}";
if($city['city'] == $citylist) { echo " selected"; $valid = 1; } if ($city['city'] == $citylist) {
echo " selected";
$valid = 1;
}
echo ">【" . StringUtil::padString($city['name'], 4, '_') . "】"; echo ">【" . StringUtil::padString($city['name'], 4, '_') . "】";
if ($city['nation'] == 0) echo "공백지"; if ($city['nation'] == 0) echo "공백지";
elseif ($me['nation'] == $city['nation']) echo "본국"; elseif ($me['nation'] == $city['nation']) echo "본국";
@@ -103,7 +112,10 @@ if($me['officer_level'] == 0) {
foreach ($db->query('SELECT distinct A.city,B.name,B.nation from general A,city B where A.city=B.city and A.nation=%i and B.nation!=%i', $me['nation'], $me['nation']) as $city) { foreach ($db->query('SELECT distinct A.city,B.name,B.nation from general A,city B where A.city=B.city and A.nation=%i and B.nation!=%i', $me['nation'], $me['nation']) as $city) {
echo " echo "
<option value={$city['city']}"; <option value={$city['city']}";
if($city['city'] == $citylist) { echo " selected"; $valid = 1; } if ($city['city'] == $citylist) {
echo " selected";
$valid = 1;
}
echo ">【" . StringUtil::padString($city['name'], 4, '_') . "】"; echo ">【" . StringUtil::padString($city['name'], 4, '_') . "】";
if ($city['nation'] == 0) echo "공백지"; if ($city['nation'] == 0) echo "공백지";
elseif ($me['nation'] == $city['nation']) echo "본국"; elseif ($me['nation'] == $city['nation']) echo "본국";
@@ -119,8 +131,7 @@ if($myNation['level'] > 0) {
if ($rawSpy == '') { if ($rawSpy == '') {
$spyCities = []; $spyCities = [];
} } else {
else{
$spyCities = array_keys(Json::decode($rawSpy)); $spyCities = array_keys(Json::decode($rawSpy));
} }
@@ -128,7 +139,10 @@ if($myNation['level'] > 0) {
if ($spyCities) { if ($spyCities) {
foreach ($db->query('SELECT city,name,nation FROM city WHERE city in %li', $spyCities) as $city) { foreach ($db->query('SELECT city,name,nation FROM city WHERE city in %li', $spyCities) as $city) {
echo "<option value={$city['city']}"; echo "<option value={$city['city']}";
if($city['city'] == $citylist) { echo " selected"; $valid = 1; } if ($city['city'] == $citylist) {
echo " selected";
$valid = 1;
}
echo ">【" . StringUtil::padString($city['name'], 4, '_') . "】"; echo ">【" . StringUtil::padString($city['name'], 4, '_') . "】";
if ($city['nation'] == 0) echo "공백지"; if ($city['nation'] == 0) echo "공백지";
elseif ($me['nation'] == $city['nation']) echo "본국"; elseif ($me['nation'] == $city['nation']) echo "본국";
@@ -136,7 +150,6 @@ if($myNation['level'] > 0) {
echo "</option>"; echo "</option>";
} }
} }
} }
echo " echo "
@@ -204,16 +217,14 @@ if($showDetailedInfo){
Util::formatListOfBackticks($dbColumns), Util::formatListOfBackticks($dbColumns),
$city['city'] $city['city']
); );
} } else {
else{
$generals = []; $generals = [];
} }
if ($valid) { if ($valid) {
$city['trustText'] = round($city['trust'], 1); $city['trustText'] = round($city['trust'], 1);
$city['popRateText'] = round($city['pop'] / $city['pop_max'] * 100, 2); $city['popRateText'] = round($city['pop'] / $city['pop_max'] * 100, 2);
} } else {
else{
$city['agri'] = '?'; $city['agri'] = '?';
$city['comm'] = '?'; $city['comm'] = '?';
$city['pop'] = '?'; $city['pop'] = '?';
@@ -234,8 +245,7 @@ if($generals){
foreach ($db->queryAllLists( foreach ($db->queryAllLists(
'SELECT general_id, turn_idx, brief FROM general_turn WHERE general_id IN %li AND turn_idx < 5 ORDER BY general_id ASC, turn_idx ASC', 'SELECT general_id, turn_idx, brief FROM general_turn WHERE general_id IN %li AND turn_idx < 5 ORDER BY general_id ASC, turn_idx ASC',
array_column($generals, 'no') array_column($generals, 'no')
) as [$generalID, $turnIdx, $brief] ) as [$generalID, $turnIdx, $brief]) {
){
if (!key_exists($generalID, $generalTurnList)) { if (!key_exists($generalID, $generalTurnList)) {
$generalTurnList[$generalID] = []; $generalTurnList[$generalID] = [];
} }
@@ -260,8 +270,7 @@ foreach($generals as $general){
if ($general['nation'] != 0 && $general['nation'] == $myNation['nation']) { if ($general['nation'] != 0 && $general['nation'] == $myNation['nation']) {
$ourGeneral = true; $ourGeneral = true;
} } else {
else{
$ourGeneral = false; $ourGeneral = false;
} }
@@ -298,8 +307,7 @@ foreach($generals as $general){
$crew = $general['crew']; $crew = $general['crew'];
$train = $general['train']; $train = $general['train'];
$atmos = $general['atmos']; $atmos = $general['atmos'];
} } else {
else{
$defenceTrain = 0; $defenceTrain = 0;
$defenceTrainText = ''; $defenceTrainText = '';
$crewType = 0; $crewType = 0;
@@ -324,8 +332,7 @@ foreach($generals as $general){
$turnText[] = "{$turnIdx} : $turn"; $turnText[] = "{$turnIdx} : $turn";
} }
$turnText = join('<br>', $turnText); $turnText = join('<br>', $turnText);
} } else {
else{
$turnText = ''; $turnText = '';
} }
@@ -359,7 +366,9 @@ foreach($generals as $general){
]; ];
} }
$generalsName = array_map(function($gen){return getColoredName($gen['name'], $gen['npc']);}, $generals); $generalsName = array_map(function ($gen) {
return getColoredName($gen['name'], $gen['npc']);
}, $generals);
$enemyCrew = 0; $enemyCrew = 0;
$enemyCnt = 0; $enemyCnt = 0;
@@ -426,15 +435,14 @@ foreach($generalsFormat as $general){
$genDef += 1; $genDef += 1;
$chkDef = true; $chkDef = true;
} }
} }
?> ?>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr> <tr>
<td><?= backButton() ?></td>
</tr>
</table> </table>
<table align=center width=1000 class='tb_layout bg2'> <table align=center width=1000 class='tb_layout bg2'>
@@ -507,7 +515,8 @@ foreach($generalsFormat as $general){
<td width=48 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>
<td width=280 align=center class=bg1>명 령</td> <td width=280 align=center class=bg1>명 령</td>
</tr></thead> </tr>
</thead>
<tbody class='bg0' id='general_list'> <tbody class='bg0' id='general_list'>
<?php <?php
foreach ($generalsFormat as $general) { foreach ($generalsFormat as $general) {
@@ -518,8 +527,13 @@ foreach($generalsFormat as $general){
</table> </table>
<?php endif; ?> <?php endif; ?>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr> <tr>
<tr><td><?=banner()?> </td></tr> <td><?= backButton() ?></td>
</tr>
<tr>
<td><?= banner() ?> </td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+45 -17
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -29,8 +30,7 @@ $permission = checkSecretPermission($me);
if ($permission < 0) { if ($permission < 0) {
echo '국가에 소속되어있지 않습니다.'; echo '국가에 소속되어있지 않습니다.';
die(); die();
} } else if ($permission < 1) {
else if ($permission < 1) {
echo "권한이 부족합니다. 수뇌부가 아니거나 사관년도가 부족합니다."; echo "권한이 부족합니다. 수뇌부가 아니거나 사관년도가 부족합니다.";
die(); die();
} }
@@ -48,6 +48,7 @@ $nationStor->cacheValues(['notice', 'scout_msg', 'available_war_setting_cnt']);
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -62,22 +63,26 @@ var storedData = <?=Json::encode([
</script> </script>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/dipcenter.js') ?> <?= WebUtil::printJS('dist_js/dipcenter.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../e_lib/summernote/summernote-bs4.css') ?> <?= WebUtil::printCSS('../e_lib/summernote/summernote-bs4.css') ?>
<?= WebUtil::printCSS('dist_css/vendors.css') ?> <?= WebUtil::printCSS('dist_css/vendors.css') ?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/dipcenter.css') ?> <?= WebUtil::printCSS('css/dipcenter.css') ?>
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>내 무 부<br><?=backButton()?></td></tr> <tr>
<td>내 무 부<br><?= backButton() ?></td>
</tr>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td colspan=9 align=center bgcolor=blue>외 교 관 계</td></tr> <tr>
<td colspan=9 align=center bgcolor=blue>외 교 관 계</td>
</tr>
<tr> <tr>
<td width=130 align=center class=bg1>국 가 명</td> <td width=130 align=center class=bg1>국 가 명</td>
<td width=50 align=center class=bg1>국력</td> <td width=50 align=center class=bg1>국력</td>
@@ -173,9 +178,15 @@ if ($budgetricediff > 0) {
?> ?>
<table width=1000 class='tb_layout bg0' style='margin:auto;'> <table width=1000 class='tb_layout bg0' style='margin:auto;'>
<form name=form1 method=post action=c_dipcenter.php> <form name=form1 method=post action=c_dipcenter.php>
<tr><td colspan=2 height=10></td></tr> <tr>
<tr><td colspan=2 align=center bgcolor=orange>국 가 방 침 &amp; 임관 권유 메시지</td></tr> <td colspan=2 height=10></td>
<tr><td colspan='2'><div id='noticeForm'> </tr>
<tr>
<td colspan=2 align=center bgcolor=orange>국 가 방 침 &amp; 임관 권유 메시지</td>
</tr>
<tr>
<td colspan='2'>
<div id='noticeForm'>
<div class='bg1' style="display: flex; justify-content: space-around"> <div class='bg1' style="display: flex; justify-content: space-around">
<div style='flex: 1 1 auto;'> <div style='flex: 1 1 auto;'>
국가 방침 국가 방침
@@ -186,8 +197,12 @@ if ($budgetricediff > 0) {
</div> </div>
<input type='hidden' class='input_form' name='msg' data-global='nationMsg'> <input type='hidden' class='input_form' name='msg' data-global='nationMsg'>
<div class='edit_form viewer'></div> <div class='edit_form viewer'></div>
</div></td></tr> </div>
<tr><td colspan='2'><div id='scoutMsgForm'> </td>
</tr>
<tr>
<td colspan='2'>
<div id='scoutMsgForm'>
<div class='bg1' style="display: flex; justify-content: space-around"> <div class='bg1' style="display: flex; justify-content: space-around">
<div style='flex: 1 1 auto;'> <div style='flex: 1 1 auto;'>
임관 권유 임관 권유
@@ -203,8 +218,12 @@ if ($budgetricediff > 0) {
</div> </div>
</div> </div>
</div></td></tr> </div>
<tr><td colspan=2 align=center bgcolor=green>예 산 &amp; 정 책</td></tr> </td>
</tr>
<tr>
<td colspan=2 align=center bgcolor=green>예 산 &amp; 정 책</td>
</tr>
<tr> <tr>
<td colspan=2> <td colspan=2>
<table width=998 class='tb_layout bg0'> <table width=998 class='tb_layout bg0'>
@@ -276,13 +295,22 @@ if ($nation['war'] == 0) {
</td> </td>
</tr> </tr>
</table> </table>
<tr><td colspan=2>기밀 권한이란, 암행부를 열람할 수 있는 일반 장수의 최소 사관 년수를 의미합니다.</td></tr> <tr>
<tr><td colspan=2 height=10></td></tr> <td colspan=2>기밀 권한이란, 암행부를 열람할 수 있는 일반 장수의 최소 사관 년수를 의미합니다.</td>
</tr>
<tr>
<td colspan=2 height=10></td>
</tr>
</form> </form>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= backButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+37 -24
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -34,8 +35,7 @@ foreach ($db->queryAllLists('SELECT city, `name`, conflict FROM city WHERE confl
$cityID, $cityID,
$cityName, $cityName,
$rawConflict $rawConflict
]) ]) {
{
$rawConflict = Json::decode($rawConflict); $rawConflict = Json::decode($rawConflict);
if (count($rawConflict) < 2) { if (count($rawConflict) < 2) {
continue; continue;
@@ -85,6 +85,7 @@ $neutralStateCharMap = [
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -92,6 +93,7 @@ $neutralStateCharMap = [
<title><?= UniqueConst::$serverName ?>: 중원 정보</title> <title><?= UniqueConst::$serverName ?>: 중원 정보</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?= WebUtil::printJS('d_shared/base_map.js') ?> <?= WebUtil::printJS('d_shared/base_map.js') ?>
<?= WebUtil::printJS('dist_js/map.js') ?> <?= WebUtil::printJS('dist_js/map.js') ?>
@@ -108,9 +110,8 @@ $(function(){
}); });
</script> </script>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/map.css') ?> <?= WebUtil::printCSS('css/map.css') ?>
<?= WebUtil::printCSS('css/history.css') ?> <?= WebUtil::printCSS('css/history.css') ?>
@@ -119,11 +120,15 @@ $(function(){
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>중 원 정 보<br><?=backButton()?></td></tr> <tr>
<td>중 원 정 보<br><?= backButton() ?></td>
</tr>
</table> </table>
<br> <br>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td colspan=<?=$nationCnt+1?> align=center bgcolor=blue>외 교 현 황</td></tr> <tr>
<td colspan=<?= $nationCnt + 1 ?> align=center bgcolor=blue>외 교 현 황</td>
</tr>
<tr> <tr>
<td align=center width=130 style=background-color:<?= GameConst::$basecolor2 ?>;>&nbsp;</td> <td align=center width=130 style=background-color:<?= GameConst::$basecolor2 ?>;>&nbsp;</td>
<?php foreach ($nations as $nation) : ?> <?php foreach ($nations as $nation) : ?>
@@ -137,25 +142,28 @@ $(function(){
<td <?= ($me == $myNationID || $you == $myNationID) ? 'style="background-color:' . GameConst::$basecolor3 . '"' : '' ?>><?php <td <?= ($me == $myNationID || $you == $myNationID) ? 'style="background-color:' . GameConst::$basecolor3 . '"' : '' ?>><?php
if ($me == $you) { if ($me == $you) {
echo $sameNationStateChar; echo $sameNationStateChar;
} } else if ($me == $myNationID || $you == $myNationID || $session->userGrade >= 5) {
else if($me==$myNationID || $you==$myNationID || $session->userGrade >= 5){
echo $infomativeStateCharMap[$diplomacyList[$me][$you]] ?? $defaultStateChar; echo $infomativeStateCharMap[$diplomacyList[$me][$you]] ?? $defaultStateChar;
} } else {
else{
echo $neutralStateCharMap[$diplomacyList[$me][$you]] ?? $defaultStateChar; echo $neutralStateCharMap[$diplomacyList[$me][$you]] ?? $defaultStateChar;
} }
?></td> ?></td>
<?php endforeach; ?> <?php endforeach; ?>
</tr> </tr>
<?php endforeach; ?> <?php endforeach; ?>
<tr><td colspan=<?=$nationCnt+1?> align=center>불가침 : <font color=limegreen>@</font>, 통상 : ㆍ, 선포 : <font color=magenta>▲</font>, 교전 : <font color=red>★</font></td></tr> <tr>
<td colspan=<?= $nationCnt + 1 ?> align=center>불가침 : <font color=limegreen>@</font>, 통상 : ㆍ, 선포 : <font color=magenta>▲</font>, 교전 : <font color=red>★</font>
</td>
</tr>
</table> </table>
<?php if ($realConflict) : ?> <?php if ($realConflict) : ?>
<br> <br>
<table align='center' width=1000 class='tb_layout bg0'> <table align='center' width=1000 class='tb_layout bg0'>
<tr><td colspan=2 align=center bgcolor=magenta>분 쟁 현 황</td></tr> <tr>
<td colspan=2 align=center bgcolor=magenta>분 쟁 현 황</td>
</tr>
<?php foreach ($realConflict as list($cityID, $cityName, $conflict)) : ?> <?php foreach ($realConflict as list($cityID, $cityName, $conflict)) : ?>
<tr> <tr>
<td align=center width=48><?= $cityName ?></td> <td align=center width=48><?= $cityName ?></td>
@@ -163,15 +171,11 @@ else{
<table class='tb_layout bg0' style='width:100%;'> <table class='tb_layout bg0' style='width:100%;'>
<?php foreach ($conflict as $item) : ?> <?php foreach ($conflict as $item) : ?>
<tr> <tr>
<td <td width=130 align=right style='color:<?= newColor($item['color']) ?>;background-color:<?= $item['color'] ?>;'><?= $item['name'] ?>&nbsp;</td>
width=130
align=right
style='color:<?=newColor($item['color'])?>;background-color:<?=$item['color']?>;'
><?=$item['name']?>&nbsp;</td>
<td width=48 align=right><?= (float)$item['percent'] ?> %&nbsp;</td> <td width=48 align=right><?= (float)$item['percent'] ?> %&nbsp;</td>
<td width=*><div <td width=*>
style='display:inline-block;width:<?=$item['percent']?>%;background-color:<?=$item['color']?>;' <div style='display:inline-block;width:<?= $item['percent'] ?>%;background-color:<?= $item['color'] ?>;'>&nbsp;</div>
>&nbsp;</div></td> </td>
</tr> </tr>
<?php endforeach; ?> <?php endforeach; ?>
</table> </table>
@@ -179,7 +183,9 @@ else{
</td> </td>
</tr> </tr>
<?php endforeach; ?> <?php endforeach; ?>
<tr><td colspan=2 height=5 class='bg1'></td></tr> <tr>
<td colspan=2 height=5 class='bg1'></td>
</tr>
</table> </table>
<?php endif; ?> <?php endif; ?>
@@ -187,7 +193,9 @@ else{
<br> <br>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr> <tr>
<td colspan=5 align=center bgcolor=green><font size=3>중 원 지 도</font></td> <td colspan=5 align=center bgcolor=green>
<font size=3>중 원 지 도</font>
</td>
</tr> </tr>
<tr> <tr>
<td width=698 height=420> <td width=698 height=420>
@@ -221,8 +229,13 @@ else{
<br> <br>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= backButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+71 -32
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -32,8 +33,7 @@ $permission = checkSecretPermission($me);
if ($permission < 0) { if ($permission < 0) {
echo '국가에 소속되어있지 않습니다.'; echo '국가에 소속되어있지 않습니다.';
die(); die();
} } else if ($permission < 1) {
else if ($permission < 1) {
echo "권한이 부족합니다. 수뇌부가 아니거나 사관년도가 부족합니다."; echo "권한이 부족합니다. 수뇌부가 아니거나 사관년도가 부족합니다.";
die(); die();
} }
@@ -48,24 +48,29 @@ $templates = new \League\Plates\Engine('templates');
<?php if ($con == 1) { <?php if ($con == 1) {
MessageBox("접속제한이 얼마 남지 않았습니다!"); MessageBox("접속제한이 얼마 남지 않았습니다!");
} ?> } ?>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<title><?= UniqueConst::$serverName ?>: 암행부</title> <title><?= UniqueConst::$serverName ?>: 암행부</title>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>암 행 부<br><?=closeButton()?></td></tr> <tr>
<tr><td><form name=form1 method=get>정렬순서 : <td>암 행 부<br><?= closeButton() ?></td>
</tr>
<tr>
<td>
<form name=form1 method=get>정렬순서 :
<select name=type size=1> <select name=type size=1>
<option <?= $sel[1] ?? '' ?> value=1>자금</option> <option <?= $sel[1] ?? '' ?> value=1>자금</option>
<option <?= $sel[2] ?? '' ?> value=2>군량</option> <option <?= $sel[2] ?? '' ?> value=2>군량</option>
@@ -76,8 +81,10 @@ $templates = new \League\Plates\Engine('templates');
<option <?= $sel[7] ?? '' ?> value=7>턴</option> <option <?= $sel[7] ?? '' ?> value=7>턴</option>
<option <?= $sel[8] ?? '' ?> value=8>부대</option> <option <?= $sel[8] ?? '' ?> value=8>부대</option>
</select> </select>
<input type=submit value='정렬하기'></form> <input type=submit value='정렬하기'>
</td></tr> </form>
</td>
</tr>
</table> </table>
<?php <?php
$troopName = []; $troopName = [];
@@ -87,14 +94,30 @@ foreach($db->queryAllLists('SELECT troop_leader, name FROM troop WHERE nation=%i
$orderSQL = ''; $orderSQL = '';
switch ($type) { switch ($type) {
case 1: $orderSQL = "order by gold desc"; break; case 1:
case 2: $orderSQL = "order by rice desc"; break; $orderSQL = "order by gold desc";
case 3: $orderSQL = "order by city"; break; break;
case 4: $orderSQL = "order by crewtype desc"; break; case 2:
case 5: $orderSQL = "order by crew desc"; break; $orderSQL = "order by rice desc";
case 6: $orderSQL = "order by killturn"; break; break;
case 7: $orderSQL = "order by turntime"; break; case 3:
case 8: $orderSQL = "order by troop desc"; break; $orderSQL = "order by city";
break;
case 4:
$orderSQL = "order by crewtype desc";
break;
case 5:
$orderSQL = "order by crew desc";
break;
case 6:
$orderSQL = "order by killturn";
break;
case 7:
$orderSQL = "order by turntime";
break;
case 8:
$orderSQL = "order by troop desc";
break;
} }
$generals = $db->query( $generals = $db->query(
@@ -108,8 +131,7 @@ $generalTurnList = [];
foreach ($db->queryAllLists( foreach ($db->queryAllLists(
'SELECT general_id, turn_idx, brief FROM general_turn WHERE general_id IN %li AND turn_idx < 5 ORDER BY general_id ASC, turn_idx ASC', 'SELECT general_id, turn_idx, brief FROM general_turn WHERE general_id IN %li AND turn_idx < 5 ORDER BY general_id ASC, turn_idx ASC',
array_column($generals, 'no') array_column($generals, 'no')
) as [$generalID, $turnIdx, $brief] ) as [$generalID, $turnIdx, $brief]) {
){
if (!key_exists($generalID, $generalTurnList)) { if (!key_exists($generalID, $generalTurnList)) {
$generalTurnList[$generalID] = []; $generalTurnList[$generalID] = [];
} }
@@ -214,24 +236,36 @@ foreach($generals as $general){
<table style='width:1000px;margin:5px auto' class='tb_layout bg0'> <table style='width:1000px;margin:5px auto' class='tb_layout bg0'>
<thead> <thead>
<colgroup> <colgroup>
<col style="width:120px;"><col> <col style="width:120px;">
<col style="width:120px;"><col> <col>
<col style="width:120px;"><col> <col style="width:120px;">
<col style="width:120px;"><col> <col>
<col style="width:120px;">
<col>
<col style="width:120px;">
<col>
</colgroup> </colgroup>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td class='bg1'>전체 금</td><td><?=number_format($totalGold)?></td> <td class='bg1'>전체 금</td>
<td class='bg1'>전체 쌀</td><td><?=number_format($totalRice)?></td> <td><?= number_format($totalGold) ?></td>
<td class='bg1'>평균 금</td><td><?=number_format($totalGold/$genCntEff, 2)?></td> <td class='bg1'>전체 쌀</td>
<td class='bg1'>평균 쌀</td><td><?=number_format($totalRice/$genCntEff, 2)?></td> <td><?= number_format($totalRice) ?></td>
<td class='bg1'>평균 금</td>
<td><?= number_format($totalGold / $genCntEff, 2) ?></td>
<td class='bg1'>평균 쌀</td>
<td><?= number_format($totalRice / $genCntEff, 2) ?></td>
</tr> </tr>
<tr> <tr>
<td class='bg1'>전체 병력/장수</td><td><?=number_format($crewTotal)?>/<?=number_format($genCntEff)?></td> <td class='bg1'>전체 병력/장수</td>
<td class='bg1'>훈사 90 병력/장수</td><td><?=number_format($crew90)?>/<?=number_format($gen90)?></td> <td><?= number_format($crewTotal) ?>/<?= number_format($genCntEff) ?></td>
<td class='bg1'>훈사 80 병력/장수</td><td><?=number_format($crew80)?>/<?=number_format($gen80)?></td> <td class='bg1'>훈사 90 병력/장수</td>
<td class='bg1'>훈사 60 병력/장수</td><td><?=number_format($crew60)?>/<?=number_format($gen60)?></td> <td><?= number_format($crew90) ?>/<?= number_format($gen90) ?></td>
<td class='bg1'>훈사 80 병력/장수</td>
<td><?= number_format($crew80) ?>/<?= number_format($gen80) ?></td>
<td class='bg1'>훈사 60 병력/장수</td>
<td><?= number_format($crew60) ?>/<?= number_format($gen60) ?></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -239,8 +273,13 @@ foreach($generals as $general){
<?= $templates->render('generalList', ['generals' => $generals]) ?> <?= $templates->render('generalList', ['generals' => $generals]) ?>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=closeButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= closeButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+73 -29
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -35,13 +36,13 @@ $nation = $db->queryFirstRow('SELECT nation,name,level,color,chief_set from nati
<title><?= UniqueConst::$serverName ?>: 인사부</title> <title><?= UniqueConst::$serverName ?>: 인사부</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?= WebUtil::printJS('dist_js/bossInfo.js') ?> <?= WebUtil::printJS('dist_js/bossInfo.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../e_lib/select2/select2.min.css') ?> <?= WebUtil::printCSS('../e_lib/select2/select2.min.css') ?>
<?= WebUtil::printCSS('../e_lib/select2/select2-bootstrap4.css') ?> <?= WebUtil::printCSS('../e_lib/select2/select2-bootstrap4.css') ?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<script type="text/javascript"> <script type="text/javascript">
var chiefStatMin = <?= GameConst::$chiefStatMin ?>; var chiefStatMin = <?= GameConst::$chiefStatMin ?>;
@@ -93,26 +94,33 @@ var candidateAuditors = <?=Json::encode(array_map(function($value){
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>인 사 부<br><?=backButton()?></td></tr> <tr>
<td>인 사 부<br><?= backButton() ?></td>
</tr>
</table> </table>
<br> <br>
<?php <?php
$lv = getNationChiefLevel($nation['level']); $lv = getNationChiefLevel($nation['level']);
if($meLevel >= 5) { $btn = "button"; } if ($meLevel >= 5) {
else { $btn = "hidden"; } $btn = "button";
} else {
$btn = "hidden";
}
$level = Util::convertArrayToDict( $level = Util::convertArrayToDict(
$db->query( $db->query(
'SELECT name,officer_level,city,picture,imgsvr,belong from general where nation=%i and officer_level>=%i order by officer_level desc', 'SELECT name,officer_level,city,picture,imgsvr,belong from general where nation=%i and officer_level>=%i order by officer_level desc',
$nationID, $lv $nationID,
$lv
), ),
'officer_level' 'officer_level'
); );
$tigers = $db->query('SELECT value, name $tigers = $db->query(
'SELECT value, name
FROM rank_data LEFT JOIN general ON rank_data.general_id = general.no FROM rank_data LEFT JOIN general ON rank_data.general_id = general.no
WHERE rank_data.nation_id = %i AND rank_data.type = "killnum" AND value > 0 ORDER BY value DESC LIMIT 5', WHERE rank_data.nation_id = %i AND rank_data.type = "killnum" AND value > 0 ORDER BY value DESC LIMIT 5',
$nationID $nationID
@@ -122,7 +130,8 @@ $tigerstr = join(', ', array_map(function($arr){
return "{$arr['name']}【{$number}】"; return "{$arr['name']}【{$number}】";
}, $tigers)); }, $tigers));
$eagles = $db->query('SELECT value, name $eagles = $db->query(
'SELECT value, name
FROM rank_data LEFT JOIN general ON rank_data.general_id = general.no FROM rank_data LEFT JOIN general ON rank_data.general_id = general.no
WHERE rank_data.nation_id = %i AND rank_data.type = "firenum" AND value > 0 ORDER BY value DESC LIMIT 7', WHERE rank_data.nation_id = %i AND rank_data.type = "firenum" AND value > 0 ORDER BY value DESC LIMIT 7',
$nationID $nationID
@@ -141,17 +150,26 @@ $eaglestr = join(', ', array_map(function($arr){
</tr> </tr>
<?php <?php
for ($i = 12; $i >= $lv; $i -= 2) { for ($i = 12; $i >= $lv; $i -= 2) {
$i1 = $i; $i2 = $i - 1; $i1 = $i;
$i2 = $i - 1;
$imageTemp1 = GetImageURL($level[$i1]['imgsvr'] ?? 0); $imageTemp1 = GetImageURL($level[$i1]['imgsvr'] ?? 0);
$imageTemp2 = GetImageURL($level[$i2]['imgsvr'] ?? 0); $imageTemp2 = GetImageURL($level[$i2]['imgsvr'] ?? 0);
?> ?>
<tr> <tr>
<td width=98 align=center class='bg1'><font size=4><?=getOfficerLevelText($i1, $nation['level'])?></font></td> <td width=98 align=center class='bg1'>
<font size=4><?= getOfficerLevelText($i1, $nation['level']) ?></font>
</td>
<td width=64 class='generalIcon' height=64 style='background:no-repeat center url("<?= $imageTemp1 ?>/<?= $level[$i1]['picture'] ?? 'default.jpg' ?>");background-size:64px;'></td> <td width=64 class='generalIcon' height=64 style='background:no-repeat center url("<?= $imageTemp1 ?>/<?= $level[$i1]['picture'] ?? 'default.jpg' ?>");background-size:64px;'></td>
<td width=332><font size=4><?=$level[$i1]['name']??'-'?>(<?=$level[$i1]['belong']??'-'?>년)</font></td> <td width=332>
<td width=98 align=center class='bg1'><font size=4><?=getOfficerLevelText($i2, $nation['level'])?></font></td> <font size=4><?= $level[$i1]['name'] ?? '-' ?>(<?= $level[$i1]['belong'] ?? '-' ?>년)</font>
</td>
<td width=98 align=center class='bg1'>
<font size=4><?= getOfficerLevelText($i2, $nation['level']) ?></font>
</td>
<td width=64 class='generalIcon' height=64 style='background:no-repeat center url("<?= $imageTemp2 ?>/<?= $level[$i2]['picture'] ?? 'default.jpg' ?>");background-size:64px;'></td> <td width=64 class='generalIcon' height=64 style='background:no-repeat center url("<?= $imageTemp2 ?>/<?= $level[$i2]['picture'] ?? 'default.jpg' ?>");background-size:64px;'></td>
<td width=332><font size=4><?=$level[$i2]['name']??'-'?>(<?=$level[$i2]['belong']??'-'?>년)</font></td> <td width=332>
<font size=4><?= $level[$i2]['name'] ?? '-' ?>(<?= $level[$i2]['belong'] ?? '-' ?>년)</font>
</td>
</tr> </tr>
<?php <?php
} }
@@ -167,8 +185,12 @@ for($i=12; $i >= $lv; $i-=2) {
</tr> </tr>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td colspan=6 height=5></td></tr> <tr>
<tr><td colspan=2 align=center bgcolor=red>추 방</td></tr> <td colspan=6 height=5></td>
</tr>
<tr>
<td colspan=2 align=center bgcolor=red>추 방</td>
</tr>
<tr> <tr>
<td width=498 align=right class='bg1'>대상 장수</td> <td width=498 align=right class='bg1'>대상 장수</td>
<td width=498> <td width=498>
@@ -178,8 +200,7 @@ if($meLevel >= 5){
$candidateStrength = $db->query('SELECT no,name,officer_level,city,npc from general where nation=%i and officer_level!=12 and strength>=%i order by npc,binary(name)', $nationID, GameConst::$chiefStatMin); $candidateStrength = $db->query('SELECT no,name,officer_level,city,npc from general where nation=%i and officer_level!=12 and strength>=%i order by npc,binary(name)', $nationID, GameConst::$chiefStatMin);
$candidateIntel = $db->query('SELECT no,name,officer_level,city,npc from general where nation=%i and officer_level!=12 and intel>=%i order by npc,binary(name)', $nationID, GameConst::$chiefStatMin); $candidateIntel = $db->query('SELECT no,name,officer_level,city,npc from general where nation=%i and officer_level!=12 and intel>=%i order by npc,binary(name)', $nationID, GameConst::$chiefStatMin);
$candidateAny = $db->query('SELECT no,name,officer_level,city,npc,leadership,strength,intel,killturn from general where nation=%i and officer_level!=12 order by npc,binary(name)', $nationID); //추방 때문에 조금 더 김 $candidateAny = $db->query('SELECT no,name,officer_level,city,npc,leadership,strength,intel,killturn from general where nation=%i and officer_level!=12 order by npc,binary(name)', $nationID); //추방 때문에 조금 더 김
} } else {
else{
$candidateStrength = []; $candidateStrength = [];
$candidateIntel = []; $candidateIntel = [];
$candidateAny = []; $candidateAny = [];
@@ -240,7 +261,6 @@ if($meLevel >= 5 && !isOfficerSet($nation['chief_set'], 11)) {
if (key_exists(11, $level)) { if (key_exists(11, $level)) {
echo "{$level[11]['name']} 【" . CityConst::byID($level[11]['city'])->name . "】"; echo "{$level[11]['name']} 【" . CityConst::byID($level[11]['city'])->name . "】";
} }
} }
echo " echo "
</td> </td>
@@ -248,7 +268,9 @@ echo "
"; ";
for ($i = 10; $i >= $lv; $i--) { for ($i = 10; $i >= $lv; $i--) {
if($i % 2 == 0) { echo "<tr>"; } if ($i % 2 == 0) {
echo "<tr>";
}
$officerLevelText = getOfficerLevelText($i, $nation['level']); $officerLevelText = getOfficerLevelText($i, $nation['level']);
echo " echo "
<td width=98 align=right class='bg1'>{$officerLevelText}</td> <td width=98 align=right class='bg1'>{$officerLevelText}</td>
@@ -281,7 +303,9 @@ for($i=10; $i >= $lv; $i--) {
} }
} }
echo "</td>"; echo "</td>";
if($i % 2 == 1) { echo "</tr>"; } if ($i % 2 == 1) {
echo "</tr>";
}
} }
echo " echo "
<tr><td colspan=4>※ <font color=red>빨간색</font>은 현재 임명중인 장수, <font color=orange>노란색</font>은 다른 관직에 임명된 장수, 하얀색은 일반 장수를 뜻합니다.</td></tr> <tr><td colspan=4>※ <font color=red>빨간색</font>은 현재 임명중인 장수, <font color=orange>노란색</font>은 다른 관직에 임명된 장수, 하얀색은 일반 장수를 뜻합니다.</td></tr>
@@ -292,8 +316,12 @@ echo "
if ($meLevel == 12) : if ($meLevel == 12) :
?> ?>
<table align='center' width='1000' class='tb_layout bg0'> <table align='center' width='1000' class='tb_layout bg0'>
<tr><td colspan='4' height='5'></td></tr> <tr>
<tr><td colspan='4' align='center' bgcolor='purple'>외 교 권 자 임 명</td></tr> <td colspan='4' height='5'></td>
</tr>
<tr>
<td colspan='4' align='center' bgcolor='purple'>외 교 권 자 임 명</td>
</tr>
<tr> <tr>
<td width=98 align=right class='bg1'>외교권자</td> <td width=98 align=right class='bg1'>외교권자</td>
<td width=398> <td width=398>
@@ -313,7 +341,9 @@ if($meLevel == 12):
endif; endif;
?> ?>
<table align=center width=1000 id='officer_list' class='tb_layout bg0'> <table align=center width=1000 id='officer_list' class='tb_layout bg0'>
<tr><td colspan=5 height=5></td></tr> <tr>
<td colspan=5 height=5></td>
</tr>
<?php <?php
if ($meLevel >= 5) { if ($meLevel >= 5) {
$officerLevelText = getOfficerLevelText(4, $nation['level']); $officerLevelText = getOfficerLevelText(4, $nation['level']);
@@ -495,9 +525,16 @@ foreach($db->query('SELECT city,name,level,region,officer_set from city where na
$cityOfficerList = $officerList[$cityID] ?? []; $cityOfficerList = $officerList[$cityID] ?? [];
?> ?>
<?php if ($region != $city['region']) : ?> <?php if ($region != $city['region']) : ?>
<tr><td colspan=5 height=3 class='bg1'></td></tr> <tr>
<tr><td colspan=5 class='bg1'><font size=4 color=skyblue> 【 <?=CityConst::$regionMap[$city['region']]?> 】 </font></td></tr> <td colspan=5 height=3 class='bg1'></td>
<?php endif; $region = $city['region']; ?> </tr>
<tr>
<td colspan=5 class='bg1'>
<font size=4 color=skyblue> 【 <?= CityConst::$regionMap[$city['region']] ?> 】 </font>
</td>
</tr>
<?php endif;
$region = $city['region']; ?>
<tr> <tr>
<td width=78 align=center style='color:<?= $textColor ?>;background-color:<?= $nationColor ?>;font-size:1.2em;'>【<?= $citylevel[$city['level']] ?>】</td> <td width=78 align=center style='color:<?= $textColor ?>;background-color:<?= $nationColor ?>;font-size:1.2em;'>【<?= $citylevel[$city['level']] ?>】</td>
<td width=78 align=right style='color:<?= $textColor ?>;background-color:<?= $nationColor ?>;font-size:1.2em;'><?= $city['name'] ?>&nbsp;&nbsp;</td> <td width=78 align=right style='color:<?= $textColor ?>;background-color:<?= $nationColor ?>;font-size:1.2em;'><?= $city['name'] ?>&nbsp;&nbsp;</td>
@@ -516,12 +553,19 @@ $officer = $cityOfficerList[$officerLevel];
} }
?> ?>
<tr><td colspan=5>※ <font color=orange>노란색</font>은 변경 불가능, 하얀색은 변경 가능 관직입니다.</td></tr> <tr>
<td colspan=5>※ <font color=orange>노란색</font>은 변경 불가능, 하얀색은 변경 가능 관직입니다.</td>
</tr>
</table> </table>
<br> <br>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= backButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+75 -22
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -35,20 +36,24 @@ $sel = [$type => "selected"];
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<title><?= UniqueConst::$serverName ?>: 세력도시</title> <title><?= UniqueConst::$serverName ?>: 세력도시</title>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/extExpandCity.js') ?> <?= WebUtil::printJS('dist_js/extExpandCity.js') ?>
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>세 력 도 시<br><?=backButton()?></td></tr> <tr>
<tr><td><form name=form1 method=post>정렬순서 : <td>세 력 도 시<br><?= backButton() ?></td>
</tr>
<tr>
<td>
<form name=form1 method=post>정렬순서 :
<select name=type size=1> <select name=type size=1>
<option <?= $sel[1] ?? '' ?> value=1>기본</option> <option <?= $sel[1] ?? '' ?> value=1>기본</option>
<option <?= $sel[2] ?? '' ?> value=2>인구</option> <option <?= $sel[2] ?? '' ?> value=2>인구</option>
@@ -63,8 +68,10 @@ $sel = [$type => "selected"];
<option <?= $sel[11] ?? '' ?> value=11>지역</option> <option <?= $sel[11] ?? '' ?> value=11>지역</option>
<option <?= $sel[12] ?? '' ?> value=12>규모</option> <option <?= $sel[12] ?? '' ?> value=12>규모</option>
</select> </select>
<input type=submit value='정렬하기'></form> <input type=submit value='정렬하기'>
</td></tr> </form>
</td>
</tr>
</table> </table>
<?php <?php
@@ -84,30 +91,71 @@ $cityList = $db->query('SELECT *,pop/pop_max as poprate from city where nation=%
switch ($type) { switch ($type) {
case 1: break; case 1:
case 2: usort($cityList, function($lhs, $rhs){return $rhs['pop'] <=> $lhs['pop'];}); break; break;
case 3: usort($cityList, function($lhs, $rhs){return $rhs['poprate'] <=> $lhs['poprate'];}); break; case 2:
case 4: usort($cityList, function($lhs, $rhs){return $rhs['trust'] <=> $lhs['trust'];}); break; usort($cityList, function ($lhs, $rhs) {
case 5: usort($cityList, function($lhs, $rhs){return $rhs['agri'] <=> $lhs['agri'];}); break; return $rhs['pop'] <=> $lhs['pop'];
case 6: usort($cityList, function($lhs, $rhs){return $rhs['comm'] <=> $lhs['comm'];}); break; });
case 7: usort($cityList, function($lhs, $rhs){return $rhs['secu'] <=> $lhs['secu'];}); break; break;
case 8: usort($cityList, function($lhs, $rhs){return $rhs['def'] <=> $lhs['def'];}); break; case 3:
case 9: usort($cityList, function($lhs, $rhs){return $rhs['wall'] <=> $lhs['wall'];}); break; usort($cityList, function ($lhs, $rhs) {
case 10: usort($cityList, function($lhs, $rhs){return $rhs['trade'] <=> $lhs['trade'];}); break; return $rhs['poprate'] <=> $lhs['poprate'];
case 11: usort($cityList, function($lhs, $rhs){ });
break;
case 4:
usort($cityList, function ($lhs, $rhs) {
return $rhs['trust'] <=> $lhs['trust'];
});
break;
case 5:
usort($cityList, function ($lhs, $rhs) {
return $rhs['agri'] <=> $lhs['agri'];
});
break;
case 6:
usort($cityList, function ($lhs, $rhs) {
return $rhs['comm'] <=> $lhs['comm'];
});
break;
case 7:
usort($cityList, function ($lhs, $rhs) {
return $rhs['secu'] <=> $lhs['secu'];
});
break;
case 8:
usort($cityList, function ($lhs, $rhs) {
return $rhs['def'] <=> $lhs['def'];
});
break;
case 9:
usort($cityList, function ($lhs, $rhs) {
return $rhs['wall'] <=> $lhs['wall'];
});
break;
case 10:
usort($cityList, function ($lhs, $rhs) {
return $rhs['trade'] <=> $lhs['trade'];
});
break;
case 11:
usort($cityList, function ($lhs, $rhs) {
$cmpTrust = $lhs['region'] <=> $rhs['region']; $cmpTrust = $lhs['region'] <=> $rhs['region'];
if ($cmpTrust != 0) { if ($cmpTrust != 0) {
return $cmpTrust; return $cmpTrust;
} }
return $rhs['level'] <=> $lhs['level']; return $rhs['level'] <=> $lhs['level'];
}); break; });
case 12: usort($cityList, function($lhs, $rhs){ break;
case 12:
usort($cityList, function ($lhs, $rhs) {
$cmpTrust = $rhs['level'] <=> $lhs['level']; $cmpTrust = $rhs['level'] <=> $lhs['level'];
if ($cmpTrust != 0) { if ($cmpTrust != 0) {
return $cmpTrust; return $cmpTrust;
} }
return $lhs['region'] <=> $rhs['region']; return $lhs['region'] <=> $rhs['region'];
}); break; });
break;
} }
$region = 0; $region = 0;
@@ -201,9 +249,14 @@ foreach($cityList as $city){
?> ?>
<table align=center width=1000 class='tb_layout bg0 anchor'> <table align=center width=1000 class='tb_layout bg0 anchor'>
<tr><td><?=backButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= backButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
<div id="helper_genlist" style="display:none;"></div> <div id="helper_genlist" style="display:none;"></div>
</html> </html>
+31 -13
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -44,20 +45,24 @@ if($gameStor->isunited){
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<title><?= UniqueConst::$serverName ?>: 세력장수</title> <title><?= UniqueConst::$serverName ?>: 세력장수</title>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>세 력 장 수<br><?=backButton()?></td></tr> <tr>
<tr><td><form name=form1 method=post>정렬순서 : <td>세 력 장 수<br><?= backButton() ?></td>
</tr>
<tr>
<td>
<form name=form1 method=post>정렬순서 :
<select name=type size=1> <select name=type size=1>
<option <?= $sel[1] ?? '' ?> value=1>관직</option> <option <?= $sel[1] ?? '' ?> value=1>관직</option>
<option <?= $sel[2] ?? '' ?> value=2>계급</option> <option <?= $sel[2] ?? '' ?> value=2>계급</option>
@@ -75,8 +80,10 @@ if($gameStor->isunited){
<option <?= $sel[14] ?? '' ?> value=14>사관</option> <option <?= $sel[14] ?? '' ?> value=14>사관</option>
<option <?= $sel[15] ?? '' ?> value=15>NPC</option> <option <?= $sel[15] ?? '' ?> value=15>NPC</option>
</select> </select>
<input type=submit value='정렬하기'></form> <input type=submit value='정렬하기'>
</td></tr> </form>
</td>
</tr>
</table> </table>
<?php <?php
@@ -143,9 +150,13 @@ foreach($generalList as $general){
$intel = "{$general['intel']}"; $intel = "{$general['intel']}";
} }
if($general['npc'] >= 2) { $name = "<font color=cyan>{$general['name']}</font>"; } if ($general['npc'] >= 2) {
elseif($general['npc'] == 1) { $name = "<font color=skyblue>{$general['name']}</font>"; } $name = "<font color=cyan>{$general['name']}</font>";
else { $name = "{$general['name']}"; } } elseif ($general['npc'] == 1) {
$name = "<font color=skyblue>{$general['name']}</font>";
} else {
$name = "{$general['name']}";
}
if (key_exists($general['owner'], $ownerNameList)) { if (key_exists($general['owner'], $ownerNameList)) {
$name = $name . '<br><small>(' . $ownerNameList[$general['owner']] . ')</small>'; $name = $name . '<br><small>(' . $ownerNameList[$general['owner']] . ')</small>';
@@ -156,7 +167,9 @@ foreach($generalList as $general){
<tr> <tr>
<td align=center class='generalIcon' style='background:no-repeat center url(\"{$imageTemp}/{$general['picture']}\");background-size:64px;' height=64></td> <td align=center class='generalIcon' style='background:no-repeat center url(\"{$imageTemp}/{$general['picture']}\");background-size:64px;' height=64></td>
<td align=center>$name</td> <td align=center>$name</td>
<td align=center>"; echo getOfficerLevelText($general['officer_level'], $nationLevel); echo "</td> <td align=center>";
echo getOfficerLevelText($general['officer_level'], $nationLevel);
echo "</td>
<td align=center>" . getDed($general['dedication']) . "</td> <td align=center>" . getDed($general['dedication']) . "</td>
<td align=center>" . getHonor($general['experience']) . "</td> <td align=center>" . getHonor($general['experience']) . "</td>
<td align=center>" . getBill($general['dedication']) . "</td> <td align=center>" . getBill($general['dedication']) . "</td>
@@ -168,7 +181,8 @@ foreach($generalList as $general){
<td align=center>" . displayCharInfo($general['personal']) . "</td> <td align=center>" . displayCharInfo($general['personal']) . "</td>
<td align=center>" . displaySpecialDomesticInfo($general['special']) . " / " . displaySpecialWarInfo($general['special2']) . "</td> <td align=center>" . displaySpecialDomesticInfo($general['special']) . " / " . displaySpecialWarInfo($general['special2']) . "</td>
<td align=center>{$general['belong']}</td> <td align=center>{$general['belong']}</td>
<td align=center>{$general['connect']}"; echo "<br>(".getConnect($general['connect']).")</td> <td align=center>{$general['connect']}";
echo "<br>(" . getConnect($general['connect']) . ")</td>
</tr>"; </tr>";
} }
echo " echo "
@@ -178,8 +192,12 @@ foreach($generalList as $general){
?> ?>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= backButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
+13 -7
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -29,17 +30,19 @@ if($nationID == 0) {
<title><?= UniqueConst::$serverName ?>: 세력정보</title> <title><?= UniqueConst::$serverName ?>: 세력정보</title>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>세 력 정 보<br><?=backButton()?></td></tr> <tr>
<td>세 력 정 보<br><?= backButton() ?></td>
</tr>
</table> </table>
<br> <br>
<?php <?php
@@ -56,8 +59,7 @@ foreach($cityList as $city){
$maxPop += $city['pop_max']; $maxPop += $city['pop_max'];
if ($city['city'] == $nation['capital']) { if ($city['city'] == $nation['capital']) {
$cityNames[] = "<span style='color:cyan;'>{$city['name']}</span>"; $cityNames[] = "<span style='color:cyan;'>{$city['name']}</span>";
} } else {
else{
$cityNames[] = $city['name']; $cityNames[] = $city['name'];
} }
} }
@@ -153,8 +155,12 @@ if ($budgetricediff > 0) {
<br> <br>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= backButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
+26 -9
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -43,6 +44,7 @@ $use_auto_nation_turn = $me->getAuxVar('use_auto_nation_turn')??1;
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -53,17 +55,19 @@ var availableDieImmediately = <?=$availableDieImmediately?'true':'false'?>;
</script> </script>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?= WebUtil::printJS('dist_js/myPage.js') ?> <?= WebUtil::printJS('dist_js/myPage.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td>내 정 보<br><?=backButton()?></td></tr> <tr>
<td>내 정 보<br><?= backButton() ?></td>
</tr>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr> <tr>
@@ -124,8 +128,12 @@ var availableDieImmediately = <?=$availableDieImmediately?'true':'false'?>;
</td> </td>
</tr> </tr>
<tr> <tr>
<td align=center class='bg1'><font color=skyblue size=3>개인 기록</font></td> <td align=center class='bg1'>
<td align=center class='bg1'><font color=orange size=3>전투 기록</font></td> <font color=skyblue size=3>개인 기록</font>
</td>
<td align=center class='bg1'>
<font color=orange size=3>전투 기록</font>
</td>
</tr> </tr>
<tr> <tr>
<td valign=top> <td valign=top>
@@ -142,8 +150,12 @@ var availableDieImmediately = <?=$availableDieImmediately?'true':'false'?>;
</td> </td>
</tr> </tr>
<tr> <tr>
<td align=center class='bg1'><font color=skyblue size=3>장수 열전</font></td> <td align=center class='bg1'>
<td align=center class='bg1'><font color=orange size=3>전투 결과</font></td> <font color=skyblue size=3>장수 열전</font>
</td>
<td align=center class='bg1'>
<font color=orange size=3>전투 결과</font>
</td>
</tr> </tr>
<tr> <tr>
<td valign=top> <td valign=top>
@@ -158,8 +170,13 @@ var availableDieImmediately = <?=$availableDieImmediately?'true':'false'?>;
</tr> </tr>
</table> </table>
<table align=center width=1000 class='tb_layout bg0'> <table align=center width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr> <tr>
<tr><td><?=banner()?></td></tr> <td><?= backButton() ?></td>
</tr>
<tr>
<td><?= banner() ?></td>
</tr>
</table> </table>
</body> </body>
</html> </html>
+21 -11
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -14,8 +15,7 @@ function die_redirect()
global $isChiefTurn; global $isChiefTurn;
if (!$isChiefTurn) { if (!$isChiefTurn) {
header('location:index.php', true, 303); header('location:index.php', true, 303);
} } else {
else{
header('location:b_chiefcenter.php', true, 303); header('location:b_chiefcenter.php', true, 303);
} }
die(); die();
@@ -46,8 +46,7 @@ $general = General::createGeneralObjFromDB($session->generalID);
if (!$isChiefTurn) { if (!$isChiefTurn) {
$commandObj = buildGeneralCommandClass($commandType, $general, $env); $commandObj = buildGeneralCommandClass($commandType, $general, $env);
} } else {
else{
if ($general->getVar('officer_level') < 5) { if ($general->getVar('officer_level') < 5) {
die_redirect(); die_redirect();
} }
@@ -70,6 +69,7 @@ $cssList = $commandObj->getCSSFiles();
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title><?= $commandObj->getName() ?></title> <title><?= $commandObj->getName() ?></title>
<meta charset="UTF-8"> <meta charset="UTF-8">
@@ -77,6 +77,7 @@ $cssList = $commandObj->getCSSFiles();
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?= WebUtil::printJS('d_shared/base_map.js') ?> <?= WebUtil::printJS('d_shared/base_map.js') ?>
<?= WebUtil::printJS('dist_js/processing.js') ?> <?= WebUtil::printJS('dist_js/processing.js') ?>
@@ -88,11 +89,10 @@ window.turnList = [<?=join(', ',$turnList)?>];
window.isChiefTurn = <?= $isChiefTurn ? 'true' : 'false' ?>; window.isChiefTurn = <?= $isChiefTurn ? 'true' : 'false' ?>;
var jsPlugins = <?= Json::encode($jsList) ?>; var jsPlugins = <?= Json::encode($jsList) ?>;
</script> </script>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../e_lib/select2/select2.min.css') ?> <?= WebUtil::printCSS('../e_lib/select2/select2.min.css') ?>
<?= WebUtil::printCSS('../e_lib/select2/select2-bootstrap4.css') ?> <?= WebUtil::printCSS('../e_lib/select2/select2-bootstrap4.css') ?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/main.css') ?> <?= WebUtil::printCSS('css/main.css') ?>
<?= WebUtil::printCSS('css/map.css') ?> <?= WebUtil::printCSS('css/map.css') ?>
@@ -104,23 +104,33 @@ foreach($cssList as $css){
} }
?> ?>
</head> </head>
<body class="img_back"> <body class="img_back">
<table class="tb_layout bg0" style="width:1000px;margin:auto;"> <table class="tb_layout bg0" style="width:1000px;margin:auto;">
<tr><td class="bg1" style='text-align:center;'><?=$commandObj->getName()?></td></tr> <tr>
<tr><td> <td class="bg1" style='text-align:center;'><?= $commandObj->getName() ?></td>
</tr>
<tr>
<td>
<input type=button value='돌아가기' onclick="history.back();"><br> <input type=button value='돌아가기' onclick="history.back();"><br>
</td></tr></table> </td>
</tr>
</table>
<div class="tb_layout bg0" style="width:1000px;margin:auto;padding-bottom:2em;border:solid 1px gray;"> <div class="tb_layout bg0" style="width:1000px;margin:auto;padding-bottom:2em;border:solid 1px gray;">
<?= $commandObj->getForm() ?> <?= $commandObj->getForm() ?>
</div> </div>
<table class="tb_layout bg0" style="width:1000px;margin:auto;"> <table class="tb_layout bg0" style="width:1000px;margin:auto;">
<tr><td> <tr>
<td>
<input type=button value='돌아가기' onclick="history.back();"><br> <input type=button value='돌아가기' onclick="history.back();"><br>
<?= banner() ?> <?= banner() ?>
</td></tr></table> </td>
</tr>
</table>
</body> </body>
</html> </html>
+1 -1
View File
@@ -43,7 +43,7 @@ case 3: $tnmt_type = "<font color=cyan>설전</font>"; $tp = "intel"; $tp2 = "
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<title><?=UniqueConst::$serverName?>: 토너먼트</title> <title><?=UniqueConst::$serverName?>: 토너먼트</title>
<?=WebUtil::printCSS('../d_shared/common.css')?> <?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?> <?=WebUtil::printCSS('dist_css/common.css')?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
+42 -18
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -24,8 +25,7 @@ foreach($db->query('SELECT troop_leader,name FROM troop WHERE nation = %i', $me[
foreach ($db->query( foreach ($db->query(
'SELECT no,name,turntime,troop,city FROM general WHERE troop!=0 AND nation = %i ORDER BY turntime ASC', 'SELECT no,name,turntime,troop,city FROM general WHERE troop!=0 AND nation = %i ORDER BY turntime ASC',
$me['nation'] $me['nation']
) as $general ) as $general) {
){
if (!key_exists($general['troop'], $troops)) { if (!key_exists($general['troop'], $troops)) {
trigger_error("올바르지 않은 부대 소속 {$general['no']}, {$general['name']} : {$general['troop']}"); trigger_error("올바르지 않은 부대 소속 {$general['no']}, {$general['name']} : {$general['troop']}");
continue; continue;
@@ -46,8 +46,7 @@ if($troops){
foreach ($db->queryAllLists( foreach ($db->queryAllLists(
'SELECT general_id, turn_idx, brief FROM general_turn WHERE general_id IN %li AND turn_idx < 5 ORDER BY general_id ASC, turn_idx ASC', 'SELECT general_id, turn_idx, brief FROM general_turn WHERE general_id IN %li AND turn_idx < 5 ORDER BY general_id ASC, turn_idx ASC',
array_column($troopLeaders, 'no') array_column($troopLeaders, 'no')
) as [$generalID, $turnIdx, $brief] ) as [$generalID, $turnIdx, $brief]) {
){
if (!key_exists($generalID, $generalTurnList)) { if (!key_exists($generalID, $generalTurnList)) {
$generalTurnList[$generalID] = []; $generalTurnList[$generalID] = [];
} }
@@ -80,6 +79,7 @@ uasort($troops, function($lhs, $rhs){
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -88,10 +88,10 @@ uasort($troops, function($lhs, $rhs){
<?= WebUtil::preloadJS('dist_js/troop.js') ?> <?= WebUtil::preloadJS('dist_js/troop.js') ?>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('dist_css/troop.css') ?> <?= WebUtil::printCSS('dist_css/troop.css') ?>
<script> <script>
@@ -102,7 +102,9 @@ uasort($troops, function($lhs, $rhs){
<body> <body>
<div style="width:1000px;margin:auto;"> <div style="width:1000px;margin:auto;">
<table width=1000 class='tb_layout bg0'> <table width=1000 class='tb_layout bg0'>
<tr><td>부 대 편 성<br><?=backButton()?></td></tr> <tr>
<td>부 대 편 성<br><?= backButton() ?></td>
</tr>
</table> </table>
<table id="troop_list" class='tb_layout bg0'> <table id="troop_list" class='tb_layout bg0'>
<thead> <thead>
@@ -114,14 +116,18 @@ uasort($troops, function($lhs, $rhs){
<td width=130 class='bg1 center' style=table-layout:fixed;word-break:break-all;>부대장행동</td> <td width=130 class='bg1 center' style=table-layout:fixed;word-break:break-all;>부대장행동</td>
</tr> </tr>
</thead> </thead>
<tfoot><tr><td colspan='5'> <tfoot>
<tr>
<td colspan='5'>
<?php if (!$troops) : ?> <?php if (!$troops) : ?>
<?php elseif ($me['troop'] == 0) : ?> <?php elseif ($me['troop'] == 0) : ?>
<input type=button id='btnJoinTroop' value='부 대 가 입'> <input type=button id='btnJoinTroop' value='부 대 가 입'>
<?php else : ?> <?php else : ?>
<input type=button id="btnLeaveTroop" value='부 대 탈 퇴'> <input type=button id="btnLeaveTroop" value='부 대 탈 퇴'>
<?php endif; ?> <?php endif; ?>
</td></tr></tfoot> </td>
</tr>
</tfoot>
<tbody> <tbody>
<?php <?php
foreach ($troops as $troopNo => $troop) { foreach ($troops as $troopNo => $troop) {
@@ -155,9 +161,15 @@ foreach ($troops as $troopNo=>$troop) {
<td rowspan=2><?= $troopLeader['turnText'] ?></td> <td rowspan=2><?= $troopLeader['turnText'] ?></td>
</tr> </tr>
<tr> <tr>
<td align=center><font size=2>【턴】 <?=substr($troopLeader['turntime'], 14, 5)?></font></td> <td align=center>
<td align=center><font size=1><?=$troopLeader['name']?></font></td></tr> <font size=2>【턴】 <?= substr($troopLeader['turntime'], 14, 5) ?></font>
<tr><td colspan=5> </td>
<td align=center>
<font size=1><?= $troopLeader['name'] ?></font>
</td>
</tr>
<tr>
<td colspan=5>
<?php else : ?> <?php else : ?>
<tr> <tr>
@@ -181,11 +193,18 @@ foreach ($troops as $troopNo=>$troop) {
<?php endif; ?> <?php endif; ?>
</td> </td>
</tr> </tr>
<tr><td align=center><font size=2>【턴】 <?=substr($troopLeader['turntime'], 14, 5)?></font></td> <tr>
<td align=center><font size=1><?=$troopLeader['name']?></font></td></tr> <td align=center>
<tr><td colspan=5></td></tr> <font size=2>【턴】 <?= substr($troopLeader['turntime'], 14, 5) ?></font>
</td>
<td align=center>
<font size=1><?= $troopLeader['name'] ?></font>
</td>
</tr>
<tr>
<td colspan=5></td>
</tr>
<?php endif; <?php endif;
} //foreach ($troops as $troopNo=>$troop) { } //foreach ($troops as $troopNo=>$troop) {
?> ?>
@@ -206,10 +225,15 @@ foreach ($troops as $troopNo=>$troop) {
</table> </table>
<table width=1000 class='tb_layout bg0'> <table width=1000 class='tb_layout bg0'>
<tr><td><?=backButton()?></td></tr> <tr>
<tr><td><?=banner()?> </td></tr> <td><?= backButton() ?></td>
</tr>
<tr>
<td><?= banner() ?> </td>
</tr>
</table> </table>
</div> </div>
<?= WebUtil::printJS('dist_js/troop.js') ?> <?= WebUtil::printJS('dist_js/troop.js') ?>
</body> </body>
</html> </html>
+131 -151
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -18,8 +19,7 @@ if($me){
$generalID = $me['no']; $generalID = $me['no'];
$nationID = $me['nation']; $nationID = $me['nation'];
$city = $db->queryFirstRow('SELECT city, level, def, wall FROM city WHERE city = %i', $me['city']); $city = $db->queryFirstRow('SELECT city, level, def, wall FROM city WHERE city = %i', $me['city']);
} } else {
else{
$generalID = 0; $generalID = 0;
$nationID = 0; $nationID = 0;
$city = [ $city = [
@@ -32,26 +32,26 @@ else{
if ($nationID) { if ($nationID) {
$nation = $db->queryFirstRow('SELECT level, type, tech, capital FROM nation WHERE nation = %i', $nationID); $nation = $db->queryFirstRow('SELECT level, type, tech, capital FROM nation WHERE nation = %i', $nationID);
} } else {
else{
$nation = null; $nation = null;
} }
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title><?= UniqueConst::$serverName ?>: 전투 시뮬레이터</title> <title><?= UniqueConst::$serverName ?>: 전투 시뮬레이터</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1100" /> <meta name="viewport" content="width=1100" />
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/battle_simulator.css') ?> <?= WebUtil::printCSS('css/battle_simulator.css') ?>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<script> <script>
var defaultSpecialDomestic = '<?= GameConst::$defaultSpecialDomestic ?>'; var defaultSpecialDomestic = '<?= GameConst::$defaultSpecialDomestic ?>';
var city = <?= Json::encode($city) ?>; var city = <?= Json::encode($city) ?>;
@@ -59,6 +59,7 @@ var nation = <?=Json::encode($nation)?>;
</script> </script>
<?= WebUtil::printJS('dist_js/battle_simulator.js') ?> <?= WebUtil::printJS('dist_js/battle_simulator.js') ?>
</head> </head>
<body> <body>
<div id="container"> <div id="container">
<div class="card mb-3"> <div class="card mb-3">
@@ -70,34 +71,28 @@ var nation = <?=Json::encode($nation)?>;
<div class="col-sm-6"> <div class="col-sm-6">
<div class="input-group"> <div class="input-group">
<input type="number" class="form-control" aria-describedby="text_year" value="<?= $startYear ?>" disabled> <input type="number" class="form-control" aria-describedby="text_year" value="<?= $startYear ?>" disabled>
<div class="input-group-append"> <div class="input-group-text"> 년 시작 </div>
<span class="input-group-text">년 시작</span>
</div>
<input type="number" class="form-control" id="year" value="<?= $year ?>" min="<?= $startYear ?>"> <input type="number" class="form-control" id="year" value="<?= $year ?>" min="<?= $startYear ?>">
<div class="input-group-append"> <div class="input-group-text"> 년 </div>
<span class="input-group-text">년</span>
</div>
<input type="number" class="form-control" id="month" value="1" min="1" max="12"> <input type="number" class="form-control" id="month" value="1" min="1" max="12">
<div class="input-group-append"> <div class="input-group-text"> 월 </div>
<span class="input-group-text">월</span>
</div>
</div> </div>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<div class="btn-toolbar" role="toolbar"> <div class="btn-toolbar" role="toolbar">
<div class="input-group mr-2" role="group"> <div class="input-group me-2" role="group">
<div class="input-group-prepend"> <div class="input-group-text">
<span class="input-group-text">반복 횟수</span> 반복 횟수
</div> </div>
<select class="custom-select" id="repeat_cnt"> <select class="form-select" id="repeat_cnt">
<option value="1">1회 (로그 표기)</option> <option value="1">1회 (로그 표기)</option>
<option value="1000">1000회 (요약 표기)</option> <option value="1000">1000회 (요약 표기)</option>
</select> </select>
</div> </div>
<div class="btn-group mr-2" role="group"> <div class="btn-group me-2" role="group">
<button type="button" class="btn btn-danger btn-begin_battle">전투</button> <button type="button" class="btn btn-danger btn-begin_battle">전투</button>
</div> </div>
<div class="btn-group mr-2" role="group"> <div class="btn-group me-2" role="group">
<button type="button" class="btn btn-info btn-battle-save">모두 저장</button> <button type="button" class="btn btn-info btn-battle-save">모두 저장</button>
<input type="file" class="form_load_battle_file" accept=".json" style="display: none;" /> <input type="file" class="form_load_battle_file" accept=".json" style="display: none;" />
<button type="button" class="btn btn-primary btn-battle-load">모두 불러오기</button> <button type="button" class="btn btn-primary btn-battle-load">모두 불러오기</button>
@@ -115,44 +110,35 @@ var nation = <?=Json::encode($nation)?>;
</div> </div>
<div class="card-body nation_detail dragpad_battle"> <div class="card-body nation_detail dragpad_battle">
<div class="input-group mb-1"> <div class="input-group mb-1">
<div class="input-group-prepend"> <div class="input-group-text">국가 성향
<span class="input-group-text">국가 성향</span>
</div> </div>
<select class="custom-select form_nation_type" style="width:25ch;"> <select class="form-select form_nation_type" style="width:25ch;">
<?php foreach (GameConst::$availableNationType as $typeID) : ?> <?php foreach (GameConst::$availableNationType as $typeID) : ?>
<?php $nationTypeClass = buildNationTypeClass($typeID) ?> <?php $nationTypeClass = buildNationTypeClass($typeID) ?>
<option value="<?= $typeID ?>"><?= $nationTypeClass->getName() ?> (<?= $nationTypeClass::$pros ?>, <?= $nationTypeClass::$cons ?>)</option> <option value="<?= $typeID ?>"><?= $nationTypeClass->getName() ?> (<?= $nationTypeClass::$pros ?>, <?= $nationTypeClass::$cons ?>)</option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">기술 </div>
<span class="input-group-text">기술</span>
</div>
<input type="number" class="form-control form_tech" value="1" min="0" max="12"> <input type="number" class="form-control form_tech" value="1" min="0" max="12">
<div class="input-group-append"> <div class="input-group-text">등급 </div>
<span class="input-group-text">등급</span>
</div>
</div> </div>
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-prepend"> <div class="input-group-text">국가 규모 </div>
<span class="input-group-text">국가 규모</span> <select class="form-select form_nation_level">
</div>
<select class="custom-select form_nation_level">
<?php foreach (getNationLevelList() as $nationLevel => [$name, $chiefCnt, $cityCnt]) : ?> <?php foreach (getNationLevelList() as $nationLevel => [$name, $chiefCnt, $cityCnt]) : ?>
<option value="<?= $nationLevel ?>"><?= $name ?></option> <option value="<?= $nationLevel ?>"><?= $name ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">도시 규모
<span class="input-group-text">도시 규모</span>
</div> </div>
<select class="custom-select form_city_level"> <select class="form-select form_city_level">
<?php foreach (getCityLevelList() as $levelID => $name) : ?> <?php foreach (getCityLevelList() as $levelID => $name) : ?>
<option value="<?= $levelID ?>"><?= $name ?></option> <option value="<?= $levelID ?>"><?= $name ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">수도
<span class="input-group-text">수도</span>
</div> </div>
<div class="input-group-append btn-group btn-group-toggle" data-toggle="buttons"> <div class="input-group-text btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary"> <label class="btn btn-secondary">
<input type="radio" name="is_attacker_capital" class="form_is_capital" value="1" autocomplete="off">Y <input type="radio" name="is_attacker_capital" class="form_is_capital" value="1" autocomplete="off">Y
</label> </label>
@@ -169,12 +155,12 @@ var nation = <?=Json::encode($nation)?>;
</div> </div>
<div class="card mb-2 attacker_form general_form" data-general_no='1'> <div class="card mb-2 attacker_form general_form" data-general_no='1'>
<div class="card-header"> <div class="card-header">
<div class="float-sm-left" style="line-height:25px;">출병자 설정</div> <div class="float-sm-start" style="line-height:25px;">출병자 설정</div>
<div class="float-sm-right btn-toolbar" role="toolbar"> <div class="float-sm-end btn-toolbar" role="toolbar">
<div class="btn-group btn-group-sm mr-2" role="group"> <div class="btn-group btn-group-sm me-2" role="group">
<button type="button" class="btn btn-success btn-general-import-server">서버에서 가져오기</button> <button type="button" class="btn btn-success btn-general-import-server">서버에서 가져오기</button>
</div> </div>
<div class="btn-group btn-group-sm mr-2" role="group"> <div class="btn-group btn-group-sm me-2" role="group">
<button type="button" class="btn btn-info btn-general-save">저장</button> <button type="button" class="btn btn-info btn-general-save">저장</button>
<input type="file" class="form_load_general_file" accept=".json" style="display: none;" /> <input type="file" class="form_load_general_file" accept=".json" style="display: none;" />
<button type="button" class="btn btn-primary btn-general-load">불러오기</button> <button type="button" class="btn btn-primary btn-general-load">불러오기</button>
@@ -190,44 +176,38 @@ var nation = <?=Json::encode($nation)?>;
</div> </div>
<div class="card-body dragpad_battle"> <div class="card-body dragpad_battle">
<div class="input-group mb-1"> <div class="input-group mb-1">
<div class="input-group-prepend"> <div class="input-group-text">국가 성향
<span class="input-group-text">국가 성향</span>
</div> </div>
<select class="custom-select form_nation_type" style="width:25ch;"> <select class="form-select form_nation_type" style="width:25ch;">
<?php foreach (GameConst::$availableNationType as $typeID) : ?> <?php foreach (GameConst::$availableNationType as $typeID) : ?>
<?php $nationTypeObj = buildNationTypeClass($typeID) ?> <?php $nationTypeObj = buildNationTypeClass($typeID) ?>
<option value="<?= $typeID ?>"><?= $nationTypeObj->getName() ?> (<?= $nationTypeObj::$pros ?>, <?= $nationTypeObj::$cons ?>)</option> <option value="<?= $typeID ?>"><?= $nationTypeObj->getName() ?> (<?= $nationTypeObj::$pros ?>, <?= $nationTypeObj::$cons ?>)</option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">기술
<span class="input-group-text">기술</span>
</div> </div>
<input type="number" class="form-control form_tech" value="1" min="0" max="12"> <input type="number" class="form-control form_tech" value="1" min="0" max="12">
<div class="input-group-append"> <div class="input-group-text">등급
<span class="input-group-text">등급</span>
</div> </div>
</div> </div>
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-prepend"> <div class="input-group-text">국가 규모
<span class="input-group-text">국가 규모</span>
</div> </div>
<select class="custom-select form_nation_level"> <select class="form-select form_nation_level">
<?php foreach (getNationLevelList() as $nationLevel => [$name, $chiefCnt, $cityCnt]) : ?> <?php foreach (getNationLevelList() as $nationLevel => [$name, $chiefCnt, $cityCnt]) : ?>
<option value="<?= $nationLevel ?>"><?= $name ?></option> <option value="<?= $nationLevel ?>"><?= $name ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">도시 규모
<span class="input-group-text">도시 규모</span>
</div> </div>
<select class="custom-select form_city_level"> <select class="form-select form_city_level">
<?php foreach (getCityLevelList() as $levelID => $name) : ?> <?php foreach (getCityLevelList() as $levelID => $name) : ?>
<option value="<?= $levelID ?>"><?= $name ?></option> <option value="<?= $levelID ?>"><?= $name ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">수도
<span class="input-group-text">수도</span>
</div> </div>
<div class="input-group-append btn-group btn-group-toggle" data-toggle="buttons"> <div class="input-group-text btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary"> <label class="btn btn-secondary">
<input type="radio" name="is_defender_capital" class="form_is_capital" value="1" autocomplete="off">Y <input type="radio" name="is_defender_capital" class="form_is_capital" value="1" autocomplete="off">Y
</label> </label>
@@ -237,12 +217,10 @@ var nation = <?=Json::encode($nation)?>;
</div> </div>
</div> </div>
<div class="input-group mb-1"> <div class="input-group mb-1">
<div class="input-group-prepend"> <div class="input-group-text">수비
<span class="input-group-text">수비</span>
</div> </div>
<input type="number" class="form-control form_def" id="city_def" value="1000" min="10" step="10"> <input type="number" class="form-control form_def" id="city_def" value="1000" min="10" step="10">
<div class="input-group-prepend"> <div class="input-group-text">성벽
<span class="input-group-text">성벽</span>
</div> </div>
<input type="number" class="form-control form_wall" id="city_wall" value="1000" min="0" step="10"> <input type="number" class="form-control form_wall" id="city_wall" value="1000" min="0" step="10">
</div> </div>
@@ -250,9 +228,9 @@ var nation = <?=Json::encode($nation)?>;
</div> </div>
<div class="card mb-2 defender_add_form"> <div class="card mb-2 defender_add_form">
<div class="card-header"> <div class="card-header">
<div class="float-sm-left" style="line-height:25px;">수비자 설정</div> <div class="float-sm-start" style="line-height:25px;">수비자 설정</div>
<div class="float-sm-right btn-toolbar" role="toolbar"> <div class="float-sm-end btn-toolbar" role="toolbar">
<div class="btn-group btn-group-sm mr-2" role="group"> <div class="btn-group btn-group-sm me-2" role="group">
<button type="button" class="btn btn-dark btn-reorder_defender">수비 순서대로 정렬</button> <button type="button" class="btn btn-dark btn-reorder_defender">수비 순서대로 정렬</button>
</div> </div>
<div class="btn-group btn-group-sm" role="group"> <div class="btn-group btn-group-sm" role="group">
@@ -263,12 +241,12 @@ var nation = <?=Json::encode($nation)?>;
</div> </div>
<div class="card mb-2 form_sample"> <div class="card mb-2 form_sample">
<div class="card-header"> <div class="card-header">
<div class="float-sm-left" style="line-height:25px;">수비자 설정</div> <div class="float-sm-start" style="line-height:25px;">수비자 설정</div>
<div class="float-sm-right btn-toolbar" role="toolbar"> <div class="float-sm-end btn-toolbar" role="toolbar">
<div class="btn-group btn-group-sm mr-2" role="group"> <div class="btn-group btn-group-sm me-2" role="group">
<button type="button" class="btn btn-success btn-general-import-server">서버에서 가져오기</button> <button type="button" class="btn btn-success btn-general-import-server">서버에서 가져오기</button>
</div> </div>
<div class="btn-group btn-group-sm mr-2" role="group"> <div class="btn-group btn-group-sm me-2" role="group">
<button type="button" class="btn btn-info btn-general-save">저장</button> <button type="button" class="btn btn-info btn-general-save">저장</button>
<input type="file" class="form_load_general_file" accept=".json" style="display: none;" /> <input type="file" class="form_load_general_file" accept=".json" style="display: none;" />
<button type="button" class="btn btn-primary btn-general-load">불러오기</button> <button type="button" class="btn btn-primary btn-general-load">불러오기</button>
@@ -281,14 +259,12 @@ var nation = <?=Json::encode($nation)?>;
</div> </div>
<div class="card-body general_detail"> <div class="card-body general_detail">
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-prepend"> <div class="input-group-text">이름
<span class="input-group-text">이름</span>
</div> </div>
<input type="text" class="form-control form_general_name" value="무명" style="width:15ch;"> <input type="text" class="form-control form_general_name" value="무명" style="width:15ch;">
<div class="input-group-prepend"> <div class="input-group-text">직위
<span class="input-group-text">직위</span>
</div> </div>
<select class="custom-select form_officer_level" style="width:8ch;"> <select class="form-select form_officer_level" style="width:8ch;">
<option value="1">일반</option> <option value="1">일반</option>
<option value="4">태수</option> <option value="4">태수</option>
<option value="3">군사</option> <option value="3">군사</option>
@@ -298,49 +274,42 @@ var nation = <?=Json::encode($nation)?>;
<option value="11">참모</option> <option value="11">참모</option>
<option value="12">군주</option> <option value="12">군주</option>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">Level
<span class="input-group-text">Level</span>
</div> </div>
<input type="number" class="form-control form_exp_level" value="20" min="0" max="300" step="1"> <input type="number" class="form-control form_exp_level" value="20" min="0" max="300" step="1">
</div> </div>
<div class="input-group mb-1"> <div class="input-group mb-1">
<div class="input-group-prepend"> <div class="input-group-text">통솔
<span class="input-group-text">통솔</span>
</div> </div>
<input type="number" class="form-control form_leadership" value="50" min="1" max="300" step="1"> <input type="number" class="form-control form_leadership" value="50" min="1" max="300" step="1">
<div class="input-group-prepend"> <div class="input-group-text">무력
<span class="input-group-text">무력</span>
</div> </div>
<input type="number" class="form-control form_strength" value="50" min="1" max="300" step="1"> <input type="number" class="form-control form_strength" value="50" min="1" max="300" step="1">
<div class="input-group-prepend"> <div class="input-group-text">지력
<span class="input-group-text">지력</span>
</div> </div>
<input type="number" class="form-control form_intel" value="50" min="1" max="300" step="1"> <input type="number" class="form-control form_intel" value="50" min="1" max="300" step="1">
</div> </div>
<div class="input-group mb-1"> <div class="input-group mb-1">
<div class="input-group-prepend"> <div class="input-group-text">명마
<span class="input-group-text">명마</span>
</div> </div>
<select class="custom-select form_general_horse"> <select class="form-select form_general_horse">
<option value='None'>-</option> <option value='None'>-</option>
<?php foreach (GameConst::$allItems['horse'] as $horseID => $cnt) : ?> <?php foreach (GameConst::$allItems['horse'] as $horseID => $cnt) : ?>
<option value="<?= $horseID ?>"><?= getItemName($horseID) ?></option> <option value="<?= $horseID ?>"><?= getItemName($horseID) ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">무기
<span class="input-group-text">무기</span>
</div> </div>
<select class="custom-select form_general_weap"> <select class="form-select form_general_weap">
<option value='None'>-</option> <option value='None'>-</option>
<?php foreach (GameConst::$allItems['weapon'] as $weaponID => $cnt) : ?> <?php foreach (GameConst::$allItems['weapon'] as $weaponID => $cnt) : ?>
<option value="<?= $weaponID ?>"><?= getItemName($weaponID) ?></option> <option value="<?= $weaponID ?>"><?= getItemName($weaponID) ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">서적
<span class="input-group-text">서적</span>
</div> </div>
<select class="custom-select form_general_book"> <select class="form-select form_general_book">
<option value='None'>-</option> <option value='None'>-</option>
<?php foreach (GameConst::$allItems['book'] as $bookID => $cnt) : ?> <?php foreach (GameConst::$allItems['book'] as $bookID => $cnt) : ?>
<option value="<?= $bookID ?>"><?= getItemName($bookID) ?></option> <option value="<?= $bookID ?>"><?= getItemName($bookID) ?></option>
@@ -348,21 +317,17 @@ var nation = <?=Json::encode($nation)?>;
</select> </select>
</div> </div>
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-prepend"> <div class="input-group-text">부상
<span class="input-group-text">부상</span>
</div> </div>
<input type="number" class="form-control form_injury" value="0" min="0" max="80" step="1"> <input type="number" class="form-control form_injury" value="0" min="0" max="80" step="1">
<div class="input-group-append"> <div class="input-group-text">%(<span class="injury_helptext">건강</span>)
<span class="input-group-text">%(<span class="injury_helptext">건강</span>)</span>
</div> </div>
<div class="input-group-prepend"> <div class="input-group-text">군량
<span class="input-group-text">군량</span>
</div> </div>
<input type="number" class="form-control form_rice" value="5000" min="50" max="40000" step="50"> <input type="number" class="form-control form_rice" value="5000" min="50" max="40000" step="50">
<div class="input-group-prepend"> <div class="input-group-text">도구
<span class="input-group-text">도구</span>
</div> </div>
<select class="custom-select form_general_item"> <select class="form-select form_general_item">
<option value='None'>-</option> <option value='None'>-</option>
<?php foreach (GameConst::$allItems['item'] as $itemID => $cnt) : ?> <?php foreach (GameConst::$allItems['item'] as $itemID => $cnt) : ?>
<option value="<?= $itemID ?>"><?= getItemName($itemID) ?></option> <option value="<?= $itemID ?>"><?= getItemName($itemID) ?></option>
@@ -370,93 +335,83 @@ var nation = <?=Json::encode($nation)?>;
</select> </select>
</div> </div>
<div class="input-group mb-1"> <div class="input-group mb-1">
<div class="input-group-prepend"> <div class="input-group-text">병종
<span class="input-group-text">병종</span>
</div> </div>
<select class="custom-select form_crewtype"> <select class="form-select form_crewtype">
<?php foreach (GameUnitConst::all() as $crewTypeID => $crewType) : ?> <?php foreach (GameUnitConst::all() as $crewTypeID => $crewType) : ?>
<?php if($crewType->armType === GameUnitConst::T_CASTLE){ continue; } ?> <?php if ($crewType->armType === GameUnitConst::T_CASTLE) {
continue;
} ?>
<option value="<?= $crewTypeID ?>"><?= $crewType->name ?></option> <option value="<?= $crewTypeID ?>"><?= $crewType->name ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">병사
<span class="input-group-text">병사</span>
</div> </div>
<input type="number" class="form-control form_crew" value="7000" min="100" step="100"> <input type="number" class="form-control form_crew" value="7000" min="100" step="100">
<div class="input-group-prepend"> <div class="input-group-text">성격
<span class="input-group-text">성격</span>
</div> </div>
<select class="custom-select form_general_character"> <select class="form-select form_general_character">
<?php foreach (getCharacterList(false) as $characterID => [$name, $info]) : ?> <?php foreach (getCharacterList(false) as $characterID => [$name, $info]) : ?>
<option value="<?= $characterID ?>"><?= $name ?></option> <option value="<?= $characterID ?>"><?= $name ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
</div> </div>
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-prepend"> <div class="input-group-text">훈련
<span class="input-group-text">훈련</span>
</div> </div>
<input type="number" class="form-control form_train" value="100" min="40" max="<?= GameConst::$maxTrainByWar ?>" step="1"> <input type="number" class="form-control form_train" value="100" min="40" max="<?= GameConst::$maxTrainByWar ?>" step="1">
<div class="input-group-prepend"> <div class="input-group-text">사기
<span class="input-group-text">사기</span>
</div> </div>
<input type="number" class="form-control form_atmos" value="100" min="40" max="<?= GameConst::$maxAtmosByWar ?>" step="1"> <input type="number" class="form-control form_atmos" value="100" min="40" max="<?= GameConst::$maxAtmosByWar ?>" step="1">
<div class="input-group-prepend"> <div class="input-group-text">전특
<span class="input-group-text">전특</span>
</div> </div>
<select class="custom-select form_general_special_war"> <select class="form-select form_general_special_war">
<?php foreach (SpecialityHelper::getSpecialWarList(false) as $specialWarID => $specialObj) : ?> <?php foreach (SpecialityHelper::getSpecialWarList(false) as $specialWarID => $specialObj) : ?>
<option value="<?= $specialWarID ?>"><?= $specialObj->getName() ?></option> <option value="<?= $specialWarID ?>"><?= $specialObj->getName() ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
</div> </div>
<div class="input-group mb-1"> <div class="input-group mb-1">
<div class="input-group-prepend"> <div class="input-group-text">보병숙련
<span class="input-group-text">보병숙련</span>
</div> </div>
<select class="custom-select form_dex1"> <select class="form-select form_dex1">
<?php foreach (getDexLevelList() as $dexLevel => [$dexAmount, $color, $name]) : ?> <?php foreach (getDexLevelList() as $dexLevel => [$dexAmount, $color, $name]) : ?>
<option value="<?= $dexAmount ?>"><?= "{$name} (" . number_format($dexAmount) . ")" ?></option> <option value="<?= $dexAmount ?>"><?= "{$name} (" . number_format($dexAmount) . ")" ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">궁병숙련
<span class="input-group-text">궁병숙련</span>
</div> </div>
<select class="custom-select form_dex2"> <select class="form-select form_dex2">
<?php foreach (getDexLevelList() as $dexLevel => [$dexAmount, $color, $name]) : ?> <?php foreach (getDexLevelList() as $dexLevel => [$dexAmount, $color, $name]) : ?>
<option value="<?= $dexAmount ?>"><?= "{$name} (" . number_format($dexAmount) . ")" ?></option> <option value="<?= $dexAmount ?>"><?= "{$name} (" . number_format($dexAmount) . ")" ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">기병숙련
<span class="input-group-text">기병숙련</span>
</div> </div>
<select class="custom-select form_dex3"> <select class="form-select form_dex3">
<?php foreach (getDexLevelList() as $dexLevel => [$dexAmount, $color, $name]) : ?> <?php foreach (getDexLevelList() as $dexLevel => [$dexAmount, $color, $name]) : ?>
<option value="<?= $dexAmount ?>"><?= "{$name} (" . number_format($dexAmount) . ")" ?></option> <option value="<?= $dexAmount ?>"><?= "{$name} (" . number_format($dexAmount) . ")" ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
</div> </div>
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-prepend"> <div class="input-group-text">귀병숙련
<span class="input-group-text">귀병숙련</span>
</div> </div>
<select class="custom-select form_dex4"> <select class="form-select form_dex4">
<?php foreach (getDexLevelList() as $dexLevel => [$dexAmount, $color, $name]) : ?> <?php foreach (getDexLevelList() as $dexLevel => [$dexAmount, $color, $name]) : ?>
<option value="<?= $dexAmount ?>"><?= "{$name} (" . number_format($dexAmount) . ")" ?></option> <option value="<?= $dexAmount ?>"><?= "{$name} (" . number_format($dexAmount) . ")" ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend"> <div class="input-group-text">차병숙련
<span class="input-group-text">차병숙련</span>
</div> </div>
<select class="custom-select form_dex5"> <select class="form-select form_dex5">
<?php foreach (getDexLevelList() as $dexLevel => [$dexAmount, $color, $name]) : ?> <?php foreach (getDexLevelList() as $dexLevel => [$dexAmount, $color, $name]) : ?>
<option value="<?= $dexAmount ?>"><?= "{$name} (" . number_format($dexAmount) . ")" ?></option> <option value="<?= $dexAmount ?>"><?= "{$name} (" . number_format($dexAmount) . ")" ?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<div class="input-group-prepend only_defender"> <div class="input-group-text only_defender">수비여부
<span class="input-group-text">수비여부</span>
</div> </div>
<select class="custom-select form_defence_train only_defender"> <select class="form-select form_defence_train only_defender">
<option value="90">훈사 90</option> <option value="90">훈사 90</option>
<option value="80">훈사 80</option> <option value="80">훈사 80</option>
<option value="60">훈사 60</option> <option value="60">훈사 60</option>
@@ -465,16 +420,13 @@ var nation = <?=Json::encode($nation)?>;
</select> </select>
</div> </div>
<div class="input-group mb-1"> <div class="input-group mb-1">
<div class="input-group-prepend"> <div class="input-group-text">전투 수
<span class="input-group-text">전투 수</span>
</div> </div>
<input type="number" class="form-control form_warnum" value="0" step="1"> <input type="number" class="form-control form_warnum" value="0" step="1">
<div class="input-group-prepend"> <div class="input-group-text">승리 수
<span class="input-group-text">승리 수</span>
</div> </div>
<input type="number" class="form-control form_killnum" value="0" step="1"> <input type="number" class="form-control form_killnum" value="0" step="1">
<div class="input-group-prepend"> <div class="input-group-text">사살 수
<span class="input-group-text">사살 수</span>
</div> </div>
<input type="number" class="form-control form_killcrew" value="0" step="1"> <input type="number" class="form-control form_killcrew" value="0" step="1">
</div> </div>
@@ -490,15 +442,42 @@ var nation = <?=Json::encode($nation)?>;
</div> </div>
<table class="table"> <table class="table">
<tbody id="battle_result_summary"> <tbody id="battle_result_summary">
<tr><th style='width:18ch;'>전투 일시</th><td id='result_datetime'></td></tr> <tr>
<tr><th>전투 횟수</th><td id='result_warcnt'></td></tr> <th style='width:18ch;'>전투 일시</th>
<tr><th>전투 페이즈</th><td id='result_phase'></td></tr> <td id='result_datetime'></td>
<tr><th>준 피해</th><td><span id='result_killed'>0</span><span id='result_varKilled'> (<span id='result_minKilled'>0</span> ~ <span id='result_maxKilled'>0</span>)</span></td></tr> </tr>
<tr><th>받은 피해</th><td><span id='result_dead'>0</span><span id='result_varDead'> (<span id='result_minDead'>0</span> ~ <span id='result_maxDead'>0</span>)</span></td></tr> <tr>
<tr><th>출병자 군량 소모</th><td id='result_attackerRice'></td></tr> <th>전투 횟수</th>
<tr><th>수비자 군량 소모</th><td id='result_defenderRice'></td></tr> <td id='result_warcnt'></td>
<tr><th>공격자 스킬</th><td id='result_attackerSkills'></td></tr> </tr>
<tr class='result_defenderSkills'><th>수비자1 스킬</th><td></td></tr> <tr>
<th>전투 페이즈</th>
<td id='result_phase'></td>
</tr>
<tr>
<th>준 피해</th>
<td><span id='result_killed'>0</span><span id='result_varKilled'> (<span id='result_minKilled'>0</span> ~ <span id='result_maxKilled'>0</span>)</span></td>
</tr>
<tr>
<th>받은 피해</th>
<td><span id='result_dead'>0</span><span id='result_varDead'> (<span id='result_minDead'>0</span> ~ <span id='result_maxDead'>0</span>)</span></td>
</tr>
<tr>
<th>출병자 군량 소모</th>
<td id='result_attackerRice'></td>
</tr>
<tr>
<th>수비자 군량 소모</th>
<td id='result_defenderRice'></td>
</tr>
<tr>
<th>공격자 스킬</th>
<td id='result_attackerSkills'></td>
</tr>
<tr class='result_defenderSkills'>
<th>수비자1 스킬</th>
<td></td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -546,4 +525,5 @@ var nation = <?=Json::encode($nation)?>;
</div> </div>
</div> </div>
</body> </body>
</html> </html>
+3 -1
View File
@@ -1,2 +1,4 @@
@charset "UTF-8";
.form-group{
margin-bottom: 1em;
}
+1 -1
View File
@@ -12,7 +12,7 @@ function printLimitMsg($turntime) {
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?=WebUtil::printCSS('../d_shared/common.css')?> <?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?> <?=WebUtil::printCSS('dist_css/common.css')?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
<body> <body>
+1 -1
View File
@@ -28,7 +28,7 @@ function requireAdminPermissionHTML()
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?= WebUtil::printCSS('css/common.css') ?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
</head> </head>
+1
View File
@@ -118,6 +118,7 @@ if (!$otherTextInfo) {
<meta name="viewport" content="width=500" /> <meta name="viewport" content="width=500" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('d_shared/base_map.js') ?> <?= WebUtil::printJS('d_shared/base_map.js') ?>
<?= WebUtil::printJS('dist_js/vendors_vue.js', true) ?> <?= WebUtil::printJS('dist_js/vendors_vue.js', true) ?>
<?= WebUtil::printJS('dist_js/v_main.js', true) ?> <?= WebUtil::printJS('dist_js/v_main.js', true) ?>
+81 -181
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -23,6 +24,7 @@ if($session->userGrade < 5 && !$allowReset){
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>설치</title> <title>설치</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
@@ -30,13 +32,14 @@ if($session->userGrade < 5 && !$allowReset){
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/install.js') ?> <?= WebUtil::printJS('dist_js/install.js') ?>
<?=WebUtil::printCSS('css/normalize.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('css/install.css') ?> <?= WebUtil::printCSS('css/install.css') ?>
</head> </head>
<body> <body>
<div class="container" style="min-width:720px;"> <div class="container">
<h1 class="row justify-content-md-center">삼국지 모의전투 HiDCHe 리셋</h1> <h1 class="row justify-content-md-center">삼국지 모의전투 HiDCHe 리셋</h1>
<div class="row justify-content-md-center"> <div class="row justify-content-md-center">
@@ -52,30 +55,14 @@ if($session->userGrade < 5 && !$allowReset){
<label for="turnterm" class="col-sm-3 col-form-label">턴 시간(분)</label> <label for="turnterm" class="col-sm-3 col-form-label">턴 시간(분)</label>
<div class="col-sm-9"> <div class="col-sm-9">
<div id="turnterm" class="btn-group btn-group-toggle" data-toggle="buttons"> <div id="turnterm" class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary"> <input type="radio" class="btn-check" name="turnterm" id="turnterm_120" value="120"><label for="turnterm_120" class="btn btn-secondary">120</label>
<input type="radio" name="turnterm" value="120">120 <input type="radio" class="btn-check" name="turnterm" id="turnterm_60" value="60" checked><label for="turnterm_60" class="btn btn-secondary">60</label>
</label> <input type="radio" class="btn-check" name="turnterm" id="turnterm_30" value="30"><label for="turnterm_30" class="btn btn-secondary">30</label>
<label class="btn btn-secondary active"> <input type="radio" class="btn-check" name="turnterm" id="turnterm_20" value="20"><label for="turnterm_20" class="btn btn-secondary">20</label>
<input type="radio" name="turnterm" value="60" checked>60 <input type="radio" class="btn-check" name="turnterm" id="turnterm_10" value="10"><label for="turnterm_10" class="btn btn-secondary">10</label>
</label> <input type="radio" class="btn-check" name="turnterm" id="turnterm_5" value="5"><label for="turnterm_5" class="btn btn-secondary">5</label>
<label class="btn btn-secondary"> <input type="radio" class="btn-check" name="turnterm" id="turnterm_2" value="2"><label for="turnterm_2" class="btn btn-secondary">2</label>
<input type="radio" name="turnterm" value="30">30 <input type="radio" class="btn-check" name="turnterm" id="turnterm_1" value="1"><label for="turnterm_1" class="btn btn-secondary">1</label>
</label>
<label class="btn btn-secondary">
<input type="radio" name="turnterm" value="20">20
</label>
<label class="btn btn-secondary">
<input type="radio" name="turnterm" value="10">10
</label>
<label class="btn btn-secondary">
<input type="radio" name="turnterm" value="5">5
</label>
<label class="btn btn-secondary">
<input type="radio" name="turnterm" value="2">2
</label>
<label class="btn btn-secondary">
<input type="radio" name="turnterm" value="1">1
</label>
</div> </div>
</div> </div>
</div> </div>
@@ -85,12 +72,8 @@ if($session->userGrade < 5 && !$allowReset){
<label for="sync" class="col-sm-3 col-form-label">시간 동기화</label> <label for="sync" class="col-sm-3 col-form-label">시간 동기화</label>
<div class="col-sm-9" style="display: inline-flex;"> <div class="col-sm-9" style="display: inline-flex;">
<div id="sync" class="btn-group btn-group-toggle" data-toggle="buttons"> <div id="sync" class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary active"> <input class="btn-check" id="sync_1" type="radio" name="sync" value="1" checked><label class="btn btn-secondary" for="sync_1">Y</label>
<input type="radio" name="sync" value="1" checked>Y <input class="btn-check" id="sync_0" type="radio" name="sync" value="0"><label class="btn btn-secondary" for="sync_0">N</label>
</label>
<label class="btn btn-secondary">
<input type="radio" name="sync" value="0">N
</label>
</div> </div>
<small class="text-muted"> <small class="text-muted">
@@ -112,12 +95,8 @@ if($session->userGrade < 5 && !$allowReset){
<label for="fiction" class="col-sm-3 col-form-label">NPC 상성</label> <label for="fiction" class="col-sm-3 col-form-label">NPC 상성</label>
<div class="col-sm-9"> <div class="col-sm-9">
<div id="fiction" class="btn-group btn-group-toggle" data-toggle="buttons"> <div id="fiction" class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary active"> <input type="radio" id="fiction_0" class="btn-check" name="fiction" value="0" checked><label for="fiction_0" class="btn btn-secondary"> 연의 </label>
<input type="radio" name="fiction" value="0" checked>연의 <input type="radio" id="fiction_1" class="btn-check" name="fiction" value="1"><label for="fiction_1" class="btn btn-secondary"> 가상 </label>
</label>
<label class="btn btn-secondary">
<input type="radio" name="fiction" value="1">가상
</label>
</div> </div>
</div> </div>
</div> </div>
@@ -126,12 +105,8 @@ if($session->userGrade < 5 && !$allowReset){
<label for="extend" class="col-sm-3 col-form-label">확장 NPC</label> <label for="extend" class="col-sm-3 col-form-label">확장 NPC</label>
<div class="col-sm-9"> <div class="col-sm-9">
<div id="extend" class="btn-group btn-group-toggle" data-toggle="buttons"> <div id="extend" class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary active"> <input type="radio" id="extend_1" class="btn-check" name="extend" value="1" checked><label for="extend_1" class="btn btn-secondary">포함</label>
<input type="radio" name="extend" value="1" checked>포함 <input type="radio" id="extend_0" class="btn-check" name="extend" value="0"><label for="extend_0" class="btn btn-secondary">미포함</label>
</label>
<label class="btn btn-secondary">
<input type="radio" name="extend" value="0">미포함
</label>
</div> </div>
</div> </div>
</div> </div>
@@ -140,12 +115,8 @@ if($session->userGrade < 5 && !$allowReset){
<label for="block_general_create" class="col-sm-3 col-form-label">장수 임의 생성</label> <label for="block_general_create" class="col-sm-3 col-form-label">장수 임의 생성</label>
<div class="col-sm-9"> <div class="col-sm-9">
<div id="block_general_create" class="btn-group btn-group-toggle" data-toggle="buttons"> <div id="block_general_create" class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary"> <input type="radio" class="btn-check" id="block_general_create_0" name="block_general_create" value="0" checked><label for="block_general_create_0" class="btn btn-secondary">가능</label>
<input type="radio" name="block_general_create" value="0" checked>가능 <input type="radio" class="btn-check" id="block_general_create_1" name="block_general_create" value="1"><label for="block_general_create_1" class="btn btn-secondary">불가</label>
</label>
<label class="btn btn-secondary active">
<input type="radio" name="block_general_create" value="1">불가
</label>
</div> </div>
</div> </div>
</div> </div>
@@ -154,15 +125,9 @@ if($session->userGrade < 5 && !$allowReset){
<label for="npcmode" class="col-sm-3 col-form-label">NPC 빙의</label> <label for="npcmode" class="col-sm-3 col-form-label">NPC 빙의</label>
<div class="col-sm-9"> <div class="col-sm-9">
<div id="npcmode" class="btn-group btn-group-toggle" data-toggle="buttons"> <div id="npcmode" class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary"> <input type="radio" id="npcmode_1" class="btn-check" name="npcmode" value="1"><label for="npcmode_1" class="btn btn-secondary"> 가능 </label>
<input type="radio" name="npcmode" value="1">가능 <input type="radio" id="npcmode_0" class="btn-check" name="npcmode" value="0" checked><label for="npcmode_0" class="btn btn-secondary"> 불가 </label>
</label> <input type="radio" id="npcmode_2" class="btn-check" name="npcmode" value="2"><label for="npcmode_2" class="btn btn-secondary"> 선택 생성 가능 </label>
<label class="btn btn-secondary active">
<input type="radio" name="npcmode" value="0" checked>불가
</label>
<label class="btn btn-secondary">
<input type="radio" name="npcmode" value="2">선택 생성 가능
</label>
</div> </div>
</div> </div>
</div> </div>
@@ -171,31 +136,20 @@ if($session->userGrade < 5 && !$allowReset){
<label class="col-sm-3 col-form-label" id="autorun_set_label">휴식 턴 시 장수 턴</label> <label class="col-sm-3 col-form-label" id="autorun_set_label">휴식 턴 시 장수 턴</label>
<div class="col-sm-9"> <div class="col-sm-9">
<div class="input-group"> <div class="input-group">
<div class="input-group-prepend btn-group btn-group-toggle" data-toggle="buttons"> <div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary"> <input type="checkbox" id="autorun_develop" class="autorun_user_chk btn-check" data-key="develop" name="autorun_user[]" value="develop"><label class="btn btn-secondary" for="autorun_develop">내정</label>
<input type="checkbox" class="autorun_user_chk" data-key="develop" name="autorun_user[]" value="develop">내정 <input type="checkbox" id="autorun_warp" class="autorun_user_chk btn-check" data-key="warp" name="autorun_user[]" value="warp"><label class="btn btn-secondary" for="autorun_warp">순간이동</label>
</label> <input type="checkbox" id="autorun_recruit" class="autorun_user_chk btn-check" data-key="recruit" name="autorun_user[]" value="recruit"><label class="btn btn-secondary" for="autorun_recruit">징병</label>
<label class="btn btn-secondary"> <input type="checkbox" id="autorun_recruit_high" class="autorun_user_chk btn-check" data-key="recruit_high" name="autorun_user[]" value="recruit_high"><label class="btn btn-secondary" for="autorun_recruit_high">모병</label>
<input type="checkbox" class="autorun_user_chk" data-key="warp" name="autorun_user[]" value="warp">순간이동 <input type="checkbox" id="autorun_train" class="autorun_user_chk btn-check" data-key="train" name="autorun_user[]" value="train"><label class="btn btn-secondary" for="autorun_train">훈사</label>
</label> <input type="checkbox" id="autorun_battle" class="autorun_user_chk btn-check" data-key="battle" name="autorun_user[]" value="battle"><label class="btn btn-secondary" for="autorun_battle">출병</label>
<label class="btn btn-secondary"> <input type="checkbox" id="autorun_chief" class="autorun_user_chk btn-check" data-key="chief" name="autorun_user[]" value="chief"><label class="btn btn-secondary" for="autorun_chief">기본 사령턴</label>
<input type="checkbox" class="autorun_user_chk" data-key="recruit" name="autorun_user[]" value="recruit">징병
</label>
<label class="btn btn-secondary">
<input type="checkbox" class="autorun_user_chk" data-key="recruit_high" name="autorun_user[]" value="recruit_high">모병
</label>
<label class="btn btn-secondary">
<input type="checkbox" class="autorun_user_chk" data-key="train" name="autorun_user[]" value="train">훈사
</label>
<label class="btn btn-secondary">
<input type="checkbox" class="autorun_user_chk" data-key="battle" name="autorun_user[]" value="battle">출병
</label>
<label class="btn btn-secondary">
<input type="checkbox" class="autorun_user_chk" data-key="chief" name="autorun_user[]" value="chief">기본 사령턴
</label>
</div> </div>
<div class="input-group-append"> </div>
<span class="input-group-text">유효 시간</span> </div>
<div class="col-sm-6 offset-sm-3">
<div class="input-group">
<div class="input-group-text">유효 시간
</div> </div>
<select class="custom-select" name="autorun_user_minutes" id="autorun_user_minutes"> <select class="custom-select" name="autorun_user_minutes" id="autorun_user_minutes">
<option value="0" selected>꺼짐</option> <option value="0" selected>꺼짐</option>
@@ -220,61 +174,12 @@ if($session->userGrade < 5 && !$allowReset){
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="form-group row">
<label class="col-sm-3 col-form-label">휴식 턴 시 사령 턴</label>
<div class="col-sm-9">
<div class="input-group">
<div class="input-group-prepend btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary">
<input type="radio" name="autorun_chief_reward" id="autorun_chief_reward">포상/몰수
</label>
<label class="btn btn-secondary">
<input type="radio" name="autorun_chief_warp" id="autorun_chief_warp">발령
</label>
<label class="btn btn-secondary">
<input type="radio" name="autorun_chief_declaration" id="autorun_chief_declaration">선포
</label>
</div>
<div class="input-group-append">
<span class="input-group-text">유효 시간</span>
</div>
<select class="custom-select" name="autorun_chief_minutes" id="autorun_chief_minutes">
<option value="0" selected>꺼짐</option>
<option value="43200">항상</option>
<option value="10">10분</option>
<option value="20">20분</option>
<option value="30">30분</option>
<option value="60">1시간</option>
<option value="120">2시간</option>
<option value="180">3시간</option>
<option value="240">4시간</option>
<option value="360">6시간</option>
<option value="480">8시간</option>
<option value="600">10시간</option>
<option value="720">12시간</option>
<option value="1440">24시간</option>
<option value="2160">36시간</option>
<option value="2880">48시간</option>
<option value="3600">60시간</option>
<option value="4320">72시간</option>
</select>
</div>
</div>
</div>
-->
<div class="form-group row"> <div class="form-group row">
<label for="join_mode" class="col-sm-3 col-form-label">임관 모드</label> <label for="join_mode" class="col-sm-3 col-form-label">임관 모드</label>
<div class="col-sm-9"> <div class="col-sm-9">
<div id="join_mode" class="btn-group btn-group-toggle" data-toggle="buttons"> <div id="join_mode" class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary active"> <input class="btn-check" id="join_mode_full" type="radio" name="join_mode" value="full" checked><label class="btn btn-secondary" for="join_mode_full">일반</label>
<input type="radio" name="join_mode" value="full" checked>일반 <input class="btn-check" id="join_mode_onlyRandom" type="radio" name="join_mode" value="onlyRandom"><label class="btn btn-secondary" for="join_mode_onlyRandom">랜덤 임관</label>
</label>
<label class="btn btn-secondary">
<input type="radio" name="join_mode" value="onlyRandom">랜덤 임관
</label>
</div> </div>
</div> </div>
</div> </div>
@@ -283,50 +188,26 @@ if($session->userGrade < 5 && !$allowReset){
<label for="show_img_level" class="col-sm-3 col-form-label">이미지 표기</label> <label for="show_img_level" class="col-sm-3 col-form-label">이미지 표기</label>
<div class="col-sm-9"> <div class="col-sm-9">
<div id="show_img_level" class="btn-group btn-group-toggle" data-toggle="buttons"> <div id="show_img_level" class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary"> <input type="radio" id="show_img_level_0" class="btn-check" name="show_img_level" value="0"><label for="show_img_level_0" class="btn btn-secondary">안함</label>
<input type="radio" name="show_img_level" value="0">안함 <input type="radio" id="show_img_level_1" class="btn-check" name="show_img_level" value="1"><label for="show_img_level_1" class="btn btn-secondary">전콘</label>
</label> <input type="radio" id="show_img_level_2" class="btn-check" name="show_img_level" value="2"><label for="show_img_level_2" class="btn btn-secondary">전콘, 병종</label>
<label class="btn btn-secondary"> <input type="radio" id="show_img_level_3" class="btn-check" name="show_img_level" value="3" checked><label for="show_img_level_3" class="btn btn-secondary">전콘, 병종, NPC</label>
<input type="radio" name="show_img_level" value="1">전콘
</label>
<label class="btn btn-secondary">
<input type="radio" name="show_img_level" value="2">전콘, 병종
</label>
<label class="btn btn-secondary active">
<input type="radio" name="show_img_level" value="3" checked>전콘, 병종, NPC
</label>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="tournament_trig" class="col-sm-3 col-form-label">토너먼트 자동 시작<br>경기 단위</label> <label for="tournament_trig" class="col-sm-3 col-form-label"><span class="text-nowrap">토너먼트 자동 시작</span> <span class="text-nowrap">경기 단위</span></label>
<div class="col-sm-9" id="tournament_trig"> <div class="col-sm-9" id="tournament_trig">
<div id="tournament_trig" class="btn-group-toggle btn-group flex-wrap" data-toggle="buttons"> <div id="tournament_trig" class="btn-group-toggle btn-group flex-wrap" data-toggle="buttons">
<label class="btn btn-secondary w-25"> <input type="radio" class="btn-check" id="tournament_trig_0" name="tournament_trig" value="0"><label for="tournament_trig_0" class="btn btn-secondary w-25">안함</label>
<input type="radio" name="tournament_trig" value="0">안함 <input type="radio" class="btn-check" id="tournament_trig_1" name="tournament_trig" value="1"><label for="tournament_trig_1" class="btn btn-secondary w-25">12분(총 5일)</label>
</label> <input type="radio" class="btn-check" id="tournament_trig_2" name="tournament_trig" value="2"><label for="tournament_trig_2" class="btn btn-secondary w-25">7분(총 10시간)</label>
<label class="btn btn-secondary w-25"> <input type="radio" class="btn-check" id="tournament_trig_3" name="tournament_trig" value="3"><label for="tournament_trig_3" class="btn btn-secondary w-25">3분(총 4시간)</label>
<input type="radio" name="tournament_trig" value="1">12분(총 5일) <input type="radio" class="btn-check" id="tournament_trig_4" name="tournament_trig" value="4" checked><label for="tournament_trig_4" class="btn btn-secondary w-25">1분(총 82분)</label>
</label> <input type="radio" class="btn-check" id="tournament_trig_5" name="tournament_trig" value="5"><label for="tournament_trig_5" class="btn btn-secondary w-25">30초(총 41분)</label>
<label class="btn btn-secondary w-25"> <input type="radio" class="btn-check" id="tournament_trig_6" name="tournament_trig" value="6"><label for="tournament_trig_6" class="btn btn-secondary w-25">15초(총 21분)</label>
<input type="radio" name="tournament_trig" value="2">7분(총 10시간) <input type="radio" class="btn-check" id="tournament_trig_7" name="tournament_trig" value="7"><label for="tournament_trig_7" class="btn btn-secondary w-25">5초(총 7분)</label>
</label>
<label class="btn btn-secondary w-25">
<input type="radio" name="tournament_trig" value="3">3분(총 4시간)
</label>
<label class="btn btn-secondary w-25 active">
<input type="radio" name="tournament_trig" value="4" checked>1분(총 82분)
</label>
<label class="btn btn-secondary w-25">
<input type="radio" name="tournament_trig" value="5">30초(총 41분)
</label>
<label class="btn btn-secondary w-25">
<input type="radio" name="tournament_trig" value="6">15초(총 21분)
</label>
<label class="btn btn-secondary w-25">
<input type="radio" name="tournament_trig" value="7">5초(총 7분)
</label>
</div> </div>
</div> </div>
</div> </div>
@@ -347,7 +228,7 @@ if($session->userGrade < 5 && !$allowReset){
<div class="form-group row"> <div class="form-group row">
<div class="col-sm-3"></div> <div class="col-sm-3"></div>
<div class="col-sm-9"> <div class="col-sm-9 d-grid">
<input type="submit" class="btn btn-primary btn-lg btn-block login-button" value="리셋 개시"> <input type="submit" class="btn btn-primary btn-lg btn-block login-button" value="리셋 개시">
</div> </div>
</div> </div>
@@ -355,25 +236,44 @@ if($session->userGrade < 5 && !$allowReset){
</div> </div>
<h4 class="card-header">시나리오 정보</h4> <h4 class="card-header">시나리오 정보</h4>
<table class="table table-striped"> <table class="table table-striped">
<colgroup><col style="width:100px;"><col></colgroup> <colgroup>
<col style="width:100px;">
<col>
</colgroup>
<thead> <thead>
<tr><th>설정</th><th>값</th> <tr>
<th>설정</th>
<th>값</th>
</thead> </thead>
<tbody> <tbody>
<tr><th>시작 연도</th><td ><span id="scenario_begin">180년</span><small id="scenario_begin_with_sync"></small></td></tr> <tr>
<tr><th>NPC 수</th><td><span id="scenario_npc"></span><span id="scenario_npc_extend"></span></td></tr> <th>시작 연도</th>
<tr><th>국가</th><td><span id="scenario_nation"></span></td></tr> <td><span id="scenario_begin">180년</span><small id="scenario_begin_with_sync"></small>
</td>
</tr>
<tr>
<th>NPC 수</th>
<td><span id="scenario_npc"></span><span id="scenario_npc_extend"></span></td>
</tr>
<tr>
<th>국가</th>
<td><span id="scenario_nation"></span></td>
</tr>
</tbody> </tbody>
<tfoot> <tfoot>
<tr><td colspan="2"> <tr>
<td colspan="2">
</td></tr> </td>
</tr>
</tfoot> </tfoot>
</table> </table>
</div><!--GAME 폼 끝--> </div>
<!--GAME 폼 끝-->
</div> </div>
</div> </div>
</div> </div>
</body> </body>
</html> </html>
+8 -2
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -16,6 +17,7 @@ if($session->userGrade == 5){
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>설치</title> <title>설치</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
@@ -23,11 +25,13 @@ if($session->userGrade == 5){
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/install_db.js') ?> <?= WebUtil::printJS('dist_js/install_db.js') ?>
<?= WebUtil::printCSS('css/normalize.css') ?> <?= WebUtil::printCSS('css/normalize.css') ?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<?= WebUtil::printCSS('css/install.css') ?> <?= WebUtil::printCSS('css/install.css') ?>
</head> </head>
<body> <body>
<div class="container" style="min-width:720px;"> <div class="container" style="min-width:720px;">
<h1 class="row justify-content-md-center">삼국지 모의전투 HiDCHe 리셋</h1> <h1 class="row justify-content-md-center">삼국지 모의전투 HiDCHe 리셋</h1>
@@ -104,10 +108,12 @@ if($session->userGrade == 5){
</div> </div>
</form> </form>
</div> </div>
</div><!--DB 폼 끝--> </div>
<!--DB 폼 끝-->
</div> </div>
</div> </div>
</div> </div>
</body> </body>
</html> </html>
+3 -4
View File
@@ -20,12 +20,11 @@ include "func.php";
'serverID' => UniqueConst::$serverID 'serverID' => UniqueConst::$serverID
]) ?> ]) ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('d_shared/base_map.js') ?> <?= WebUtil::printJS('d_shared/base_map.js') ?>
<?= WebUtil::printJS('dist_js/recent_map.js') ?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?= WebUtil::printCSS('../e_lib/bootstrap.min.css') ?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<?= WebUtil::printCSS('css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/map.css') ?> <?= WebUtil::printCSS('css/map.css') ?>
<style> <style>
@@ -53,7 +52,7 @@ include "func.php";
<div class="card-body"> <div class="card-body">
</div> </div>
</div> </div>
<?= WebUtil::printJS('dist_js/recent_map.js') ?>
</body> </body>
</html> </html>
@@ -9,7 +9,7 @@ $input-color: #303030;
@import "./variables.scss"; @import "./variables.scss";
@import "./bootswatch_custom_variables.scss"; @import "./bootswatch_custom_variables.scss";
@import "../../node_modules/bootstrap5/scss/bootstrap.scss"; @import "/node_modules/bootstrap/scss/bootstrap.scss";
@import "./bootswatch_custom.scss"; @import "./bootswatch_custom.scss";
@import "./bootstrap_sammo.scss"; @import "./bootstrap_sammo.scss";
@import "./vue-multiselect.scss"; @import "./vue-multiselect.scss";
+1 -1
View File
@@ -1,4 +1,4 @@
@import "./bootstrap5.scss"; @import "./common/bootstrap5.scss";
html * { html * {
max-height: 1000000px; max-height: 1000000px;
@@ -52,7 +52,10 @@ input::-webkit-input-placeholder {
} }
.login_btn_group { .login_btn_group {
margin-top: 5px; margin-top: 4px;
>.btn{
padding: 0.3rem 1rem;
}
} }
.login-register { .login-register {
@@ -108,11 +111,11 @@ input::-webkit-input-placeholder {
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: bottom center; background-position: bottom center;
margin-top: 5px; margin-top: 5px;
background-image: url('../oauth_kakao/kakao_login_join.png'); background-image: url('/oauth_kakao/kakao_login_join.png');
} }
#btn_kakao_login:hover { #btn_kakao_login:hover {
background-image: url('../oauth_kakao/kakao_login_join_ov.png'); background-image: url('/oauth_kakao/kakao_login_join_ov.png');
} }
#bottom_box .container { #bottom_box .container {
+2 -2
View File
@@ -1,5 +1,5 @@
@import "./break_500px.scss"; @import "./common/break_500px.scss";
@import "./bootstrap5.scss"; @import "./common/bootstrap5.scss";
body { body {
color: white; color: white;
+12 -4
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -39,15 +40,15 @@ foreach(getCharacterList(false) as $id=>[$name, $info]){
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title><?= UniqueConst::$serverName ?>: 장수 선택</title> <title><?= UniqueConst::$serverName ?>: 장수 선택</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024'" /> <meta name="viewport" content="width=1024'" />
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?= WebUtil::printCSS('../css/config.css') ?> <?= WebUtil::printCSS('../css/config.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/select_general_from_pool.css') ?> <?= WebUtil::printCSS('css/select_general_from_pool.css') ?>
@@ -66,6 +67,7 @@ var validCustomOption = <?=Json::encode(GameConst::$generalPoolAllowOption)?>;
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?= WebUtil::printJS('dist_js/join.js') ?> <?= WebUtil::printJS('dist_js/join.js') ?>
<?= WebUtil::printJS('dist_js/select_general_from_pool.js') ?> <?= WebUtil::printJS('dist_js/select_general_from_pool.js') ?>
@@ -83,16 +85,20 @@ alert('더 이상 등록할 수 없습니다.');
history.go(-1); history.go(-1);
</script> </script>
</body> </body>
</html> </html>
<?php <?php
die(); die();
} }
?> ?>
<body> <body>
<div class="container"> <div class="container">
<div class="bg0 with_border legacy_layout">장 수 선 택<br><?= backButton() ?></div> <div class="bg0 with_border legacy_layout">장 수 선 택<br><?= backButton() ?></div>
<table style="width:100%;" class="bg0 with_border"> <table style="width:100%;" class="bg0 with_border">
<tr><td><?=info(0)?></td></tr> <tr>
<td><?= info(0) ?></td>
</tr>
</table> </table>
<?= getInvitationList($nationList) ?> <?= getInvitationList($nationList) ?>
@@ -111,7 +117,8 @@ history.go(-1);
<div class="with_border legacy_layout" style="display:flex"> <div class="with_border legacy_layout" style="display:flex">
<div style='flex:1;' id='left_pad'> <div style='flex:1;' id='left_pad'>
장수를<br>선택해주세요! 장수를<br>선택해주세요!
</div><div style='flex:4;'> </div>
<div style='flex:4;'>
<form id='custom_form'> <form id='custom_form'>
<table class='tb_layout' style='width:100%;text-align:left;'> <table class='tb_layout' style='width:100%;text-align:left;'>
<?php <?php
@@ -191,4 +198,5 @@ if ($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture']
</div> </div>
</div> </div>
</body> </body>
</html> </html>
+12 -7
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -29,15 +30,15 @@ foreach($scoutMsgs as $nationID=>$scoutMsg){
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title><?= UniqueConst::$serverName ?>: NPC빙의</title> <title><?= UniqueConst::$serverName ?>: NPC빙의</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?= WebUtil::printCSS('../css/config.css') ?> <?= WebUtil::printCSS('../css/config.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/select_npc.css') ?> <?= WebUtil::printCSS('css/select_npc.css') ?>
@@ -57,8 +58,7 @@ foreach(SpecialityHelper::getSpecialWarList() as $specialID=>$specialObj){
} }
$specialAll['-'] = '없음'; $specialAll['-'] = '없음';
echo Json::encode($specialAll); echo Json::encode($specialAll);
?> ?>;
;
var characterInfo = var characterInfo =
<?php <?php
$characterAll = []; $characterAll = [];
@@ -66,12 +66,12 @@ foreach(getCharacterList(false) as $id=>[$name, $info]){
$characterAll[$name] = $info; $characterAll[$name] = $info;
} }
echo Json::encode($characterAll); echo Json::encode($characterAll);
?> ?>;
;
</script> </script>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/common.js') ?> <?= WebUtil::printJS('dist_js/common.js') ?>
<?= WebUtil::printJS('dist_js/select_npc.js') ?> <?= WebUtil::printJS('dist_js/select_npc.js') ?>
@@ -88,16 +88,20 @@ alert('더 이상 등록할 수 없습니다.');
history.go(-1); history.go(-1);
</script> </script>
</body> </body>
</html> </html>
<?php <?php
die(); die();
} }
?> ?>
<body> <body>
<div class="container"> <div class="container">
<div class="bg0 with_border legacy_layout">장 수 선 택<br><?= backButton() ?></div> <div class="bg0 with_border legacy_layout">장 수 선 택<br><?= backButton() ?></div>
<table style="width:100%;" class="bg0 with_border"> <table style="width:100%;" class="bg0 with_border">
<tr><td><?=info(0)?></td></tr> <tr>
<td><?= info(0) ?></td>
</tr>
</table> </table>
<?= getInvitationList($nationList) ?> <?= getInvitationList($nationList) ?>
@@ -146,4 +150,5 @@ history.go(-1);
</div> </div>
</div> </div>
</body> </body>
</html> </html>
+74 -23
View File
@@ -1,4 +1,5 @@
<?php <?php
namespace sammo; namespace sammo;
include "lib.php"; include "lib.php";
@@ -30,19 +31,19 @@ if ($permission < 1) {
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title><?= UniqueConst::$serverName ?>: 외교부</title> <title><?= UniqueConst::$serverName ?>: 외교부</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" /> <meta name="viewport" content="width=1024" />
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?= WebUtil::printCSS('../e_lib/select2/select2.min.css') ?> <?= WebUtil::printCSS('../e_lib/select2/select2.min.css') ?>
<?= WebUtil::printCSS('../e_lib/select2/select2-bootstrap4.css') ?> <?= WebUtil::printCSS('../e_lib/select2/select2-bootstrap4.css') ?>
<!--<?= WebUtil::printCSS('../e_lib/tui.editor/tui-editor.min.css') ?>--> <!--<?= WebUtil::printCSS('../e_lib/tui.editor/tui-editor.min.css') ?>-->
<!--<?= WebUtil::printCSS('../e_lib/tui.editor/tui-editor-contents.min.css') ?>--> <!--<?= WebUtil::printCSS('../e_lib/tui.editor/tui-editor-contents.min.css') ?>-->
<?= WebUtil::printCSS('../d_shared/common.css') ?> <?= WebUtil::printCSS('../d_shared/common.css') ?>
<?= WebUtil::printCSS('../css/config.css') ?> <?= WebUtil::printCSS('../css/config.css') ?>
<?=WebUtil::printCSS('css/common.css')?> <?= WebUtil::printCSS('dist_css/common.css') ?>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
<?= WebUtil::printCSS('css/diplomacy.css') ?> <?= WebUtil::printCSS('css/diplomacy.css') ?>
<script> <script>
@@ -50,28 +51,48 @@ var permissionLevel = <?=$permission?>; //
</script> </script>
<?= WebUtil::printJS('../d_shared/common_path.js') ?> <?= WebUtil::printJS('../d_shared/common_path.js') ?>
<?= WebUtil::printJS('dist_js/vendors.js') ?> <?= WebUtil::printJS('dist_js/vendors.js') ?>
<?= WebUtil::printJS('dist_js/common_ts.js') ?>
<?= WebUtil::printJS('dist_js/diplomacy.js') ?> <?= WebUtil::printJS('dist_js/diplomacy.js') ?>
</head> </head>
<body> <body>
<table style='width:1000px;margin:auto;' class='tb_layout bg0'> <table style='width:1000px;margin:auto;' class='tb_layout bg0'>
<tr><td style='text-align:left;'>외 교 부<br><?=backButton()?></td></tr> <tr>
<td style='text-align:left;'>외 교 부<br><?= backButton() ?></td>
</tr>
</table> </table>
<table id='newLetter' class='bg0' style='display:none;'> <table id='newLetter' class='bg0' style='display:none;'>
<thead> <thead>
<tr><td colspan='2' class='newLetterHeader'>새 외교문서 작성</td> <tr>
<td colspan='2' class='newLetterHeader'>새 외교문서 작성</td>
</thead> </thead>
<tbody> <tbody>
<tr><th class='bg1'>이전 문서</th><td><select id='inputPrevNo'></select></td></tr> <tr>
<tr><th class='bg1'>대상 국가</th><td><select id='inputDestNation'></select></td></tr> <th class='bg1'>이전 문서</th>
<tr><th class='bg1'>내용(국가 내 공개)</th><td><textarea id='inputBrief' class='autosize'></textarea></td></tr> <td><select id='inputPrevNo'></select></td>
<tr><th class='bg1'>내용(외교권자 전용)</th><td><textarea id='inputDetail' class='autosize'></textarea></td></tr> </tr>
<tr>
<th class='bg1'>대상 국가</th>
<td><select id='inputDestNation'></select></td>
</tr>
<tr>
<th class='bg1'>내용(국가 내 공개)</th>
<td><textarea id='inputBrief' class='autosize'></textarea></td>
</tr>
<tr>
<th class='bg1'>내용(외교권자 전용)</th>
<td><textarea id='inputDetail' class='autosize'></textarea></td>
</tr>
</tbody> </tbody>
<tfoot> <tfoot>
<tr class='letterActionPlate'><th class='bg1'>동작</th><td> <tr class='letterActionPlate'>
<th class='bg1'>동작</th>
<td>
<button type='button' id='btnSend'>전송</button> <button type='button' id='btnSend'>전송</button>
</td></tr> </td>
</tr>
</tfoot> </tfoot>
</table> </table>
@@ -81,43 +102,73 @@ var permissionLevel = <?=$permission?>; //
<div id='letterTemplate' style='display:none;'> <div id='letterTemplate' style='display:none;'>
<table class='letterFrame bg0'> <table class='letterFrame bg0'>
<thead> <thead>
<tr><td colspan='2' class='letterHeader'><span class='letterNationName'></span>국과의 외교 문서<span class='letterDate'>2099-12-31 23:59:59</span></td> <tr>
<td colspan='2' class='letterHeader'><span class='letterNationName'></span>국과의 외교 문서<span class='letterDate'>2099-12-31 23:59:59</span></td>
</thead> </thead>
<tbody> <tbody>
<tr><th class='bg1'>문서 번호</th><td><span class='letterNo'></span></td></tr> <tr>
<tr><th class='bg1'>이전 문서</th><td><span class='letterPrevNo'></span></td></tr> <th class='bg1'>문서 번호</th>
<tr><th class='bg1'>상태</th><td><span class='letterStatus'></span><span class='letterStatusOpt'></span></td></tr> <td><span class='letterNo'></span></td>
<tr><th class='bg1'>내용(국가 내 공개)</th><td><div class='letterBrief'></div></td></tr> </tr>
<tr><th class='bg1'>내용(외교권자 전용)</th><td><div class='letterDetail'></div></td></tr> <tr>
<th class='bg1'>이전 문서</th>
<td><span class='letterPrevNo'></span></td>
</tr>
<tr>
<th class='bg1'>상태</th>
<td><span class='letterStatus'></span><span class='letterStatusOpt'></span></td>
</tr>
<tr>
<th class='bg1'>내용(국가 내 공개)</th>
<td>
<div class='letterBrief'></div>
</td>
</tr>
<tr>
<th class='bg1'>내용(외교권자 전용)</th>
<td>
<div class='letterDetail'></div>
</td>
</tr>
</tbody> </tbody>
<tfoot> <tfoot>
<tr><th class='bg1'>서명인</th><td class='letterSignerPlate'> <tr>
<th class='bg1'>서명인</th>
<td class='letterSignerPlate'>
<div class='letterSrc'> <div class='letterSrc'>
<div class="signerImg"><img class='generalIcon' width='64px' height='64px'></div> <div class="signerImg"><img class='generalIcon' width='64px' height='64px'></div>
<div class="signerNation">&nbsp;</div> <div class="signerNation">&nbsp;</div>
<div class="signerName">&nbsp;</div> <div class="signerName">&nbsp;</div>
</div><div class='letterDest'> </div>
<div class='letterDest'>
<div class="signerImg"><img class='generalIcon' width='64px' height='64px'></div> <div class="signerImg"><img class='generalIcon' width='64px' height='64px'></div>
<div class="signerNation">&nbsp;</div> <div class="signerNation">&nbsp;</div>
<div class="signerName">&nbsp;</div> <div class="signerName">&nbsp;</div>
</div> </div>
</td></tr> </td>
<tr class='letterActionPlate' style='display:none;'><th class='bg1'>동작</th><td> </tr>
<tr class='letterActionPlate' style='display:none;'>
<th class='bg1'>동작</th>
<td>
<button type='button' class='btnAgree' style='display:none;'>승인</button> <button type='button' class='btnAgree' style='display:none;'>승인</button>
<button type='button' class='btnDisagree' style='display:none;'>거부</button> <button type='button' class='btnDisagree' style='display:none;'>거부</button>
<button type='button' class='btnRollback' style='display:none;'>회수</button> <button type='button' class='btnRollback' style='display:none;'>회수</button>
<button type='button' class='btnDestroy' style='display:none;'>파기</button> <button type='button' class='btnDestroy' style='display:none;'>파기</button>
<button type='button' class='btnRenew'>추가 문서 작성</button> <button type='button' class='btnRenew'>추가 문서 작성</button>
</td></tr> </td>
</tr>
</tfoot> </tfoot>
</table> </table>
</div> </div>
<table style='width:1000px;margin:auto;' class='tb_layout bg0'> <table style='width:1000px;margin:auto;' class='tb_layout bg0'>
<tr><td style='text-align:left;'> <tr>
<td style='text-align:left;'>
<?= backButton() ?><br> <?= backButton() ?><br>
<?= banner() ?> <?= banner() ?>
</td></tr> </td>
</tr>
</table> </table>
</body> </body>
</html> </html>
-663
View File
@@ -1,663 +0,0 @@
// Type definitions for Bootstrap 4.6
// Project: https://github.com/twbs/bootstrap/, https://getbootstrap.com
// Definitions by: denisname <https://github.com/denisname>
// Piotr Błażejewicz <https://github.com/peterblazejewicz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
/// <reference types="jquery"/>
import * as Popper from "popper.js";
export as namespace Bootstrap;
// --------------------------------------------------------------------------
// Some Types and Interfaces
// --------------------------------------------------------------------------
export type Placement = "auto" | "top" | "bottom" | "left" | "right";
export type Trigger = "click" | "hover" | "focus" | "manual" |
"click hover" | "click focus" | "hover focus" |
"click hover focus";
export interface Delay {
show: number;
hide: number;
}
export interface TooltipInstance<T extends TooltipOption> {
config: T;
element: Element;
tip: HTMLElement;
}
export interface OffsetsExtend {
popper?: Partial<Popper.Offset> | undefined;
reference?: Partial<Popper.Offset> | undefined;
}
// --------------------------------------------------------------------------------------
// Options Interfaces
// --------------------------------------------------------------------------------------
export interface CarouselOption {
/**
* The amount of time to delay between automatically cycling an item. If false, carousel will not automatically cycle.
*
* @default 5000
*/
interval?: false | number | undefined;
/**
* Whether the carousel should react to keyboard events.
*
* @default true
*/
keyboard?: boolean | undefined;
/**
* Use to easily control the position of the carousel. It accepts the keywords prev or next, which alters the slide position
* relative to its current position. Alternatively, use `data-slide-to` to pass a raw slide index to the carousel.
*
* @default false
*/
slide?: "next" | "prev" | false | undefined;
/**
* If set to "hover", pauses the cycling of the carousel on `mouseenter` and resumes the cycling of the carousel on `mouseleave`.
* If set to false, hovering over the carousel won't pause it.
*
* On touch-enabled devices, when set to "hover", cycling will pause on `touchend` (once the user finished interacting with the carousel)
* for two intervals, before automatically resuming. Note that this is in addition to the above mouse behavior.
*
* @default "hover"
*/
pause?: "hover" | false | undefined;
/**
* Autoplays the carousel after the user manually cycles the first item.
* If `carousel`, autoplays the carousel on load.
* @default false
*/
ride?: 'carousel' | boolean | undefined;
/**
* Whether the carousel should cycle continuously or have hard stops.
*
* @default true
*/
wrap?: boolean | undefined;
/**
* Whether the carousel should support left/right swipe interactions on touchscreen devices.
*
* @default true
*/
touch?: boolean | undefined;
}
export interface CollapseOption {
/**
* If parent is provided, then all collapsible elements under the specified parent will be closed when
* this collapsible item is shown. (similar to traditional accordion behavior - this is dependent on the card class).
* The attribute has to be set on the target collapsible area.
*
* @default ""
*/
parent?: string | JQuery | Element | undefined;
/**
* Toggles the collapsible element on invocation.
*
* @default true
*/
toggle?: boolean | undefined;
}
export interface DropdownOption {
/**
* Offset of the dropdown relative to its target.
* For more information refer to Popper.js's offset docs.
*
* @default 0
*/
offset?: number | string | ((this: DropdownOption, offset: OffsetsExtend) => OffsetsExtend) | undefined;
/**
* Allow Dropdown to flip in case of an overlapping on the reference element.
* For more information refer to Popper.js's flip docs.
*
* @default true
*/
flip?: boolean | undefined;
/**
* Overflow constraint boundary of the dropdown menu.
* Accepts the values of 'viewport', 'window', 'scrollParent', or an HTMLElement reference (JavaScript only).
* For more information refer to Popper.js's preventOverflow docs.
*
* @default "scrollParent"
*/
boundary?: Popper.Boundary | HTMLElement | undefined;
/**
* Reference element of the dropdown menu. Accepts the values of 'toggle', 'parent', or an HTMLElement reference.
* For more information refer to Popper.js's referenceObject docs.
*
* @default "toggle"
*/
reference?: "toggle" | "parent" | HTMLElement | undefined;
/**
* By default, we use Popper.js for dynamic positioning. Disable this with 'static'.
*
* @default "dynamic"
*/
display?: "dynamic" | "static" | undefined;
}
export interface ModalOption {
/**
* Includes a modal-backdrop element.
* Alternatively, specify `static` for a backdrop which doesn't close the modal on click.
*
* @default true
*/
backdrop?: boolean | "static" | undefined;
/**
* Closes the modal when escape key is pressed.
*
* @default true
*/
keyboard?: boolean | undefined;
/**
* Puts the focus on the modal when initialized.
*
* @default true
*/
focus?: boolean | undefined;
/**
* Shows the modal when initialized.
*
* @default true
*/
show?: boolean | undefined;
}
export interface PopoverOption extends TooltipOption {
/**
* Default content value if `data-content` attribute isn't present.
* If a function is given, it will be called with its `this` reference
* set to the element that the popover is attached to.
*
* @default ""
*/
content?: string | Element | ((this: Element) => string | Element) | undefined;
}
export interface ScrollspyOption {
/**
* Finds which section the spied element is in:
* * `auto` will choose the best method get scroll coordinates.
* * `offset` will use jQuery offset method to get scroll coordinates.
* * `position` will use jQuery position method to get scroll coordinates.
*
* @default "auto"
*/
method?: "auto" | "offset" | "position" | undefined;
/**
* Pixels to offset from top when calculating position of scroll.
*
* @default 10
*/
offset?: number | undefined;
/**
* A selector of the parent element or the parent element itself
* of any Bootstrap `.nav` or `.list-group` component.
*
* @default ""
*/
target?: string | JQuery<Element> | Element | undefined;
}
export interface ToastOption {
/**
* Apply a CSS fade transition to the toast.
*
* @default true
*/
animation?: boolean | undefined;
/**
* Auto hide the toast.
*
* @default true
*/
autohide?: boolean | undefined;
/**
* Delay hiding the toast in millisecond.
*
* @default 500
*/
delay?: number | undefined;
}
export interface TooltipOption {
/**
* Apply a CSS fade transition to the tooltip or popover.
*
* @default true
*/
animation?: boolean | undefined;
/**
* Appends the tooltip or popover to a specific element. Example: `container: 'body'`.
* This option is particularly useful in that it allows you to position the tooltip or popover
* in the flow of the document near the triggering element - which will prevent
* it from floating away from the triggering element during a window resize.
*
* @default false
*/
container?: string | Element | false | undefined;
/**
* Delay showing and hiding the tooltip or popover (ms) - does not apply to manual trigger type.
* If a number is supplied, delay is applied to both hide/show.
* Object structure is: `delay: { "show": 500, "hide": 100 }`.
*
* @default 0
*/
delay?: number | Delay | undefined;
/**
* Allow HTML in the tooltip or popover.
* If true, HTML tags will be rendered in the tooltip or popover.
* If false, jQuery's text method will be used to insert content into the DOM.
* Use text if you're worried about XSS attacks.
*
* @default false
*/
html?: boolean | undefined;
/**
* How to position the tooltip or popover - auto | top | bottom | left | right.
* When "auto" is specified, it will dynamically reorient the tooltip or popover.
*
* When a function is used to determine the placement, it is called with
* the tooltip or popover DOM node as its first argument and the triggering element DOM node as its second.
* The `this` context is set to the tooltip or popover instance.
*
* @default tooltip: "top", popover: "right"
*/
placement?: Placement | ((this: TooltipInstance<this>, node: HTMLElement, trigger: Element) => Placement) | undefined;
/**
* If a selector is provided, tooltip or popover objects will be delegated to the specified targets.
* In practice, this is used to enable dynamic HTML content to have popovers added.
*
* @default false
*/
selector?: string | false | undefined;
/**
* Base HTML to use when creating the tooltip or popover.
* The tooltip's (resp., popover's) title will be injected into the `.tooltip-inner` (resp., `.popover-header`).
* The `.arrow` will become the tooltip's (resp., popover's) arrow.
* The outermost wrapper element should have the `.tooltip` (resp., .popover) class and `role="tooltip"`.
*
* @default '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>'
* @default '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
*/
template?: string | undefined;
/**
* Default title value if title attribute isn't present.
* If a function is given, it will be called with its `this` reference set to the element
* that the tooltip or popover is attached to.
*
* @default ""
*/
title?: string | Element | ((this: Element) => string | Element) | undefined;
/**
* How tooltip or popover is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space.
* 'manual' indicates that the tooltip will be triggered programmatically; this value cannot be combined with any other trigger.
* 'hover' should only be used if alternative methods for conveying the same information for keyboard users is present.
*
* @default tooltip: "hover focus", popover: "click"
*/
trigger?: Trigger | undefined;
/**
* Offset of the tooltip or popover relative to its target.
* For more information refer to Popper.js's offset docs.
*
* @default 0
*/
offset?: number | string | undefined;
/**
* Allow to specify which position Popper will use on fallback.
* For more information refer to Popper.js's behavior docs.
*
* @default "flip"
*/
fallbackPlacement?: Popper.Behavior | ReadonlyArray<Popper.Behavior> | undefined;
/**
* Add classes to the tooltip when it is shown. Note that these classes will be added in addition to any classes specified in the template.
* To add multiple classes, separate them with spaces: 'a b'.
* You can also pass a function that should return a single string containing additional class names.
* @default ''
*/
customClass?: string | (() => string) | undefined;
/**
* Overflow constraint boundary of the tooltip or popover.
* Accepts the values of 'viewport', 'window', 'scrollParent',
* or an HTMLElement reference (JavaScript only).
* For more information refer to Popper.js's preventOverflow docs.
*
* @default "scrollParent"
*/
boundary?: Popper.Boundary | HTMLElement | undefined;
/**
* Enable or disable the sanitization. If activated 'template', 'content' and 'title' options will be sanitized.
*
* @default true
*/
sanitize?: boolean | undefined;
/**
* Object which contains allowed attributes and tags.
*/
whiteList?: {[key: string]: string[]} | undefined;
/**
* Here you can supply your own sanitize function. This can be useful if you prefer to use a dedicated library to perform sanitization.
*
* @default null
*/
sanitizeFn?: null | ((input: string) => string) | undefined;
/**
* To change Bootstrap's default Popper.js config,
* see {@link https://popper.js.org/docs/v1/ Popper.js's configuration}
*/
// eslint-disable-next-line @typescript-eslint/ban-types
popperConfig?: null | object | undefined;
}
// --------------------------------------------------------------------------------------
// Events
// --------------------------------------------------------------------------------------
export interface CarouselEventHandler<TElement> extends JQuery.TriggeredEvent<TElement, undefined, HTMLElement, HTMLElement> {
/**
* The carousel dom element.
*/
target: HTMLElement; // overridden only for better JsDoc
/**
* The direction in which the carousel is sliding.
*/
direction: "left" | "right";
/**
* The DOM element that is being slid into place as the active item.
*/
relatedTarget: HTMLElement;
/**
* The index of the current item.
*/
from: number;
/**
* The index of the next item.
*/
to: number;
}
export interface DropdownsEventHandler<TElement> extends JQuery.TriggeredEvent<TElement, undefined, HTMLElement, HTMLElement> {
/**
* The the dropdown's toggle and the dropdown menu container (the `.dropdown` element).
*/
target: HTMLElement; // overridden only for better JsDoc
/**
* The toggling anchor element.
*/
relatedTarget: HTMLElement;
}
export interface ModalEventHandler<TElement> extends JQuery.TriggeredEvent<TElement, undefined, HTMLElement, HTMLElement> {
/**
* The modal dom element.
*/
target: HTMLElement; // overridden only for better JsDoc
/**
* For `show.bs.modal` and `shown.bs.modal` is the clicked element, when caused by a _click_.
* Otherwise is undefined.
*/
relatedTarget: HTMLElement | undefined;
}
export interface TapEventHandler<TElement> extends JQuery.TriggeredEvent<TElement, undefined, HTMLElement, HTMLElement> {
/**
* * For `show.bs.tab` and `shown.bs.tab`, is the newly activated tab.
* * For `hide.bs.tab`, is the current active tab.
* * For `hidden.bs.tab`, is the previous active tab.
*/
target: HTMLElement; // overridden only for better JsDoc
/**
* * For `show.bs.tab` and `shown.bs.tab`, is the previous active tab.
* * For `hide.bs.tab`, is the new soon-to-be-active tab.
* * For `hidden.bs.tab`, is the new active tab.
*/
relatedTarget: HTMLElement;
}
export type AlertEvent = "close.bs.alert" | "closed.bs.alert";
export type CarouselEvent = "slide.bs.carousel" | "slid.bs.carousel";
export type CollapseEvent = "show.bs.collapse" | "shown.bs.collapse" | "hide.bs.collapse" | "hidden.bs.collapse";
export type DropdownEvent = "show.bs.dropdown" | "shown.bs.dropdown" | "hide.bs.dropdown" | "hidden.bs.dropdown";
export type ModalEvent = "show.bs.modal" | "shown.bs.modal" | "hide.bs.modal" | "hidden.bs.modal" | "hidePrevented.bs.modal";
export type PopoverEvent = "show.bs.popover" | "shown.bs.popover" | "hide.bs.popover" | "hidden.bs.popover" | "inserted.bs.popover";
export type ScrollspyEvent = "activate.bs.scrollspy";
export type TapEvent = "show.bs.tab" | "shown.bs.tab" | "hide.bs.tab" | "hidden.bs.tab";
export type ToastEvent = "show.bs.toast" | "shown.bs.toast" | "hide.bs.toast" | "hidden.bs.toast";
export type TooltipEvent = "show.bs.tooltip" | "shown.bs.tooltip" | "hide.bs.tooltip" | "hidden.bs.tooltip" | "inserted.bs.tooltip";
// --------------------------------------------------------------------------------------
// jQuery
// --------------------------------------------------------------------------------------
declare global {
interface JQuery<TElement = HTMLElement> {
/**
* If no _method_ is specified, makes an alert listen for click events on descendant elements which have the `data-dismiss="alert"` attribute.
* (Not necessary when using the data-api's auto-initialization.)
* Otherwise, call the method on the alert element:
* * `close` Closes an alert by removing it from the DOM. If the `.fade` and `.show` classes are present on the element, the alert will fade out before it is removed.
* * `dispose` Destroys an element's alert.
*/
alert(action?: "close" | "dispose"): this;
/**
* Call a method on the button element:
* * `toggle` Toggles push state. Gives the button the appearance that it has been activated.
* * `dispose` Destroys an element's button.
*/
button(action: "toggle" | "dispose"): this;
/**
* Call a method on the carousel element:
* * `cycle` Cycles through the carousel items from left to right.
* * `pause` Stops the carousel from cycling through items.
* * _number_ Cycles the carousel to a particular frame (0 based, similar to an array).
* * `prev` Cycles to the previous item.
* * `next` Cycles to the next item.
* * `dispose` Destroys an element's carousel.
*
* Returns to the caller before the target item has been shown (i.e. before the `slid.bs.carousel` event occurs).
*/
carousel(action: "cycle" | "pause" | number | "prev" | "next" | "dispose"): this;
/**
* Initializes the carousel and starts cycling through items.
*/
carousel(options?: CarouselOption): this;
/**
* Call a method on the collapsible element:
* * `toggle` Toggles a collapsible element to shown or hidden.
* * `show` Shows a collapsible element.
* * `hide` Hides a collapsible element.
* * `dispose` Destroys an element's collapse.
*
* Returns to the caller before the collapsible element has actually been shown or hidden (i.e. before the `shown.bs.collapse` or `hidden.bs.collapse` event occurs).
*/
collapse(action: "toggle" | "show" | "hide" | "dispose"): this;
/**
* Activates a content as a collapsible element.
*/
collapse(options?: CollapseOption): this;
/**
* Call a method on the dropdown element:
* * `toggle` Toggles the dropdown menu of a given navbar or tabbed navigation.
* * `show` Shows the dropdown menu of a given navbar or tabbed navigation.
* * `hide` Hides the dropdown menu of a given navbar or tabbed navigation.
* * `update` Updates the position of an element's dropdown.
* * `dispose` Destroys an element's dropdown.
*/
dropdown(action: "toggle" | "show" | "hide" | "update" | "dispose"): this;
/**
* Toggle contextual overlays for displaying lists of links.
*
* The data-api, `data-toggle="dropdown"` is always required to be present on the dropdown's trigger element.
*/
dropdown(options?: DropdownOption): this;
/**
* Call a method on the modal element:
* * `toggle` Manually toggles a modal.
* * `show` Manually opens a modal.
* * `hide` Manually hides a modal.
* * `handleUpdate` Manually readjust the modal's position if the height of a modal changes while it is open (i.e. in case a scrollbar appears).
* * `dispose` Destroys an element's modal.
*
* Returns to the caller before the modal has actually been shown or hidden (i.e. before the `shown.bs.modal` or `hidden.bs.modal` event occurs).
*/
modal(action: "toggle" | "show" | "hide" | "handleUpdate" | "dispose"): this;
/**
* Activates a content as a modal.
*/
modal(options?: ModalOption): this;
/**
* Call a method on the popover element:
* * `show` Reveals an element's popover. Popovers whose both title and content are zero-length are never displayed.
* * `hide` Hides an element's popover.
* * `toggle` Toggles an element's popover.
* * `dispose` Hides and destroys an element's popover.
* Popovers that use delegation (which are created using the `selector` option) cannot be individually destroyed on descendant trigger elements.
* * `enable` Gives an element's popover the ability to be shown. Popovers are enabled by default.
* * `disable` Removes the ability for an element's popover to be shown. The popover will only be able to be shown if it is re-enabled.
* * `toggleEnabled` Toggles the ability for an element's popover to be shown or hidden.
* * `update` Updates the position of an element's popover.
*
* Returns to the caller before the popover has actually been shown or hidden (i.e. before the `shown.bs.popover` or `hidden.bs.popover` event occurs).
* This is considered a "manual" triggering of the popover.
*/
popover(action: "show" | "hide" | "toggle" | "dispose" | "enable" | "disable" | "toggleEnabled" | "update"): this;
/**
* Initializes popovers for an element collection.
*/
popover(options?: PopoverOption): this;
// tslint:disable:jsdoc-format
/**
* Call a method on the scrollspy element:
* * `refresh` When using scrollspy in conjunction with adding or removing of elements from the DOM, you'll need to call the refresh, see example.
* * `dispose` Destroys an element's scrollspy.
*
* @example
```javascript
$('[data-spy="scroll"]').each(function () {
var $spy = $(this).scrollspy('refresh')
})
```
*/
// tslint:enable:jsdoc-format
scrollspy(action: "refresh" | "dispose"): this;
/**
* Add scrollspy behavior to a topbar navigation.
*/
scrollspy(options?: ScrollspyOption): this;
/**
* Call a method on the list item or tab element:
* * `show` Selects the given list item or tab and shows its associated pane.
* Any other list item or tab that was previously selected becomes unselected and its associated pane is hidden.
* * `dispose` Destroys an element's tab.
*
* Returns to the caller before the tab pane has actually been shown (i.e. before the `shown.bs.tab` event occurs).
*/
tab(action: "show" | "dispose"): this;
/**
* Call a method on the toast element:
* * `show` Reveals an element's toast. You have to manually call this method, instead your toast won't show.
* * `hide` Hides an element's toast. You have to manually call this method if you made `autohide` to false.
* * `dispose` Hides an element's toast. Your toast will remain on the DOM but won't show anymore.
*
* Returns to the caller before the toast has actually been shown or hidden (i.e. before the `shown.bs.toast` or `hidden.bs.toast` event occurs).
*/
toast(action: "show" | "hide" | "dispose"): this;
/**
* Attaches a toast handler to an element collection.
*/
toast(options?: ToastOption): this;
/**
* Call a method on the tooltip element:
* * `show` Reveals an element's tooltip. Tooltips with zero-length titles are never displayed.
* * `hide` Hides an element's tooltip.
* * `toggle` Toggles an element's tooltip.
* * `dispose` Hides and destroys an element's tooltip.
* Tooltips that use delegation (which are created using `selector` option) cannot be individually destroyed on descendant trigger elements.
* * `enable` Gives an element's tooltip the ability to be shown. Tooltips are enabled by default.
* * `disable` Removes the ability for an element's tooltip to be shown. The tooltip will only be able to be shown if it is re-enabled.
* * `toggleEnabled` Toggles the ability for an element's tooltip to be shown or hidden.
* * `update` Updates the position of an element's tooltip.
*
* Returns to the caller before the tooltip has actually been shown or hidden (i.e. before the `shown.bs.tooltip` or `hidden.bs.tooltip` event occurs).
* This is considered a "manual" triggering of the tooltip.
*/
tooltip(action: "show" | "hide" | "toggle" | "dispose" | "enable" | "disable" | "toggleEnabled" | "update"): this;
/**
* Attaches a tooltip handler to an element collection.
*/
tooltip(options?: TooltipOption): this;
on(events: CarouselEvent, handler: JQuery.EventHandlerBase<TElement, CarouselEventHandler<TElement>>): this;
on(events: DropdownEvent, handler: JQuery.EventHandlerBase<TElement, DropdownsEventHandler<TElement>>): this;
on(events: ModalEvent, handler: JQuery.EventHandlerBase<TElement, ModalEventHandler<TElement>>): this;
on(events: TapEvent, handler: JQuery.EventHandlerBase<TElement, TapEventHandler<TElement>>): this;
on(
events: AlertEvent | CollapseEvent | PopoverEvent | ScrollspyEvent | ToastEvent | TooltipEvent,
handler: JQuery.EventHandler<TElement>
): this;
}
}
+8 -8
View File
@@ -60,18 +60,18 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import "../scss/bootstrap5.scss"; import "@scss/common/bootstrap5.scss";
import "../scss/game_bg.scss"; import "@scss/game_bg.scss";
import "../../css/config.css"; import "../../css/config.css";
import { defineComponent, onMounted, reactive, ref } from "vue"; import { defineComponent, onMounted, reactive, ref } from "vue";
import TopBackBar from "./components/TopBackBar.vue"; import TopBackBar from "@/components/TopBackBar.vue";
import BoardArticle from "./components/BoardArticle.vue"; import BoardArticle from "@/components/BoardArticle.vue";
import { convertFormData } from "./util/convertFormData"; import { convertFormData } from "@util/convertFormData";
import axios from "axios"; import axios from "axios";
import { InvalidResponse } from "./defs"; import { InvalidResponse } from "@/defs";
import { autoResizeTextarea } from "./util/autoResizeTextarea"; import { autoResizeTextarea } from "@util/autoResizeTextarea";
import { unwrap } from "./util/unwrap"; import { unwrap } from "@util/unwrap";
export type BoardResponse = { export type BoardResponse = {
result: true; result: true;
articles: Record<number, BoardArticleItem>; articles: Record<number, BoardArticleItem>;
+8 -8
View File
@@ -294,11 +294,11 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import "../scss/bootstrap5.scss"; import "@scss/common/bootstrap5.scss";
import "../scss/game_bg.scss"; import "@scss/game_bg.scss";
import { defineComponent } from "vue"; import { defineComponent } from "vue";
import TopBackBar from "./components/TopBackBar.vue"; import TopBackBar from "@/components/TopBackBar.vue";
import { import {
CTable, CTable,
CTableBody, CTableBody,
@@ -306,18 +306,18 @@ import {
CTableHeaderCell, CTableHeaderCell,
CTableDataCell, CTableDataCell,
} from "@coreui/vue/src/components/table"; } from "@coreui/vue/src/components/table";
import { getIconPath } from "./util/getIconPath"; import { getIconPath } from "@util/getIconPath";
import { isBrightColor } from "./util/isBrightColor"; import { isBrightColor } from "@util/isBrightColor";
import { import {
abilityLeadint, abilityLeadint,
abilityLeadpow, abilityLeadpow,
abilityPowint, abilityPowint,
abilityRand, abilityRand,
} from "./util/generalStats"; } from "@util/generalStats";
import { clone, shuffle, sum } from "lodash"; import { clone, shuffle, sum } from "lodash";
import axios from "axios"; import axios from "axios";
import { InvalidResponse } from "./defs"; import { InvalidResponse } from "@/defs";
import NumberInputWithInfo from "./components/NumberInputWithInfo.vue"; import NumberInputWithInfo from "@/components/NumberInputWithInfo.vue";
declare const nationList: { declare const nationList: {
nation: number; nation: number;
+10 -10
View File
@@ -459,8 +459,8 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import "../scss/bootstrap5.scss"; import "@scss/common/bootstrap5.scss";
import "../scss/game_bg.scss"; import "@scss/game_bg.scss";
import { defineComponent } from "vue"; import { defineComponent } from "vue";
import { import {
@@ -470,17 +470,17 @@ import {
NPCChiefActions, NPCChiefActions,
NPCGeneralActions, NPCGeneralActions,
ToastType, ToastType,
} from "./defs"; } from "@/defs";
import NumberInputWithInfo from "./components/NumberInputWithInfo.vue"; import NumberInputWithInfo from "@/components/NumberInputWithInfo.vue";
import { cloneDeep, isEqual, last } from "lodash"; import { cloneDeep, isEqual, last } from "lodash";
import { unwrap } from "./util/unwrap"; import { unwrap } from "@util/unwrap";
import { convertFormData } from "./util/convertFormData"; import { convertFormData } from "@util/convertFormData";
import axios from "axios"; import axios from "axios";
import { NPCPriorityBtnHelpMessage } from "./helpTexts"; import { NPCPriorityBtnHelpMessage } from "@/helpTexts";
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import MyToast from "./components/MyToast.vue"; import MyToast from "@/components/MyToast.vue";
import TopBackBar from "./components/TopBackBar.vue"; import TopBackBar from "@/components/TopBackBar.vue";
import { convertIDArray } from "./util/convertIDArray"; import { convertIDArray } from "@util/convertIDArray";
declare const nationID: number; declare const nationID: number;
+11 -14
View File
@@ -56,9 +56,6 @@
Math.min(maxTurn, viewMaxTurn) Math.min(maxTurn, viewMaxTurn)
)" )"
:key="turnIdx" :key="turnIdx"
height="28"
:id="`command_${turnIdx}`"
:class="turnList.has(turnIdx) ? 'pressed' : ''"
> >
<div class="idx_pad center d-grid" @click="toggleTurn(turnIdx)"> <div class="idx_pad center d-grid" @click="toggleTurn(turnIdx)">
<b-button <b-button
@@ -206,13 +203,13 @@ import addMinutes from "date-fns/esm/addMinutes";
import { range } from "lodash"; import { range } from "lodash";
import { stringifyUrl } from "query-string"; import { stringifyUrl } from "query-string";
import { defineComponent } from "vue"; import { defineComponent } from "vue";
import { formatTime } from "./util/formatTime"; import { formatTime } from "@util/formatTime";
import { joinYearMonth } from "./util/joinYearMonth"; import { joinYearMonth } from "@util/joinYearMonth";
import { mb_strwidth } from "./util/mb_strwidth"; import { mb_strwidth } from "@util/mb_strwidth";
import { parseTime } from "./util/parseTime"; import { parseTime } from "@util/parseTime";
import { parseYearMonth } from "./util/parseYearMonth"; import { parseYearMonth } from "@util/parseYearMonth";
import { sammoAPI } from "./util/sammoAPI"; import { sammoAPI } from "@util/sammoAPI";
import { filter초성withAlphabet } from "./util/filter초성withAlphabet"; import { filter초성withAlphabet } from "@util/filter초성withAlphabet";
type commandItem = { type commandItem = {
value: string; value: string;
@@ -547,10 +544,10 @@ export default defineComponent({
}); });
</script> </script>
<style lang="scss"> <style lang="scss">
@import "../scss/break_500px.scss"; @import "@scss/common/break_500px.scss";
@import "../scss/variables.scss"; @import "@scss/common/variables.scss";
@import "../scss/bootswatch_custom_variables.scss"; @import "@scss/common/bootswatch_custom_variables.scss";
@import "../../node_modules/bootstrap5/scss/bootstrap-utilities.scss"; @import "bootstrap/scss/bootstrap-utilities.scss";
.commandPad { .commandPad {
background-color: $gray-900; background-color: $gray-900;
+21 -14
View File
@@ -1,17 +1,15 @@
import { exportWindow } from './util/exportWindow';
import $ from 'jquery'; import $ from 'jquery';
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');//XXX: 왜 popper를 이렇게 불러야 하는가?
import 'bootstrap'; import 'bootstrap';
import download from 'downloadjs'; import download from 'downloadjs';
import { unwrap } from "./util/unwrap"; import { unwrap } from "@util/unwrap";
import { isInteger } from 'lodash'; import { isInteger } from 'lodash';
import { combineArray, errUnknown, getNpcColor } from './common_legacy'; import { combineArray, errUnknown, getNpcColor } from '@/common_legacy';
import { isBrightColor } from "./util/isBrightColor"; import { isBrightColor } from "@util/isBrightColor";
import { numberWithCommas } from "./util/numberWithCommas"; import { numberWithCommas } from "@util/numberWithCommas";
import { unwrap_any } from './util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
import { BasicGeneralListResponse, InvalidResponse } from './defs'; import { BasicGeneralListResponse, InvalidResponse } from '@/defs';
import { formatTime } from './util/formatTime'; import { formatTime } from '@util/formatTime';
import { Modal } from 'bootstrap';
type CityAttackerInfo = { type CityAttackerInfo = {
level: number, level: number,
@@ -126,6 +124,8 @@ declare global {
} }
} }
let modalImport: Modal|undefined = undefined;
$(function ($) { $(function ($) {
@@ -225,7 +225,10 @@ $(function ($) {
const $modal = $('#importModal'); const $modal = $('#importModal');
$modal.data('target', $card); $modal.data('target', $card);
$modal.modal('show'); if(!modalImport){
modalImport = new Modal($modal[0]);
}
modalImport.show();
}); });
$('.btn-general-save').on('click', function () { $('.btn-general-save').on('click', function () {
@@ -962,13 +965,15 @@ $(function ($) {
const $card = $modal.data('target'); const $card = $modal.data('target');
importGeneralInfo($card, data.general); importGeneralInfo($card, data.general);
$modal.modal('hide'); if(modalImport){
modalImport.hide();
}
}, errUnknown); }, errUnknown);
}); });
$('#importModal').on('show.bs.modal', function () { unwrap(document.querySelector('#importModal')).addEventListener('show.bs.modal', function () {
if (!initGeneralList) { if (!initGeneralList) {
const $list = $('#modalSelector'); const $list = $('#modalSelector');
@@ -1011,7 +1016,9 @@ $(function ($) {
}).then(function (data: BasicGeneralListResponse | InvalidResponse) { }).then(function (data: BasicGeneralListResponse | InvalidResponse) {
if (!data.result) { if (!data.result) {
alert(data.reason); alert(data.reason);
$('#importModal').modal('hide'); if(modalImport){
modalImport.hide();
}
return false; return false;
} }
+4 -4
View File
@@ -1,9 +1,9 @@
import $ from 'jquery'; import $ from 'jquery';
import axios from 'axios'; import axios from 'axios';
import { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { InvalidResponse } from './defs'; import { InvalidResponse } from '@/defs';
import { convertFormData } from './util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { unwrap_any } from './util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
$(function($){ $(function($){
setAxiosXMLHttpRequest(); setAxiosXMLHttpRequest();
+4 -7
View File
@@ -1,12 +1,9 @@
import { exportWindow } from './util/exportWindow';
import $ from 'jquery'; import $ from 'jquery';
import axios from 'axios'; import axios from 'axios';
import { convertFormData } from './util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { InvalidResponse } from './defs'; import { InvalidResponse } from '@/defs';
import { unwrap_any } from './util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
import { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');
import 'bootstrap'; import 'bootstrap';
import 'select2/dist/js/select2.full.js' import 'select2/dist/js/select2.full.js'
+8 -8
View File
@@ -2,15 +2,15 @@ import axios from 'axios';
import $ from 'jquery'; import $ from 'jquery';
import { range } from 'lodash'; import { range } from 'lodash';
import { addMinutes } from 'date-fns'; import { addMinutes } from 'date-fns';
import { errUnknown, getNpcColor } from './common_legacy'; import { errUnknown, getNpcColor } from '@/common_legacy';
import { InvalidResponse } from './defs'; import { InvalidResponse } from '@/defs';
import { unwrap } from "./util/unwrap"; import { unwrap } from "@util/unwrap";
import { convertFormData } from './util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { unwrap_any } from "./util/unwrap_any"; import { unwrap_any } from "@util/unwrap_any";
import { parseTime } from './util/parseTime'; import { parseTime } from '@util/parseTime';
import { formatTime } from './util/formatTime'; import { formatTime } from '@util/formatTime';
import { stringifyUrl } from 'query-string'; import { stringifyUrl } from 'query-string';
import { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
setAxiosXMLHttpRequest(); setAxiosXMLHttpRequest();
+9 -11
View File
@@ -1,17 +1,15 @@
import { exportWindow } from "./util/exportWindow"; import { exportWindow } from "@util/exportWindow";
import { activateFlip, errUnknown, errUnknownToast, quickReject, initTooltip } from "./common_legacy"; import { activateFlip, errUnknown, errUnknownToast, quickReject, initTooltip } from "@/common_legacy";
import { isBrightColor } from "./util/isBrightColor"; import { isBrightColor } from "@util/isBrightColor";
import { getIconPath } from "./util/getIconPath"; import { getIconPath } from "@util/getIconPath";
import { mb_strwidth } from "./util/mb_strwidth"; import { mb_strwidth } from "@util/mb_strwidth";
import { TemplateEngine } from "./util/TemplateEngine"; import { TemplateEngine } from "@util/TemplateEngine";
import { escapeHtml } from "./legacy/escapeHtml"; import { escapeHtml } from "@/legacy/escapeHtml";
import { nl2br } from "./util/nl2br"; import { nl2br } from "@util/nl2br";
import jQuery from "jquery"; import jQuery from "jquery";
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');//XXX: 왜 popper를 이렇게 불러야 하는가?
import 'bootstrap'; import 'bootstrap';
import "../scss/common_legacy.scss"; import "@scss/common_legacy.scss";
exportWindow(jQuery, '$'); exportWindow(jQuery, '$');
exportWindow(jQuery, 'jQuery'); exportWindow(jQuery, 'jQuery');
+7 -5
View File
@@ -1,5 +1,6 @@
import $ from "jquery"; import $ from "jquery";
import axios from "axios"; import { Tooltip } from "bootstrap";
import { trim } from "lodash";
/** /**
* object의 array를 id를 key로 삼는 object로 재 변환 * object의 array를 id를 key로 삼는 object로 재 변환
@@ -185,15 +186,16 @@ export function initTooltip($obj?: JQuery<HTMLElement>): void {
if (!tooltipClassText) { if (!tooltipClassText) {
tooltipClassText = ''; tooltipClassText = '';
} }
const template = `<div class="tooltip ${tooltipClassText}" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>`; const template = `<div class="tooltip ${tooltipClassText}" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>`;
$objTooltip.tooltip({ const oTooltip = new Tooltip(this, {
title: function(){ title: function(){
return $.trim($(this).find('.tooltiptext').html()); return trim(this.querySelector('.tooltiptext')?.innerHTML);
}, },
template: template, template: template,
html: true html: true
}).tooltip('show'); });
oTooltip.show();
$objTooltip.data('setObjTooltip', true); $objTooltip.data('setObjTooltip', true);
}); });
+4 -4
View File
@@ -50,12 +50,12 @@
</table> </table>
</template> </template>
<script lang="ts"> <script lang="ts">
import { BoardArticleItem } from "../Board.vue"; import { BoardArticleItem } from "@/Board.vue";
import BoardComment from "./BoardComment.vue"; import BoardComment from "@/components/BoardComment.vue";
import { defineComponent, PropType } from "vue"; import { defineComponent, PropType } from "vue";
import axios from "axios"; import axios from "axios";
import { convertFormData } from "../util/convertFormData"; import { convertFormData } from "@util/convertFormData";
import { InvalidResponse } from "../defs"; import { InvalidResponse } from "@/defs";
export default defineComponent({ export default defineComponent({
name: "BoardArticle", name: "BoardArticle",
components: { components: {
+1 -1
View File
@@ -7,7 +7,7 @@
</tr> </tr>
</template> </template>
<script lang="ts"> <script lang="ts">
import { BoardCommentItem } from "../Board.vue"; import { BoardCommentItem } from "@/Board.vue";
import { defineComponent, PropType } from "vue"; import { defineComponent, PropType } from "vue";
export default defineComponent({ export default defineComponent({
+1 -1
View File
@@ -14,7 +14,7 @@
<script lang="ts"> <script lang="ts">
import { defineComponent, PropType } from "vue"; import { defineComponent, PropType } from "vue";
import "../../scss/game_bg.scss"; import "@scss/game_bg.scss";
export default defineComponent({ export default defineComponent({
name: "TopBackBar", name: "TopBackBar",
+1 -1
View File
@@ -19,7 +19,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, PropType } from "vue"; import { defineComponent, PropType } from "vue";
import { ToastType } from "../defs"; import { ToastType } from "@/defs";
import { CToaster, CToast, CToastHeader, CToastBody } from "@coreui/vue/src/components/toast"; import { CToaster, CToast, CToastHeader, CToastBody } from "@coreui/vue/src/components/toast";
export default defineComponent({ export default defineComponent({
+1 -1
View File
@@ -9,7 +9,7 @@
<script lang="ts"> <script lang="ts">
import { defineComponent, PropType } from "vue"; import { defineComponent, PropType } from "vue";
import "../../scss/game_bg.scss"; import "@scss/game_bg.scss";
export default defineComponent({ export default defineComponent({
name: "TopBackBar", name: "TopBackBar",
-3
View File
@@ -1,7 +1,4 @@
import $ from 'jquery'; import $ from 'jquery';
import { exportWindow } from './util/exportWindow';
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');
import 'bootstrap'; import 'bootstrap';
import 'select2/dist/js/select2.full.js' import 'select2/dist/js/select2.full.js'
+2 -2
View File
@@ -1,5 +1,5 @@
import { reloadWorldMap } from "./map"; import { reloadWorldMap } from "@/map";
import { unwrap_any } from "./util/unwrap_any"; import { unwrap_any } from "@util/unwrap_any";
export function defaultSelectCityByMap(): void { export function defaultSelectCityByMap(): void {
const $target = $("#destCityID"); const $target = $("#destCityID");
+2 -2
View File
@@ -1,5 +1,5 @@
import { reloadWorldMap } from "./map"; import { reloadWorldMap } from "@/map";
import { unwrap_any } from "./util/unwrap_any"; import { unwrap_any } from "@util/unwrap_any";
export function defaultSelectNationByMap(): void{ export function defaultSelectNationByMap(): void{
const $target = $("#destNationID"); const $target = $("#destNationID");
+4 -7
View File
@@ -1,14 +1,11 @@
import $ from 'jquery'; import $ from 'jquery';
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');//XXX: 왜 popper를 이렇게 불러야 하는가?
import 'bootstrap'; import 'bootstrap';
import 'summernote/dist/summernote-bs4'; import 'summernote/dist/summernote-bs4';
import 'summernote/dist/summernote-bs4.css'; import 'summernote/dist/summernote-bs4.css';
import './summernote-image-flip'; import '@/summernote-image-flip';
import './summernote-ko-KR'; import '@/summernote-ko-KR';
import { activateFlip } from './common_legacy'; import { activateFlip } from '@/common_legacy';
import { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { exportWindow } from './util/exportWindow';
declare const editable: boolean; declare const editable: boolean;
+8 -11
View File
@@ -1,17 +1,14 @@
import $ from 'jquery'; import $ from 'jquery';
import { unwrap_any } from './util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
import axios from 'axios'; import axios from 'axios';
import { isBrightColor } from "./util/isBrightColor"; import { isBrightColor } from "@util/isBrightColor";
import { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { isString } from 'lodash'; import { isString } from 'lodash';
import { convertFormData } from './util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { InvalidResponse, NationStaticItem } from './defs'; import { InvalidResponse, NationStaticItem } from '@/defs';
import { escapeHtml } from './legacy/escapeHtml'; import { escapeHtml } from '@/legacy/escapeHtml';
import { nl2br } from './util/nl2br'; import { nl2br } from '@util/nl2br';
import { unwrap } from './util/unwrap'; import { unwrap } from '@util/unwrap';
import { exportWindow } from './util/exportWindow';
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');
import 'bootstrap'; import 'bootstrap';
import 'select2/dist/js/select2.full.js' import 'select2/dist/js/select2.full.js'
import { LoadingData } from 'select2'; import { LoadingData } from 'select2';
+1 -1
View File
@@ -1,6 +1,6 @@
import $ from 'jquery'; import $ from 'jquery';
import { unwrap_any } from './util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
type UserItem = { type UserItem = {
val: string, val: string,
+2 -2
View File
@@ -1,7 +1,7 @@
import $ from 'jquery'; import $ from 'jquery';
import { unwrap } from './util/unwrap'; import { unwrap } from '@util/unwrap';
import axios from 'axios'; import axios from 'axios';
import { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
type KingdomGeneral = { type KingdomGeneral = {
html: JQuery<HTMLElement>, html: JQuery<HTMLElement>,
+2 -2
View File
@@ -1,6 +1,6 @@
import axios from "axios"; import axios from "axios";
import { unwrap } from "./util/unwrap"; import { unwrap } from "@util/unwrap";
import { RuntimeError } from "./util/RuntimeError"; import { RuntimeError } from "@util/RuntimeError";
declare global { declare global {
interface Window { interface Window {
+7 -8
View File
@@ -1,14 +1,13 @@
import axios from 'axios'; import axios from 'axios';
import $ from 'jquery'; import $ from 'jquery';
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');//XXX: 왜 popper를 이렇게 불러야 하는가?
import { isNumber } from 'lodash'; import { isNumber } from 'lodash';
import { TemplateEngine } from '../util/TemplateEngine'; import { TemplateEngine } from '@util/TemplateEngine';
import { InvalidResponse } from '../defs'; import { InvalidResponse } from '@/defs';
import { setAxiosXMLHttpRequest } from '../util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { unwrap_any } from '../util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
import { convertFormData } from '../util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { exportWindow } from '../util/exportWindow'; import { exportWindow } from '@util/exportWindow';
import '@/gateway/common';
type UserEntry = { type UserEntry = {
userID: string, userID: string,
+8 -7
View File
@@ -1,11 +1,12 @@
import { exportWindow } from '../util/exportWindow'; import { exportWindow } from '@util/exportWindow';
import axios from 'axios'; import axios from 'axios';
import { setAxiosXMLHttpRequest } from '../util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { InvalidResponse } from '../defs'; import { InvalidResponse } from '@/defs';
import { convertFormData } from '../util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { TemplateEngine } from "../util/TemplateEngine"; import { TemplateEngine } from "@util/TemplateEngine";
import { unwrap_any } from '../util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
import { unwrap } from '../util/unwrap'; import { unwrap } from '@util/unwrap';
import '@/gateway/common';
type ServerUpdateResponse = { type ServerUpdateResponse = {
result: true, result: true,
+3
View File
@@ -0,0 +1,3 @@
import 'bootstrap';
import "@scss/common/bootstrap5.scss";
+8 -10
View File
@@ -1,16 +1,14 @@
import { exportWindow } from '../util/exportWindow'; import { exportWindow } from '@util/exportWindow';
import $ from 'jquery'; import $ from 'jquery';
exportWindow($, '$'); exportWindow($, '$');
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');//XXX: 왜 popper를 이렇게 불러야 하는가?
import axios from 'axios'; import axios from 'axios';
import 'bootstrap'; import { initTooltip } from '@/common_legacy';
import { initTooltip } from '../common_legacy'; import { TemplateEngine } from '@util/TemplateEngine';
import { TemplateEngine } from "../util/TemplateEngine"; import { InvalidResponse } from '@/defs';
import { InvalidResponse } from '../defs'; import { getDateTimeNow } from '@util/getDateTimeNow';
import { getDateTimeNow } from '../util/getDateTimeNow'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { setAxiosXMLHttpRequest } from '../util/setAxiosXMLHttpRequest'; import { loadPlugin as loadAdminPlugin } from '@/gateway/admin_server';
import { loadPlugin as loadAdminPlugin } from './admin_server'; import '@/gateway/common';
declare const isAdmin: boolean; declare const isAdmin: boolean;
+7 -6
View File
@@ -1,14 +1,15 @@
import $ from 'jquery'; import $ from 'jquery';
import axios from 'axios'; import axios from 'axios';
import { setAxiosXMLHttpRequest } from '../util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { InvalidResponse } from '../defs'; import { InvalidResponse } from '@/defs';
import { JQValidateForm, NamedRules } from '../util/jqValidateForm'; import { JQValidateForm, NamedRules } from '@util/jqValidateForm';
import { convertFormData } from '../util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { unwrap_any } from '../util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
import { mb_strwidth } from '../util/mb_strwidth'; import { mb_strwidth } from '@util/mb_strwidth';
import { isString } from 'lodash'; import { isString } from 'lodash';
import { sha512 } from 'js-sha512'; import { sha512 } from 'js-sha512';
import '@/gateway/common';
async function changeInstallMode() { async function changeInstallMode() {
let result: { let result: {
+8 -6
View File
@@ -1,13 +1,15 @@
import $ from 'jquery'; import $ from 'jquery';
import axios from 'axios'; import axios from 'axios';
import { JQValidateForm, NamedRules } from '../util/jqValidateForm'; import { JQValidateForm, NamedRules } from '@util/jqValidateForm';
import { convertFormData } from '../util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { InvalidResponse } from '../defs'; import { InvalidResponse } from '@/defs';
import { setAxiosXMLHttpRequest } from '../util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { unwrap_any } from '../util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
import { sha512 } from 'js-sha512'; import { sha512 } from 'js-sha512';
import { isString } from 'lodash'; import { isString } from 'lodash';
import { mb_strwidth } from '../util/mb_strwidth'; import { mb_strwidth } from '@util/mb_strwidth';
import '@/gateway/common';
$(async function () { $(async function () {
setAxiosXMLHttpRequest(); setAxiosXMLHttpRequest();
+30 -19
View File
@@ -1,18 +1,17 @@
import $ from 'jquery'; import $ from 'jquery';
import 'popper.js'; import { JQValidateForm, NamedRules } from '@util/jqValidateForm';
import Popper from 'popper.js';
(window as unknown as { Popper: unknown }).Popper = Popper;
import 'bootstrap';
import { JQValidateForm, NamedRules } from '../util/jqValidateForm';
import axios from 'axios'; import axios from 'axios';
import { convertFormData } from '../util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { setAxiosXMLHttpRequest } from '../util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { unwrap_any } from '../util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
import { sha512 } from 'js-sha512'; import { sha512 } from 'js-sha512';
import { unwrap } from '../util/unwrap'; import { unwrap } from '@util/unwrap';
import { InvalidResponse } from '../defs'; import { InvalidResponse } from '@/defs';
import internal from 'stream'; import { delay } from '@util/delay';
import { delay } from '../util/delay'; import { Modal } from 'bootstrap';
import '@/gateway/common';
import '@scss/gateway/login.scss';
type LoginResponse = { type LoginResponse = {
result: true, result: true,
@@ -55,6 +54,8 @@ declare global {
declare const kakao_oauth_client_id: string; declare const kakao_oauth_client_id: string;
declare const kakao_oauth_redirect_uri: string; declare const kakao_oauth_redirect_uri: string;
let modalOTP: Modal | undefined = undefined;
let oauthMode: string | null = null; let oauthMode: string | null = null;
const TOKEN_VERSION = 1; const TOKEN_VERSION = 1;
@@ -229,11 +230,15 @@ async function doLoginUsingOAuth() {
return; return;
} }
const $modal = $('#modalOTP').modal() as unknown as JQuery; const modalEl = unwrap(document.querySelector('#modalOTP'))
$modal.on('shown.bs.modal', function () { if (!modalOTP) {
$('#otp_code').trigger('focus'); modalOTP = new Modal(modalEl);
modalEl.addEventListener('shown.bs.modal', function () {
unwrap(document.querySelector<HTMLElement>('#otp_code')).focus();
}); });
} }
modalOTP.show();
}
function postOAuthResult(mode: string) { function postOAuthResult(mode: string) {
if (mode == 'join') { if (mode == 'join') {
@@ -339,10 +344,14 @@ $(async function ($) {
return; return;
} }
const $modal = $('#modalOTP').modal() as unknown as JQuery; const modalEl = unwrap(document.querySelector('#modalOTP'))
$modal.on('shown.bs.modal', function () { if (!modalOTP) {
$('#otp_code').trigger('focus'); modalOTP = new Modal(modalEl);
modalEl.addEventListener('shown.bs.modal', function () {
unwrap(document.querySelector<HTMLElement>('#otp_code')).focus();
}); });
}
modalOTP.show();
}); });
$('#otp_form').on('submit', async function (e) { $('#otp_form').on('submit', async function (e) {
@@ -376,7 +385,9 @@ $(async function ($) {
alert(result.reason); alert(result.reason);
if (result.reset) { if (result.reset) {
$('#modalOTP').modal('hide') if (modalOTP) {
modalOTP.hide();
}
return; return;
} }
}); });
+14 -14
View File
@@ -1,18 +1,16 @@
import { setAxiosXMLHttpRequest } from "../util/setAxiosXMLHttpRequest"; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import $ from 'jquery'; import $ from 'jquery';
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');//XXX: 왜 popper를 이렇게 불러야 하는가?
import 'bootstrap';
import axios from 'axios'; import axios from 'axios';
import { subDays } from 'date-fns'; import { subDays } from 'date-fns';
import { getDateTimeNow } from "../util/getDateTimeNow"; import { getDateTimeNow } from '@util/getDateTimeNow';
import { sha512 } from "js-sha512"; import { sha512 } from "js-sha512";
import { convertFormData } from "../util/convertFormData"; import { convertFormData } from '@util/convertFormData';
import { InvalidResponse } from "../defs"; import { InvalidResponse } from '@/defs';
import { unwrap } from "../util/unwrap"; import { unwrap } from '@util/unwrap';
import { parseTime } from "../util/parseTime"; import { parseTime } from '@util/parseTime';
import { formatTime } from "../util/formatTime"; import { formatTime } from '@util/formatTime';
import { exportWindow } from "../util/exportWindow"; import '@/gateway/common';
import { Modal } from 'bootstrap';
type ResultUserInfo = { type ResultUserInfo = {
result: true, result: true,
@@ -131,14 +129,16 @@ function showAdjustServerModal(serverList: [string, string][]) {
$form.append($item); $form.append($item);
} }
const $modal = $('#chooseServer'); const modalEl = unwrap(document.querySelector('#chooseServer'));
$modal.modal({ const modal = new Modal(modalEl, {
backdrop: 'static' backdrop: 'static'
}); });
$modal.on('hidden.bs.modal', function () {
modalEl.addEventListener('hidden.bs.modal', function () {
location.reload(); location.reload();
return; return;
}); });
modal.show();
$("#modal-apply").off("click").on("click", async function () { $("#modal-apply").off("click").on("click", async function () {
const events: Promise<unknown>[] = []; const events: Promise<unknown>[] = [];
+1 -4
View File
@@ -1,10 +1,7 @@
import $ from 'jquery'; import $ from 'jquery';
import { stringifyUrl } from 'query-string'; import { stringifyUrl } from 'query-string';
import { initTooltip } from './common_legacy'; import { initTooltip } from '@/common_legacy';
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');
import 'bootstrap'; import 'bootstrap';
import { exportWindow } from './util/exportWindow';
$(function ($) { $(function ($) {
$('#by_scenario').on('change', function (e) { $('#by_scenario').on('change', function (e) {
+1 -1
View File
@@ -1,4 +1,4 @@
import { NPCChiefActions, NPCGeneralActions } from "./defs"; import { NPCChiefActions, NPCGeneralActions } from "@/defs";
export const NPCPriorityBtnHelpMessage: { export const NPCPriorityBtnHelpMessage: {
[v in NPCChiefActions | NPCGeneralActions]: string; [v in NPCChiefActions | NPCGeneralActions]: string;
+1 -1
View File
@@ -1,5 +1,5 @@
import $ from 'jquery'; import $ from 'jquery';
import './map'; import '@/map';
declare const startYear:number; declare const startYear:number;
declare const startMonth:number; declare const startMonth:number;
+5 -5
View File
@@ -259,13 +259,13 @@
<script lang="ts"> <script lang="ts">
import { defineComponent } from "vue"; import { defineComponent } from "vue";
import "../scss/bootstrap5.scss"; import "@scss/common/bootstrap5.scss";
import "../scss/game_bg.scss"; import "@scss/game_bg.scss";
import TopBackBar from "./components/TopBackBar.vue"; import TopBackBar from "@/components/TopBackBar.vue";
import _ from "lodash"; import _ from "lodash";
import { InvalidResponse } from "./defs"; import { InvalidResponse } from "@/defs";
import axios from "axios"; import axios from "axios";
import NumberInputWithInfo from "./components/NumberInputWithInfo.vue"; import NumberInputWithInfo from "@/components/NumberInputWithInfo.vue";
type InheritanceType = type InheritanceType =
| "previous" | "previous"
+5 -7
View File
@@ -1,13 +1,11 @@
import $ from "jquery"; import $ from "jquery";
import Popper from 'popper.js';
(window as unknown as {Popper:unknown}).Popper = Popper;//XXX: 왜 popper를 이렇게 불러야 하는가?
import 'bootstrap'; import 'bootstrap';
import { setAxiosXMLHttpRequest } from "./util/setAxiosXMLHttpRequest"; import { setAxiosXMLHttpRequest } from "@util/setAxiosXMLHttpRequest";
import axios from "axios"; import axios from "axios";
import { InvalidResponse } from "./defs"; import { InvalidResponse } from "@/defs";
import { JQValidateForm, NamedRules } from "./util/jqValidateForm"; import { JQValidateForm, NamedRules } from "@util/jqValidateForm";
import { convertFormData } from "./util/convertFormData"; import { convertFormData } from "@util/convertFormData";
import { exportWindow } from "./util/exportWindow"; import { exportWindow } from "@util/exportWindow";
type ResponseScenarioItem = { type ResponseScenarioItem = {
year?: number, year?: number,
+4 -4
View File
@@ -1,10 +1,10 @@
import axios from 'axios'; import axios from 'axios';
import jQuery from 'jquery'; import jQuery from 'jquery';
import { JQValidateForm, NamedRules } from './util/jqValidateForm'; import { JQValidateForm, NamedRules } from '@util/jqValidateForm';
import { convertFormData } from './util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { InvalidResponse } from './defs'; import { InvalidResponse } from '@/defs';
import { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
jQuery(async function ($) { jQuery(async function ($) {
setAxiosXMLHttpRequest(); setAxiosXMLHttpRequest();
+9 -11
View File
@@ -1,21 +1,19 @@
import $ from 'jquery'; import $ from 'jquery';
import Popper from 'popper.js';
exportWindow(Popper, 'Popper');//XXX: 왜 popper를 이렇게 불러야 하는가?
import 'bootstrap'; import 'bootstrap';
import { activateFlip, initTooltip } from './common_legacy'; import { activateFlip, initTooltip } from '@/common_legacy';
import './msg.ts'; import '@/msg.ts';
import './map.ts'; import '@/map.ts';
import { exportWindow } from './util/exportWindow'; import { exportWindow } from '@util/exportWindow';
import { scrollHardTo } from './util/scrollHardTo'; import { scrollHardTo } from '@util/scrollHardTo';
exportWindow(scrollHardTo, 'scrollHardTo'); exportWindow(scrollHardTo, 'scrollHardTo');
exportWindow($, '$'); exportWindow($, '$');
import '../scss/main.scss'; import '@scss/main.scss';
import { unwrap } from './util/unwrap'; import { unwrap } from '@util/unwrap';
import { auto500px } from './util/auto500px'; import { auto500px } from '@util/auto500px';
import { htmlReady } from './util/htmlReady'; import { htmlReady } from '@util/htmlReady';
$(function ($) { $(function ($) {
$('.refreshPage').click(function () { $('.refreshPage').click(function () {
+5 -5
View File
@@ -1,11 +1,11 @@
import axios from 'axios'; import axios from 'axios';
import $ from 'jquery'; import $ from 'jquery';
import { extend, isNumber } from 'lodash'; import { extend, isNumber } from 'lodash';
import { convColorValue, convertDictById, stringFormat } from './common_legacy'; import { convColorValue, convertDictById, stringFormat } from '@/common_legacy';
import { InvalidResponse } from './defs'; import { InvalidResponse } from '@/defs';
import { unwrap } from "./util/unwrap"; import { unwrap } from "@util/unwrap";
import { convertFormData } from './util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { exportWindow } from './util/exportWindow'; import { exportWindow } from '@util/exportWindow';
declare const serverNick: string; declare const serverNick: string;
declare const serverID: string; declare const serverID: string;
+12 -12
View File
@@ -1,20 +1,20 @@
import $ from 'jquery'; import $ from 'jquery';
import { InvalidResponse } from './defs'; import { InvalidResponse } from '@/defs';
import { getDateTimeNow } from './util/getDateTimeNow'; import { getDateTimeNow } from '@util/getDateTimeNow';
import axios from 'axios'; import axios from 'axios';
import { convertFormData } from './util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { isBrightColor } from "./util/isBrightColor"; import { isBrightColor } from "@util/isBrightColor";
import { unwrap } from './util/unwrap'; import { unwrap } from '@util/unwrap';
import _ from 'lodash'; import _ from 'lodash';
import { addMinutes } from 'date-fns'; import { addMinutes } from 'date-fns';
import { parseTime } from './util/parseTime'; import { parseTime } from '@util/parseTime';
import { formatTime } from './util/formatTime'; import { formatTime } from '@util/formatTime';
import { TemplateEngine } from './util/TemplateEngine'; import { TemplateEngine } from '@util/TemplateEngine';
import { isNotNull } from './util/isNotNull'; import { isNotNull } from '@util/isNotNull';
import { unwrap_any } from './util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
import { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { exportWindow } from './util/exportWindow'; import { exportWindow } from '@util/exportWindow';
const messageTemplate = `<div const messageTemplate = `<div
class="msg_plate msg_plate_<%msgType%> msg_plate_<%nationType%>" class="msg_plate msg_plate_<%msgType%> msg_plate_<%nationType%>"
+5 -5
View File
@@ -1,10 +1,10 @@
import axios from 'axios'; import axios from 'axios';
import $ from 'jquery'; import $ from 'jquery';
import { InvalidResponse } from './defs'; import { InvalidResponse } from '@/defs';
import { convertFormData } from './util/convertFormData'; import { convertFormData } from '@util/convertFormData';
import { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest'; import { setAxiosXMLHttpRequest } from '@util/setAxiosXMLHttpRequest';
import { unwrap } from './util/unwrap'; import { unwrap } from '@util/unwrap';
import { unwrap_any } from './util/unwrap_any'; import { unwrap_any } from '@util/unwrap_any';
type LogResponse = { type LogResponse = {

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