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;