leader->leadership, power->strength

This commit is contained in:
2019-10-04 18:07:42 +09:00
parent 71254e86f4
commit 843f469914
101 changed files with 770 additions and 769 deletions
+1 -1
View File
@@ -106,7 +106,7 @@ switch($btn) {
[$year, $month] = $gameStor->getValuesAsArray(['year', 'month']);
$text = "특기 부여!";
foreach($db->query("SELECT `no`,leader,power,intel,dex0,dex10,dex20,dex30,dex40 FROM general WHERE `no` IN %li", $genlist) as $general){
foreach($db->query("SELECT `no`,leadership,strength,intel,dex0,dex10,dex20,dex30,dex40 FROM general WHERE `no` IN %li", $genlist) as $general){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($general['no']), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
$msg->send(true);
+7 -7
View File
@@ -181,8 +181,8 @@ switch($type) {
case 4: $query .= " order by A.rice desc"; break;
case 5: $query .= " order by avg(B.gold) desc"; break;
case 6: $query .= " order by avg(B.rice) desc"; break;
case 7: $query .= " order by avg(B.leader) desc"; break;
case 8: $query .= " order by avg(B.power) desc"; break;
case 7: $query .= " order by avg(B.leadership) desc"; break;
case 8: $query .= " order by avg(B.strength) desc"; break;
case 9: $query .= " order by avg(B.intel) desc"; break;
case 10: $query .= " order by avg(B.explevel) desc"; break;
case 11: $query .= " order by avg(B.connect) desc"; break;
@@ -201,8 +201,8 @@ for($i=0; $i < $nationCount; $i++) {
$query = "select COUNT(*) as cnt,
ROUND(AVG(gold)) as avgg,
ROUND(AVG(rice)) as avgr,
SUM(leader) as leader, ROUND(AVG(leader), 1) as avgl,
ROUND(AVG(power), 1) as avgp,
SUM(leadership) as leadership, ROUND(AVG(leadership), 1) as avgl,
ROUND(AVG(strength), 1) as avgs,
ROUND(AVG(intel), 1) as avgi,
ROUND(AVG(explevel), 1) as avge,
SUM(crew) as crew
@@ -227,7 +227,7 @@ for($i=0; $i < $nationCount; $i++) {
<td align=center style=background-color:{$nation['color']};color:".newColor($nation['color']).";>{$nation['name']}</td>
<td align=center>&nbsp;{$nation['connect']}&nbsp;</td>
<td align=center>&nbsp;{$nation['con']}&nbsp;</td>
<td align=center>&nbsp;{$nation['power']}&nbsp;</td>
<td align=center>&nbsp;{$nation['strength']}&nbsp;</td>
<td align=center>&nbsp;{$gen['cnt']}&nbsp;</td>
<td align=center>&nbsp;{$city['cnt']}&nbsp;</td>
<td align=center>&nbsp;{$nation['tech']}&nbsp;</td>
@@ -237,7 +237,7 @@ for($i=0; $i < $nationCount; $i++) {
<td align=center>&nbsp;{$gen['avgg']}&nbsp;</td>
<td align=center>&nbsp;{$gen['avgr']}&nbsp;</td>
<td align=center>&nbsp;{$gen['avgl']}&nbsp;</td>
<td align=center>&nbsp;{$gen['avgp']}&nbsp;</td>
<td align=center>&nbsp;{$gen['avgs']}&nbsp;</td>
<td align=center>&nbsp;{$gen['avgi']}&nbsp;</td>
<td align=center>&nbsp;{$gen['avge']}&nbsp;</td>
<td align=center>&nbsp;{$nation['dex0']}&nbsp;</td>
@@ -245,7 +245,7 @@ for($i=0; $i < $nationCount; $i++) {
<td align=center>&nbsp;{$nation['dex20']}&nbsp;</td>
<td align=center>&nbsp;{$nation['dex30']}&nbsp;</td>
<td align=center>&nbsp;{$nation['dex40']}&nbsp;</td>
<td align=center>&nbsp;{$gen['crew']}/{$gen['leader']}00&nbsp;</td>
<td align=center>&nbsp;{$gen['crew']}/{$gen['leadership']}00&nbsp;</td>
<td align=center>&nbsp;{$city['pop']}/{$city['pop2']}&nbsp;</td>
<td align=center>&nbsp;".round($city['trust'],1)."%&nbsp;</td>
<td align=center>&nbsp;{$city['agri']}%&nbsp;</td>
+2 -2
View File
@@ -127,12 +127,12 @@ $types = [
return $v;
}],
["일 기 토 승 률", "percent", function($v){
$totalCnt = $v['tpw']+$v['tpd']+$v['tpl'];
$totalCnt = $v['tsw']+$v['tsd']+$v['tsl'];
if($totalCnt < 50){
$v['value'] = 0;
}
else{
$v['value'] = $v['tpw']/max(1, $totalCnt);
$v['value'] = $v['tsw']/max(1, $totalCnt);
}
return $v;
}],
+13 -13
View File
@@ -89,8 +89,8 @@ foreach (getAllNationStaticInfo() as $nation) {
[$orderKey, $orderDesc] = [
1=>['nation', false],
2=>['leader', true],
3=>['power', true],
2=>['leadership', true],
3=>['strength', true],
4=>['intel', true],
5=>['experience', true],
6=>['dedication', true],
@@ -105,7 +105,7 @@ foreach (getAllNationStaticInfo() as $nation) {
15=>['npc', true],
][$type];
$generalList = $db->query('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by %b %l', $orderKey, $orderDesc?'desc':'');
$generalList = $db->query('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leadership,strength,intel,experience,dedication,level,killturn,connect from general order by %b %l', $orderKey, $orderDesc?'desc':'');
echo"
<table align=center width=1000 class='tb_layout bg0'>
@@ -137,15 +137,15 @@ foreach($generalList as $general){
}
if ($general['injury'] > 0) {
$leader = intdiv($general['leader'] * (100 - $general['injury']), 100);
$power = intdiv($general['power'] * (100 - $general['injury']), 100);
$leadership = intdiv($general['leadership'] * (100 - $general['injury']), 100);
$strength = intdiv($general['strength'] * (100 - $general['injury']), 100);
$intel = intdiv($general['intel'] * (100 - $general['injury']), 100);
$leader = "<font color=red>{$leader}</font>{$lbonusText}";
$power = "<font color=red>{$power}</font>";
$leadership = "<font color=red>{$leadership}</font>{$lbonusText}";
$strength = "<font color=red>{$strength}</font>";
$intel = "<font color=red>{$intel}</font>";
} else {
$leader = "{$general['leader']}{$lbonusText}";
$power = "{$general['power']}";
$leadership = "{$general['leadership']}{$lbonusText}";
$strength = "{$general['strength']}";
$intel = "{$general['intel']}";
}
@@ -169,9 +169,9 @@ foreach($generalList as $general){
echo "
<tr data-general-id='{$general['no']}'
data-general-wounded='{$general['injury']}'
data-general-leadership='{$general['leader']}'
data-general-leadership='{$general['leadership']}'
data-general-leadership-bonus='{$lbonus}'
data-general-power='{$general['power']}'
data-general-strength='{$general['strength']}'
data-general-intel='{$general['intel']}'
data-is-npc='".($general['npc']>=2?'true':'false')."'
>
@@ -187,8 +187,8 @@ foreach($generalList as $general){
<td align=center>";
echo getLevel($general['level']);
echo "</td>
<td align=center>$leader</td>
<td align=center>$power</td>
<td align=center>$leadership</td>
<td align=center>$strength</td>
<td align=center>$intel</td>
<td align=center>{$general['killturn']}</td>
<td align=center>{$general['connect']}";
+10 -10
View File
@@ -62,14 +62,14 @@ foreach (getAllNationStaticInfo() as $nation) {
switch ($type) {//FIXME: $query 처리 부실
default:
case 1: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by binary(name)"; break;
case 2: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by nation"; break;
case 3: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by sum desc"; break;
case 4: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by leader"; break;
case 5: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by power"; break;
case 6: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by intel"; break;
case 7: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by experience"; break;
case 8: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by dedication"; break;
case 1: $query = "select npc,nation,name,name2,special,special2,personal,leadership,strength,intel,leadership+strength+intel as sum,explevel,experience,dedication from general where npc=1 order by binary(name)"; break;
case 2: $query = "select npc,nation,name,name2,special,special2,personal,leadership,strength,intel,leadership+strength+intel as sum,explevel,experience,dedication from general where npc=1 order by nation"; break;
case 3: $query = "select npc,nation,name,name2,special,special2,personal,leadership,strength,intel,leadership+strength+intel as sum,explevel,experience,dedication from general where npc=1 order by sum desc"; break;
case 4: $query = "select npc,nation,name,name2,special,special2,personal,leadership,strength,intel,leadership+strength+intel as sum,explevel,experience,dedication from general where npc=1 order by leadership"; break;
case 5: $query = "select npc,nation,name,name2,special,special2,personal,leadership,strength,intel,leadership+strength+intel as sum,explevel,experience,dedication from general where npc=1 order by strength"; break;
case 6: $query = "select npc,nation,name,name2,special,special2,personal,leadership,strength,intel,leadership+strength+intel as sum,explevel,experience,dedication from general where npc=1 order by intel"; break;
case 7: $query = "select npc,nation,name,name2,special,special2,personal,leadership,strength,intel,leadership+strength+intel as sum,explevel,experience,dedication from general where npc=1 order by experience"; break;
case 8: $query = "select npc,nation,name,name2,special,special2,personal,leadership,strength,intel,leadership+strength+intel as sum,explevel,experience,dedication from general where npc=1 order by dedication"; break;
}
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gencount = MYDB_num_rows($genresult);
@@ -111,8 +111,8 @@ for ($j=0; $j < $gencount; $j++) {
<td align=center>".displayCharInfo($general['personal'])."</td>
<td align=center>".displaySpecialDomesticInfo($general['special'])." / ".displaySpecialWarInfo($general['special2'])."</td>
<td align=center>{$general['sum']}</td>
<td align=center>{$general['leader']}</td>
<td align=center>{$general['power']}</td>
<td align=center>{$general['leadership']}</td>
<td align=center>{$general['strength']}</td>
<td align=center>{$general['intel']}</td>
<td align=center>{$general['experience']}</td>
<td align=center>{$general['dedication']}</td>
+7 -7
View File
@@ -32,10 +32,10 @@ if ($con >= 2) {
switch ($admin['tnmt_type']) {
default: throw new \RuntimeException('Invalid tnmt_type');break;
case 0: $tnmt_type = "<font color=cyan>전력전</font>"; $tp = "tot"; $tp2 = "종합"; $tp3 = "total"; break;
case 1: $tnmt_type = "<font color=cyan>통솔전</font>"; $tp = "ldr"; $tp2 = "통솔"; $tp3 = "leader"; break;
case 2: $tnmt_type = "<font color=cyan>일기토</font>"; $tp = "pwr"; $tp2 = "무력"; $tp3 = "power"; break;
case 3: $tnmt_type = "<font color=cyan>설전</font>"; $tp = "itl"; $tp2 = "지력"; $tp3 = "intel"; break;
case 0: $tnmt_type = "<font color=cyan>전력전</font>"; $tp = "total"; $tp2 = "종합"; $tp3 = "total"; break;
case 1: $tnmt_type = "<font color=cyan>통솔전</font>"; $tp = "leadership"; $tp2 = "통솔"; $tp3 = "leadership"; break;
case 2: $tnmt_type = "<font color=cyan>일기토</font>"; $tp = "strength"; $tp2 = "무력"; $tp3 = "strength"; break;
case 3: $tnmt_type = "<font color=cyan>설전</font>"; $tp = "intel"; $tp2 = "지력"; $tp3 = "intel"; break;
}
$str1 = getTournament($admin['tournament']);
@@ -401,8 +401,8 @@ if ($admin['tournament'] == 6) {
$type1 = array("전 력 전", "통 솔 전", "일 기 토", "설 전");
$type2 = array("종합", "통솔", "무력", "지력");
$type3 = array("tt", "tl", "tp", "ti");
$type4 = array("total", "leader", "power", "intel");
$type3 = array("tt", "tl", "ts", "ti");
$type4 = array("total", "leadership", "strength", "intel");
for ($i=0; $i < 4; $i++) {
$grp = $i;
@@ -412,7 +412,7 @@ for ($i=0; $i < 4; $i++) {
<tr><td colspan=9 align=center style=color:white;background-color:black;><font size=4>{$type1[$i]}</font></td></tr>
<tr id=bg1><td align=center>순</td><td align=center>장수</td><td align=center>{$type2[$i]}</td><td align=center>경</td><td align=center>승</td><td align=center>무</td><td align=center>패</td><td align=center>점</td><td align=center>勝</td></tr>";
$query = "select npc,name,leader,power,intel,leader+power+intel as total,{$type3[$i]}p as prize,{$type3[$i]}w+{$type3[$i]}d+{$type3[$i]}l as game,{$type3[$i]}w as win,{$type3[$i]}d as draw,{$type3[$i]}l as lose,{$type3[$i]}g as gl from general order by gl desc, game desc, win desc, draw desc, lose, no limit 0,30";
$query = "select npc,name,leadership,strength,intel,leadership+strength+intel as total,{$type3[$i]}p as prize,{$type3[$i]}w+{$type3[$i]}d+{$type3[$i]}l as game,{$type3[$i]}w as win,{$type3[$i]}d as draw,{$type3[$i]}l as lose,{$type3[$i]}g as gl from general order by gl desc, game desc, win desc, draw desc, lose, no limit 0,30";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
for ($k=1; $k <= 30; $k++) {
$general = MYDB_fetch_array($result);
+7 -7
View File
@@ -188,12 +188,12 @@ if($city['trade'] === null) {
$city['trade'] = "- ";
}
$query = "select npc,mode,no,picture,imgsvr,name,injury,leader,power,intel,level,nation,crewtype,crew,train,atmos from general where city='{$city['city']}' order by dedication desc"; // 장수 목록
$query = "select npc,mode,no,picture,imgsvr,name,injury,leadership,strength,intel,level,nation,crewtype,crew,train,atmos from general where city='{$city['city']}' order by dedication desc"; // 장수 목록
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gencount = MYDB_num_rows($genresult);
$generals = $db->query(
'SELECT npc,mode,no,picture,imgsvr,name,injury,leader,power,intel,level,nation,crewtype,crew,train,atmos from general where city=%i order by name',
'SELECT npc,mode,no,picture,imgsvr,name,injury,leadership,strength,intel,level,nation,crewtype,crew,train,atmos from general where city=%i order by name',
$city['city']
);
@@ -244,12 +244,12 @@ for($j=0; $j < $gencount; $j++) {
$name = $general['name'];
$nameText = formatName($name, $general['npc']);
$leadership = $general['leader'];
$power = $general['power'];
$leadership = $general['leadership'];
$strength = $general['strength'];
$intel = $general['intel'];
$leadershipText = formatWounded($leadership, $general['injury']);
$powerText = formatWounded($power, $general['injury']);
$strengthText = formatWounded($strength, $general['injury']);
$intelText = formatWounded($intel, $general['injury']);
$level = $general['level'];
@@ -313,8 +313,8 @@ for($j=0; $j < $gencount; $j++) {
'leadershipBonusText'=>$leadershipBonusText,
'level'=>$level,
'levelText'=>$levelText,
'power'=>$power,
'powerText'=>$powerText,
'strength'=>$strength,
'strengthText'=>$strengthText,
'intel'=>$intel,
'intelText'=>$intelText,
'defenceMode'=>$defenceMode,
+9 -9
View File
@@ -103,7 +103,7 @@ switch ($type) {
}
$generals = $db->query(
'SELECT npc,mode,no,level,troop,city,injury,leader,power,intel,experience,name,gold,rice,crewtype,crew,train,atmos,killturn,turntime,nation from general WHERE nation = %i %l',
'SELECT npc,mode,no,level,troop,city,injury,leadership,strength,intel,experience,name,gold,rice,crewtype,crew,train,atmos,killturn,turntime,nation from general WHERE nation = %i %l',
$me['nation'],
$orderSQL
);
@@ -140,20 +140,20 @@ foreach ($generals as &$general) {
$general['lbonusText'] = $lbonusText;
if ($general['injury'] > 0) {
$leader = intdiv($general['leader'] * (100 - $general['injury']), 100);
$power = intdiv($general['power'] * (100 - $general['injury']), 100);
$leadership = intdiv($general['leadership'] * (100 - $general['injury']), 100);
$strength = intdiv($general['strength'] * (100 - $general['injury']), 100);
$intel = intdiv($general['intel'] * (100 - $general['injury']), 100);
$leader = "<font color=red>{$leader}</font>{$lbonusText}";
$power = "<font color=red>{$power}</font>";
$leadership = "<font color=red>{$leadership}</font>{$lbonusText}";
$strength = "<font color=red>{$strength}</font>";
$intel = "<font color=red>{$intel}</font>";
} else {
$leader = "{$general['leader']}{$lbonusText}";
$power = "{$general['power']}";
$leadership = "{$general['leadership']}{$lbonusText}";
$strength = "{$general['strength']}";
$intel = "{$general['intel']}";
}
$general['leaderText'] = $leader;
$general['powerText'] = $power;
$general['leadershipText'] = $leadership;
$general['strengthText'] = $strength;
$general['intelText'] = $intel;
$general['expLevelText'] = getExpLevel($general['experience']);
+6 -6
View File
@@ -196,7 +196,7 @@ if($meLevel >= 5 && $nation["l{$meLevel}set"] == 0) {
echo "
<select name=outlist size=1 style=color:white;background-color:black;>";
$query = "select no,npc,name,level,leader,power,intel,killturn from general where nation='{$me['nation']}' and level!='12' and no!='{$me['no']}' order by npc,binary(name)";
$query = "select no,npc,name,level,leadership,strength,intel,killturn from general where nation='{$me['nation']}' and level!='12' and no!='{$me['no']}' order by npc,binary(name)";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gencount = MYDB_num_rows($result);
@@ -206,7 +206,7 @@ if($meLevel >= 5 && $nation["l{$meLevel}set"] == 0) {
continue;
}
echo "
<option value={$general['no']}>{$general['name']} <small>({$general['leader']}/{$general['power']}/{$general['intel']}, {$general['killturn']}턴)</small></option>";
<option value={$general['no']}>{$general['name']} <small>({$general['leadership']}/{$general['strength']}/{$general['intel']}, {$general['killturn']}턴)</small></option>";
}
echo "
@@ -272,11 +272,11 @@ echo "
";
$queries = [];
$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[10] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and strength>='".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::$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::$chiefStatMin."' order by npc,binary(name)";
$queries[8] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and strength>='".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::$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::$chiefStatMin."' order by npc,binary(name)";
$queries[6] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and strength>='".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::$chiefStatMin."' order by npc,binary(name)";
for($i=10; $i >= $lv; $i--) {
@@ -390,7 +390,7 @@ if($meLevel >= 5) {
<option value=0>____공석____</option>
";
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and strength>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$count = MYDB_num_rows($result);
for($i=0; $i < $count; $i++) {
+11 -11
View File
@@ -85,8 +85,8 @@ $nationLevel = DB::db()->queryFirstField('select level from nation where nation
1=>['level', true],
2=>['dedication', true],
3=>['experience', true],
4=>['leader', true],
5=>['power', true],
4=>['leadership', true],
5=>['strength', true],
6=>['intel', true],
7=>['gold', true],
8=>['rice', true],
@@ -99,7 +99,7 @@ $nationLevel = DB::db()->queryFirstField('select level from nation where nation
15=>['npc', true],
][$type];
$generalList = $db->query('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect,gold,rice,crew,belong from general where nation = %i order by %b %l', $me['nation'], $orderKey, $orderDesc?'desc':'');
$generalList = $db->query('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leadership,strength,intel,experience,dedication,level,killturn,connect,gold,rice,crew,belong from general where nation = %i order by %b %l', $me['nation'], $orderKey, $orderDesc?'desc':'');
echo"
<table align=center class='tb_layout bg0'>
@@ -130,15 +130,15 @@ foreach($generalList as $general){
}
if($general['injury'] > 0) {
$leader = intdiv($general['leader'] * (100 - $general['injury']), 100);
$power = intdiv($general['power'] * (100 - $general['injury']), 100);
$leadership = intdiv($general['leadership'] * (100 - $general['injury']), 100);
$strength = intdiv($general['strength'] * (100 - $general['injury']), 100);
$intel = intdiv($general['intel'] * (100 - $general['injury']), 100);
$leader = "<font color=red>{$leader}</font>{$lbonus}";
$power = "<font color=red>{$power}</font>";
$leadership = "<font color=red>{$leadership}</font>{$lbonus}";
$strength = "<font color=red>{$strength}</font>";
$intel = "<font color=red>{$intel}</font>";
} else {
$leader = "{$general['leader']}{$lbonus}";
$power = "{$general['power']}";
$leadership = "{$general['leadership']}{$lbonus}";
$strength = "{$general['strength']}";
$intel = "{$general['intel']}";
}
@@ -159,8 +159,8 @@ foreach($generalList as $general){
<td align=center>".getDed($general['dedication'])."</td>
<td align=center>".getHonor($general['experience'])."</td>
<td align=center>".getBill($general['dedication'])."</td>
<td align=center>$leader</td>
<td align=center>$power</td>
<td align=center>$leadership</td>
<td align=center>$strength</td>
<td align=center>$intel</td>
<td align=center>{$general['gold']}</td>
<td align=center>{$general['rice']}</td>
+1 -1
View File
@@ -68,7 +68,7 @@ for($j=0; $j < $citycount; $j++) {
$maxpop += $city['pop2'];
}
$query = "select sum(crew) as totcrew,sum(leader)*100 as maxcrew from general where nation='{$nation['nation']}'";
$query = "select sum(crew) as totcrew,sum(leadership)*100 as maxcrew from general where nation='{$nation['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
+7 -7
View File
@@ -28,10 +28,10 @@ if ($con >= 2) {
switch ($admin['tnmt_type']) {
default: throw new \RuntimeException('invalid tnmt_type');
case 0: $tnmt_type = "<font color=cyan>전력전</font>"; $tp = "tot"; $tp2 = "종합"; $tp3 = "total"; break;
case 1: $tnmt_type = "<font color=cyan>통솔전</font>"; $tp = "ldr"; $tp2 = "통솔"; $tp3 = "leader"; break;
case 2: $tnmt_type = "<font color=cyan>일기토</font>"; $tp = "pwr"; $tp2 = "무력"; $tp3 = "power"; break;
case 3: $tnmt_type = "<font color=cyan>설전</font>"; $tp = "itl"; $tp2 = "지력"; $tp3 = "intel"; break;
case 0: $tnmt_type = "<font color=cyan>전력전</font>"; $tp = "total"; $tp2 = "종합"; $tp3 = "total"; break;
case 1: $tnmt_type = "<font color=cyan>통솔전</font>"; $tp = "leadership"; $tp2 = "통솔"; $tp3 = "leadership"; break;
case 2: $tnmt_type = "<font color=cyan>일기토</font>"; $tp = "strength"; $tp2 = "무력"; $tp3 = "strength"; break;
case 3: $tnmt_type = "<font color=cyan>설전</font>"; $tp = "intel"; $tp2 = "지력"; $tp3 = "intel"; break;
}
?>
@@ -115,7 +115,7 @@ if ($session->userGrade >= 5) {
case 1:
echo "<select name=gen size=1 style=color:white;background-color:black;>";
$query = "select no,name,npc,tnmt,leader,power,intel,leader+power+intel as total from general where tournament=0 and gold>='{$admin['develcost']}' order by {$tp3} desc";
$query = "select no,name,npc,tnmt,leadership,strength,intel,leadership+strength+intel as total from general where tournament=0 and gold>='{$admin['develcost']}' order by {$tp3} desc";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$genCount = MYDB_num_rows($result);
@@ -442,7 +442,7 @@ for ($i=0; $i < 8; $i++) {
<tr><td colspan=9 style=background-color:black;>{$num[$i]}조</td></tr>
<tr id=bg1><td align=center>순</td><td align=center>장수</td><td align=center>{$tp2}</td><td align=center>경</td><td align=center>승</td><td align=center>무</td><td align=center>패</td><td align=center>점</td><td align=center>득</td></tr>";
$query = "select npc,name,ldr,pwr,itl,ldr+pwr+itl as tot,prmt,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$grp' order by gd desc, gl desc, seq";
$query = "select npc,name,leadership,strength,intel,leadership+strength+intel as total,prmt,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$grp' order by gd desc, gl desc, seq";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
for ($k=1; $k <= 4; $k++) {
$general = MYDB_fetch_array($result);
@@ -468,7 +468,7 @@ for ($i=0; $i < 8; $i++) {
<tr><td colspan=9 style=background-color:black;>{$num[$i]}조</td></tr>
<tr id=bg1><td align=center>순</td><td align=center>장수</td><td align=center>{$tp2}</td><td align=center>경</td><td align=center>승</td><td align=center>무</td><td align=center>패</td><td align=center>점</td><td align=center>득</td></tr>";
$query = "select npc,name,ldr,pwr,itl,ldr+pwr+itl as tot,prmt,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$grp' order by gd desc, gl desc, seq";
$query = "select npc,name,leadership,strength,intel,leadership+strength+intel as total,prmt,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$grp' order by gd desc, gl desc, seq";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
for ($k=1; $k <= 8; $k++) {
$general = MYDB_fetch_array($result);
+1 -1
View File
@@ -280,7 +280,7 @@ var defaultSpecialDomestic = <?=GameConst::$defaultSpecialDomestic?>;
<div class="input-group-prepend">
<span class="input-group-text">무력</span>
</div>
<input type="number" class="form-control form_power" value="50" min="1" max="300" step="1">
<input type="number" class="form-control form_strength" value="50" min="1" max="300" step="1">
<div class="input-group-prepend">
<span class="input-group-text">지력</span>
</div>
+5 -5
View File
@@ -41,7 +41,7 @@ if($btn == "임명") {
$general = [];
}
else{
$general = $db->queryFirstRow('SELECT `no`,nation,`level`,leader,`power`,intel FROM general WHERE no = %i', $genlist);
$general = $db->queryFirstRow('SELECT `no`,nation,`level`,leadership,`strength`,intel FROM general WHERE no = %i', $genlist);
}
if($genlist != 0 && !$general){
@@ -262,11 +262,11 @@ if($btn == "임명" && $level >= 5 && $level <= 11) {
if($genlist != 0) {
$valid = 0;
switch($level) {
case 10: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 10: if($general['strength'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 9: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 8: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 8: if($general['strength'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 7: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 6: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 6: if($general['strength'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 5: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
default: $valid = 1; break;
}
@@ -321,7 +321,7 @@ if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) {
if($genlist != 0) {
$valid = 0;
switch($level) {
case 4: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 4: if($general['strength'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
case 3: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
default: $valid = 1; break;
}
+24 -24
View File
@@ -29,9 +29,9 @@ $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""
$me = MYDB_fetch_array($result);
switch($admin['tnmt_type']) {
case 0: $tp = "total"; $tp2 = "전력전"; $tp3 = "leader+power+intel"; break;
case 1: $tp = "leader"; $tp2 = "통솔전"; $tp3 = "leader"; break;
case 2: $tp = "power"; $tp2 = "일기토"; $tp3 = "power"; break;
case 0: $tp = "total"; $tp2 = "전력전"; $tp3 = "leadership+strength+intel"; break;
case 1: $tp = "leadership"; $tp2 = "통솔전"; $tp3 = "leadership"; break;
case 2: $tp = "strength"; $tp2 = "일기토"; $tp3 = "strength"; break;
case 3: $tp = "intel"; $tp2 = "설전"; $tp3 = "intel"; break;
}
@@ -42,7 +42,7 @@ if($btn == '참가') {
exit(1);
}
$general = $db->queryFirstRow('SELECT no,name,npc,leader,power,intel,explevel,gold,horse,weap,book FROM general WHERE `no`=%i', $me['no']);
$general = $db->queryFirstRow('SELECT no,name,npc,leadership,strength,intel,explevel,gold,horse,weap,book FROM general WHERE `no`=%i', $me['no']);
//{$admin['develcost']}원 참가비
if($general['gold'] < $admin['develcost']) {
@@ -64,9 +64,9 @@ if($btn == '참가') {
'no'=>$general['no'],
'npc'=>$general['npc'],
'name'=>$general['name'],
'ldr'=>$general['leader'],
'pwr'=>$general['power'],
'itl'=>$general['intel'],
'leadership'=>$general['leadership'],
'strength'=>$general['strength'],
'intel'=>$general['intel'],
'lvl'=>$general['explevel'],
'grp'=>$grp,
'grp_no'=>$grpMemberCount,
@@ -104,7 +104,7 @@ if($btn == "자동개최설정") {
$gameStor->phase = 0;
} elseif($btn == "투입" || $btn == "무명투입" || $btn == "쪼렙투입" || $btn == "일반투입" || $btn == "굇수투입" || $btn == "랜덤투입") {
if($btn == "투입") {
$query = "select no,name,npc,leader,power,intel,explevel,gold,horse,weap,book from general where no='$gen'";
$query = "select no,name,npc,leadership,strength,intel,explevel,gold,horse,weap,book from general where no='$gen'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
$general['gold'] -= $admin['develcost'];
@@ -112,14 +112,14 @@ if($btn == "자동개최설정") {
$general['no'] = 0;
$general['name'] = "무명장수";
$general['npc'] = 2;
$general['leader'] = 10;
$general['power'] = 10;
$general['leadership'] = 10;
$general['strength'] = 10;
$general['intel'] = 10;
$general['explevel'] = 10;
$general['gold'] = 0;
} elseif($btn == "쪼렙투입") {
$sel = rand() % 32;
$query = "select no,name,npc,leader,power,intel,explevel,gold,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} limit {$sel},1";
$query = "select no,name,npc,leadership,strength,intel,explevel,gold,leadership+strength+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} limit {$sel},1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
$general['gold'] -= $admin['develcost'];
@@ -136,18 +136,18 @@ if($btn == "자동개최설정") {
$sel = rand() % 32 + $genCount - 8;
$query = "select no,name,npc,leader,power,intel,explevel,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} desc limit {$sel},1";
$query = "select no,name,npc,leadership,strength,intel,explevel,leadership+strength+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} desc limit {$sel},1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
$general['gold'] -= $admin['develcost'];
} elseif($btn == "굇수투입") {
$sel = rand() % 32;
$query = "select no,name,npc,leader,power,intel,explevel,gold,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} desc limit {$sel},1";
$query = "select no,name,npc,leadership,strength,intel,explevel,gold,leadership+strength+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} desc limit {$sel},1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
$general['gold'] -= $admin['develcost'];
} elseif($btn == "랜덤투입") {
$query = "select no,name,npc,leader,power,intel,explevel,gold,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by rand() limit 0,1";
$query = "select no,name,npc,leadership,strength,intel,explevel,gold,leadership+strength+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by rand() limit 0,1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
$general['gold'] -= $admin['develcost'];
@@ -167,9 +167,9 @@ if($btn == "자동개최설정") {
'no'=>$general['no'],
'npc'=>$general['npc'],
'name'=>$general['name'],
'ldr'=>$general['leader'],
'pwr'=>$general['power'],
'itl'=>$general['intel'],
'leadership'=>$general['leadership'],
'strength'=>$general['strength'],
'intel'=>$general['intel'],
'lvl'=>$general['explevel'],
'grp'=>$grp,
'grp_no'=>$grpMemberCount,
@@ -211,7 +211,7 @@ if($btn == "자동개최설정") {
for($i=0; $i < $z; $i++) {
$sel = rand() % 32;
if($btn == "쪼렙전부투입") {
$query = "select no,name,npc,leader,power,intel,explevel,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} limit {$sel},1";
$query = "select no,name,npc,leadership,strength,intel,explevel,leadership+strength+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} limit {$sel},1";
} elseif($btn == "일반전부투입") {
//참가한 사람 평균치
$query = "select AVG({$tp3}) as av from general where tournament=1";
@@ -225,11 +225,11 @@ if($btn == "자동개최설정") {
$sel += $genCount - 8;
$query = "select no,name,npc,leader,power,intel,explevel,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} desc limit {$sel},1";
$query = "select no,name,npc,leadership,strength,intel,explevel,leadership+strength+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} desc limit {$sel},1";
} elseif($btn == "굇수전부투입") {
$query = "select no,name,npc,leader,power,intel,explevel,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} desc limit {$sel},1";
$query = "select no,name,npc,leadership,strength,intel,explevel,leadership+strength+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by {$tp} desc limit {$sel},1";
} else {
$query = "select no,name,npc,leader,power,intel,explevel,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by rand() limit 0,1";
$query = "select no,name,npc,leadership,strength,intel,explevel,leadership+strength+intel as total,horse,weap,book from general where tournament=0 and gold>='{$admin['develcost']}' and npc>=2 order by rand() limit 0,1";
}
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
@@ -240,9 +240,9 @@ if($btn == "자동개최설정") {
'no'=>$general['no'],
'npc'=>$general['npc'],
'name'=>$general['name'],
'ldr'=>$general['leader'],
'pwr'=>$general['power'],
'itl'=>$general['intel'],
'leadership'=>$general['leadership'],
'strength'=>$general['strength'],
'intel'=>$general['intel'],
'lvl'=>$general['explevel'],
'grp'=>$grp,
'grp_no'=>$grp_no,
+35 -35
View File
@@ -274,7 +274,7 @@ function myNationInfo() {
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$city = MYDB_fetch_array($result);
$query = "select COUNT(*) as cnt, SUM(crew) as totcrew,SUM(leader)*100 as maxcrew from general where nation='{$nation['nation']}'"; // 장수 목록
$query = "select COUNT(*) as cnt, SUM(crew) as totcrew,SUM(leadership)*100 as maxcrew from general where nation='{$nation['nation']}'"; // 장수 목록
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
@@ -778,7 +778,7 @@ function generalInfo($no) {
$show_img_level = $gameStor->show_img_level;
$query = "select block,no,name,picture,imgsvr,injury,nation,city,troop,leader,leader2,power,power2,intel,intel2,explevel,experience,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,killturn,age,personal,special,specage,special2,specage2,mode,con,connect from general where no='$no'";
$query = "select block,no,name,picture,imgsvr,injury,nation,city,troop,leadership,leadership2,strength,strength2,intel,intel2,explevel,experience,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,killturn,age,personal,special,specage,special2,specage2,mode,con,connect from general where no='$no'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
@@ -816,18 +816,18 @@ function generalInfo($no) {
$city = MYDB_fetch_array($result);
$level = $city['name']." ".$level;
}
$call = getCall($general['leader'], $general['power'], $general['intel']);
$call = getCall($general['leadership'], $general['power'], $general['intel']);
$typename = GameUnitConst::byId($general['crewtype'])->name;
$weapname = getItemName($general['weap']);
$bookname = getItemName($general['book']);
$horsename = getItemName($general['horse']);
$itemname = displayItemInfo($general['item']);
if($general['injury'] > 0) {
$leader = intdiv($general['leader'] * (100 - $general['injury']), 100);
$leadership = intdiv($general['leadership'] * (100 - $general['injury']), 100);
$power = intdiv($general['power'] * (100 - $general['injury']), 100);
$intel = intdiv($general['intel'] * (100 - $general['injury']), 100);
} else {
$leader = $general['leader'];
$leadership = $general['leadership'];
$power = $general['power'];
$intel = $general['intel'];
}
@@ -881,11 +881,11 @@ function generalInfo($no) {
</tr>
<tr height=16>
<td style='text-align:center;' class='bg1'><b>통솔</b></td>
<td style='text-align:center;'>&nbsp;{$color}{$leader}</font>{$lbonus}&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['leader2']), 20)."</td>
<td style='text-align:center;'>&nbsp;{$color}{$leadership}</font>{$lbonus}&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['leadership2']), 20)."</td>
<td style='text-align:center;' class='bg1'><b>무력</b></td>
<td style='text-align:center;'>&nbsp;{$color}{$power}</font>&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['power2']), 20)."</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['strength2']), 20)."</td>
<td style='text-align:center;' class='bg1'><b>지력</b></td>
<td style='text-align:center;'>&nbsp;{$color}{$intel}</font>&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['intel2']), 20)."</td>
@@ -1746,8 +1746,8 @@ function addAge() {
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
if($admin['year'] >= $admin['startyear']+3) {
foreach($db->query('SELECT no,name,nation,leader,power,intel from general where specage<=age and special=%s', GameConst::$defaultSpecialDomestic) as $general){
$special = getSpecial($general['leader'], $general['power'], $general['intel']);
foreach($db->query('SELECT no,name,nation,leadership,power,intel from general where specage<=age and special=%s', GameConst::$defaultSpecialDomestic) as $general){
$special = getSpecial($general['leadership'], $general['power'], $general['intel']);
$specialClass = getGeneralSpecialDomesticClass($special);
$specialText = $specialClass::$name;
$db->update('general', [
@@ -1759,8 +1759,8 @@ function addAge() {
pushGenLog($general, "<C>●</>특기 【<b><L>{$specialText}</></b>】{$josaUl} 익혔습니다!");
}
foreach($db->query('SELECT no,name,nation,leader,power,intel,npc,dex0,dex10,dex20,dex30,dex40 from general where spec2age<=age and special2=%s', GameConst::$defaultSpecialWar) as $general){
$special2 = getSpecial2($general['leader'], $general['power'], $general['intel'], 0, $general['dex0'], $general['dex10'], $general['dex20'], $general['dex30'], $general['dex40']);
foreach($db->query('SELECT no,name,nation,leadership,power,intel,npc,dex0,dex10,dex20,dex30,dex40 from general where spec2age<=age and special2=%s', GameConst::$defaultSpecialWar) as $general){
$special2 = getSpecial2($general['leadership'], $general['power'], $general['intel'], 0, $general['dex0'], $general['dex10'], $general['dex20'], $general['dex30'], $general['dex40']);
$specialClass = getGeneralSpecialWarClass($special2);
$specialText = $specialClass::$name;
@@ -2070,7 +2070,7 @@ function updateTurntime($no) {
CheckHall($no);
}
$query = "update general set leader=leader*0.85,power=power*0.85,intel=intel*0.85,injury=0,experience=experience*0.5,dedication=dedication*0.5,firenum=0,warnum=0,killnum=0,deathnum=0,killcrew=0,deathcrew=0,age=20,specage=0,specage2=0,crew=crew*0.85,dex0=dex0*0.5,dex10=dex10*0.5,dex20=dex20*0.5,dex30=dex30*0.5,dex40=dex40*0.5 where no='$no'";
$query = "update general set leadership=leadership*0.85,power=power*0.85,intel=intel*0.85,injury=0,experience=experience*0.5,dedication=dedication*0.5,firenum=0,warnum=0,killnum=0,deathnum=0,killcrew=0,deathcrew=0,age=20,specage=0,specage2=0,crew=crew*0.85,dex0=dex0*0.5,dex10=dex10*0.5,dex20=dex20*0.5,dex30=dex30*0.5,dex40=dex40*0.5 where no='$no'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$josaYi = JosaUtil::pick($general['name'], '이');
@@ -2122,7 +2122,7 @@ function CheckHall($no) {
dex0,dex10,dex20,dex30,dex40,
ttw/(ttw+ttd+ttl) as ttrate, ttw+ttd+ttl as tt,
tlw/(tlw+tld+tll) as tlrate, tlw+tld+tll as tl,
tpw/(tpw+tpd+tpl) as tprate, tpw+tpd+tpl as tp,
tsw/(tsw+tsd+tsl) as tprate, tsw+tsd+tsl as ts,
tiw/(tiw+tid+til) as tirate, tiw+tid+til as ti,
betgold, betwin, betwingold, betwingold/betgold as betrate
from general where no=%i', $no);
@@ -2148,7 +2148,7 @@ function CheckHall($no) {
//토너승률인데 50회 미만시 스킵
if($typeName === 'tlrate' && $general['tl'] < 50) { continue; }
//토너승률인데 50회 미만시 스킵
if($typeName === 'tprate' && $general['tp'] < 50) { continue; }
if($typeName === 'tprate' && $general['ts'] < 50) { continue; }
//토너승률인데 50회 미만시 스킵
if($typeName === 'tirate' && $general['ti'] < 50) { continue; }
//수익률인데 1000미만시 스킵
@@ -2413,24 +2413,24 @@ function uniqueItem($general, $log, $vote=0) {
function checkAbilityEx(int $generalID, ActionLogger $actLog){
$db = DB::db();
$general = $db->queryFirstRow('SELECT leader,leader2,power,power2,intel,intel2 FROM general WHERE no = %i',$generalID);
$general = $db->queryFirstRow('SELECT leadership,leadership2,strength,strength2,intel,intel2 FROM general WHERE no = %i',$generalID);
if(!$general){
return;
}
if($general['leader2'] < 0){
if($general['leadership2'] < 0){
$db->update('general',[
'leader2'=>$db->sqleval('leader2 + %i', GameConst::$upgradeLimit),
'leader'=>$db->sqleval('leader - 1')
'leadership2'=>$db->sqleval('leadership2 + %i', GameConst::$upgradeLimit),
'leadership'=>$db->sqleval('leadership - 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<R>통솔</>이 <C>1</> 떨어졌습니다!', ActionLogger::PLAIN);
return;
}
if($general['power2'] < 0){
if($general['strength2'] < 0){
$db->update('general',[
'power2'=>$db->sqleval('power2 + %i', GameConst::$upgradeLimit),
'strength2'=>$db->sqleval('strength2 + %i', GameConst::$upgradeLimit),
'power'=>$db->sqleval('power - 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<R>무력</>이 <C>1</> 떨어졌습니다!', ActionLogger::PLAIN);
@@ -2446,18 +2446,18 @@ function checkAbilityEx(int $generalID, ActionLogger $actLog){
return;
}
if($general['leader2'] >= GameConst::$upgradeLimit){
if($general['leadership2'] >= GameConst::$upgradeLimit){
$db->update('general',[
'leader2'=>$db->sqleval('leader2 - %i', GameConst::$upgradeLimit),
'leader'=>$db->sqleval('leader + 1')
'leadership2'=>$db->sqleval('leadership2 - %i', GameConst::$upgradeLimit),
'leadership'=>$db->sqleval('leadership + 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<R>통솔</>이 <C>1</> 올랐습니다!', ActionLogger::PLAIN);
return;
}
if($general['power2'] >= GameConst::$upgradeLimit){
if($general['strength2'] >= GameConst::$upgradeLimit){
$db->update('general',[
'power2'=>$db->sqleval('power2 - %i', GameConst::$upgradeLimit),
'strength2'=>$db->sqleval('strength2 - %i', GameConst::$upgradeLimit),
'power'=>$db->sqleval('power + 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<R>무력</>이 <C>1</> 올랐습니다!', ActionLogger::PLAIN);
@@ -2480,29 +2480,29 @@ function checkAbility($general, $log) {
$limit = GameConst::$upgradeLimit;
$query = "select no,leader,leader2,power,power2,intel,intel2 from general where no='{$general['no']}'";
$query = "select no,leadership,leadership2,power,strength2,intel,intel2 from general where no='{$general['no']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
if($general['leader2'] < 0) {
$query = "update general set leader2='$limit'+leader2,leader=leader-1 where no='{$general['no']}'";
if($general['leadership2'] < 0) {
$query = "update general set leadership2='$limit'+leadership2,leadership=leadership-1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><R>통솔</>이 <C>1</> 떨어졌습니다!";
} elseif($general['leader2'] >= $limit) {
$query = "update general set leader2=leader2-'$limit',leader=leader+1 where no='{$general['no']}'";
} elseif($general['leadership2'] >= $limit) {
$query = "update general set leadership2=leadership2-'$limit',leadership=leadership+1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><Y>통솔</>이 <C>1</> 올랐습니다!";
}
if($general['power2'] < 0) {
$query = "update general set power2='$limit'+power2,power=power-1 where no='{$general['no']}'";
if($general['strength2'] < 0) {
$query = "update general set strength2='$limit'+strength2,power=power-1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><R>무력</>이 <C>1</> 떨어졌습니다!";
} elseif($general['power2'] >= $limit) {
$query = "update general set power2=power2-'$limit',power=power+1 where no='{$general['no']}'";
} elseif($general['strength2'] >= $limit) {
$query = "update general set strength2=strength2-'$limit',power=power+1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><Y>무력</>이 <C>1</> 올랐습니다!";
+37 -37
View File
@@ -274,7 +274,7 @@ function myNationInfo() {
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$city = MYDB_fetch_array($result);
$query = "select COUNT(*) as cnt, SUM(crew) as totcrew,SUM(leader)*100 as maxcrew from general where nation='{$nation['nation']}'"; // 장수 목록
$query = "select COUNT(*) as cnt, SUM(crew) as totcrew,SUM(leadership)*100 as maxcrew from general where nation='{$nation['nation']}'"; // 장수 목록
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
@@ -635,7 +635,7 @@ function generalInfo($no) {
$show_img_level = $gameStor->show_img_level;
$query = "select block,no,name,picture,imgsvr,injury,nation,city,troop,leader,leader2,power,power2,intel,intel2,explevel,experience,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,killturn,age,personal,special,specage,special2,specage2,mode,con,connect from general where no='$no'";
$query = "select block,no,name,picture,imgsvr,injury,nation,city,troop,leadership,leadership2,strength,strength2,intel,intel2,explevel,experience,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,killturn,age,personal,special,specage,special2,specage2,mode,con,connect from general where no='$no'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
@@ -684,19 +684,19 @@ function generalInfo($no) {
$city = MYDB_fetch_array($result);
$level = $city['name']." ".$level;
}
$call = getCall($general['leader'], $general['power'], $general['intel']);
$call = getCall($general['leadership'], $general['strength'], $general['intel']);
$typename = GameUnitConst::byId($general['crewtype'])->name;
$weapname = getItemName($general['weap']);
$bookname = getItemName($general['book']);
$horsename = getItemName($general['horse']);
$itemname = displayItemInfo($general['item']);
if($general['injury'] > 0) {
$leader = intdiv($general['leader'] * (100 - $general['injury']), 100);
$power = intdiv($general['power'] * (100 - $general['injury']), 100);
$leadership = intdiv($general['leadership'] * (100 - $general['injury']), 100);
$strength = intdiv($general['strength'] * (100 - $general['injury']), 100);
$intel = intdiv($general['intel'] * (100 - $general['injury']), 100);
} else {
$leader = $general['leader'];
$power = $general['power'];
$leadership = $general['leadership'];
$strength = $general['strength'];
$intel = $general['intel'];
}
if($general['injury'] > 60) { $color = "<font color=red>"; $injury = "위독"; }
@@ -748,11 +748,11 @@ function generalInfo($no) {
</tr>
<tr height=16>
<td style='text-align:center;' class='bg1'><b>통솔</b></td>
<td style='text-align:center;'>&nbsp;{$color}{$leader}</font>{$lbonus}&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['leader2']), 20)."</td>
<td style='text-align:center;'>&nbsp;{$color}{$leadership}</font>{$lbonus}&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['leadership2']), 20)."</td>
<td style='text-align:center;' class='bg1'><b>무력</b></td>
<td style='text-align:center;'>&nbsp;{$color}{$power}</font>&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['power2']), 20)."</td>
<td style='text-align:center;'>&nbsp;{$color}{$strength}</font>&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['strength2']), 20)."</td>
<td style='text-align:center;' class='bg1'><b>지력</b></td>
<td style='text-align:center;'>&nbsp;{$color}{$intel}</font>&nbsp;</td>
<td style='text-align:center;' width=45>".bar(expStatus($general['intel2']), 20)."</td>
@@ -1319,7 +1319,7 @@ function addAge() {
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
if($admin['year'] >= $admin['startyear']+3) {
foreach($db->query('SELECT no,name,nation,leader,power,intel from general where specage<=age and special=%s', GameConst::$defaultSpecialDomestic) as $general){
foreach($db->query('SELECT no,name,nation,leadership,strength,intel from general where specage<=age and special=%s', GameConst::$defaultSpecialDomestic) as $general){
$special = SpecialityConst::pickSpecialDomestic($general);
$specialClass = getGeneralSpecialDomesticClass($special);
$specialText = $specialClass::$name;
@@ -1332,7 +1332,7 @@ function addAge() {
pushGenLog($general, "<C>●</>특기 【<b><L>{$specialText}</></b>】{$josaUl} 익혔습니다!");
}
foreach($db->query('SELECT no,name,nation,leader,power,intel,npc,dex0,dex10,dex20,dex30,dex40 from general where specage2<=age and special2=%s', GameConst::$defaultSpecialWar) as $general){
foreach($db->query('SELECT no,name,nation,leadership,strength,intel,npc,dex0,dex10,dex20,dex30,dex40 from general where specage2<=age and special2=%s', GameConst::$defaultSpecialWar) as $general){
$special2 = SpecialityConst::pickSpecialWar($general);
$specialClass = getGeneralSpecialWarClass($special2);
$specialText = $specialClass::$name;
@@ -1424,7 +1424,7 @@ function CheckHall($no) {
dex0,dex10,dex20,dex30,dex40,
ttw/(ttw+ttd+ttl) as ttrate, ttw+ttd+ttl as tt,
tlw/(tlw+tld+tll) as tlrate, tlw+tld+tll as tl,
tpw/(tpw+tpd+tpl) as tprate, tpw+tpd+tpl as tp,
tsw/(tsw+tsd+tsl) as tprate, tsw+tsd+tsl as ts,
tiw/(tiw+tid+til) as tirate, tiw+tid+til as ti,
betgold, betwin, betwingold, betwingold/betgold as betrate
from general where no=%i', $no);
@@ -1455,7 +1455,7 @@ function CheckHall($no) {
//토너승률인데 50회 미만시 스킵
if($typeName === 'tlrate' && $general['tl'] < 50) { continue; }
//토너승률인데 50회 미만시 스킵
if($typeName === 'tprate' && $general['tp'] < 50) { continue; }
if($typeName === 'tsrate' && $general['ts'] < 50) { continue; }
//토너승률인데 50회 미만시 스킵
if($typeName === 'tirate' && $general['ti'] < 50) { continue; }
//수익률인데 1000미만시 스킵
@@ -1752,25 +1752,25 @@ function uniqueItem($general, $log, $vote=0) {
function checkAbilityEx(int $generalID, ActionLogger $actLog){
$db = DB::db();
$general = $db->queryFirstRow('SELECT leader,leader2,power,power2,intel,intel2 FROM general WHERE no = %i',$generalID);
$general = $db->queryFirstRow('SELECT leadership,leadership2,strength,strength2,intel,intel2 FROM general WHERE no = %i',$generalID);
if(!$general){
return;
}
if($general['leader2'] < 0){
if($general['leadership2'] < 0){
$db->update('general',[
'leader2'=>$db->sqleval('leader2 + %i', GameConst::$upgradeLimit),
'leader'=>$db->sqleval('leader - 1')
'leadership2'=>$db->sqleval('leadership2 + %i', GameConst::$upgradeLimit),
'leadership'=>$db->sqleval('leadership - 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<R>통솔</>이 <C>1</> 떨어졌습니다!', ActionLogger::PLAIN);
return;
}
if($general['power2'] < 0){
if($general['strength2'] < 0){
$db->update('general',[
'power2'=>$db->sqleval('power2 + %i', GameConst::$upgradeLimit),
'power'=>$db->sqleval('power - 1')
'strength2'=>$db->sqleval('strength2 + %i', GameConst::$upgradeLimit),
'strength'=>$db->sqleval('strength - 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<R>무력</>이 <C>1</> 떨어졌습니다!', ActionLogger::PLAIN);
return;
@@ -1785,19 +1785,19 @@ function checkAbilityEx(int $generalID, ActionLogger $actLog){
return;
}
if($general['leader2'] >= GameConst::$upgradeLimit){
if($general['leadership2'] >= GameConst::$upgradeLimit){
$db->update('general',[
'leader2'=>$db->sqleval('leader2 - %i', GameConst::$upgradeLimit),
'leader'=>$db->sqleval('leader + 1')
'leadership2'=>$db->sqleval('leadership2 - %i', GameConst::$upgradeLimit),
'leadership'=>$db->sqleval('leadership + 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<S>통솔</>이 <C>1</> 올랐습니다!', ActionLogger::PLAIN);
return;
}
if($general['power2'] >= GameConst::$upgradeLimit){
if($general['strength2'] >= GameConst::$upgradeLimit){
$db->update('general',[
'power2'=>$db->sqleval('power2 - %i', GameConst::$upgradeLimit),
'power'=>$db->sqleval('power + 1')
'strength2'=>$db->sqleval('strength2 - %i', GameConst::$upgradeLimit),
'strength'=>$db->sqleval('strength + 1')
], 'no=%i', $generalID);
$actLog->pushGeneralActionLog('<S>무력</>이 <C>1</> 올랐습니다!', ActionLogger::PLAIN);
return;
@@ -1819,29 +1819,29 @@ function checkAbility($general, $log) {
$limit = GameConst::$upgradeLimit;
$query = "select no,leader,leader2,power,power2,intel,intel2 from general where no='{$general['no']}'";
$query = "select no,leadership,leadership2,strength,strength2,intel,intel2 from general where no='{$general['no']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
if($general['leader2'] < 0) {
$query = "update general set leader2='$limit'+leader2,leader=leader-1 where no='{$general['no']}'";
if($general['leadership2'] < 0) {
$query = "update general set leadership2='$limit'+leadership2,leadership=leadership-1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><R>통솔</>이 <C>1</> 떨어졌습니다!";
} elseif($general['leader2'] >= $limit) {
$query = "update general set leader2=leader2-'$limit',leader=leader+1 where no='{$general['no']}'";
} elseif($general['leadership2'] >= $limit) {
$query = "update general set leadership2=leadership2-'$limit',leadership=leadership+1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><S>통솔</>이 <C>1</> 올랐습니다!";
}
if($general['power2'] < 0) {
$query = "update general set power2='$limit'+power2,power=power-1 where no='{$general['no']}'";
if($general['strength2'] < 0) {
$query = "update general set strength2='$limit'+strength2,strength=strength-1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><R>무력</>이 <C>1</> 떨어졌습니다!";
} elseif($general['power2'] >= $limit) {
$query = "update general set power2=power2-'$limit',power=power+1 where no='{$general['no']}'";
} elseif($general['strength2'] >= $limit) {
$query = "update general set strength2=strength2-'$limit',strength=strength+1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[] = "<C>●</><S>무력</>이 <C>1</> 올랐습니다!";
+10 -10
View File
@@ -337,32 +337,32 @@ function getLevel($level, $nlevel=8) {
][$code]??'-';
}
function getCall($leader, $power, $intel) {
if($leader < 40){
if($power + $intel < 40){
function getCall($leadership, $strength, $intel) {
if($leadership < 40){
if($strength + $intel < 40){
return '아둔';
}
if($intel >= GameConst::$chiefStatMin && $power < $intel * 0.8){
if($intel >= GameConst::$chiefStatMin && $strength < $intel * 0.8){
return '학자';
}
if($power >= GameConst::$chiefStatMin && $intel < $power * 0.8){
if($strength >= GameConst::$chiefStatMin && $intel < $strength * 0.8){
return '장사';
}
return '명사';
}
$maxStat = max($leader, $power, $intel);
$sum2Stat = min($leader+$power, $power+$intel, $intel+$leader);
$maxStat = max($leadership, $strength, $intel);
$sum2Stat = min($leadership+$strength, $strength+$intel, $intel+$leadership);
if($maxStat >= GameConst::$chiefStatMin + GameConst::$statGradeLevel && $sum2Stat >= $maxStat * 1.7){
return '만능';
}
if($power >= GameConst::$chiefStatMin - GameConst::$statGradeLevel && $intel < $power * 0.8){
if($strength >= GameConst::$chiefStatMin - GameConst::$statGradeLevel && $intel < $strength * 0.8){
return '용장';
}
if($intel >= GameConst::$chiefStatMin - GameConst::$statGradeLevel && $power < $intel * 0.8){
if($intel >= GameConst::$chiefStatMin - GameConst::$statGradeLevel && $strength < $intel * 0.8){
return '명장';
}
if($leader >= GameConst::$chiefStatMin - GameConst::$statGradeLevel && $power + $intel < $leader){
if($leadership >= GameConst::$chiefStatMin - GameConst::$statGradeLevel && $strength + $intel < $leadership){
return '차장';
}
return '평범';
+2 -2
View File
@@ -420,7 +420,7 @@ function postUpdateMonthly() {
sum(pop)*sum(pop+agri+comm+secu+wall+def)/sum(pop2+agri2+comm2+secu2+wall2+def2)/100
) from city where nation=A.nation and supply=1
))
+(select sum(leader+power+intel) from general where nation=A.nation)
+(select sum(leadership+strength+intel) from general where nation=A.nation)
+(select round(sum(dex0+dex10+dex20+dex30+dex40)/1000) from general where nation=A.nation)
+(select round(sum(experience+dedication)/100) from general where nation=A.nation)
+(select round(avg(connect)) from general where nation=A.nation)
@@ -1059,7 +1059,7 @@ function checkStatistic() {
$nationGeneralInfos = Util::convertArrayToDict(
$db->query(
'SELECT nation, sum(leader+power+intel) as abil,sum(gold+rice) as goldrice,
'SELECT nation, sum(leadership+strength+intel) as abil,sum(gold+rice) as goldrice,
sum(dex0+dex10+dex20+dex30) as dex,sum(experience+dedication) as expded
from general GROUP BY nation'
),
+79 -79
View File
@@ -6,7 +6,7 @@ use Constraint\Constraint;
/**
* 장수의 통솔을 받아옴
*
* @param array $general 장수 정보, leader, injury, lbonus, horse 사용
* @param array $general 장수 정보, leadership, injury, lbonus, horse 사용
* @param bool $withInjury 부상값 사용 여부
* @param bool $withItem 아이템 적용 여부
* @param bool $withStatAdjust 추가 능력치 보정 사용 여부
@@ -18,7 +18,7 @@ function getGeneralLeadership($general, $withInjury, $withItem, $withStatAdjust,
if($general === null){
return 0;
}
$leadership = $general['leader'];
$leadership = $general['leadership'];
if($withInjury){
$leadership *= (100 - $general['injury']) / 100;
}
@@ -58,7 +58,7 @@ function getGeneralLeadership($general, $withInjury, $withItem, $withStatAdjust,
*
* @return int|float 계산된 능력치
*/
function getGeneralPower($general, $withInjury, $withItem, $withStatAdjust, $useFloor = true){
function getGeneralStrength($general, $withInjury, $withItem, $withStatAdjust, $useFloor = true){
if($general === null){
return 0;
}
@@ -107,7 +107,7 @@ function getGeneralIntel($general, $withInjury, $withItem, $withStatAdjust, $use
}
if($withStatAdjust){
$intel += Util::round(getGeneralPower($general, $withInjury, $withItem, false, false) / 4);
$intel += Util::round(getGeneralStrength($general, $withInjury, $withItem, false, false) / 4);
}
if($useFloor){
@@ -120,16 +120,16 @@ function getGeneralIntel($general, $withInjury, $withItem, $withStatAdjust, $use
* 내정 커맨드 사용시 성공 확률 계산
*
* @param array $general 장수 정보
* @param int|string $type 내정 커맨드 타입, 0|'leader' = 통솔 기반, 1|'power' = 무력 기반, 2|'intel' = 지력 기반
* @param int|string $type 내정 커맨드 타입, 0|'leadership' = 통솔 기반, 1|'power' = 무력 기반, 2|'intel' = 지력 기반
*
* @return array 계산된 실패, 성공 확률 ('success' => 성공 확률, 'fail' => 실패 확률)
*/
function CriticalRatioDomestic(&$general, $type) {
$leader = getGeneralLeadership($general, false, true, true, false);
$power = getGeneralPower($general, false, true, true, false);
$leadership = getGeneralLeadership($general, false, true, true, false);
$power = getGeneralStrength($general, false, true, true, false);
$intel = getGeneralIntel($general, false, true, true, false);
$avg = ($leader+$power+$intel) / 3;
$avg = ($leadership+$power+$intel) / 3;
/*
* 능력치가 높아질 수록 성공 확률 감소. 실패 확률도 감소
@@ -143,8 +143,8 @@ function CriticalRatioDomestic(&$general, $type) {
505050(50%,50%), 107070(50%,50%)
*/
switch($type) {
case 'leader':
case 0: $ratio = $avg / $leader; break;
case 'leadership':
case 0: $ratio = $avg / $leadership; break;
case 'power':
case 1: $ratio = $avg / $power; break;
case 'intel':
@@ -507,8 +507,8 @@ function process_4(&$general) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 군량 하락 내정보다 2배 지력경험 경험, 공헌 상승
$general['rice'] -= $admin['develcost'] * 2;
$general['leader2']++;
$query = "update general set resturn='SUCCESS',rice='{$general['rice']}',leader2='{$general['leader2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['leadership2']++;
$query = "update general set resturn='SUCCESS',rice='{$general['rice']}',leadership2='{$general['leadership2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -558,7 +558,7 @@ function process_5(&$general, $type) {
if($city['trust'] < GameConst::$develrate) { $city['trust'] = GameConst::$develrate; }
$trust = $city['trust'] / 100;
$score = getGeneralPower($general, true, true, true, false) * $trust;
$score = getGeneralStrength($general, true, true, true, false) * $trust;
$score = $score * (100 + $general['explevel']/5)/100;
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
@@ -607,8 +607,8 @@ function process_5(&$general, $type) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 자금 하락, 무력 경험 경험, 공헌 상승
$general['gold'] -= $admin['develcost'];
$general['power2']++;
$query = "update general set resturn='SUCCESS',gold='{$general['gold']}',power2='{$general['power2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['strength2']++;
$query = "update general set resturn='SUCCESS',gold='{$general['gold']}',strength2='{$general['strength2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -697,8 +697,8 @@ function process_7(&$general) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 군량 하락 내정보다 2배 지력경험 경험, 공헌 상승
$general['rice'] -= $admin['develcost'] * 2;
$general['leader2']++;
$query = "update general set resturn='SUCCESS',rice='{$general['rice']}',leader2='{$general['leader2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['leadership2']++;
$query = "update general set resturn='SUCCESS',rice='{$general['rice']}',leadership2='{$general['leadership2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -747,7 +747,7 @@ function process_8(&$general) {
if($city['trust'] < GameConst::$develrate) { $city['trust'] = GameConst::$develrate; }
$trust = $city['trust'] / 100;
$score = getGeneralPower($general, true, true, true, false) * $trust;
$score = getGeneralStrength($general, true, true, true, false) * $trust;
$score = $score * (100 + $general['explevel']/5)/100;
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
@@ -795,8 +795,8 @@ function process_8(&$general) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 자금 하락, 무력 경험 경험, 공헌 상승
$general['gold'] -= $admin['develcost'];
$general['power2']++;
$query = "update general set resturn='SUCCESS',gold='{$general['gold']}',power2='{$general['power2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['strength2']++;
$query = "update general set resturn='SUCCESS',gold='{$general['gold']}',strength2='{$general['strength2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -837,7 +837,7 @@ function process_9(&$general) {
else { $dtype = 1; $stype = ""; }
$score = getGeneralLeadership($general, true, true, true)
+ getGeneralPower($general, true, true, true)
+ getGeneralStrength($general, true, true, true)
+ getGeneralIntel($general, true, true, true);
$score = $score * (100 + $general['explevel']/5)/100;
$score = $score * (80 + rand() % 41)/100; // 80 ~ 120%
@@ -874,14 +874,14 @@ function process_9(&$general) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
switch(Util::choiceRandomUsingWeight([$general['leader'], $general['power'], $general['intel']])) {
switch(Util::choiceRandomUsingWeight([$general['leadership'], $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']}'";
$general['leadership2']++;
$query = "update general set resturn='SUCCESS',leadership2='{$general['leadership2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
break;
case 1:
$general['power2']++;
$query = "update general set resturn='SUCCESS',power2='{$general['power2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['strength2']++;
$query = "update general set resturn='SUCCESS',strength2='{$general['strength2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
break;
case 2:
$general['intel2']++;
@@ -1048,10 +1048,10 @@ function process_11(&$general, $type) {
], 'city = %i', $general['city']);
// 통솔경험, 병종 변경, 병사수 변경, 훈련치 변경, 사기치 변경, 자금 군량 하락, 공헌도, 명성 상승
$general['leader2']++;
$general['leadership2']++;
$db->update('general', [
'resturn'=>'SUCCESS',
'leader2'=>$general['leader2'],
'leadership2'=>$general['leadership2'],
'crewtype'=>$crewTypeObj->id,
'crew'=>$general['crew'],
'train'=>$train,
@@ -1120,8 +1120,8 @@ function process_13(&$general) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 경험치 상승 // 공헌도, 명성 상승
$general['leader2']++;
$query = "update general set resturn='SUCCESS',leader2='{$general['leader2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['leadership2']++;
$query = "update general set resturn='SUCCESS',leadership2='{$general['leadership2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -1177,8 +1177,8 @@ function process_14(&$general) {
// 사기치 변경 // 자금 감소 // 경험치 상승 // 공헌도, 명성 상승
$score += $general['atmos'];
if($score > GameConst::$maxAtmosByCommand) { $score = GameConst::$maxAtmosByCommand; }
$general['leader2']++;
$query = "update general set resturn='SUCCESS',atmos='$score',gold='$gold',leader2='{$general['leader2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['leadership2']++;
$query = "update general set resturn='SUCCESS',atmos='$score',gold='$gold',leadership2='{$general['leadership2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -1249,8 +1249,8 @@ function process_15(&$general) {
$ded = CharDedication($ded, $general['personal']);
// 훈련,사기치 변경 // 자금 감소 // 경험치 상승 // 공헌도, 명성 상승
$general['leader2']+=3;
$query = "update general set resturn='SUCCESS',term='0',atmos='95',train='95',gold='$gold',leader2='{$general['leader2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['leadership2']+=3;
$query = "update general set resturn='SUCCESS',term='0',atmos='95',train='95',gold='$gold',leadership2='{$general['leadership2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -1412,13 +1412,13 @@ function process_21(&$general) {
$exp = CharExperience($exp, $general['personal']);
// 이동, 경험치 상승, 명성 상승, 사기 감소
$general['leader2']++;
$general['leadership2']++;
$db->update('general',[
'resturn'=>'SUCCESS',
'gold'=>$db->sqleval('gold - %i',$admin['develcost']),
'city'=>$destCity->id,
'atmos'=>$db->sqleval('atmos*0.95'),
'leader2'=>$general['leader2'],
'leadership2'=>$general['leadership2'],
'experience'=>$db->sqleval('experience + %i',$exp)
], 'no = %i', $general['no']);
@@ -1497,8 +1497,8 @@ function process_26(&$general) {
$query = "update general set city='{$general['city']}' where troop='{$general['troop']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 경험치 명성 공헌 상승
$general['leader2']++;
$query = "update general set resturn='SUCCESS',leader2='{$general['leader2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['leadership2']++;
$query = "update general set resturn='SUCCESS',leadership2='{$general['leadership2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -1564,8 +1564,8 @@ function process_28(&$general) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 경험치 상승 // 명성,공헌 상승
$general['leader2']++;
$query = "update general set resturn='SUCCESS',leader2='{$general['leader2']}',experience=experience+'$exp',dedication=dedication+'$ded' where no='{$general['no']}'";
$general['leadership2']++;
$query = "update general set resturn='SUCCESS',leadership2='{$general['leadership2']}',experience=experience+'$exp',dedication=dedication+'$ded' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -1616,8 +1616,8 @@ function process_30(&$general) {
$exp = CharExperience($exp, $general['personal']);
// 이동, 경험치 상승, 명성 상승, 병력/사기/훈련 감소
$general['leader2']++;
$query = "update general set resturn='SUCCESS',gold=gold-'$cost',city='$destination',crew=crew*0.95,atmos=atmos*0.9,train=train*0.95,leader2='{$general['leader2']}',experience=experience+'$exp' where no='{$general['no']}'";
$general['leadership2']++;
$query = "update general set resturn='SUCCESS',gold=gold-'$cost',city='$destination',crew=crew*0.95,atmos=atmos*0.9,train=train*0.95,leadership2='{$general['leadership2']}',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
if($general['level'] == 12) {
@@ -1747,10 +1747,10 @@ function process_31(&$general) {
$exp = CharExperience($exp, $general['personal']);
$ded = CharDedication($ded, $general['personal']);
$general['leader2']++;
$general['leadership2']++;
$general['gold'] -= $admin['develcost']*3;
$general['rice'] -= $admin['develcost']*3;
$query = "update general set resturn='SUCCESS',gold='{$general['gold']}',rice='{$general['rice']}',leader2='{$general['leader2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$query = "update general set resturn='SUCCESS',gold='{$general['gold']}',rice='{$general['rice']}',leadership2='{$general['leadership2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1898,8 +1898,8 @@ function process_42(&$general) {
case 5:
$log[] = "<C>●</>{$admin['month']}월:동네 장사와 힘겨루기를 하여 멋지게 이겼습니다. <1>$date</>";
// 경험치 상승 // 명성 상승
$general['power2'] += 2;
$query = "update general set resturn='SUCCESS',power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
$general['strength2'] += 2;
$query = "update general set resturn='SUCCESS',strength2='{$general['strength2']}',experience=experience+'$exp2' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 6:
@@ -1911,8 +1911,8 @@ function process_42(&$general) {
case 7:
$log[] = "<C>●</>{$admin['month']}월:산적과 싸워 금 <C>300</>을 빼앗았습니다. <1>$date</>";
// 자금 상승 // 경험치 상승 // 명성 상승
$general['power2'] += 2;
$query = "update general set resturn='SUCCESS',gold=gold+300,power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
$general['strength2'] += 2;
$query = "update general set resturn='SUCCESS',gold=gold+300,strength2='{$general['strength2']}',experience=experience+'$exp2' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 8:
@@ -1926,31 +1926,31 @@ function process_42(&$general) {
case 9:
$log[] = "<C>●</>{$admin['month']}월:호랑이를 잡아 고기 <C>300</>을 얻었습니다. <1>$date</>";
// 군량 상승 // 경험치 상승
$general['power2'] += 2;
$query = "update general set resturn='SUCCESS',rice=rice+300,power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
$general['strength2'] += 2;
$query = "update general set resturn='SUCCESS',rice=rice+300,strength2='{$general['strength2']}',experience=experience+'$exp2' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 10:
$log[] = "<C>●</>{$admin['month']}월:호랑이에게 물려 다쳤습니다. <1>$date</>";
// 경험치 하락 // 명성 상승
$injury = rand() % 10 + 10;
$general['power2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp' where no='{$general['no']}'";
$general['strength2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',strength2='{$general['strength2']}',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 11:
$log[] = "<C>●</>{$admin['month']}월:곰을 잡아 고기 <C>300</>을 얻었습니다. <1>$date</>";
// 군량 상승 // 경험치 상승 // 명성 상승
$general['power2'] += 2;
$query = "update general set resturn='SUCCESS',rice=rice+300,power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
$general['strength2'] += 2;
$query = "update general set resturn='SUCCESS',rice=rice+300,strength2='{$general['strength2']}',experience=experience+'$exp2' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 12:
$log[] = "<C>●</>{$admin['month']}월:곰에게 할퀴어 다쳤습니다. <1>$date</>";
// 경험치 하락 // 명성 상승
$injury = rand() % 10 + 10;
$general['power2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp' where no='{$general['no']}'";
$general['strength2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',strength2='{$general['strength2']}',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 13:
@@ -1969,8 +1969,8 @@ function process_42(&$general) {
$log[] = "<C>●</>{$admin['month']}월:위기에 빠진 사람을 구해주다가 다쳤습니다. <1>$date</>";
// 경험치 하락 // 명성 상승
$injury = rand() % 10 + 10;
$general['power2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
$general['strength2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',strength2='{$general['strength2']}',experience=experience+'$exp2' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 16:
@@ -2013,46 +2013,46 @@ function process_42(&$general) {
case 21:
$log[] = "<C>●</>{$admin['month']}월:백성들에게 현인의 가르침을 설파했습니다. <1>$date</>";
// 경험치 상승 // 명성 상승
$general['leader2'] += 2;
$query = "update general set resturn='SUCCESS',leader2='{$general['leader2']}',experience=experience+'$exp2' where no='{$general['no']}'";
$general['leadership2'] += 2;
$query = "update general set resturn='SUCCESS',leadership2='{$general['leadership2']}',experience=experience+'$exp2' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 22:
$log[] = "<C>●</>{$admin['month']}월:어느 집의 무너진 울타리를 고쳐주었습니다. <1>$date</>";
// 경험치 상승 // 명성 상승
$general['power2'] += 2;
$query = "update general set resturn='SUCCESS',power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
$general['strength2'] += 2;
$query = "update general set resturn='SUCCESS',strength2='{$general['strength2']}',experience=experience+'$exp2' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 23:
$log[] = "<C>●</>{$admin['month']}월:어느 집의 도망친 가축을 되찾아 주었습니다. <1>$date</>";
// 경험치 상승 // 명성 상승
$general['leader2'] += 2;
$query = "update general set resturn='SUCCESS',leader2='{$general['leader2']}',experience=experience+'$exp2' where no='{$general['no']}'";
$general['leadership2'] += 2;
$query = "update general set resturn='SUCCESS',leadership2='{$general['leadership2']}',experience=experience+'$exp2' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 24:
$log[] = "<C>●</>{$admin['month']}월:호랑이에게 물려 크게 다쳤습니다. <1>$date</>";
// 경험치 하락 // 명성 상승
$injury = rand() % 30 + 20;
$general['power2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp' where no='{$general['no']}'";
$general['strength2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',strength2='{$general['strength2']}',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 25:
$log[] = "<C>●</>{$admin['month']}월:곰에게 할퀴어 크게 다쳤습니다. <1>$date</>";
// 경험치 하락 // 명성 상승
$injury = rand() % 30 + 20;
$general['power2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp' where no='{$general['no']}'";
$general['strength2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',strength2='{$general['strength2']}',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 26:
$log[] = "<C>●</>{$admin['month']}월:위기에 빠진 사람을 구하다가 죽을뻔 했습니다. <1>$date</>";
// 경험치 하락 // 명성 상승
$injury = rand() % 50 + 30;
$general['power2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
$general['strength2']--;
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',strength2='{$general['strength2']}',experience=experience+'$exp2' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
default:
@@ -2147,8 +2147,8 @@ function process_43(&$general) {
$ded = CharDedication($ded, $general['personal']);
// 경험치 상승 // 공헌도, 명성 상승
$general['leader2']++;
$query = "update general set resturn='SUCCESS',leader2='{$general['leader2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['leadership2']++;
$query = "update general set resturn='SUCCESS',leadership2='{$general['leadership2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -2236,8 +2236,8 @@ function process_44(&$general) {
$ded = CharDedication($ded, $general['personal']);
// 경험치 상승 // 공헌도, 명성 상승
$general['leader2']++;
$query = "update general set resturn='SUCCESS',leader2='{$general['leader2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$general['leadership2']++;
$query = "update general set resturn='SUCCESS',leadership2='{$general['leadership2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
@@ -2462,15 +2462,15 @@ function process_49(&$general) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 경험치 상승
switch(Util::choiceRandomUsingWeight([$general['leader'], $general['power'], $general['intel']])) {
switch(Util::choiceRandomUsingWeight([$general['leadership'], $general['power'], $general['intel']])) {
case 0:
$general['leader2']++;
$query = "update general set leader2='{$general['leader2']}' where no='{$general['no']}'";
$general['leadership2']++;
$query = "update general set leadership2='{$general['leadership2']}' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 1:
$general['power2']++;
$query = "update general set power2='{$general['power2']}' where no='{$general['no']}'";
$general['strength2']++;
$query = "update general set strength2='{$general['strength2']}' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
break;
case 2:
+6 -6
View File
@@ -7,16 +7,16 @@ use Constraint\Constraint;
* 내정 커맨드 사용시 성공 확률 계산
*
* @param array $general 장수 정보
* @param string $type 내정 커맨드 타입, 'leader' = 통솔 기반, 'power' = 무력 기반, 'intel' = 지력 기반
* @param string $type 내정 커맨드 타입, 'leadership' = 통솔 기반, 'strength' = 무력 기반, 'intel' = 지력 기반
*
* @return array 계산된 실패, 성공 확률 ('success' => 성공 확률, 'fail' => 실패 확률)
*/
function CriticalRatioDomestic(General $general, string $type) {
$leader = $general->getLeadership(false, true, true, false);
$power = $general->getPower(false, true, true, false);
$leadership = $general->getLeadership(false, true, true, false);
$strength = $general->getStrength(false, true, true, false);
$intel = $general->getIntel(false, true, true, false);
$avg = ($leader+$power+$intel) / 3;
$avg = ($leadership+$strength+$intel) / 3;
/*
* 능력치가 높아질 수록 성공 확률 감소. 실패 확률도 감소
@@ -30,8 +30,8 @@ function CriticalRatioDomestic(General $general, string $type) {
505050(50%,50%), 107070(50%,50%)
*/
switch($type) {
case 'leader': $ratio = $avg / $leader; break;
case 'power': $ratio = $avg / $power; break;
case 'leadership': $ratio = $avg / $leadership; break;
case 'strength': $ratio = $avg / $strength; break;
case 'intel': $ratio = $avg / $intel; break;
default:
throw new MustNotBeReachedException();
+25 -25
View File
@@ -1979,7 +1979,7 @@ function process_76(&$general) {
$avgGenNum = $db->queryFirstField('SELECT avg(gennum) FROM nation');
$addGenCount = 5 + Util::round($avgGenNum / 10);
$query = "select avg(age) as age, max(leader+power+intel) as lpi, avg(dedication) as ded,avg(experience) as exp, avg(dex0) as dex0, avg(dex10) as dex10, avg(dex20) as dex20, avg(dex30) as dex30, avg(dex40) as dex40 from general where nation='{$general['nation']}'";
$query = "select avg(age) as age, max(leadership+power+intel) as stat_sum, avg(dedication) as ded,avg(experience) as exp, avg(dex0) as dex0, avg(dex10) as dex10, avg(dex20) as dex20, avg(dex30) as dex30, avg(dex40) as dex40 from general where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$avgGen = MYDB_fetch_array($result);
@@ -1991,42 +1991,42 @@ function process_76(&$general) {
$type = rand() % 10;
switch($type) {
case 0: case 1: case 2: case 3:
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
$leadership = GameConst::$defaultStatMax - 10 + rand()%11;
$intel = GameConst::$defaultStatMin + rand()%6;
$power = GameConst::$defaultStatTotal - $leader - $intel;
$power = GameConst::$defaultStatTotal - $leadership - $intel;
break;
case 4: case 5: case 6: case 7:
$leader = GameConst::$defaultStatMax - 10 + rand()%11;
$leadership = GameConst::$defaultStatMax - 10 + rand()%11;
$power = GameConst::$defaultStatMin + rand()%6;
$intel = GameConst::$defaultStatTotal - $leader - $power;
$intel = GameConst::$defaultStatTotal - $leadership - $power;
break;
case 8: case 9:
$leader = GameConst::$defaultStatMin + rand()%6;
$leadership = GameConst::$defaultStatMin + rand()%6;
$power = GameConst::$defaultStatMax - 10 + rand()%11;
$intel = GameConst::$defaultStatTotal - $leader - $power;
$intel = GameConst::$defaultStatTotal - $leadership - $power;
break;
}
// 국내 최고능치 기준으로 랜덤성 스케일링
if($avgGen['lpi'] > 210) {
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
} elseif($avgGen['lpi'] > 180) {
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
if($avgGen['stat_sum'] > 210) {
$leadership = Util::round($leadership * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$power = Util::round($power * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$intel = Util::round($intel * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
} elseif($avgGen['stat_sum'] > 180) {
$leadership = Util::round($leadership * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$power = Util::round($power * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$intel = Util::round($intel * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
} else {
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$leadership = Util::round($leadership * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$power = Util::round($power * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$intel = Util::round($intel * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
}
$over1 = 0;
$over2 = 0;
$over3 = 0;
// 너무 높은 능치는 다른 능치로 분산
if($leader > 90) {
$over1 = rand() % ($leader - 90) + 5;
$leader -= $over1;
if($leadership > 90) {
$over1 = rand() % ($leadership - 90) + 5;
$leadership -= $over1;
}
if($power > 90) {
$over2 = rand() % ($power - 90) + 5;
@@ -2043,8 +2043,8 @@ function process_76(&$general) {
$power = $power + $over1 + $over2 + $over3;
}
// 너무 높은 능치는 제한
if($leader > GameConst::$defaultStatNPCMax) {
$leader = GameConst::$defaultStatNPCMax;
if($leadership > GameConst::$defaultStatNPCMax) {
$leadership = GameConst::$defaultStatNPCMax;
}
if($power > GameConst::$defaultStatNPCMax) {
$power = GameConst::$defaultStatNPCMax;
@@ -2065,14 +2065,14 @@ function process_76(&$general) {
@MYDB_query("
insert into general (
npc,npc_org,affinity,name,picture,nation,
city,leader,power,intel,experience,dedication,
city,leadership,power,intel,experience,dedication,
level,gold,rice,crew,crewtype,train,atmos,tnmt,
weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg,
makelimit,bornyear,deadyear,
dex0, dex10, dex20, dex30, dex40
) values (
'$npc','$npc','$affinity','$name','$picture','{$nation['nation']}',
'{$general['city']}','$leader','$power','$intel','{$avgGen['exp']}','{$avgGen['ded']}',
'{$general['city']}','$leadership','$power','$intel','{$avgGen['exp']}','{$avgGen['ded']}',
'1','100','100','0','".GameUnitConst::DEFAULT_CREWTYPE."','0','0','0',
'0','0','0','$turntime','$killturn','{$avgGen['age']}','1','$personal','0','0','0','0','',
'0','$bornyear','$deadyear',
+42 -42
View File
@@ -1472,7 +1472,7 @@ function process_76(&$general) {
$avgGenNum = $db->queryFirstField('SELECT avg(gennum) FROM nation');
$addGenCount = 5 + Util::round($avgGenNum / 10);
$avgGen = $db->queryFirstRow('SELECT max(leader+power+intel) as lpi, avg(dedication) as ded,avg(experience) as exp, avg(dex0+dex10+dex20+dex30) as dex_t, avg(age) as age, avg(dex40) as dex40 from general where npc < 5 and nation = %i', $general['nation']);
$avgGen = $db->queryFirstRow('SELECT max(leadership+strength+intel) as stat_sum, avg(dedication) as ded,avg(experience) as exp, avg(dex0+dex10+dex20+dex30) as dex_t, avg(age) as age, avg(dex40) as dex40 from general where npc < 5 and nation = %i', $general['nation']);
$dexTotal = $avgGen['dex_t'];
@@ -1485,86 +1485,86 @@ function process_76(&$general) {
$stat_tier3 = GameConst::$defaultStatMin + rand()%6;
$stat_tier2 = GameConst::$defaultStatTotal - $stat_tier1 - $stat_tier3;
$type = Util::choiceRandomUsingWeight([
'power0'=>1,
'power1'=>1,
'power2'=>1,
'strength0'=>1,
'strength1'=>1,
'strength2'=>1,
'intel'=>3,
'neutral'=>0
]);
switch($type){
case 'power0':
$leader = $stat_tier1;
$power = $stat_tier2;
case 'strength0':
$leadership = $stat_tier1;
$strength = $stat_tier2;
$intel = $stat_tier3;
$dexVal = [$dexTotal*5/8, $dexTotal/8, $dexTotal/8, $dexTotal/8];
break;
case 'power1':
$leader = $stat_tier1;
$power = $stat_tier2;
case 'strength1':
$leadership = $stat_tier1;
$strength = $stat_tier2;
$intel = $stat_tier3;
$dexVal = [$dexTotal/8, $dexTotal*5/8, $dexTotal/8, $dexTotal/8];
break;
case 'power2':
$leader = $stat_tier1;
$power = $stat_tier2;
case 'strength2':
$leadership = $stat_tier1;
$strength = $stat_tier2;
$intel = $stat_tier3;
$dexVal = [$dexTotal/8, $dexTotal/8, $dexTotal*5/8, $dexTotal/8];
break;
case 'intel':
$leader = $stat_tier1;
$power = $stat_tier3;
$leadership = $stat_tier1;
$strength = $stat_tier3;
$intel = $stat_tier2;
$dexVal = [$dexTotal/8, $dexTotal/8, $dexTotal/8, $dexTotal*5/8];
break;
default:
$leader = $stat_tier3;
$power = $stat_tier1;
$leadership = $stat_tier3;
$strength = $stat_tier1;
$intel = $stat_tier2;
$dexVal = [$dexTotal/4, $dexTotal/4, $dexTotal/4, $dexTotal/4];
break;
}
// 국내 최고능치 기준으로 랜덤성 스케일링
if($avgGen['lpi'] > 210) {
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
} elseif($avgGen['lpi'] > 180) {
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
if($avgGen['stat_sum'] > 210) {
$leadership = Util::round($leadership * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$strength = Util::round($strength * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$intel = Util::round($intel * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
} elseif($avgGen['stat_sum'] > 180) {
$leadership = Util::round($leadership * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$strength = Util::round($strength * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$intel = Util::round($intel * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
} else {
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$leadership = Util::round($leadership * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$strength = Util::round($strength * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$intel = Util::round($intel * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
}
$over1 = 0;
$over2 = 0;
$over3 = 0;
// 너무 높은 능치는 다른 능치로 분산
if($leader > 90) {
$over1 = rand() % ($leader - 90) + 5;
$leader -= $over1;
if($leadership > 90) {
$over1 = rand() % ($leadership - 90) + 5;
$leadership -= $over1;
}
if($power > 90) {
$over2 = rand() % ($power - 90) + 5;
$power -= $over2;
if($strength > 90) {
$over2 = rand() % ($strength - 90) + 5;
$strength -= $over2;
}
if($intel > 90) {
$over3 = rand() % ($intel - 90) + 5;
$intel -= $over3;
}
// 낮은 능치쪽으로 합산
if($type == 'power') {
if($type == 'strength') {
$intel = $intel + $over1 + $over2 + $over3;
} else {
$power = $power + $over1 + $over2 + $over3;
$strength = $strength + $over1 + $over2 + $over3;
}
// 너무 높은 능치는 제한
if($leader > GameConst::$defaultStatNPCMax) {
$leader = GameConst::$defaultStatNPCMax;
if($leadership > GameConst::$defaultStatNPCMax) {
$leadership = GameConst::$defaultStatNPCMax;
}
if($power > GameConst::$defaultStatNPCMax) {
$power = GameConst::$defaultStatNPCMax;
if($strength > GameConst::$defaultStatNPCMax) {
$strength = GameConst::$defaultStatNPCMax;
}
if($intel > GameConst::$defaultStatNPCMax) {
$intel = GameConst::$defaultStatNPCMax;
@@ -1582,14 +1582,14 @@ function process_76(&$general) {
@MYDB_query("
insert into general (
npc,npc_org,affinity,name,picture,nation,
city,leader,power,intel,experience,dedication,
city,leadership,strength,intel,experience,dedication,
level,gold,rice,crew,crewtype,train,atmos,tnmt,
weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg,
makelimit,bornyear,deadyear,
dex0, dex10, dex20, dex30, dex40
) values (
'$npc','$npc','$affinity','$name','$picture','{$nation['nation']}',
'{$general['city']}','$leader','$power','$intel','{$avgGen['exp']}','{$avgGen['ded']}',
'{$general['city']}','$leadership','$strength','$intel','{$avgGen['exp']}','{$avgGen['ded']}',
'1','100','100','0','".GameUnitConst::DEFAULT_CREWTYPE."','0','0','0',
'0','0','0','$turntime','$killturn','{$avgGen['age']}','1','$personal','0','0','0','0','',
'0','$bornyear','$deadyear',
+37 -37
View File
@@ -330,9 +330,9 @@ function process_29(&$general) {
if(!$found_npc) {
$exp = 100;
$ded = 70;
switch(Util::choiceRandomUsingWeight([$general['leader'], $general['power'], $general['intel']])) {
case 0: $general['leader2'] += 1; break;
case 1: $general['power2'] += 1; break;
switch(Util::choiceRandomUsingWeight([$general['leadership'], $general['power'], $general['intel']])) {
case 0: $general['leadership2'] += 1; break;
case 1: $general['strength2'] += 1; break;
case 2: $general['intel2'] += 1; break;
}
$log[] = "<C>●</>{$admin['month']}월:인재를 찾을 수 없었습니다. <1>$date</>";
@@ -340,9 +340,9 @@ function process_29(&$general) {
// 탐색 성공
$exp = 200;
$ded = 300;
switch(Util::choiceRandomUsingWeight([$general['leader'], $general['power'], $general['intel']])) {
case 0: $general['leader2'] += 3; break;
case 1: $general['power2'] += 3; break;
switch(Util::choiceRandomUsingWeight([$general['leadership'], $general['power'], $general['intel']])) {
case 0: $general['leadership2'] += 3; break;
case 1: $general['strength2'] += 3; break;
case 2: $general['intel2'] += 3; break;
}
@@ -383,7 +383,7 @@ function process_29(&$general) {
$alllog[] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <Y>$name</>{$josaRa}는 <C>인재</>를 {$scoutType}하였습니다!";
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:<Y>$name</>{$josaRa}는 <C>인재</>를 {$scoutType}");
$avgGen = $db->queryFirstRow('SELECT max(leader+power+intel) as lpi, avg(dedication) as ded,avg(experience) as exp, avg(dex0+dex10+dex20+dex30) as dex_t, avg(dex40) as dex40 from general where npc < 5 and nation = %i', $general['nation']);
$avgGen = $db->queryFirstRow('SELECT max(leadership+power+intel) as stat_sum, avg(dedication) as ded,avg(experience) as exp, avg(dex0+dex10+dex20+dex30) as dex_t, avg(dex40) as dex40 from general where npc < 5 and nation = %i', $general['nation']);
$dexTotal = $avgGen['dex_t'];
@@ -392,39 +392,39 @@ function process_29(&$general) {
$stat_tier3 = GameConst::$defaultStatMin + rand()%6;
$stat_tier2 = GameConst::$defaultStatTotal - $stat_tier1 - $stat_tier3;
$type = Util::choiceRandomUsingWeight([
'power0'=>2,
'power1'=>2,
'power2'=>2,
'strength0'=>2,
'strength1'=>2,
'strength2'=>2,
'intel'=>6,
'neutral'=>3
]);
switch($type){
case 'power0':
$leader = $stat_tier1;
case 'strength0':
$leadership = $stat_tier1;
$power = $stat_tier2;
$intel = $stat_tier3;
$dexVal = [$dexTotal*5/8, $dexTotal/8, $dexTotal/8, $dexTotal/8];
break;
case 'power1':
$leader = $stat_tier1;
case 'strength1':
$leadership = $stat_tier1;
$power = $stat_tier2;
$intel = $stat_tier3;
$dexVal = [$dexTotal/8, $dexTotal*5/8, $dexTotal/8, $dexTotal/8];
break;
case 'power2':
$leader = $stat_tier1;
case 'strength2':
$leadership = $stat_tier1;
$power = $stat_tier2;
$intel = $stat_tier3;
$dexVal = [$dexTotal/8, $dexTotal/8, $dexTotal*5/8, $dexTotal/8];
break;
case 'intel':
$leader = $stat_tier1;
$leadership = $stat_tier1;
$power = $stat_tier3;
$intel = $stat_tier2;
$dexVal = [$dexTotal/8, $dexTotal/8, $dexTotal/8, $dexTotal*5/8];
break;
default:
$leader = $stat_tier3;
$leadership = $stat_tier3;
$power = $stat_tier1;
$intel = $stat_tier2;
$dexVal = [$dexTotal/4, $dexTotal/4, $dexTotal/4, $dexTotal/4];
@@ -432,26 +432,26 @@ function process_29(&$general) {
}
// 국내 최고능치 기준으로 랜덤성 스케일링
if($avgGen['lpi'] > 210) {
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
} elseif($avgGen['lpi'] > 180) {
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
if($avgGen['stat_sum'] > 210) {
$leadership = Util::round($leadership * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$power = Util::round($power * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
$intel = Util::round($intel * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (60+rand()%31)/100);
} elseif($avgGen['stat_sum'] > 180) {
$leadership = Util::round($leadership * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$power = Util::round($power * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
$intel = Util::round($intel * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (75+rand()%21)/100);
} else {
$leader = Util::round($leader * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$power = Util::round($power * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$intel = Util::round($intel * $avgGen['lpi'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$leadership = Util::round($leadership * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$power = Util::round($power * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
$intel = Util::round($intel * $avgGen['stat_sum'] / GameConst::$defaultStatTotal * (90+rand()%11)/100);
}
$over1 = 0;
$over2 = 0;
$over3 = 0;
// 너무 높은 능치는 다른 능치로 분산
if($leader > 90) {
$over1 = rand() % ($leader - 90) + 5;
$leader -= $over1;
if($leadership > 90) {
$over1 = rand() % ($leadership - 90) + 5;
$leadership -= $over1;
}
if($power > 90) {
$over2 = rand() % ($power - 90) + 5;
@@ -468,8 +468,8 @@ function process_29(&$general) {
$power = $power + $over1 + $over2 + $over3;
}
// 너무 높은 능치는 제한
if($leader > 95) {
$leader = 95;
if($leadership > 95) {
$leadership = 95;
}
if($power > 95) {
$power = 95;
@@ -499,14 +499,14 @@ function process_29(&$general) {
@MYDB_query("
insert into general (
npcid,npc,npc_org,affinity,name,picture,nation,
city,leader,power,intel,experience,dedication,
city,leadership,power,intel,experience,dedication,
level,gold,rice,crew,crewtype,train,atmos,tnmt,
weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg,
makelimit,bornyear,deadyear,
dex0, dex10, dex20, dex30, dex40
) values (
'$npccount','$npc','$npc','$affinity','$name','$picture','$scoutNation',
'{$general['city']}','$leader','$power','$intel','{$avgGen['exp']}','{$avgGen['ded']}',
'{$general['city']}','$leadership','$power','$intel','{$avgGen['exp']}','{$avgGen['ded']}',
'$scoutLevel','100','100','0','".GameUnitConst::DEFAULT_CREWTYPE."','0','0','0',
'0','0','0','$turntime','$killturn','$age','1','$personal','0','$specage','0','$specage2','',
'0','$bornyear','$deadyear',
@@ -534,7 +534,7 @@ function process_29(&$general) {
$ded = CharDedication($ded, $general['personal']);
// 자금 감소 // 경험치 상승 // 공헌도, 명성 상승
$query = "update general set resturn='SUCCESS',term='0',gold='$gold',leader2='{$general['leader2']}',power2='{$general['power2']}',intel2='{$general['intel2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
$query = "update general set resturn='SUCCESS',term='0',gold='$gold',leadership2='{$general['leadership2']}',strength2='{$general['strength2']}',intel2='{$general['intel2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = checkAbility($general, $log);
+13 -13
View File
@@ -5,11 +5,11 @@ namespace sammo;
function calcSabotageAttackScore(string $statType, array $general, array $nation):array{
setLeadershipBonus($general, $nation['level']);
if($statType === 'leader'){
if($statType === 'leadership'){
$genScore = getGeneralLeadership($general, true, true, true);
}
else if($statType === 'power'){
$genScore = getGeneralPower($general, true, true, true);
else if($statType === 'strength'){
$genScore = getGeneralStrength($general, true, true, true);
}
else if($statType === 'intel'){
$genScore = getGeneralIntel($general, true, true, true);
@@ -70,10 +70,10 @@ function calcSabotageDefendScore(string $statType, array $generalList, array $ci
foreach ($generalList as $general) {
setLeadershipBonus($general, $nation['level']);
if ($statType === 'leader') {
if ($statType === 'leadership') {
$maxGenScore = max($maxGenScore, getGeneralLeadership($general, true, true, true));
} elseif ($statType === 'power') {
$maxGenScore = max($maxGenScore, getGeneralPower($general, true, true, true));
} elseif ($statType === 'strength') {
$maxGenScore = max($maxGenScore, getGeneralStrength($general, true, true, true));
} elseif ($statType === 'intel') {
$maxGenScore = max($maxGenScore, getGeneralIntel($general, true, true, true));
} else {
@@ -161,7 +161,7 @@ function process_32(&$general) {
$srcNation = getNationStaticInfo($srcNationID);
$destNation = getNationStaticInfo($destNationID);
$generalList = $db->query('SELECT `no`,leader,horse,power,weap,intel,book,injury,level,special,special2 FROM general WHERE city=%i and nation=%i', $destCity['city'], $destCity['nation']);
$generalList = $db->query('SELECT `no`,leadership,horse,strength,weap,intel,book,injury,level,special,special2 FROM general WHERE city=%i and nation=%i', $destCity['city'], $destCity['nation']);
[
$srcGenScore,
@@ -265,7 +265,7 @@ function process_33(&$general) {
$date = substr($general['turntime'],11,5);
$sabotageName = '탈취';
$statType = 'power';
$statType = 'strength';
[$year, $month, $develCost] = $gameStor->getValuesAsArray(['year','month','develcost']);
$logger = new ActionLogger($general['no'], $general['nation'], $year, $month);
@@ -298,7 +298,7 @@ function process_33(&$general) {
$srcNation = getNationStaticInfo($srcNationID);
$destNation = getNationStaticInfo($destNationID);
$generalList = $db->query('SELECT `no`,leader,horse,power,weap,intel,book,injury,level,special,special2 FROM general WHERE city=%i and nation=%i', $destCity['city'], $destCity['nation']);
$generalList = $db->query('SELECT `no`,leadership,horse,strength,weap,intel,book,injury,level,special,special2 FROM general WHERE city=%i and nation=%i', $destCity['city'], $destCity['nation']);
[
$srcGenScore,
@@ -436,7 +436,7 @@ function process_34(&$general) {
$date = substr($general['turntime'],11,5);
$sabotageName = '파괴';
$statType = 'power';
$statType = 'strength';
[$year, $month, $develCost] = $gameStor->getValuesAsArray(['year','month','develcost']);
$logger = new ActionLogger($general['no'], $general['nation'], $year, $month);
@@ -467,7 +467,7 @@ function process_34(&$general) {
$srcNation = getNationStaticInfo($srcNationID);
$destNation = getNationStaticInfo($destNationID);
$generalList = $db->query('SELECT `no`,leader,horse,power,weap,intel,book,injury,level,special,special2 FROM general WHERE city=%i and nation=%i', $destCity['city'], $destCity['nation']);
$generalList = $db->query('SELECT `no`,leadership,horse,strength,weap,intel,book,injury,level,special,special2 FROM general WHERE city=%i and nation=%i', $destCity['city'], $destCity['nation']);
[
$srcGenScore,
@@ -574,7 +574,7 @@ function process_35(&$general) {
$date = substr($general['turntime'],11,5);
$sabotageName = '선동';
$statType = 'leader';
$statType = 'leadership';
[$year, $month, $develCost] = $gameStor->getValuesAsArray(['year','month','develcost']);
$logger = new ActionLogger($general['no'], $general['nation'], $year, $month);
@@ -607,7 +607,7 @@ function process_35(&$general) {
$srcNation = getNationStaticInfo($srcNationID);
$destNation = getNationStaticInfo($destNationID);
$generalList = $db->query('SELECT `no`,leader,horse,power,weap,intel,book,injury,level,special,special2 FROM general WHERE city=%i and nation=%i', $destCity['city'], $destCity['nation']);
$generalList = $db->query('SELECT `no`,leadership,horse,strength,weap,intel,book,injury,level,special,special2 FROM general WHERE city=%i and nation=%i', $destCity['city'], $destCity['nation']);
[
$srcGenScore,
$srcSpecialScore,
+22 -22
View File
@@ -309,8 +309,8 @@ function fillLowGenAll() {
'no'=>0,
'npc'=>2,
'name'=>'무명장수',
'leader'=>10,
'power'=>10,
'leadership'=>10,
'strength'=>10,
'intel'=>10,
'explevel'=>10
];
@@ -335,7 +335,7 @@ function fillLowGenAll() {
//자동신청하고, 돈 있고, 아직 참가 안한 장수
$freeJoiners = $db->query(
'SELECT no,npc,name,leader,power,intel,explevel,horse,weap,book from general where tnmt=1 and tournament=0 order by rand() limit %d',
'SELECT no,npc,name,leadership,strength,intel,explevel,horse,weap,book from general where tnmt=1 and tournament=0 order by rand() limit %d',
$toBeFilledCnt
);
@@ -349,9 +349,9 @@ function fillLowGenAll() {
'no'=>$general['no'],
'npc'=>$general['npc'],
'name'=>$general['name'],
'ldr'=>$general['leader'],
'pwr'=>$general['power'],
'itl'=>$general['intel'],
'leadership'=>$general['leadership'],
'strength'=>$general['strength'],
'intel'=>$general['intel'],
'lvl'=>$general['explevel'],
'grp'=>$grpIdx,
'grp_no'=>$grpCnt,
@@ -486,9 +486,9 @@ function selection($tnmt_type, $tnmt, $phase) {
'no'=>$general['no'],
'npc'=>$general['npc'],
'name'=>$general['name'],
'ldr'=>$general['ldr'],
'pwr'=>$general['pwr'],
'itl'=>$general['itl'],
'leadership'=>$general['leadership'],
'strength'=>$general['strength'],
'intel'=>$general['intel'],
'lvl'=>$general['lvl'],
'grp'=>$grp,
'grp_no'=>$grp_no,
@@ -573,9 +573,9 @@ function final16set() {
'no'=>$general['no'],
'npc'=>$general['npc'],
'name'=>$general['name'],
'ldr'=>$general['ldr'],
'pwr'=>$general['pwr'],
'itl'=>$general['itl'],
'leadership'=>$general['leadership'],
'strength'=>$general['strength'],
'intel'=>$general['intel'],
'lvl'=>$general['lvl'],
'grp'=>$newGrp,
'grp_no'=>$newGrp_no,
@@ -617,9 +617,9 @@ function finalFight($tnmt_type, $tnmt, $phase, $type) {
'no'=>$general['no'],
'npc'=>$general['npc'],
'name'=>$general['name'],
'ldr'=>$general['ldr'],
'pwr'=>$general['pwr'],
'itl'=>$general['itl'],
'leadership'=>$general['leadership'],
'strength'=>$general['strength'],
'intel'=>$general['intel'],
'lvl'=>$general['lvl'],
'grp'=>$newGrp,
'grp_no'=>$newGrp_no,
@@ -649,7 +649,7 @@ function setGift($tnmt_type, $tnmt, $phase) {
switch($tnmt_type) {
case 0: $tp = "전력전"; $tp2 = "tt"; break;
case 1: $tp = "통솔전"; $tp2 = "tl"; break;
case 2: $tp = "일기토"; $tp2 = "tp"; break;
case 2: $tp = "일기토"; $tp2 = "ts"; break;
case 3: $tp = "설전"; $tp2 = "ti"; break;
}
@@ -830,11 +830,11 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
eraseTnmtFightLog($group);
$query = "select *,(ldr+pwr+itl)*7/15 as tot,h,w,b from tournament where grp='$group' and grp_no='$g1'";
$query = "select *,(leadership+strength+intel)*7/15 as total,h,w,b from tournament where grp='$group' and grp_no='$g1'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gen1 = MYDB_fetch_array($result);
$query = "select *,(ldr+pwr+itl)*7/15 as tot,h,w,b from tournament where grp='$group' and grp_no='$g2'";
$query = "select *,(leadership+strength+intel)*7/15 as total,h,w,b from tournament where grp='$group' and grp_no='$g2'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gen2 = MYDB_fetch_array($result);
@@ -842,10 +842,10 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
else { $turn = 100; }
if($tnmt_type == 1) { $tp = "ldr"; $tp2 = "tl"; }
elseif($tnmt_type == 2) { $tp = "pwr"; $tp2 = "tp"; }
elseif($tnmt_type == 3) { $tp = "itl"; $tp2 = "ti"; }
else /*$tnmt_type == 0*/{ $tp = "tot"; $tp2 = "tt"; }
if($tnmt_type == 1) { $tp = "leadership"; $tp2 = "tl"; }
elseif($tnmt_type == 2) { $tp = "strength"; $tp2 = "ts"; }
elseif($tnmt_type == 3) { $tp = "intel"; $tp2 = "ti"; }
else /*$tnmt_type == 0*/{ $tp = "total"; $tp2 = "tt"; }
$e1 = $energy1 = Util::round($gen1[$tp] * getLog($gen1['lvl'], $gen2['lvl']) * 10);
$e2 = $energy2 = Util::round($gen2[$tp] * getLog($gen1['lvl'], $gen2['lvl']) * 10);
+4 -4
View File
@@ -42,7 +42,7 @@ else{
$session->setReadOnly();
$rawGeneralList = $db->queryAllLists('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,name2,injury,leader,power,intel,experience,dedication,level,killturn,connect from general');
$rawGeneralList = $db->queryAllLists('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,name2,injury,leadership,strength,intel,experience,dedication,level,killturn,connect from general');
$ownerNameList = [];
if($gameStor->isunited){
@@ -53,7 +53,7 @@ if($gameStor->isunited){
$generalList = [];
foreach($rawGeneralList as $rawGeneral){
[$owner,$no,$picture,$imgsvr,$npc,$age,$nation,$special,$special2,$personal,$name,$name2,$injury,$leader,$power,$intel,$experience,$dedication,$level,$killturn,$connect] = $rawGeneral;
[$owner,$no,$picture,$imgsvr,$npc,$age,$nation,$special,$special2,$personal,$name,$name2,$injury,$leadership,$strength,$intel,$experience,$dedication,$level,$killturn,$connect] = $rawGeneral;
if(key_exists($owner, $ownerNameList)){
$name2 = $ownerNameList[$owner];
@@ -75,9 +75,9 @@ foreach($rawGeneralList as $rawGeneral){
$name,
$npc==1?$name2:null,
$injury,
$leader,
$leadership,
$lbonus,
$power,
$strength,
$intel,
getExpLevel($experience),
getHonor($experience),
+2 -2
View File
@@ -90,13 +90,13 @@ if($token && !$refresh){
$candidates = [];
$weight = [];
foreach($db->query('SELECT `no`, `name`, leader, power, intel, nation, imgsvr, picture, personal, special, special2 FROM general WHERE npc=2') as $general){
foreach($db->query('SELECT `no`, `name`, leadership, strength, intel, nation, imgsvr, picture, personal, special, special2 FROM general WHERE npc=2') as $general){
$general['special'] = (getGeneralSpecialDomesticClass($general['special']))::$name;
$general['special2'] = (getGeneralSpecialWarClass($general['special2']))::$name;
$general['personal'] = (getPersonalityClass($general['personal']));
$general['nation'] = getNationStaticInfo($general['nation'])['name'];
$candidates[$general['no']] = $general + ['keepCnt'=>KEEP_CNT];
$allStat = $general['leader'] + $general['power'] + $general['intel'];
$allStat = $general['leadership'] + $general['strength'] + $general['intel'];
$weight[$general['no']] = pow($allStat, 1.5);
}
+4 -4
View File
@@ -82,13 +82,13 @@ $rawDefenderNation = $query['defenderNation'];
$generalCheck = [
'required'=>[
'no', 'name', 'nation', 'turntime', 'personal', 'special2', 'crew', 'crewtype', 'atmos', 'train',
'intel', 'intel2', 'book', 'power', 'power2', 'weap', 'injury', 'leader', 'leader2', 'horse', 'item',
'intel', 'intel2', 'book', 'strength', 'strength2', 'weap', 'injury', 'leadership', 'leadership2', 'horse', 'item',
'explevel', 'experience', 'dedication', 'level', 'gold', 'rice', 'dex0', 'dex10', 'dex20', 'dex30', 'dex40',
'warnum', 'killnum', 'deathnum', 'killcrew', 'deathcrew', 'recwar'
],
'integer'=>[
'no', 'nation', 'personal', 'special2', 'crew', 'crewtype', 'atmos', 'train',
'intel', 'intel2', 'book', 'power', 'power2', 'weap', 'injury', 'leader', 'leader2', 'horse', 'item',
'intel', 'intel2', 'book', 'strength', 'strength2', 'weap', 'injury', 'leadership', 'leadership2', 'horse', 'item',
'explevel', 'experience', 'dedication', 'level', 'gold', 'rice', 'dex0', 'dex10', 'dex20', 'dex30', 'dex40',
'warnum', 'killnum', 'deathnum', 'killcrew', 'deathcrew'
],
@@ -97,8 +97,8 @@ $generalCheck = [
['nation', 1],
['crew', 0],
['intel', 0],
['power', 0],
['leader', 0],
['strength', 0],
['leadership', 0],
['experience', 0],
['gold', 0],
['rice', 0],
+2 -2
View File
@@ -127,11 +127,11 @@ if ($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture']
</tr>
<tr>
<td width=498 align=right id=bg1>통솔</td>
<td colspan=2><input type="number" name="leader" id="leader" value="50"></td>
<td colspan=2><input type="number" name="leadership" id="leadership" value="50"></td>
</tr>
<tr>
<td width=498 align=right id=bg1>무력</td>
<td colspan=2><input type="number" name="power" id="power" value="50"></td>
<td colspan=2><input type="number" name="strength" id="strength" value="50"></td>
</tr>
<tr>
<td width=498 align=right id=bg1>지력</td>
+24 -24
View File
@@ -8,25 +8,25 @@ $v = new Validator($_POST + $_GET);
$v
->rule('required', [
'name',
'leader',
'power',
'leadership',
'strength',
'intel'
])
->rule('integer', [
'leader',
'power',
'leadership',
'strength',
'intel',
'character',
])
->rule('stringWidthBetween', 'name', 1, 18)
->rule('min', [
'leader',
'power',
'leadership',
'strength',
'intel'
], GameConst::$defaultStatMin)
->rule('max', [
'leader',
'power',
'leadership',
'strength',
'intel'
], GameConst::$defaultStatMax)
->rule('min', 'character', 0)
@@ -50,8 +50,8 @@ $name = StringUtil::textStrip($name);
$pic = (int)Util::getReq('pic', 'bool', 0);
$character = Util::getReq('character', 'int', 0);
$leader = Util::getReq('leader', 'int', 50);
$power = Util::getReq('power', 'int', 50);
$leadership = Util::getReq('leadership', 'int', 50);
$strength = Util::getReq('strength', 'int', 50);
$intel = Util::getReq('intel', 'int', 50);
$join = Util::getReq('join'); //쓸모 없음
@@ -110,7 +110,7 @@ if (mb_strwidth($name) > 18) {
</script>");
exit;
}
if ($leader + $power + $intel > GameConst::$defaultStatTotal) {
if ($leadership + $strength + $intel > GameConst::$defaultStatTotal) {
echo("<script>
window.alert('능력치가 ".GameConst::$defaultStatTotal."을 넘어섰습니다. 다시 가입해주세요!')
history.go(-1)
@@ -132,16 +132,16 @@ if (!$city) {
$city = $db->queryFirstField("select city from city where level>=5 and level<=6 order by rand() limit 0,1");
}
$pleader = 0;
$ppower = 0;
$pleadershipship = 0;
$pstrength = 0;
$pintel = 0;
for ($statBonusCnt = 3 + mt_rand(0, 2); $statBonusCnt > 0; $statBonusCnt--) {
switch (Util::choiceRandomUsingWeight([$leader, $power, $intel])) {
switch (Util::choiceRandomUsingWeight([$leadership, $strength, $intel])) {
case 0:
$pleader++;
$pleadership++;
break;
case 1:
$ppower++;
$pstrength++;
break;
case 2:
$pintel++;
@@ -149,20 +149,20 @@ for ($statBonusCnt = 3 + mt_rand(0, 2); $statBonusCnt > 0; $statBonusCnt--) {
}
}
$leader = $leader + $pleader;
$power = $power + $ppower;
$leadership = $leadership + $pleadership;
$strength = $strength + $pstrength;
$intel = $intel + $pintel;
$admin = $gameStor->getValues(['scenario', 'turnterm', 'turntime', 'show_img_level', 'startyear', 'year']);
$relYear = Util::valueFit($admin['year'] - $admin['startyear'], 0);
$age = 20 + ($pleader + $ppower + $pintel) * 2 - (mt_rand(0, 1));
$age = 20 + ($pleadership + $pstrength + $pintel) * 2 - (mt_rand(0, 1));
// 아직 남았고 천재등록상태이면 특기 부여
if ($genius) {
$specage2 = $age;
$special2 = SpecialityConst::pickSpecialWar([
'leader'=>$leader,
'power'=>$power,
'leadership'=>$leadership,
'strength'=>$strength,
'intel'=>$intel,
'dex0'=>0,
'dex10'=>0,
@@ -230,8 +230,8 @@ $db->insert('general', [
'city' => $city,
'troop' => 0,
'affinity' => $affinity,
'leader' => $leader,
'power' => $power,
'leadership' => $leadership,
'strength' => $strength,
'intel' => $intel,
'experience' => $experience,
'dedication' => 0,
@@ -288,7 +288,7 @@ $mylog[] = "<C>●</>삼국지 모의전투 PHP의 세계에 오신 것을 환
$mylog[] = "<C>●</>처음 하시는 경우에는 <D>도움말</>을 참고하시고,";
$mylog[] = "<C>●</>문의사항이 있으시면 게시판에 글을 남겨주시면 되겠네요~";
$mylog[] = "<C>●</>부디 즐거운 삼모전 되시길 바랍니다 ^^";
$mylog[] = "<C>●</>통솔 <C>$pleader</> 무력 <C>$ppower</> 지력 <C>$pintel</> 의 보너스를 받으셨습니다.";
$mylog[] = "<C>●</>통솔 <C>$pleadership</> 무력 <C>$pstrength</> 지력 <C>$pintel</> 의 보너스를 받으셨습니다.";
$mylog[] = "<C>●</>연령은 <C>$age</>세로 시작합니다.";
if ($genius) {
$mylog[] = "<C>●</>축하합니다! 천재로 태어나 처음부터 <C>".getGeneralSpecialWarName($special2)."</> 특기를 가지게 됩니다!";
+8 -8
View File
@@ -55,11 +55,11 @@ $token_num = MYDB_num_rows($result);
if($token_num == 1) {
$token = MYDB_fetch_array($result);
$leader = $token['leader'];
$leadership = $token['leadership'];
$power = $token['power'];
$intel = $token['intel'];
} else {
$leader = 0;
$leadership = 0;
$power = 0;
$intel = 0;
}
@@ -112,13 +112,13 @@ if($id_num) {
history.go(-1)
</script>");
exit;
} elseif($leader + $power + $intel > 150) {
} elseif($leadership + $power + $intel > 150) {
echo("<script>
window.alert('능력치가 150을 넘어섰습니다. 다시 가입해주세요!')
history.go(-1)
</script>");
exit;
} elseif($leader > 75 || $leader < 10 || $power > 75 || $power < 10 || $intel > 75 || $intel < 10) {
} elseif($leadership > 75 || $leadership < 10 || $power > 75 || $power < 10 || $intel > 75 || $intel < 10) {
echo("<script>
window.alert('능력치가 비정상적입니다. 다시 가입해주세요!')
history.go(-1)
@@ -168,7 +168,7 @@ if($id_num) {
$ppower = floor($ppower / $rate * $total + 0.5);
$pintel = floor($pintel / $rate * $total + 0.5);
$leader = $leader + $pleader;
$leadership = $leadership + $pleader;
$power = $power + $ppower;
$intel = $intel + $pintel;
@@ -176,7 +176,7 @@ if($id_num) {
// 아직 남았고 천재등록상태이면 특기 부여
if($genius == 1) {
$specage2 = $age;
$special2 = getSpecial2($connect, $leader, $power, $intel);
$special2 = getSpecial2($connect, $leadership, $power, $intel);
} else {
$specage2 = round((80 - $age)/3) + $age;
$special2 = 0;
@@ -217,11 +217,11 @@ if($id_num) {
$query = "
insert into general (
user_id, password, name, picture, imgsvr, nation, city, troop, npcmatch,
leader, power, intel, experience, dedication, gold, rice, crew, train, atmos,
leadership, power, intel, experience, dedication, gold, rice, crew, train, atmos,
userlevel, level, turntime, killturn, lastconnect, makelimit, age, startage, personal, specage, special, specage2, special2
) values (
'$id', '$pwTemp', '$name', '$face', '$imgsvr', '0', '$city', '0', '$npcmatch',
'$leader', '$power', '$intel', '0', '0', '1000', '1000', '0', '0', '0',
'$leadership', '$power', '$intel', '0', '0', '1000', '1000', '0', '0', '0',
'$userlevel', '0', '$turntime', '6', '$lastconnect', '0', '$age', '$age', '$character', '$specage', '$special', '$specage2', '$special2'
)";
$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),"");
+6 -6
View File
@@ -156,9 +156,9 @@ jQuery(function($){
setVal('.form_exp_level', data.explevel);
setVal('.form_injury', data.injury);
setVal('.form_leadership', data.leader);
setVal('.form_leadership', data.leadership);
setVal('.form_general_horse', data.horse);
setVal('.form_power', data.power);
setVal('.form_strength', data.strength);
setVal('.form_general_weap', data.weap);
setVal('.form_intel', data.intel);
setVal('.form_general_book', data.book);
@@ -203,9 +203,9 @@ jQuery(function($){
level:getInt('.form_general_level'),
explevel:getInt('.form_exp_level'),
leader:getInt('.form_leadership'),
leadership:getInt('.form_leadership'),
horse:getInt('.form_general_horse'),
power:getInt('.form_power'),
strength:getInt('.form_strength'),
weap:getInt('.form_general_weap'),
intel:getInt('.form_intel'),
book:getInt('.form_general_book'),
@@ -365,8 +365,8 @@ jQuery(function($){
city: (generalData.no)<=1 ? 1 : 3,
turntime:'2018-08-26 12:00',
special:defaultSpecialDomestic,
leader2:0,
power2:0,
leadership2:0,
strength2:0,
intel2:0,
gold:10000,
+1 -1
View File
@@ -77,7 +77,7 @@ $(function(){
장수.국가 = 국가;
장수.벌점 = parseInt($tds.eq(-1).text());
장수. = parseInt($this.data('general-leadership'));
장수. = parseInt($this.data('general-power'));
장수. = parseInt($this.data('general-strength'));
장수. = parseInt($this.data('general-intel'));
장수.삭턴 = parseInt($tds.eq(-2).text());
장수.종류 = getUserType(장수., 장수., 장수.);
+68 -68
View File
@@ -1,148 +1,148 @@
jQuery(function($){
var $leader = $('#leader');
var $power = $('#power');
var $leadership = $('#leadership');
var $strength = $('#strength');
var $intel = $('#intel');
function abilityRand(){
var leader = Math.random()*65 + 10;
var power = Math.random()*65 + 10;
var leadership = Math.random()*65 + 10;
var strength = Math.random()*65 + 10;
var intel = Math.random()*65 + 10;
var rate = leader + power + intel;
var rate = leadership + strength + intel;
leader = Math.floor(leader / rate * defaultStatTotal);
power = Math.floor(power / rate * defaultStatTotal);
leadership = Math.floor(leadership / rate * defaultStatTotal);
strength = Math.floor(strength / rate * defaultStatTotal);
intel = Math.floor(intel / rate * defaultStatTotal);
while(leader+power+intel < defaultStatTotal){
leader+=1;
while(leadership+strength+intel < defaultStatTotal){
leadership+=1;
}
if(leader > defaultStatMax || power > defaultStatMax || intel > defaultStatMax || leader < defaultStatMin || power < defaultStatMin || intel < defaultStatMin){
if(leadership > defaultStatMax || strength > defaultStatMax || intel > defaultStatMax || leadership < defaultStatMin || strength < defaultStatMin || intel < defaultStatMin){
return abilityRand();
}
$leader.val(leader);
$power.val(power);
$leadership.val(leadership);
$strength.val(strength);
$intel.val(intel);
}
function abilityLeadpow(){
var leader = Math.random() * 6;
var power = Math.random() * 6;
var leadership = Math.random() * 6;
var strength = Math.random() * 6;
var intel = Math.random() * 1;
var rate = leader + power + intel;
var rate = leadership + strength + intel;
leader = Math.floor(leader / rate * defaultStatTotal);
power = Math.floor(power / rate * defaultStatTotal);
leadership = Math.floor(leadership / rate * defaultStatTotal);
strength = Math.floor(strength / rate * defaultStatTotal);
intel = Math.floor(intel / rate * defaultStatTotal);
while(leader+power+intel < defaultStatTotal){
power+=1;
while(leadership+strength+intel < defaultStatTotal){
strength+=1;
}
if(intel < defaultStatMin){
leader -= defaultStatMin - intel;
leadership -= defaultStatMin - intel;
intel = defaultStatMin;
}
if(leader > defaultStatMax){
power += leader - defaultStatMax;
leader = defaultStatMax;
if(leadership > defaultStatMax){
strength += leadership - defaultStatMax;
leadership = defaultStatMax;
}
if(power > defaultStatMax){
leader += power - defaultStatMax;
power = defaultStatMax;
if(strength > defaultStatMax){
leadership += strength - defaultStatMax;
strength = defaultStatMax;
}
if(leader > defaultStatMax){
intel += leader - defaultStatMax;
leader = defaultStatMax;
if(leadership > defaultStatMax){
intel += leadership - defaultStatMax;
leadership = defaultStatMax;
}
$leader.val(leader);
$power.val(power);
$leadership.val(leadership);
$strength.val(strength);
$intel.val(intel);
}
function abilityLeadint(){
var leader = Math.random() * 6;
var power = Math.random() * 1;
var leadership = Math.random() * 6;
var strength = Math.random() * 1;
var intel = Math.random() * 6;
var rate = leader + power + intel;
var rate = leadership + strength + intel;
leader = Math.floor(leader / rate * defaultStatTotal);
power = Math.floor(power / rate * defaultStatTotal);
leadership = Math.floor(leadership / rate * defaultStatTotal);
strength = Math.floor(strength / rate * defaultStatTotal);
intel = Math.floor(intel / rate * defaultStatTotal);
while(leader+power+intel < defaultStatTotal){
while(leadership+strength+intel < defaultStatTotal){
intel+=1;
}
if(power < defaultStatMin){
leader -= defaultStatMin - power;
power = defaultStatMin;
if(strength < defaultStatMin){
leadership -= defaultStatMin - strength;
strength = defaultStatMin;
}
if(leader > defaultStatMax){
intel += leader - defaultStatMax;
leader = defaultStatMax;
if(leadership > defaultStatMax){
intel += leadership - defaultStatMax;
leadership = defaultStatMax;
}
if(intel > defaultStatMax){
leader += intel - defaultStatMax;
leadership += intel - defaultStatMax;
intel = defaultStatMax;
}
if(leader > defaultStatMax){
power += leader - defaultStatMax;
leader = defaultStatMax;
if(leadership > defaultStatMax){
strength += leadership - defaultStatMax;
leadership = defaultStatMax;
}
$leader.val(leader);
$power.val(power);
$leadership.val(leadership);
$strength.val(strength);
$intel.val(intel);
}
function abilityPowint(){
var leader = Math.random() * 1;
var power = Math.random() * 6;
var leadership = Math.random() * 1;
var strength = Math.random() * 6;
var intel = Math.random() * 6;
var rate = leader + power + intel;
var rate = leadership + strength + intel;
leader = Math.floor(leader / rate * defaultStatTotal);
power = Math.floor(power / rate * defaultStatTotal);
leadership = Math.floor(leadership / rate * defaultStatTotal);
strength = Math.floor(strength / rate * defaultStatTotal);
intel = Math.floor(intel / rate * defaultStatTotal);
while(leader+power+intel < defaultStatTotal){
while(leadership+strength+intel < defaultStatTotal){
intel+=1;
}
if(leader < defaultStatMin){
power -= defaultStatMin - leader;
leader = defaultStatMin;
if(leadership < defaultStatMin){
strength -= defaultStatMin - leadership;
leadership = defaultStatMin;
}
if(power > defaultStatMax){
intel += power - defaultStatMax;
power = defaultStatMax;
if(strength > defaultStatMax){
intel += strength - defaultStatMax;
strength = defaultStatMax;
}
if(intel > defaultStatMax){
power += intel - defaultStatMax;
strength += intel - defaultStatMax;
intel = defaultStatMax;
}
if(power > defaultStatMax){
leader += power - defaultStatMax;
power = defaultStatMax;
if(strength > defaultStatMax){
leadership += strength - defaultStatMax;
strength = defaultStatMax;
}
$leader.val(leader);
$power.val(power);
$leadership.val(leadership);
$strength.val(strength);
$intel.val(intel);
}
@@ -182,7 +182,7 @@ jQuery(function($){
alert('장수 이름이 너무 깁니다!');
return false;
}
var currentStatTotal = parseInt($leader.val()) + parseInt($power.val()) + parseInt($intel.val());
var currentStatTotal = parseInt($leadership.val()) + parseInt($strength.val()) + parseInt($intel.val());
if(currentStatTotal < defaultStatTotal){
if(!confirm('현재 능력치 총합은 {0}으로, {1}보다 낮습니다. 장수 생성을 진행할까요?'.format(currentStatTotal, defaultStatTotal))){
return false;
+10 -10
View File
@@ -2,7 +2,7 @@ var templateGeneralCard =
'<div class="general_card">\
<h4 class="bg1 with_border"><%name%></h4>\
<h4><img src="<%iconPath%>" height=64 width=64></h4>\
<p><%leader%> / <%power%> / <%intel%><br>\
<p><%leadership%> / <%strength%> / <%intel%><br>\
<%nation%><br>\
<%personalText%><br>\
<%specialText%> / <%special2Text%></p>\
@@ -31,8 +31,8 @@ var templateGeneralRow =
<td><%dedication%></td>\
<td><%level%></td>\
<td><%total%></td>\
<td><%leader%></td>\
<td><%power%></td>\
<td><%leadership%></td>\
<td><%strength%></td>\
<td><%intel%></td>\
<td><%killturn%></td>\
</tr>';
@@ -111,8 +111,8 @@ function printGenerals(value){
});
pick.sort(function(lhs, rhs){
var lsum = lhs.leader+lhs.power+lhs.intel;
var rsum = rhs.leader+rhs.power+rhs.intel;
var lsum = lhs.leadership+lhs.strength+lhs.intel;
var rsum = rhs.leadership+rhs.strength+rhs.intel;
return lsum - rsum;
});
@@ -181,9 +181,9 @@ function printGeneralList(value){
name:general[9],
name2:general[10],
injury:general[11],
leader:general[12],
leadership:general[12],
lbonus:general[13],
power:general[14],
strength:general[14],
intel:general[15],
explevel:general[16],
experience:general[17],
@@ -222,7 +222,7 @@ function printGeneralList(value){
}
general.total = general.leader + general.power + general.intel;
general.total = general.leadership + general.strength + general.intel;
general.iconPath = getIconPath(general.imgsvr, general.picture);
general.specialDomesticWithTooltip = TemplateEngine(templateSpecial, {
@@ -253,8 +253,8 @@ function printGeneralList(value){
if(lhs.total != rhs.total){
return rhs.total - lhs.total;
}
if(lhs.leader != rhs.leader){
return rhs.leader - lhs.total;
if(lhs.leadership != rhs.leadership){
return rhs.leadership - lhs.total;
}
if(lhs.name < rhs.name){
+3 -3
View File
@@ -34,7 +34,7 @@ function processWar(General $attackerGeneral, array $rawAttackerNation, array $r
$city = new WarUnitCity($rawDefenderCity, $rawDefenderNation, $year, $month, $cityRate);
$defenderList = [];
foreach ($db->query('SELECT no,name,nation,turntime,personal,special2,crew,crewtype,atmos,train,intel,intel2,book,power,power2,weap,injury,leader,leader2,horse,item,explevel,experience,dedication,level,gold,rice,dex0,dex10,dex20,dex30,dex40,warnum,killnum,deathnum,killcrew,deathcrew,recwar,mode FROM general WHERE nation=%i AND city=%i AND nation!=0 and crew > 0 and rice>(crew/100) and ((train>=60 and atmos>=60 and mode=1) or (train>=80 and atmos>=80 and mode=2))', $city->getVar('nation'), $city->getVar('city')) as $rawGeneral){
foreach ($db->query('SELECT no,name,nation,turntime,personal,special2,crew,crewtype,atmos,train,intel,intel2,book,strength,strength2,weap,injury,leadership,leadership2,horse,item,explevel,experience,dedication,level,gold,rice,dex0,dex10,dex20,dex30,dex40,warnum,killnum,deathnum,killcrew,deathcrew,recwar,mode FROM general WHERE nation=%i AND city=%i AND nation!=0 and crew > 0 and rice>(crew/100) and ((train>=60 and atmos>=60 and mode=1) or (train>=80 and atmos>=80 and mode=2))', $city->getVar('nation'), $city->getVar('city')) as $rawGeneral){
$defenderList[] = new General($rawGeneral, $rawDefenderCity, $year, $month);
}
@@ -198,8 +198,8 @@ function extractBattleOrder(General $general){
return 0;
}
$realStat = $general->getLeadership() + $general->getPower() + $general->getIntel();
$fullStat = $general->getLeadership(false) + $general->getPower(false) + $general->getIntel(false);
$realStat = $general->getLeadership() + $general->getStrength() + $general->getIntel();
$fullStat = $general->getLeadership(false) + $general->getStrength(false) + $general->getIntel(false);
$totalStat = ($realStat + $fullStat) / 2;
$totalCrew = $general->getVar('crew') / 1000000 * (($general->getVar('train') * $general->getVar('atmos')) ** 1.5);
+5 -5
View File
@@ -204,7 +204,7 @@ function command_11($turn, $command, bool $is모병 = false) {
$userID = Session::getUserID();
$me = $db->queryFirstRow(
'SELECT no,nation,level,personal,special2,level,city,crew,horse,injury,leader,crewtype,gold
'SELECT no,nation,level,personal,special2,level,city,crew,horse,injury,leadership,crewtype,gold
from general where owner=%i',
$userID
);
@@ -231,8 +231,8 @@ function command_11($turn, $command, bool $is모병 = false) {
$ownRegions[$city['region']] = 1;
}
$leader = getGeneralLeadership($me, true, true, true);
$fullLeader = getGeneralLeadership($me, false, true, true);
$leadership = getGeneralLeadership($me, true, true, true);
$fullLeadershipship = getGeneralLeadership($me, false, true, true);
$abil = getTechAbil($tech);
$armTypes = [];
@@ -315,8 +315,8 @@ function command_11($turn, $command, bool $is모병 = false) {
'commandName'=>$commandName,
'techLevelText'=>getTechCall($tech),
'tech'=>$tech,
'leader'=>$leader,
'fullLeader'=>$fullLeader,
'leadership'=>$leadership,
'fullLeadership'=>$fullLeadership,
'crewType'=>GameUnitConst::byId($me['crewtype'])->id,
'crewTypeName'=>GameUnitConst::byId($me['crewtype'])->name,
'crew'=>$me['crew'],
@@ -15,7 +15,7 @@ class che_귀모 implements iAction{
static $selectWeight = 2.5;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER,
SpecialityConst::STAT_STRENGTH,
SpecialityConst::STAT_INTEL
];
@@ -14,7 +14,7 @@ class che_수비 implements iAction{
static $selectWeightType = SpecialityConst::WEIGHT_NORM;
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_POWER
SpecialityConst::STAT_STRENGTH
];
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
@@ -14,7 +14,7 @@ class che_축성 implements iAction{
static $selectWeightType = SpecialityConst::WEIGHT_NORM;
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_POWER
SpecialityConst::STAT_STRENGTH
];
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
@@ -14,7 +14,7 @@ class che_통찰 implements iAction{
static $selectWeightType = SpecialityConst::WEIGHT_NORM;
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_POWER
SpecialityConst::STAT_STRENGTH
];
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
+1 -1
View File
@@ -19,7 +19,7 @@ class che_격노 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER,
SpecialityConst::STAT_STRENGTH,
SpecialityConst::STAT_INTEL
];
+1 -1
View File
@@ -19,7 +19,7 @@ class che_견고 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER
SpecialityConst::STAT_STRENGTH
];
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
+1 -1
View File
@@ -18,7 +18,7 @@ class che_공성 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_SIEGE,
SpecialityConst::STAT_POWER | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_SIEGE,
SpecialityConst::STAT_STRENGTH | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_SIEGE,
SpecialityConst::STAT_INTEL | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_SIEGE,
];
+1 -1
View File
@@ -17,7 +17,7 @@ class che_궁병 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_ARCHER,
SpecialityConst::STAT_POWER | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_ARCHER
SpecialityConst::STAT_STRENGTH | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_ARCHER
];
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
+1 -1
View File
@@ -17,7 +17,7 @@ class che_기병 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_CAVALRY,
SpecialityConst::STAT_POWER | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_CAVALRY
SpecialityConst::STAT_STRENGTH | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_CAVALRY
];
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
+1 -1
View File
@@ -18,7 +18,7 @@ class che_돌격 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER
SpecialityConst::STAT_STRENGTH
];
public function onCalcStat(General $general, string $statName, $value, $aux=null){
+1 -1
View File
@@ -16,7 +16,7 @@ class che_무쌍 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER
SpecialityConst::STAT_STRENGTH
];
public function onCalcStat(General $general, string $statName, $value, $aux=null){
+1 -1
View File
@@ -17,7 +17,7 @@ class che_보병 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_FOOTMAN,
SpecialityConst::STAT_POWER | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_FOOTMAN
SpecialityConst::STAT_STRENGTH | SpecialityConst::REQ_DEXTERITY | SpecialityConst::ARMY_FOOTMAN
];
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
+1 -1
View File
@@ -19,7 +19,7 @@ class che_위압 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER
SpecialityConst::STAT_STRENGTH
];
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
+1 -1
View File
@@ -22,7 +22,7 @@ class che_의술 implements iAction{
static $selectWeight = 2;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER,
SpecialityConst::STAT_STRENGTH,
SpecialityConst::STAT_INTEL
];
+1 -1
View File
@@ -19,7 +19,7 @@ class che_저격 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER,
SpecialityConst::STAT_STRENGTH,
SpecialityConst::STAT_INTEL
];
+1 -1
View File
@@ -16,7 +16,7 @@ class che_징병 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER,
SpecialityConst::STAT_STRENGTH,
SpecialityConst::STAT_INTEL
];
+1 -1
View File
@@ -16,7 +16,7 @@ class che_척사 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER,
SpecialityConst::STAT_STRENGTH,
SpecialityConst::STAT_INTEL
];
+1 -1
View File
@@ -16,7 +16,7 @@ class che_필살 implements iAction{
static $selectWeight = 1;
static $type = [
SpecialityConst::STAT_LEADERSHIP,
SpecialityConst::STAT_POWER,
SpecialityConst::STAT_STRENGTH,
SpecialityConst::STAT_INTEL
];
+4 -3
View File
@@ -6,7 +6,7 @@ use \sammo\General;
class BaseStatItem extends BaseItem{
protected $statNick = '통솔';
protected $statType = 'leader';
protected $statType = 'leadership';
protected $statValue = 1;
protected $cost = 1000;
protected $rawName = '노기';
@@ -14,14 +14,15 @@ class BaseStatItem extends BaseItem{
protected $buyable = true;
protected const ITEM_TYPE = [
'명마'=>['통솔', 'leader'],
'무기'=>['무력', 'power'],
'명마'=>['통솔', 'leadership'],
'무기'=>['무력', 'strength'],
'서적'=>['지력', 'intel']
];
public function __construct(){
$nameTokens = explode('_', static::class);
$this->statValue = (int)$nameTokens[-1];
assert(is_numeric($this->statValue));
$this->rawName = $nameTokens[-2];
[$this->statNick, $this->statType] = static::ITEM_TYPE[$nameTokens[-3]];
+1 -1
View File
@@ -127,7 +127,7 @@ class che_강행 extends Command\GeneralCommand{
[$reqGold, $reqRice] = $this->getCost();
$general->increaseVarWithLimit('gold', -$reqGold, 0);
$general->increaseVar('experience', $exp);
$general->increaseVar('leader2', 1);
$general->increaseVar('leadership2', 1);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange();
$general->applyDB($db);
+3 -3
View File
@@ -72,10 +72,10 @@ class che_견문 extends Command\GeneralCommand{
$exp += 60;
}
if($type & SightseeingMessage::IncLeadership){
$general->increaseVar('leader2', 2);
$general->increaseVar('leadership2', 2);
}
if($type & SightseeingMessage::IncPower){
$general->increaseVar('power2', 2);
if($type & SightseeingMessage::IncStrength){
$general->increaseVar('strength2', 2);
}
if($type & SightseeingMessage::IncIntel){
$general->increaseVar('intel2', 2);
@@ -161,8 +161,8 @@ class che_군량매매 extends Command\GeneralCommand{
$ded = $general->onCalcStat($general, 'dedication', $ded);
$incStat = Util::choiceRandomUsingWeight([
'leader2'=>$general->getLeadership(false, false, false, false),
'power2'=>$general->getPower(false, false, false, false),
'leadership2'=>$general->getLeadership(false, false, false, false),
'strength2'=>$general->getStrength(false, false, false, false),
'intel2'=>$general->getIntel(false, false, false, false)
]);
+1 -1
View File
@@ -91,7 +91,7 @@ class che_귀환 extends Command\GeneralCommand{
$general->increaseVar('experience', $exp);
$general->increaseVar('dedication', $ded);
$general->increaseVar('leader2', 1);
$general->increaseVar('leadership2', 1);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange();
$general->applyDB($db);
+2 -2
View File
@@ -101,8 +101,8 @@ class che_단련 extends Command\GeneralCommand{
$general->addDex($general->getCrewTypeObj(), $score, false);
$incStat = Util::choiceRandomUsingWeight([
'leader2'=>$general->getLeadership(false, false, false, false),
'power2'=>$general->getPower(false, false, false, false),
'leadership2'=>$general->getLeadership(false, false, false, false),
'strength2'=>$general->getStrength(false, false, false, false),
'intel2'=>$general->getIntel(false, false, false, false)
]);
[$reqGold, $reqRice] = $this->getCost();
@@ -73,7 +73,7 @@ class che_물자조달 extends Command\GeneralCommand{
['쌀', 'rice']
]);
$score = $general->getLeadership() + $general->getPower() + $general->getIntel();
$score = $general->getLeadership() + $general->getStrength() + $general->getIntel();
$score *= getDomesticExpLevelBonus($general->getVar('explevel'));
$score *= Util::randRange(0.8, 1.2);
@@ -107,8 +107,8 @@ class che_물자조달 extends Command\GeneralCommand{
$ded = $general->onCalcStat($general, 'dedication', $ded);
$incStat = Util::choiceRandomUsingWeight([
'leader2'=>$general->getLeadership(false, false, false, false),
'power2'=>$general->getPower(false, false, false, false),
'leadership2'=>$general->getLeadership(false, false, false, false),
'strength2'=>$general->getStrength(false, false, false, false),
'intel2'=>$general->getIntel(false, false, false, false)
]);
@@ -93,7 +93,7 @@ class che_사기진작 extends Command\GeneralCommand{
$general->increaseVar('experience', $exp);
$general->increaseVar('dedication', $ded);
$general->increaseVar('leader2', 1);
$general->increaseVar('leadership2', 1);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange();
tryUniqueItemLottery($general);
@@ -32,8 +32,8 @@ class che_상업투자 extends Command\GeneralCommand{
public function getCommandDetailTitle():string{
$name = $this->getName();
$statTypeBase = [
'leader'=>'통솔경험',
'power'=>'무력경험',
'leadership'=>'통솔경험',
'strength'=>'무력경험',
'intel'=>'지력경험',
];
$statType = $statTypeBase[static::$statKey];
@@ -100,10 +100,10 @@ class che_상업투자 extends Command\GeneralCommand{
if(static::$statKey == 'intel'){
$score = $general->getIntel(true, true, true, false);
}
else if(static::$statKey == 'power'){
$score = $general->getPower(true, true, true, false);
else if(static::$statKey == 'strength'){
$score = $general->getStrength(true, true, true, false);
}
else if(static::$statKey == 'leader'){
else if(static::$statKey == 'leadership'){
$score = $general->getLeadership(true, true, true, false);
}
else{
+1 -1
View File
@@ -12,7 +12,7 @@ use \sammo\{
class che_선동 extends che_화계{
static protected $actionName = '선동';
static protected $statType = 'leader';
static protected $statType = 'leadership';
static protected $injuryGeneral = true;
protected function affectDestCity(int $injuryCount){
@@ -3,7 +3,7 @@ namespace sammo\Command\General;
class che_성벽보수 extends che_상업투자{
static protected $cityKey = 'wall';
static protected $statKey = 'power';
static protected $statKey = 'strength';
static protected $actionKey = '성벽';
static protected $actionName = '성벽 보수';
static protected $debuffFront = 0.25;
@@ -3,7 +3,7 @@ namespace sammo\Command\General;
class che_수비강화 extends che_상업투자{
static protected $cityKey = 'def';
static protected $statKey = 'power';
static protected $statKey = 'strength';
static protected $actionKey = '수비';
static protected $actionName = '수비 강화';
static protected $debuffFront = 0.5;
+1 -1
View File
@@ -125,7 +125,7 @@ class che_이동 extends Command\GeneralCommand{
[$reqGold, $reqRice] = $this->getCost();
$general->increaseVarWithLimit('gold', -$reqGold, 0);
$general->increaseVar('experience', $exp);
$general->increaseVar('leader2', 1);
$general->increaseVar('leadership2', 1);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange();
$general->applyDB($db);
+23 -23
View File
@@ -98,8 +98,8 @@ class che_인재탐색 extends Command\GeneralCommand{
$logger->pushGeneralActionLog("인재를 찾을 수 없었습니다. <1>$date</>");
$incStat = Util::choiceRandomUsingWeight([
'leader2'=>$general->getLeadership(false, false, false, false),
'power2'=>$general->getPower(false, false, false, false),
'leadership2'=>$general->getLeadership(false, false, false, false),
'strength2'=>$general->getStrength(false, false, false, false),
'intel2'=>$general->getIntel(false, false, false, false)
]);
[$reqGold, $reqRice] = $this->getCost();
@@ -148,45 +148,45 @@ class che_인재탐색 extends Command\GeneralCommand{
}
$avgGen = $db->queryFirstRow(
'SELECT max(leader+power+intel) as lpi, avg(dedication) as ded,avg(experience) as exp,
'SELECT max(leadership+strength+intel) as stat_sum, avg(dedication) as ded,avg(experience) as exp,
avg(dex0) as dex0, avg(dex10) as dex10, avg(dex20) as dex20, avg(dex30) as dex30, avg(dex40) as dex40
from general where nation=%i',
$nationID
);
if($pickType == '무'){
$leader = $subStat;
$power = $mainStat;
$leadership = $subStat;
$strength = $mainStat;
$intel = $otherStat;
}
else if($pickType == '지'){
$leader = $subStat;
$power = $otherStat;
$leadership = $subStat;
$strength = $otherStat;
$intel = $mainStat;
}
else{
$leader = $otherStat;
$power = $subStat;
$leadership = $otherStat;
$strength = $subStat;
$intel = $mainStat;
}
// 국내 최고능치 기준으로 랜덤성 스케일링
$maxLPI = $avgGen['lpi'];
$maxLPI = $avgGen['stat_sum'];
if($maxLPI > 210) {
$leader *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9);
$power *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9);
$leadership *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9);
$strength *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9);
$intel *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.6, 0.9);
} elseif($maxLPI > 180) {
$leader *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95);
$power *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95);
$intel *= $avgGen['lpi'] / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95);
$leadership *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95);
$strength *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95);
$intel *= $avgGen['stat_sum'] / GameConst::$defaultStatTotal * Util::randRange(0.75, 0.95);
} else {
$leader *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1);
$power *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1);
$leadership *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1);
$strength *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1);
$intel *= $maxLPI / GameConst::$defaultStatTotal * Util::randRange(0.9, 1);
}
$leader = Util::round($leader);
$power = Util::round($power);
$leadership = Util::round($leadership);
$strength = Util::round($strength);
$intel = Util::round($intel);
$isOurNation = $this->nation['scout'] == 0;
@@ -199,8 +199,8 @@ class che_인재탐색 extends Command\GeneralCommand{
null,
$isOurNation?$nationID:0,
$general->getCityID(),
$leader,
$power,
$leadership,
$strength,
$intel,
$isOurNation?1:0,
$age,
@@ -245,8 +245,8 @@ class che_인재탐색 extends Command\GeneralCommand{
$logger->pushGeneralHistoryLog("<Y>$npcName</>{$josaRa}는 <C>인재</>를 {$scoutType}");
$incStat = Util::choiceRandomUsingWeight([
'leader2'=>$general->getLeadership(false, false, false, false),
'power2'=>$general->getPower(false, false, false, false),
'leadership2'=>$general->getLeadership(false, false, false, false),
'strength2'=>$general->getStrength(false, false, false, false),
'intel2'=>$general->getIntel(false, false, false, false)
]);
[$reqGold, $reqRice] = $this->getCost();
@@ -123,7 +123,7 @@ class che_전투태세 extends Command\GeneralCommand{
$general->addDex($general->getCrewTypeObj(), $crew / 100 * 3, false);
$general->increaseVar('leader2', 3);
$general->increaseVar('leadership2', 3);
$general->setResultTurn($turnResult);
$general->checkStatChange();
tryUniqueItemLottery($general);
@@ -24,7 +24,7 @@ use \sammo\Constraint\ConstraintHelper;
class che_정착장려 extends Command\GeneralCommand{
static protected $cityKey = 'pop';
static protected $statKey = 'leader';
static protected $statKey = 'leadership';
static protected $actionKey = '인구';
static protected $actionName = '정착 장려';
@@ -74,7 +74,7 @@ class che_정착장려 extends Command\GeneralCommand{
protected function calcBaseScore():float{
$general = $this->generalObj;
if(static::$statKey == 'leader'){
if(static::$statKey == 'leadership'){
$score = $general->getLeadership(true, true, true, false);
}
else{
@@ -24,7 +24,7 @@ use \sammo\Constraint\ConstraintHelper;
class che_주민선정 extends Command\GeneralCommand{
static protected $cityKey = 'trust';
static protected $statKey = 'leader';
static protected $statKey = 'leadership';
static protected $actionKey = '민심';
static protected $actionName = '주민 선정';
@@ -74,7 +74,7 @@ class che_주민선정 extends Command\GeneralCommand{
protected function calcBaseScore():float{
$general = $this->generalObj;
if(static::$statKey == 'leader'){
if(static::$statKey == 'leadership'){
$score = $general->getLeadership(true, true, true, false);
}
else{
+1 -1
View File
@@ -140,7 +140,7 @@ class che_증여 extends Command\GeneralCommand{
$general->increaseVar('experience', $exp);
$general->increaseVar('dedication', $ded);
$general->increaseVar('leader2', 1);
$general->increaseVar('leadership2', 1);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange();
+1 -1
View File
@@ -101,7 +101,7 @@ class che_집합 extends Command\GeneralCommand{
$general->increaseVar('experience', $exp);
$general->increaseVar('dedication', $ded);
$general->increaseVar('leader2', 1);
$general->increaseVar('leadership2', 1);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange();
tryUniqueItemLottery($general);
+1 -1
View File
@@ -190,7 +190,7 @@ class che_징병 extends Command\GeneralCommand{
$general->increaseVar('dedication', $ded);
$general->increaseVarWithLimit('gold', -$reqGold, 0);
$general->increaseVarWithLimit('rice', -$reqRice, 0);
$general->increaseVar('leader2', 1);
$general->increaseVar('leadership2', 1);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange();
tryUniqueItemLottery($general);
+1 -1
View File
@@ -175,7 +175,7 @@ class che_첩보 extends Command\GeneralCommand{
$general->increaseVarWithLimit('rice', -$reqRice, 0);
$general->increaseVar('experience', $exp);
$general->increaseVar('dedication', $ded);
$general->increaseVar('leader2', 1);
$general->increaseVar('leadership2', 1);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange();
$general->applyDB($db);
@@ -3,7 +3,7 @@ namespace sammo\Command\General;
class che_치안강화 extends che_상업투자{
static protected $cityKey = 'secu';
static protected $statKey = 'power';
static protected $statKey = 'strength';
static protected $actionKey = '치안';
static protected $actionName = '치안 강화';
static protected $debuffFront = 1;
+1 -1
View File
@@ -12,7 +12,7 @@ use \sammo\{
class che_탈취 extends che_화계{
static protected $actionName = '탈취';
static protected $statType = 'power';
static protected $statType = 'strength';
static protected $injuryGeneral = false;
protected function affectDestCity(int $injuryCount){
+1 -1
View File
@@ -12,7 +12,7 @@ use \sammo\{
class che_파괴 extends che_화계{
static protected $actionName = '파괴';
static protected $statType = 'power';
static protected $statType = 'strength';
static protected $injuryGeneral = true;
protected function affectDestCity(int $injuryCount){
+1 -1
View File
@@ -121,7 +121,7 @@ class che_헌납 extends Command\GeneralCommand{
$general->increaseVar('experience', $exp);
$general->increaseVar('dedication', $ded);
$general->increaseVar('leader2', 1);
$general->increaseVar('leadership2', 1);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange();
+7 -7
View File
@@ -49,11 +49,11 @@ class che_화계 extends Command\GeneralCommand{
$general = $this->generalObj;
$nation = $this->nation;
if($statType === 'leader'){
if($statType === 'leadership'){
$genScore = $general->getLeadership();
}
else if($statType === 'power'){
$genScore = $general->getPower();
else if($statType === 'strength'){
$genScore = $general->getStrength();
}
else if($statType === 'intel'){
$genScore = $general->getIntel();
@@ -80,11 +80,11 @@ class che_화계 extends Command\GeneralCommand{
continue;
}
if($statType === 'leader'){
if($statType === 'leadership'){
$genScore = $destGeneral->getLeadership();
}
else if($statType === 'power'){
$genScore = $destGeneral->getPower();
else if($statType === 'strength'){
$genScore = $destGeneral->getStrength();
}
else if($statType === 'intel'){
$genScore = $destGeneral->getIntel();
@@ -218,7 +218,7 @@ class che_화계 extends Command\GeneralCommand{
[$year, $month] = [$env['year'], $env['month']];
foreach($db->query(
'SELECT `no`,name,city,nation,level,leader,horse,power,weap,intel,book,item,last_turn,injury,special,special2 FROM general WHERE city = %i',
'SELECT `no`,name,city,nation,level,leadership,horse,strength,weap,intel,book,item,last_turn,injury,special,special2 FROM general WHERE city = %i',
$destCityID,
$destNationID
) as $rawDestCityGeneral){
+1 -1
View File
@@ -89,7 +89,7 @@ class che_훈련 extends Command\GeneralCommand{
$general->increaseVar('experience', $exp);
$general->increaseVar('dedication', $ded);
$general->increaseVar('leader2', 1);
$general->increaseVar('leadership2', 1);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange();
tryUniqueItemLottery($general);
@@ -20,7 +20,7 @@ class ReqGeneralCrewMargin extends Constraint{
throw new \InvalidArgumentException("{$this->arg} is invalid crewtype");
}
foreach(['leader','power','intel','crew','crewtype','nation','level'] as $key){
foreach(['leadership','strength','intel','crew','crewtype','nation','level'] as $key){
if(!key_exists($key, $this->general)){
if(!$throwExeception){return false; }
throw new \InvalidArgumentException("require {$key} in general");
+1 -1
View File
@@ -96,7 +96,7 @@ class RaiseInvader extends \sammo\Event\Action{
$specAvg = $this->specAvg;
if($specAvg < 0){
$specAvg = $db->queryFirstField('SELECT avg(sum(`leader` + `power` + `intel`)) from general where npc < 9');
$specAvg = $db->queryFirstField('SELECT avg(sum(`leadership` + `strength` + `intel`)) from general where npc < 9');
$specAvg /= -1 * $this->specAvg;
}
+2 -2
View File
@@ -13,7 +13,7 @@ class RegNPC extends \sammo\Event\Action{
int $nationID,
$locatedCity,
int $leadership,
int $power,
int $strength,
int $intel,
int $birth = 160,
int $death = 300,
@@ -28,7 +28,7 @@ class RegNPC extends \sammo\Event\Action{
$nationID,
$locatedCity,
$leadership,
$power,
$strength,
$intel,
$birth,
$death,
+2 -2
View File
@@ -12,7 +12,7 @@ class RegNeutralNPC extends \sammo\Event\Action{
int $nationID,
$locatedCity,
int $leadership,
int $power,
int $strength,
int $intel,
int $birth = 160,
int $death = 300,
@@ -27,7 +27,7 @@ class RegNeutralNPC extends \sammo\Event\Action{
$nationID,
$locatedCity,
$leadership,
$power,
$strength,
$intel,
$birth,
$death,
+4 -4
View File
@@ -101,11 +101,11 @@ class GameUnitDetail implements iAction{
else if($this->armType == GameUnitConst::T_MISC){
$ratio = $general->getIntel(true, true, true) +
$general->getLeadership(true, true, true) +
$general->getPower(true, true, true);
$general->getStrength(true, true, true);
$ratio = $ratio*2/3 - 40;
}
else{
$ratio = $general->getPower(true, true, true)*2 - 40;
$ratio = $general->getStrength(true, true, true)*2 - 40;
}
if($ratio < 10){
$ratio = 10;
@@ -144,12 +144,12 @@ class GameUnitDetail implements iAction{
else if($this->armType == GameUnitConst::T_MISC){
$mainstat = $general->getIntel(false, true, true, false) +
$general->getLeadership(false, true, true, false) +
$general->getPower(false, true, true, false);
$general->getStrength(false, true, true, false);
$mainstat /= 3;
$coef = 0.4;
}
else{
$mainstat = $general->getPower(false, true, true, false);
$mainstat = $general->getStrength(false, true, true, false);
$coef = 0.5;
}
+11 -11
View File
@@ -200,7 +200,7 @@ class General implements iAction{
/**
* 장수의 스탯을 계산해옴
*
* @param string $statName 스탯값, leadership, power, intel 가능
* @param string $statName 스탯값, leadership, strength, intel 가능
* @param bool $withInjury 부상값 사용 여부
* @param bool $withItem 아이템 적용 여부
* @param bool $withStatAdjust 추가 능력치 보정 사용 여부
@@ -217,11 +217,11 @@ class General implements iAction{
}
if($withStatAdjust){
if($statName === 'power'){
if($statName === 'strength'){
$statValue *= Util::round($this->getStatValue('intel', $withInjury, $withItem, false, false) / 4);
}
else if($statName === 'intel'){
$statValue *= Util::round($this->getStatValue('power', $withInjury, $withItem, false, false) / 4);
$statValue *= Util::round($this->getStatValue('strength', $withInjury, $withItem, false, false) / 4);
}
}
@@ -252,11 +252,11 @@ class General implements iAction{
}
function getLeadership($withInjury = true, $withItem = true, $withStatAdjust = true, $useFloor = true):float{
return $this->getStatValue('leader', $withInjury, $withItem, $withStatAdjust, $useFloor);
return $this->getStatValue('leadership', $withInjury, $withItem, $withStatAdjust, $useFloor);
}
function getPower($withInjury = true, $withItem = true, $withStatAdjust = true, $useFloor = true):float{
return $this->getStatValue('power', $withInjury, $withItem, $withStatAdjust, $useFloor);
function getStrength($withInjury = true, $withItem = true, $withStatAdjust = true, $useFloor = true):float{
return $this->getStatValue('strength', $withInjury, $withItem, $withStatAdjust, $useFloor);
}
function getIntel($withInjury = true, $withItem = true, $withStatAdjust = true, $useFloor = true):float{
@@ -349,8 +349,8 @@ class General implements iAction{
$generalName = $this->getName();
$this->multiplyVarWithLimit('leader', 0.85, 10);
$this->multiplyVarWithLimit('power', 0.85, 10);
$this->multiplyVarWithLimit('leadership', 0.85, 10);
$this->multiplyVarWithLimit('strength', 0.85, 10);
$this->multiplyVarWithLimit('intel', 0.85, 10);
$this->setVar('injury', 0);
$this->multiplyVar('experience', 0.5);
@@ -398,8 +398,8 @@ class General implements iAction{
$limit = GameConst::$upgradeLimit;
$table = [
['통솔', 'leader'],
['무력', 'power'],
['통솔', 'leadership'],
['무력', 'strength'],
['지력', 'intel'],
];
@@ -616,7 +616,7 @@ class General implements iAction{
];
$fullColumn = [
'no', 'name', 'name2', 'picture', 'imgsvr', 'nation', 'nations', 'city', 'troop', 'injury', 'affinity',
'leader', 'leader2', 'power', 'power2', 'intel', 'intel2', 'weap', 'book', 'horse', 'item',
'leadership', 'leadership2', 'strength', 'strength2', 'intel', 'intel2', 'weap', 'book', 'horse', 'item',
'experience', 'dedication', 'level', 'gold', 'rice', 'crew', 'crewtype', 'train', 'atmos', 'turntime',
'makelimit', 'killturn', 'block', 'dedlevel', 'explevel', 'age', 'startage', 'belong',
'personal', 'special', 'special2', 'mode', 'npc', 'npc_org', 'deadyear', 'npcmsg',
+31 -31
View File
@@ -14,7 +14,7 @@ class GeneralAI{
protected $baseDevelCost;
protected $leadership;
protected $power;
protected $strength;
protected $intel;
protected $dipState;
@@ -67,7 +67,7 @@ class GeneralAI{
];
$this->leadership = $general->getLeadership(true, true, true, true);
$this->power = $general->getPower(true, true, true, true);
$this->strength = $general->getStrength(true, true, true, true);
$this->intel = $general->getIntel(true, true, true, true);
$this->calcGenType();
@@ -82,14 +82,14 @@ class GeneralAI{
protected function calcGenType(){
$leadership = $this->leadership;
$power = $this->power;
$intel = $this->intel;
$strength = Util::valueFit($this->strength, 1);
$intel = Util::valueFit($this->intel, 1);
//무장
if ($power >= $intel) {
if ($strength >= $intel) {
$genType = self::t무장;
if ($intel >= $power * 0.8) { //무지장
if(Util::randBool($intel / $power / 2)){
if ($intel >= $strength * 0.8) { //무지장
if(Util::randBool($intel / $strength / 2)){
$genType |= self::t지장;
}
@@ -97,8 +97,8 @@ class GeneralAI{
//지장
} else {
$genType = self::t지장;
if ($power >= $intel * 0.8 && Util::randBool(0.2)) { //지무장
if(Util::randBool($power / $intel / 2)){
if ($strength >= $intel * 0.8 && Util::randBool(0.2)) { //지무장
if(Util::randBool($strength / $intel / 2)){
$genType |= self::t무장;
}
}
@@ -172,7 +172,7 @@ class GeneralAI{
$genType = $this->genType;
$leadership = $this->leadership;
$power = $this->power;
$strength = $this->strength;
$intel = $this->intel;
$cityFull = false;
@@ -198,7 +198,7 @@ class GeneralAI{
if($develRate['secu'] < 0.99){
$commandObj = buildGeneralCommandClass('che_치안강화', $general, $env);
if($commandObj->isRunnable()){
$commandList['che_치안강화'] = $power / 3;
$commandList['che_치안강화'] = $strength / 3;
if(in_array($city['front'], [1,3])){
$commandList['che_치안강화'] /= 2;
}
@@ -207,13 +207,13 @@ class GeneralAI{
if($develRate['def'] < 0.99){
$commandObj = buildGeneralCommandClass('che_수비강화', $general, $env);
if($commandObj->isRunnable()){
$commandList['che_수비강화'] = $power / 3;
$commandList['che_수비강화'] = $strength / 3;
}
}
if($develRate['wall'] < 0.99){
$commandObj = buildGeneralCommandClass('che_성벽보수', $general, $env);
if($commandObj->isRunnable()){
$commandList['che_성벽보수'] = $power / 3;
$commandList['che_성벽보수'] = $strength / 3;
if(in_array($city['front'], [1,3])){
$commandList['che_성벽보수'] /= 2;
}
@@ -292,7 +292,7 @@ class GeneralAI{
$genType = $this->genType;
$leadership = $this->leadership;
$power = $this->power;
$strength = $this->strength;
$intel = $this->intel;
$tech = $nation['tech'];
@@ -557,7 +557,7 @@ class GeneralAI{
$npcCivilGenerals = [];
$npcWarGenerals = [];
foreach($db->query('SELECT `no`, nation, city, npc, `gold`, `rice`, leader, `power`, intel, killturn, crew, train, atmos, `level`, troop FROM general WHERE nation = %i', $nationID) as $rawNationGeneral) {
foreach($db->query('SELECT `no`, nation, city, npc, `gold`, `rice`, leadership, `strength`, intel, killturn, crew, train, atmos, `level`, troop FROM general WHERE nation = %i', $nationID) as $rawNationGeneral) {
$nationGeneral = (object)$rawNationGeneral;
$cityID = $nationGeneral->city;
@@ -580,7 +580,7 @@ class GeneralAI{
if($nationGeneral->npc<2 && $nationGeneral->killturn >= 5){
$userGenerals[] = $nationGeneral;
}
else if($nationGeneral->leader>=40 && $nationGeneral->killturn >= 5){
else if($nationGeneral->leadership>=40 && $nationGeneral->killturn >= 5){
$npcWarGenerals[] = $nationGeneral;
}
else{
@@ -656,7 +656,7 @@ class GeneralAI{
$isWarUser = null;
foreach($userGenerals as $compUser){
if($compUser['leader'] >= 50){
if($compUser['leadership'] >= 50){
$isWarUser = true;
break;
}
@@ -711,9 +711,9 @@ class GeneralAI{
$compNpcWar = Util::array_last($npcWarGenerals);
$compNpcCivil = Util::array_last($npcCivilGenerals);
$compUserRes = $compUser->$resName??0;
$compNpcWarRes = $compNpcWar->$resName*5??0;
$compNpcCivilRes = $compNpcCivil->$resName*10??0;
$compUserRes = $compUser?$compUser->$resName:0;
$compNpcWarRes = $compNpcWar?$compNpcWar->$resName*5:0;
$compNpcCivilRes = $compNpcCivil?$compNpcCivil->$resName*10:0;
[$compRes, $targetGeneral] = max(
[$compNpcCivilRes, $compNpcCivil],
@@ -945,7 +945,7 @@ class GeneralAI{
if(!$generalCity['front']){
continue;
}
if($generalCity['pop'] - 33000 > $nationGeneral->leader){
if($generalCity['pop'] - 33000 > $nationGeneral->leadership){
continue;
}
if($nationGeneral->troop != 0){
@@ -960,7 +960,7 @@ class GeneralAI{
$popTrial = 5;
for($popTrial = 0; $popTrial < 5; $popTrial++){
$targetCity = $nationCities[Util::choiceRandom($backupCitiesID)];
if($targetCity['pop'] < 33000 + $nationGeneral->leader){
if($targetCity['pop'] < 33000 + $nationGeneral->leadership){
continue;
}
if (Util::randBool($targetCity['pop'] / $targetCity['pop2'])) {
@@ -1054,7 +1054,7 @@ class GeneralAI{
case '거병_견문': //거병이나 견문
// 초반이면서 능력이 좋은놈 위주로 1.4%확률로 거병
$prop = Util::randF() * (GameConst::$defaultStatNPCMax + GameConst::$chiefStatMin) / 2;
$ratio = ($general->getVar('leader') + $general->getVar('power') + $general->getVar('intel')) / 3;
$ratio = ($general->getVar('leadership') + $general->getVar('strength') + $general->getVar('intel')) / 3;
if($env['startyear']+2 > $env['year'] && $prop < $ratio && Util::randBool(0.014) && $general->getVar('makelimit') == 0) {
//거병
$command = 'che_거병';
@@ -1133,7 +1133,7 @@ class GeneralAI{
$genType = $this->genType;
$leadership = $this->leadership;
$power = $this->power;
$strength = $this->strength;
$intel = $this->intel;
$startYear = $env['startyear'];
@@ -1384,7 +1384,7 @@ class GeneralAI{
return null;
}
$sumLeadershipInCity = $db->queryFirstField('SELECT sum(leader) FROM general WHERE nation = %i AND city = %i AND leader > 40', $nationID, $cityID);
$sumLeadershipInCity = $db->queryFirstField('SELECT sum(leadership) FROM general WHERE nation = %i AND city = %i AND leadership > 40', $nationID, $cityID);
if(
$city['pop'] > 30000 + $general->getLeadership(false) * 100 * 1.3 &&
Util::randBool(($city['pop'] - 30000) / $sumLeadershipInCity * 100)
@@ -1723,7 +1723,7 @@ class GeneralAI{
if(!$userChief){
$candUserChief = $db->queryFirstField(
'SELECT no FROM general WHERE nation = %i AND level = 1 AND killturn > %i AND npc < 2 AND belong >= %i ORDER BY leader DESC LIMIT 1',
'SELECT no FROM general WHERE nation = %i AND level = 1 AND killturn > %i AND npc < 2 AND belong >= %i ORDER BY leadership DESC LIMIT 1',
$nationID,
$minKillturn,
$maxBelong
@@ -1738,7 +1738,7 @@ class GeneralAI{
if(!key_exists(11, $chiefCandidate)){
$candChiefHead = $db->queryFirstField(
'SELECT no FROM general WHERE nation = %i AND level = 1 AND npc >= 2 AND belong >= %i ORDER BY leader DESC LIMIT 1',
'SELECT no FROM general WHERE nation = %i AND level = 1 AND npc >= 2 AND belong >= %i ORDER BY leadership DESC LIMIT 1',
$nationID,
$maxBelong
);
@@ -1750,8 +1750,8 @@ class GeneralAI{
if($minChiefLevel < 11){
//무장 수뇌 후보
$candChiefPower = $db->queryFirstColumn(
'SELECT no FROM general WHERE nation = %i AND power >= %i AND level = 1 AND belong >= %i ORDER BY power DESC LIMIT %i',
$candChiefStrength = $db->queryFirstColumn(
'SELECT no FROM general WHERE nation = %i AND strength >= %i AND level = 1 AND belong >= %i ORDER BY strength DESC LIMIT %i',
$nationID,
GameConst::$chiefStatMin,
$maxBelong, 12 - $minChiefLevel
@@ -1766,7 +1766,7 @@ class GeneralAI{
);
//무력, 지력이 모두 높은 장수를 고려하여..
$iterCandChiefPower = new \ArrayIterator($candChiefPower);
$iterCandChiefStrength = new \ArrayIterator($candChiefStrength);
$iterCandChiefIntel = new \ArrayIterator($candChiefIntel);
foreach(range(10, $minChiefLevel, -1) as $cheifLevel){
@@ -1775,7 +1775,7 @@ class GeneralAI{
}
/** @var \ArrayIterator $iterCurrentType */
$iterCurrentType = ($cheifLevel % 2 == 0)?$iterCandChiefPower:$iterCandChiefIntel;
$iterCurrentType = ($cheifLevel % 2 == 0)?$iterCandChiefStrength:$iterCandChiefIntel;
$candidate = $iterCurrentType->current();
while(key_exists($candidate, $promoted)){
+6 -6
View File
@@ -76,7 +76,7 @@ class Scenario{
list(
$affinity, $name, $picturePath, $nationName, $locatedCity,
$leadership, $power, $intel, $level, $birth, $death, $ego,
$leadership, $strength, $intel, $level, $birth, $death, $ego,
$char, $text
) = $rawGeneral;
@@ -99,7 +99,7 @@ class Scenario{
$nationID,
$locatedCity,
$leadership,
$power,
$strength,
$intel,
$level,
$birth,
@@ -117,7 +117,7 @@ class Scenario{
list(
$affinity, $name, $picturePath, $nationName, $locatedCity,
$leadership, $power, $intel, $level, $birth, $death, $ego,
$leadership, $strength, $intel, $level, $birth, $death, $ego,
$char, $text
) = $rawGeneral;
@@ -140,7 +140,7 @@ class Scenario{
$nationID,
$locatedCity,
$leadership,
$power,
$strength,
$intel,
$level,
$birth,
@@ -159,7 +159,7 @@ class Scenario{
list(
$affinity, $name, $picturePath, $nationName, $locatedCity,
$leadership, $power, $intel, $level, $birth, $death, $ego,
$leadership, $strength, $intel, $level, $birth, $death, $ego,
$char, $text
) = $rawGeneral;
@@ -182,7 +182,7 @@ class Scenario{
$nationID,
$locatedCity,
$leadership,
$power,
$strength,
$intel,
$level,
$birth,
+7 -7
View File
@@ -20,7 +20,7 @@ class NPC{
public $nationID;
public $locatedCity;
public $leadership;
public $power;
public $strength;
public $intel;
public $level;
public $birth;
@@ -63,7 +63,7 @@ class NPC{
int $nationID,
$locatedCity,
int $leadership,
int $power,
int $strength,
int $intel,
int $level = 0,
int $birth = 160,
@@ -78,7 +78,7 @@ class NPC{
$this->nationID = $nationID;
$this->locatedCity = $locatedCity;
$this->leadership = $leadership;
$this->power = $power;
$this->strength = $strength;
$this->intel = $intel;
$this->level = $level;
$this->birth = $birth;
@@ -90,8 +90,8 @@ class NPC{
$this->rice = GameConst::$defaultRice;
$general = [
'leader'=>$leadership,
'power'=>$power,
'leadership'=>$leadership,
'strength'=>$strength,
'intel'=>$intel
];
@@ -307,8 +307,8 @@ class NPC{
'picture'=>$picturePath,
'nation'=>$nationID,
'city'=>$city,
'leader'=>$this->leadership,
'power'=>$this->power,
'leadership'=>$this->leadership,
'strength'=>$this->strength,
'intel'=>$this->intel,
'experience'=>$experience,
'dedication'=>$dedication,
+1 -1
View File
@@ -145,7 +145,7 @@ class Nation{
//군주가 없는지 확인
$hasRuler = $db->queryFirstField('SELECT count(*) FROM general WHERE nation=%i AND level=12', $this->id);
if(!$hasRuler){
$newRuler = $db->queryFirstField('SELECT `no` FROM general WHERE nation=%i ORDER BY leader+power+intel DESC LIMIT 1', $this->id);
$newRuler = $db->queryFirstField('SELECT `no` FROM general WHERE nation=%i ORDER BY leadership+strength+intel DESC LIMIT 1', $this->id);
$db->update('general',['level'=>12], 'no=%i', $newRuler);
}
+24 -24
View File
@@ -7,7 +7,7 @@ class SpecialityConst{
const DISABLED = 0x1;
const STAT_LEADERSHIP = 0x2;
const STAT_POWER = 0x4;
const STAT_STRENGTH = 0x4;
const STAT_INTEL = 0x8;
const ARMY_FOOTMAN = 0x100;
@@ -33,13 +33,13 @@ class SpecialityConst{
'che_상재' => ['상재', 1, [self::STAT_INTEL]],
'che_발명' => ['발명', 1, [self::STAT_INTEL]],
'che_축성' => ['축성', 1, [self::STAT_POWER]],
'che_수비' => ['수비', 1, [self::STAT_POWER]],
'che_통찰' => ['통찰', 1, [self::STAT_POWER]],
'che_축성' => ['축성', 1, [self::STAT_STRENGTH]],
'che_수비' => ['수비', 1, [self::STAT_STRENGTH]],
'che_통찰' => ['통찰', 1, [self::STAT_STRENGTH]],
'che_인덕' => ['인덕', 1, [self::STAT_LEADERSHIP]],
'che_귀모' => ['귀모', -2.5, [self::STAT_LEADERSHIP, self::STAT_POWER, self::STAT_INTEL]],
'che_귀모' => ['귀모', -2.5, [self::STAT_LEADERSHIP, self::STAT_STRENGTH, self::STAT_INTEL]],
];
const WAR = [
@@ -53,33 +53,33 @@ class SpecialityConst{
'che_보병' => ['보병', 1, [
self::STAT_LEADERSHIP | self::REQ_DEXTERITY | self::ARMY_FOOTMAN,
self::STAT_POWER | self::REQ_DEXTERITY | self::ARMY_FOOTMAN
self::STAT_STRENGTH | self::REQ_DEXTERITY | self::ARMY_FOOTMAN
]],
'che_궁병' => ['궁병', 1, [
self::STAT_LEADERSHIP | self::REQ_DEXTERITY | self::ARMY_ARCHER,
self::STAT_POWER | self::REQ_DEXTERITY | self::ARMY_ARCHER
self::STAT_STRENGTH | self::REQ_DEXTERITY | self::ARMY_ARCHER
]],
'che_기병' => ['기병', 1, [
self::STAT_LEADERSHIP | self::REQ_DEXTERITY | self::ARMY_CAVALRY,
self::STAT_POWER | self::REQ_DEXTERITY | self::ARMY_CAVALRY
self::STAT_STRENGTH | self::REQ_DEXTERITY | self::ARMY_CAVALRY
]],
'che_공성' => ['공성', 1, [
self::STAT_LEADERSHIP | self::REQ_DEXTERITY | self::ARMY_SIEGE,
self::STAT_POWER | self::REQ_DEXTERITY | self::ARMY_SIEGE,
self::STAT_STRENGTH | self::REQ_DEXTERITY | self::ARMY_SIEGE,
self::STAT_INTEL | self::REQ_DEXTERITY | self::ARMY_SIEGE
]],
'che_돌격' => ['돌격', 1, [self::STAT_LEADERSHIP, self::STAT_POWER]],
'che_무쌍' => ['무쌍', 1, [self::STAT_LEADERSHIP, self::STAT_POWER]],
'che_견고' => ['견고', 1, [self::STAT_LEADERSHIP, self::STAT_POWER]],
'che_위압' => ['위압', 1, [self::STAT_LEADERSHIP, self::STAT_POWER]],
'che_돌격' => ['돌격', 1, [self::STAT_LEADERSHIP, self::STAT_STRENGTH]],
'che_무쌍' => ['무쌍', 1, [self::STAT_LEADERSHIP, self::STAT_STRENGTH]],
'che_견고' => ['견고', 1, [self::STAT_LEADERSHIP, self::STAT_STRENGTH]],
'che_위압' => ['위압', 1, [self::STAT_LEADERSHIP, self::STAT_STRENGTH]],
'che_저격' => ['저격', 1, [self::STAT_LEADERSHIP, self::STAT_POWER, self::STAT_INTEL]],
'che_필살' => ['필살', 1, [self::STAT_LEADERSHIP, self::STAT_POWER, self::STAT_INTEL]],
'che_징병' => ['징병', 1, [self::STAT_LEADERSHIP, self::STAT_POWER, self::STAT_INTEL]],
'che_의술' => ['의술', -2, [self::STAT_LEADERSHIP, self::STAT_POWER, self::STAT_INTEL]],
'che_격노' => ['격노', 1, [self::STAT_LEADERSHIP, self::STAT_POWER, self::STAT_INTEL]],
'che_척사' => ['척사', 1, [self::STAT_LEADERSHIP, self::STAT_POWER, self::STAT_INTEL]],
'che_저격' => ['저격', 1, [self::STAT_LEADERSHIP, self::STAT_STRENGTH, self::STAT_INTEL]],
'che_필살' => ['필살', 1, [self::STAT_LEADERSHIP, self::STAT_STRENGTH, self::STAT_INTEL]],
'che_징병' => ['징병', 1, [self::STAT_LEADERSHIP, self::STAT_STRENGTH, self::STAT_INTEL]],
'che_의술' => ['의술', -2, [self::STAT_LEADERSHIP, self::STAT_STRENGTH, self::STAT_INTEL]],
'che_격노' => ['격노', 1, [self::STAT_LEADERSHIP, self::STAT_STRENGTH, self::STAT_INTEL]],
'che_척사' => ['척사', 1, [self::STAT_LEADERSHIP, self::STAT_STRENGTH, self::STAT_INTEL]],
];
public static function getInvDomestic(string $name){
@@ -117,15 +117,15 @@ class SpecialityConst{
private static function calcCondGeneric(array $general) : int {
$myCond = 0;
$leader = $general['leader']??50;
$power = $general['power']??50;
$leadership = $general['leadership']??50;
$strength = $general['strength']??50;
$intel = $general['intel']??50;
if ($leader * 0.95 > $power && $leader * 0.95 > $intel) {
if ($leadership * 0.95 > $strength && $leadership * 0.95 > $intel) {
$myCond |= self::STAT_LEADERSHIP;
}
else if($power >= $intel){
$myCond |= self::STAT_POWER;
else if($strength >= $intel){
$myCond |= self::STAT_STRENGTH;
}
else {
$myCond |= self::STAT_INTEL;
@@ -7,7 +7,7 @@ class SightseeingMessage{
const IncExp = 0x1;
const IncHeavyExp = 0x2;
const IncLeadership = 0x10;
const IncPower = 0x20;
const IncStrength = 0x20;
const IncIntel = 0x40;
const IncGold = 0x100;
const IncRice = 0x200;
@@ -39,7 +39,7 @@ class SightseeingMessage{
'백성들에게 현인의 가르침을 설파했습니다.',
'어느 집의 도망친 가축을 되찾아 주었습니다.',
]], 2],
[[self::IncHeavyExp|self::IncPower,[
[[self::IncHeavyExp|self::IncStrength,[
'동네 장사와 힘겨루기를 하여 멋지게 이겼습니다.',
'어느 집의 무너진 울타리를 고쳐주었습니다.',
]], 2],
@@ -74,10 +74,10 @@ class SightseeingMessage{
[[self::IncHeavyExp|self::Wounded|self::HeavyWounded,[
'위기에 빠진 사람을 구하다가 죽을뻔 했습니다.',
]], 1],
[[self::IncHeavyExp|self::IncPower|self::IncGold,[
[[self::IncHeavyExp|self::IncStrength|self::IncGold,[
'산적과 싸워 금 <C>:goldAmount:</>을 빼앗았습니다.',
]], 1],
[[self::IncHeavyExp|self::IncPower|self::IncRice,[
[[self::IncHeavyExp|self::IncStrength|self::IncRice,[
'호랑이를 잡아 고기 <C>:riceAmount:</>을 얻었습니다.',
'곰을 잡아 고기 <C>:riceAmount:</>을 얻었습니다.',
]], 1],
+2 -2
View File
@@ -124,9 +124,9 @@ class WarUnitGeneral extends WarUnit{
if($this->crewType->armType == GameUnitConst::T_WIZARD) { // 귀병
$general->increaseVar('intel2', $value);
} elseif($this->crewType->armType == GameUnitConst::T_SIEGE) { // 차병
$general->increaseVar('leader2', $value);
$general->increaseVar('leadership2', $value);
} else {
$general->increaseVar('power2', $value);
$general->increaseVar('strength2', $value);
}
}
+6 -6
View File
@@ -28,8 +28,8 @@ $general_schema = "
nations char(64) default ',0,',
city int(6) default 0,
troop int(6) default 0,
leader int(3) default 0, leader2 int(3) default 0,
power int(3) default 0, power2 int(3) default 0,
leadership int(3) default 0, leadership2 int(3) default 0,
power int(3) default 0, strength2 int(3) default 0,
intel int(3) default 0, intel2 int(3) default 0,
injury int(2) default 0,
experience int(6) default 0, dedication int(6) default 0,
@@ -307,7 +307,7 @@ $token_schema = "
create table token (
token int(6) not null auto_increment,
id char(16) not null,
leader int(3) not null,
leadership int(3) not null,
power int(3) not null,
intel int(3) not null,
@@ -528,9 +528,9 @@ $tournament_schema = "
w int(2) default 0,
b int(2) default 0,
h int(2) default 0,
ldr int(3) default 0,
pwr int(3) default 0,
itl int(3) default 0,
leadership int(3) default 0,
strength int(3) default 0,
intel int(3) default 0,
lvl int(3) default 0,
grp int(2) default 0,
grp_no int(2) default 0,
+12 -12
View File
@@ -25,10 +25,10 @@ CREATE TABLE `general` (
`nations` VARCHAR(64) NOT NULL DEFAULT '[0]',
`city` INT(6) NOT NULL DEFAULT '3',
`troop` INT(6) NOT NULL DEFAULT '0',
`leader` INT(3) NOT NULL DEFAULT '50',
`leader2` INT(3) NOT NULL DEFAULT '0',
`power` INT(3) NOT NULL DEFAULT '50',
`power2` INT(3) NOT NULL DEFAULT '0',
`leadership` INT(3) NOT NULL DEFAULT '50',
`leadership2` INT(3) NOT NULL DEFAULT '0',
`strength` INT(3) NOT NULL DEFAULT '50',
`strength2` INT(3) NOT NULL DEFAULT '0',
`intel` INT(3) NOT NULL DEFAULT '50',
`intel2` INT(3) NOT NULL DEFAULT '0',
`injury` INT(2) NOT NULL DEFAULT '0',
@@ -93,11 +93,11 @@ CREATE TABLE `general` (
`tll` INT(4) NULL DEFAULT '0',
`tlg` INT(4) NULL DEFAULT '0',
`tlp` INT(4) NULL DEFAULT '0',
`tpw` INT(4) NULL DEFAULT '0',
`tpd` INT(4) NULL DEFAULT '0',
`tpl` INT(4) NULL DEFAULT '0',
`tpg` INT(4) NULL DEFAULT '0',
`tpp` INT(4) NULL DEFAULT '0',
`tsw` INT(4) NULL DEFAULT '0',
`tsd` INT(4) NULL DEFAULT '0',
`tsl` INT(4) NULL DEFAULT '0',
`tsg` INT(4) NULL DEFAULT '0',
`tsp` INT(4) NULL DEFAULT '0',
`tiw` INT(4) NULL DEFAULT '0',
`tid` INT(4) NULL DEFAULT '0',
`til` INT(4) NULL DEFAULT '0',
@@ -486,9 +486,9 @@ create table tournament (
w varchar(20) default 'None',
b varchar(20) default 'None',
h varchar(20) default 'None',
ldr int(3) default 0,
pwr int(3) default 0,
itl int(3) default 0,
leadership int(3) default 0,
strength int(3) default 0,
intel int(3) default 0,
lvl int(3) default 0,
grp int(2) default 0,
grp_no int(2) default 0,
+2 -2
View File
@@ -4,7 +4,7 @@
data-general-wounded="<?=$wounded?>"
data-general-name="<?=$this->e($name)?>"
data-general-leadership="<?=$leadership?>"
data-general-power="<?=$power?>"
data-general-strength="<?=$strength?>"
data-general-intel="<?=$intel?>"
data-general-level="<?=$level?>"
data-general-leadership-bonus="<?=$leadershipBonus?>"
@@ -23,7 +23,7 @@
<td height="64"><img class='generalIcon' width='64' height='64' src='<?=$iconPath?>'></td>
<td><?=$nameText?></td>
<td><?=$leadershipText?><?=$leadershipBonusText?></td>
<td><?=$powerText?></td>
<td><?=$strengthText?></td>
<td><?=$intelText?></td>
<td class="general_level"><?=$levelText?></td>
<?php if($ourGeneral): ?>
+3 -3
View File
@@ -24,8 +24,8 @@
data-is-npc="<?=$general['npc']>=2?'true':'false'?>"
data-general-wounded="<?=$general['injury']?>"
data-general-name="<?=$general['name']?>"
data-general-leadership="<?=$general['leader']?>"
data-general-power="<?=$general['power']?>"
data-general-leadership="<?=$general['leadership']?>"
data-general-strength="<?=$general['strength']?>"
data-general-intel="<?=$general['intel']?>"
data-general-level="<?=$general['expLevelText']?>"
data-general-leadership-bonus="<?=$general['lbonus']?>"
@@ -37,7 +37,7 @@
>
<td class='i_name center'><span class='t_name'><?=$general['nameText']?></span><br
>Lv <span class='t_explevel'><?=$general['expLevelText']?></span></td>
<td class='i_stat center'><?=$general['leaderText']?>∥<?=$general['powerText']?>∥<?=$general['intelText']?></td>
<td class='i_stat center'><?=$general['leadershipText']?>∥<?=$general['strengthText']?>∥<?=$general['intelText']?></td>
<td class='i_troop center'><?=$general['troopText']?></td>
<td class='i_gold center'><?=$general['gold']?></td>
<td class='i_rice center'><?=$general['rice']?></td>

Some files were not shown because too many files have changed in this diff Show More