물자 조달, 인재 탐색, 군량 매매시, '랜덤 경험'이 현재 능력치 비중을 따르도록 수정

This commit is contained in:
2018-03-11 22:15:47 +09:00
parent 0a81754f7e
commit 9519a17eaa
2 changed files with 30 additions and 4 deletions
+26
View File
@@ -12,6 +12,32 @@ function randF(){
return mt_rand() / mt_getrandmax();
}
/**
* 값의 비중에 따라 랜덤한 값을 선택
*
* @param array 수치의 비중
*
* @return object 선택된 랜덤 값의 key값. 단순 배열인 경우에는 index
*/
function ChooseRandomItem($items){
$sum = 0;
foreach($items as $value){
$sum += $value;
}
$rd = randF()*$sum;
foreach($items as $key=>$value){
if($rd <= $value){
return $key;
}
$rd -= $value;
}
//fallback. 이곳으로 빠지지 않음
end($items);
return key($items);
}
// 37.5 ~ 75
function abilityRand() {
$total = 150;
+4 -4
View File
@@ -805,7 +805,7 @@ function process_9($connect, &$general) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
switch(rand()%3) {
switch(ChooseRandomItem(array($general['leader'], $general['power'], $general['intel']))) {
case 0:
$general[leader2]++;
$query = "update general set resturn='SUCCESS',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'";
@@ -1981,7 +1981,7 @@ function process_29($connect, &$general) {
if(rand() % $criteria > 0) {
$exp = 100;
$ded = 70;
switch(rand()%3) {
switch(ChooseRandomItem(array($general['leader'], $general['power'], $general['intel']))) {
case 0: $general[leader2] += 1; break;
case 1: $general[power2] += 1; break;
case 2: $general[intel2] += 1; break;
@@ -1991,7 +1991,7 @@ function process_29($connect, &$general) {
// 탐색 성공
$exp = 200;
$ded = 300;
switch(rand()%3) {
switch(ChooseRandomItem(array($general['leader'], $general['power'], $general['intel']))) {
case 0: $general[leader2] += 3; break;
case 1: $general[power2] += 3; break;
case 2: $general[intel2] += 3; break;
@@ -3934,7 +3934,7 @@ function process_49($connect, &$general) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 경험치 상승
switch(rand()%3) {
switch(ChooseRandomItem(array($general['leader'], $general['power'], $general['intel']))) {
case 0:
$general[leader2]++;
$query = "update general set leader2='$general[leader2]' where no='$general[no]'";