94f3906949...06f86c6c27 반영, 시즌 값, 부대정보, 왕조일람

This commit is contained in:
2019-07-20 15:48:30 +09:00
parent 72682a3dd1
commit b180fa901d
8 changed files with 91 additions and 23 deletions
+11 -1
View File
@@ -98,11 +98,21 @@ foreach($emperiors as $emperior){
<td align=center><?=$emperior['l12name']?></td> <td align=center><?=$emperior['l12name']?></td>
<td id=bg1 align=center>승 상</td> <td id=bg1 align=center>승 상</td>
<td align=center><?=$emperior['l11name']?></td> <td align=center><?=$emperior['l11name']?></td>
<td id=bg1 align=center> 장 군</td> <td id=bg1 align=center>표 기 장 군</td>
<td align=center><?=$emperior['l10name']?></td> <td align=center><?=$emperior['l10name']?></td>
<td id=bg1 align=center>사 공</td> <td id=bg1 align=center>사 공</td>
<td align=center><?=$emperior['l9name']?></td> <td align=center><?=$emperior['l9name']?></td>
</tr> </tr>
<tr>
<td id=bg1 align=center>거 기 장 군</td>
<td align=center><?=$emperior['l8name']?></td>
<td id=bg1 align=center>태 위</td>
<td align=center><?=$emperior['l7name']?></td>
<td id=bg1 align=center>위 장 군</td>
<td align=center><?=$emperior['l6name']?></td>
<td id=bg1 align=center>사 도</td>
<td align=center><?=$emperior['l5name']?></td>
</tr>
</table> </table>
+25 -8
View File
@@ -5,26 +5,36 @@ include "lib.php";
include "func.php"; include "func.php";
$session = Session::getInstance()->setReadOnly(); $session = Session::getInstance()->setReadOnly();
$seasonIdx = Util::getReq('seasonIdx', 'int', UniqueConst::$seasonIdx);
$scenarioIdx = Util::getReq('scenarioIdx', 'int', null); $scenarioIdx = Util::getReq('scenarioIdx', 'int', null);
$db = DB::db(); $db = DB::db();
increaseRefresh("명예의전당", 1); increaseRefresh("명예의전당", 1);
$scenarioList = (function(){
$db = DB::db();
$scenarioList= []; $scenarioList= [];
foreach($db->query('SELECT scenario_name as name, count(scenario) as cnt, scenario from ng_games group by scenario order by scenario asc') as $scenarioInfo){ foreach($db->query('SELECT season, scenario_name as name, count(scenario) as cnt, scenario from ng_games group by season, scenario order by season desc, scenario asc') as $scenarioInfo){
$scenarioList[$scenarioInfo['scenario']] = $scenarioInfo; $seasonIdx = $scenarioInfo['season'];
$scenarioIdx = $scenarioInfo['scenario'];
if(!key_exists($seasonIdx, $scenarioList)){
$scenarioList[$seasonIdx] = [];
} }
$scenarioList[$seasonIdx][$scenarioIdx] = $scenarioInfo;
}
return $scenarioList;
})();
if($scenarioIdx !== null || key_exists($scenarioIdx, $scenarioList)){ if($scenarioIdx !== null || key_exists($scenarioIdx, $scenarioList)){
$searchScenarioName = $scenarioList[$scenarioIdx]['name']; $searchScenarioName = $scenarioList[$seasonIdx][$scenarioIdx]['name'];
$searchFilter = $db->sqleval('scenario = %i', $scenarioIdx); $searchFilter = $db->sqleval('season = %i AND scenario = %i', $seasonIdx, $scenarioIdx);
} }
else{ else{
$searchScenarioName = '* 모두 *'; $searchScenarioName = '* 모두 *';
$searchFilter = $db->sqleval(true); $searchFilter = $db->sqleval('season = %i', $seasonIdx);
} }
?> ?>
@@ -53,13 +63,20 @@ else{
<tr><td>명 예 의 전 당<br><?=closeButton()?></td></tr> <tr><td>명 예 의 전 당<br><?=closeButton()?></td></tr>
<tr><td> <tr><td>
시나리오 검색 : <select id="by_scenario" name="by_scenario"> 시나리오 검색 : <select id="by_scenario" name="by_scenario">
<option value="" <?=$scenarioIdx?"selected='selected'":''?>>* 종합 *</option> <?php foreach($scenarioList as $iterSeasonIdx=>$subScenarioList): ?>
<?php foreach($scenarioList as $info): ?>
<option <option
data-season="<?=$iterSeasonIdx?>"
value=""
<?=($iterSeasonIdx == $seasonIdx && $scenarioIdx === null)?"selected='selected'":''?>
>* 시즌 : <?=$iterSeasonIdx?> 종합 *</option>
<?php foreach($subScenarioList as $info): ?>
<option
data-season="<?=$iterSeasonIdx?>"
value="<?=$info['scenario']?>" value="<?=$info['scenario']?>"
<?=($info['scenario']===$scenarioIdx)?"selected='selected'":''?> <?=($iterSeasonIdx == $seasonIdx && $info['scenario']===$scenarioIdx)?"selected='selected'":''?>
><?=$info['name']?>(<?=$info['cnt']?>회)</option> ><?=$info['name']?>(<?=$info['cnt']?>회)</option>
<?php endforeach; ?> <?php endforeach; ?>
<?php endforeach; ?>
?> ?>
</select> </select>
</td></tr> </td></tr>
+1
View File
@@ -4,6 +4,7 @@ namespace sammo;
class UniqueConst{ class UniqueConst{
public static $serverID = '_tK_serverID_'; public static $serverID = '_tK_serverID_';
public static $serverName = '_tK_serverName_'; public static $serverName = '_tK_serverName_';
public static $seasonIdx = '_tK_seasonIdx_';
private function __construct(){} private function __construct(){}
+20 -2
View File
@@ -654,7 +654,24 @@ function generalInfo($no) {
$lbonus = ""; $lbonus = "";
} }
$troopName = getTroopName($general['troop'])??'-'; if($general['troop'] == 0){
$troopInfo = '-';
}
else{
$troopCity = $db->queryFirstField('SELECT city FROM general WHERE no=%i', $general['troop']);
$troopTurn = $db->queryFirstField('SELECT `action` FROM general_turn WHERE general_id = %i AND turn_idx = 0', $general['troop']);
$troopInfo = $db->queryFirstField('SELECT name FROM troop WHERE troop_leader = %i', $general['troop']);
$troopInfo = $troop['name'];
if($troopTurn == 'che_집합'){
$troopInfo = "<strike style='color:gray;'>{$troopInfo}</strike>";
}
else if($troopCity != $general['city']){
$troopCityName = CityConst::byID($troopCity)->name;
$troopInfo = "<span style='color:orange;'>{$troopInfo}({$troopCityName})</span>";
}
}
$level = getLevel($general['level'], $nation['level']); $level = getLevel($general['level'], $nation['level']);
if($general['level'] == 2) { if($general['level'] == 2) {
@@ -796,7 +813,7 @@ function generalInfo($no) {
</tr> </tr>
<tr height=20> <tr height=20>
<td style='text-align:center;' class='bg1'><b>부대</b></td> <td style='text-align:center;' class='bg1'><b>부대</b></td>
<td style='text-align:center;' colspan=3>{$troopName}</td> <td style='text-align:center;' colspan=3>{$troopInfo}</td>
<td style='text-align:center;' class='bg1'><b>벌점</b></td> <td style='text-align:center;' class='bg1'><b>벌점</b></td>
<td style='text-align:center;' colspan=5>".getConnect($general['connect'])." {$general['connect']}({$general['con']})</td> <td style='text-align:center;' colspan=5>".getConnect($general['connect'])." {$general['connect']}({$general['con']})</td>
</tr> </tr>
@@ -1473,6 +1490,7 @@ function CheckHall($no) {
$db->insertIgnore('ng_hall', [ $db->insertIgnore('ng_hall', [
'server_id'=>UniqueConst::$serverID, 'server_id'=>UniqueConst::$serverID,
'season'=>UniqueConst::$seasonIdx,
'scenario'=>$scenarioIdx, 'scenario'=>$scenarioIdx,
'general_no'=>$no, 'general_no'=>$no,
'type'=>$idx, 'type'=>$idx,
+1 -1
View File
@@ -43,7 +43,7 @@ foreach(range(1, GameConst::$maxChiefTurn - 1) as $turnIdx){
$turnText = join("\n", $turnList); $turnText = join("\n", $turnList);
return " return "
<select id='chiefTurnSelector' name=turn[] size=3 multiple> <select id='chiefTurnSelector' name=turn[] size=6 multiple>
{$turnText} {$turnText}
</select> </select>
"; ";
+6 -3
View File
@@ -1,7 +1,10 @@
jQuery(function($){ jQuery(function($){
$('#by_scenario').change(function(){ $('#by_scenario').change(function(){
var scenarioIdx = $(this).val(); var $this = $(this);
$.redirect('a_hallOfFame.php', {scenarioIdx:scenarioIdx}, 'get'); var scenarioIdx = $this.val();
var seasonIdx = $(this).find('option:selected').data('season');
$.redirect('a_hallOfFame.php', {scenarioIdx:scenarioIdx, seasonIdx:seasonIdx}, 'get');
}) })
//$.redirect("processing.php",{ commandtype: commandtype, turn: turn}, 'post');
}); });
+19 -2
View File
@@ -81,11 +81,23 @@ class ResetHelper{
mkdir($servRoot.'/logs/'.$serverID, 0755); mkdir($servRoot.'/logs/'.$serverID, 0755);
mkdir($servRoot.'/data/'.$serverID, 0755); mkdir($servRoot.'/data/'.$serverID, 0755);
$seasonIdx = 1;
if($db->queryFirstField('SHOW TABLES LIKE %s', 'storage') !== null){
$gameStor = KVStorage::getStorage($db, 'game_env');
$nextSeasonIdx = $gameStor->next_season_idx;
if($nextSeasonIdx !== null){
$seasonIdx = $nextSeasonIdx;
}
$gameStor->resetCache();
}
$result = Util::generateFileUsingSimpleTemplate( $result = Util::generateFileUsingSimpleTemplate(
$servRoot.'/d_setting/UniqueConst.orig.php', $servRoot.'/d_setting/UniqueConst.orig.php',
$servRoot.'/d_setting/UniqueConst.php',[ $servRoot.'/d_setting/UniqueConst.php',[
'serverID'=>$serverID, 'serverID'=>$serverID,
'serverName'=>AppConf::getList()[$prefix]->getKorName(), 'serverName'=>AppConf::getList()[$prefix]->getKorName(),
'seasonIdx'=>$seasonIdx,
], true ], true
); );
@@ -112,12 +124,15 @@ class ResetHelper{
} }
} }
(KVStorage::getStorage($db, 'game_env'))->resetValues(); $gameStor = KVStorage::getStorage($db, 'game_env');
$gameStor->resetValues();
$gameStor->next_season_idx = $seasonIdx;
(KVStorage::getStorage($db, 'nation_env'))->resetValues(); (KVStorage::getStorage($db, 'nation_env'))->resetValues();
return [ return [
'result'=>true, 'result'=>true,
'serverID'=>$serverID 'serverID'=>$serverID,
'seasonIdx'=>$seasonIdx
]; ];
} }
@@ -154,6 +169,7 @@ class ResetHelper{
} }
$serverID = $clearResult['serverID']; $serverID = $clearResult['serverID'];
$seasonIdx = $clearResult['seasonIdx'];
$scenarioObj = new Scenario($scenario, false); $scenarioObj = new Scenario($scenario, false);
$scenarioObj->buildConf(); $scenarioObj->buildConf();
@@ -220,6 +236,7 @@ class ResetHelper{
'init_year'=> $year, 'init_year'=> $year,
'init_month'=>$month, 'init_month'=>$month,
'map_theme' => $scenarioObj->getMapTheme(), 'map_theme' => $scenarioObj->getMapTheme(),
'season'=>$seasonIdx,
'msg'=>'공지사항',//TODO:공지사항 'msg'=>'공지사항',//TODO:공지사항
'maxgeneral'=>GameConst::$defaultMaxGeneral, 'maxgeneral'=>GameConst::$defaultMaxGeneral,
'maxnation'=>GameConst::$defaultMaxNation, 'maxnation'=>GameConst::$defaultMaxNation,
+3 -1
View File
@@ -332,6 +332,7 @@ ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `ng_hall` ( CREATE TABLE IF NOT EXISTS `ng_hall` (
`id` INT(11) NOT NULL AUTO_INCREMENT, `id` INT(11) NOT NULL AUTO_INCREMENT,
`server_id` CHAR(20) NOT NULL, `server_id` CHAR(20) NOT NULL,
`season` INT(11) NOT NULL,
`scenario` INT(11) NOT NULL, `scenario` INT(11) NOT NULL,
`general_no` INT(11) NOT NULL, `general_no` INT(11) NOT NULL,
`type` INT(11) NOT NULL, `type` INT(11) NOT NULL,
@@ -342,7 +343,7 @@ CREATE TABLE IF NOT EXISTS `ng_hall` (
UNIQUE INDEX `server_general` (`server_id`, `type`, `general_no`), UNIQUE INDEX `server_general` (`server_id`, `type`, `general_no`),
UNIQUE INDEX `owner` (`owner`, `server_id`, `type`), UNIQUE INDEX `owner` (`owner`, `server_id`, `type`),
INDEX `server_show` (`server_id`, `type`, `value`), INDEX `server_show` (`server_id`, `type`, `value`),
INDEX `scenario` (`scenario`, `type`, `value`) INDEX `scenario` (`season`, `scenario`, `type`, `value`)
) )
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPRESSED; ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPRESSED;
@@ -357,6 +358,7 @@ CREATE TABLE IF NOT EXISTS `ng_games` (
`date` DATETIME NOT NULL, `date` DATETIME NOT NULL,
`winner_nation` INT(11) NULL DEFAULT NULL, `winner_nation` INT(11) NULL DEFAULT NULL,
`map` VARCHAR(50) NULL DEFAULT NULL, `map` VARCHAR(50) NULL DEFAULT NULL,
`season` INT(11) NOT NULL,
`scenario` INT(11) NOT NULL, `scenario` INT(11) NOT NULL,
`scenario_name` TEXT NOT NULL, `scenario_name` TEXT NOT NULL,
`env` TEXT NOT NULL COMMENT 'json', `env` TEXT NOT NULL COMMENT 'json',