병종 코드, 숙련 코드 재설정
병종 상성 지정시 병종 단위가 아니라 병종 코드 자체로 지정 가능
This commit is contained in:
@@ -111,7 +111,7 @@ switch($btn) {
|
||||
[$year, $month] = $gameStor->getValuesAsArray(['year', 'month']);
|
||||
$text = "특기 부여!";
|
||||
|
||||
foreach($db->query("SELECT `no`,leadership,strength,intel,dex0,dex10,dex20,dex30,dex40 FROM general WHERE `no` IN %li", $genlist) as $general){
|
||||
foreach($db->query("SELECT `no`,leadership,strength,intel,dex1,dex2,dex3,dex4,dex5 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);
|
||||
|
||||
@@ -156,7 +156,7 @@ switch($btn) {
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dex0'=>$db->sqleval('dex0+10000')
|
||||
'dex1'=>$db->sqleval('dex1+10000')
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "궁숙10000":
|
||||
@@ -166,7 +166,7 @@ switch($btn) {
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dex10'=>$db->sqleval('dex10+10000')
|
||||
'dex2'=>$db->sqleval('dex2+10000')
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "기숙10000":
|
||||
@@ -177,7 +177,7 @@ switch($btn) {
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dex20'=>$db->sqleval('dex20+10000')
|
||||
'dex3'=>$db->sqleval('dex3+10000')
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "귀숙10000":
|
||||
@@ -188,7 +188,7 @@ switch($btn) {
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dex30'=>$db->sqleval('dex30+10000')
|
||||
'dex4'=>$db->sqleval('dex4+10000')
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "차숙10000":
|
||||
@@ -199,7 +199,7 @@ switch($btn) {
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dex40'=>$db->sqleval('dex40+10000')
|
||||
'dex5'=>$db->sqleval('dex5+10000')
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "접속 허용":
|
||||
|
||||
+15
-15
@@ -160,11 +160,11 @@ SELECT
|
||||
COUNT(B.nation) AS gennum,
|
||||
ROUND(AVG(B.connect), 1) AS connect,
|
||||
ROUND(AVG(B.con), 1) AS con,
|
||||
ROUND(AVG(B.dex0)) AS dex0,
|
||||
ROUND(AVG(B.dex10)) AS dex10,
|
||||
ROUND(AVG(B.dex20)) AS dex20,
|
||||
ROUND(AVG(B.dex30)) AS dex30,
|
||||
ROUND(AVG(B.dex40)) AS dex40
|
||||
ROUND(AVG(B.dex1)) AS dex1,
|
||||
ROUND(AVG(B.dex2)) AS dex2,
|
||||
ROUND(AVG(B.dex3)) AS dex3,
|
||||
ROUND(AVG(B.dex4)) AS dex4,
|
||||
ROUND(AVG(B.dex5)) AS dex5
|
||||
FROM nation A, general B
|
||||
WHERE A.nation=B.nation
|
||||
GROUP BY B.nation
|
||||
@@ -184,11 +184,11 @@ switch($type) {
|
||||
case 10: $query .= " order by avg(B.explevel) desc"; break;
|
||||
case 11: $query .= " order by avg(B.connect) desc"; break;
|
||||
case 12: $query .= " order by avg(B.con) desc"; break;
|
||||
case 13: $query .= " order by avg(B.dex0) desc"; break;
|
||||
case 14: $query .= " order by avg(B.dex10) desc"; break;
|
||||
case 15: $query .= " order by avg(B.dex20) desc"; break;
|
||||
case 16: $query .= " order by avg(B.dex30) desc"; break;
|
||||
case 17: $query .= " order by avg(B.dex40) desc"; break;
|
||||
case 13: $query .= " order by avg(B.dex1) desc"; break;
|
||||
case 14: $query .= " order by avg(B.dex2) desc"; break;
|
||||
case 15: $query .= " order by avg(B.dex3) desc"; break;
|
||||
case 16: $query .= " order by avg(B.dex4) desc"; break;
|
||||
case 17: $query .= " order by avg(B.dex5) desc"; break;
|
||||
}
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nationCount = MYDB_num_rows($result);
|
||||
@@ -238,11 +238,11 @@ for($i=0; $i < $nationCount; $i++) {
|
||||
<td align=right> {$gen['avgs']} </td>
|
||||
<td align=right> {$gen['avgi']} </td>
|
||||
<td align=right> {$gen['avge']} </td>
|
||||
<td align=right> {$nation['dex0']} </td>
|
||||
<td align=right> {$nation['dex10']} </td>
|
||||
<td align=right> {$nation['dex20']} </td>
|
||||
<td align=right> {$nation['dex30']} </td>
|
||||
<td align=right> {$nation['dex40']} </td>
|
||||
<td align=right> {$nation['dex1']} </td>
|
||||
<td align=right> {$nation['dex2']} </td>
|
||||
<td align=right> {$nation['dex3']} </td>
|
||||
<td align=right> {$nation['dex4']} </td>
|
||||
<td align=right> {$nation['dex5']} </td>
|
||||
<td align=right> {$gen['crew']}/{$gen['leadership']}00 </td>
|
||||
<td align=center> {$city['pop']}/{$city['pop_max']} </td>
|
||||
<td align=center> ".sprintf('%.1f',$city['pop']/$city['pop_max']*100)."% </td>
|
||||
|
||||
+2
-2
@@ -13,8 +13,8 @@ $queryMap = [
|
||||
'turntime' => ['최근턴', 0, function($lhs, $rhs){
|
||||
return -($lhs['turntime']<=>$rhs['turntime']);
|
||||
}],
|
||||
'recwar' => ['최근전투', 1, function($lhs, $rhs){
|
||||
return -($lhs['recwar']<=>$rhs['recwar']);
|
||||
'recent_war' => ['최근전투', 1, function($lhs, $rhs){
|
||||
return -($lhs['recent_war']<=>$rhs['recent_war']);
|
||||
}],
|
||||
'name' => ['장수명', 0, function($lhs, $rhs){
|
||||
if($lhs['npc'] !== $rhs['npc']){
|
||||
|
||||
@@ -101,11 +101,11 @@ $types = [
|
||||
}
|
||||
return $v;
|
||||
}],
|
||||
["보 병 숙 련 도", "int", function($v){$v['value'] = $v['dex0']; return $v; }],
|
||||
["궁 병 숙 련 도", "int", function($v){$v['value'] = $v['dex10']; return $v; }],
|
||||
["기 병 숙 련 도", "int", function($v){$v['value'] = $v['dex20']; return $v; }],
|
||||
["귀 병 숙 련 도", "int", function($v){$v['value'] = $v['dex30']; return $v; }],
|
||||
["차 병 숙 련 도", "int", function($v){$v['value'] = $v['dex40']; return $v; }],
|
||||
["보 병 숙 련 도", "int", function($v){$v['value'] = $v['dex1']; return $v; }],
|
||||
["궁 병 숙 련 도", "int", function($v){$v['value'] = $v['dex2']; return $v; }],
|
||||
["기 병 숙 련 도", "int", function($v){$v['value'] = $v['dex3']; return $v; }],
|
||||
["귀 병 숙 련 도", "int", function($v){$v['value'] = $v['dex4']; return $v; }],
|
||||
["차 병 숙 련 도", "int", function($v){$v['value'] = $v['dex5']; return $v; }],
|
||||
["전 력 전 승 률", "percent", function($v){
|
||||
$totalCnt = $v['ttw']+$v['ttd']+$v['ttl'];
|
||||
if($totalCnt < 50){
|
||||
@@ -165,7 +165,7 @@ $generals = [];
|
||||
foreach($db->query(
|
||||
"SELECT nation,no,name,name2 as owner_name, owner, picture, imgsvr,
|
||||
experience, dedication,
|
||||
dex0, dex10, dex20, dex30, dex40,
|
||||
dex1, dex2, dex3, dex4, dex5,
|
||||
horse, weapon, book, item
|
||||
FROM general WHERE %l", $btn == "NPC 보기"?"npc>=2":"npc<2") as $general
|
||||
){
|
||||
|
||||
@@ -17,8 +17,8 @@ $queryMap = [
|
||||
'turntime' => ['최근턴', 0, function($lhs, $rhs){
|
||||
return -($lhs['turntime']<=>$rhs['turntime']);
|
||||
}],
|
||||
'recwar' => ['최근전투', 1, function($lhs, $rhs){
|
||||
return -($lhs['recwar']<=>$rhs['recwar']);
|
||||
'recent_war' => ['최근전투', 1, function($lhs, $rhs){
|
||||
return -($lhs['recent_war']<=>$rhs['recent_war']);
|
||||
}],
|
||||
'name' => ['장수명', 0, function($lhs, $rhs){
|
||||
if($lhs['npc'] !== $rhs['npc']){
|
||||
|
||||
+41
-41
@@ -819,29 +819,29 @@ function generalInfo2(General $generalObj) {
|
||||
$dedication = getHonor($general['dedication'])." ({$general['dedication']})";
|
||||
}
|
||||
|
||||
$dex0 = $general['dex0'] / GameConst::$dexLimit * 100;
|
||||
$dex10 = $general['dex10'] / GameConst::$dexLimit * 100;
|
||||
$dex20 = $general['dex20'] / GameConst::$dexLimit * 100;
|
||||
$dex30 = $general['dex30'] / GameConst::$dexLimit * 100;
|
||||
$dex40 = $general['dex40'] / GameConst::$dexLimit * 100;
|
||||
$dex1 = $general['dex1'] / GameConst::$dexLimit * 100;
|
||||
$dex2 = $general['dex2'] / GameConst::$dexLimit * 100;
|
||||
$dex3 = $general['dex3'] / GameConst::$dexLimit * 100;
|
||||
$dex4 = $general['dex4'] / GameConst::$dexLimit * 100;
|
||||
$dex5 = $general['dex5'] / GameConst::$dexLimit * 100;
|
||||
|
||||
if($dex0 > 100) { $dex0 = 100; }
|
||||
if($dex10 > 100) { $dex10 = 100; }
|
||||
if($dex20 > 100) { $dex20 = 100; }
|
||||
if($dex30 > 100) { $dex30 = 100; }
|
||||
if($dex40 > 100) { $dex40 = 100; }
|
||||
if($dex1 > 100) { $dex1 = 100; }
|
||||
if($dex2 > 100) { $dex2 = 100; }
|
||||
if($dex3 > 100) { $dex3 = 100; }
|
||||
if($dex4 > 100) { $dex4 = 100; }
|
||||
if($dex5 > 100) { $dex5 = 100; }
|
||||
|
||||
$general['dex0_text'] = getDexCall($general['dex0']);
|
||||
$general['dex10_text'] = getDexCall($general['dex10']);
|
||||
$general['dex20_text'] = getDexCall($general['dex20']);
|
||||
$general['dex30_text'] = getDexCall($general['dex30']);
|
||||
$general['dex40_text'] = getDexCall($general['dex40']);
|
||||
$general['dex1_text'] = getDexCall($general['dex1']);
|
||||
$general['dex2_text'] = getDexCall($general['dex2']);
|
||||
$general['dex3_text'] = getDexCall($general['dex3']);
|
||||
$general['dex4_text'] = getDexCall($general['dex4']);
|
||||
$general['dex5_text'] = getDexCall($general['dex5']);
|
||||
|
||||
$general['dex0_short'] = sprintf('%.1fK', $general['dex0']/1000);
|
||||
$general['dex10_short'] = sprintf('%.1fK', $general['dex10']/1000);
|
||||
$general['dex20_short'] = sprintf('%.1fK', $general['dex20']/1000);
|
||||
$general['dex30_short'] = sprintf('%.1fK', $general['dex30']/1000);
|
||||
$general['dex40_short'] = sprintf('%.1fK', $general['dex40']/1000);
|
||||
$general['dex1_short'] = sprintf('%.1fK', $general['dex1']/1000);
|
||||
$general['dex2_short'] = sprintf('%.1fK', $general['dex2']/1000);
|
||||
$general['dex3_short'] = sprintf('%.1fK', $general['dex3']/1000);
|
||||
$general['dex4_short'] = sprintf('%.1fK', $general['dex4']/1000);
|
||||
$general['dex5_short'] = sprintf('%.1fK', $general['dex5']/1000);
|
||||
|
||||
echo "<table width=498 class='tb_layout bg2'>
|
||||
<tr><td style='text-align:center;' colspan=6 class='bg1'><b>추 가 정 보</b></td></tr>
|
||||
@@ -880,33 +880,33 @@ function generalInfo2(General $generalObj) {
|
||||
<tr><td style='text-align:center;' colspan=4 class='bg1'><b>숙 련 도</b></td></tr>
|
||||
<tr height=16>
|
||||
<td width=64 style='text-align:center;' class='bg1'><b>보병</b></td>
|
||||
<td width=40> {$general['dex0_text']}</td>
|
||||
<td width=60 align=right>{$general['dex0_short']} </td>
|
||||
<td width=330 style='text-align:center;'>".bar($dex0, 16)."</td>
|
||||
<td width=40> {$general['dex1_text']}</td>
|
||||
<td width=60 align=right>{$general['dex1_short']} </td>
|
||||
<td width=330 style='text-align:center;'>".bar($dex1, 16)."</td>
|
||||
</tr>
|
||||
<tr height=16>
|
||||
<td style='text-align:center;' class='bg1'><b>궁병</b></td>
|
||||
<td> {$general['dex10_text']}</td>
|
||||
<td align=right>{$general['dex10_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex10, 16)."</td>
|
||||
<td> {$general['dex2_text']}</td>
|
||||
<td align=right>{$general['dex2_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex2, 16)."</td>
|
||||
</tr>
|
||||
<tr height=16>
|
||||
<td style='text-align:center;' class='bg1'><b>기병</b></td>
|
||||
<td> {$general['dex20_text']}</td>
|
||||
<td align=right>{$general['dex20_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex20, 16)."</td>
|
||||
<td> {$general['dex3_text']}</td>
|
||||
<td align=right>{$general['dex3_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex3, 16)."</td>
|
||||
</tr>
|
||||
<tr height=16>
|
||||
<td style='text-align:center;' class='bg1'><b>귀병</b></td>
|
||||
<td> {$general['dex30_text']}</td>
|
||||
<td align=right>{$general['dex30_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex30, 16)."</td>
|
||||
<td> {$general['dex4_text']}</td>
|
||||
<td align=right>{$general['dex4_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex4, 16)."</td>
|
||||
</tr>
|
||||
<tr height=16>
|
||||
<td style='text-align:center;' class='bg1'><b>차병</b></td>
|
||||
<td> {$general['dex40_text']}</td>
|
||||
<td align=right>{$general['dex40_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex40, 16)."</td>
|
||||
<td> {$general['dex5_text']}</td>
|
||||
<td align=right>{$general['dex5_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex5, 16)."</td>
|
||||
</tr>
|
||||
</table>";
|
||||
}
|
||||
@@ -1300,7 +1300,7 @@ function addAge() {
|
||||
pushGenLog($general, "<C>●</>특기 【<b><L>{$specialText}</></b>】{$josaUl} 익혔습니다!");
|
||||
}
|
||||
|
||||
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){
|
||||
foreach($db->query('SELECT no,name,nation,leadership,strength,intel,npc,dex1,dex2,dex3,dex4,dex5 from general where specage2<=age and special2=%s', GameConst::$defaultSpecialWar) as $general){
|
||||
$special2 = SpecialityConst::pickSpecialWar($general);
|
||||
$specialClass = buildGeneralSpecialWarClass($special2);
|
||||
$specialText = $specialClass->getName();
|
||||
@@ -1371,11 +1371,11 @@ function CheckHall($no) {
|
||||
["winrate", 'rank'],
|
||||
["killcrew", 'rank'],
|
||||
["killrate", 'calc'],
|
||||
["dex0", 'natural'],
|
||||
["dex10", 'natural'],
|
||||
["dex20", 'natural'],
|
||||
["dex30", 'natural'],
|
||||
["dex40", 'natural'],
|
||||
["dex1", 'natural'],
|
||||
["dex2", 'natural'],
|
||||
["dex3", 'natural'],
|
||||
["dex4", 'natural'],
|
||||
["dex5", 'natural'],
|
||||
["ttrate", 'calc'],
|
||||
["tlrate", 'calc'],
|
||||
["tprate", 'calc'],
|
||||
|
||||
@@ -409,7 +409,7 @@ function postUpdateMonthly() {
|
||||
) from city where nation=A.nation and supply=1
|
||||
))
|
||||
+(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(dex1+dex2+dex3+dex4+dex5)/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)
|
||||
)/10)
|
||||
@@ -1009,8 +1009,8 @@ function checkStatistic() {
|
||||
];
|
||||
|
||||
$avgGeneral = $db->queryFirstRow(
|
||||
'SELECT avg(gold) as avggold, avg(rice) as avgrice, avg(dex0+dex10+dex20+dex30) as avgdex,
|
||||
max(dex0+dex10+dex20+dex30) as maxdex, avg(experience+dedication) as avgexpded, max(experience+dedication) as maxexpded
|
||||
'SELECT avg(gold) as avggold, avg(rice) as avgrice, avg(dex1+dex2+dex3+dex4) as avgdex,
|
||||
max(dex1+dex2+dex3+dex4) as maxdex, avg(experience+dedication) as avgexpded, max(experience+dedication) as maxexpded
|
||||
FROM general'
|
||||
);
|
||||
$auxData['generals']['avg'] = $avgGeneral;
|
||||
@@ -1047,7 +1047,7 @@ function checkStatistic() {
|
||||
$nationGeneralInfos = Util::convertArrayToDict(
|
||||
$db->query(
|
||||
'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
|
||||
sum(dex1+dex2+dex3+dex4) as dex,sum(experience+dedication) as expded
|
||||
from general GROUP BY nation'
|
||||
),
|
||||
'nation'
|
||||
@@ -1114,7 +1114,7 @@ function checkStatistic() {
|
||||
}
|
||||
|
||||
foreach($db->queryAllLists(
|
||||
'SELECT crewtype, count(crewtype) AS cnt FROM general WHERE recwar != NULL GROUP BY crewtype'
|
||||
'SELECT crewtype, count(crewtype) AS cnt FROM general WHERE recent_war != NULL GROUP BY crewtype'
|
||||
) as [$crewtype, $cnt]
|
||||
){
|
||||
$crewtypeHists[$crewtype] = $cnt;
|
||||
|
||||
@@ -1494,7 +1494,7 @@ function process_76(&$general) {
|
||||
$avgGenNum = $db->queryFirstField('SELECT avg(gennum) FROM nation');
|
||||
$addGenCount = 5 + Util::round($avgGenNum / 10);
|
||||
|
||||
$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']);
|
||||
$avgGen = $db->queryFirstRow('SELECT max(leadership+strength+intel) as stat_sum, avg(dedication) as ded,avg(experience) as exp, avg(dex1+dex2+dex3+dex4) as dex_t, avg(age) as age, avg(dex5) as dex5 from general where npc < 5 and nation = %i', $general['nation']);
|
||||
|
||||
$dexTotal = $avgGen['dex_t'];
|
||||
|
||||
@@ -1608,14 +1608,14 @@ function process_76(&$general) {
|
||||
level,gold,rice,crew,crewtype,train,atmos,tnmt,
|
||||
weapon,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg,
|
||||
makelimit,bornyear,deadyear,
|
||||
dex0, dex10, dex20, dex30, dex40
|
||||
dex1, dex2, dex3, dex4, dex5
|
||||
) values (
|
||||
'$npc','$npc','$affinity','$name','$picture','{$nation['nation']}',
|
||||
'{$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',
|
||||
'{$dexVal[0]}','{$dexVal[1]}','{$dexVal[2]}','{$dexVal[3]}','{$avgGen['dex40']}'
|
||||
'{$dexVal[0]}','{$dexVal[1]}','{$dexVal[2]}','{$dexVal[3]}','{$avgGen['dex5']}'
|
||||
)",
|
||||
$connect
|
||||
) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
@@ -83,13 +83,13 @@ $generalCheck = [
|
||||
'required'=>[
|
||||
'no', 'name', 'nation', 'turntime', 'personal', 'special2', 'crew', 'crewtype', 'atmos', 'train',
|
||||
'intel', 'intel_exp', 'book', 'strength', 'strength_exp', 'weapon', 'injury', 'leadership', 'leadership_exp', 'horse', 'item',
|
||||
'explevel', 'experience', 'dedication', 'level', 'gold', 'rice', 'dex0', 'dex10', 'dex20', 'dex30', 'dex40',
|
||||
'recwar'
|
||||
'explevel', 'experience', 'dedication', 'level', 'gold', 'rice', 'dex1', 'dex2', 'dex3', 'dex4', 'dex5',
|
||||
'recent_war'
|
||||
],
|
||||
'integer'=>[
|
||||
'no', 'nation', 'personal', 'special2', 'crew', 'crewtype', 'atmos', 'train',
|
||||
'intel', 'intel_exp', 'book', 'strength', 'strength_exp', 'weapon', 'injury', 'leadership', 'leadership_exp', 'horse', 'item',
|
||||
'explevel', 'experience', 'dedication', 'level', 'gold', 'rice', 'dex0', 'dex10', 'dex20', 'dex30', 'dex40',
|
||||
'explevel', 'experience', 'dedication', 'level', 'gold', 'rice', 'dex1', 'dex2', 'dex3', 'dex4', 'dex5',
|
||||
],
|
||||
'min'=>[
|
||||
['no', 1],
|
||||
@@ -101,11 +101,11 @@ $generalCheck = [
|
||||
['experience', 0],
|
||||
['gold', 0],
|
||||
['rice', 0],
|
||||
['dex0', 0],
|
||||
['dex10', 0],
|
||||
['dex20', 0],
|
||||
['dex30', 0],
|
||||
['dex40', 0],
|
||||
['dex1', 0],
|
||||
['dex2', 0],
|
||||
['dex3', 0],
|
||||
['dex4', 0],
|
||||
['dex5', 0],
|
||||
],
|
||||
'between'=>[
|
||||
['train', [40, GameConst::$maxTrainByWar]],
|
||||
|
||||
+5
-5
@@ -162,11 +162,11 @@ if ($genius) {
|
||||
'leadership'=>$leadership,
|
||||
'strength'=>$strength,
|
||||
'intel'=>$intel,
|
||||
'dex0'=>0,
|
||||
'dex10'=>0,
|
||||
'dex20'=>0,
|
||||
'dex30'=>0,
|
||||
'dex40'=>0
|
||||
'dex1'=>0,
|
||||
'dex2'=>0,
|
||||
'dex3'=>0,
|
||||
'dex4'=>0,
|
||||
'dex5'=>0
|
||||
]);
|
||||
} else {
|
||||
$specage2 = Util::valueFit(Util::round((GameConst::$retirementYear - $age)/4 - $relYear / 2), 3) + $age;
|
||||
|
||||
+11
-11
@@ -176,11 +176,11 @@ jQuery(function($){
|
||||
setVal('.form_atmos', data.atmos);
|
||||
setVal('.form_train', data.train);
|
||||
|
||||
setVal('.form_dex0', data.dex0);
|
||||
setVal('.form_dex10', data.dex10);
|
||||
setVal('.form_dex20', data.dex20);
|
||||
setVal('.form_dex30', data.dex30);
|
||||
setVal('.form_dex40', data.dex40);
|
||||
setVal('.form_dex0', data.dex1);
|
||||
setVal('.form_dex10', data.dex2);
|
||||
setVal('.form_dex20', data.dex3);
|
||||
setVal('.form_dex30', data.dex4);
|
||||
setVal('.form_dex40', data.dex5);
|
||||
setVal('.form_defence_train', data.defence_train);
|
||||
|
||||
if(!setGeneralNo($general, data.no)){
|
||||
@@ -223,11 +223,11 @@ jQuery(function($){
|
||||
atmos:getInt('.form_atmos'),
|
||||
train:getInt('.form_train'),
|
||||
|
||||
dex0:getInt('.form_dex0'),
|
||||
dex10:getInt('.form_dex10'),
|
||||
dex20:getInt('.form_dex20'),
|
||||
dex30:getInt('.form_dex30'),
|
||||
dex40:getInt('.form_dex40'),
|
||||
dex1:getInt('.form_dex0'),
|
||||
dex2:getInt('.form_dex10'),
|
||||
dex3:getInt('.form_dex20'),
|
||||
dex4:getInt('.form_dex30'),
|
||||
dex5:getInt('.form_dex40'),
|
||||
defence_train:getInt('.form_defence_train'),
|
||||
};
|
||||
}
|
||||
@@ -373,7 +373,7 @@ jQuery(function($){
|
||||
|
||||
dedication:0,
|
||||
|
||||
recwar:'2018-08-26 12:00',
|
||||
recent_war:'2018-08-26 12:00',
|
||||
experience:Math.pow(generalData.explevel, 2),
|
||||
};
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ class che_인재탐색 extends Command\GeneralCommand{
|
||||
|
||||
$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
|
||||
avg(dex1+dex2+dex3+dex4) as dex_t, avg(age) as age, avg(dex5) as dex5
|
||||
from general where nation=%i',
|
||||
$nationID
|
||||
);
|
||||
@@ -275,7 +275,7 @@ class che_인재탐색 extends Command\GeneralCommand{
|
||||
$dexVal[1],
|
||||
$dexVal[2],
|
||||
$dexVal[3],
|
||||
$avgGen['dex40']
|
||||
$avgGen['dex5']
|
||||
);
|
||||
|
||||
$newNPC->build($this->env);
|
||||
|
||||
@@ -153,7 +153,7 @@ class che_의병모집 extends Command\NationCommand{
|
||||
|
||||
$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
|
||||
avg(dex1+dex2+dex3+dex4) as dex_t, avg(age) as age, avg(dex5) as dex5
|
||||
from general where nation=%i',
|
||||
$nationID
|
||||
);
|
||||
@@ -242,7 +242,7 @@ class che_의병모집 extends Command\NationCommand{
|
||||
$dexVal[1],
|
||||
$dexVal[2],
|
||||
$dexVal[3],
|
||||
$avgGen['dex40']
|
||||
$avgGen['dex5']
|
||||
);
|
||||
|
||||
$newNPC->build($this->env);
|
||||
|
||||
@@ -110,7 +110,7 @@ class RaiseInvader extends \sammo\Event\Action{
|
||||
|
||||
$dex = $this->dex;
|
||||
if($dex < 0){
|
||||
$dex = $db->queryFirstField("SELECT avg(dex0 + dex10 + dex20 + dex30 + dex40)/5 from nation where `level`>0");
|
||||
$dex = $db->queryFirstField("SELECT avg(dex1 + dex2 + dex3 + dex4 + dex5)/5 from nation where `level`>0");
|
||||
$dex /= -1 * $this->dex;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@ class GameUnitConstBase{
|
||||
|
||||
}
|
||||
|
||||
const T_CASTLE = -1;
|
||||
const T_MISC = -2;
|
||||
const T_FOOTMAN = 0;
|
||||
const T_ARCHER = 1;
|
||||
const T_CAVALRY = 2;
|
||||
const T_WIZARD = 3;
|
||||
const T_SIEGE = 4;
|
||||
const T_CASTLE = 0;
|
||||
const T_FOOTMAN = 1;
|
||||
const T_ARCHER = 2;
|
||||
const T_CAVALRY = 3;
|
||||
const T_WIZARD = 4;
|
||||
const T_SIEGE = 5;
|
||||
const T_MISC = 6;
|
||||
|
||||
const DEFAULT_CREWTYPE = 0;
|
||||
|
||||
@@ -34,7 +34,7 @@ class GameUnitConstBase{
|
||||
|
||||
protected static $_buildData = [
|
||||
[
|
||||
-1, self::T_CASTLE, '성벽',
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
999999, null, null, 999999,
|
||||
[],//성벽은 공격할 수 없다.
|
||||
@@ -44,7 +44,7 @@ class GameUnitConstBase{
|
||||
],
|
||||
|
||||
[
|
||||
0, self::T_FOOTMAN, '보병',
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -53,7 +53,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
1, self::T_FOOTMAN, '청주병',
|
||||
1101, self::T_FOOTMAN, '청주병',
|
||||
100, 200, 7, 10, 0, 10, 11,
|
||||
1000, null, ['중원'], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -62,7 +62,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
2, self::T_FOOTMAN, '수병',
|
||||
1102, self::T_FOOTMAN, '수병',
|
||||
150, 150, 7, 10, 0, 11, 10,
|
||||
1000, null, ['오월'], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -71,7 +71,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
3, self::T_FOOTMAN, '자객병',
|
||||
1103, self::T_FOOTMAN, '자객병',
|
||||
100, 150, 8, 20, 0, 10, 10,
|
||||
2000, ['저'], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -80,7 +80,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
4, self::T_FOOTMAN, '근위병',
|
||||
1104, self::T_FOOTMAN, '근위병',
|
||||
150, 200, 7, 10, 0, 12, 12,
|
||||
3000, ['낙양'], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -89,7 +89,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
5, self::T_FOOTMAN, '등갑병',
|
||||
1105, self::T_FOOTMAN, '등갑병',
|
||||
100, 225, 7, 5, 0, 13, 10,
|
||||
1000, null, ['남중'], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -99,7 +99,7 @@ class GameUnitConstBase{
|
||||
],
|
||||
|
||||
[
|
||||
10, self::T_ARCHER, '궁병',
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 20, 0, 10, 10,
|
||||
0, null, null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -108,7 +108,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
11, self::T_ARCHER, '궁기병',
|
||||
1201, self::T_ARCHER, '궁기병',
|
||||
100, 100, 8, 30, 0, 11, 12,
|
||||
1000, null, ['동이'], 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -117,7 +117,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
12, self::T_ARCHER, '연노병',
|
||||
1202, self::T_ARCHER, '연노병',
|
||||
150, 100, 8, 20, 0, 12, 11,
|
||||
1000, null, ['서촉'], 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -126,7 +126,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
13, self::T_ARCHER, '강궁병',
|
||||
1203, self::T_ARCHER, '강궁병',
|
||||
150, 150, 7, 20, 0, 13, 13,
|
||||
3000, ['양양'], null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -135,7 +135,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
14, self::T_ARCHER, '석궁병',
|
||||
1204, self::T_ARCHER, '석궁병',
|
||||
200, 100, 7, 20, 0, 13, 13,
|
||||
3000, ['건업'], null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -145,7 +145,7 @@ class GameUnitConstBase{
|
||||
],
|
||||
|
||||
[
|
||||
20, self::T_CAVALRY, '기병',
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
0, null, null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -154,7 +154,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
21, self::T_CAVALRY, '백마병',
|
||||
1301, self::T_CAVALRY, '백마병',
|
||||
200, 100, 7, 5, 0, 12, 13,
|
||||
1000, null, ['하북'], 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -163,7 +163,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
22, self::T_CAVALRY, '중장기병',
|
||||
1302, self::T_CAVALRY, '중장기병',
|
||||
150, 150, 7, 5, 0, 13, 12,
|
||||
1000, null, ['서북'], 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -172,7 +172,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
23, self::T_CAVALRY, '돌격기병',
|
||||
1303, self::T_CAVALRY, '돌격기병',
|
||||
200, 100, 8, 5, 0, 13, 11,
|
||||
2000, ['흉노'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -181,7 +181,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
24, self::T_CAVALRY, '철기병',
|
||||
1304, self::T_CAVALRY, '철기병',
|
||||
100, 200, 7, 5, 0, 11, 13,
|
||||
2000, ['강'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -190,7 +190,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
25, self::T_CAVALRY, '수렵기병',
|
||||
1305, self::T_CAVALRY, '수렵기병',
|
||||
150, 100, 8, 15, 0, 12, 12,
|
||||
2000, ['산월'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -199,7 +199,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
26, self::T_CAVALRY, '맹수병',
|
||||
1306, self::T_CAVALRY, '맹수병',
|
||||
250, 175, 6, 0, 0, 16, 16,
|
||||
2000, ['남만'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -208,7 +208,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
27, self::T_CAVALRY, '호표기병',
|
||||
1307, self::T_CAVALRY, '호표기병',
|
||||
200, 150, 7, 5, 0, 14, 14,
|
||||
3000, ['허창'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -218,7 +218,7 @@ class GameUnitConstBase{
|
||||
],
|
||||
|
||||
[
|
||||
30, self::T_WIZARD, '귀병',
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -227,7 +227,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
31, self::T_WIZARD, '신귀병',
|
||||
1401, self::T_WIZARD, '신귀병',
|
||||
80, 80, 7, 20, 0.6, 10, 10,
|
||||
1000, null, ['초'], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -236,7 +236,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
32, self::T_WIZARD, '백귀병',
|
||||
1402, self::T_WIZARD, '백귀병',
|
||||
80, 130, 7, 5, 0.6, 9, 11,
|
||||
2000, ['오환'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -245,7 +245,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
33, self::T_WIZARD, '흑귀병',
|
||||
1403, self::T_WIZARD, '흑귀병',
|
||||
130, 80, 7, 5, 0.6, 11, 9,
|
||||
2000, ['왜'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -254,7 +254,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
34, self::T_WIZARD, '악귀병',
|
||||
1404, self::T_WIZARD, '악귀병',
|
||||
130, 130, 7, 0, 0.6, 12, 12,
|
||||
3000, ['장안'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -263,7 +263,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
35, self::T_WIZARD, '남귀병',
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 8, 8,
|
||||
1000, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -272,7 +272,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
36, self::T_WIZARD, '황귀병',
|
||||
1406, self::T_WIZARD, '황귀병',
|
||||
110, 110, 7, 0, 0.8, 13, 10,
|
||||
3000, ['낙양'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -281,7 +281,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
37, self::T_WIZARD, '천귀병',
|
||||
1407, self::T_WIZARD, '천귀병',
|
||||
80, 130, 7, 15, 0.6, 11, 12,
|
||||
3000, ['성도'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -290,7 +290,7 @@ class GameUnitConstBase{
|
||||
null, null
|
||||
],
|
||||
[
|
||||
38, self::T_WIZARD, '마귀병',
|
||||
1408, self::T_WIZARD, '마귀병',
|
||||
130, 80, 7, 15, 0.6, 12, 11,
|
||||
3000, ['업'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -300,7 +300,7 @@ class GameUnitConstBase{
|
||||
],
|
||||
|
||||
[
|
||||
40, self::T_SIEGE, '정란',
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 15, 5,
|
||||
0, null, null, 3,
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>1.8],
|
||||
@@ -309,7 +309,7 @@ class GameUnitConstBase{
|
||||
['che_성벽부상무효'], null
|
||||
],
|
||||
[
|
||||
41, self::T_SIEGE, '충차',
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 20, 5,
|
||||
1000, null, null, 3,
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
||||
@@ -318,7 +318,7 @@ class GameUnitConstBase{
|
||||
['che_성벽부상무효'], null
|
||||
],
|
||||
[
|
||||
42, self::T_SIEGE, '벽력거',
|
||||
1502, self::T_SIEGE, '벽력거',
|
||||
200, 100, 6, 0, 0, 25, 5,
|
||||
3000, ['업'], null, 0,
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>1.8],
|
||||
@@ -327,7 +327,7 @@ class GameUnitConstBase{
|
||||
['che_성벽부상무효'], null
|
||||
],
|
||||
[
|
||||
43, self::T_SIEGE, '목우',
|
||||
1503, self::T_SIEGE, '목우',
|
||||
50, 200, 5, 0, 0, 30, 5,
|
||||
3000, ['성도'], null, 0,
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8],
|
||||
@@ -378,6 +378,9 @@ class GameUnitConstBase{
|
||||
}
|
||||
|
||||
public static function byID(int $id): ?GameUnitDetail{
|
||||
if($id < 1000){
|
||||
throw new \InvalidArgumentException('적절한 id는 1000이상이어야합니다:'.$id);
|
||||
}
|
||||
static::_generate();
|
||||
return static::$constID[$id]??null;
|
||||
}
|
||||
|
||||
@@ -83,20 +83,22 @@ class GameUnitDetail implements iAction{
|
||||
return $this->cost * getTechCost($tech) * $crew / 100;
|
||||
}
|
||||
|
||||
public function getAttackCoef($armType):float{
|
||||
if($armType instanceof GameUnitDetail){
|
||||
$armType = $armType->armType;
|
||||
public function getAttackCoef(GameUnitDetail $opposeCrewType):float{
|
||||
$opposeCrewTypeID = $opposeCrewType->id;
|
||||
if(key_exists($opposeCrewTypeID, $this->attackCoef)){
|
||||
return $this->attackCoef[$opposeCrewTypeID];
|
||||
}
|
||||
assert(is_numeric($armType), '$armType should be int or GameUnitDetail');
|
||||
return $this->attackCoef[$armType]??1;
|
||||
$opposeArmType = $opposeCrewType->armType;
|
||||
return $this->attackCoef[$opposeArmType]??1;
|
||||
}
|
||||
|
||||
public function getDefenceCoef($armType):float{
|
||||
if($armType instanceof GameUnitDetail){
|
||||
$armType = $armType->armType;
|
||||
public function getDefenceCoef(GameUnitDetail $opposeCrewType):float{
|
||||
$opposeCrewTypeID = $opposeCrewType->id;
|
||||
if(key_exists($opposeCrewTypeID, $this->defenceCoef)){
|
||||
return $this->defenceCoef[$opposeCrewTypeID];
|
||||
}
|
||||
assert(is_numeric($armType), '$armType should be int or GameUnitDetail');
|
||||
return $this->defenceCoef[$armType]??1;
|
||||
$opposeArmType = $opposeCrewType->armType;
|
||||
return $this->defenceCoef[$opposeArmType]??1;
|
||||
}
|
||||
|
||||
public function getComputedAttack(General $general, int $tech){
|
||||
|
||||
@@ -366,8 +366,7 @@ class General implements iAction{
|
||||
$exp *= ($this->getVar('train') + $this->getVar('atmos')) / 200;
|
||||
}
|
||||
|
||||
$ntype = $armType*10;
|
||||
$dexType = "dex{$ntype}";
|
||||
$dexType = "dex{$armType}";
|
||||
|
||||
$this->increaseVar($dexType, $exp);
|
||||
}
|
||||
@@ -446,11 +445,11 @@ class General implements iAction{
|
||||
$this->setVar('age', 20);
|
||||
$this->setVar('specage', 0);
|
||||
$this->setVar('specage2', 0);
|
||||
$this->multiplyVar('dex0', 0.5);
|
||||
$this->multiplyVar('dex10', 0.5);
|
||||
$this->multiplyVar('dex20', 0.5);
|
||||
$this->multiplyVar('dex30', 0.5);
|
||||
$this->multiplyVar('dex40', 0.5);
|
||||
$this->multiplyVar('dex1', 0.5);
|
||||
$this->multiplyVar('dex2', 0.5);
|
||||
$this->multiplyVar('dex3', 0.5);
|
||||
$this->multiplyVar('dex4', 0.5);
|
||||
$this->multiplyVar('dex5', 0.5);
|
||||
|
||||
$this->setRankVar('firenum', 0);
|
||||
$this->setRankVar('warnum', 0);
|
||||
@@ -769,8 +768,8 @@ class General implements iAction{
|
||||
'experience', 'dedication', 'level', 'gold', 'rice', 'crew', 'crewtype', 'train', 'atmos', 'turntime',
|
||||
'makelimit', 'killturn', 'block', 'dedlevel', 'explevel', 'age', 'startage', 'belong',
|
||||
'personal', 'special', 'special2', 'defence_train', 'tnmt', 'npc', 'npc_org', 'deadyear', 'npcmsg',
|
||||
'dex0', 'dex10', 'dex20', 'dex30', 'dex40',
|
||||
'recwar', 'last_turn', 'myset',
|
||||
'dex1', 'dex2', 'dex3', 'dex4', 'dex5',
|
||||
'recent_war', 'last_turn', 'myset',
|
||||
'specage', 'specage2', 'con', 'connect', 'owner', 'aux'
|
||||
];
|
||||
|
||||
|
||||
+15
-15
@@ -52,11 +52,11 @@ class NPC{
|
||||
public $killturn = null;
|
||||
|
||||
//XXX: 코드 못 바꾸나?
|
||||
protected $dex0 = 0;
|
||||
protected $dex10 = 0;
|
||||
protected $dex20 = 0;
|
||||
protected $dex30 = 0;
|
||||
protected $dex40 = 0;
|
||||
protected $dex1 = 0;
|
||||
protected $dex2 = 0;
|
||||
protected $dex3 = 0;
|
||||
protected $dex4 = 0;
|
||||
protected $dex5 = 0;
|
||||
|
||||
public function __construct(
|
||||
int $affinity,
|
||||
@@ -149,11 +149,11 @@ class NPC{
|
||||
}
|
||||
|
||||
public function setDex(int $footman, int $archer, int $cavalry, int $wizard, int $siege):self{
|
||||
$this->dex0 = $footman;
|
||||
$this->dex10 = $archer;
|
||||
$this->dex20 = $cavalry;
|
||||
$this->dex30 = $wizard;
|
||||
$this->dex40 = $siege;
|
||||
$this->dex1 = $footman;
|
||||
$this->dex2 = $archer;
|
||||
$this->dex3 = $cavalry;
|
||||
$this->dex4 = $wizard;
|
||||
$this->dex5 = $siege;
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -339,11 +339,11 @@ class NPC{
|
||||
'makelimit'=>0,
|
||||
'bornyear'=>$this->birth,
|
||||
'deadyear'=>$this->death,
|
||||
'dex0'=>$this->dex0,
|
||||
'dex10'=>$this->dex10,
|
||||
'dex20'=>$this->dex20,
|
||||
'dex30'=>$this->dex30,
|
||||
'dex40'=>$this->dex40,
|
||||
'dex1'=>$this->dex1,
|
||||
'dex2'=>$this->dex2,
|
||||
'dex3'=>$this->dex3,
|
||||
'dex4'=>$this->dex4,
|
||||
'dex5'=>$this->dex5,
|
||||
]);
|
||||
$this->generalID = $db->insertId();
|
||||
$turnRows = [];
|
||||
|
||||
@@ -136,11 +136,11 @@ class SpecialityConst{
|
||||
|
||||
private static function calcCondDexterity(array $general) : int {
|
||||
$dex = [
|
||||
static::ARMY_FOOTMAN => $general['dex0']??0,
|
||||
static::ARMY_ARCHER => $general['dex10']??0,
|
||||
static::ARMY_CAVALRY => $general['dex20']??0,
|
||||
static::ARMY_WIZARD => $general['dex30']??0,
|
||||
static::ARMY_SIEGE => $general['dex40']??0,
|
||||
static::ARMY_FOOTMAN => $general['dex1']??0,
|
||||
static::ARMY_ARCHER => $general['dex2']??0,
|
||||
static::ARMY_CAVALRY => $general['dex3']??0,
|
||||
static::ARMY_WIZARD => $general['dex4']??0,
|
||||
static::ARMY_SIEGE => $general['dex5']??0,
|
||||
];
|
||||
|
||||
$dexSum = array_sum($dex);
|
||||
|
||||
@@ -49,10 +49,10 @@ class WarUnitGeneral extends WarUnit{
|
||||
$this->general->increaseVar('warnum', 1);
|
||||
|
||||
if($this->isAttacker){
|
||||
$general->updateVar('recwar', $general->getTurnTime());
|
||||
$general->updateVar('recent_war', $general->getTurnTime());
|
||||
}
|
||||
else if($oppose !== null){
|
||||
$general->updateVar('recwar', $oppose->getGeneral()->getTurnTime());
|
||||
$general->updateVar('recent_war', $oppose->getGeneral()->getTurnTime());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,29 +203,7 @@ class WarUnitGeneral extends WarUnit{
|
||||
}
|
||||
|
||||
function addDex(GameUnitDetail $crewType, float $exp){
|
||||
$general = $this->general;
|
||||
$armType = $crewType->armType;
|
||||
|
||||
if($armType == GameUnitConst::T_CASTLE){
|
||||
$armType = GameUnitConst::T_SIEGE;
|
||||
}
|
||||
|
||||
if($armType < 0){
|
||||
return;
|
||||
}
|
||||
|
||||
if($armType == GameUnitConst::T_WIZARD) {
|
||||
$exp *= 0.9;
|
||||
}
|
||||
else if($armType == GameUnitConst::T_SIEGE) {
|
||||
$exp *= 0.9;
|
||||
}
|
||||
$exp *= ($this->getComputedTrain() + $this->getComputedAtmos()) / 200;
|
||||
|
||||
$ntype = $armType*10;
|
||||
$dexType = "dex{$ntype}";
|
||||
|
||||
$general->increaseVar($dexType, $exp);
|
||||
$this->general->addDex($crewType, $exp, false);
|
||||
}
|
||||
|
||||
function decreaseHP(int $damage):int{
|
||||
|
||||
@@ -7,7 +7,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
|
||||
protected static $_buildData = [
|
||||
[
|
||||
-1, self::T_CASTLE, '성벽',
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
999999, null, null, 999999,
|
||||
[],//성벽은 공격할 수 없다.
|
||||
@@ -17,7 +17,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
0, self::T_FOOTMAN, '보병',
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -27,7 +27,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
10, self::T_ARCHER, '궁병',
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 20, 0, 10, 10,
|
||||
0, null, null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -37,7 +37,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
20, self::T_CAVALRY, '기병',
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
0, null, null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
@@ -47,7 +47,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
30, self::T_WIZARD, '귀병',
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -56,7 +56,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
35, self::T_WIZARD, '남귀병',
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 8, 8,
|
||||
1000, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -66,7 +66,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
40, self::T_SIEGE, '정란',
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 15, 5,
|
||||
0, null, null, 3,
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>1.8],
|
||||
@@ -75,7 +75,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
['che_성벽부상무효'], null
|
||||
],
|
||||
[
|
||||
41, self::T_SIEGE, '충차',
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 20, 5,
|
||||
1000, null, null, 3,
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
||||
|
||||
+106
-106
@@ -15,7 +15,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
|
||||
protected static $_buildData = [
|
||||
[
|
||||
-1, self::T_CASTLE, '성벽',
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
999999, null, null, 999999,
|
||||
[],//성벽은 공격할 수 없다.
|
||||
@@ -25,280 +25,280 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
217001, self::T_FOOTMAN, '보병',
|
||||
217100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["표준적인 보병입니다. 보병은 방어특화입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217002, self::T_FOOTMAN, '마물병',
|
||||
217101, self::T_FOOTMAN, '마물병',
|
||||
110, 160, 7, 10, 0, 9, 10,
|
||||
0, null, ["호넷 마인령","케이브리스 마인령"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["마군 지역 기본병종입니다. 조금더 강하지만 쌀을 많이 소비합니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217003, self::T_FOOTMAN, '중장보병',
|
||||
217102, self::T_FOOTMAN, '중장보병',
|
||||
100, 250, 7, 5, 0, 13, 10,
|
||||
1000, null, ["헬만 동부"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["헬만 특유의 견고한 보병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217004, self::T_FOOTMAN, '흑의 군 보병',
|
||||
217103, self::T_FOOTMAN, '흑의 군 보병',
|
||||
150, 150, 7, 10, 0, 12, 11,
|
||||
1000, null, ["리자스 남부","리자스 북부"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["흑의 군 전통의 체계적인 훈련으로 공격력을 보완했습니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217005, self::T_FOOTMAN, '용병',
|
||||
217104, self::T_FOOTMAN, '용병',
|
||||
125, 175, 7, 10, 0, 12, 11,
|
||||
1000, null, ["자유도시 동부"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["일반 보병보다 비싸지만 받은 만큼은 일해줍니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217006, self::T_FOOTMAN, '사메라이',
|
||||
217105, self::T_FOOTMAN, '사메라이',
|
||||
175, 150, 7, 0, 0, 11, 10,
|
||||
1000, null, ["제스 남부"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["검으로 난무를 가하는 몬스터 보병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217007, self::T_FOOTMAN, '템플나이트병',
|
||||
217106, self::T_FOOTMAN, '템플나이트병',
|
||||
75, 275, 7, 0, 0, 11, 12,
|
||||
1000, null, ["AL교"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["공격을 포기하고 오직 방어에만 집중합니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217008, self::T_FOOTMAN, '메이드병',
|
||||
217107, self::T_FOOTMAN, '메이드병',
|
||||
150, 150, 7, 20, 0, 13, 11,
|
||||
2000, ["메이드의 묘지"], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["켓셀링크 휘하의 날렵한 전투메이드입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217009, self::T_FOOTMAN, '요괴병',
|
||||
217108, self::T_FOOTMAN, '요괴병',
|
||||
150, 150, 8, 0, 0, 11, 13,
|
||||
2000, ["오슈"], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["단단한 육체를 믿고 적진을 돌파합니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217010, self::T_FOOTMAN, '리자스 친위병',
|
||||
217109, self::T_FOOTMAN, '리자스 친위병',
|
||||
150, 200, 7, 10, 0, 12, 12,
|
||||
3000, ["리자스성"], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["여왕을 수호하는 리자스 최강의 보병 정예보병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217011, self::T_FOOTMAN, '케이브리스 마물병',
|
||||
217110, self::T_FOOTMAN, '케이브리스 마물병',
|
||||
200, 150, 7, 5, 0, 13, 14,
|
||||
3000, ["케이브리스의 성"], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["케이브리스 직속의 마물 정예 전투보병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217012, self::T_FOOTMAN, '투신',
|
||||
217111, self::T_FOOTMAN, '투신',
|
||||
200, 300, 7, 5, 0, 28, 23,
|
||||
5000, ["투신도시"], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["성마교단 유적에서 발굴된 사상 최강의 보병입니다."],
|
||||
null, null
|
||||
],
|
||||
|
||||
[
|
||||
217101, self::T_ARCHER, '궁병',
|
||||
217200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 20, 0, 10, 10,
|
||||
0, null, null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["표준적인 궁병입니다. 궁병은 회피특화입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217102, self::T_ARCHER, '투척마물병',
|
||||
217201, self::T_ARCHER, '투척마물병',
|
||||
150, 100, 7, 10, 0, 11, 12,
|
||||
1000, null, ["호넷 마인령"], 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["날렵함을 포기하고 도끼를 투척합니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217103, self::T_ARCHER, '백의 군 궁병',
|
||||
217202, self::T_ARCHER, '백의 군 궁병',
|
||||
100, 100, 8, 30, 0, 11, 11,
|
||||
1000, null, ["리자스 남부"], 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["전략을 활용하여 치고 빠지기에 능합니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217104, self::T_ARCHER, '벌레술사병',
|
||||
217203, self::T_ARCHER, '벌레술사병',
|
||||
100, 150, 7, 20, 0, 12, 12,
|
||||
2000, ["호박성"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["벌레들을 부려 몸을 보호하는 궁병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217105, self::T_ARCHER, '저격암살병',
|
||||
217204, self::T_ARCHER, '저격암살병',
|
||||
225, 75, 5, 10, 0, 14, 11,
|
||||
2000, ["블라디보스토크"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["독을 바른 탄환으로 적의 목숨을 앗아갑니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217106, self::T_ARCHER, '호루스병',
|
||||
217205, self::T_ARCHER, '호루스병',
|
||||
150, 100, 8, 20, 0, 11, 12,
|
||||
2000, ["거대전함"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["민첩하게 파고드는 호루스족 궁병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217107, self::T_ARCHER, '튤립병',
|
||||
217206, self::T_ARCHER, '튤립병',
|
||||
200, 100, 7, 20, 0, 13, 13,
|
||||
3000, ["커스텀"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["최첨단병기 튤립으로 적을 폭격합니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217108, self::T_ARCHER, '아이스플레임 궁병',
|
||||
217207, self::T_ARCHER, '아이스플레임 궁병',
|
||||
150, 150, 7, 20, 0, 13, 13,
|
||||
3000, ["라그나로크 아크"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["혁명을 성공으로 이끈 정예 게릴라 궁병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217109, self::T_ARCHER, '카라 궁병',
|
||||
217208, self::T_ARCHER, '카라 궁병',
|
||||
225, 225, 7, 30, 0, 25, 25,
|
||||
5000, ["펜실 카우"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["선조의 힘을 이어받은 최강의 카라 정예 궁병입니다."],
|
||||
null, null
|
||||
],
|
||||
|
||||
[
|
||||
217201, self::T_CAVALRY, '기동병',
|
||||
217300, self::T_CAVALRY, '기동병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
0, null, null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["표준적인 기동병입니다. 기동병은 공격특화입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217202, self::T_CAVALRY, '하치온나',
|
||||
217301, self::T_CAVALRY, '하치온나',
|
||||
175, 100, 7, 15, 0, 12, 12,
|
||||
1000, null, ["자유도시 서부"], 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["작은 몸으로 회피하며 따끔한 일격을 먹이는 몬스터 기동병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217203, self::T_CAVALRY, '적의 군 기동병',
|
||||
217302, self::T_CAVALRY, '적의 군 기동병',
|
||||
200, 100, 7, 5, 0, 12, 13,
|
||||
1000, null, ["리자스 북부"], 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["리자스군의 자랑인 기동부대입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217204, self::T_CAVALRY, '안드로이드 기동병',
|
||||
217303, self::T_CAVALRY, '안드로이드 기동병',
|
||||
175, 150, 7, 10, 0, 13, 12,
|
||||
2000, ["악의 탑"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["파이아르가 개발한 최첨단 안드로이드 기동병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217205, self::T_CAVALRY, '파란쵸 기동병',
|
||||
217304, self::T_CAVALRY, '파란쵸 기동병',
|
||||
200, 100, 8, 5, 0, 13, 11,
|
||||
2000, ["파란쵸 왕국"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["적진을 일점돌파하는 파란쵸왕국의 돌격 기동병입니다. "],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217206, self::T_CAVALRY, '비행마물병',
|
||||
217305, self::T_CAVALRY, '비행마물병',
|
||||
150, 100, 8, 15, 0, 12, 12,
|
||||
2000, ["죽음의 대지"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["비행마물에 올라탄 기동마물병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217207, self::T_CAVALRY, '마물조련사병',
|
||||
217306, self::T_CAVALRY, '마물조련사병',
|
||||
250, 200, 6, 0, 0, 16, 16,
|
||||
3000, ["랑그바우"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["무시무시한 몬스터에 올라타서 싸우는 극강의 기동병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217208, self::T_CAVALRY, '기마병',
|
||||
217307, self::T_CAVALRY, '기마병',
|
||||
200, 150, 7, 5, 0, 14, 14,
|
||||
3000, ["오와리"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["JAPAN 특유의 기마에 올라타 적을 짓밟는 기동병입니다."],
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217209, self::T_CAVALRY, '엔젤나이트',
|
||||
217308, self::T_CAVALRY, '엔젤나이트',
|
||||
300, 200, 7, 5, 0, 25, 25,
|
||||
5000, ["떨어진 궁도"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["신의 명령으로 파멸을 내리기 위해 강림했습니다."],
|
||||
null, null
|
||||
],
|
||||
|
||||
[
|
||||
217301, self::T_WIZARD, '마법병',
|
||||
217400, self::T_WIZARD, '마법병',
|
||||
80, 80, 7, 5, 0.6, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -307,7 +307,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217302, self::T_WIZARD, '마물 마법병',
|
||||
217401, self::T_WIZARD, '마물 마법병',
|
||||
90, 90, 7, 0, 0.6, 11, 9,
|
||||
0, null, ["호넷 마인령","케이브리스 마인령"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -316,7 +316,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217303, self::T_WIZARD, '카라 마법병',
|
||||
217402, self::T_WIZARD, '카라 마법병',
|
||||
80, 80, 7, 20, 0.6, 10, 10,
|
||||
1000, null, ["카라의 숲"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -325,7 +325,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217304, self::T_WIZARD, '제스 마법병',
|
||||
217403, self::T_WIZARD, '제스 마법병',
|
||||
100, 100, 7, 0, 0.6, 10, 10,
|
||||
1000, null, ["제스 북부"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -334,7 +334,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217305, self::T_WIZARD, '무녀',
|
||||
217404, self::T_WIZARD, '무녀',
|
||||
80, 80, 8, 10, 0.6, 10, 10,
|
||||
1000, null, ["JAPAN"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -343,7 +343,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217306, self::T_WIZARD, '프로즌',
|
||||
217405, self::T_WIZARD, '프로즌',
|
||||
90, 70, 7, 10, 0.8, 10, 10,
|
||||
1000, null, ["헬만 서부"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -352,7 +352,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217307, self::T_WIZARD, '마소한 마법병',
|
||||
217406, self::T_WIZARD, '마소한 마법병',
|
||||
70, 90, 7, 10, 0.8, 11, 10,
|
||||
1000, null, ["케이브리스 마인령"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -361,7 +361,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217308, self::T_WIZARD, '신관병',
|
||||
217407, self::T_WIZARD, '신관병',
|
||||
80, 130, 7, 5, 0.6, 9, 11,
|
||||
2000, ["카이즈"], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -370,7 +370,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217309, self::T_WIZARD, '중장마법병',
|
||||
217408, self::T_WIZARD, '중장마법병',
|
||||
80, 130, 7, 15, 0.6, 11, 12,
|
||||
3000, ["로제스그라드"], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -379,7 +379,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217310, self::T_WIZARD, '악마병',
|
||||
217409, self::T_WIZARD, '악마병',
|
||||
130, 80, 7, 15, 0.6, 11, 12,
|
||||
3000, ["올드제스"], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -388,7 +388,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217311, self::T_WIZARD, '호넷 마물병',
|
||||
217410, self::T_WIZARD, '호넷 마물병',
|
||||
130, 130, 7, 0, 0.6, 12, 12,
|
||||
3000, ["구 마왕성"], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -397,7 +397,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
217312, self::T_WIZARD, 'Z가디언',
|
||||
217411, self::T_WIZARD, 'Z가디언',
|
||||
180, 180, 7, 0, 0.7, 28, 20,
|
||||
5000, ["라그나로크 아크"], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
@@ -407,7 +407,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
217401, self::T_SIEGE, '정란',
|
||||
217500, self::T_SIEGE, '정란',
|
||||
150, 150, 6, 0, 0, 15, 5,
|
||||
0, null, null, 3,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>1.8],
|
||||
@@ -416,7 +416,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
['che_성벽부상무효'], null
|
||||
],
|
||||
[
|
||||
217402, self::T_SIEGE, '충차',
|
||||
217501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 20, 5,
|
||||
1000, null, null, 3,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
||||
@@ -425,7 +425,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
['che_성벽부상무효'], null
|
||||
],
|
||||
[
|
||||
217403, self::T_SIEGE, '튤립3호',
|
||||
217502, self::T_SIEGE, '튤립3호',
|
||||
275, 300, 6, 0, 0, 35, 15,
|
||||
5000, ["커스텀"], null, 0,
|
||||
[ ],
|
||||
|
||||
@@ -7,7 +7,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
|
||||
protected static $_buildData = [
|
||||
[
|
||||
-1, self::T_CASTLE, '성벽',
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
999999, null, null, 999999,
|
||||
[],//성벽은 공격할 수 없다.
|
||||
@@ -16,7 +16,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
0, self::T_FOOTMAN, '보병',
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 18, 18,
|
||||
0, null, null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8],
|
||||
@@ -26,7 +26,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
10, self::T_ARCHER, '궁병',
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 20, 0, 20, 20,
|
||||
0, null, null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8],
|
||||
@@ -36,7 +36,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
20, self::T_CAVALRY, '기병',
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 22, 22,
|
||||
0, null, null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8],
|
||||
@@ -46,7 +46,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
30, self::T_WIZARD, '귀병',
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 18, 18,
|
||||
0, null, null, 0,
|
||||
[],
|
||||
@@ -55,7 +55,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
null, null
|
||||
],
|
||||
[
|
||||
35, self::T_WIZARD, '남귀병',
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 16, 16,
|
||||
1000, null, null, 0,
|
||||
[],
|
||||
@@ -65,7 +65,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
],
|
||||
|
||||
[
|
||||
40, self::T_SIEGE, '정란',
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 7, 3,
|
||||
0, null, null, 0,
|
||||
[self::T_CASTLE=>1.8],
|
||||
@@ -74,7 +74,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
['che_성벽부상무효'], null
|
||||
],
|
||||
[
|
||||
41, self::T_SIEGE, '충차',
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 10, 3,
|
||||
1000, null, null, 3,
|
||||
[self::T_CASTLE=>2.4],
|
||||
@@ -83,7 +83,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
['che_성벽부상무효'], null
|
||||
],
|
||||
[
|
||||
42, self::T_SIEGE, '벽력거',
|
||||
1502, self::T_SIEGE, '벽력거',
|
||||
200, 100, 6, 0, 0, 20, 4,
|
||||
3000, ['업'], null, 0,
|
||||
[self::T_CASTLE=>1.8],
|
||||
@@ -92,7 +92,7 @@ class GameUnitConst extends GameUnitConstBase
|
||||
['che_성벽부상무효'], null
|
||||
],
|
||||
[
|
||||
43, self::T_SIEGE, '목우',
|
||||
1503, self::T_SIEGE, '목우',
|
||||
50, 200, 5, 0, 0, 15, 3,
|
||||
3000, ['성도'], null, 0,
|
||||
[],
|
||||
|
||||
+6
-6
@@ -33,11 +33,11 @@ CREATE TABLE `general` (
|
||||
`injury` INT(2) NOT NULL DEFAULT '0',
|
||||
`experience` INT(6) NOT NULL DEFAULT '0',
|
||||
`dedication` INT(6) NOT NULL DEFAULT '0',
|
||||
`dex0` INT(8) NOT NULL DEFAULT '0',
|
||||
`dex10` INT(8) NOT NULL DEFAULT '0',
|
||||
`dex20` INT(8) NOT NULL DEFAULT '0',
|
||||
`dex30` INT(8) NOT NULL DEFAULT '0',
|
||||
`dex40` INT(8) NOT NULL DEFAULT '0',
|
||||
`dex1` INT(8) NOT NULL DEFAULT '0',
|
||||
`dex2` INT(8) NOT NULL DEFAULT '0',
|
||||
`dex3` INT(8) NOT NULL DEFAULT '0',
|
||||
`dex4` INT(8) NOT NULL DEFAULT '0',
|
||||
`dex5` INT(8) NOT NULL DEFAULT '0',
|
||||
`level` INT(2) NOT NULL DEFAULT '0',
|
||||
`permission` ENUM('normal','auditor','ambassador') NULL DEFAULT 'normal',
|
||||
`gold` INT(6) NOT NULL DEFAULT '1000',
|
||||
@@ -51,7 +51,7 @@ CREATE TABLE `general` (
|
||||
`horse` VARCHAR(20) NOT NULL DEFAULT 'None',
|
||||
`item` VARCHAR(20) NOT NULL DEFAULT 'None',
|
||||
`turntime` DATETIME(6) NOT NULL,
|
||||
`recwar` DATETIME(6) NULL DEFAULT NULL,
|
||||
`recent_war` DATETIME(6) NULL DEFAULT NULL,
|
||||
`makelimit` INT(2) NULL DEFAULT '0',
|
||||
`killturn` INT(3) NULL DEFAULT NULL,
|
||||
`lastconnect` DATETIME NULL DEFAULT NULL,
|
||||
|
||||
Reference in New Issue
Block a user