내정, 계략시 무력,지력을 서로 1/4씩 반영하도록 수정
This commit is contained in:
+174
-111
@@ -1,6 +1,114 @@
|
||||
<?
|
||||
<?php
|
||||
|
||||
/**
|
||||
* 장수의 통솔을 받아옴
|
||||
*
|
||||
* @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);
|
||||
|
||||
function CriticalRatio($leader, $power, $intel, $type=0) {
|
||||
$avg = ($leader+$power+$intel) / 3;
|
||||
// 707010장수 18/21% 706515장수 16/27% 706020장수 14/33% xx50xx장수 10/50%
|
||||
switch($type) {
|
||||
@@ -20,6 +128,26 @@ function CriticalRatio($leader, $power, $intel, $type=0) {
|
||||
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) {
|
||||
switch($type) {
|
||||
case 0:
|
||||
@@ -51,13 +179,7 @@ function process_1($connect, &$general, $type) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $nation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $nation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||
|
||||
if($general[level] == 0) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:재야입니다. $dtype 실패. <1>$date</>";
|
||||
@@ -76,7 +198,7 @@ function process_1($connect, &$general, $type) {
|
||||
if($city[rate] < $_develrate) { $city[rate] = $_develrate; }
|
||||
$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 * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||
|
||||
@@ -90,7 +212,7 @@ function process_1($connect, &$general, $type) {
|
||||
if($general[level] == 3 && $general[no] == $city[gen2]) { $score *= 1.05; }
|
||||
|
||||
$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; }
|
||||
@@ -153,13 +275,7 @@ function process_3($connect, &$general) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $nation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $nation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||
|
||||
if($general[level] == 0) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:재야입니다. $dtype 실패. <1>$date</>";
|
||||
@@ -172,7 +288,7 @@ function process_3($connect, &$general) {
|
||||
} elseif($general[gold] < $admin[develcost]) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:자금이 모자랍니다. $dtype 실패. <1>$date</>";
|
||||
} 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 * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||
|
||||
@@ -184,7 +300,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; }
|
||||
|
||||
$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] == 3) { $score *= 1.1; $admin[develcost] *= 0.8; $r[succ] += 10; }
|
||||
|
||||
@@ -250,13 +366,7 @@ function process_4($connect, &$general) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $nation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $nation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||
|
||||
if($general[level] == 0) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:재야입니다. 주민 선정 실패. <1>$date</>";
|
||||
@@ -271,7 +381,7 @@ function process_4($connect, &$general) {
|
||||
} elseif($city[rate] >= 100) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:민심은 충분합니다. 주민 선정 실패. <1>$date</>";
|
||||
} else {
|
||||
$score = ($general[leader] * (100 - $general[injury])/100 + getHorseEff($general[horse]) + $lbonus) / 10;
|
||||
$score = $score = getGeneralLeadership($general, true, true, true) / 10;
|
||||
$score = $score * (100 + $general[explevel]/5)/100;
|
||||
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||
|
||||
@@ -285,7 +395,7 @@ function process_4($connect, &$general) {
|
||||
if($general[level] == 2 && $general[no] == $city[gen3]) { $score *= 1.05; }
|
||||
|
||||
$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; }
|
||||
|
||||
@@ -347,13 +457,7 @@ function process_5($connect, &$general, $type) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $nation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $nation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||
|
||||
if($general[level] == 0) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:재야입니다. $dtype 실패. <1>$date</>";
|
||||
@@ -372,7 +476,7 @@ function process_5($connect, &$general, $type) {
|
||||
if($city[rate] < $_develrate) { $city[rate] = $_develrate; }
|
||||
$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 * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||
|
||||
@@ -386,7 +490,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]), 1);
|
||||
$r = CriticalRatioDomestic($general, 0);
|
||||
// 특기보정 : 수비, 축성
|
||||
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; }
|
||||
@@ -446,13 +550,7 @@ function process_7($connect, &$general) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $nation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $nation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||
|
||||
if($general[level] == 0) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:재야입니다. 정착 장려 실패. <1>$date</>";
|
||||
@@ -467,7 +565,7 @@ function process_7($connect, &$general) {
|
||||
} elseif($city[pop] >= $city[pop2]) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:이미 포화상태입니다. 정착 장려 실패. <1>$date</>";
|
||||
} 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 * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||
|
||||
@@ -481,7 +579,7 @@ function process_7($connect, &$general) {
|
||||
if($general[level] == 2 && $general[no] == $city[gen3]) { $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 = CriticalRatioDomestic($general, 0);
|
||||
// 특기보정 : 인덕
|
||||
if($general[special] == 20) { $r[succ] += 10; $score *= 1.1; $admin[develcost] *= 0.8; }
|
||||
|
||||
@@ -542,13 +640,7 @@ function process_8($connect, &$general) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $nation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $nation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||
|
||||
if($general[level] == 0) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:재야입니다. $dtype 강화 실패. <1>$date</>";
|
||||
@@ -567,7 +659,7 @@ function process_8($connect, &$general) {
|
||||
if($city[rate] < $_develrate) { $city[rate] = $_develrate; }
|
||||
$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 * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||
|
||||
@@ -581,7 +673,7 @@ function process_8($connect, &$general) {
|
||||
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 = CriticalRatioDomestic($general, 0);
|
||||
// 특기보정 : 통찰
|
||||
if($general[special] == 12) { $r[succ] += 10; $score *= 1.1; $admin[develcost] *= 0.8; }
|
||||
|
||||
@@ -639,13 +731,7 @@ function process_9($connect, &$general) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $nation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $nation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||
|
||||
if($general[level] == 0) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:재야입니다. 물자 조달 실패. <1>$date</>";
|
||||
@@ -657,7 +743,9 @@ function process_9($connect, &$general) {
|
||||
if(rand() % 2 == 0) { $dtype = 0; $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 * (80 + rand() % 41)/100; // 80 ~ 120%
|
||||
|
||||
@@ -729,13 +817,7 @@ function process_11($connect, &$general, $type) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $nation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $nation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||
|
||||
$query = "select * from city where city='$general[city]'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -747,7 +829,9 @@ function process_11($connect, &$general, $type) {
|
||||
|
||||
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)*100) {
|
||||
$crew = round(getGeneralLeadership($general, true, true, true) - $general['crew']/100);
|
||||
}
|
||||
if($crew < 0) { $crew = 0; }
|
||||
$cost = $crew * getCost($connect, $armtype);
|
||||
//기술로 가격
|
||||
@@ -911,13 +995,7 @@ function process_13($connect, &$general) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $nation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $nation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||
|
||||
$query = "select nation,supply from city where city='$general[city]'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -937,7 +1015,7 @@ function process_13($connect, &$general) {
|
||||
// $log[count($log)] = "<C>●</>{$admin[month]}월:병기는 훈련이 불가능합니다. <1>$date</>";
|
||||
} 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</>";
|
||||
$exp = 100;
|
||||
@@ -983,13 +1061,7 @@ function process_14($connect, &$general) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $nation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $nation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $nation['level']);
|
||||
|
||||
$query = "select nation,supply from city where city='$general[city]'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -1010,7 +1082,7 @@ function process_14($connect, &$general) {
|
||||
// } elseif(floor($general[crewtype]/10) == 4) {
|
||||
// $log[count($log)] = "<C>●</>{$admin[month]}월:병기는 사기 진작이 불가능합니다. <1>$date</>";
|
||||
} 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);
|
||||
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:사기치가 <C>$score</> 상승했습니다. <1>$date</>";
|
||||
@@ -2319,11 +2391,11 @@ function process_32($connect, &$general) {
|
||||
} elseif($dip[state] >= 7) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:불가침국입니다. <G><b>$destcity[name]</b></>에 화계 실패. <1>$date</>";
|
||||
} else {
|
||||
$query = "select intel,book from general where city='$destination' and nation='$destcity[nation]' order by intel desc";
|
||||
$query = "select leader,horse,power,weap,intel,book,injury from general where city='$destination' and nation='$destcity[nation]' order by intel desc";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$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) - getGeneralIntel($intelgen, true, true, true, false)) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
||||
$ratio2 = rand() % 100;
|
||||
|
||||
if($general[item] == 5) {
|
||||
@@ -2446,11 +2518,11 @@ function process_33($connect, &$general) {
|
||||
} elseif($dip[state] >= 7) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:불가침국입니다. <G><b>$destcity[name]</b></>에 탈취 실패. <1>$date</>";
|
||||
} else {
|
||||
$query = "select power,weap from general where city='$destination' and nation='$destcity[nation]' order by power desc";
|
||||
$query = "select leader,horse,power,weap,intel,book,injury from general where city='$destination' and nation='$destcity[nation]' order by power desc";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$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) - getGeneralPower($powergen, true, true, true, false)) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
||||
$ratio2 = rand() % 100;
|
||||
|
||||
if($general[item] == 5) {
|
||||
@@ -2589,11 +2661,11 @@ function process_34($connect, &$general) {
|
||||
} elseif($dip[state] >= 7) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:불가침국입니다. <G><b>$destcity[name]</b></>에 파괴 실패. <1>$date</>";
|
||||
} else {
|
||||
$query = "select power,weap from general where city='$destination' and nation='$destcity[nation]' order by power desc";
|
||||
$query = "select leader,horse,power,weap,intel,book,injury from general where city='$destination' and nation='$destcity[nation]' order by power desc";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$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) - getGeneralPower($powergen, true, true, true, false)) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
||||
$ratio2 = rand() % 100;
|
||||
|
||||
if($general[item] == 5) {
|
||||
@@ -2684,13 +2756,7 @@ function process_35($connect, &$general) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$mynation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $mynation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $mynation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $mynation['level']);
|
||||
|
||||
$query = "select nation,supply from city where city='$general[city]'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -2719,11 +2785,11 @@ function process_35($connect, &$general) {
|
||||
} elseif($dip[state] >= 7) {
|
||||
$log[count($log)] = "<C>●</>{$admin[month]}월:불가침국입니다. <G><b>$destcity[name]</b></>에 선동 실패. <1>$date</>";
|
||||
} else {
|
||||
$query = "select ROUND(leader*(100-injury)/100)+horse as sum,horse from general where city='$destination' and nation='$destcity[nation]' order by sum desc";
|
||||
$query = "select leader,horse,power,weap,intel,book,injury from general where city='$destination' and nation='$destcity[nation]' order by sum desc";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$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) - getGeneralLeadership($gen, true, true, true)) / $_firing - ($destcity['secu']/$destcity['secu2'])/5 + $_basefiring)*100);
|
||||
$ratio2 = rand() % 100;
|
||||
|
||||
if($general[item] == 5) {
|
||||
@@ -2814,13 +2880,7 @@ function process_36($connect, &$general) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$mynation = MYDB_fetch_array($result);
|
||||
|
||||
if($general[level] == 12) {
|
||||
$lbonus = $mynation[level] * 2;
|
||||
} elseif($general[level] >= 5) {
|
||||
$lbonus = $mynation[level];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
$lbonus = setLeadershipBonus($general, $mynation['level']);
|
||||
|
||||
$query = "select nation,supply from city where city='$general[city]'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -2853,7 +2913,10 @@ function process_36($connect, &$general) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$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;
|
||||
|
||||
if($general[item] == 5) {
|
||||
|
||||
Reference in New Issue
Block a user