시나리오마다 별도로 스탯 제한치를 설정 가능하도록 변경
This commit is contained in:
@@ -217,12 +217,12 @@ echo "
|
|||||||
";
|
";
|
||||||
|
|
||||||
$queries = [];
|
$queries = [];
|
||||||
$queries[10] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
|
$queries[10] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||||
$queries[9] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
|
$queries[9] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||||
$queries[8] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
|
$queries[8] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||||
$queries[7] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
|
$queries[7] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||||
$queries[6] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
|
$queries[6] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||||
$queries[5] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
|
$queries[5] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||||
|
|
||||||
for($i=10; $i >= $lv; $i--) {
|
for($i=10; $i >= $lv; $i--) {
|
||||||
if($i % 2 == 0) { echo "<tr>"; }
|
if($i % 2 == 0) { echo "<tr>"; }
|
||||||
@@ -309,7 +309,7 @@ if($meLevel >= 5) {
|
|||||||
<option value=0>____공석____</option>
|
<option value=0>____공석____</option>
|
||||||
";
|
";
|
||||||
|
|
||||||
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
|
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$count = MYDB_num_rows($result);
|
$count = MYDB_num_rows($result);
|
||||||
for($i=0; $i < $count; $i++) {
|
for($i=0; $i < $count; $i++) {
|
||||||
@@ -363,7 +363,7 @@ if($meLevel >= 5) {
|
|||||||
<option value=0>____공석____</option>
|
<option value=0>____공석____</option>
|
||||||
";
|
";
|
||||||
|
|
||||||
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
|
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||||
$count = MYDB_num_rows($result);
|
$count = MYDB_num_rows($result);
|
||||||
for($i=0; $i < $count; $i++) {
|
for($i=0; $i < $count; $i++) {
|
||||||
|
|||||||
@@ -242,12 +242,12 @@ if($btn == "임명" && $level >= 5 && $level <= 11) {
|
|||||||
if($genlist != 0) {
|
if($genlist != 0) {
|
||||||
$valid = 0;
|
$valid = 0;
|
||||||
switch($level) {
|
switch($level) {
|
||||||
case 10: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
|
case 10: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||||
case 9: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
|
case 9: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||||
case 8: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
|
case 8: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||||
case 7: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
|
case 7: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||||
case 6: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
|
case 6: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||||
case 5: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
|
case 5: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||||
default: $valid = 1; break;
|
default: $valid = 1; break;
|
||||||
}
|
}
|
||||||
if($valid == 1) {
|
if($valid == 1) {
|
||||||
@@ -299,8 +299,8 @@ if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) {
|
|||||||
if($genlist != 0) {
|
if($genlist != 0) {
|
||||||
$valid = 0;
|
$valid = 0;
|
||||||
switch($level) {
|
switch($level) {
|
||||||
case 4: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
|
case 4: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||||
case 3: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
|
case 3: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||||
default: $valid = 1; break;
|
default: $valid = 1; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -284,19 +284,19 @@ function getLevel($level, $nlevel=8) {
|
|||||||
|
|
||||||
function getCall($leader, $power, $intel) {
|
function getCall($leader, $power, $intel) {
|
||||||
$call = '평범';
|
$call = '평범';
|
||||||
if($leader >= GameConst::$goodgenleader && $power >= GameConst::$goodgenpower && $intel >= GameConst::$goodgenintel) {
|
if($leader >= GameConst::$chiefStatMin && $power >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
|
||||||
$call = '만능';
|
$call = '만능';
|
||||||
} elseif($leader >= GameConst::$goodgenleader && $power >= GameConst::$goodgenpower) {
|
} elseif($leader >= GameConst::$chiefStatMin && $power >= GameConst::$chiefStatMin) {
|
||||||
$call = '용장';
|
$call = '용장';
|
||||||
} elseif($leader >= GameConst::$goodgenleader && $intel >= GameConst::$goodgenintel) {
|
} elseif($leader >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
|
||||||
$call = '지장';
|
$call = '지장';
|
||||||
} elseif($power >= GameConst::$goodgenpower && $intel >= GameConst::$goodgenintel) {
|
} elseif($power >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
|
||||||
$call = '명장';
|
$call = '명장';
|
||||||
} elseif($leader >= GameConst::$goodgenleader) {
|
} elseif($leader >= GameConst::$chiefStatMin) {
|
||||||
$call = '명사';
|
$call = '명사';
|
||||||
} elseif($power >= GameConst::$goodgenpower) {
|
} elseif($power >= GameConst::$chiefStatMin) {
|
||||||
$call = '용맹';
|
$call = '용맹';
|
||||||
} elseif($intel >= GameConst::$goodgenintel) {
|
} elseif($intel >= GameConst::$chiefStatMin) {
|
||||||
$call = '현명';
|
$call = '현명';
|
||||||
}
|
}
|
||||||
return $call;
|
return $call;
|
||||||
|
|||||||
+1
-70
@@ -5,77 +5,8 @@ namespace sammo;
|
|||||||
* 게임 룰에 해당하는 함수 모음
|
* 게임 룰에 해당하는 함수 모음
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// 37.5 ~ 75
|
|
||||||
function abilityRand() {
|
|
||||||
$total = 150;
|
|
||||||
$leader = (rand()%100 + 1) / 100.0 + 1.0;
|
|
||||||
$power = (rand()%100 + 1) / 100.0 + 1.0;
|
|
||||||
$intel = (rand()%100 + 1) / 100.0 + 1.0;
|
|
||||||
$rate = $leader + $power + $intel;
|
|
||||||
$leader = intdiv($leader * $total, $rate);
|
|
||||||
$power = intdiv($power * $total, $rate);
|
|
||||||
$intel = intdiv($intel * $total, $rate);
|
|
||||||
|
|
||||||
while($leader+$power+$intel < 150) {
|
/**
|
||||||
$leader++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 14 ~ 75
|
|
||||||
function abilityLeadpow() {
|
|
||||||
$total = 150;
|
|
||||||
$leader = (rand()%100 + 1) / 100.0 + 6.0;
|
|
||||||
$power = (rand()%100 + 1) / 100.0 + 6.0;
|
|
||||||
$intel = (rand()%100 + 1) / 100.0 + 1.0;
|
|
||||||
$rate = $leader + $power + $intel;
|
|
||||||
$leader = intdiv($leader * $total, $rate);
|
|
||||||
$power = intdiv($power * $total, $rate);
|
|
||||||
$intel = intdiv($intel * $total, $rate);
|
|
||||||
|
|
||||||
while($leader+$power+$intel < 150) {
|
|
||||||
$leader++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
|
|
||||||
}
|
|
||||||
|
|
||||||
function abilityLeadint() {
|
|
||||||
$total = 150;
|
|
||||||
$leader = (rand()%100 + 1) / 100.0 + 6.0;
|
|
||||||
$power = (rand()%100 + 1) / 100.0 + 1.0;
|
|
||||||
$intel = (rand()%100 + 1) / 100.0 + 6.0;
|
|
||||||
$rate = $leader + $power + $intel;
|
|
||||||
$leader = intdiv($leader * $total, $rate);
|
|
||||||
$power = intdiv($power * $total, $rate);
|
|
||||||
$intel = intdiv($intel * $total, $rate);
|
|
||||||
|
|
||||||
while($leader+$power+$intel < 150) {
|
|
||||||
$leader++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
|
|
||||||
}
|
|
||||||
|
|
||||||
function abilityPowint() {
|
|
||||||
$total = 150;
|
|
||||||
$leader = (rand()%100 + 1) / 100.0 + 1.0;
|
|
||||||
$power = (rand()%100 + 1) / 100.0 + 6.0;
|
|
||||||
$intel = (rand()%100 + 1) / 100.0 + 6.0;
|
|
||||||
$rate = $leader + $power + $intel;
|
|
||||||
$leader = intdiv($leader * $total, $rate);
|
|
||||||
$power = intdiv($power * $total, $rate);
|
|
||||||
$intel = intdiv($intel * $total, $rate);
|
|
||||||
|
|
||||||
while($leader+$power+$intel < 150) {
|
|
||||||
$leader++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 게임 내부에 사용하는 유틸리티 함수들을 분리
|
* 게임 내부에 사용하는 유틸리티 함수들을 분리
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
+15
-15
@@ -2059,19 +2059,19 @@ function process_76(&$general) {
|
|||||||
$type = rand() % 10;
|
$type = rand() % 10;
|
||||||
switch($type) {
|
switch($type) {
|
||||||
case 0: case 1: case 2: case 3:
|
case 0: case 1: case 2: case 3:
|
||||||
$leader = 65 + rand()%11;
|
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
|
||||||
$intel = 10 + rand()%6;
|
$intel = GameConst::$defaultStatMin + rand()%6;
|
||||||
$power = 150 - $leader - $intel;
|
$power = GameConst::$defaultStatTotal - $leader - $intel;
|
||||||
break;
|
break;
|
||||||
case 4: case 5: case 6: case 7:
|
case 4: case 5: case 6: case 7:
|
||||||
$leader = 65 + rand()%11;
|
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
|
||||||
$power = 10 + rand()%6;
|
$power = GameConst::$defaultStatMin + rand()%6;
|
||||||
$intel = 150 - $leader - $power;
|
$intel = GameConst::$defaultStatTotal - $leader - $power;
|
||||||
break;
|
break;
|
||||||
case 8: case 9:
|
case 8: case 9:
|
||||||
$leader = 10 + rand()%6;
|
$leader = GameConst::$defaultStatMin + rand()%6;
|
||||||
$power = 65 + rand()%11;
|
$power = GameConst::$defaultStatMax - 10 + rand()%11;
|
||||||
$intel = 150 - $leader - $power;
|
$intel = GameConst::$defaultStatTotal - $leader - $power;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// 국내 최고능치 기준으로 랜덤성 스케일링
|
// 국내 최고능치 기준으로 랜덤성 스케일링
|
||||||
@@ -2111,14 +2111,14 @@ function process_76(&$general) {
|
|||||||
$power = $power + $over1 + $over2 + $over3;
|
$power = $power + $over1 + $over2 + $over3;
|
||||||
}
|
}
|
||||||
// 너무 높은 능치는 제한
|
// 너무 높은 능치는 제한
|
||||||
if($leader > 95) {
|
if($leader > GameConst::$defaultStatNPCMax) {
|
||||||
$leader = 95;
|
$leader = GameConst::$defaultStatNPCMax;
|
||||||
}
|
}
|
||||||
if($power > 95) {
|
if($power > GameConst::$defaultStatNPCMax) {
|
||||||
$power = 95;
|
$power = GameConst::$defaultStatNPCMax;
|
||||||
}
|
}
|
||||||
if($intel > 95) {
|
if($intel > GameConst::$defaultStatNPCMax) {
|
||||||
$intel = 95;
|
$intel = GameConst::$defaultStatNPCMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
$npccount = 10000 + $npcid;
|
$npccount = 10000 + $npcid;
|
||||||
|
|||||||
@@ -276,37 +276,37 @@ function process_29(&$general) {
|
|||||||
if($admin['scenario'] == 0) {
|
if($admin['scenario'] == 0) {
|
||||||
switch($type) {
|
switch($type) {
|
||||||
case 0: case 1:
|
case 0: case 1:
|
||||||
$leader = 65 + rand()%11;
|
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
|
||||||
$intel = 10 + rand()%6;
|
$intel = GameConst::$defaultStatMin + rand()%6;
|
||||||
$power = 150 - $leader - $intel;
|
$power = GameConst::$defaultStatTotal - $leader - $intel;
|
||||||
break;
|
break;
|
||||||
case 2: case 3:
|
case 2: case 3:
|
||||||
$leader = 65 + rand()%11;
|
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
|
||||||
$power = 10 + rand()%6;
|
$power = GameConst::$defaultStatMin + rand()%6;
|
||||||
$intel = 150 - $leader - $power;
|
$intel = GameConst::$defaultStatTotal - $leader - $power;
|
||||||
break;
|
break;
|
||||||
case 4: case 5: case 6: case 7: case 8: case 9:
|
case 4: case 5: case 6: case 7: case 8: case 9:
|
||||||
$leader = 10 + rand()%6;
|
$leader = GameConst::$defaultStatMin + rand()%6;
|
||||||
$power = 65 + rand()%11;
|
$power = GameConst::$defaultStatMax - 10 + rand()%11;
|
||||||
$intel = 150 - $leader - $power;
|
$intel = GameConst::$defaultStatTotal - $leader - $power;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch($type) {
|
switch($type) {
|
||||||
case 0: case 1: case 2: case 3:
|
case 0: case 1: case 2: case 3:
|
||||||
$leader = 65 + rand()%11;
|
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
|
||||||
$intel = 10 + rand()%6;
|
$intel = GameConst::$defaultStatMin + rand()%6;
|
||||||
$power = 150 - $leader - $intel;
|
$power = GameConst::$defaultStatTotal - $leader - $intel;
|
||||||
break;
|
break;
|
||||||
case 4: case 5: case 6: case 7:
|
case 4: case 5: case 6: case 7:
|
||||||
$leader = 65 + rand()%11;
|
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
|
||||||
$power = 10 + rand()%6;
|
$power = GameConst::$defaultStatMin + rand()%6;
|
||||||
$intel = 150 - $leader - $power;
|
$intel = GameConst::$defaultStatTotal - $leader - $power;
|
||||||
break;
|
break;
|
||||||
case 8: case 9:
|
case 8: case 9:
|
||||||
$leader = 10 + rand()%6;
|
$leader = GameConst::$defaultStatMin + rand()%6;
|
||||||
$power = 65 + rand()%11;
|
$power = GameConst::$defaultStatMax - 10 + rand()%11;
|
||||||
$intel = 150 - $leader - $power;
|
$intel = GameConst::$defaultStatTotal - $leader - $power;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-2
@@ -32,6 +32,11 @@ $connect=$db->get();
|
|||||||
<head>
|
<head>
|
||||||
<title><?=UniqueConst::$serverName?>: 장수생성</title>
|
<title><?=UniqueConst::$serverName?>: 장수생성</title>
|
||||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||||
|
<script>
|
||||||
|
var defaultStatTotal = <?=GameConst::$defaultStatTotal?>;
|
||||||
|
var defaultStatMin = <?=GameConst::$defaultStatMin?>;
|
||||||
|
var defaultStatMax = <?=GameConst::$defaultStatMax?>;
|
||||||
|
</script>
|
||||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||||
<?=WebUtil::printCSS('css/common.css')?>
|
<?=WebUtil::printCSS('css/common.css')?>
|
||||||
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
|
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
|
||||||
@@ -156,13 +161,13 @@ if ($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture']
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align=center colspan=3>
|
<td align=center colspan=3>
|
||||||
<font color=orange>모든 능력치는 ( 10 <= 능력치 <= 75 ) 사이로 잡으셔야 합니다.<br>
|
<font color=orange>모든 능력치는 ( 10 <= 능력치 <= <?=GameConst::$defaultStatMax?> ) 사이로 잡으셔야 합니다.<br>
|
||||||
그 외의 능력치는 가입되지 않습니다.</font>
|
그 외의 능력치는 가입되지 않습니다.</font>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align=center colspan=3>
|
<td align=center colspan=3>
|
||||||
능력치의 총합은 150입니다. 가입후 0~10의 능력치 보너스를 받게 됩니다.<br>
|
능력치의 총합은 <?=GameConst::$defaultStatTotal?>입니다. 가입후 0~10의 능력치 보너스를 받게 됩니다.<br>
|
||||||
임의의 도시에서 재야로 시작하며 건국과 임관은 게임 내에서 실행합니다.
|
임의의 도시에서 재야로 시작하며 건국과 임관은 게임 내에서 실행합니다.
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
+4
-4
@@ -23,12 +23,12 @@ $v
|
|||||||
'leader',
|
'leader',
|
||||||
'power',
|
'power',
|
||||||
'intel'
|
'intel'
|
||||||
], 10)
|
], GameConst::$defaultStatMin)
|
||||||
->rule('max', [
|
->rule('max', [
|
||||||
'leader',
|
'leader',
|
||||||
'power',
|
'power',
|
||||||
'intel'
|
'intel'
|
||||||
], 75)
|
], GameConst::$defaultStatMax)
|
||||||
->rule('min', 'character', 0)
|
->rule('min', 'character', 0)
|
||||||
->rule('max', 'character', 11);
|
->rule('max', 'character', 11);
|
||||||
|
|
||||||
@@ -109,9 +109,9 @@ if (mb_strlen($name) > 6) {
|
|||||||
</script>");
|
</script>");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
if ($leader + $power + $intel > 150) {
|
if ($leader + $power + $intel > GameConst::$defaultStatTotal) {
|
||||||
echo("<script>
|
echo("<script>
|
||||||
window.alert('능력치가 150을 넘어섰습니다. 다시 가입해주세요!')
|
window.alert('능력치가 ".GameConst::$defaultStatTotal."을 넘어섰습니다. 다시 가입해주세요!')
|
||||||
history.go(-1)
|
history.go(-1)
|
||||||
</script>");
|
</script>");
|
||||||
exit;
|
exit;
|
||||||
|
|||||||
+59
-46
@@ -1,7 +1,5 @@
|
|||||||
|
|
||||||
jQuery(function($){
|
jQuery(function($){
|
||||||
|
|
||||||
var totalAbil = 150;
|
|
||||||
var $leader = $('#leader');
|
var $leader = $('#leader');
|
||||||
var $power = $('#power');
|
var $power = $('#power');
|
||||||
var $intel = $('#intel');
|
var $intel = $('#intel');
|
||||||
@@ -12,16 +10,16 @@ jQuery(function($){
|
|||||||
var intel = Math.random()*65 + 10;
|
var intel = Math.random()*65 + 10;
|
||||||
var rate = leader + power + intel;
|
var rate = leader + power + intel;
|
||||||
|
|
||||||
leader = Math.floor(leader / rate * totalAbil);
|
leader = Math.floor(leader / rate * defaultStatTotal);
|
||||||
power = Math.floor(power / rate * totalAbil);
|
power = Math.floor(power / rate * defaultStatTotal);
|
||||||
intel = Math.floor(intel / rate * totalAbil);
|
intel = Math.floor(intel / rate * defaultStatTotal);
|
||||||
|
|
||||||
|
|
||||||
while(leader+power+intel < totalAbil){
|
while(leader+power+intel < defaultStatTotal){
|
||||||
leader+=1;
|
leader+=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(leader > 75 || power > 75 || intel > 75 || leader < 10 || power < 10 || intel < 10){
|
if(leader > defaultStatMax || power > defaultStatMax || intel > defaultStatMax || leader < defaultStatMin || power < defaultStatMin || intel < defaultStatMin){
|
||||||
return abilityRand();
|
return abilityRand();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,27 +35,32 @@ jQuery(function($){
|
|||||||
var intel = Math.random() * 1;
|
var intel = Math.random() * 1;
|
||||||
var rate = leader + power + intel;
|
var rate = leader + power + intel;
|
||||||
|
|
||||||
leader = Math.floor(leader / rate * totalAbil);
|
leader = Math.floor(leader / rate * defaultStatTotal);
|
||||||
power = Math.floor(power / rate * totalAbil);
|
power = Math.floor(power / rate * defaultStatTotal);
|
||||||
intel = Math.floor(intel / rate * totalAbil);
|
intel = Math.floor(intel / rate * defaultStatTotal);
|
||||||
|
|
||||||
while(leader+power+intel < totalAbil){
|
while(leader+power+intel < defaultStatTotal){
|
||||||
power+=1;
|
power+=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(intel < 10){
|
if(intel < defaultStatMin){
|
||||||
leader -= 10 - intel;
|
leader -= defaultStatMin - intel;
|
||||||
intel = 10;
|
intel = defaultStatMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(leader > 75){
|
if(leader > defaultStatMax){
|
||||||
power += leader - 75;
|
power += leader - defaultStatMax;
|
||||||
leader = 75;
|
leader = defaultStatMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(power > 75){
|
if(power > defaultStatMax){
|
||||||
leader += power - 75;
|
leader += power - defaultStatMax;
|
||||||
power = 75;
|
power = defaultStatMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(leader > defaultStatMax){
|
||||||
|
intel += leader - defaultStatMax;
|
||||||
|
leader = defaultStatMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
$leader.val(leader);
|
$leader.val(leader);
|
||||||
@@ -71,27 +74,32 @@ jQuery(function($){
|
|||||||
var intel = Math.random() * 6;
|
var intel = Math.random() * 6;
|
||||||
var rate = leader + power + intel;
|
var rate = leader + power + intel;
|
||||||
|
|
||||||
leader = Math.floor(leader / rate * totalAbil);
|
leader = Math.floor(leader / rate * defaultStatTotal);
|
||||||
power = Math.floor(power / rate * totalAbil);
|
power = Math.floor(power / rate * defaultStatTotal);
|
||||||
intel = Math.floor(intel / rate * totalAbil);
|
intel = Math.floor(intel / rate * defaultStatTotal);
|
||||||
|
|
||||||
while(leader+power+intel < totalAbil){
|
while(leader+power+intel < defaultStatTotal){
|
||||||
intel+=1;
|
intel+=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(power < 10){
|
if(power < defaultStatMin){
|
||||||
leader -= 10 - power;
|
leader -= defaultStatMin - power;
|
||||||
power = 10;
|
power = defaultStatMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(leader > 75){
|
if(leader > defaultStatMax){
|
||||||
intel += leader - 75;
|
intel += leader - defaultStatMax;
|
||||||
leader = 75;
|
leader = defaultStatMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(intel > 75){
|
if(intel > defaultStatMax){
|
||||||
leader += intel - 75;
|
leader += intel - defaultStatMax;
|
||||||
intel = 75;
|
intel = defaultStatMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(leader > defaultStatMax){
|
||||||
|
power += leader - defaultStatMax;
|
||||||
|
leader = defaultStatMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
$leader.val(leader);
|
$leader.val(leader);
|
||||||
@@ -105,27 +113,32 @@ jQuery(function($){
|
|||||||
var intel = Math.random() * 6;
|
var intel = Math.random() * 6;
|
||||||
var rate = leader + power + intel;
|
var rate = leader + power + intel;
|
||||||
|
|
||||||
leader = Math.floor(leader / rate * totalAbil);
|
leader = Math.floor(leader / rate * defaultStatTotal);
|
||||||
power = Math.floor(power / rate * totalAbil);
|
power = Math.floor(power / rate * defaultStatTotal);
|
||||||
intel = Math.floor(intel / rate * totalAbil);
|
intel = Math.floor(intel / rate * defaultStatTotal);
|
||||||
|
|
||||||
while(leader+power+intel < totalAbil){
|
while(leader+power+intel < defaultStatTotal){
|
||||||
intel+=1;
|
intel+=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(leader < 10){
|
if(leader < defaultStatMin){
|
||||||
power -= 10 - leader;
|
power -= defaultStatMin - leader;
|
||||||
leader = 10;
|
leader = defaultStatMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(power > 75){
|
if(power > defaultStatMax){
|
||||||
intel += power - 75;
|
intel += power - defaultStatMax;
|
||||||
power = 75;
|
power = defaultStatMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(intel > 75){
|
if(intel > defaultStatMax){
|
||||||
power += intel - 75;
|
power += intel - defaultStatMax;
|
||||||
intel = 75;
|
intel = defaultStatMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(power > defaultStatMax){
|
||||||
|
leader += power - defaultStatMax;
|
||||||
|
power = defaultStatMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
$leader.val(leader);
|
$leader.val(leader);
|
||||||
|
|||||||
+2
-4
@@ -7,11 +7,9 @@ $loader->addPsr4('sammo\\', __DIR__.'/sammo', true);
|
|||||||
|
|
||||||
$loader->addClassMap((function () {
|
$loader->addClassMap((function () {
|
||||||
$d_settingMap = [];
|
$d_settingMap = [];
|
||||||
foreach (glob(__dir__.'/d_setting/*.php') as $filepath) {
|
foreach (glob(__dir__.'/d_setting/*.orig.php') as $filepath) {
|
||||||
|
$filepath = str_replace('.orig.php', '.php', $filepath);
|
||||||
$filename = basename($filepath);
|
$filename = basename($filepath);
|
||||||
if (Util::ends_with($filename, '.orig.php')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$classname = explode('.', $filename)[0];
|
$classname = explode('.', $filename)[0];
|
||||||
$d_settingMap['sammo\\'.$classname] = $filepath;
|
$d_settingMap['sammo\\'.$classname] = $filepath;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace sammo;
|
namespace sammo;
|
||||||
|
|
||||||
class GameConst
|
class GameConst extends GameCustomConst
|
||||||
{
|
{
|
||||||
/** @var string 버전 */
|
/** @var string 버전 */
|
||||||
public static $title = "삼국지 모의전투 PHP HiDCHe";
|
public static $title = "삼국지 모의전투 PHP HiDCHe";
|
||||||
@@ -45,12 +45,6 @@ class GameConst
|
|||||||
public static $sabotageDefaultAmount = 100;
|
public static $sabotageDefaultAmount = 100;
|
||||||
/** @var int 계략시 수치 감소량($firingbase ~ $firingpower)*/
|
/** @var int 계략시 수치 감소량($firingbase ~ $firingpower)*/
|
||||||
public static $sabotageAmountCoef = 400;
|
public static $sabotageAmountCoef = 400;
|
||||||
/** @var int 명장,지장에 사용될 통솔 제한*/
|
|
||||||
public static $goodgenleader = 65;
|
|
||||||
/** @var int 명장에 사용될 무력 제한*/
|
|
||||||
public static $goodgenpower = 65;
|
|
||||||
/** @var int 지장에 사용될 지력 제한*/
|
|
||||||
public static $goodgenintel = 65;
|
|
||||||
/** @var string 기본 배경색깔 푸른색*/
|
/** @var string 기본 배경색깔 푸른색*/
|
||||||
public static $basecolor = "#000044";
|
public static $basecolor = "#000044";
|
||||||
/** @var string 기본 배경색깔 초록색*/
|
/** @var string 기본 배경색깔 초록색*/
|
||||||
|
|||||||
@@ -127,8 +127,9 @@ class ResetHelper{
|
|||||||
}
|
}
|
||||||
|
|
||||||
$scenarioObj = new Scenario($scenario, false);
|
$scenarioObj = new Scenario($scenario, false);
|
||||||
$startyear = $scenarioObj->getYear()??GameConst::$defaultStartYear;
|
$scenarioObj->buildConf();
|
||||||
|
|
||||||
|
$startyear = $scenarioObj->getYear()??GameConst::$defaultStartYear;
|
||||||
|
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
@@ -160,6 +161,8 @@ class ResetHelper{
|
|||||||
$killturn = 4800 / $turnterm;
|
$killturn = 4800 / $turnterm;
|
||||||
if($npcmode == 1) { $killturn = intdiv($killturn, 3); }
|
if($npcmode == 1) { $killturn = intdiv($killturn, 3); }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$env = [
|
$env = [
|
||||||
'scenario'=>$scenario,
|
'scenario'=>$scenario,
|
||||||
'scenario_text'=>$scenarioObj->getTitle(),
|
'scenario_text'=>$scenarioObj->getTitle(),
|
||||||
|
|||||||
@@ -148,6 +148,24 @@ class Scenario{
|
|||||||
}, Util::array_get($data['events'], []));
|
}, Util::array_get($data['events'], []));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getGameConf(){
|
||||||
|
$defaultPath = self::SCENARIO_PATH."/default.json";
|
||||||
|
if(!file_exists($defaultPath)){
|
||||||
|
throw new \RuntimeException('기본 시나리오 설정 파일 없음!');
|
||||||
|
}
|
||||||
|
$default = Json::decode(file_get_contents($defaultPath));
|
||||||
|
|
||||||
|
$stat = [
|
||||||
|
'statTotal'=>$this->data['stat']['total']??$default['stat']['total'],
|
||||||
|
'statMin'=>$this->data['stat']['min']??$default['stat']['min'],
|
||||||
|
'statMax'=>$this->data['stat']['max']??$default['stat']['max'],
|
||||||
|
'statNPCMax'=>$this->data['stat']['npcMax']??$default['stat']['npcMax'],
|
||||||
|
'statChiefMin'=>$this->data['stat']['chiefMin']??$default['stat']['chiefMin'],
|
||||||
|
];
|
||||||
|
|
||||||
|
$this->gameConf = array_merge($stat);
|
||||||
|
}
|
||||||
|
|
||||||
public function __construct(int $scenarioIdx, bool $lazyInit = true){
|
public function __construct(int $scenarioIdx, bool $lazyInit = true){
|
||||||
$scenarioPath = self::SCENARIO_PATH."/scenario_{$scenarioIdx}.json";
|
$scenarioPath = self::SCENARIO_PATH."/scenario_{$scenarioIdx}.json";
|
||||||
|
|
||||||
@@ -157,6 +175,8 @@ class Scenario{
|
|||||||
$data = Json::decode(file_get_contents($scenarioPath));
|
$data = Json::decode(file_get_contents($scenarioPath));
|
||||||
$this->data = $data;
|
$this->data = $data;
|
||||||
|
|
||||||
|
$this->getGameConf();
|
||||||
|
|
||||||
$this->year = Util::array_get($data['startYear']);
|
$this->year = Util::array_get($data['startYear']);
|
||||||
$this->title = Util::array_get($data['title'] , '');
|
$this->title = Util::array_get($data['title'] , '');
|
||||||
|
|
||||||
@@ -292,7 +312,19 @@ class Scenario{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function buildConf(){
|
||||||
|
$path = __dir__.'/../d_setting';
|
||||||
|
Util::generateFileUsingSimpleTemplate(
|
||||||
|
$path.'/GameCustomConst.orig.php',
|
||||||
|
$path.'/GameCustomConst.php',
|
||||||
|
$this->gameConf,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public function build($env=[]){
|
public function build($env=[]){
|
||||||
|
|
||||||
|
|
||||||
$this->initFull();
|
$this->initFull();
|
||||||
|
|
||||||
//NOTE: 초기화가 되어있다고 가정함.
|
//NOTE: 초기화가 되어있다고 가정함.
|
||||||
@@ -306,6 +338,9 @@ class Scenario{
|
|||||||
event변수 : currentEventID
|
event변수 : currentEventID
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
|
|
||||||
foreach($this->nations as $id=>$nation){
|
foreach($this->nations as $id=>$nation){
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
"stat":{
|
"stat":{
|
||||||
"total":150,
|
"total":150,
|
||||||
"min":10,
|
"min":10,
|
||||||
"max":75
|
"max":75,
|
||||||
|
"npcMax":95,
|
||||||
|
"chiefMin":65
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,7 +9,8 @@
|
|||||||
"stat":{
|
"stat":{
|
||||||
"total":220,
|
"total":220,
|
||||||
"min":10,
|
"min":10,
|
||||||
"max":95
|
"max":95,
|
||||||
|
"npcMax":95
|
||||||
},
|
},
|
||||||
"general":[
|
"general":[
|
||||||
[0, "김일융", -1, 0, null, 88, 83, 79, 0, 160, 300, null, null],
|
[0, "김일융", -1, 0, null, 88, 83, 79, 0, 160, 300, null, null],
|
||||||
|
|||||||
@@ -9,7 +9,8 @@
|
|||||||
"stat":{
|
"stat":{
|
||||||
"total":220,
|
"total":220,
|
||||||
"min":10,
|
"min":10,
|
||||||
"max":95
|
"max":95,
|
||||||
|
"npcMax":95
|
||||||
},
|
},
|
||||||
"general":[
|
"general":[
|
||||||
[0, "가규", -1, 0, null, 78, 61, 84, 0, 160, 300, null, null],
|
[0, "가규", -1, 0, null, 78, 61, 84, 0, 160, 300, null, null],
|
||||||
|
|||||||
Reference in New Issue
Block a user