From 0db2009e6565f46a1a65874a4aadad8173f016dd Mon Sep 17 00:00:00 2001 From: hide_d Date: Sun, 17 May 2020 13:47:28 +0900 Subject: [PATCH] =?UTF-8?q?NPC=20=EC=83=9D=EC=84=B1=EC=8B=9C=20=EC=8A=A4?= =?UTF-8?q?=EC=BC=80=EC=9D=BC=EB=9F=AC=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/sammo/Command/General/che_인재탐색.php | 17 +----------- hwe/sammo/Command/Nation/che_의병모집.php | 17 +----------- hwe/sammo/Event/Action/CreateManyNPC.php | 32 +++++++--------------- 3 files changed, 12 insertions(+), 54 deletions(-) diff --git a/hwe/sammo/Command/General/che_인재탐색.php b/hwe/sammo/Command/General/che_인재탐색.php index fef60f9b..66a9eb78 100644 --- a/hwe/sammo/Command/General/che_인재탐색.php +++ b/hwe/sammo/Command/General/che_인재탐색.php @@ -204,7 +204,7 @@ class che_인재탐색 extends Command\GeneralCommand } $avgGen = $db->queryFirstRow( - 'SELECT max(leadership+strength+intel) as stat_sum, avg(dedication) as ded,avg(experience) as exp, + 'SELECT avg(dedication) as ded,avg(experience) as exp, avg(dex1+dex2+dex3+dex4) as dex_t, avg(age) as age, avg(dex5) as dex5 from general where nation=%i', $nationID @@ -232,21 +232,6 @@ class che_인재탐색 extends Command\GeneralCommand $dexVal = [$dexTotal / 4, $dexTotal / 4, $dexTotal / 4, $dexTotal / 4]; } - // 국내 최고능치 기준으로 랜덤성 스케일링 - $maxLPI = $avgGen['stat_sum']; - if ($maxLPI > 210) { - $leadership *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9); - $strength *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9); - $intel *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9); - } elseif ($maxLPI > 180) { - $leadership *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95); - $strength *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95); - $intel *= $avgGen['stat_sum'] / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95); - } else { - $leadership *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1); - $strength *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1); - $intel *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1); - } $leadership = Util::round($leadership); $strength = Util::round($strength); $intel = Util::round($intel); diff --git a/hwe/sammo/Command/Nation/che_의병모집.php b/hwe/sammo/Command/Nation/che_의병모집.php index 8e64cafd..20a7a6c2 100644 --- a/hwe/sammo/Command/Nation/che_의병모집.php +++ b/hwe/sammo/Command/Nation/che_의병모집.php @@ -147,7 +147,7 @@ class che_의병모집 extends Command\NationCommand $pickTypeList = ['무' => 5, '지' => 5]; $avgGen = $db->queryFirstRow( - 'SELECT max(leadership+strength+intel) as stat_sum, avg(dedication) as ded,avg(experience) as exp, + 'SELECT avg(dedication) as ded,avg(experience) as exp, avg(dex1+dex2+dex3+dex4) as dex_t, avg(age) as age, avg(dex5) as dex5 from general where nation=%i', $nationID @@ -193,21 +193,6 @@ class che_의병모집 extends Command\NationCommand $dexVal = [$dexTotal / 4, $dexTotal / 4, $dexTotal / 4, $dexTotal / 4]; } - // 국내 최고능치 기준으로 랜덤성 스케일링 - $maxLPI = $avgGen['stat_sum']; - if ($maxLPI > 210) { - $leadership *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9); - $strength *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9); - $intel *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9); - } elseif ($maxLPI > 180) { - $leadership *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95); - $strength *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95); - $intel *= $avgGen['stat_sum'] / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95); - } else { - $leadership *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1); - $strength *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1); - $intel *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1); - } $leadership = Util::round($leadership); $strength = Util::round($strength); $intel = Util::round($intel); diff --git a/hwe/sammo/Event/Action/CreateManyNPC.php b/hwe/sammo/Event/Action/CreateManyNPC.php index b22a8795..433d8fe4 100644 --- a/hwe/sammo/Event/Action/CreateManyNPC.php +++ b/hwe/sammo/Event/Action/CreateManyNPC.php @@ -15,14 +15,17 @@ class CreateManyNPC extends \sammo\Event\Action{ $pickType = Util::choiceRandomUsingWeightPair($pickTypeList); - $mainStat = GameConst::$defaultStatMax - Util::randRangeInt(0, 10); - $otherStat = GameConst::$defaultStatMin + Util::randRangeInt(0, 5); - $subStat = GameConst::$defaultStatTotal - $mainStat - $otherStat; - if($subStat < GameConst::$defaultStatMin){ + $totalStat = GameConst::$defaultStatNPCMax * 2 + 10; + $minStat = 10; + $mainStat = GameConst::$defaultStatNPCMax - Util::randRangeInt(0, 10); + //TODO: defaultStatNPCTotal, defaultStatNPCMin 추가 + $otherStat = $minStat + Util::randRangeInt(0, 5); + $subStat = $totalStat - $mainStat - $otherStat; + if ($subStat < $minStat) { $subStat = $otherStat; - $otherStat = GameConst::$defaultStatMin; - $mainStat = GameConst::$defaultStatTotal - $subStat - $otherStat; - if($mainStat){ + $otherStat = $minStat; + $mainStat = $totalStat - $subStat - $otherStat; + if ($mainStat) { throw new \LogicException('기본 스탯 설정값이 잘못되어 있음'); } } @@ -43,21 +46,6 @@ class CreateManyNPC extends \sammo\Event\Action{ $intel = $mainStat; } - // 국내 최고능치 기준으로 랜덤성 스케일링 - $maxLPI = GameConst::$defaultStatTotal; - if($maxLPI > 210) { - $leadership *= Util::randRange(0.6, 0.9); - $strength *= Util::randRange(0.6, 0.9); - $intel *= Util::randRange(0.6, 0.9); - } elseif($maxLPI > 180) { - $leadership *= Util::randRange(0.75, 0.95); - $strength *= Util::randRange(0.75, 0.95); - $intel *= Util::randRange(0.75, 0.95); - } else { - $leadership *= Util::randRange(0.9, 1); - $strength *= Util::randRange(0.9, 1); - $intel *= Util::randRange(0.9, 1); - } $leadership = Util::round($leadership); $strength = Util::round($strength); $intel = Util::round($intel);