diff --git a/.gitignore b/.gitignore index 5654023f..cf735849 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,5 @@ d_setting/*.php !*/d_setting/*.orig.php !*/d_setting/_*.php -**/old/* \ No newline at end of file +**/old/* +test.php diff --git a/twe/_simul.php b/twe/_simul.php index e8554a91..c80ca06d 100644 --- a/twe/_simul.php +++ b/twe/_simul.php @@ -150,7 +150,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평 while($phase < $warphase) { // 장수가 없어서 도시 공격 if($opposecount == 0) { - $msg .= "●".getTypename($general['crewtype'])."(으)로 성을 공격합니다.
"; + $msg .= "●".GameUnitConst::byID($general['crewtype'])->name."(으)로 성을 공격합니다.
"; $mykillnum = 0; $mydeathnum = 0; while($phase < $warphase) { @@ -340,7 +340,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평 } // 장수 대결 } else { - $msg .= "●".getTypename($general['crewtype'])."(으)로 수비장수의 ".getTypename($oppose['crewtype'])."(을)를 공격합니다.
"; + $msg .= "●".GameUnitConst::byID($general['crewtype'])->name."(으)로 수비장수의 ".GameUnitConst::byID($oppose['crewtype'])->name."(을)를 공격합니다.
"; $mykillnum = 0; $mydeathnum = 0; while($phase < $warphase) { diff --git a/twe/b_currentCity.php b/twe/b_currentCity.php index 6ccbb42c..2a1d29c4 100644 --- a/twe/b_currentCity.php +++ b/twe/b_currentCity.php @@ -288,7 +288,7 @@ for($j=0; $j < $gencount; $j++) { echo " $mode - ".getTypename($general['crewtype'])." + ".GameUnitConst::byId($general['crewtype'])->name." {$general['crew']} {$general['train']} {$general['atmos']}"; diff --git a/twe/b_genList.php b/twe/b_genList.php index 26619b37..ab4feefd 100644 --- a/twe/b_genList.php +++ b/twe/b_genList.php @@ -152,7 +152,7 @@ for($j=0; $j < $gencount; $j++) { {$general['rice']} $city $mode - ".getTypename($general['crewtype'])." + ".GameUnitConst::byId($general['crewtype'])->name." {$general['crew']} {$general['train']} {$general['atmos']}"; diff --git a/twe/func.php b/twe/func.php index a137f46c..54e6a26f 100644 --- a/twe/func.php +++ b/twe/func.php @@ -892,7 +892,7 @@ function generalInfo($connect, $no) { $level = $city['name']." ".$level; } $call = getCall($general['leader'], $general['power'], $general['intel']); - $typename = getTypename($general['crewtype']); + $typename = GameUnitConst::byId($general['crewtype'])->name; $weapname = getWeapName($general['weap']); $bookname = getBookName($general['book']); $horsename = getHorseName($general['horse']); diff --git a/twe/func_command.php b/twe/func_command.php index c9b3301d..80c705a8 100644 --- a/twe/func_command.php +++ b/twe/func_command.php @@ -52,12 +52,12 @@ function getTurn($connect, $general, $type, $font=1) { case 9: $str[$i] = "물자 조달"; break; //조달 case 11: //징병 - $third = getTypename($command[2]); + $third = GameUnitConst::byID($command[2])->name; $double = $command[1]; $str[$i] = "【{$third}】 {$double}00명 징병"; break; case 12: //모병 - $third = getTypename($command[2]); + $third = GameUnitConst::byID($command[2])->name; $double = $command[1]; $str[$i] = "【{$third}】 {$double}00명 모병"; break; diff --git a/twe/func_converter.php b/twe/func_converter.php index 4acb06bb..ccc326f6 100644 --- a/twe/func_converter.php +++ b/twe/func_converter.php @@ -359,49 +359,6 @@ function getHonor($experience) { return $honor; } -function getTypename($type) { - switch($type) { - case 0: $typename = '보병'; break; - case 1: $typename = '청주병'; break; - case 2: $typename = '수병'; break; - case 3: $typename = '자객병'; break; - case 4: $typename = '근위병'; break; - case 5: $typename = '등갑병'; break; - - case 10: $typename = '궁병'; break; - case 11: $typename = '궁기병'; break; - case 12: $typename = '연노병'; break; - case 13: $typename = '강궁병'; break; - case 14: $typename = '석궁병'; break; - - case 20: $typename = '기병'; break; - case 21: $typename = '백마병'; break; - case 22: $typename = '중장기병'; break; - case 23: $typename = '돌격기병'; break; - case 24: $typename = '철기병'; break; - case 25: $typename = '수렵기병'; break; - case 26: $typename = '맹수병'; break; - case 27: $typename = '호표기병'; break; - - case 30: $typename = '귀병'; break; - case 31: $typename = '신귀병'; break; - case 32: $typename = '백귀병'; break; - case 33: $typename = '흑귀병'; break; - case 34: $typename = '악귀병'; break; - case 35: $typename = '남귀병'; break; - case 36: $typename = '황귀병'; break; - case 37: $typename = '천귀병'; break; - case 38: $typename = '마귀병'; break; - - case 40: $typename = '정란'; break; - case 41: $typename = '충차'; break; - case 42: $typename = '벽력거'; break; - case 43: $typename = '목우'; break; - } - return $typename; -} - - function getExpLevel($experience) { if($experience < 1000) { $level = floor($experience / 100); diff --git a/twe/func_gamerule.php b/twe/func_gamerule.php index e9e230c7..434356d4 100644 --- a/twe/func_gamerule.php +++ b/twe/func_gamerule.php @@ -1089,12 +1089,19 @@ function checkStatistic($connect) { $crewtype = ''; $types = array(0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43); $count = count($types); + foreach(GameUnitConst::all() as $unit){ + $userCnt = DB::db()->queryFirstField( + "SELECT count(*) as type from general where crewtype=%i and crew>=100", + $unit->id + ); + $crewtype .= "{$unit->name}({$userCnt}), "; + } for($i=0; $i < $count; $i++) { - $query = "select count(*) as type from general where crewtype={$types[$i]} and crew>=100"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $general = MYDB_fetch_array($result); - $crewtype .= getTypeName($types[$i])."({$general['type']}), "; + } $query = " diff --git a/twe/func_process.php b/twe/func_process.php index 7fdc2e1f..2302907a 100644 --- a/twe/func_process.php +++ b/twe/func_process.php @@ -953,7 +953,7 @@ function process_11($connect, &$general, $type) { } elseif($city['rate'] < 20) { $log[] = "●{$admin['month']}월:민심이 낮아 주민들이 도망갑니다. $dtype 실패. <1>$date"; } else { - $log[] = "●{$admin['month']}월:".getTypename($armtype)."을(를) {$crew}00명 {$dtype}했습니다. <1>$date"; + $log[] = "●{$admin['month']}월:".GameUnitConst::byId($armtype)->name."을(를) {$crew}00명 {$dtype}했습니다. <1>$date"; $exp = $crew; $ded = $crew; // 숙련도 증가 @@ -1558,6 +1558,7 @@ function process_31($connect, &$general) { $log = array(); $alllog = array(); $date = substr($general['turntime'],11,5); + $msg = []; $query = "select year,month,develcost from game where no='1'"; $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); @@ -1602,17 +1603,20 @@ function process_31($connect, &$general) { } else { $alllog[] = "●{$admin['month']}월:누군가가 {$city['name']}(을)를 살피는 것 같습니다."; $log[] = "●{$admin['month']}월:{$city['name']}의 많은 정보를 얻었습니다. <1>$date"; - $msg[count($msg)] = "【병종】"; - for($i=0; $i <= 5; $i++) { if($typecount[$i] != 0) { $msg[count($msg)] = StringUtil::SubStr(getTypename($i), 0, 2).":$typecount[$i]"; } } - for($i=10; $i <= 14; $i++) { if($typecount[$i] != 0) { $msg[count($msg)] = StringUtil::SubStr(getTypename($i), 0, 2).":$typecount[$i]"; } } - for($i=20; $i <= 27; $i++) { if($typecount[$i] != 0) { $msg[count($msg)] = StringUtil::SubStr(getTypename($i), 0, 2).":$typecount[$i]"; } } - for($i=30; $i <= 38; $i++) { if($typecount[$i] != 0) { $msg[count($msg)] = StringUtil::SubStr(getTypename($i), 0, 2).":$typecount[$i]"; } } - for($i=40; $i <= 43; $i++) { if($typecount[$i] != 0) { $msg[count($msg)] = StringUtil::SubStr(getTypename($i), 0, 2).":$typecount[$i]"; } } + $msg[] = "【병종】"; - $count = ceil(count($msg) / 8) * 8; - for($i=$count; $i > 0; $i-=8) { - $log[] = "{$msg[$i-8]} {$msg[$i-7]} {$msg[$i-6]} {$msg[$i-5]} {$msg[$i-4]} {$msg[$i-3]} {$msg[$i-2]} {$msg[$i-1]}"; + foreach(GameUnitConst::all() as $unit){ + if($typecount[$unit->id] == 0){ + continue; + } + + $unitStr = mb_substr($unit->name, 0, 2); + $msg[] = "{$unitStr}:{$typecount[$unit->id]}"; } + + $log[] = join(' ', $msg); + $msg = []; + $log[] = "【첩보】농업:{$city['agri']}, 상업:{$city['comm']}, 치안:{$city['secu']}, 수비:{$city['def']}, 성벽:{$city['wall']}"; $log[] = "【{$city['name']}】주민:{$city['pop']}, 민심:{$city['rate']}, 장수:$gencount, 병력:$crew"; diff --git a/twe/process_war.php b/twe/process_war.php index 40b9dfef..45fa7518 100644 --- a/twe/process_war.php +++ b/twe/process_war.php @@ -133,8 +133,8 @@ function processWar($connect, $general, $city) { break; // 장수가 없어서 도시 공격 } elseif($opposecount == 0) { - $alllog[] = "●{$game['month']}월:{$general['name']}(이)가 ".getTypename($general['crewtype'])."(으)로 성벽을 공격합니다."; - $log[] = "●".getTypename($general['crewtype'])."(으)로 성벽을 공격합니다."; + $alllog[] = "●{$game['month']}월:{$general['name']}(이)가 ".GameUnitConst::byId($general['crewtype'])->name."(으)로 성벽을 공격합니다."; + $log[] = "●".GameUnitConst::byId($general['crewtype'])->name."(으)로 성벽을 공격합니다."; $general['train'] += 1; //훈련 상승 if($general['train'] > $_maximumtrain) { $general['train'] = $_maximumtrain; } @@ -380,7 +380,7 @@ function processWar($connect, $general, $city) { } $render_attacker = [ - 'crewtype' => StringUtil::SubStr(getTypename($general['crewtype']), 0, 2), + 'crewtype' => StringUtil::SubStr(GameUnitConst::byId($general['crewtype'])->name, 0, 2), 'name'=> $general['name'], 'remain_crew' => $general['crew'], 'killed_crew' => -$mydeathnum @@ -494,14 +494,14 @@ function processWar($connect, $general, $city) { break; // 공격 장수 병사 소진시 실패 처리 } elseif($general['crew'] <= 0) { - $alllog[] = "●{$game['month']}월:{$general['name']}의 ".getTypename($general['crewtype'])."(이)가 퇴각했습니다."; + $alllog[] = "●{$game['month']}월:{$general['name']}의 ".GameUnitConst::byId($general['crewtype'])->name."(이)가 퇴각했습니다."; $log[] = "●퇴각했습니다."; $query = "update general set deathnum=deathnum+1 where no='{$general['no']}'"; MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); break; } elseif($myRice <= round($general['crew']/100)) { - $alllog[] = "●{$game['month']}월:{$general['name']}의 ".getTypename($general['crewtype'])."(이)가 퇴각했습니다."; + $alllog[] = "●{$game['month']}월:{$general['name']}의 ".GameUnitConst::byId($general['crewtype'])->name."(이)가 퇴각했습니다."; $log[] = "●군량 부족으로 퇴각합니다."; $query = "update general set deathnum=deathnum+1 where no='{$general['no']}'"; @@ -511,9 +511,9 @@ function processWar($connect, $general, $city) { // 장수 대결 } else { $oppose = MYDB_fetch_array($result); - $alllog[] = "●{$game['month']}월:{$general['name']}의 ".getTypename($general['crewtype'])."(와)과 {$oppose['name']}의 ".getTypename($oppose['crewtype'])."(이)가 대결합니다."; - $log[] = "●".getTypename($general['crewtype'])."(으)로 {$oppose['name']}의 ".getTypename($oppose['crewtype'])."(을)를 공격합니다."; - $opplog[count($opplog)] = "●".getTypename($oppose['crewtype'])."(으)로 {$general['name']}의 ".getTypename($general['crewtype'])."(을)를 수비합니다."; + $alllog[] = "●{$game['month']}월:{$general['name']}의 ".GameUnitConst::byId($general['crewtype'])->name."(와)과 {$oppose['name']}의 ".GameUnitConst::byId($oppose['crewtype'])->name."(이)가 대결합니다."; + $log[] = "●".GameUnitConst::byId($general['crewtype'])->name."(으)로 {$oppose['name']}의 ".GameUnitConst::byId($oppose['crewtype'])->name."(을)를 공격합니다."; + $opplog[count($opplog)] = "●".GameUnitConst::byId($oppose['crewtype'])->name."(으)로 {$general['name']}의 ".GameUnitConst::byId($general['crewtype'])->name."(을)를 수비합니다."; $oppAtmos = 0; if($oppose['item'] == 3) { @@ -1257,13 +1257,13 @@ function processWar($connect, $general, $city) { } $render_attacker = [ - 'crewtype' => StringUtil::SubStr(getTypename($general['crewtype']), 0, 2), + 'crewtype' => StringUtil::SubStr(GameUnitConst::byId($general['crewtype'])->name, 0, 2), 'name'=> $general['name'], 'remain_crew' => $general['crew'], 'killed_crew' => -$mydeathnum ]; $render_defender = [ - 'crewtype' => StringUtil::SubStr(getTypename($oppose['crewtype']), 0, 2), + 'crewtype' => StringUtil::SubStr(GameUnitConst::byId($oppose['crewtype'])->name, 0, 2), 'name'=> $oppose['name'], 'remain_crew' => $oppose['crew'], 'killed_crew' => -$opdeathnum @@ -1363,12 +1363,12 @@ function processWar($connect, $general, $city) { // 상대 병사 소진이나 쌀 소진시 다음 장수 if($oppose['crew'] <= 0 || ($opRice <= round($oppose['crew']/100) && $general['crew'] > 0)) { if($opRice <= round($oppose['crew']/100)) { - $alllog[] = "●{$game['month']}월:{$oppose['name']}의 ".getTypename($oppose['crewtype'])."(이)가 패퇴했습니다."; - $log[] = "{$oppose['name']}의 ".getTypename($oppose['crewtype'])."(이)가 패퇴했습니다."; + $alllog[] = "●{$game['month']}월:{$oppose['name']}의 ".GameUnitConst::byId($oppose['crewtype'])->name."(이)가 패퇴했습니다."; + $log[] = "{$oppose['name']}의 ".GameUnitConst::byId($oppose['crewtype'])->name."(이)가 패퇴했습니다."; $opplog[count($opplog)] = "●군량 부족으로 패퇴합니다."; } else { - $alllog[] = "●{$game['month']}월:{$oppose['name']}의 ".getTypename($oppose['crewtype'])."(이)가 전멸했습니다."; - $log[] = "{$oppose['name']}의 ".getTypename($oppose['crewtype'])."(이)가 전멸했습니다."; + $alllog[] = "●{$game['month']}월:{$oppose['name']}의 ".GameUnitConst::byId($oppose['crewtype'])->name."(이)가 전멸했습니다."; + $log[] = "{$oppose['name']}의 ".GameUnitConst::byId($oppose['crewtype'])->name."(이)가 전멸했습니다."; $opplog[count($opplog)] = "●전멸했습니다."; } $opposecount--; @@ -1401,13 +1401,13 @@ function processWar($connect, $general, $city) { // 공격 장수 병사 소진이나 쌀 소진시 실패 처리 } elseif($general['crew'] <= 0 || $myRice <= round($general['crew']/100)) { if($myRice <= round($general['crew']/100)) { - $alllog[] = "●{$game['month']}월:{$general['name']}의 ".getTypename($general['crewtype'])."(이)가 퇴각했습니다."; + $alllog[] = "●{$game['month']}월:{$general['name']}의 ".GameUnitConst::byId($general['crewtype'])->name."(이)가 퇴각했습니다."; $log[] = "●군량 부족으로 퇴각합니다."; - $opplog[count($opplog)] = "{$general['name']}의 ".getTypename($general['crewtype'])."(이)가 퇴각했습니다."; + $opplog[count($opplog)] = "{$general['name']}의 ".GameUnitConst::byId($general['crewtype'])->name."(이)가 퇴각했습니다."; } else { - $alllog[] = "●{$game['month']}월:{$general['name']}의 ".getTypename($general['crewtype'])."(이)가 퇴각했습니다."; + $alllog[] = "●{$game['month']}월:{$general['name']}의 ".GameUnitConst::byId($general['crewtype'])->name."(이)가 퇴각했습니다."; $log[] = "●퇴각했습니다."; - $opplog[count($opplog)] = "{$general['name']}의 ".getTypename($general['crewtype'])."(이)가 퇴각했습니다."; + $opplog[count($opplog)] = "{$general['name']}의 ".GameUnitConst::byId($general['crewtype'])->name."(이)가 퇴각했습니다."; } // 경험치 상승 diff --git a/twe/processing.php b/twe/processing.php index 07a8eb44..2099235e 100644 --- a/twe/processing.php +++ b/twe/processing.php @@ -317,7 +317,7 @@ function calc(cost, formnum) { 현재 기술력 : 현재 통솔 : - 현재 병종 : + 현재 병종 : 현재 병사 : 현재 자금 : @@ -523,7 +523,7 @@ function calc(cost, formnum) { 현재 기술력 : 현재 통솔 : - 현재 병종 : + 현재 병종 : 현재 병사 : 현재 자금 :