새 리셋 툴 준비

This commit is contained in:
2018-03-26 00:27:51 +09:00
parent bc2c480986
commit a2100f503f
5 changed files with 311 additions and 12 deletions
+225 -9
View File
@@ -1,4 +1,6 @@
<?php
namespace sammo;
include "lib.php";
include "func.php";
@@ -17,17 +19,231 @@ if(Session::getUserGrade(true) < 5){
<script src="../e_lib/bootstrap.bundle.min.js"></script>
<script src="../e_lib/jquery.validate.min.js"></script>
<script src="js/common.js"></script>
<script src="js/base_map.js"></script>
<script src="js/map.js"></script>
<script src="js/install.js"></script>
<link href="css/normalize.css" rel="stylesheet">
<link type="text/css" rel="stylesheet" href="../e_lib/bootstrap.min.css">
<link href="css/map.css" rel="stylesheet">
<link href="css/install.css" rel="stylesheet">
<link rel="stylesheet" href="css/normalize.css" >
<link rel="stylesheet" href="../e_lib/bootstrap.min.css">
<link rel="stylesheet" href="css/install.css" >
</head>
<body>
<div id="scenario_map" style="width:698px;height:520px;">
<?=getMapHtml()?>
</div>
<div class="container">
<h1 class="row justify-content-md-center">삼국지 모의전투 HiD 리셋</h1>
<div class="row justify-content-md-center">
<div class="col col-12 col-md-10 col-lg-7">
<div class="card" id="db_form_card" style="display:none">
<h3 class="card-header">
설치(DB 설정)
</h3>
<div class="card-body">
<form id="db_form" method="post" action="#">
<div class="form-group row">
<label for="db_host" class="col-sm-3 col-form-label">DB호스트</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="db_host" id="db_host" placeholder="호스트" value="localhost" />
</div>
</div>
<div class="form-group row">
<label for="db_port" class="col-sm-3 col-form-label">DB포트</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="db_port" id="db_port" placeholder="접속 포트" value="3306" />
</div>
</div>
<div class="form-group row">
<label for="db_id" class="col-sm-3 col-form-label">DB계정명</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="db_id" id="db_id" placeholder="DB계정"/>
</div>
</div>
<div class="form-group row">
<label for="db_pw" class="col-sm-3 col-form-label">DB비밀번호</label>
<div class="col-sm-9">
<input type="password" class="form-control" name="db_pw" id="db_pw" placeholder="DB비밀번호"/>
</div>
</div>
<div class="form-group row">
<label for="db_name" class="col-sm-3 col-form-label">DB명</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="db_name" id="db_name" placeholder="DB명(예:sammo_che)"/>
</div>
</div>
<div class="form-group row">
<div class="col-sm-3"></div>
<div class="col-sm-9">
<button type="submit" class="btn btn-primary btn-lg btn-block login-button">설정 파일 생성</button>
</div>
</div>
</form>
</div>
</div><!--DB 폼 끝-->
<div class="card" id="game_form_card">
<h3 class="card-header">
설치(환경 설정)
<!--턴시간, 시간동기화, 시나리오, 상성, 확장장수, NPC유저, 이미지설정-->
</h3>
<div class="card-body">
<form id="game_form" method="post" action="#">
<div class="form-group row">
<label for="turnterm" class="col-sm-3 col-form-label">턴 시간(분)</label>
<div class="col-sm-9">
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary">
<input type="radio" name="turnterm" value="120">120
</label>
<label class="btn btn-secondary active">
<input type="radio" name="turnterm" value="60" checked>60
</label>
<label class="btn btn-secondary">
<input type="radio" name="turnterm" value="30">30
</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 class="form-group row">
<label for="sync" class="col-sm-3 col-form-label">시간 동기화</label>
<div class="col-sm-9" style="display: inline-flex;">
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary active">
<input type="radio" name="sync" value="1" checked>Y
</label>
<label class="btn btn-secondary">
<input type="radio" name="sync" value="0">N
</label>
</div>
<small class="text-muted">
시간 단위에 맞게 년/월이 설정됩니다. <br>예: 120분(오전1시=1월), 60분(오전/오후 1시=1월)
</small>
</div>
</div>
<div class="form-group row">
<label for="confirm_password" class="col-sm-3 col-form-label">시나리오 선택</label>
<div class="col-sm-9">
<select class="form-control" size="1">
<optgroup label="공백지">
<option value="0">공백지</option>
</optgroup>
<optgroup label="역사모드">
<option value="1">황건적의 난</option>
</optgroup>
</select>
<table class="table table-sm table-striped">
<colgroup><col style="width:100px;"><col></colgroup>
<thead><tr><th>설정</th><th>값</th></thead>
<tbody>
<tr><th>일자</th><td ><span id="scenario_begin">180년 1월</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>
<tfoot>
<tr><td colspan="2">
</td></tr>
</tfoot>
</table>
</div>
</div>
<div class="form-group row">
<label for="fiction" class="col-sm-3 col-form-label">NPC 상성</label>
<div class="col-sm-9">
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary active">
<input type="radio" name="fiction" value="0" checked>연의
</label>
<label class="btn btn-secondary">
<input type="radio" name="fiction" value="1">가상
</label>
</div>
</div>
</div>
<div class="form-group row">
<label for="extend" class="col-sm-3 col-form-label">확장 NPC</label>
<div class="col-sm-9">
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary active">
<input type="radio" name="extend" value="1" checked>포함
</label>
<label class="btn btn-secondary">
<input type="radio" name="extend" value="0">미포함
</label>
</div>
</div>
</div>
<div class="form-group row">
<label for="npcmode" class="col-sm-3 col-form-label">NPC 빙의</label>
<div class="col-sm-9">
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary">
<input type="radio" name="npcmode" value="1">가능
</label>
<label class="btn btn-secondary active">
<input type="radio" name="npcmode" value="0" checked>불가
</label>
</div>
</div>
</div>
<div class="form-group row">
<label for="img" class="col-sm-3 col-form-label">이미지 표기</label>
<div class="col-sm-9">
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary">
<input type="radio" name="img" value="0">안함
</label>
<label class="btn btn-secondary">
<input type="radio" name="img" value="1">전콘
</label>
<label class="btn btn-secondary active">
<input type="radio" name="img" value="2" checked>전콘, 병종
</label>
<label class="btn btn-secondary">
<input type="radio" name="img" value="3">전콘, 병종, NPC
</label>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-3"></div>
<div class="col-sm-9">
<button type="submit" class="btn btn-primary btn-lg btn-block login-button">리셋 개시</button>
</div>
</div>
</form>
</div>
</div><!--ADMIN 폼 끝-->
<!-- TODO: conf_kakao.php -->
</div>
</div>
</div>
</body>
</html>
-1
View File
@@ -14,7 +14,6 @@ if($session->userGrade < 5){
]);
}
$scenarioIdx = Util::toInt(Util::array_get($_GET['scenarioIdx']));
if($scenarioIdx === null){
Json::die([
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace sammo;
require "lib.php";
if(Session::getUserGrade() < 5){
Json::die([
'result'=>false,
'reason'=>'관리자가 아닙니다.'
]);
}
$scenarioIdx = Util::toInt(Util::array_get($_GET['scenarioIdx']));
if ($scenarioIdx !== null) {
//TODO: preview 지도 출력
Json::die([
'result'=>false,
'reason'=>'NYI'
]);
}
Json::die([
'result'=>false,
'reason'=>'NYI'
]);
+15 -2
View File
@@ -1,8 +1,10 @@
/*
function showCityGeneral(cityIdx){
}
*/
/*
function loadScenarioPreview(scenarioIdx){
$(function(){
reloadWorldMap({
@@ -15,7 +17,18 @@ function loadScenarioPreview(scenarioIdx){
});
});
}
*/
function loadScenarios(){
$.ajax({
method:'post',
url:'j_load_scenarios.php',
dataType:'json'
}).then(function(result){
});
}
$(function(){
loadScenarioPreview(8);
loadScenarios();
//loadScenarioPreview(8);
})
+44
View File
@@ -0,0 +1,44 @@
<?php
namespace sammo;
class Scenario{
const SCENARIO_PATH = __dir__.'/../scenario';
private $scenarioIdx;
private $scenarioPath;
private $data;
public function __construct(int $scenarioIdx){
$scenarioPath = SCENARIO_PATH."/scenario_{$scenarioIdx}.json";
$this->scenarioIdx = $scenarioIdx;
$this->scenarioPath = $scenarioPath;
$this->data = Json::decode(file_get_contents($scenarioPath));
}
public function getScenarioIdx(){
return $this->scenarioIdx;
}
/**
* @return \sammo\Scenario[]
*/
public static function getAllScenarios(){
$result = [];
foreach(glob(SCENARIO_PATH.'/scenario_*.json') as $scenarioPath){
$scenarioName = pathinfo(basename($scenarioName), PATHINFO_FILENAME);
$scenarioIdx = Util::array_last(explode('_', $scenarioName));
$scenarioIdx = Util::toInt($scenarioIdx);
if($scenarioIdx === null){
continue;
}
$result[$scenarioIdx] = new Scenario($scenarioIdx);
}
return $result;
}
}