From 2ae9561c8c49787b1bb756c646a0962204288720 Mon Sep 17 00:00:00 2001 From: hide_d Date: Wed, 31 Jan 2018 23:31:44 +0900 Subject: [PATCH] =?UTF-8?q?=EC=88=98=EB=B9=84,=20=EC=84=B1=EB=B2=BD=20?= =?UTF-8?q?=EA=B0=95=ED=99=94=EC=9D=98=20=EC=84=B1=EA=B3=B5=EC=9D=84=20?= =?UTF-8?q?=EB=AC=B4=EB=A0=A5=20=EA=B8=B0=EC=A4=80=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=98=AC=EB=B0=94=EB=A5=B4=EA=B2=8C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 필살 확률을 주 능력치만 사용하도록 변경 크리티컬 확률 함수 버그 수정. 필살 확률 수정 --- che_close/_simul.php | 6 +++--- che_close/func_process.php | 2 +- che_close/process_war.php | 37 ++++++++++++++++++++++++++++++++++--- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/che_close/_simul.php b/che_close/_simul.php index 033e05e..389aefc 100644 --- a/che_close/_simul.php +++ b/che_close/_simul.php @@ -197,7 +197,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평 //크리 $rd = rand() % 100; // 0 ~ 99 - $ratio = CriticalRatio2($general[leader], $general[power], $general[intel]); + $ratio = CriticalRatio3($general[leader], $general[power], $general[intel], $general['crewtype']); if($ratio >= $rd && $avoid == 1) { $msg .= "필살공격!
"; $cityCrew = CriticalScore2($cityCrew); @@ -553,7 +553,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평 //크리 $rd = rand() % 100; // 0 ~ 99 - $ratio = CriticalRatio2($general[leader], $general[power], $general[intel]); + $ratio = CriticalRatio3($general[leader], $general[power], $general[intel], $general['crewtype']); if($ratio >= $rd && $myAvoid == 1) { $msg .= "필살공격!
"; $opCrew = CriticalScore2($opCrew); @@ -561,7 +561,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평 } //크리 $rd = rand() % 100; // 0 ~ 99 - $ratio = CriticalRatio2($oppose[leader], $oppose[power], $oppose[intel]); + $ratio = CriticalRatio3($oppose[leader], $oppose[power], $oppose[intel], $oppose['crewtype']); if($ratio >= $rd && $opAvoid == 1) { $msg .= "●상대의 필살공격!
"; $myCrew = CriticalScore2($myCrew); diff --git a/che_close/func_process.php b/che_close/func_process.php index 9aa9bab..4b1a0f6 100644 --- a/che_close/func_process.php +++ b/che_close/func_process.php @@ -386,7 +386,7 @@ function process_5($connect, &$general, $type) { if($general[level] == 4 && $general[no] == $city[gen1]) { $score *= 1.05; } $rd = rand() % 100; // 현재 20% - $r = CriticalRatio($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book]), 0); + $r = CriticalRatio($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book]), 1); // 특기보정 : 수비, 축성 if($type == 1 && $general[special] == 11) { $r[succ] += 10; $score *= 1.1; $admin[develcost] *= 0.8; } if($type == 2 && $general[special] == 10) { $r[succ] += 10; $score *= 1.1; $admin[develcost] *= 0.8; } diff --git a/che_close/process_war.php b/che_close/process_war.php index 884ad13..7c842fa 100644 --- a/che_close/process_war.php +++ b/che_close/process_war.php @@ -273,7 +273,7 @@ function processWar($connect, $general, $city) { //크리 $rd = rand() % 100; // 0 ~ 99 - $ratio = CriticalRatio2($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book])); + $ratio = CriticalRatio3($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book]), $general['crewtype']); // 특기보정 : 무쌍, 필살 if($general[special2] == 61) { $ratio += 10; } if($general[special2] == 71) { $ratio += 20; } @@ -1030,7 +1030,7 @@ function processWar($connect, $general, $city) { //크리 $rd = rand() % 100; // 0 ~ 99 - $ratio = CriticalRatio2($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book])); + $ratio = CriticalRatio3($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book]), $general['crewtype']); // 특기보정 : 무쌍, 필살 if($general[special2] == 61) { $ratio += 10; } if($general[special2] == 71) { $ratio += 20; } @@ -1052,7 +1052,7 @@ function processWar($connect, $general, $city) { } //크리 $rd = rand() % 100; // 0 ~ 99 - $ratio = CriticalRatio2($oppose[leader]+getHorseEff($oppose[horse])+$opplbonus, $oppose[power]+getWeapEff($oppose[weap]), $oppose[intel]+getBookEff($oppose[book])); + $ratio = CriticalRatio3($oppose[leader]+getHorseEff($oppose[horse])+$opplbonus, $oppose[power]+getWeapEff($oppose[weap]), $oppose[intel]+getBookEff($oppose[book]), $oppose['crewtype']); // 특기보정 : 필살 if($oppose[special2] == 71) { $ratio += 20; } if($ratio >= $rd && $opAvoid == 1) { @@ -1450,6 +1450,37 @@ function CriticalRatio2($leader, $power, $intel) { return $ratio; } +function CriticalRatio3($leader, $power, $intel, $crewtype) { + // 무장 무력 : 65 5%, 70 10%, 75 15%, 80 20% + // 지장 지력 : 65 5%, 70 8%, 75 10%, 80 13% + //충차장 통솔: 65 5%, 70 8%, 75 10%, 80 13% + + $crewtype = floor($crwtype/10); + + if($crewtype == 3){ //지장 + $mainstat = $intel; + } + else if($crewtype == 4){ //병기 + $mainstat = $leader; + } + else{ //무장 + $mainstat = $power; + } + + $ratio = max($mainstat - 65, 0); + + if ($crewtype >= 3) { + $ratio /= 2; + } + + $ratio = round($ratio); + $ratio += 5; + + if($ratio > 50) $ratio = 50; + + return $ratio; +} + function CriticalScore2($score) { $score = round($score * (rand()%8 + 13)/10); // 1.3~2.0 return $score;