8) { $type = 7; } //로그인 검사 $session = Session::requireGameLogin()->setReadOnly(); $userID = Session::getUserID(); $db = DB::db(); $gameStor = KVStorage::getStorage($db, 'game_env'); increaseRefresh("암행부", 1); $me = $db->queryFirstRow('SELECT no,nation,officer_level,con,turntime,belong,permission,penalty from general where owner=%i', $userID); $nationLevel = $db->queryFirstField('SELECT level FROM nation WHERE nation=%i', $me['nation']); $con = checkLimit($me['con']); if ($con >= 2) { printLimitMsg($me['turntime']); exit(); } $permission = checkSecretPermission($me); if ($permission < 0) { echo '국가에 소속되어있지 않습니다.'; die(); } else if ($permission < 1) { echo "권한이 부족합니다. 수뇌부가 아니거나 사관년도가 부족합니다."; die(); } $sel = []; $sel[$type] = "selected"; $templates = new \League\Plates\Engine('templates'); ?> <?= UniqueConst::$serverName ?>: 암행부
암 행 부
정렬순서 :
queryAllLists('SELECT troop_leader, name FROM troop WHERE nation=%i', $me['nation']) as [$troopID, $tName]) { $troopName[$troopID] = $tName; } $orderSQL = ''; switch ($type) { case 1: $orderSQL = "order by gold desc"; break; case 2: $orderSQL = "order by rice desc"; break; case 3: $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( 'SELECT npc,defence_train,no,officer_level,troop,city,injury,leadership,strength,intel,experience,name,gold,rice,crewtype,crew,train,atmos,killturn,turntime,nation from general WHERE nation = %i %l', $me['nation'], $orderSQL ); $generalTurnList = []; 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; } $genCntEff = 0; foreach ($generals as &$general) { $general['cityText'] = CityConst::byID($general['city'])->name; $general['troopText'] = $troopName[$general['troop']] ?? '-'; if ($general['npc'] != 5) { $genCntEff += 1; } $lbonus = calcLeadershipBonus($general['officer_level'], $nationLevel); if ($lbonus > 0) { $lbonusText = "+{$lbonus}"; } else { $lbonusText = ""; } $general['lbonus'] = $lbonus; $general['lbonusText'] = $lbonusText; if ($general['injury'] > 0) { $leadership = intdiv($general['leadership'] * (100 - $general['injury']), 100); $strength = intdiv($general['strength'] * (100 - $general['injury']), 100); $intel = intdiv($general['intel'] * (100 - $general['injury']), 100); $leadership = "{$leadership}{$lbonusText}"; $strength = "{$strength}"; $intel = "{$intel}"; } else { $leadership = "{$general['leadership']}{$lbonusText}"; $strength = "{$general['strength']}"; $intel = "{$general['intel']}"; } $general['leadershipText'] = $leadership; $general['strengthText'] = $strength; $general['intelText'] = $intel; $general['expLevelText'] = getExpLevel($general['experience']); $general['nameText'] = formatName($general['name'], $general['npc']); $general['modeText'] = formatDefenceTrain($general['defence_train']); $general['crewtypeText'] = GameUnitConst::byId($general['crewtype'])->name ?? '-'; if ($general['npc'] < 2) { $turntext = []; foreach ($generalTurnList[$general['no']] as $turnRawIdx => $turn) { $turn = StringUtil::subStringForWidth($turn, 0, 41); $turnIdx = $turnRawIdx + 1; $turntext[] = " $turnIdx : $turn"; } $general['turntext'] = join("
\n", $turntext); } } unset($general); $genCnt = countPureGeneralFromRawList($generals); $totalGold = 0; $totalRice = 0; $crew90 = 0; $gen90 = 0; $crew80 = 0; $gen80 = 0; $crew60 = 0; $gen60 = 0; $crewTotal = 0; //$genTotal = 0; foreach ($generals as $general) { if ($general['npc'] == 5) { continue; } $totalGold += $general['gold']; $totalRice += $general['rice']; $crewTotal += $general['crew']; if ($general['crew'] == 0) { continue; } if ($general['train'] >= 90 && $general['atmos'] >= 90) { $crew90 += $general['crew']; $gen90 += 1; } if ($general['train'] >= 80 && $general['atmos'] >= 80) { $crew80 += $general['crew']; $gen80 += 1; } if ($general['train'] >= 60 && $general['atmos'] >= 60) { $crew60 += $general['crew']; $gen60 += 1; } } ?>
전체 금 전체 쌀 평균 금 평균 쌀
전체 병력/장수 / 훈사 90 병력/장수 / 훈사 80 병력/장수 / 훈사 60 병력/장수 /
render('generalList', ['generals' => $generals]) ?>