Compare commits

..
9 Commits
Author SHA1 Message Date
Hide_D 4357fb3874 국호 변경 warning 수정 2020-03-05 07:35:01 +09:00
Hide_D 225c356b2d 국호 변경 추가 2020-03-05 07:33:11 +09:00
Hide_D 0bb45979df ng_old_generals에 aux 반영 2020-03-05 06:53:15 +09:00
Hide_D b28ac27fba 내특 전특 초기화 추가 2020-03-05 06:48:15 +09:00
Hide_D 017d1b5dd9 general에 aux 추가 2020-03-05 06:39:02 +09:00
Hide_D a7b22748cd miniche_clean 2020-02-08 23:42:22 +09:00
Hide_D 4f2c08918a 핫픽스 효율 향상 2020-02-08 14:10:36 +09:00
Hide_D d2f6df270b NPC가 함부러 전쟁 상태를 바꾸지 않도록 변경 2020-02-08 14:10:32 +09:00
Hide_D 64b14b0c5d '대' 도시 이름 버그 수정 2020-01-30 16:34:07 +09:00
14 changed files with 253 additions and 1316 deletions
+27
View File
@@ -106,6 +106,31 @@ if($command == 61) {
die();
}
// 국호변경
if($command == 82) {
$query = "select no,nation,level from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
$name = StringUtil::neutralize($name);
if($name == "") { $name = "무명"; }
$db->update('general', [
'makenation'=>$name
], 'owner=%i', $userID);
$count = count($turn);
$str = "type=type";
for($i=0; $i < $count; $i++) {
$str .= ",l{$me['level']}turn{$turn[$i]}='{$comStr}'";
}
$query = "update nation set {$str} where nation='{$me['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
header('location:b_chiefcenter.php', true, 303);
die();
}
//포상, 몰수, 발령, 항복권고, 원조
//선전포고, 종전, 파기, 초토화, 천도, 증축, 감축
//백성동원, 수몰, 허보, 피장파장, 의병모집, 이호경식, 급습
@@ -130,6 +155,8 @@ if($command == 23 || $command == 24 || $command == 27 || $command == 51 || $comm
die();
}
//일반 턴
$query = [];
foreach($turn as $turnIdx){
+12 -9
View File
@@ -594,8 +594,6 @@ function commandTable() {
addCommand("첩보(통솔경험, 자금$develcost3, 군량$develcost3)", 31);
addCommand("징병(통솔경험)", 11);
addCommand("모병(통솔경험, 자금x2)", 12);
addCommand("무작위 징병(통솔경험)", 18);
addCommand("무작위 모병(통솔경험, 자금x2)", 19);
addCommand("훈련(통솔경험)", 13);
addCommand("사기진작(통솔경험, 자금↓)", 14);
//addCommand("전투태세/3턴(통솔경험, 자금↓)", 15);
@@ -604,8 +602,6 @@ function commandTable() {
addCommand("첩보(통솔경험, 자금$develcost3, 군량$develcost3)", 31, 0);
addCommand("징병(통솔경험)", 11, 0);
addCommand("모병(통솔경험, 자금x2)", 12, 0);
addCommand("무작위 징병(통솔경험)", 18, 0);
addCommand("무작위 모병(통솔경험, 자금x2)", 19, 0);
addCommand("훈련(통솔경험)", 13, 0);
addCommand("사기진작(통솔경험, 자금↓)", 14, 0);
//addCommand("전투태세/3턴(통솔경험, 자금↓)", 15, 0);
@@ -667,8 +663,8 @@ function commandTable() {
}
commandGroup("", 1);
commandGroup("======= 개 인 ========");
addCommand("내정 특기 초기화/3턴", 38);
addCommand("전투 특기 초기화/3턴", 39);
addCommand("내정 특기 초기화(3턴, 1회만)", 38);
addCommand("전투 특기 초기화(3턴, 1회만)", 39);
if($me['level'] >= 1) {
addCommand("단련(자금$develcost, 군량$develcost)", 41);
addCommand("숙련전환(통솔경험, 자금$develcost, 군량$develcost)", 58);
@@ -763,9 +759,10 @@ function CoreCommandTable() {
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
$query = "select level,can_change_flag from nation where nation='{$me['nation']}'";
$query = "select level,can_change_flag,aux from nation where nation='{$me['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$nation = MYDB_fetch_array($result);
$nationAux = Json::decode($nation['aux']);
$query = "select no from general where nation='{$me['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -807,8 +804,8 @@ function CoreCommandTable() {
addCommand("초토화", 65, $valid);
addCommand("천도/3턴(금쌀{$develcost}0)", 66, $valid);
$cost = $develcost * GameConst::$expandCityCostCoef + GameConst::$expandCityDefaultCost; // 7만~13만
addCommand("증축/3턴(금쌀{$cost})", 67, $valid);
addCommand("감축/3", 68, $valid);
addCommand("증축/6턴(금쌀{$cost})", 67, $valid);
addCommand("감축/6", 68, $valid);
commandGroup("", 1);
commandGroup("====== 전 략 ======");
$term = Util::round(sqrt($genCount*8)*10);
@@ -835,6 +832,12 @@ function CoreCommandTable() {
} else {
addCommand("국기 변경", 81, 0);
}
if($nation['level']==7 && !($nationAux['used_82']??0)){
addCommand("국호 변경", 82, 1);
}
else{
addCommand("국호 변경", 82, 0);
}
commandGroup("", 1);
echo "
</select>
+13 -22
View File
@@ -67,16 +67,6 @@ function getTurn(array $general, $type, $font=1) {
$double = $command[1];
$str[$i] = "{$third}{$double}00명 모병";
break;
case 18: //무작위 징병
$third = GameUnitConst::byID($command[2])->name;
$double = $command[1];
$str[$i] = "{$third}{$double}00명 무작위 징병";
break;
case 19: //무작위 모병
$third = GameUnitConst::byID($command[2])->name;
$double = $command[1];
$str[$i] = "{$third}{$double}00명 무작위 모병";
break;
case 13: //훈련
$str[$i] = "훈련";
break;
@@ -180,13 +170,13 @@ function getTurn(array $general, $type, $font=1) {
$str[$i] = "{$city['name']}】에 선동 실행";
break;
case 38: //내특 초기화
$str[$i] = "내정 특기를 초기화";
break;
case 39: //전특 초기화
$str[$i] = "전투 특기를 초기화";
break;
case 38: //내특 초기화
$str[$i] = "내정 특기를 초기화";
break;
case 39: //전특 초기화
$str[$i] = "전투 특기를 초기화";
break;
case 41: //단련
$str[$i] = "숙련도를 단련";
break;
@@ -486,6 +476,9 @@ function getCoreTurn($nation, $level) {
$str[$i] = "【<font color={$color}>국기</font>】를 변경";
break;
case 82: //국호변경
$str[$i] = "국호를 변경";
break;
default:
$str[$i] = "????";
break;
@@ -506,7 +499,7 @@ function processCommand($no, $reduceTurn) {
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$general = $db->queryFirstRow('SELECT npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,affinity,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40,warnum,killnum,deathnum,killcrew,deathcrew,recwar,myset from general where no = %i', $no);
$general = $db->queryFirstRow('SELECT npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,affinity,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40,warnum,killnum,deathnum,killcrew,deathcrew,recwar,myset,aux from general where no = %i', $no);
list($month, $killturn) = $gameStor->getValuesAsArray(['month', 'killturn']);
$log = [];
@@ -562,11 +555,12 @@ function processCommand($no, $reduceTurn) {
case 77: process_77($general); break; //이호경식
case 78: process_78($general); break; //급습
case 81: process_81($general); break; //국기변경
case 82: process_82($general); break; //국호변경
case 99: break; //수뇌부휴식
}
//장수정보 재로드
$query = "select npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,affinity,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40,warnum,killnum,deathnum,killcrew,deathcrew,recwar,myset from general where no='$no'";
$query = "select npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,affinity,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40,warnum,killnum,deathnum,killcrew,deathcrew,recwar,myset,aux from general where no='$no'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
}
@@ -624,9 +618,6 @@ function processCommand($no, $reduceTurn) {
case 16: process_16($general); break; //전쟁
case 17: process_17($general); break; //소집해제
case 18: process_18($general, 1); break; //징병
case 19: process_18($general, 2); break; //모병
case 21: process_21($general); break; //이동
case 22: process_22($general); break; //등용
case 25: process_25($general); break; //임관
+2
View File
@@ -1015,6 +1015,7 @@ function updateNationState() {
$josaUl = JosaUtil::pick(getNationLevel($nationlevel), '을');
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<Y><b>【작위】</b></><D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>{$josaUl} 자칭하였습니다.";
pushNationHistory($nation, "<C>●</>{$admin['year']}{$admin['month']}월:<D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>{$josaUl} 자칭");
$db->update('nation', ['can_change_flag'=>1], 'nation=%i', $nation['nation']);
break;
case 6:
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<Y><b>【작위】</b></><D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>에 등극하였습니다.";
@@ -1316,6 +1317,7 @@ function convForOldGeneral(array $general, int $year, int $month){
function storeOldGeneral(int $no, int $year, int $month){
$db = DB::db();
$general = $db->queryFirstRow('SELECT * FROM general WHERE `no` = %i', $no);
$general['aux'] = Json::decode($general['aux']);
if(!$general){
return;
}
+22 -76
View File
@@ -58,12 +58,10 @@ class AIAllowedAction{
$this->recruit_high = true;
case 'recruit':
$this->recruit = true;
$this->changeWarCondition = true;
break;
case 'train':
$this->train = true;
$this->atmos = true;
$this->changeWarCondition = true;
break;
case 'battle':
$this->battle = true;
@@ -162,17 +160,15 @@ function SetCrew($no, $nationID, $personal, $gold, $leader, $genType, $tech, $de
$cities = [];
$regions = [];
foreach(CityConst::all() as $city){
$cities[$city->id] = 1;
$regions[$city->region] = 1;
foreach($db->queryAllLists('SELECT city, region FROM city WHERE nation = %i', $nationID) as [$cityID, $regionID]){
$cities[$cityID] = true;
$regions[$regionID] = true;
}
$gameStor = KVStorage::getStorage($db, 'game_env');
[$startyear, $year] = $gameStor->getValuesAsArray(['startyear', 'year']);
$relYear = Util::valueFit($year-$startyear, 0);
$chosenCrewType = null;
$maxCost = 0;
switch($genType) {
case 0: //무장
case 2: //무내정장
@@ -195,52 +191,28 @@ function SetCrew($no, $nationID, $personal, $gold, $leader, $genType, $tech, $de
}
}
$types = [];
switch($sel) {
case 0:
foreach(GameUnitConst::byType(GameUnitConst::T_FOOTMAN) as $crewtype){
if(!$crewtype->isValid($cities, $regions, $relYear, $tech)){
continue;
}
if($chosenCrewType === null){
$chosenCrewType = $crewtype->id;
$maxCost = $crewtype->cost;
}
if($maxCost < $crewtype->cost){
$chosenCrewType = $crewtype->id;
$maxCost = $crewtype->cost;
if($crewtype->isValid($cities, $regions, $relYear, $tech)){
$types[] = $crewtype->id;
}
}
break;
case 1:
foreach(GameUnitConst::byType(GameUnitConst::T_ARCHER) as $crewtype){
if(!$crewtype->isValid($cities, $regions, $relYear, $tech)){
continue;
}
if($chosenCrewType === null){
$chosenCrewType = $crewtype->id;
$maxCost = $crewtype->cost;
}
if($maxCost < $crewtype->cost){
$chosenCrewType = $crewtype->id;
$maxCost = $crewtype->cost;
if($crewtype->isValid($cities, $regions, $relYear, $tech)){
$types[] = $crewtype->id;
}
}
break;
case 2:
foreach(GameUnitConst::byType(GameUnitConst::T_CAVALRY) as $crewtype){
if(!$crewtype->isValid($cities, $regions, $relYear, $tech)){
continue;
}
if($chosenCrewType === null){
$chosenCrewType = $crewtype->id;
$maxCost = $crewtype->cost;
}
if($maxCost < $crewtype->cost){
$chosenCrewType = $crewtype->id;
$maxCost = $crewtype->cost;
if($crewtype->isValid($cities, $regions, $relYear, $tech)){
$types[] = $crewtype->id;
}
}
break;
@@ -249,28 +221,19 @@ function SetCrew($no, $nationID, $personal, $gold, $leader, $genType, $tech, $de
case 1: //지장
case 3: //지내정장
foreach(GameUnitConst::byType(GameUnitConst::T_WIZARD) as $crewtype){
if(!$crewtype->isValid($cities, $regions, $relYear, $tech)){
continue;
}
if($chosenCrewType === null){
$chosenCrewType = $crewtype->id;
$maxCost = $crewtype->cost;
}
if($maxCost < $crewtype->cost){
$chosenCrewType = $crewtype->id;
$maxCost = $crewtype->cost;
if($crewtype->isValid($cities, $regions, $relYear, $tech)){
$types[] = $crewtype->id;
}
}
break;
}
if($chosenCrewType){
if(!$allowedAction->randomRecruit && $currentCrewType != GameUnitConst::DEFAULT_CREWTYPE){
if($types){
if(!$allowedAction->randomRecruit && in_array($currentCrewType, $types) && ($currentCrewType != GameUnitConst::DEFAULT_CREWTYPE && $currentCrewType != $types[0])){
$type = $currentCrewType;
}
else{
$type = $chosenCrewType;
$type = Util::choiceRandom($types);
}
}
@@ -289,10 +252,10 @@ function SetCrew($no, $nationID, $personal, $gold, $leader, $genType, $tech, $de
if($leader < $crew) { $crew = $leader; }
if($allowedAction->recruit_high && $crew * $cost * 6 < $gold){
$command = EncodeCommand(0, $type, $crew, 19);
$command = EncodeCommand(0, $type, $crew, 12);
}
else{
$command = EncodeCommand(0, $type, $crew, 18);
$command = EncodeCommand(0, $type, $crew, 11);
}
$query = "update general set turn0='$command' where no='$no'";
@@ -492,18 +455,9 @@ function processAI($no, &$reduce_turn) {
$tech = getTechCost($nation['tech']);
$resrc = $tech * 700;//XXX: 왜 700이지?
if($allowedAction->changeWarCondition){
if($general['atmos'] >= 90 && $general['train'] >= 90) {
if($general['mode'] == 0) {
$query = "update general set mode=1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error("processAI05 ".MYDB_error($connect),"");
}
} else {
if($general['mode'] == 1) {
$query = "update general set mode=0 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error("processAI05 ".MYDB_error($connect),"");
}
}
if($allowedAction->changeWarCondition && $general['mode'] != 2){
$query = "update general set mode=2 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error("processAI05 ".MYDB_error($connect),"");
}
@@ -987,16 +941,8 @@ function processAI($no, &$reduce_turn) {
}
}
} elseif($general['crew'] >= 1000 && $general['train'] < 90 && $allowedAction->train) {
if($general['atmos'] >= 90 && $general['train'] >= 60 && $general['mode'] == 0) {
$query = "update general set mode=1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error("processAI05 ".MYDB_error($connect),"");
}
$command = EncodeCommand(0, 0, 0, 13); //훈련
} elseif($general['crew'] >= 1000 && $general['atmos'] < 90 && $allowedAction->atmos) {
if($general['atmos'] >= 60 && $general['train'] >= 90 && $general['mode'] == 0) {
$query = "update general set mode=1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error("processAI05 ".MYDB_error($connect),"");
}
$command = EncodeCommand(0, 0, 0, 14); //사기진작
} elseif($dipState <= 3) {
$command = EncodeCommand(0, 0, 0, (rand()%2)*8 + 1); // 준비는 됐으나 아직 선포중이면 내정, 조달
+18 -188
View File
@@ -1077,188 +1077,6 @@ function process_11(&$general, $type) {
$actLog->pushGeneralActionLog($log, ActionLogger::RAWTEXT);
}
function process_18(&$general, $type) {
if($type == 1){
$type = '무작위 징병';
}
else{
$type = '무작위 모병';
}
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$date = substr($general['turntime'],11,5);
if($type === '무작위 징병') {
$defaultatmos = GameConst::$defaultAtmosLow;
$defaulttrain = GameConst::$defaultTrainLow;
}
else {
$defaultatmos = GameConst::$defaultAtmosHigh;
$defaulttrain = GameConst::$defaultTrainHigh;
}
[$startyear, $year, $month] = $gameStor->getValuesAsArray(['startyear', 'year', 'month']);
$actLog = new ActionLogger($general['no'], $general['nation'], $year, $month);
$command = DecodeCommand($general['turn0']);
$crewType = $command[2];
$rawCrew = $command[1];
$ownCities = [];
$ownRegions = [];
[$year, $startyear] = $gameStor->getValuesAsArray(['year','startyear']);
$relativeYear = $year - $startyear;
foreach(CityConst::all() as $city){
$ownCities[$city->id] = 1;
$ownRegions[$city->region] = 1;
}
$srcCrewType = GameUnitConst::byID($general['crewtype']);
$dstCrewType = GameUnitConst::byID($crewType);
if($dstCrewType === null){
$actLog->pushGeneralActionLog("병종 코드 에러. $type 실패. <1>$date</>");
return;
}
if($srcCrewType->armType != $dstCrewType->armType){
$general['crew'] = 0;
$general['train'] = $defaulttrain;
$general['atmos'] = $defaultatmos;
}
if($general['crew'] != 0) {
$dtype = "추가".$type;
}
else {
$dtype = $type;
}
if(!$general['nation']){
$actLog->pushGeneralActionLog("재야입니다. $dtype 실패. <1>$date</>");
return;
}
$city = $db->queryFirstRow('SELECT * FROM city WHERE city = %i', $general['city']);
if($city['nation'] != $general['nation']){
$actLog->pushGeneralActionLog("아국이 아닙니다. $dtype 실패. <1>$date</>");
return;
}
[$nationLevel, $tech] = $db->queryFirstList('SELECT `level`,tech FROM nation WHERE nation=%i', $general['nation']);
$candidateList = [];
foreach(GameUnitConst::byType($dstCrewType->armType) as $crewTypeCandidate){
if(!$crewTypeCandidate->isValid($ownCities, $ownRegions, $relativeYear, $tech)){
continue;
}
$candidateList[$crewTypeCandidate->id] = $crewTypeCandidate->reqTech + 1000;
}
$crewTypeObj = GameUnitConst::byID(Util::choiceRandomUsingWeight($candidateList));
$lbonus = setLeadershipBonus($general, $nationLevel);
//NOTE: 입력 변수는 100명 단위임
$crew = $rawCrew * 100;
if($crew + $general['crew'] > getGeneralLeadership($general, true, true, true)*100) {
$crew = max(0, getGeneralLeadership($general, true, true, true) * 100 - $general['crew']);
}
if($crew <= 0) {
$actLog->pushGeneralActionLog("더이상 $dtype 할 수 없습니다. $dtype 실패. <1>$date</>");
return;
}
$cost = $crewTypeObj->costWithTech($tech, $crew);
if($type === '무작위 모병') {
$cost *= 2;
}
//성격 보정
$cost = Util::round(CharCost($cost, $general['personal']));
//특기 보정 : 징병, 보병, 궁병, 기병, 귀병, 공성
if($general['special2'] == 72) { $cost *= 0.5; }
else if($general['special2'] == 50 && $crewTypeObj->armType == GameUnitConstBase::T_FOOTMAN) { $cost *= 0.9; }
else if($general['special2'] == 51 && $crewTypeObj->armType == GameUnitConstBase::T_ARCHER) { $cost *= 0.9; }
else if($general['special2'] == 52 && $crewTypeObj->armType == GameUnitConstBase::T_CAVALRY) { $cost *= 0.9; }
else if($general['special2'] == 40 && $crewTypeObj->armType == GameUnitConstBase::T_WIZARD) { $cost *= 0.9; }
else if($general['special2'] == 53 && $crewTypeObj->armType == GameUnitConstBase::T_SIEGE) { $cost *= 0.9; }
if($general['gold'] < $cost){
$actLog->pushGeneralActionLog("자금이 모자랍니다. $dtype 실패. <1>$date</>");
return;
}
if($general['rice'] < $crew / 100) {
$actLog->pushGeneralActionLog("군량이 모자랍니다. $dtype 실패. <1>$date</>");
return;
}
if($city['pop']-30000 < $crew) { // 주민 30000명 이상만 가능
$actLog->pushGeneralActionLog("주민이 모자랍니다. $dtype 실패. <1>$date</>");
return;
}
if($city['rate'] < 20) {
$actLog->pushGeneralActionLog("민심이 낮아 주민들이 도망갑니다. $dtype 실패. <1>$date</>");
return;
}
$josaUl = JosaUtil::pick($crewTypeObj->name, '을');
$actLog->pushGeneralActionLog($crewTypeObj->name."{$josaUl} <C>{$crew}</>명 {$dtype}했습니다. <1>$date</>");
$exp = Util::round($crew / 100);
$ded = Util::round($crew / 100);
// 숙련도 증가
addGenDex($general['no'], GameConst::$maxAtmosByCommand, GameConst::$maxTrainByCommand, $crewType, $crew/100);
// 성격 보정
$exp = CharExperience($exp, $general['personal']);
$ded = CharDedication($ded, $general['personal']);
$atmos = Util::round(($general['atmos'] * $general['crew'] + $defaultatmos * $crew) / ($general['crew'] + $crew));
$train = Util::round(($general['train'] * $general['crew'] + $defaulttrain * $crew) / ($general['crew'] + $crew));
$general['crew'] += $crew;
$general['gold'] -= $cost;
// 주민수 감소 // 민심 감소
if($type === '무작위 징병') {
$city['rate'] -= Util::round(($crew / $city['pop'])*100);
}
else {
$city['rate'] -= Util::round(($crew / 2 / $city['pop'])*100);
}
if($city['rate'] < 0) { $city['rate'] = 0; }
$db->update('city', [
'pop'=>$db->sqleval('pop-%i', $crew),
'rate'=>$city['rate']
], 'city = %i', $general['city']);
// 통솔경험, 병종 변경, 병사수 변경, 훈련치 변경, 사기치 변경, 자금 군량 하락, 공헌도, 명성 상승
$general['leader2']++;
$db->update('general', [
'resturn'=>'SUCCESS',
'leader2'=>$general['leader2'],
'crewtype'=>$crewTypeObj->id,
'crew'=>$general['crew'],
'train'=>$train,
'atmos'=>$atmos,
'gold'=>$general['gold'],
'rice'=>$db->sqleval('rice - %i', Util::round($crew/100)),
'dedication'=>$db->sqleval('dedication + %i', $ded),
'experience'=>$db->sqleval('experience + %i', $exp)
], 'no=%i', $general['no']);
checkAbilityEx($general['no'], $actLog);
$log = uniqueItem($general, []);//TODO: uniqueItem 재 구현
$actLog->pushGeneralActionLog($log, ActionLogger::RAWTEXT);
}
function process_13(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
@@ -2050,15 +1868,21 @@ function process_38(&$general, string $specName, string $specTypeKey, string $sp
$admin = $gameStor->getValues(['year', 'month']);
if($general['term']%100 == 15) {
$genAux = Json::decode($general['aux']);
if($general['term']%100 == 38) {
$term = intdiv($general['term'], 100) + 1;
$code = $term * 100 + 15;
$code = $term * 100 + 38;
} else {
$term = 1;
$code = 100 + 15;
$code = 100 + 38;
}
if(!$general[$specTypeKey]) {
if($genAux['used_38_'.$specTypeKey]??0){
$log[] = "<C>●</>{$admin['month']}월:이미 {$specName}을 초기화했습니다. {$specName} 초기화 실패. <1>$date</>";
}
else if(!$general[$specTypeKey]) {
$log[] = "<C>●</>{$admin['month']}월:{$specName}를 갖고 있지 않습니다. {$specName} 초기화 실패. <1>$date</>";
} elseif($term < 3) {
$log[] = "<C>●</>{$admin['month']}월:새로운 적성을 찾는 중... ({$term}/3) <1>$date</>";
@@ -2067,9 +1891,15 @@ function process_38(&$general, string $specName, string $specTypeKey, string $sp
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
} else {
$genAux['used_38_'.$specTypeKey] = 1;
$general[$specAgeKey]=20;
$query = "update general set resturn='SUCCESS',term='0',$specTypeKey=0,$specAgeKey=age+1 where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$db->update('general', [
'resturn'=>'SUCCESS',
'term'=>0,
$specTypeKey=>0,
$specAgeKey=>$db->sqleval('age+1'),
'aux'=>Json::encode($genAux)
], 'no = %i', $general['no']);
$log[] = "<C>●</>{$admin['month']}월:새로운 {$specName}를 가질 준비가 되었습니다. <1>$date</>";
}
+97 -18
View File
@@ -1074,7 +1074,7 @@ function process_67(&$general) {
$command = DecodeCommand($nation["l{$general['level']}turn0"]);
$which = $command[1];
$query = "select city,name,nation,level,front from city where city='$which'";
$query = "select city,name,nation,level from city where city='$which'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$destcity = MYDB_fetch_array($result);
@@ -1089,11 +1089,10 @@ function process_67(&$general) {
$code = 100 + 67;
}
if($destcity['nation'] != $general['nation']){
$log[] = "<C>●</>{$admin['month']}월:아군 도시가 아닙니다. 증축 실패. <1>$date</>";
}
else if($nation['capital'] != $destcity['city'] && $destcity['front'] == 1) {
$log[] = "<C>●</>{$admin['month']}월:접경 도시 증축은 수도만 가능합니다. 증축 실패. <1>$date</>";
if($nation['capital'] != $general['city']) {
$log[] = "<C>●</>{$admin['month']}월:수도에서 실행해야 합니다. 증축 실패. <1>$date</>";
} elseif($nation['capital'] != $destcity['city']) {
$log[] = "<C>●</>{$admin['month']}월:수도만 가능합니다. 증축 실패. <1>$date</>";
} elseif($destcity['level'] <= 3) {
$log[] = "<C>●</>{$admin['month']}월:수진, 진, 관문은 불가능합니다. 증축 실패. <1>$date</>";
} elseif($destcity['level'] >= 8) {
@@ -1104,8 +1103,8 @@ function process_67(&$general) {
$log[] = "<C>●</>{$admin['month']}월:다음 분기에 가능합니다. 증축 실패. <1>$date</>";
} elseif($nation['gold']-GameConst::$basegold < $amount || $nation['rice']-GameConst::$baserice < $amount) {
$log[] = "<C>●</>{$admin['month']}월:물자가 부족합니다. 증축 실패. <1>$date</>";
} elseif($term < 3) {
$log[] = "<C>●</>{$admin['month']}월:증축중... ({$term}/3) <1>$date</>";
} elseif($term < 6) {
$log[] = "<C>●</>{$admin['month']}월:증축중... ({$term}/6) <1>$date</>";
$query = "update nation set l{$general['level']}term={$code} where nation='{$general['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -1131,7 +1130,7 @@ function process_67(&$general) {
$query = "update nation set l{$general['level']}term='0',capset='1',gold=gold-'$amount',rice=rice-'$amount' where nation='{$general['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//증축
//수도 증축
$db->update('city', [
'upgrading'=>$db->sqleval('upgrading+1'),
'level'=>$db->sqleval('level+1'),
@@ -1166,7 +1165,7 @@ function process_68(&$general) {
$admin = $gameStor->getValues(['year','month','develcost']);
$query = "select nation,supply,front from city where city='{$general['city']}'";
$query = "select nation,supply from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$city = MYDB_fetch_array($result);
@@ -1191,12 +1190,12 @@ function process_68(&$general) {
$term = 1;
$code = 100 + 68;
}
if($destcity['nation'] != $general['nation']){
$log[] = "<C>●</>{$admin['month']}월:아군 도시가 아닙니다. 감축 실패. <1>$date</>";
}
else if($nation['capital'] != $destcity['city'] && $destcity['front'] == 1) {
$log[] = "<C>●</>{$admin['month']}월:접경 도시 감축은 수도만 가능합니다. 감축 실패. <1>$date</>";
} elseif($destcity['level'] == 5) {
if($nation['capital'] != $general['city']) {
$log[] = "<C>●</>{$admin['month']}월:수도에서 실행해야 합니다. 감축 실패. <1>$date</>";
} elseif($nation['capital'] != $destcity['city']) {
$log[] = "<C>●</>{$admin['month']}월:수도만 가능합니다. 감축 실패. <1>$date</>";
} elseif($destcity['upgrading'] <= 0) {
$log[] = "<C>●</>{$admin['month']}월:증축된 도시가 아닙니다. 감축 실패. <1>$date</>";
} elseif($destcity['level'] <= 4) {
$log[] = "<C>●</>{$admin['month']}월:수, 진, 관문, 이성은 불가능합니다. 감축 실패. <1>$date</>";
@@ -1204,8 +1203,8 @@ function process_68(&$general) {
$log[] = "<C>●</>{$admin['month']}월:수뇌부가 아닙니다. 감축 실패. <1>$date</>";
} elseif($nation['capset'] == 1) {
$log[] = "<C>●</>{$admin['month']}월:다음 분기에 가능합니다. 감축 실패. <1>$date</>";
} elseif($term < 3) {
$log[] = "<C>●</>{$admin['month']}월:감축중... ({$term}/3) <1>$date</>";
} elseif($term < 6) {
$log[] = "<C>●</>{$admin['month']}월:감축중... ({$term}/6) <1>$date</>";
$query = "update nation set l{$general['level']}term={$code} where nation='{$general['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -2478,3 +2477,83 @@ function process_81(&$general) {
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
pushGenLog($general, $log);
}
function process_82(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$log = [];
$alllog = [];
$history = [];
$date = substr($general['turntime'],11,5);
$admin = $gameStor->getValues(['year','month']);
$query = "select nation from city where city='{$general['city']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$city = MYDB_fetch_array($result);
$query = "select nation,name,type,sabotagelimit,aux from nation where nation='{$general['nation']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$nation = MYDB_fetch_array($result);
$nationAux = Json::decode($nation['aux']??'{}');
$newNationName = $general['makenation'];
$nationExists = $db->queryFirstField('SELECT nation FROM nation WHERE name = %s', $newNationName);
if($nationExists){
$log[] = "<C>●</>{$admin['month']}월:이미 같은 국호를 가진 곳이 있습니다. 국호변경 실패. <1>$date</>";
}
else if($city['nation'] != $general['nation']) {
$log[] = "<C>●</>{$admin['month']}월:아국이 아닙니다. 국호변경 실패. <1>$date</>";
} elseif($general['level'] < 5) {
$log[] = "<C>●</>{$admin['month']}월:수뇌부가 아닙니다. 국호변경 실패. <1>$date</>";
} elseif($nationAux['used_82']??0) {
$log[] = "<C>●</>{$admin['month']}월:더이상 변경이 불가능합니다. 국호변경 실패. <1>$date</>";
} else {
$josaRo = JosaUtil::pick($newNationName, '로');
$log[] = "<C>●</>{$admin['month']}월:국호를 <D><b>{$newNationName}{$josaRo}</b></> 변경합니다. <1>$date</>";
$exp = 10;
$ded = 10;
// 성격 보정
$exp = CharExperience($exp, $general['personal']);
$ded = CharDedication($ded, $general['personal']);
$josaYi = JosaUtil::pick($general['name'], '이');
$josaYiNation = JosaUtil::pick($nation['name'], '이');
$query = "select no,name from general where nation='{$general['nation']}' and no!='{$general['no']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$cnt = MYDB_num_rows($result);
$genlog = ["<C>●</><Y>{$general['name']}</>{$josaYi} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다."];
for($i=0; $i < $cnt; $i++) {
$gen = MYDB_fetch_array($result);
pushGenLog($gen, $genlog);
}
$alllog[] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다.";
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<L><b>【국호변경】</b></><D><b>{$nation['name']}</b></>{$josaYiNation} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다.";
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경");
pushNationHistory($nation, "<C>●</>{$admin['year']}{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경");
$nationAux['used_82'] = 1;
//국기변경
$db->update('nation', [
'name'=>$newNationName,
'aux'=>Json::encode($nationAux)
], 'nation=%i', $nation['nation']);
//경험치, 공헌치
$query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
refreshNationStaticInfo();
}
pushWorldHistory($history, $admin['year'], $admin['month']);
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
pushGenLog($general, $log);
}
+1
View File
@@ -124,6 +124,7 @@ switch($commandtype) {
// case 78: command_78($turn, 78); break; //급습
// case 81: command_81($turn, 81); break; //국기변경
// case 82: command_82($turn, 82); break; //국호변경
// case 99: command_99($turn); break; //수뇌부 후식
default: command_Other($turn, $commandtype); break;
File diff suppressed because one or more lines are too long
+34 -151
View File
@@ -60,9 +60,6 @@ switch($commandtype) {
case 16: command_16( $turn, 16); break; //전쟁
case 17: command_Single($turn, 17); break; //소집해제
case 18: command_18( $turn, 18, false); break; //무작위 징병
case 19: command_18( $turn, 19, true); break; //무작위 모병
case 21: command_21( $turn, 21); break; //이동
case 22: command_22( $turn, 22); break; //등용 //TODO:등용장 재 디자인
case 23: command_23( $turn, 23); break; //포상
@@ -120,6 +117,7 @@ switch($commandtype) {
case 77: command_77($turn, 77); break; //이호경식
case 78: command_78($turn, 78); break; //급습
case 81: command_81($turn, 81); break; //국기변경
case 82: command_82($turn, 82); break; //국호변경
case 99: command_99($turn); break; //수뇌부 휴식
default:command_Single($turn, 0); break; //휴식
@@ -428,154 +426,6 @@ function command_16($turn, $command) {
ender();
}
function command_18($turn, $command, bool $is모병 = false) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$userID = Session::getUserID();
$me = $db->queryFirstRow(
'SELECT no,nation,level,personal,special2,level,city,crew,horse,injury,leader,crewtype,gold
from general where owner=%i',
$userID
);
[$nationLevel, $tech] = $db->queryFirstList('SELECT level,tech FROM nation WHERE nation=%i', $me['nation']);
if(!$nationLevel){
$nationLevel = 0;
}
if(!$tech){
$tech = 0;
}
$lbonus = setLeadershipBonus($me, $nationLevel);
$ownCities = [];
$ownRegions = [];
[$year, $startyear] = $gameStor->getValuesAsArray(['year','startyear']);
$relativeYear = $year - $startyear;
foreach(CityConst::all() as $city){
$ownCities[$city->id] = 1;
$ownRegions[$city->region] = 1;
}
$leader = getGeneralLeadership($me, true, true, true);
$fullLeader = getGeneralLeadership($me, false, true, true);
$abil = getTechAbil($tech);
$armTypes = [];
foreach(GameUnitConst::allType() as $armType => $armName){
$armTypeCrews = [];
foreach(GameUnitConst::byType($armType) as $unit){
$crewObj = new \stdClass;
$crewObj->showDefault = 'true';
$crewObj->id = $unit->id;
if($unit->reqTech == 0){
$crewObj->bgcolor = 'green';
}
else{
$crewObj->bgcolor = 'limegreen';
}
if(!$unit->isValid($ownCities, $ownRegions, $relativeYear, $tech)){
continue;
}
$crewObj->baseRice = $unit->rice * getTechCost($tech);
$crewObj->baseCost = CharCost($unit->costWithTech($tech), $me['personal']);
$armType = $unit->armType;
if($me['special2'] == 50 && $armType == GameUnitConst::T_FOOTMAN){
$crewObj->baseCost *= 0.9;
}
else if($me['special2'] == 51 && $armType == GameUnitConst::T_ARCHER){
$crewObj->baseCost *= 0.9;
}
else if($me['special2'] == 52 && $armType == GameUnitConst::T_CAVALRY){
$crewObj->baseCost *= 0.9;
}
else if($me['special2'] == 53 && $armType == GameUnitConst::T_WIZARD){
$crewObj->baseCost *= 0.9;
}
else if($me['special2'] == 54 && $armType == GameUnitConst::T_SIEGE){
$crewObj->baseCost *= 0.9;
}
else if($me['special2'] == 72) {
$crewObj->baseCost *= 0.5;
}
$crewObj->name = $unit->name;
$crewObj->attack = $unit->attack + $abil;
$crewObj->defence = $unit->defence + $abil;
$crewObj->speed = $unit->speed;
$crewObj->avoid = $unit->avoid;
if($gameStor->show_img_level < 2) {
$crewObj->img = ServConfig::$sharedIconPath."/default.jpg";
}
else{
$crewObj->img = ServConfig::$gameImagePath."/weap".$unit->id.".png";
}
$crewObj->baseRiceShort = round($crewObj->baseRice, 1);
$crewObj->baseCostShort = round($crewObj->baseCost, 1);
$crewObj->info = join('<br>', $unit->info);
if(count($armTypeCrews) == 0){
$armTypeCrews[] = $crewObj;
}
else{
$compCrewObj = $armTypeCrews[0];
$compCrewObj->baseRiceShort = max($crewObj->baseRiceShort, $compCrewObj->baseRiceShort);
$compCrewObj->baseCostShort = max($crewObj->baseCostShort, $compCrewObj->baseCostShort);
$compCrewObj->baseRice = max($crewObj->baseRice, $compCrewObj->baseRice);
$compCrewObj->baseCost = max($crewObj->baseCost, $compCrewObj->baseCost);
}
}
$armTypes[] = [$armName, $armTypeCrews];
}
if($is모병){
$commandName = '무작위 모병';
starter("무작위 모병");
}
else{
$commandName = '무작위 징병';
starter("무작위 징병");
}
$templates = new \League\Plates\Engine('templates');
echo $templates->render('recruitCrewForm_rand', [
'command'=>$command,
'commandName'=>$commandName,
'techLevelText'=>getTechCall($tech),
'tech'=>$tech,
'leader'=>$leader,
'fullLeader'=>$fullLeader,
'crewType'=>GameUnitConst::byId($me['crewtype'])->id,
'crewTypeName'=>GameUnitConst::byId($me['crewtype'])->name,
'crew'=>$me['crew'],
'gold'=>$me['gold'],
'turn'=>$turn,
'armTypes'=>$armTypes,
]);
ender();
}
function command_21($turn, $command) {
$db = DB::db();
$connect=$db->get();
@@ -2771,3 +2621,36 @@ function command_81($turn, $command) {
";
ender(1);
}
function command_82($turn, $command) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
$userID = Session::getUserID();
$nationID = $db->queryFirstField('SELECT nation FROM general WHERE owner = %i', $userID);
$nation = $db->queryFirstRow('SELECT level,aux FROM nation WHERE nation = %i', $nationID);
$nationAux = Json::decode($nation['aux']??'{}');
starter("국호변경");
if($nation && $nation['level'] == 7 && !($nationAux['used_82']??0)){
?>
나라의 이름을 바꿉니다. 황제가 된 후 1회 가능합니다.<br>
<form name=form1 action=c_double.php method=post>
국명 : <input type=text name=name size=18 maxlength=9 style=text-align:right;color:white;background-color:black>
<input type=submit value='국호 변경'>
<input type=hidden name=command value=<?=$command?>>
<?php
for($i=0; $i < count($turn); $i++) {
echo "<input type=hidden name=turn[] value=$turn[$i]>";
}
echo "</form>";
} else {
echo "국호 변경이 불가능합니다.<br>";
}
ender();
}
+4 -4
View File
@@ -40,7 +40,7 @@ class CityConst extends CityConstBase{
[33, '상용', '소', 2838, 58, 56, 40, 57, 61, '서촉', 190, 220, ['한중', '신야']],
[34, '초', '소', 3286, 60, 62, 40, 62, 57, '중원', 375, 225, ['허창', '진류', '패', '수춘', '여남']],
[35, '운남', '소', 3258, 62, 60, 40, 64, 61, '남중', 45, 405, ['월수', '건녕', '남만']],
[36, '', '소', 3256, 60, 62, 40, 57, 60, '오월', 450, 470, ['산월', '회계', '왜']],
[36, '', '소', 3256, 60, 62, 40, 57, 60, '오월', 450, 470, ['산월', '회계', '왜']],
[37, '하동', '소', 3208, 60, 60, 40, 62, 55, '서북', 240, 140, ['흉노', '진양', '하내', '홍농']],
[38, '무릉', '소', 3196, 58, 63, 40, 63, 58, '초', 195, 352, ['강릉', '장사', '영릉']],
[39, '교지', '소', 3195, 58, 59, 40, 58, 59, '남중', 136, 480, ['남만', '남해']],
@@ -53,7 +53,7 @@ class CityConst extends CityConstBase{
[46, '강하', '소', 3074, 55, 56, 40, 57, 60, '초', 320, 299, ['양양', '적벽', '여강']],
[47, '진양', '소', 3074, 56, 59, 40, 64, 59, '하북', 310, 75, ['흉노', '하동', '하내', '거록', '계']],
[48, '평원', '소', 3074, 62, 65, 40, 61, 63, '하북', 445, 110, ['남피', '제남', '북해']],
[49, '회계', '소', 3005, 64, 59, 40, 62, 64, '오월', 485, 390, ['오', '건안', '']],
[49, '회계', '소', 3005, 64, 59, 40, 62, 64, '오월', 485, 390, ['오', '건안', '']],
[50, '천수', '소', 2985, 59, 64, 40, 60, 58, '서북', 76, 140, ['무위', '안정', '오장원', '저']],
[51, '평양', '소', 2939, 55, 59, 40, 60, 58, '동이', 606, 97, ['국내', '위례']],
[52, '요동', '소', 2937, 63, 59, 40, 59, 63, '동이', 549, 26, ['북평', '오환', '국내']],
@@ -74,10 +74,10 @@ class CityConst extends CityConstBase{
[67, '홍농', '소', 2748, 57, 63, 40, 58, 63, '서북', 220, 170, ['하동', '낙양', '장안']],
[68, '주제', '소', 2746, 58, 61, 40, 61, 58, '남중', 93, 357, ['강주', '월수', '건녕']],
[69, '남만', '이', 2378, 40, 42, 20, 43, 45, '남중', 90, 454, ['운남', '장가', '교지']],
[70, '산월', '이', 2275, 40, 37, 20, 43, 38, '오월', 373, 447, ['건안', '', '남해']],
[70, '산월', '이', 2275, 40, 37, 20, 43, 38, '오월', 373, 447, ['건안', '', '남해']],
[71, '오환', '이', 2153, 42, 37, 20, 43, 40, '동이', 628, 19, ['요동', '국내']],
[72, '강', '이', 2095, 40, 42, 20, 43, 40, '서북', 154, 70, ['무위', '안정']],
[73, '왜', '이', 2065, 39, 37, 20, 43, 41, '동이', 681, 292, ['계림', '탐라', '']],
[73, '왜', '이', 2065, 39, 37, 20, 43, 41, '동이', 681, 292, ['계림', '탐라', '']],
[74, '흉노', '이', 2064, 40, 41, 20, 40, 38, '서북', 227, 79, ['진양', '하동']],
[75, '저', '이', 1957, 40, 42, 20, 43, 42, '서북', 24, 123, ['무위', '천수', '무도']],
[76, '호로', '관', 958, 17, 19, 20, 95, 96, '중원', 317, 182, ['낙양', '진류', '허창']],
-655
View File
@@ -1,655 +0,0 @@
{
"title":"【공백지】 무주공산T",
"startYear":180,
"map":{
"mapName":"miniche_clean"
},
"history":[
],
"const": {
"expandCityDefaultCost": 30000,
"expandCityCostCoef": 250
},
"general":[
[0, "아회남", null, 0, null, 65, 74, 26, 0, 160, 300, null, null],
[0, "이적", null, 0, null, 40, 24, 84, 0, 160, 300, null, null],
[0, "윤상", null, 0, null, 51, 44, 62, 0, 160, 300, null, null],
[0, "윤묵", null, 0, null, 26, 15, 66, 0, 160, 300, null, null],
[0, "우금", null, 0, null, 85, 82, 62, 0, 160, 300, null, null],
[0, "위관", null, 0, null, 69, 46, 79, 0, 160, 300, null, null],
[0, "원윤", null, 0, null, 32, 14, 39, 0, 160, 300, null, null],
[0, "원희", null, 0, null, 66, 43, 63, 0, 160, 300, null, null],
[0, "염행", null, 0, null, 78, 90, 58, 0, 160, 300, null, null],
[0, "염유", null, 0, null, 71, 50, 71, 0, 160, 300, null, null],
[0, "원술", null, 0, null, 76, 55, 75, 0, 160, 300, null, null, "천한 것들관 상종을 하면 안돼"],
[0, "원상", null, 0, null, 63, 75, 42, 0, 160, 300, null, null],
[0, "원소", null, 0, null, 90, 62, 81, 0, 160, 300, null, null],
[0, "염상", null, 0, null, 40, 27, 71, 0, 160, 300, null, null],
[0, "원담", null, 0, null, 60, 78, 30, 0, 160, 300, null, null],
[0, "염포", null, 0, null, 40, 25, 82, 0, 160, 300, null, null],
[0, "왕위", null, 0, null, 60, 70, 48, 0, 160, 300, null, null],
[0, "왕윤", null, 0, null, 26, 6, 68, 0, 160, 300, null, null],
[0, "왕항", null, 0, null, 76, 43, 61, 0, 160, 300, null, null],
[0, "왕찬", null, 0, null, 15, 3, 79, 0, 160, 300, null, null],
[0, "왕수", null, 0, null, 54, 27, 77, 0, 160, 300, null, null],
[0, "왕숙", null, 0, null, 36, 22, 76, 0, 160, 300, null, null],
[0, "왕준", null, 0, null, 85, 64, 84, 0, 160, 300, null, null],
[0, "왕쌍", null, 0, null, 67, 88, 19, 0, 160, 300, null, null],
[0, "왕창", null, 0, null, 74, 57, 79, 0, 160, 300, null, null],
[0, "왕평", null, 0, null, 88, 81, 61, 0, 160, 300, null, null],
[0, "왕보", null, 0, null, 62, 41, 79, 0, 160, 300, null, null],
[0, "왕문", null, 0, null, 65, 64, 31, 0, 160, 300, null, null],
[0, "왕릉", null, 0, null, 74, 50, 71, 0, 160, 300, null, null],
[0, "왕루", null, 0, null, 28, 30, 79, 0, 160, 300, null, null],
[0, "왕랑", null, 0, null, 47, 35, 79, 0, 160, 300, null, null],
[0, "온회", null, 0, null, 62, 36, 74, 0, 160, 300, null, null],
[0, "하안", null, 0, null, 15, 30, 72, 0, 160, 300, null, null],
[0, "괴월", null, 0, null, 50, 38, 85, 0, 160, 300, null, null],
[0, "괴량", null, 0, null, 68, 33, 88, 0, 160, 300, null, null],
[0, "가화", null, 0, null, 49, 65, 41, 0, 160, 300, null, null],
[0, "가규", null, 0, null, 78, 61, 84, 0, 160, 300, null, null],
[0, "하의", null, 0, null, 56, 69, 36, 0, 160, 300, null, null],
[0, "화흠", null, 0, null, 51, 33, 88, 0, 160, 300, null, null],
[0, "가후", null, 0, null, 71, 40, 98, 0, 160, 300, null, null, "이기기 위한 전략만 내드리겠습니다"],
[0, "곽가", null, 0, null, 70, 41, 97, 0, 160, 300, null, null, "조공을 위한 명이 조금만 더 남았다면..."],
[0, "악환", null, 0, null, 65, 80, 42, 0, 160, 300, null, null],
[0, "곽사", null, 0, null, 64, 76, 13, 0, 160, 300, null, null],
[0, "악취", null, 0, null, 53, 66, 61, 0, 160, 300, null, null],
[0, "곽준", null, 0, null, 73, 52, 73, 0, 160, 300, null, null],
[0, "학소", null, 0, null, 88, 63, 83, 0, 160, 300, null, null],
[0, "악진", null, 0, null, 80, 85, 56, 0, 160, 300, null, null],
[0, "곽도", null, 0, null, 62, 50, 82, 0, 160, 300, null, null],
[0, "학맹", null, 0, null, 62, 67, 42, 0, 160, 300, null, null],
[0, "곽유지", null, 0, null, 28, 9, 69, 0, 160, 300, null, null],
[0, "곽익", null, 0, null, 73, 69, 69, 0, 160, 300, null, null],
[0, "곽회", null, 0, null, 90, 66, 85, 0, 160, 300, null, null],
[0, "하후위", null, 0, null, 71, 73, 49, 0, 160, 300, null, null],
[0, "하후연", null, 0, null, 95, 92, 72, 0, 160, 300, null, null, "궁술로 날 당해낼 자가 있을까?"],
[0, "하후은", null, 0, null, 63, 72, 53, 0, 160, 300, null, null],
[0, "하후화", null, 0, null, 48, 51, 71, 0, 160, 300, null, null],
[0, "하후혜", null, 0, null, 50, 44, 76, 0, 160, 300, null, null],
[0, "하후현", null, 0, null, 54, 39, 76, 0, 160, 300, null, null],
[0, "하후상", null, 0, null, 79, 55, 75, 0, 160, 300, null, null],
[0, "하후덕", null, 0, null, 69, 73, 32, 0, 160, 300, null, null],
[0, "하후돈", null, 0, null, 91, 88, 68, 0, 160, 300, null, null],
[0, "하후패", null, 0, null, 79, 85, 63, 0, 160, 300, null, null],
[0, "하후무", null, 0, null, 20, 7, 4, 0, 160, 300, null, null],
[0, "가충", null, 0, null, 54, 31, 89, 0, 160, 300, null, null],
[0, "하진", null, 0, null, 68, 54, 75, 0, 160, 300, null, null],
[0, "화웅", null, 0, null, 78, 90, 55, 0, 160, 300, null, null],
[0, "한윤", null, 0, null, 26, 29, 65, 0, 160, 300, null, null],
[0, "관우", null, 0, null, 96, 99, 76, 0, 160, 300, null, null, "차가 식기 전에 적장의 목을 베어 오겠소!"],
[0, "환계", null, 0, null, 25, 26, 68, 0, 160, 300, null, null],
[0, "관해", null, 0, null, 70, 82, 10, 0, 160, 300, null, null],
[0, "관구검", null, 0, null, 84, 86, 62, 0, 160, 300, null, null],
[0, "한현", null, 0, null, 22, 33, 7, 0, 160, 300, null, null],
[0, "한호", null, 0, null, 73, 61, 84, 0, 160, 300, null, null],
[0, "관흥", null, 0, null, 76, 84, 62, 0, 160, 300, null, null],
[0, "관색", null, 0, null, 74, 83, 56, 0, 160, 300, null, null],
[0, "한수", null, 0, null, 78, 58, 79, 0, 160, 300, null, null],
[0, "한숭", null, 0, null, 25, 15, 71, 0, 160, 300, null, null],
[0, "관정", null, 0, null, 36, 52, 73, 0, 160, 300, null, null],
[0, "한섬", null, 0, null, 69, 66, 36, 0, 160, 300, null, null],
[0, "감택", null, 0, null, 51, 49, 83, 0, 160, 300, null, null],
[0, "한충", null, 0, null, 64, 67, 18, 0, 160, 300, null, null],
[0, "한당", null, 0, null, 76, 85, 61, 0, 160, 300, null, null],
[0, "한덕", null, 0, null, 63, 76, 25, 0, 160, 300, null, null],
[0, "감녕", null, 0, null, 92, 95, 74, 0, 160, 300, null, null],
[0, "한복", null, 0, null, 28, 3, 27, 0, 160, 300, null, null],
[0, "관평", null, 0, null, 78, 82, 60, 0, 160, 300, null, null],
[0, "간옹", null, 0, null, 20, 32, 75, 0, 160, 300, null, null],
[0, "안량", null, 0, null, 88, 96, 43, 0, 160, 300, null, null],
[0, "위연", null, 0, null, 91, 90, 70, 0, 160, 300, null, null],
[0, "국의", null, 0, null, 84, 78, 51, 0, 160, 300, null, null],
[0, "희지재", null, 0, null, 63, 35, 91, 0, 160, 300, null, null],
[0, "위속", null, 0, null, 67, 78, 31, 0, 160, 300, null, null],
[0, "위유", null, 0, null, 46, 29, 74, 0, 160, 300, null, null],
[0, "우금2", null, 0, null, 72, 79, 38, 0, 160, 300, null, null],
[0, "우보", null, 0, null, 38, 60, 21, 0, 160, 300, null, null],
[0, "강유", null, 0, null, 92, 72, 93, 0, 160, 300, null, null],
[0, "공지", null, 0, null, 43, 53, 62, 0, 160, 300, null, null],
[0, "교유", null, 0, null, 64, 69, 38, 0, 160, 300, null, null],
[0, "공도", null, 0, null, 59, 70, 23, 0, 160, 300, null, null],
[0, "허공", null, 0, null, 44, 66, 64, 0, 160, 300, null, null],
[0, "허정", null, 0, null, 23, 5, 68, 0, 160, 300, null, null],
[0, "허저", null, 0, null, 74, 97, 36, 0, 160, 300, null, null],
[0, "허유", null, 0, null, 36, 21, 80, 0, 160, 300, null, null],
[0, "기령", null, 0, null, 85, 84, 51, 0, 160, 300, null, null],
[0, "김의", null, 0, null, 32, 38, 65, 0, 160, 300, null, null],
[0, "김배삼결", null, 0, null, 64, 76, 19, 0, 160, 300, null, null],
[0, "김선", null, 0, null, 52, 68, 13, 0, 160, 300, null, null],
[0, "우번", null, 0, null, 46, 46, 87, 0, 160, 300, null, null],
[0, "형도영", null, 0, null, 69, 79, 41, 0, 160, 300, null, null],
[0, "엄안", null, 0, null, 82, 83, 62, 0, 160, 300, null, null],
[0, "엄망", null, 0, null, 68, 71, 40, 0, 160, 300, null, null],
[0, "엄준", null, 0, null, 41, 12, 71, 0, 160, 300, null, null],
[0, "엄정", null, 0, null, 50, 55, 39, 0, 160, 300, null, null],
[0, "엄백호", null, 0, null, 67, 70, 42, 0, 160, 300, null, null],
[0, "엄여", null, 0, null, 61, 78, 44, 0, 160, 300, null, null],
[0, "오의", null, 0, null, 79, 73, 53, 0, 160, 300, null, null],
[0, "황개", null, 0, null, 80, 86, 64, 0, 160, 300, null, null],
[0, "고간", null, 0, null, 74, 56, 38, 0, 160, 300, null, null],
[0, "황권", null, 0, null, 75, 59, 88, 0, 160, 300, null, null],
[0, "고유", null, 0, null, 57, 43, 72, 0, 160, 300, null, null],
[0, "고순", null, 0, null, 87, 89, 60, 0, 160, 300, null, null],
[0, "고상", null, 0, null, 68, 68, 53, 0, 160, 300, null, null],
[0, "고승", null, 0, null, 67, 73, 41, 0, 160, 300, null, null],
[0, "후성", null, 0, null, 74, 75, 54, 0, 160, 300, null, null],
[0, "후선", null, 0, null, 63, 66, 34, 0, 160, 300, null, null],
[0, "황조", null, 0, null, 81, 66, 48, 0, 160, 300, null, null],
[0, "공손월", null, 0, null, 74, 72, 47, 0, 160, 300, null, null],
[0, "공손연", null, 0, null, 65, 70, 49, 0, 160, 300, null, null],
[0, "공손공", null, 0, null, 39, 17, 69, 0, 160, 300, null, null],
[0, "공손강", null, 0, null, 72, 66, 46, 0, 160, 300, null, null],
[0, "공손찬", null, 0, null, 86, 82, 62, 0, 160, 300, null, null],
[0, "공손속", null, 0, null, 63, 68, 46, 0, 160, 300, null, null],
[0, "공손도", null, 0, null, 67, 71, 49, 0, 160, 300, null, null],
[0, "공손범", null, 0, null, 73, 69, 49, 0, 160, 300, null, null],
[0, "황충", null, 0, null, 88, 96, 65, 0, 160, 300, null, null],
[0, "고정", null, 0, null, 55, 63, 43, 0, 160, 300, null, null],
[0, "고패", null, 0, null, 66, 48, 69, 0, 160, 300, null, null],
[0, "황보숭", null, 0, null, 91, 61, 82, 0, 160, 300, null, null],
[0, "공융", null, 0, null, 30, 5, 73, 0, 160, 300, null, null],
[0, "고람", null, 0, null, 76, 82, 60, 0, 160, 300, null, null],
[0, "오경", null, 0, null, 69, 66, 45, 0, 160, 300, null, null],
[0, "호거아", null, 0, null, 70, 82, 41, 0, 160, 300, null, null],
[0, "호진", null, 0, null, 65, 74, 12, 0, 160, 300, null, null],
[0, "올돌골", null, 0, null, 79, 86, 11, 0, 160, 300, null, null],
[0, "호반", null, 0, null, 55, 55, 59, 0, 160, 300, null, null],
[0, "오반", null, 0, null, 74, 71, 50, 0, 160, 300, null, null],
[0, "고옹", null, 0, null, 52, 18, 81, 0, 160, 300, null, null],
[0, "오란", null, 0, null, 68, 80, 35, 0, 160, 300, null, null],
[0, "채화", null, 0, null, 39, 50, 1, 0, 160, 300, null, null],
[0, "채중", null, 0, null, 40, 54, 2, 0, 160, 300, null, null],
[0, "채모", null, 0, null, 70, 55, 77, 0, 160, 300, null, null],
[0, "착융", null, 0, null, 60, 69, 38, 0, 160, 300, null, null],
[0, "사마의", null, 0, null, 99, 63, 98, 0, 160, 300, null, null],
[0, "사마염", null, 0, null, 69, 59, 77, 0, 160, 300, null, null],
[0, "사마사", null, 0, null, 84, 64, 89, 0, 160, 300, null, null],
[0, "사마소", null, 0, null, 85, 57, 88, 0, 160, 300, null, null],
[0, "사마부", null, 0, null, 70, 37, 77, 0, 160, 300, null, null],
[0, "사마랑", null, 0, null, 20, 21, 72, 0, 160, 300, null, null],
[0, "사마가", null, 0, null, 66, 84, 25, 0, 160, 300, null, null],
[0, "주흔", null, 0, null, 65, 51, 73, 0, 160, 300, null, null],
[0, "주앙", null, 0, null, 74, 65, 48, 0, 160, 300, null, null],
[0, "주지", null, 0, null, 73, 85, 41, 0, 160, 300, null, null],
[0, "주창", null, 0, null, 68, 77, 42, 0, 160, 300, null, null],
[0, "주태", null, 0, null, 84, 90, 48, 0, 160, 300, null, null],
[0, "주방", null, 0, null, 52, 41, 80, 0, 160, 300, null, null],
[0, "주유", null, 0, null, 97, 71, 97, 0, 160, 300, null, null],
[0, "주환", null, 0, null, 87, 84, 64, 0, 160, 300, null, null],
[0, "주거", null, 0, null, 77, 57, 72, 0, 160, 300, null, null],
[0, "축융", null, 0, null, 72, 75, 35, 0, 160, 300, null, null],
[0, "주준", null, 0, null, 89, 57, 76, 0, 160, 300, null, null],
[0, "주연", null, 0, null, 86, 75, 57, 0, 160, 300, null, null],
[0, "주치", null, 0, null, 71, 56, 72, 0, 160, 300, null, null],
[0, "주포", null, 0, null, 68, 73, 34, 0, 160, 300, null, null],
[0, "주령", null, 0, null, 78, 73, 53, 0, 160, 300, null, null],
[0, "순욱", null, 0, null, 78, 38, 97, 0, 160, 300, null, null],
[0, "순우경", null, 0, null, 78, 66, 29, 0, 160, 300, null, null],
[0, "순심", null, 0, null, 45, 25, 78, 0, 160, 300, null, null],
[0, "순유", null, 0, null, 80, 35, 95, 0, 160, 300, null, null],
[0, "장완", null, 0, null, 78, 34, 89, 0, 160, 300, null, null],
[0, "종회", null, 0, null, 88, 62, 93, 0, 160, 300, null, null],
[0, "장간", null, 0, null, 19, 6, 66, 0, 160, 300, null, null],
[0, "장의거", null, 0, null, 71, 41, 59, 0, 160, 300, null, null],
[0, "장흠", null, 0, null, 78, 85, 54, 0, 160, 300, null, null],
[0, "장제3", null, 0, null, 62, 43, 85, 0, 160, 300, null, null],
[0, "초주", null, 0, null, 16, 3, 67, 0, 160, 300, null, null],
[0, "초촉", null, 0, null, 65, 76, 33, 0, 160, 300, null, null],
[0, "향총", null, 0, null, 76, 56, 77, 0, 160, 300, null, null],
[0, "종요", null, 0, null, 79, 24, 90, 0, 160, 300, null, null],
[0, "향랑", null, 0, null, 28, 18, 74, 0, 160, 300, null, null],
[0, "서영", null, 0, null, 92, 80, 62, 0, 160, 300, null, null],
[0, "제갈각", null, 0, null, 72, 47, 90, 0, 160, 300, null, null],
[0, "제갈근", null, 0, null, 75, 34, 85, 0, 160, 300, null, null],
[0, "제갈균", null, 0, null, 29, 25, 52, 0, 160, 300, null, null],
[0, "제갈탄", null, 0, null, 72, 54, 76, 0, 160, 300, null, null],
[0, "제갈량", null, 0, null, 98, 43, 100, 0, 160, 300, null, null],
[0, "서황", null, 0, null, 95, 94, 74, 0, 160, 300, null, null],
[0, "서서", null, 0, null, 85, 64, 94, 0, 160, 300, null, null],
[0, "서성", null, 0, null, 86, 81, 61, 0, 160, 300, null, null],
[0, "서막", null, 0, null, 55, 32, 68, 0, 160, 300, null, null],
[0, "신의", null, 0, null, 55, 59, 60, 0, 160, 300, null, null],
[0, "신탐", null, 0, null, 56, 62, 54, 0, 160, 300, null, null],
[0, "심배", null, 0, null, 80, 60, 84, 0, 160, 300, null, null],
[0, "신비", null, 0, null, 42, 24, 79, 0, 160, 300, null, null],
[0, "신평", null, 0, null, 69, 43, 77, 0, 160, 300, null, null],
[0, "진복", null, 0, null, 31, 7, 73, 0, 160, 300, null, null],
[0, "진랑", null, 0, null, 58, 70, 35, 0, 160, 300, null, null],
[0, "휴고", null, 0, null, 63, 71, 38, 0, 160, 300, null, null],
[0, "추단", null, 0, null, 61, 64, 34, 0, 160, 300, null, null],
[0, "성의", null, 0, null, 74, 72, 41, 0, 160, 300, null, null],
[0, "성공영", null, 0, null, 73, 58, 80, 0, 160, 300, null, null],
[0, "설종", null, 0, null, 34, 16, 73, 0, 160, 300, null, null],
[0, "단경", null, 0, null, 71, 68, 43, 0, 160, 300, null, null],
[0, "전종", null, 0, null, 78, 55, 75, 0, 160, 300, null, null],
[0, "조예", null, 0, null, 72, 52, 82, 0, 160, 300, null, null],
[0, "조휴", null, 0, null, 84, 78, 58, 0, 160, 300, null, null],
[0, "송헌", null, 0, null, 68, 77, 38, 0, 160, 300, null, null],
[0, "조앙", null, 0, null, 78, 50, 69, 0, 160, 300, null, null],
[0, "조홍", null, 0, null, 80, 75, 55, 0, 160, 300, null, null],
[0, "조순", null, 0, null, 85, 83, 63, 0, 160, 300, null, null],
[0, "조창", null, 0, null, 86, 91, 59, 0, 160, 300, null, null],
[0, "조식", null, 0, null, 45, 22, 86, 0, 160, 300, null, null],
[0, "조진", null, 0, null, 88, 74, 56, 0, 160, 300, null, null],
[0, "조인", null, 0, null, 94, 90, 70, 0, 160, 300, null, null],
[0, "조성", null, 0, null, 54, 74, 38, 0, 160, 300, null, null],
[0, "조조", null, 0, null, 100, 72, 96, 0, 160, 300, null, null, "미망인이 더 매력적이란 말이야... 후후"],
[0, "조충", null, 0, null, 43, 21, 74, 0, 160, 300, null, null],
[0, "장패", null, 0, null, 78, 86, 53, 0, 160, 300, null, null],
[0, "조비", null, 0, null, 75, 64, 87, 0, 160, 300, null, null, "새로운 왕조를 열겠다..."],
[0, "조표", null, 0, null, 54, 69, 32, 0, 160, 300, null, null],
[0, "저수", null, 0, null, 86, 46, 95, 0, 160, 300, null, null],
[0, "소비", null, 0, null, 69, 45, 66, 0, 160, 300, null, null],
[0, "조무", null, 0, null, 70, 71, 50, 0, 160, 300, null, null],
[0, "손환", null, 0, null, 82, 56, 76, 0, 160, 300, null, null],
[0, "손견", null, 0, null, 94, 95, 73, 0, 160, 300, null, null],
[0, "손건", null, 0, null, 44, 33, 79, 0, 160, 300, null, null],
[0, "손권", null, 0, null, 86, 61, 81, 0, 160, 300, null, null],
[0, "손교", null, 0, null, 77, 72, 52, 0, 160, 300, null, null],
[0, "손책", null, 0, null, 93, 94, 74, 0, 160, 300, null, null],
[0, "손소", null, 0, null, 82, 79, 59, 0, 160, 300, null, null],
[0, "손정", null, 0, null, 66, 53, 73, 0, 160, 300, null, null],
[0, "손중", null, 0, null, 62, 71, 36, 0, 160, 300, null, null],
[0, "손등", null, 0, null, 62, 37, 79, 0, 160, 300, null, null],
[0, "손유", null, 0, null, 77, 70, 51, 0, 160, 300, null, null],
[0, "손익", null, 0, null, 67, 83, 27, 0, 160, 300, null, null],
[0, "손례", null, 0, null, 78, 81, 59, 0, 160, 300, null, null],
[0, "태사자", null, 0, null, 94, 94, 72, 0, 160, 300, null, null],
[0, "대래동주", null, 0, null, 51, 53, 54, 0, 160, 300, null, null],
[0, "대릉", null, 0, null, 70, 75, 39, 0, 160, 300, null, null],
[0, "타사대왕", null, 0, null, 62, 48, 70, 0, 160, 300, null, null],
[0, "담웅", null, 0, null, 58, 73, 14, 0, 160, 300, null, null],
[0, "장윤", null, 0, null, 72, 67, 42, 0, 160, 300, null, null],
[0, "조운", null, 0, null, 90, 96, 75, 0, 160, 300, null, null],
[0, "장위", null, 0, null, 74, 66, 45, 0, 160, 300, null, null],
[0, "장영", null, 0, null, 75, 74, 41, 0, 160, 300, null, null],
[0, "장연", null, 0, null, 76, 81, 57, 0, 160, 300, null, null],
[0, "장횡", null, 0, null, 59, 70, 23, 0, 160, 300, null, null],
[0, "장온", null, 0, null, 32, 10, 72, 0, 160, 300, null, null],
[0, "장개", null, 0, null, 34, 66, 8, 0, 160, 300, null, null],
[0, "장각", null, 0, null, 87, 35, 90, 0, 160, 300, null, null],
[0, "장기", null, 0, null, 74, 35, 76, 0, 160, 300, null, null],
[0, "장의", null, 0, null, 79, 55, 75, 0, 160, 300, null, null],
[0, "장훈", null, 0, null, 72, 68, 41, 0, 160, 300, null, null],
[0, "장굉", null, 0, null, 24, 22, 86, 0, 160, 300, null, null],
[0, "장합", null, 0, null, 92, 89, 69, 0, 160, 300, null, null],
[0, "조홍2", null, 0, null, 66, 72, 28, 0, 160, 300, null, null],
[0, "장제2", null, 0, null, 70, 66, 46, 0, 160, 300, null, null],
[0, "장수", null, 0, null, 80, 73, 51, 0, 160, 300, null, null],
[0, "장소", null, 0, null, 41, 13, 87, 0, 160, 300, null, null],
[0, "장송", null, 0, null, 40, 6, 85, 0, 160, 300, null, null],
[0, "장임", null, 0, null, 85, 84, 64, 0, 160, 300, null, null],
[0, "장제", null, 0, null, 67, 43, 80, 0, 160, 300, null, null],
[0, "장막", null, 0, null, 52, 53, 71, 0, 160, 300, null, null],
[0, "조범", null, 0, null, 28, 21, 32, 0, 160, 300, null, null],
[0, "장비", null, 0, null, 87, 98, 72, 0, 160, 300, null, null],
[0, "장포", null, 0, null, 78, 84, 48, 0, 160, 300, null, null],
[0, "장보", null, 0, null, 83, 60, 81, 0, 160, 300, null, null],
[0, "장만성", null, 0, null, 75, 81, 45, 0, 160, 300, null, null],
[0, "장양", null, 0, null, 72, 70, 50, 0, 160, 300, null, null],
[0, "장익", null, 0, null, 75, 55, 76, 0, 160, 300, null, null],
[0, "장료", null, 0, null, 96, 94, 74, 0, 160, 300, null, null],
[0, "장량", null, 0, null, 78, 80, 59, 0, 160, 300, null, null],
[0, "조루", null, 0, null, 70, 43, 68, 0, 160, 300, null, null],
[0, "장로", null, 0, null, 65, 42, 81, 0, 160, 300, null, null],
[0, "진횡", null, 0, null, 64, 63, 26, 0, 160, 300, null, null],
[0, "진응", null, 0, null, 62, 72, 45, 0, 160, 300, null, null],
[0, "진기", null, 0, null, 58, 65, 43, 0, 160, 300, null, null],
[0, "진궁", null, 0, null, 84, 55, 90, 0, 160, 300, null, null],
[0, "진교", null, 0, null, 61, 27, 77, 0, 160, 300, null, null],
[0, "진군", null, 0, null, 32, 14, 75, 0, 160, 300, null, null],
[0, "진규", null, 0, null, 30, 4, 82, 0, 160, 300, null, null],
[0, "진식", null, 0, null, 70, 71, 25, 0, 160, 300, null, null],
[0, "진진", null, 0, null, 46, 46, 69, 0, 160, 300, null, null],
[0, "진태", null, 0, null, 86, 68, 89, 0, 160, 300, null, null],
[0, "진등", null, 0, null, 79, 59, 81, 0, 160, 300, null, null],
[0, "진도", null, 0, null, 82, 78, 58, 0, 160, 300, null, null],
[0, "진무", null, 0, null, 76, 87, 43, 0, 160, 300, null, null],
[0, "진란", null, 0, null, 66, 69, 40, 0, 160, 300, null, null],
[0, "진림", null, 0, null, 25, 9, 75, 0, 160, 300, null, null],
[0, "정욱", null, 0, null, 76, 49, 94, 0, 160, 300, null, null],
[0, "정원지", null, 0, null, 69, 74, 17, 0, 160, 300, null, null],
[0, "정은", null, 0, null, 69, 73, 40, 0, 160, 300, null, null],
[0, "정원", null, 0, null, 70, 76, 35, 0, 160, 300, null, null],
[0, "정보", null, 0, null, 84, 79, 59, 0, 160, 300, null, null],
[0, "정봉", null, 0, null, 81, 92, 69, 0, 160, 300, null, null],
[0, "전위", null, 0, null, 79, 98, 42, 0, 160, 300, null, null],
[0, "전해", null, 0, null, 68, 65, 45, 0, 160, 300, null, null],
[0, "전주", null, 0, null, 66, 51, 73, 0, 160, 300, null, null],
[0, "전풍", null, 0, null, 82, 43, 96, 0, 160, 300, null, null],
[0, "전예", null, 0, null, 93, 85, 66, 0, 160, 300, null, null],
[0, "동윤", null, 0, null, 47, 28, 79, 0, 160, 300, null, null],
[0, "동화", null, 0, null, 57, 34, 75, 0, 160, 300, null, null],
[0, "등애", null, 0, null, 92, 73, 94, 0, 160, 300, null, null],
[0, "도겸", null, 0, null, 51, 27, 64, 0, 160, 300, null, null],
[0, "등현", null, 0, null, 61, 73, 45, 0, 160, 300, null, null],
[0, "등지", null, 0, null, 73, 52, 81, 0, 160, 300, null, null],
[0, "동습", null, 0, null, 72, 85, 50, 0, 160, 300, null, null],
[0, "동승", null, 0, null, 56, 53, 65, 0, 160, 300, null, null],
[0, "동소", null, 0, null, 34, 25, 80, 0, 160, 300, null, null],
[0, "동탁", null, 0, null, 91, 87, 67, 0, 160, 300, null, null],
[0, "동도나", null, 0, null, 68, 73, 31, 0, 160, 300, null, null],
[0, "동민", null, 0, null, 49, 60, 25, 0, 160, 300, null, null],
[0, "등무", null, 0, null, 61, 75, 29, 0, 160, 300, null, null],
[0, "두기", null, 0, null, 74, 43, 78, 0, 160, 300, null, null],
[0, "두예", null, 0, null, 96, 69, 95, 0, 160, 300, null, null],
[0, "배원소", null, 0, null, 49, 65, 25, 0, 160, 300, null, null],
[0, "마완", null, 0, null, 71, 74, 16, 0, 160, 300, null, null],
[0, "마휴", null, 0, null, 68, 73, 48, 0, 160, 300, null, null],
[0, "파재", null, 0, null, 74, 74, 55, 0, 160, 300, null, null],
[0, "마준", null, 0, null, 38, 52, 31, 0, 160, 300, null, null],
[0, "마속", null, 0, null, 61, 59, 84, 0, 160, 300, null, null],
[0, "마대", null, 0, null, 79, 85, 62, 0, 160, 300, null, null],
[0, "마충", null, 0, null, 78, 72, 52, 0, 160, 300, null, null],
[0, "마초", null, 0, null, 86, 97, 44, 0, 160, 300, null, null, "서량의 금마초 나가신다!"],
[0, "마철", null, 0, null, 70, 62, 43, 0, 160, 300, null, null],
[0, "마등", null, 0, null, 85, 80, 52, 0, 160, 300, null, null],
[0, "마량", null, 0, null, 53, 23, 85, 0, 160, 300, null, null],
[0, "반준", null, 0, null, 61, 46, 82, 0, 160, 300, null, null],
[0, "반장", null, 0, null, 76, 80, 59, 0, 160, 300, null, null],
[0, "번조", null, 0, null, 66, 73, 31, 0, 160, 300, null, null],
[0, "번능", null, 0, null, 69, 61, 36, 0, 160, 300, null, null],
[0, "반봉", null, 0, null, 56, 77, 4, 0, 160, 300, null, null],
[0, "비의", null, 0, null, 82, 56, 88, 0, 160, 300, null, null],
[0, "비연", null, 0, null, 60, 66, 21, 0, 160, 300, null, null],
[0, "비시", null, 0, null, 18, 28, 65, 0, 160, 300, null, null],
[0, "미축", null, 0, null, 33, 29, 78, 0, 160, 300, null, null],
[0, "미방", null, 0, null, 54, 61, 32, 0, 160, 300, null, null],
[0, "비요", null, 0, null, 70, 52, 73, 0, 160, 300, null, null],
[0, "무안국", null, 0, null, 70, 79, 34, 0, 160, 300, null, null],
[0, "풍습", null, 0, null, 72, 71, 39, 0, 160, 300, null, null],
[0, "부사인", null, 0, null, 46, 63, 37, 0, 160, 300, null, null],
[0, "부첨", null, 0, null, 73, 85, 62, 0, 160, 300, null, null],
[0, "부손", null, 0, null, 29, 13, 70, 0, 160, 300, null, null],
[0, "문앙", null, 0, null, 76, 96, 65, 0, 160, 300, null, null],
[0, "문흠", null, 0, null, 74, 79, 43, 0, 160, 300, null, null],
[0, "문추", null, 0, null, 87, 95, 49, 0, 160, 300, null, null],
[0, "문빙", null, 0, null, 88, 85, 65, 0, 160, 300, null, null],
[0, "변희", null, 0, null, 56, 70, 62, 0, 160, 300, null, null],
[0, "망아장", null, 0, null, 45, 79, 3, 0, 160, 300, null, null],
[0, "봉기", null, 0, null, 56, 48, 84, 0, 160, 300, null, null],
[0, "방희", null, 0, null, 60, 38, 69, 0, 160, 300, null, null],
[0, "법정", null, 0, null, 82, 47, 94, 0, 160, 300, null, null],
[0, "방통", null, 0, null, 79, 34, 97, 0, 160, 300, null, null],
[0, "방덕", null, 0, null, 89, 94, 70, 0, 160, 300, null, null],
[0, "포륭", null, 0, null, 58, 76, 49, 0, 160, 300, null, null],
[0, "목순", null, 0, null, 52, 77, 11, 0, 160, 300, null, null],
[0, "목록대왕", null, 0, null, 65, 71, 39, 0, 160, 300, null, null],
[0, "보즐", null, 0, null, 83, 51, 81, 0, 160, 300, null, null],
[0, "만총", null, 0, null, 88, 64, 87, 0, 160, 300, null, null],
[0, "모개", null, 0, null, 63, 39, 60, 0, 160, 300, null, null],
[0, "맹획", null, 0, null, 81, 88, 42, 0, 160, 300, null, null],
[0, "맹체", null, 0, null, 75, 55, 75, 0, 160, 300, null, null],
[0, "맹우", null, 0, null, 50, 68, 22, 0, 160, 300, null, null],
[0, "유섭", null, 0, null, 62, 79, 24, 0, 160, 300, null, null],
[0, "양부", null, 0, null, 62, 48, 68, 0, 160, 300, null, null],
[0, "옹개", null, 0, null, 73, 75, 57, 0, 160, 300, null, null],
[0, "양의", null, 0, null, 68, 40, 82, 0, 160, 300, null, null],
[0, "양호", null, 0, null, 94, 69, 92, 0, 160, 300, null, null],
[0, "양홍", null, 0, null, 33, 15, 77, 0, 160, 300, null, null],
[0, "양앙", null, 0, null, 68, 72, 38, 0, 160, 300, null, null],
[0, "양추", null, 0, null, 52, 65, 40, 0, 160, 300, null, null],
[0, "양수", null, 0, null, 46, 23, 83, 0, 160, 300, null, null],
[0, "양추2", null, 0, null, 67, 64, 44, 0, 160, 300, null, null],
[0, "양송", null, 0, null, 17, 5, 28, 0, 160, 300, null, null],
[0, "양임", null, 0, null, 70, 78, 56, 0, 160, 300, null, null],
[0, "양조", null, 0, null, 53, 61, 36, 0, 160, 300, null, null],
[0, "양백", null, 0, null, 44, 45, 19, 0, 160, 300, null, null],
[0, "양부2", null, 0, null, 67, 50, 83, 0, 160, 300, null, null],
[0, "양봉", null, 0, null, 66, 65, 31, 0, 160, 300, null, null],
[0, "양봉2", null, 0, null, 54, 62, 53, 0, 160, 300, null, null],
[0, "뇌동", null, 0, null, 69, 78, 51, 0, 160, 300, null, null],
[0, "뇌박", null, 0, null, 62, 70, 36, 0, 160, 300, null, null],
[0, "이이", null, 0, null, 63, 77, 19, 0, 160, 300, null, null],
[0, "이회", null, 0, null, 79, 58, 79, 0, 160, 300, null, null],
[0, "이각", null, 0, null, 69, 72, 24, 0, 160, 300, null, null],
[0, "육항", null, 0, null, 94, 68, 93, 0, 160, 300, null, null],
[0, "육적", null, 0, null, 20, 7, 72, 0, 160, 300, null, null],
[0, "육손", null, 0, null, 95, 71, 96, 0, 160, 300, null, null],
[0, "이엄", null, 0, null, 83, 84, 63, 0, 160, 300, null, null],
[0, "이유", null, 0, null, 61, 26, 93, 0, 160, 300, null, null],
[0, "이숙", null, 0, null, 46, 69, 61, 0, 160, 300, null, null],
[0, "이통", null, 0, null, 73, 81, 62, 0, 160, 300, null, null],
[0, "이전", null, 0, null, 78, 80, 59, 0, 160, 300, null, null],
[0, "이풍", null, 0, null, 69, 74, 50, 0, 160, 300, null, null],
[0, "유언", null, 0, null, 61, 38, 80, 0, 160, 300, null, null],
[0, "유괴", null, 0, null, 71, 73, 52, 0, 160, 300, null, null],
[0, "유기", null, 0, null, 52, 12, 63, 0, 160, 300, null, null],
[0, "유우", null, 0, null, 62, 33, 75, 0, 160, 300, null, null],
[0, "유훈", null, 0, null, 47, 63, 35, 0, 160, 300, null, null],
[0, "유현", null, 0, null, 54, 66, 51, 0, 160, 300, null, null],
[0, "유순", null, 0, null, 63, 46, 28, 0, 160, 300, null, null],
[0, "유장", null, 0, null, 31, 5, 34, 0, 160, 300, null, null],
[0, "유심", null, 0, null, 60, 48, 70, 0, 160, 300, null, null],
[0, "유선", null, 0, null, 3, 5, 9, 0, 160, 300, null, null],
[0, "유종", null, 0, null, 24, 22, 65, 0, 160, 300, null, null],
[0, "유도", null, 0, null, 25, 23, 26, 0, 160, 300, null, null],
[0, "유파", null, 0, null, 29, 22, 75, 0, 160, 300, null, null],
[0, "유반", null, 0, null, 69, 76, 47, 0, 160, 300, null, null],
[0, "유비", null, 0, null, 88, 78, 59, 0, 160, 300, null, null, "한왕실은 중산정왕의 후손인 내가 이어받겠다...!"],
[0, "유표", null, 0, null, 48, 31, 72, 0, 160, 300, null, null],
[0, "유복", null, 0, null, 64, 49, 74, 0, 160, 300, null, null],
[0, "유벽", null, 0, null, 70, 72, 47, 0, 160, 300, null, null],
[0, "유봉", null, 0, null, 75, 79, 44, 0, 160, 300, null, null],
[0, "유엽", null, 0, null, 56, 32, 92, 0, 160, 300, null, null],
[0, "유요", null, 0, null, 62, 67, 46, 0, 160, 300, null, null],
[0, "여위황", null, 0, null, 58, 63, 29, 0, 160, 300, null, null],
[0, "요화", null, 0, null, 73, 76, 54, 0, 160, 300, null, null],
[0, "양흥", null, 0, null, 61, 65, 19, 0, 160, 300, null, null],
[0, "양습", null, 0, null, 73, 40, 74, 0, 160, 300, null, null],
[0, "양서", null, 0, null, 56, 62, 66, 0, 160, 300, null, null],
[0, "능조", null, 0, null, 75, 81, 42, 0, 160, 300, null, null],
[0, "능통", null, 0, null, 83, 89, 60, 0, 160, 300, null, null],
[0, "여개", null, 0, null, 53, 30, 67, 0, 160, 300, null, null],
[0, "여건", null, 0, null, 57, 70, 62, 0, 160, 300, null, null],
[0, "여광", null, 0, null, 56, 70, 13, 0, 160, 300, null, null],
[0, "여상", null, 0, null, 54, 71, 12, 0, 160, 300, null, null],
[0, "여대", null, 0, null, 80, 71, 52, 0, 160, 300, null, null],
[0, "여범", null, 0, null, 73, 54, 75, 0, 160, 300, null, null],
[0, "여포", null, 0, null, 89, 100, 42, 0, 160, 300, null, null, "다 덤비거라! 하하하하"],
[0, "여몽", null, 0, null, 91, 69, 90, 0, 160, 300, null, null],
[0, "윤직", null, 0, null, 46, 42, 73, 0, 160, 300, null, null],
[0, "냉포", null, 0, null, 71, 82, 61, 0, 160, 300, null, null],
[0, "누규", null, 0, null, 52, 13, 87, 0, 160, 300, null, null],
[0, "노숙", null, 0, null, 89, 56, 93, 0, 160, 300, null, null],
[0, "노식", null, 0, null, 86, 63, 82, 0, 160, 300, null, null],
[0, "범강", null, 0, null, 49, 50, 36, 0, 160, 300, null, null],
[0, "장달", null, 0, null, 43, 56, 34, 0, 160, 300, null, null],
[0, "규람", null, 0, null, 55, 70, 58, 0, 160, 300, null, null],
[0, "대원", null, 0, null, 38, 32, 68, 0, 160, 300, null, null],
[0, "왕기", null, 0, null, 81, 64, 86, 0, 160, 300, null, null],
[0, "왕상", null, 0, null, 23, 19, 68, 0, 160, 300, null, null],
[0, "왕돈", null, 0, null, 60, 66, 46, 0, 160, 300, null, null],
[0, "악침", null, 0, null, 73, 75, 43, 0, 160, 300, null, null],
[0, "하제", null, 0, null, 83, 61, 82, 0, 160, 300, null, null],
[0, "환범", null, 0, null, 40, 11, 78, 0, 160, 300, null, null],
[0, "견초", null, 0, null, 72, 79, 57, 0, 160, 300, null, null],
[0, "고당륭", null, 0, null, 35, 24, 76, 0, 160, 300, null, null],
[0, "오찬", null, 0, null, 68, 41, 78, 0, 160, 300, null, null],
[0, "호질", null, 0, null, 73, 46, 74, 0, 160, 300, null, null],
[0, "오질", null, 0, null, 16, 29, 68, 0, 160, 300, null, null],
[0, "호준", null, 0, null, 79, 76, 55, 0, 160, 300, null, null],
[0, "고담", null, 0, null, 53, 23, 77, 0, 160, 300, null, null],
[0, "최림", null, 0, null, 32, 22, 66, 0, 160, 300, null, null],
[0, "사마망", null, 0, null, 78, 58, 83, 0, 160, 300, null, null],
[0, "주이", null, 0, null, 70, 73, 52, 0, 160, 300, null, null],
[0, "전단", null, 0, null, 67, 64, 39, 0, 160, 300, null, null],
[0, "조우", null, 0, null, 50, 43, 37, 0, 160, 300, null, null],
[0, "조상", null, 0, null, 39, 33, 30, 0, 160, 300, null, null],
[0, "조방", null, 0, null, 20, 14, 27, 0, 160, 300, null, null],
[0, "태사향", null, 0, null, 57, 66, 48, 0, 160, 300, null, null],
[0, "장휴", null, 0, null, 63, 27, 74, 0, 160, 300, null, null],
[0, "장호", null, 0, null, 75, 74, 51, 0, 160, 300, null, null],
[0, "조광", null, 0, null, 67, 71, 53, 0, 160, 300, null, null],
[0, "장집", null, 0, null, 76, 29, 80, 0, 160, 300, null, null],
[0, "장승", null, 0, null, 77, 55, 75, 0, 160, 300, null, null],
[0, "장소2", null, 0, null, 23, 56, 31, 0, 160, 300, null, null],
[0, "조통", null, 0, null, 68, 67, 46, 0, 160, 300, null, null],
[0, "진표", null, 0, null, 66, 42, 74, 0, 160, 300, null, null],
[0, "정무", null, 0, null, 56, 35, 75, 0, 160, 300, null, null],
[0, "정봉2", null, 0, null, 66, 66, 46, 0, 160, 300, null, null],
[0, "전만", null, 0, null, 51, 73, 39, 0, 160, 300, null, null],
[0, "마균", null, 0, null, 22, 17, 71, 0, 160, 300, null, null],
[0, "방회", null, 0, null, 69, 75, 49, 0, 160, 300, null, null],
[0, "낙통", null, 0, null, 76, 58, 75, 0, 160, 300, null, null],
[0, "육개", null, 0, null, 65, 61, 79, 0, 160, 300, null, null],
[0, "유찬", null, 0, null, 78, 81, 59, 0, 160, 300, null, null],
[0, "유소", null, 0, null, 68, 53, 74, 0, 160, 300, null, null],
[0, "요립", null, 0, null, 32, 15, 76, 0, 160, 300, null, null],
[0, "여거", null, 0, null, 78, 51, 71, 0, 160, 300, null, null],
[0, "제갈첨", null, 0, null, 70, 57, 76, 0, 160, 300, null, null],
[0, "손휴", null, 0, null, 57, 42, 78, 0, 160, 300, null, null],
[0, "극정", null, 0, null, 42, 23, 68, 0, 160, 300, null, null],
[0, "호분", null, 0, null, 71, 76, 50, 0, 160, 300, null, null],
[0, "손량", null, 0, null, 32, 26, 70, 0, 160, 300, null, null],
[0, "마막", null, 0, null, 34, 12, 44, 0, 160, 300, null, null],
[0, "손호", null, 0, null, 41, 73, 71, 0, 160, 300, null, null],
[0, "조모", null, 0, null, 54, 61, 59, 0, 160, 300, null, null],
[0, "조환", null, 0, null, 30, 28, 30, 0, 160, 300, null, null],
[0, "사마유", null, 0, null, 71, 54, 75, 0, 160, 300, null, null],
[0, "제갈상", null, 0, null, 64, 79, 62, 0, 160, 300, null, null],
[0, "손화", null, 0, null, 31, 39, 68, 0, 160, 300, null, null],
[0, "염우", null, 0, null, 52, 61, 51, 0, 160, 300, null, null],
[0, "왕경", null, 0, null, 67, 49, 71, 0, 160, 300, null, null],
[0, "왕혼", null, 0, null, 74, 71, 50, 0, 160, 300, null, null],
[0, "곽혁", null, 0, null, 33, 29, 70, 0, 160, 300, null, null],
[0, "가범", null, 0, null, 60, 50, 73, 0, 160, 300, null, null],
[0, "서질", null, 0, null, 68, 83, 24, 0, 160, 300, null, null],
[0, "손준", null, 0, null, 64, 70, 48, 0, 160, 300, null, null],
[0, "손침", null, 0, null, 58, 55, 65, 0, 160, 300, null, null],
[0, "우사", null, 0, null, 61, 34, 74, 0, 160, 300, null, null],
[0, "진건", null, 0, null, 72, 71, 50, 0, 160, 300, null, null],
[0, "동궐", null, 0, null, 65, 59, 76, 0, 160, 300, null, null],
[0, "당자", null, 0, null, 61, 71, 50, 0, 160, 300, null, null],
[0, "등충", null, 0, null, 76, 80, 59, 0, 160, 300, null, null],
[0, "황숭", null, 0, null, 67, 50, 72, 0, 160, 300, null, null],
[0, "화핵", null, 0, null, 20, 24, 71, 0, 160, 300, null, null],
[0, "허의", null, 0, null, 51, 74, 15, 0, 160, 300, null, null],
[0, "송겸", null, 0, null, 66, 78, 42, 0, 160, 300, null, null],
[0, "호제", null, 0, null, 57, 39, 68, 0, 160, 300, null, null],
[0, "나헌", null, 0, null, 86, 62, 82, 0, 160, 300, null, null],
[0, "노숙2", null, 0, null, 73, 53, 74, 0, 160, 300, null, null],
[0, "구성", null, 0, null, 63, 70, 38, 0, 160, 300, null, null],
[0, "어부라", null, 0, null, 72, 68, 21, 0, 160, 300, null, null],
[0, "아하소과", null, 0, null, 61, 76, 13, 0, 160, 300, null, null],
[0, "가비능", null, 0, null, 77, 69, 52, 0, 160, 300, null, null],
[0, "구력거", null, 0, null, 80, 68, 50, 0, 160, 300, null, null],
[0, "강단", null, 0, null, 65, 83, 48, 0, 160, 300, null, null],
[0, "황란", null, 0, null, 63, 75, 44, 0, 160, 300, null, null],
[0, "호주천", null, 0, null, 70, 71, 40, 0, 160, 300, null, null],
[0, "종리목", null, 0, null, 84, 61, 82, 0, 160, 300, null, null],
[0, "제갈교", null, 0, null, 62, 27, 75, 0, 160, 300, null, null],
[0, "답돈", null, 0, null, 84, 82, 61, 0, 160, 300, null, null],
[0, "반임", null, 0, null, 66, 79, 38, 0, 160, 300, null, null],
[0, "보도근", null, 0, null, 64, 73, 50, 0, 160, 300, null, null],
[0, "미당대왕", null, 0, null, 59, 69, 21, 0, 160, 300, null, null],
[0, "유표2", null, 0, null, 73, 74, 48, 0, 160, 300, null, null],
[0, "루반", null, 0, null, 65, 76, 39, 0, 160, 300, null, null],
[0, "손관", null, 0, null, 72, 78, 51, 0, 160, 300, null, null],
[0, "곽석", null, 0, null, 59, 71, 48, 0, 160, 300, null, null],
[0, "주조", null, 0, null, 63, 68, 26, 0, 160, 300, null, null],
[0, "장거", null, 0, null, 79, 75, 56, 0, 160, 300, null, null],
[0, "장순", null, 0, null, 73, 81, 60, 0, 160, 300, null, null],
[0, "철리길", null, 0, null, 77, 70, 52, 0, 160, 300, null, null],
[0, "주삭", null, 0, null, 54, 60, 50, 0, 160, 300, null, null],
[0, "황월영", null, 0, null, 46, 33, 78, 0, 160, 300, null, null],
[0, "채염", null, 0, null, 42, 26, 82, 0, 160, 300, null, null],
[0, "소교", null, 0, null, 23, 15, 78, 0, 160, 300, null, null],
[0, "신헌영", null, 0, null, 65, 35, 90, 0, 160, 300, null, null, "내가 사내로 태어났더라면..."],
[0, "손상향", null, 0, null, 72, 79, 55, 0, 160, 300, null, null],
[0, "대교", null, 0, null, 22, 30, 78, 0, 160, 300, null, null],
[0, "초선", null, 0, null, 12, 22, 71, 0, 160, 300, null, null],
[0, "교모", null, 0, null, 54, 45, 69, 0, 160, 300, null, null],
[0, "관구수", null, 0, null, 58, 62, 33, 0, 160, 300, null, null],
[0, "관구전", null, 0, null, 63, 47, 69, 0, 160, 300, null, null],
[0, "원유", null, 0, null, 56, 40, 73, 0, 160, 300, null, null],
[0, "왕광", null, 0, null, 65, 41, 61, 0, 160, 300, null, null],
[0, "신창", null, 0, null, 50, 26, 42, 0, 160, 300, null, null],
[0, "사마주", null, 0, null, 61, 40, 61, 0, 160, 300, null, null],
[0, "양제", null, 0, null, 67, 49, 71, 0, 160, 300, null, null],
[0, "성만", null, 0, null, 61, 68, 46, 0, 160, 300, null, null],
[0, "오연", null, 0, null, 66, 73, 42, 0, 160, 300, null, null],
[0, "맹충", null, 0, null, 47, 28, 72, 0, 160, 300, null, null],
[0, "잠혼", null, 0, null, 1, 1, 22, 0, 160, 300, null, null],
[0, "사정", null, 0, null, 64, 76, 34, 0, 160, 300, null, null],
[0, "심영", null, 0, null, 70, 77, 55, 0, 160, 300, null, null],
[0, "도준", null, 0, null, 65, 66, 46, 0, 160, 300, null, null],
[0, "만욱", null, 0, null, 21, 25, 71, 0, 160, 300, null, null],
[0, "오언", null, 0, null, 76, 81, 59, 0, 160, 300, null, null],
[0, "위막", null, 0, null, 57, 62, 59, 0, 160, 300, null, null],
[0, "시삭", null, 0, null, 38, 65, 47, 0, 160, 300, null, null],
[0, "전속", null, 0, null, 47, 60, 55, 0, 160, 300, null, null],
[0, "장화", null, 0, null, 36, 27, 78, 0, 160, 300, null, null],
[0, "오거", null, 0, null, 49, 61, 23, 0, 160, 300, null, null],
[0, "추정", null, 0, null, 70, 46, 66, 0, 160, 300, null, null],
[0, "장특", null, 0, null, 73, 54, 75, 0, 160, 300, null, null],
[0, "곽마", null, 0, null, 68, 71, 47, 0, 160, 300, null, null],
[0, "석포", null, 0, null, 69, 71, 49, 0, 160, 300, null, null],
[0, "견홍", null, 0, null, 70, 74, 53, 0, 160, 300, null, null],
[0, "한거자", null, 0, null, 51, 59, 51, 0, 160, 300, null, null],
[0, "휴원진", null, 0, null, 52, 68, 45, 0, 160, 300, null, null],
[0, "곽원", null, 0, null, 66, 73, 36, 0, 160, 300, null, null],
[0, "계옹", null, 0, null, 63, 52, 33, 0, 160, 300, null, null],
[0, "이부", null, 0, null, 31, 36, 74, 0, 160, 300, null, null],
[0, "왕업", null, 0, null, 33, 6, 35, 0, 160, 300, null, null],
[0, "좌혁", null, 0, null, 62, 66, 51, 0, 160, 300, null, null],
[0, "화타", null, 0, null, 57, 25, 73, 0, 160, 300, null, null, "아픈 사람들 모두 내게 오시오~"],
[0, "사마휘", null, 0, null, 55, 26, 82, 0, 160, 300, null, null, "좋지 좋아~"],
[0, "우길", null, 0, null, 23, 15, 90, 0, 160, 300, null, null, "길조로다"],
[0, "헌제", null, 0, null, 22, 18, 68, 0, 160, 300, null, null, "한왕실은 정녕 여기서 끝이란 말인가.."],
[0, "백기", null, 0, null, 100, 88, 69, 0, 160, 300, null, null],
[0, "한신", null, 0, null, 100, 74, 95, 0, 160, 300, null, null],
[0, "악비", null, 0, null, 99, 91, 71, 0, 160, 300, null, null],
[0, "항적", null, 0, null, 99, 100, 65, 0, 160, 300, null, null],
[0, "악의", null, 0, null, 98, 75, 96, 0, 160, 300, null, null],
[0, "영정", null, 0, null, 97, 55, 92, 0, 160, 300, null, null],
[0, "강상", null, 0, null, 94, 49, 100, 0, 160, 300, null, null],
[0, "전단2", null, 0, null, 96, 75, 95, 0, 160, 300, null, null],
[0, "이목", null, 0, null, 96, 69, 88, 0, 160, 300, null, null],
[0, "염파", null, 0, null, 97, 96, 75, 0, 160, 300, null, null],
[0, "왕전", null, 0, null, 94, 64, 83, 0, 160, 300, null, null],
[0, "오기", null, 0, null, 94, 66, 95, 0, 160, 300, null, null],
[0, "곽거병", null, 0, null, 93, 92, 53, 0, 160, 300, null, null],
[0, "영포", null, 0, null, 82, 91, 54, 0, 160, 300, null, null],
[0, "이신", null, 0, null, 81, 88, 63, 0, 160, 300, null, null],
[0, "몽념", null, 0, null, 87, 86, 65, 0, 160, 300, null, null],
[0, "전기", null, 0, null, 80, 85, 44, 0, 160, 300, null, null],
[0, "극신", null, 0, null, 76, 83, 42, 0, 160, 300, null, null],
[0, "항연", null, 0, null, 89, 80, 61, 0, 160, 300, null, null],
[0, "인상여", null, 0, null, 69, 38, 96, 0, 160, 300, null, null],
[0, "장자방", null, 0, null, 72, 40, 100, 0, 160, 300, null, null],
[0, "관이오", null, 0, null, 85, 64, 99, 0, 160, 300, null, null],
[0, "손빈", null, 0, null, 83, 22, 98, 0, 160, 300, null, null],
[0, "소진", null, 0, null, 90, 47, 96, 0, 160, 300, null, null],
[0, "범증", null, 0, null, 68, 24, 94, 0, 160, 300, null, null],
[0, "장의2", null, 0, null, 75, 23, 93, 0, 160, 300, null, null],
[0, "공구", null, 0, null, 68, 70, 91, 0, 160, 300, null, null],
[0, "소하", null, 0, null, 56, 27, 97, 0, 160, 300, null, null],
[0, "한비", null, 0, null, 49, 18, 97, 0, 160, 300, null, null],
[0, "이사", null, 0, null, 48, 24, 95, 0, 160, 300, null, null],
[0, "전문", null, 0, null, 79, 67, 89, 0, 160, 300, null, null],
[0, "황헐", null, 0, null, 81, 68, 88, 0, 160, 300, null, null],
[0, "방난", null, 0, null, 88, 95, 66, 0, 160, 300, null, null],
[0, "개섭", null, 0, null, 43, 97, 54, 0, 160, 300, null, null],
[0, "형가", null, 0, null, 42, 89, 43, 0, 160, 300, null, null],
[0, "유방", null, 0, null, 90, 66, 85, 0, 160, 300, null, null, "나는 사람을 쓰는 재주로 천하를 얻었다"],
[0, "하리", null, 0, null, 100, 100, 72, 0, 160, 300, null, null, "내 업적을 따라올 사람이 있을까?"],
[0, "헹이", null, 0, null, 97, 71, 92, 0, 160, 300, null, null, "맛있다 'ㅅ'"],
[0, "나나", null, 0, null, 96, 67, 87, 0, 160, 300, null, null, "이번 전쟁을 계산해보면 말이죠..."],
[0, "장임2", null, 0, null, 90, 91, 69, 0, 160, 300, null, null, "으리!"],
[0, "하야미", null, 0, null, 94, 73, 95, 0, 160, 300, null, null, "흑막이 되어볼까요"],
[0, "이시리스", null, 0, null, 96, 74, 96, 0, 160, 300, null, null],
[0, "연채홍", null, 0, null, 93, 73, 94, 0, 160, 300, null, null, "엄마도 천통할수 있다!"],
[0, "임사영", null, 0, null, 75, 75, 75, 0, 160, 300, null, null, "일반인 양민입니다"],
[0, "장군보", null, 0, null, 88, 90, 68, 0, 160, 300, null, null],
[0, "크렌스", null, 0, null, 92, 86, 67, 0, 160, 300, null, null],
[0, "콘", null, 0, null, 90, 98, 77, 0, 160, 300, null, null],
[0, "리즈나", null, 0, null, 93, 60, 76, 0, 160, 300, null, null, "내가 다 했다"],
[0, "오티누스", null, 0, null, 93, 93, 73, 0, 160, 300, null, null],
[0, "네시", null, 0, null, 88, 73, 94, 0, 160, 300, null, null, "안 자고 싸우면 이겨요"],
[0, "시뉴카린", null, 0, null, 89, 90, 71, 0, 160, 300, null, null, "흔들흔들"],
[0, "Hide_D", null, 0, null, 39, 99, 75, 0, 160, 300, null, null]
]
}
+1
View File
@@ -152,6 +152,7 @@ CREATE TABLE `general` (
`recturn` VARCHAR(50) NULL DEFAULT '[0,0,0,0]',
`resturn` VARCHAR(30) NULL DEFAULT '',
`penalty` TEXT NULL DEFAULT '',
`aux` TEXT NOT NULL DEFAULT '{}',
PRIMARY KEY (`no`),
INDEX `nation` (`nation`, `npc`),
INDEX `city` (`city`),
-193
View File
@@ -1,193 +0,0 @@
<font size=2>병사를 모집합니다.
<?php if($commandName=='무작위 징병'): ?>
훈련과 사기치는 낮지만 가격이 저렴합니다.<br>
<?php else: ?>
훈련과 사기치는 높지만 자금이 많이 듭니다.
<?php endif; ?>
가능한 수보다 많게 입력하면 가능한 최대 병사를 모집합니다.<br>
이미 병사가 있는 경우 추가<?=$commandName?>되며, 병종이 다를경우는 기존의 병사는 소집해제됩니다.<br>
병종은 영토에 상관 없이 기술 등급이 충족하는 병종 하나가 무작위로 선택됩니다.
<table class='tb_layout' style='margin:auto;'>
<thead>
<tr><td colspan=11>
<?php if($commandName=='무작위 모병'): ?>
<div style='text-align:center;'>모병은 가격 2배의 자금이 소요됩니다.</div>
<?php endif; ?>
</td></tr>
<tr>
<td colspan=11 align=center class='bg2'>
현재 기술력 : <?=$techLevelText?>
현재 통솔 : <?=$leader?><?=($leader!=$fullLeader)?"({$fullLeader})":''?>
현재 병종 : <?=$crewTypeName?>
현재 병사 : <?=$crew?>
현재 자금 : <?=$gold?>
</td>
</tr>
<tr>
<td width=64 align=center class='bg1'>사진</td>
<td width=64 align=center class='bg1'>병종</td>
<td width=40 align=center class='bg1'>공격</td>
<td width=40 align=center class='bg1'>방어</td>
<td width=40 align=center class='bg1'>기동</td>
<td width=40 align=center class='bg1'>회피</td>
<td width=40 align=center class='bg1'>가격</td>
<td width=40 align=center class='bg1'>군량</td>
<td width=180 align=center class='bg1'>병사수</td>
<td width=50 align=center class='bg1'>행동</td>
<td width=300 align=center class='bg1'>특징</td>
</tr>
</thead>
<tbody>
<?php foreach($armTypes as [$armName,$armTypeCrews]): ?>
<tr><td colspan=11><?=$armName?> 계열</td></tr>
<?php foreach($armTypeCrews as $crewObj): ?>
<tr
id="crewType<?=$crewObj->id?>"
class="show_default_<?=$crewObj->showDefault?>"
style='height:64px;background-color:<?=$crewObj->bgcolor?>'
data-rice="<?=$crewObj->baseRice?>"
data-cost="<?=$crewObj->baseCost?>"
>
<td style='background:#222222 no-repeat center url("<?=$crewObj->img?>");background-size:64px'></td>
<td style='text-align:center;vertical-align:middle;'><?=$crewObj->name?></td>
<td style='text-align:center;vertical-align:middle;'><?=$crewObj->attack?></td>
<td style='text-align:center;vertical-align:middle;'><?=$crewObj->defence?></td>
<td style='text-align:center;vertical-align:middle;'><?=$crewObj->speed?></td>
<td style='text-align:center;vertical-align:middle;'><?=$crewObj->avoid?></td>
<td style='text-align:center;vertical-align:middle;'><?=$crewObj->baseCostShort?></td>
<td style='text-align:center;vertical-align:middle;'><?=$crewObj->baseRiceShort?></td>
<td style='text-align:center;vertical-align:middle;' class='input_form' data-crewtype='<?=$crewObj->id?>'>
<input type=button value='절반' class='btn_half'
><input type=button value='채우기' class='btn_fill'
><input type=button value='가득' class='btn_full'
><br>
<input type=text data-crewtype='<?=$crewObj->id?>' class=form_double name=double maxlength=3 size=3
style=text-align:right;color:white;background-color:black
>00
<input type=text class=form_cost name=cost maxlength=5 size=5 readonly
style=text-align:right;color:white;background-color:black>
</td>
<td style='position:relative;height:64px;'><input
type=submit value='<?=mb_substr($commandName, mb_strlen($commandName) - 2)?>' class='submit_btn'
style='width:100%;height:44px;margin:10px 0;display:block;position: absolute;left:0;top:0;'
></td>
<td><?=$crewObj->info?></td>
</tr>
<?php endforeach; ?>
<?php endforeach; ?>
</tbody>
</table>
<form id='post_form' action='c_double.php' type='post'>
<input type='hidden' name='double' class='form_amount' value='1'>
<input type='hidden' name='third' class='form_crewtype' value='<?=$crewObj->id?>'>
<input type='hidden' name='command' value='<?=$command?>'>
<?php foreach($turn as $turnItem) : ?>
<input type=hidden name='turn[]' value='<?=$turnItem?>'>
<?php endforeach; ?>
</form>
<script>
var currentTech = <?=$tech?>;
var leader = <?=$leader?>;
var fullLeader = <?=$fullLeader?>;
var currentCrewType = <?=$crewType?>;
var currentCrew = <?=$crew?>;
var currentGold = <?=$gold?>;
var is모병 = <?=($commandName=='무작위 모병')?'true':'false'?>;
window.calc = function(id) {
var $obj = $('#crewType{0}'.format(id));
var crew = $obj.find('.form_double').val();
var baseCost = $obj.data('cost');
var $cost = $obj.find('.form_cost');
var cost = crew * baseCost;
if(is모병){
cost *= 2;
}
$cost.val(Math.round(cost));
}
$(function(){
var $postForm = $('#post_form');
var $formAmount = $postForm.find('.form_amount');
var $formCrewtype = $postForm.find('.form_crewtype');
$('.form_double').on('keyup change',function(e){
var $this = $(this);
var $parent = $this.parents('.input_form');
var crewtype = parseInt($parent.data('crewtype'));
calc(crewtype);
$formCrewtype.val(crewtype);
$formAmount.val($this.val());
if(e.which === 13){
$postForm.submit();
}
return false;
});
$('.btn_half').click(function(){
var $this = $(this);
var $parent = $this.closest('.input_form');
var crewtype = parseInt($parent.data('crewtype'));
var $input = $parent.find('.form_double:eq(0)');
var fillValue = Math.round(leader / 2);
$formCrewtype.val(crewtype);
$input.val(fillValue).change();
return false;
});
$('.btn_fill').click(function(){
var $this = $(this);
var $parent = $this.closest('.input_form');
var crewtype = parseInt($parent.data('crewtype'));
var $input = $parent.find('.form_double:eq(0)');
var fillValue = Math.ceil((leader*100 - currentCrew)/100);
if(crewtype != currentCrewType){
fillValue = leader;
}
$formCrewtype.val(crewtype);
$input.val(fillValue).change();
return false;
});
$('.btn_full').click(function(){
var $this = $(this);
var $parent = $this.closest('.input_form');
var crewtype = parseInt($parent.data('crewtype'));
var $input = $parent.find('.form_double:eq(0)');
var fillValue = fullLeader + 15;
$formCrewtype.val(crewtype);
$input.val(fillValue).change();
return false;
});
$('.submit_btn').click(function(){
var $this = $(this);
var $parent = $this.closest('tr').find('.input_form');
var crewtype = parseInt($parent.data('crewtype'));
var $input = $parent.find('.form_double');
$formCrewtype.val(crewtype);
$formAmount.val($input.val());
$postForm.submit();
});
$('.btn_fill').click();
$('#show_unavailable_troops').change(function(){
var show = $('#show_unavailable_troops').is(":checked");
if(show){
$('.show_default_false').show();
}
else{
$('.show_default_false').hide();
}
});
$('.show_default_false').hide();
});
</script>