내정 시 무력/지력 1/4씩 추가 보너스 반영
- getGeneralLeadership 함수 추가 - getGeneralPower 함수 추가 - getGeneralIntel 함수 추가 - CriticalRatio 함수를 CriticalRatioDomestic 함수로 리팩토링 - 내정에 한해 lbonus를 계산하는 setLeadershipBonus 함수 추가 - 계략시 부상 정도를 반영하도록 수정
This commit is contained in:
+169
-106
@@ -1,6 +1,114 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
function CriticalRatio($leader, $power, $intel, $type=0) {
|
/**
|
||||||
|
* 장수의 통솔을 받아옴
|
||||||
|
*
|
||||||
|
* @param array $general 장수 정보, leader, injury, lbonus, horse 사용
|
||||||
|
* @param bool $withInjury 부상값 사용 여부
|
||||||
|
* @param bool $withItem 아이템 적용 여부
|
||||||
|
* @param bool $withStatAdjust 추가 능력치 보정 사용 여부
|
||||||
|
* @param bool $useFloor 내림 사용 여부, false시 float 값을 반환할 수도 있음
|
||||||
|
*
|
||||||
|
* @return int|float 계산된 능력치
|
||||||
|
*/
|
||||||
|
function getGeneralLeadership(&$general, $withInjury, $withItem, $withStatAdjust, $useFloor = true){
|
||||||
|
$leadership = $general['leader'];
|
||||||
|
if($withInjury){
|
||||||
|
$leadership *= (100 - $general['injury']) / 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($general['lbonus'])){
|
||||||
|
$leadership += $general['lbonus'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if($withItem){
|
||||||
|
$leadership += getHorseEff($general['horse']);
|
||||||
|
}
|
||||||
|
|
||||||
|
//$withStatAdjust는 통솔에서 미사용
|
||||||
|
|
||||||
|
if($useFloor){
|
||||||
|
return floor($leadership);
|
||||||
|
}
|
||||||
|
return $leadership;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 장수의 무력을 받아옴
|
||||||
|
*
|
||||||
|
* @param array $general 장수 정보, power, injury, weap 사용
|
||||||
|
* @param bool $withInjury 부상값 사용 여부
|
||||||
|
* @param bool $withItem 아이템 적용 여부
|
||||||
|
* @param bool $withStatAdjust 추가 능력치 보정 사용 여부
|
||||||
|
* @param bool $useFloor 내림 사용 여부, false시 float 값을 반환할 수도 있음
|
||||||
|
*
|
||||||
|
* @return int|float 계산된 능력치
|
||||||
|
*/
|
||||||
|
function getGeneralPower(&$general, $withInjury, $withItem, $withStatAdjust, $useFloor = true){
|
||||||
|
$power = $general['power'];
|
||||||
|
if($withInjury){
|
||||||
|
$power *= (100 - $general['injury']) / 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($withItem){
|
||||||
|
$power += getWeapEff($general['weap']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($withStatAdjust){
|
||||||
|
$power += round(getGeneralIntel($general, $withInjury, $withItem, false, false) / 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($useFloor){
|
||||||
|
return floor($power);
|
||||||
|
}
|
||||||
|
return $power;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 장수의 지력을 받아옴
|
||||||
|
*
|
||||||
|
* @param array $general 장수 정보, intel, injury, book 사용
|
||||||
|
* @param bool $withInjury 부상값 사용 여부
|
||||||
|
* @param bool $withItem 아이템 적용 여부
|
||||||
|
* @param bool $withStatAdjust 추가 능력치 보정 사용 여부
|
||||||
|
* @param bool $useFloor 내림 사용 여부, false시 float 값을 반환할 수도 있음
|
||||||
|
*
|
||||||
|
* @return int|float 계산된 능력치
|
||||||
|
*/
|
||||||
|
function getGeneralIntel(&$general, $withInjury, $withItem, $withStatAdjust, $useFloor = true){
|
||||||
|
$intel = $general['intel'];
|
||||||
|
if($withInjury){
|
||||||
|
$intel *= (100 - $general['injury']) / 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($withItem){
|
||||||
|
$intel += getBookEff($general['book']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($withStatAdjust){
|
||||||
|
$intel += round(getGeneralPower($general, $withInjury, $withItem, false, false) / 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($useFloor){
|
||||||
|
return floor($intel);
|
||||||
|
}
|
||||||
|
return $intel;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 내정 커맨드 사용시 성공 확률 계산
|
||||||
|
*
|
||||||
|
* @param array $general 장수 정보
|
||||||
|
* @param int $type 내정 커맨드 타입, 0 = 통솔 기반, 1 = 무력 기반, 2 = 지력 기반
|
||||||
|
*
|
||||||
|
* @return array 계산된 실패, 성공 확률 ('succ' => 성공 확률, 'fail' => 실패 확률)
|
||||||
|
*/
|
||||||
|
function CriticalRatioDomestic(&$general, $type) {
|
||||||
|
$leader = getGeneralLeadership($general, false, true, false, false);
|
||||||
|
$power = getGeneralPower($general, false, true, false, false);
|
||||||
|
$power = getGeneralIntel($general, false, true, false, false);
|
||||||
|
|
||||||
$avg = ($leader+$power+$intel) / 3;
|
$avg = ($leader+$power+$intel) / 3;
|
||||||
// 707010장수 18/21% 706515장수 16/27% 706020장수 14/33% xx50xx장수 10/50%
|
// 707010장수 18/21% 706515장수 16/27% 706020장수 14/33% xx50xx장수 10/50%
|
||||||
switch($type) {
|
switch($type) {
|
||||||
@@ -20,6 +128,26 @@ function CriticalRatio($leader, $power, $intel, $type=0) {
|
|||||||
return $r;
|
return $r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 수뇌직 통솔 보너스 계산
|
||||||
|
*
|
||||||
|
* @param array &$general 장수 정보. 'lbonus' 값에 통솔 보너스가 입력 됨
|
||||||
|
* @param int $nationLevel 국가 등급
|
||||||
|
*
|
||||||
|
* @return int 계산된 $general['lbonus'] 값
|
||||||
|
*/
|
||||||
|
function setLeadershipBonus(&$general, $nationLevel){
|
||||||
|
if($general['level'] == 12) {
|
||||||
|
$lbonus = $nationLevel * 2;
|
||||||
|
} elseif($general['level'] >= 5) {
|
||||||
|
$lbonus = $nationLevel;
|
||||||
|
} else {
|
||||||
|
$lbonus = 0;
|
||||||
|
}
|
||||||
|
$general['lbonus'] = $lbonus;
|
||||||
|
return $lbonus;
|
||||||
|
}
|
||||||
|
|
||||||
function CriticalScore($score, $type) {
|
function CriticalScore($score, $type) {
|
||||||
switch($type) {
|
switch($type) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -52,13 +180,7 @@ function process_1($connect, &$general, $type) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$nation = MYDB_fetch_array($result);
|
$nation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||||
$lbonus = $nation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $nation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($general['level'] == 0) {
|
if($general['level'] == 0) {
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. $dtype 실패. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. $dtype 실패. <1>$date</>";
|
||||||
@@ -77,7 +199,7 @@ function process_1($connect, &$general, $type) {
|
|||||||
if($city['rate'] < GameConst::develrate) { $city['rate'] = GameConst::develrate; }
|
if($city['rate'] < GameConst::develrate) { $city['rate'] = GameConst::develrate; }
|
||||||
$rate = $city['rate'] / 100;
|
$rate = $city['rate'] / 100;
|
||||||
|
|
||||||
$score = ($general['intel'] * (100 - $general['injury'])/100 + getBookEff($general['book'])) * $rate;
|
$score = getGeneralIntel($general, true, true, true, false) * $rate;
|
||||||
$score = $score * (100 + $general['explevel']/5)/100;
|
$score = $score * (100 + $general['explevel']/5)/100;
|
||||||
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||||
|
|
||||||
@@ -91,7 +213,7 @@ function process_1($connect, &$general, $type) {
|
|||||||
if($general['level'] == 3 && $general['no'] == $city['gen2']) { $score *= 1.05; }
|
if($general['level'] == 3 && $general['no'] == $city['gen2']) { $score *= 1.05; }
|
||||||
|
|
||||||
$rd = rand() % 100;
|
$rd = rand() % 100;
|
||||||
$r = CriticalRatio($general['leader']+getHorseEff($general['horse'])+$lbonus, $general['power']+getWeapEff($general['weap']), $general['intel']+getBookEff($general['book']), 2);
|
$r = CriticalRatioDomestic($general, 2);
|
||||||
|
|
||||||
// 특기보정 : 경작, 상재
|
// 특기보정 : 경작, 상재
|
||||||
if($type == 1 && $general['special'] == 1) { $r['succ'] += 10; $score *= 1.1; $admin['develcost'] *= 0.8; }
|
if($type == 1 && $general['special'] == 1) { $r['succ'] += 10; $score *= 1.1; $admin['develcost'] *= 0.8; }
|
||||||
@@ -155,13 +277,7 @@ function process_3($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$nation = MYDB_fetch_array($result);
|
$nation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||||
$lbonus = $nation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $nation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($general['level'] == 0) {
|
if($general['level'] == 0) {
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. $dtype 실패. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. $dtype 실패. <1>$date</>";
|
||||||
@@ -174,7 +290,7 @@ function process_3($connect, &$general) {
|
|||||||
} elseif($general['gold'] < $admin['develcost']) {
|
} elseif($general['gold'] < $admin['develcost']) {
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:자금이 모자랍니다. $dtype 실패. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:자금이 모자랍니다. $dtype 실패. <1>$date</>";
|
||||||
} else {
|
} else {
|
||||||
$score = ($general['intel'] * (100 - $general['injury'])/100 + getBookEff($general['book']));
|
$score = getGeneralIntel($general, true, true, true, false);
|
||||||
$score = $score * (100 + $general['explevel']/5)/100;
|
$score = $score * (100 + $general['explevel']/5)/100;
|
||||||
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||||
|
|
||||||
@@ -186,7 +302,7 @@ function process_3($connect, &$general) {
|
|||||||
if($general['level'] == 12 || $general['level'] == 11 || $general['level'] == 9 || $general['level'] == 7 || $general['level'] == 5) { $score *= 1.05; }
|
if($general['level'] == 12 || $general['level'] == 11 || $general['level'] == 9 || $general['level'] == 7 || $general['level'] == 5) { $score *= 1.05; }
|
||||||
|
|
||||||
$rd = rand() % 100;
|
$rd = rand() % 100;
|
||||||
$r = CriticalRatio($general['leader']+getHorseEff($general['horse'])+$lbonus, $general['power']+getWeapEff($general['weap']), $general['intel']+getBookEff($general['book']), 0);
|
$r = CriticalRatioDomestic($general, 2);
|
||||||
// 특기보정 : 발명
|
// 특기보정 : 발명
|
||||||
if($general['special'] == 3) { $score *= 1.1; $admin['develcost'] *= 0.8; $r['succ'] += 10; }
|
if($general['special'] == 3) { $score *= 1.1; $admin['develcost'] *= 0.8; $r['succ'] += 10; }
|
||||||
|
|
||||||
@@ -253,13 +369,7 @@ function process_4($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$nation = MYDB_fetch_array($result);
|
$nation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||||
$lbonus = $nation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $nation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($general['level'] == 0) {
|
if($general['level'] == 0) {
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. 주민 선정 실패. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. 주민 선정 실패. <1>$date</>";
|
||||||
@@ -274,7 +384,7 @@ function process_4($connect, &$general) {
|
|||||||
} elseif($city['rate'] >= 100) {
|
} elseif($city['rate'] >= 100) {
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:민심은 충분합니다. 주민 선정 실패. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:민심은 충분합니다. 주민 선정 실패. <1>$date</>";
|
||||||
} else {
|
} else {
|
||||||
$score = ($general['leader'] * (100 - $general['injury'])/100 + getHorseEff($general['horse']) + $lbonus) / 10;
|
$score = getGeneralLeadership($general, true, true, true);
|
||||||
$score = $score * (100 + $general['explevel']/5)/100;
|
$score = $score * (100 + $general['explevel']/5)/100;
|
||||||
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||||
|
|
||||||
@@ -288,7 +398,7 @@ function process_4($connect, &$general) {
|
|||||||
if($general['level'] == 2 && $general['no'] == $city['gen3']) { $score *= 1.05; }
|
if($general['level'] == 2 && $general['no'] == $city['gen3']) { $score *= 1.05; }
|
||||||
|
|
||||||
$rd = rand() % 100;
|
$rd = rand() % 100;
|
||||||
$r = CriticalRatio($general['leader']+getHorseEff($general['horse'])+$lbonus, $general['power']+getWeapEff($general['weap']), $general['intel']+getBookEff($general['book']), 0);
|
$r = CriticalRatioDomestic($general, 0);
|
||||||
// 특기보정 : 인덕
|
// 특기보정 : 인덕
|
||||||
if($general['special'] == 20) { $r['succ'] += 10; $admin['develcost'] *= 0.8; $score *= 1.1; }
|
if($general['special'] == 20) { $r['succ'] += 10; $admin['develcost'] *= 0.8; $score *= 1.1; }
|
||||||
|
|
||||||
@@ -351,13 +461,7 @@ function process_5($connect, &$general, $type) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$nation = MYDB_fetch_array($result);
|
$nation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||||
$lbonus = $nation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $nation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($general['level'] == 0) {
|
if($general['level'] == 0) {
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. $dtype 실패. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. $dtype 실패. <1>$date</>";
|
||||||
@@ -376,7 +480,7 @@ function process_5($connect, &$general, $type) {
|
|||||||
if($city['rate'] < GameConst::develrate) { $city['rate'] = GameConst::develrate; }
|
if($city['rate'] < GameConst::develrate) { $city['rate'] = GameConst::develrate; }
|
||||||
$rate = $city['rate'] / 100;
|
$rate = $city['rate'] / 100;
|
||||||
|
|
||||||
$score = ($general['power'] * (100 - $general['injury'])/100 + getWeapEff($general['weap'])) * $rate;
|
$score = getGeneralPower($general, true, true, true, false) * $rate;
|
||||||
$score = $score * (100 + $general['explevel']/5)/100;
|
$score = $score * (100 + $general['explevel']/5)/100;
|
||||||
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||||
|
|
||||||
@@ -390,7 +494,7 @@ function process_5($connect, &$general, $type) {
|
|||||||
if($general['level'] == 4 && $general['no'] == $city['gen1']) { $score *= 1.05; }
|
if($general['level'] == 4 && $general['no'] == $city['gen1']) { $score *= 1.05; }
|
||||||
|
|
||||||
$rd = rand() % 100; // 현재 20%
|
$rd = rand() % 100; // 현재 20%
|
||||||
$r = CriticalRatio($general['leader']+getHorseEff($general['horse'])+$lbonus, $general['power']+getWeapEff($general['weap']), $general['intel']+getBookEff($general['book']), 1);
|
$r = CriticalRatioDomestic($general, 1);
|
||||||
// 특기보정 : 수비, 축성
|
// 특기보정 : 수비, 축성
|
||||||
if($type == 1 && $general['special'] == 11) { $r['succ'] += 10; $score *= 1.1; $admin['develcost'] *= 0.8; }
|
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; }
|
if($type == 2 && $general['special'] == 10) { $r['succ'] += 10; $score *= 1.1; $admin['develcost'] *= 0.8; }
|
||||||
@@ -451,13 +555,7 @@ function process_7($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$nation = MYDB_fetch_array($result);
|
$nation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||||
$lbonus = $nation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $nation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($general['level'] == 0) {
|
if($general['level'] == 0) {
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. 정착 장려 실패. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. 정착 장려 실패. <1>$date</>";
|
||||||
@@ -472,7 +570,7 @@ function process_7($connect, &$general) {
|
|||||||
} elseif($city['pop'] >= $city['pop2']) {
|
} elseif($city['pop'] >= $city['pop2']) {
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:이미 포화상태입니다. 정착 장려 실패. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:이미 포화상태입니다. 정착 장려 실패. <1>$date</>";
|
||||||
} else {
|
} else {
|
||||||
$score = $general['leader'] * (100 - $general['injury'])/100 + getHorseEff($general['horse']) + $lbonus;
|
$score = getGeneralLeadership($general, true, true, true);
|
||||||
$score = $score * (100 + $general['explevel']/5)/100;
|
$score = $score * (100 + $general['explevel']/5)/100;
|
||||||
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||||
|
|
||||||
@@ -486,7 +584,7 @@ function process_7($connect, &$general) {
|
|||||||
if($general['level'] == 2 && $general['no'] == $city['gen3']) { $score *= 1.05; }
|
if($general['level'] == 2 && $general['no'] == $city['gen3']) { $score *= 1.05; }
|
||||||
|
|
||||||
$rd = rand() % 100; // 현재 20%
|
$rd = rand() % 100; // 현재 20%
|
||||||
$r = CriticalRatio($general['leader']+getHorseEff($general['horse'])+$lbonus, $general['power']+getWeapEff($general['weap']), $general['intel']+getBookEff($general['book']), 0);
|
$r = CriticalRatioDomestic($general, 0);
|
||||||
// 특기보정 : 인덕
|
// 특기보정 : 인덕
|
||||||
if($general['special'] == 20) { $r['succ'] += 10; $score *= 1.1; $admin['develcost'] *= 0.8; }
|
if($general['special'] == 20) { $r['succ'] += 10; $score *= 1.1; $admin['develcost'] *= 0.8; }
|
||||||
|
|
||||||
@@ -548,13 +646,7 @@ function process_8($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$nation = MYDB_fetch_array($result);
|
$nation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||||
$lbonus = $nation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $nation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($general['level'] == 0) {
|
if($general['level'] == 0) {
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. $dtype 강화 실패. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. $dtype 강화 실패. <1>$date</>";
|
||||||
@@ -573,7 +665,7 @@ function process_8($connect, &$general) {
|
|||||||
if($city['rate'] < GameConst::develrate) { $city['rate'] = GameConst::develrate; }
|
if($city['rate'] < GameConst::develrate) { $city['rate'] = GameConst::develrate; }
|
||||||
$rate = $city['rate'] / 100;
|
$rate = $city['rate'] / 100;
|
||||||
|
|
||||||
$score = ($general['power'] * (100 - $general['injury'])/100 + getWeapEff($general['weap'])) * $rate;
|
$score = getGeneralPower($general, true, true, true, false) * $rate;
|
||||||
$score = $score * (100 + $general['explevel']/5)/100;
|
$score = $score * (100 + $general['explevel']/5)/100;
|
||||||
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||||
|
|
||||||
@@ -587,7 +679,7 @@ function process_8($connect, &$general) {
|
|||||||
if($general['level'] == 4 && $general['no'] == $city['gen1']) { $score *= 1.05; }
|
if($general['level'] == 4 && $general['no'] == $city['gen1']) { $score *= 1.05; }
|
||||||
|
|
||||||
$rd = rand() % 100; // 현재 20%
|
$rd = rand() % 100; // 현재 20%
|
||||||
$r = CriticalRatio($general['leader']+getHorseEff($general['horse'])+$lbonus, $general['power']+getWeapEff($general['weap']), $general['intel']+getBookEff($general['book']), 0);
|
$r = CriticalRatioDomestic($general, 1);
|
||||||
// 특기보정 : 통찰
|
// 특기보정 : 통찰
|
||||||
if($general['special'] == 12) { $r['succ'] += 10; $score *= 1.1; $admin['develcost'] *= 0.8; }
|
if($general['special'] == 12) { $r['succ'] += 10; $score *= 1.1; $admin['develcost'] *= 0.8; }
|
||||||
|
|
||||||
@@ -648,13 +740,7 @@ function process_9($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$nation = MYDB_fetch_array($result);
|
$nation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||||
$lbonus = $nation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $nation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($general['level'] == 0) {
|
if($general['level'] == 0) {
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. 물자 조달 실패. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:재야입니다. 물자 조달 실패. <1>$date</>";
|
||||||
@@ -666,7 +752,9 @@ function process_9($connect, &$general) {
|
|||||||
if(rand() % 2 == 0) { $dtype = 0; $stype = "금"; }
|
if(rand() % 2 == 0) { $dtype = 0; $stype = "금"; }
|
||||||
else { $dtype = 1; $stype = "쌀"; }
|
else { $dtype = 1; $stype = "쌀"; }
|
||||||
|
|
||||||
$score = (($general['leader']+$general['power']+$general['intel']) * (100 - $general['injury'])/100 + getHorseEff($general['horse'])+$lbonus+getWeapEff($general['weap'])+getBookEff($general['book']));
|
$score = getGeneralLeadership($general, true, true, true)
|
||||||
|
+ getGeneralPower($general, true, true, true)
|
||||||
|
+ getGeneralIntel($general, true, true, true);
|
||||||
$score = $score * (100 + $general['explevel']/5)/100;
|
$score = $score * (100 + $general['explevel']/5)/100;
|
||||||
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||||
|
|
||||||
@@ -741,13 +829,7 @@ function process_11($connect, &$general, $type) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$nation = MYDB_fetch_array($result);
|
$nation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||||
$lbonus = $nation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $nation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = "select * from city where city='{$general['city']}'";
|
$query = "select * from city where city='{$general['city']}'";
|
||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
@@ -759,7 +841,9 @@ function process_11($connect, &$general, $type) {
|
|||||||
|
|
||||||
if($armtype != $general['crewtype']) { $general['crew'] = 0; $general['train'] = $defaulttrain; $general['atmos'] = $defaultatmos; }
|
if($armtype != $general['crewtype']) { $general['crew'] = 0; $general['train'] = $defaulttrain; $general['atmos'] = $defaultatmos; }
|
||||||
|
|
||||||
if($crew*100 + $general['crew'] > (floor($general['leader'] * (100 - $general['injury'])/100)+getHorseEff($general['horse'])+$lbonus)*100) { $crew = round(((floor($general['leader'] * (100 - $general['injury'])/100)+getHorseEff($general['horse'])+$lbonus)*100 - $general['crew'])/100, 0); }
|
if($crew*100 + $general['crew'] > getGeneralLeadership($general, true, true, true)) {
|
||||||
|
$crew = round(getGeneralLeadership($general, true, true, true) - $general['crew']/100);
|
||||||
|
}
|
||||||
if($crew < 0) { $crew = 0; }
|
if($crew < 0) { $crew = 0; }
|
||||||
$cost = $crew * getCost($armtype);
|
$cost = $crew * getCost($armtype);
|
||||||
//기술로 가격
|
//기술로 가격
|
||||||
@@ -925,13 +1009,7 @@ function process_13($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$nation = MYDB_fetch_array($result);
|
$nation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||||
$lbonus = $nation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $nation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = "select nation,supply from city where city='{$general['city']}'";
|
$query = "select nation,supply from city where city='{$general['city']}'";
|
||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
@@ -951,7 +1029,7 @@ function process_13($connect, &$general) {
|
|||||||
// $log[count($log)] = "<C>●</>{$admin['month']}월:병기는 훈련이 불가능합니다. <1>$date</>";
|
// $log[count($log)] = "<C>●</>{$admin['month']}월:병기는 훈련이 불가능합니다. <1>$date</>";
|
||||||
} else {
|
} else {
|
||||||
// 훈련시
|
// 훈련시
|
||||||
$score = round((floor($general['leader'] * (100 - $general['injury'])/100)+getHorseEff($general['horse'])+$lbonus)*100 / $general['crew'] * $_training);
|
$score = round(getGeneralLeadership($general, true, true, true) * 100 / $general['crew'] * $_training);
|
||||||
|
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:훈련치가 <C>$score</> 상승했습니다. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:훈련치가 <C>$score</> 상승했습니다. <1>$date</>";
|
||||||
$exp = 100;
|
$exp = 100;
|
||||||
@@ -999,13 +1077,7 @@ function process_14($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$nation = MYDB_fetch_array($result);
|
$nation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||||
$lbonus = $nation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $nation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = "select nation,supply from city where city='{$general['city']}'";
|
$query = "select nation,supply from city where city='{$general['city']}'";
|
||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
@@ -1026,7 +1098,7 @@ function process_14($connect, &$general) {
|
|||||||
// } elseif(floor($general['crewtype']/10) == 4) {
|
// } elseif(floor($general['crewtype']/10) == 4) {
|
||||||
// $log[count($log)] = "<C>●</>{$admin['month']}월:병기는 사기 진작이 불가능합니다. <1>$date</>";
|
// $log[count($log)] = "<C>●</>{$admin['month']}월:병기는 사기 진작이 불가능합니다. <1>$date</>";
|
||||||
} else {
|
} else {
|
||||||
$score = round((floor($general['leader'] * (100 - $general['injury'])/100)+getHorseEff($general['horse'])+$lbonus)*100 / $general['crew'] * $_training);
|
$score = round(getGeneralLeadership($general, true, true, true)*100 / $general['crew'] * $_training);
|
||||||
$gold = $general['gold'] - round($general['crew']/100);
|
$gold = $general['gold'] - round($general['crew']/100);
|
||||||
|
|
||||||
$log[count($log)] = "<C>●</>{$admin['month']}월:사기치가 <C>$score</> 상승했습니다. <1>$date</>";
|
$log[count($log)] = "<C>●</>{$admin['month']}월:사기치가 <C>$score</> 상승했습니다. <1>$date</>";
|
||||||
@@ -2374,7 +2446,7 @@ function process_32($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$intelgen = MYDB_fetch_array($result);
|
$intelgen = MYDB_fetch_array($result);
|
||||||
|
|
||||||
$ratio = round((($general['intel']+getBookEff($general['book']) - $intelgen['intel']-getBookEff($intelgen['book'])) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
$ratio = round((getGeneralIntel($general, true, true, true, false) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
||||||
$ratio2 = rand() % 100;
|
$ratio2 = rand() % 100;
|
||||||
|
|
||||||
if($general['item'] == 5) {
|
if($general['item'] == 5) {
|
||||||
@@ -2504,7 +2576,7 @@ function process_33($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$powergen = MYDB_fetch_array($result);
|
$powergen = MYDB_fetch_array($result);
|
||||||
|
|
||||||
$ratio = round((($general['power']+getWeapEff($general['weap']) - $powergen['power']-getWeapEff($powergen['weap'])) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
$ratio = round((getGeneralPower($general, true, true, true, false) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
||||||
$ratio2 = rand() % 100;
|
$ratio2 = rand() % 100;
|
||||||
|
|
||||||
if($general['item'] == 5) {
|
if($general['item'] == 5) {
|
||||||
@@ -2649,7 +2721,7 @@ function process_34($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$powergen = MYDB_fetch_array($result);
|
$powergen = MYDB_fetch_array($result);
|
||||||
|
|
||||||
$ratio = round((($general['power']+getWeapEff($general['weap']) - $powergen['power']-getWeapEff($powergen['weap'])) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
$ratio = round((getGeneralPower($general, true, true, true, false) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
||||||
$ratio2 = rand() % 100;
|
$ratio2 = rand() % 100;
|
||||||
|
|
||||||
if($general['item'] == 5) {
|
if($general['item'] == 5) {
|
||||||
@@ -2742,13 +2814,7 @@ function process_35($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$mynation = MYDB_fetch_array($result);
|
$mynation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $mynation['level']);
|
||||||
$lbonus = $mynation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $mynation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = "select nation,supply from city where city='{$general['city']}'";
|
$query = "select nation,supply from city where city='{$general['city']}'";
|
||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
@@ -2781,7 +2847,7 @@ function process_35($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$gen = MYDB_fetch_array($result);
|
$gen = MYDB_fetch_array($result);
|
||||||
|
|
||||||
$ratio = round(((floor($general['leader'] * (100 - $general['injury'])/100)+getHorseEff($general['horse'])+$lbonus - ($gen['sum']-$gen['horse']+getHorseEff($gen['horse']))) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
$ratio = round(((getGeneralLeadership($general, true, true, true) - ($gen['sum']-$gen['horse']+getHorseEff($gen['horse']))) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
||||||
$ratio2 = rand() % 100;
|
$ratio2 = rand() % 100;
|
||||||
|
|
||||||
if($general['item'] == 5) {
|
if($general['item'] == 5) {
|
||||||
@@ -2874,13 +2940,7 @@ function process_36($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$mynation = MYDB_fetch_array($result);
|
$mynation = MYDB_fetch_array($result);
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
$lbonus = setLeadershipBonus($general, $mynation['level']);
|
||||||
$lbonus = $mynation['level'] * 2;
|
|
||||||
} elseif($general['level'] >= 5) {
|
|
||||||
$lbonus = $mynation['level'];
|
|
||||||
} else {
|
|
||||||
$lbonus = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = "select nation,supply from city where city='{$general['city']}'";
|
$query = "select nation,supply from city where city='{$general['city']}'";
|
||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
@@ -2913,7 +2973,10 @@ function process_36($connect, &$general) {
|
|||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$gen = MYDB_fetch_array($result);
|
$gen = MYDB_fetch_array($result);
|
||||||
|
|
||||||
$ratio = round(((floor(($general['leader']+$general['intel']+$general['power']) * (100 - $general['injury'])/100)+getWeapEff($general['weap'])+getHorseEff($general['horse'])+$lbonus+getBookEff($general['book']) - ($gen['sum']-$gen['weap']-$gen['horse']-$gen['book']+getWeapEff($gen['weap'])+getHorseEff($gen['horse'])+getBookEff($gen['book']))) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
$generalStatAll = getGeneralLeadership($general, true, true, true)
|
||||||
|
+ getGeneralPower($general, true, true, true)
|
||||||
|
+ getGeneralIntel($general, true, true, true);
|
||||||
|
$ratio = round((($generalStatAll - ($gen['sum']+getWeapEff($gen['weap'])+getHorseEff($gen['horse'])+getBookEff($gen['book']))) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
||||||
$ratio2 = rand() % 100;
|
$ratio2 = rand() % 100;
|
||||||
|
|
||||||
if($general['item'] == 5) {
|
if($general['item'] == 5) {
|
||||||
|
|||||||
Reference in New Issue
Block a user