물자 조달, 인재 탐색, 군량 매매시, '랜덤 경험'이 현재 능력치 비중을 따르도록 수정
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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]'";
|
||||
|
||||
Reference in New Issue
Block a user