수비, 성벽 강화의 성공을 무력 기준으로 올바르게 변경

필살 확률을 주 능력치만 사용하도록 변경

크리티컬 확률 함수 버그 수정.

필살 확률 수정
This commit is contained in:
2018-02-01 00:16:58 +09:00
committed by Hide_D
parent 64a086c24a
commit 2ae9561c8c
3 changed files with 38 additions and 7 deletions
+3 -3
View File
@@ -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 .= "<C>●</><C>필살</>공격!</><br>";
$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 .= "<C>●</><C>필살</>공격!</><br>";
$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 .= "<C>●</>상대의 <R>필살</>공격!</><br>";
$myCrew = CriticalScore2($myCrew);
+1 -1
View File
@@ -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; }
+34 -3
View File
@@ -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;