setReadOnly(); $userID = Session::getUserID(); $userGrade = Session::getUserGrade(); $db = DB::db(); $connect=$db->get(); increaseRefresh("현재도시", 1); $query = "select no,nation,officer_level,city from general where owner='{$userID}'"; $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $me = MYDB_fetch_array($result); $myNation = $db->queryFirstRow('SELECT nation,level,spy FROM nation WHERE nation=%i', $me['nation']); $templates = new \League\Plates\Engine('templates'); ?> <?=UniqueConst::$serverName?>: 도시정보
도 시 정 보
도시선택 :

명령 화면에서 도시를 클릭하셔도 됩니다.


"; unset($city); // 첩보된 도시까지만 허용 if($valid == 0 && $userGrade < 5) { $citylist = $me['city']; } $city = $db->queryFirstRow('SELECT * FROM city WHERE city=%i', $citylist); $cityNation = getNationStaticInfo($city['nation']); //태수, 군사, 종사 $officer = [ 4=>['name'=>'-', 'npc'=>0], 3=>['name'=>'-', 'npc'=>0], 2=>['name'=>'-', 'npc'=>0] ]; foreach($db->query('SELECT `name`, npc, `officer_level` FROM general WHERE `officer_city` = %i', $city['city']) as $officerInfo){ $officer[$officerInfo['officer_level']] = $officerInfo; } if($city['trade'] === null) { $city['trade'] = "- "; } $dbColumns = General::mergeQueryColumn(['npc', 'defence_train', 'no', 'picture', 'imgsvr', 'name', 'injury', 'leadership', 'strength', 'intel', 'officer_level', 'nation', 'crewtype', 'crew', 'train', 'atmos'], 2)[0]; $generals = $db->query( 'SELECT %l from general where city=%i order by name', Util::formatListOfBackticks($dbColumns), $city['city'] ); $generalTurnList = []; if($generals){ 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', array_column($generals, 'no') ) as [$generalID, $turnIdx, $brief] ){ if(!key_exists($generalID, $generalTurnList)){ $generalTurnList[$generalID] = []; } $generalTurnList[$generalID][$turnIdx] = $brief; } } $nationname = []; $nationlevel = []; foreach(getAllNationStaticInfo() as $nation){ $nationname[$nation['nation']] = $nation['name']; $nationlevel[$nation['nation']] = $nation['level']; } //도시명 오 적군 0/0(0) 병장(총) 0/0(4) 90병장 0/0 60병장 0/0 수비○ 0/0 $generalsFormat = []; foreach($generals as $general){ $nationInfo = getNationStaticInfo($general['nation']); if($general['nation'] != 0 && $general['nation'] == $myNation['nation']){ $ourGeneral = true; } else{ $ourGeneral = false; } if($userGrade == 6){ $ourGeneral = true; } $isNPC = $general['npc']>1; $wounded = $general['injury']; $name = $general['name']; $nameText = formatName($name, $general['npc']); $leadership = $general['leadership']; $strength = $general['strength']; $intel = $general['intel']; $leadershipText = formatWounded($leadership, $general['injury']); $strengthText = formatWounded($strength, $general['injury']); $intelText = formatWounded($intel, $general['injury']); $officerLevel = $general['officer_level']; $officerLevelText = getOfficerLevelText($officerLevel); $leadershipBonus = calcLeadershipBonus($officerLevel, $nationInfo['level']); $leadershipBonusText = formatLeadershipBonus($leadershipBonus); if($ourGeneral){ $defenceTrain = $general['defence_train']; $defenceTrainText = formatDefenceTrain($defenceTrain); $crewType = $general['crewtype']; $crewTypeText = GameUnitConst::byId($crewType)->name; $crew = $general['crew']; $train = $general['train']; $atmos = $general['atmos']; } else{ $defenceTrain = 0; $defenceTrainText = ''; $crewType = 0; $crewTypeText = ''; $crew = $general['crew']; $train = -1; $atmos = -1; } $nation = $general['nation']; $nationName = $nationInfo['name']; if($ourGeneral && !$isNPC){ $turnText = []; $generalObj = new General($general, null, null, null, false); foreach($generalTurnList[$generalObj->getID()] as $turnRawIdx=>$turn){ $turnIdx = $turnRawIdx+1; $turnText[] = "{$turnIdx} : $turn"; } $turnText = join('
', $turnText); } else{ $turnText = ''; } $generalsFormat[] = [ 'ourGeneral'=>$ourGeneral, 'iconPath'=>GetImageURL($general['imgsvr']).'/'.$general['picture'], 'isNPC'=>$isNPC, 'wounded'=>$wounded, 'name'=>$name, 'nameText'=>$nameText, 'leadership'=>$leadership, 'leadershipText'=>$leadershipText, 'leadershipBonus'=>$leadershipBonus, 'leadershipBonusText'=>$leadershipBonusText, 'officerLevel'=>$officerLevel, 'officerLevelText'=>$officerLevelText, 'strength'=>$strength, 'strengthText'=>$strengthText, 'intel'=>$intel, 'intelText'=>$intelText, 'defenceTrain'=>$defenceTrain, 'defenceTrainText'=>$defenceTrainText, 'crewType'=>$crewType, 'crewTypeText'=>$crewTypeText, 'crew'=>$crew, 'train'=>$train, 'atmos'=>$atmos, 'nation'=>$nation, 'nationName'=>$nationName, 'turnText'=>$turnText ]; } $generalsName = array_map(function($gen){return $gen['name'];}, $generalsFormat); $enemyCrew = 0; $enemyCnt = 0; $enemyArmedCnt = 0; $crew90 = 0; $gen90 = 0; $crew80 = 0; $gen80 = 0; $crew60 = 0; $gen60 = 0; $crewDef = 0; $genDef = 0 ; $crewTotal = 0; $armedGenTotal = 0; $genTotal = 0; foreach($generalsFormat as $general){ if($general['nation'] == 0){ continue; } if($general['nation'] != $myNation['nation']){ $enemyCnt += 1; $enemyCrew += $general['crew']; if($general['crew'] > 0){ $enemyArmedCnt += 1; } continue; } $crewTotal += $general['crew']; $genTotal += 1; if($general['crew'] == 0){ continue; } $armedGenTotal += 1; $minTrain = min($general['train'], $general['atmos']); if($minTrain >= 90){ $crew90 += $general['crew']; $gen90 += 1; } $chkDef = false; if($minTrain >= 80){ $crew80 += $general['crew']; $gen80 += 1; } if($minTrain >= 60){ $crew60 += $general['crew']; $gen60 += 1; } if($minTrain >= $general['defenceTrain']){ $crewDef += $general['crew']; $genDef += 1; $chkDef = true; } } ?>
; background:'>【 | ; background:' class='center'>
주민 / 농업 / 상업 / 치안 / 수비 / 성벽 /
민심 시세 % 인구 % 태수 군사 종사
도시명 적군 /() 병장(총) /() 90병장 / 60병장 / 수비○ /
장수

render('cityGeneral', $general); } ?>
얼 굴 이 름 통솔 무력 지력 관 직 병 종 병 사 훈련 사기 명 령