From 380e08d89f674513f724fd41f7c4c53c6cf988a8 Mon Sep 17 00:00:00 2001 From: hide_d Date: Wed, 13 Jun 2018 04:17:18 +0900 Subject: [PATCH] =?UTF-8?q?=EB=9E=9C=EC=9E=84=EC=8B=9C=20=EC=9E=A5?= =?UTF-8?q?=EC=88=98=EC=88=98=EB=A5=BC=20=EC=85=80=20=EB=95=8C=20=EC=9C=A0?= =?UTF-8?q?=EC=A0=80=EC=9E=A5,=20=EB=B9=99=EC=9D=98=EC=9E=A5,=20n=EC=9E=A5?= =?UTF-8?q?=EB=A7=8C=20=EC=B9=B4=EC=9A=B4=ED=8A=B8=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/func_process_personnel.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/hwe/func_process_personnel.php b/hwe/func_process_personnel.php index ef3bf04a..a6b74673 100644 --- a/hwe/func_process_personnel.php +++ b/hwe/func_process_personnel.php @@ -116,6 +116,13 @@ function process_25(&$general) { } else if($where >= 98) { //랜임 + $generals = []; + foreach($db->queryAllLists('SELECT count(no), nation FROM general WHERE npc <= 2 AND nation > 0 GROUP BY nation') as list($cnt, $nation)){ + $generals[$nation] = $cnt; + } + + $allGen = array_sum($generals); + $nations = $db->query( 'SELECT nation.`name` as `name`,nation.nation as nation,scout,nation.`level` as `level`,gennum,`injury` FROM nation join general on general.nation = nation.nation and general.level = 12 WHERE nation.nation not in %li and gennum < %i and scout = 0', $joinedNations, @@ -123,10 +130,6 @@ function process_25(&$general) { ); shuffle($nations); - $allGen = array_sum(array_map(function($item) { - return $item['gennum']; - }, $nations)); - $randVals = []; foreach($nations as $idx=>$testNation){ // 임관금지없음 국가, 방랑군 제외 @@ -139,7 +142,7 @@ function process_25(&$general) { $score *= sqrt((100-max(30, $testNation['injury']))/100); } - $score *= sqrt($allGen/$testNation['gennum']); + $score *= sqrt($allGen/$generals[$testNation['nation']]); $randVals[$idx] = $score; }