diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..4e440b66 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,22 @@ +{ + // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요. + // 기존 특성에 대한 설명을 보려면 가리킵니다. + // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요. + "version": "0.2.0", + "configurations": [ + { + "name": "Listen for XDebug", + "type": "php", + "request": "launch", + "port": 9000 + }, + { + "name": "Launch currently open script", + "type": "php", + "request": "launch", + "program": "${file}", + "cwd": "${fileDirname}", + "port": 9000 + } + ] +} \ No newline at end of file diff --git a/che_close/_119.php b/che_close/_119.php index 18c6cc66..e25e0f8e 100644 --- a/che_close/_119.php +++ b/che_close/_119.php @@ -8,7 +8,7 @@ $query = "select userlevel from general where user_id='$_SESSION[p_id]'"; $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $me = MYDB_fetch_array($result); -if($me[userlevel] < 5) { +if($me['userlevel'] < 5) { echo " diff --git a/che_close/_119_b.php b/che_close/_119_b.php index 2f3b9668..365c3a7e 100644 --- a/che_close/_119_b.php +++ b/che_close/_119_b.php @@ -8,7 +8,7 @@ $query = "select userlevel from general where user_id='$_SESSION[p_id]'"; $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $me = MYDB_fetch_array($result); -if($me[userlevel] < 5) { +if($me['userlevel'] < 5) { echo ""; } diff --git a/che_close/_admin1.php b/che_close/_admin1.php index ae57c86f..c36a2f8a 100644 --- a/che_close/_admin1.php +++ b/che_close/_admin1.php @@ -9,7 +9,7 @@ $query = "select userlevel from general where user_id='$_SESSION[p_id]'"; $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $me = MYDB_fetch_array($result); -if($me[userlevel] < 5) { +if($me['userlevel'] < 5) { echo " @@ -43,7 +43,7 @@ $admin = getAdmin($connect);
- + @@ -55,7 +55,7 @@ $admin = getAdmin($connect); - + diff --git a/che_close/lib.php b/che_close/lib.php index 4cf324a7..7166d844 100644 --- a/che_close/lib.php +++ b/che_close/lib.php @@ -7,8 +7,8 @@ // @header ("P3P : CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\""); //디버그용 매크로 -define(__OLINE__,__LINE__); -define(__LINE__,__FILE__." ".__FUNCTION__." ".__LINE__." : "); +define('__OLINE__',__LINE__); +define('__LINE__',__FILE__." ".__FUNCTION__." ".__LINE__." : "); ini_set("session.cache_expire", 10080); // minutes ini_set("session.gc_maxlifetime", 604800); // seconds @@ -17,8 +17,8 @@ ob_start(); include "MYDB.php"; // 각종 변수 -define(STEP_LOG, true); -define(PROCESS_LOG, true); +define('STEP_LOG', true); +define('PROCESS_LOG', true); $_startTime = getMicroTime(); $_ver = "서비스중"; $_version = "삼국지 모의전투 PHP v2.29.1"; @@ -76,21 +76,21 @@ session_cache_expire(60); // 60분 session_start(); //첫 등장 -if($_SESSION[p_ip] == "") { - $_SESSION[p_ip] = getenv("REMOTE_ADDR"); - $_SESSION[p_time] = time(); +if($_SESSION['p_ip'] == "") { + $_SESSION['p_ip'] = getenv("REMOTE_ADDR"); + $_SESSION['p_time'] = time(); } //id, 이름, 국가는 로그인에서 //초과된 세션은 로그아웃(1시간) -if($_SESSION[p_time]+3600 < time()) { - $_SESSION[p_id] = ""; - $_SESSION[p_name] = ""; - $_SESSION[p_nation] = 0; - $_SESSION[p_time] = time(); +if($_SESSION['p_time']+3600 < time()) { + $_SESSION['p_id'] = ""; + $_SESSION['p_name'] = ""; + $_SESSION['p_nation'] = 0; + $_SESSION['p_time'] = time(); session_destroy(); } else { - $_SESSION[p_time] = time(); + $_SESSION['p_time'] = time(); } // DB가 설정이 되었는지를 검사 @@ -114,11 +114,25 @@ function dbconn($table = "") { // 에러 메세지 출력 function Error($message, $url="") { global $setup, $connect, $dir, $config_dir; + $message .= '
'.var_dump(debug_backtrace()).'
'; include "error.php"; if($connect) @MYDB_close($connect); exit; } +function getPost($str){ + if(!isset($_POST[$str])){ + return ''; + } + $temp = $_POST[$str]; + $temp=str_replace(" ","",$temp); + $temp=str_replace("\n","",$temp); + $temp=strip_tags($temp); + $temp=str_replace(" ","",$temp); + $temp=str_replace(" ","",$temp); + return $temp; +} + // 게시판의 생성유무 검사 function isTable($connect, $str, $dbname='') { if(!$dbname) { diff --git a/che_close/license.txt b/che_close/license.txt index ceed7e73..354bdf83 100644 --- a/che_close/license.txt +++ b/che_close/license.txt @@ -1,36 +1 @@ -ZeroBoard에 대한 라이센스 명시입니다. - -아래 라이센스에 동의하시는 분만 제로보드를 사용할수 있습니다. - -프로그램명 : Zeroboard -배포버젼 : 4.1 pl 8 (2006. 3. 15) -개발자 : zero -Homepage : http://zeroboard.com - -1. 제로보드의 배포권은 ZEROBOARD.COM에서 허용한 곳에만 있습니다. - (허락 맡지 않은 재배포는 허용하지 않습니다.) - -2. 제로보드는 저작권을 아래 3번항목에 의해 표기하는 한도내에서 - 개인홈페이지 및 학교나 교회등의 비영리단체, 기업이나 기타 영리단체에서 사용할수 있습니다. - (반국가 단체나 불법 싸이트에서의 사용은 금지합니다) - -3. 제로보드 사용시 저작권 명시부분을 훼손하면 안됩니다. - 프로그램 소스, html소스상의 라이센스 및 웹상 출력물 하단에 있는 카피라이트와 링크를 수정하지 마십시요. - (저작권 표시는 게시판 배포시 작성된 형식만을 허용합니다. 임의 수정은 금지합니다) - -4. 단, 정식 등록버젼은 저작권 표시를 삭제할수 있습니다. - 정식 등록버젼에 대한 문의는 http://zeroboard.com 에서 문의 방법을 찾아주시기 바랍니다. - -5. 링크서비스등의 기본 용도에 맞지 않는 사용은 금지합니다. - -6. 제로보드의 사용으로 인한 데이타 손실 및 기타 손해등 어떠한 사고나 문제에 대해서 ZEROBOARD.COM은 절대 책임을 지지 않습니다. - -7. 제로보드에 대해 ZEROBOARD.COM은 유지/ 보수의 의무가 없습니다. - -8. 제로보드 소스는 개인적으로 사용시 수정하여 사용할수 있지만 수정된 프로그램의 재배포는 금지합니다. - (저작권 관련 부분은 수정금지입니다) - -9. 제로보드에 쓰인 스킨의 저작권은 스킨 제작자에게 있으며 제작자의 동의하에 수정배포가 가능합니다. - -10. 기타 의문사항은 http://zeroboard.com 을 이용해 주시기 바랍니다. - (질문등에 대한 내용은 메일로 받지 않습니다) +Let's GO \ No newline at end of file diff --git a/che_close/main.php b/che_close/main.php index 352962ed..4e774ffa 100644 --- a/che_close/main.php +++ b/che_close/main.php @@ -12,7 +12,7 @@ $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"" $me = MYDB_fetch_array($result); //그새 사망이면 -if($me[no] == 0) { +if($me['no'] == 0) { echo "a"; echo ""; exit(0); diff --git a/i_login/Post.php b/i_login/Post.php index 1532c246..b6575890 100644 --- a/i_login/Post.php +++ b/i_login/Post.php @@ -30,7 +30,7 @@ if($DB->Count($rs) == 1) { $rs = $DB->Select('LOGIN', 'SYSTEM', "NO='1'"); $system = $DB->Get($rs); - if($system['LOGIN'] == Y || $member['GRADE'] >= 5) { + if($system['LOGIN'] == 'Y' || $member['GRADE'] >= 5) { $SESSION->Login($member['NO']); $DB->Update('MEMBER', "CONMSG='{$conmsg}', IP='{$_SERVER['REMOTE_ADDR']}'", "NO='{$member['NO']}'"); diff --git a/twe/index.html b/twe/index.html new file mode 100644 index 00000000..2a5d662e --- /dev/null +++ b/twe/index.html @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/twe_close/MYDB.php b/twe_close/MYDB.php new file mode 100644 index 00000000..fff8a763 --- /dev/null +++ b/twe_close/MYDB.php @@ -0,0 +1,41 @@ + diff --git a/twe_close/_119.php b/twe_close/_119.php new file mode 100644 index 00000000..18c6cc66 --- /dev/null +++ b/twe_close/_119.php @@ -0,0 +1,54 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +$query = "select turntime,tnmt_time from game"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); + +$query = "select plock from plock"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$plock = MYDB_fetch_array($result); +?> + + + +삼국지 모의전투 PHP (유기체서버) + + + + + + 시간조정 : 최종갱신 :
+ 시간조정 : 토너먼트 :
+ 봉급지급 :
+ 락 풀 기 : 현재 : 0?"동결중":"가동중";?>
+ + + + diff --git a/twe_close/_119_b.php b/twe_close/_119_b.php new file mode 100644 index 00000000..2f3b9668 --- /dev/null +++ b/twe_close/_119_b.php @@ -0,0 +1,57 @@ +location.replace('_119.php');"; +} + +switch($btn) { +case "분당김": + $query = "update game set turntime=DATE_SUB(turntime, INTERVAL $minute MINUTE),starttime=DATE_SUB(starttime, INTERVAL $minute MINUTE),tnmt_time=DATE_SUB(tnmt_time, INTERVAL $minute MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set turntime=DATE_SUB(turntime, INTERVAL $minute MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update auction set expire=DATE_SUB(expire, INTERVAL $minute MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; +case "분지연": + $query = "update game set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE),starttime=DATE_ADD(starttime, INTERVAL $minute MINUTE),tnmt_time=DATE_ADD(tnmt_time, INTERVAL $minute MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update auction set expire=DATE_ADD(expire, INTERVAL $minute MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; +case "토너분당김": + $query = "update game set tnmt_time=DATE_SUB(tnmt_time, INTERVAL $minute2 MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; +case "토너분지연": + $query = "update game set tnmt_time=DATE_ADD(tnmt_time, INTERVAL $minute2 MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; +case "금지급": + processGoldIncome($connect); + break; +case "쌀지급": + processRiceIncome($connect); + break; +case "락걸기": + $query = "update plock set plock=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; +case "락풀기": + $query = "update plock set plock=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; +} + +echo ""; +?> diff --git a/twe_close/_admin1.php b/twe_close/_admin1.php new file mode 100644 index 00000000..ae57c86f --- /dev/null +++ b/twe_close/_admin1.php @@ -0,0 +1,223 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +$admin = getAdmin($connect); +?> + + +게임관리 + + + + +
운영자메세지'>
중원정세추가 시작시간변경 현재도시훈사
최대 장수
+ +
게 임 관 리
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
운영자메세지
중원정세추가
쿼리 요청
시작시간변경현재도시훈사
최대 장수>최대 국가>
기준 장수수>현재 수입률%
시작 년도최근 갱신 시간 
턴시간
+ + + + + + + + + + + + + + + + + + + + "; + } + echo " + "; + + for($i=10; $i <= 14; $i++) { + $att = $admin["att{$i}"]; + $def = $admin["def{$i}"]; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $cst = $admin["cst{$i}"]; + $ric = $admin["ric{$i}"]; + echo " + + + + + + + + + "; + } + echo " + "; + + for($i=20; $i <= 27; $i++) { + $att = $admin["att{$i}"]; + $def = $admin["def{$i}"]; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $cst = $admin["cst{$i}"]; + $ric = $admin["ric{$i}"]; + echo " + + + + + + + + + "; + } + echo " + "; + + for($i=30; $i <= 38; $i++) { + $att = $admin["att{$i}"]; + $def = $admin["def{$i}"]; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $cst = $admin["cst{$i}"]; + $ric = $admin["ric{$i}"]; + echo " + + + + + + + + + "; + } + echo " + "; + + for($i=40; $i <= 43; $i++) { + $att = $admin["att{$i}"]; + $def = $admin["def{$i}"]; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $cst = $admin["cst{$i}"]; + $ric = $admin["ric{$i}"]; + echo " + + + + + + + + + "; + } + echo " + "; +?> +
공격방어기동회피가격군량
".getTypename($i)."
".getTypename($i)."
".getTypename($i)."
".getTypename($i)."
".getTypename($i)."
+
+
+ + + + + + + + + + + + + +
리 셋 요 청
HOSTNAMEDB_IDPASSWORDDB_NAME
+
+ + + +
+ + diff --git a/twe_close/_admin1_submit.php b/twe_close/_admin1_submit.php new file mode 100644 index 00000000..3f3bd5b2 --- /dev/null +++ b/twe_close/_admin1_submit.php @@ -0,0 +1,180 @@ +location.replace('_admin1.php');"; +} + +switch($btn) { + case "변경": + $msg = addslashes(SQ2DQ($msg)); + $query = "update game set msg='$msg' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case "요청": + $query = $q; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case "로그쓰기": + $lognum = $admin[historyindex] + 1; + if($lognum >= 29) { $lognum = 0; } + $history[0] = "{$log}"; + pushHistory($connect, $history); + break; + case "변경1": + $query = "update game set starttime='$starttime' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case "변경2": + $query = "update game set maxgeneral='$maxgeneral' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case "변경3": + $query = "update game set maxnation='$maxnation' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case "변경4": + $query = "update game set startyear='$startyear' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case "변경5": + $query = "update game set normgeneral='$gen_rate' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case "1분턴": + case "2분턴": + case "5분턴": + case "10분턴": + case "20분턴": + case "30분턴": + case "60분턴": + case "120분턴": + switch($btn) { + case "1분턴": $turnterm = 7; $unit = 60; break; + case "2분턴": $turnterm = 6; $unit = 120; break; + case "5분턴": $turnterm = 5; $unit = 300; break; + case "10분턴": $turnterm = 4; $unit = 600; break; + case "20분턴": $turnterm = 3; $unit = 1200; break; + case "30분턴": $turnterm = 2; $unit = 1800; break; + case "60분턴": $turnterm = 1; $unit = 3600; break; + case "120분턴": $turnterm = 0; $unit = 7200; break; + } + $turn = ($admin[year] - $admin[startyear]) * 12 + $admin[month] - 1; + $starttime = date("Y-m-d H:i:s", strtotime($admin[turntime]) - $turn * $unit); + $starttime = cutTurn($starttime, $turnterm); + $query = "update game set turnterm='$turnterm',starttime='$starttime' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 턴시간이 길어지는 경우 랜덤턴 배정 + if($turnterm < $admin[turnterm]) { + $query = "select no from general"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $gen = MYDB_fetch_array($result); + $turntime = getRandTurn($turnterm); + $query = "update general set turntime='$turntime' where no='$gen[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + // 턴시간이 너무 멀리 떨어진 선수 제대로 보정 + } else { + $query = "select no,turntime from general"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $gen = MYDB_fetch_array($result); + $num = floor((strtotime($gen[turntime]) - strtotime($admin[turntime])) / $unit); + if($num > 0) { + $gen[turntime] = date("Y-m-d H:i:s", strtotime($gen[turntime]) - $unit * $num); + $query = "update general set turntime='$gen[turntime]' where no='$gen[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + } + $history[count($history)] = "★턴시간이 $btn으로 변경됩니다."; + pushHistory($connect, $history); + break; + case "변경6": + $query = "update game set att0='$att0',def0='$def0',spd0='$spd0',avd0='$avd0',ric0='$ric0',cst0='$cst0' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att1='$att1',def1='$def1',spd1='$spd1',avd1='$avd1',ric1='$ric1',cst1='$cst1' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att2='$att2',def2='$def2',spd2='$spd2',avd2='$avd2',ric2='$ric2',cst2='$cst2' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att3='$att3',def3='$def3',spd3='$spd3',avd3='$avd3',ric3='$ric3',cst3='$cst3' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att4='$att4',def4='$def4',spd4='$spd4',avd4='$avd4',ric4='$ric4',cst4='$cst4' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att5='$att5',def5='$def5',spd5='$spd5',avd5='$avd5',ric5='$ric5',cst5='$cst5' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update game set att10='$att10',def10='$def10',spd10='$spd10',avd10='$avd10',ric10='$ric10',cst10='$cst10' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att11='$att11',def11='$def11',spd11='$spd11',avd11='$avd11',ric11='$ric11',cst11='$cst11' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att12='$att12',def12='$def12',spd12='$spd12',avd12='$avd12',ric12='$ric12',cst12='$cst12' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att13='$att13',def13='$def13',spd13='$spd13',avd13='$avd13',ric13='$ric13',cst13='$cst13' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att14='$att14',def14='$def14',spd14='$spd14',avd14='$avd14',ric14='$ric14',cst14='$cst14' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update game set att20='$att20',def20='$def20',spd20='$spd20',avd20='$avd20',ric20='$ric20',cst20='$cst20' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att21='$att21',def21='$def21',spd21='$spd21',avd21='$avd21',ric21='$ric21',cst21='$cst21' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att22='$att22',def22='$def22',spd22='$spd22',avd22='$avd22',ric22='$ric22',cst22='$cst22' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att23='$att23',def23='$def23',spd23='$spd23',avd23='$avd23',ric23='$ric23',cst23='$cst23' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att24='$att24',def24='$def24',spd24='$spd24',avd24='$avd24',ric24='$ric24',cst24='$cst24' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att25='$att25',def25='$def25',spd25='$spd25',avd25='$avd25',ric25='$ric25',cst25='$cst25' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att26='$att26',def26='$def26',spd26='$spd26',avd26='$avd26',ric26='$ric26',cst26='$cst26' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att27='$att27',def27='$def27',spd27='$spd27',avd27='$avd27',ric27='$ric27',cst27='$cst27' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update game set att30='$att30',def30='$def30',spd30='$spd30',avd30='$avd30',ric30='$ric30',cst30='$cst30' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att31='$att31',def31='$def31',spd31='$spd31',avd31='$avd31',ric31='$ric31',cst31='$cst31' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att32='$att32',def32='$def32',spd32='$spd32',avd32='$avd32',ric32='$ric32',cst32='$cst32' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att33='$att33',def33='$def33',spd33='$spd33',avd33='$avd33',ric33='$ric33',cst33='$cst33' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att34='$att34',def34='$def34',spd34='$spd34',avd34='$avd34',ric34='$ric34',cst34='$cst34' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att35='$att35',def35='$def35',spd35='$spd35',avd35='$avd35',ric35='$ric35',cst35='$cst35' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att36='$att36',def36='$def36',spd36='$spd36',avd36='$avd36',ric36='$ric36',cst36='$cst36' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att37='$att37',def37='$def37',spd37='$spd37',avd37='$avd37',ric37='$ric37',cst37='$cst37' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att38='$att38',def38='$def38',spd38='$spd38',avd38='$avd38',ric38='$ric38',cst38='$cst38' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update game set att40='$att40',def40='$def40',spd40='$spd40',avd40='$avd40',ric40='$ric40',cst40='$cst40' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att41='$att41',def41='$def41',spd41='$spd41',avd41='$avd41',ric41='$ric41',cst41='$cst41' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att42='$att42',def42='$def42',spd42='$spd42',avd42='$avd42',ric42='$ric42',cst42='$cst42' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set att43='$att43',def43='$def43',spd43='$spd43',avd43='$avd43',ric43='$ric43',cst43='$cst43' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; +} + +echo ""; +?> + diff --git a/twe_close/_admin2.php b/twe_close/_admin2.php new file mode 100644 index 00000000..5cc7ca07 --- /dev/null +++ b/twe_close/_admin2.php @@ -0,0 +1,149 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +$query = "select conlimit,conweight from game where no=1"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); +?> + + +회원관리 + + + + + + +
회 원 관 리
+
+ + + + + + + + + +
접속제한
제한등급 + style=color:white;background-color:black;font-size:13;> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
회원선택

NPC
NPC유저
특별회원
접속제한
블럭회원
+"; + +$query = "select no,name,npc,userlevel,block from general order by npc,binary(name)"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$gencount = MYDB_num_rows($result); + +for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + $style = "style=;"; + if($general[block] > 0) { $style .= "background-color:red;"; } + if($general[npc] >= 2) { $style .= "color:cyan;"; } + elseif($general[npc] == 1) { $style .= "color:skyblue;"; } + if($general[con] > $admin[conlimit]) { $style .= "color:red;"; } + if($general[userlevel] > 2) { $style .= "color:blue;"; } + + echo " + "; +} + +echo " + + 아이템 지급 + + + + + +
블럭 +
+ 1단계:발언권, 2단계:턴블럭 +
강제 사망
이벤트
이벤트2
특별회원
접속제한
턴설정
NPC해제
메세지 전달
+
+ + + +
+ + diff --git a/twe_close/_admin2_submit.php b/twe_close/_admin2_submit.php new file mode 100644 index 00000000..295d675e --- /dev/null +++ b/twe_close/_admin2_submit.php @@ -0,0 +1,432 @@ +location.replace('_admin2.php');"; +} + +switch($btn) { + case "전체 접속허용": + $query = "update general set con=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case "전체 접속제한": + $query = "update general set con=1000"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case "접속가중치": + $query = "update game set conweight='$conweight' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case "블럭 해제": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set block=0 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "1단계 블럭": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set block=1,killturn=24 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select user_id from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + $uid[$i] = $gen[user_id]; + } + $connect = dbConn("sammo"); + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($uid); $i++) { + //블럭정보 + $query = "update MEMBER set block_num=block_num+1,block_date='$date' where id='$uid[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "2단계 블럭": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set gold=0,rice=0,block=2,killturn=24 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select user_id from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + $uid[$i] = $gen[user_id]; + } + $connect = dbConn("sammo"); + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($uid); $i++) { + //블럭정보 + $query = "update MEMBER set block_num=block_num+1,block_date='$date' where id='$uid[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "3단계 블럭": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set gold=0,rice=0,block=3,killturn=24 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select user_id from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + $uid[$i] = $gen[user_id]; + } + $connect = dbConn("sammo"); + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($uid); $i++) { + //블럭정보 + $query = "update MEMBER set block_num=block_num+1,block_date='$date' where id='$uid[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "무한삭턴": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set killturn=8000 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "강제 사망": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set turn0=0,killturn=0,turntime='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "특기 부여": + $query = "select year,month from game where no=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + $msg = $btn." 지급!"; + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select no,leader,power,intel,history from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $special2 = getSpecial2($connect, $general[leader], $general[power], $general[intel]); + + $query = "update general set specage2=age,special2='$special2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "●특기 【".getGenSpecial($special2)."】(을)를 익혔습니다!"; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:특기 【".getGenSpecial($special2)."】(을)를 습득"); + pushGenLog($general, $log); + } + break; + case "경험치1000": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + $msg = $btn." 지급!"; + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set experience=experience+1000 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "공헌치1000": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + $msg = $btn." 지급!"; + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set dedication=dedication+1000 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "보숙10000": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + $msg = "보병숙련도+10000 지급!"; + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set dex0=dex0+10000 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "궁숙10000": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + $msg = "궁병숙련도+10000 지급!"; + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set dex10=dex10+10000 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "기숙10000": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + $msg = "기병숙련도+10000 지급!"; + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set dex20=dex20+10000 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "귀숙10000": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + $msg = "귀병숙련도+10000 지급!"; + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set dex30=dex30+10000 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "차숙10000": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + $msg = "차병숙련도+10000 지급!"; + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set dex40=dex40+10000 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "특별회원 임명": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set userlevel=3 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "특별회원 해제": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set userlevel=1 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "접속 허용": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set con=0 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "접속 제한": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set con=1000 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "메세지 전달": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date',newmsg=1 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "무기지급": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + if($weap == 0) { $msg = "무기 회수!"; } + else { $msg = getWeapName($weap)." 지급!"; } + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + if($weap == 0) { + $query = "update general set weap='0' where no='$genlist[$i]'"; + } else { + $query = "update general set weap='$weap' where no='$genlist[$i]' and weap<'$weap'"; + } + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "책지급": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + if($weap == 0) { $msg = "서적 회수!"; } + else { $msg = getBookName($weap)." 지급!"; } + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + if($weap == 0) { + $query = "update general set book='0' where no='$genlist[$i]'"; + } else { + $query = "update general set book='$weap' where no='$genlist[$i]' and book<'$weap'"; + } + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "말지급": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + if($weap == 0) { $msg = "말 회수!"; } + else { $msg = getHorseName($weap)." 지급!"; } + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + if($weap == 0) { + $query = "update general set horse='0' where no='$genlist[$i]'"; + } else { + $query = "update general set horse='$weap' where no='$genlist[$i]' and horse<'$weap'"; + } + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "도구지급": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + if($weap == 0) { $msg = "특수도구 회수!"; } + else { $msg = getItemName($weap)." 지급!"; } + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + if($weap == 0) { + $query = "update general set item='0' where no='$genlist[$i]'"; + } else { + $query = "update general set item='$weap' where no='$genlist[$i]' and item<'$weap'"; + } + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "NPC해제": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set npc=1 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "하야입력": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set turn0='00000000000045' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "방랑해산": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set turn0='00000000000047',turn1='00000000000056' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "NPC설정": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set npc=2 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "00턴": + $query = "select turnterm from game where no=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + for($i=0; $i < sizeof($genlist); $i++) { + $turntime = getRandTurn($admin[turnterm]); + $cutTurn = cutTurn($turntime, $admin[turnterm]); + $query = "update general set turntime='$cutTurn' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "랜덤턴": + $query = "select turnterm from game where no=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + for($i=0; $i < sizeof($genlist); $i++) { + $turntime = getRandTurn($admin[turnterm]); + $query = "update general set turntime='$turntime' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; +} + +echo ""; +?> + diff --git a/twe_close/_admin3.php b/twe_close/_admin3.php new file mode 100644 index 00000000..6849cfee --- /dev/null +++ b/twe_close/_admin3.php @@ -0,0 +1,100 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} +//$admin = getAdmin($connect); +?> + + +특별회원 + + + + + + +
특 별 회 원
+
+ + + + + + + + + + + + + + + +
회원선택

무장
지장
+"; + +$query = "select no,name,power,intel from general where userlevel>2 order by npc,binary(name)"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$gencount = MYDB_num_rows($result); + +for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + if($general[power] >= $general[intel]) { + echo " + "; + } else { + echo " + "; + } +} + +echo " + + 아이템 지급 + + + + + +
특별회원
메세지 전달
+
+ + + +
+ + diff --git a/twe_close/_admin3_submit.php b/twe_close/_admin3_submit.php new file mode 100644 index 00000000..60ed41b5 --- /dev/null +++ b/twe_close/_admin3_submit.php @@ -0,0 +1,134 @@ +location.replace('_admin3.php');"; +} + +switch($btn) { + case "무기지급": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + if($weap == 0) { $msg = "무기 회수!"; } + else { $msg = getWeapName($weap)." 지급!"; } + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + if($weap == 0) { + $query = "update general set weap='0' where no='$genlist[$i]'"; + } else { + $query = "update general set weap='$weap' where no='$genlist[$i]' and weap<'$weap'"; + } + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "책지급": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + if($weap == 0) { $msg = "서적 회수!"; } + else { $msg = getBookName($weap)." 지급!"; } + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + if($weap == 0) { + $query = "update general set book='0' where no='$genlist[$i]'"; + } else { + $query = "update general set book='$weap' where no='$genlist[$i]' and book<'$weap'"; + } + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "말지급": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + if($weap == 0) { $msg = "말 회수!"; } + else { $msg = getHorseName($weap)." 지급!"; } + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + if($weap == 0) { + $query = "update general set horse='0' where no='$genlist[$i]'"; + } else { + $query = "update general set horse='$weap' where no='$genlist[$i]' and horse<'$weap'"; + } + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "도구지급": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + if($weap == 0) { $msg = "특수도구 회수!"; } + else { $msg = getItemName($weap)." 지급!"; } + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + for($i=0; $i < sizeof($genlist); $i++) { + if($weap == 0) { + $query = "update general set item='0' where no='$genlist[$i]'"; + } else { + $query = "update general set item='$weap' where no='$genlist[$i]' and item<'$weap'"; + } + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "특별회원 해제": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set userlevel=1 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "메세지 전달": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date',newmsg=1 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; +} + +echo ""; +?> + diff --git a/twe_close/_admin4.php b/twe_close/_admin4.php new file mode 100644 index 00000000..20a2588b --- /dev/null +++ b/twe_close/_admin4.php @@ -0,0 +1,193 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +$query = "select conlimit from game where no=1"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); +?> + + +멀티관리 + + + + + + +
멀 티 관 리
+
+ + + + + + + + + + + + + + + +
회원선택

NPC
NPC유저
특별회원
접속제한
블럭회원
+"; + +$query = "select no,name,npc,userlevel,block from general where ip!='' order by npc,ip"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$gencount = MYDB_num_rows($result); + +for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + $style = "style=;"; + if($general[block] > 0) { $style .= "background-color:red;"; } + if($general[npc] >= 2) { $style .= "color:cyan;"; } + elseif($general[npc] == 1) { $style .= "color:skyblue;"; } + if($general[con] > $admin[conlimit]) { $style .= "color:red;"; } + if($general[userlevel] > 2) { $style .= "color:blue;"; } + + echo " + "; +} + +echo " + "; +?> + 블럭 +
+ 1단계:발언권, 2단계:턴블럭 +
강제 사망
메세지 전달
+ + + + + + + + + +1"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$ipCount = MYDB_num_rows($result); +$genName = ""; +$genDate = ""; +$genIP = ""; +$genID = ""; +$conMsg = ""; +for($i=0; $i < $ipCount; $i++) { + $ip = MYDB_fetch_array($result); + + $query = "select name,ip,lastconnect,user_id,block,conmsg from general where ip like '$ip[ip2]%' and npc<2 order by ip"; + $genResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($genResult); + for($k=0; $k < $genCount; $k++) { + $gen = MYDB_fetch_array($genResult); + if($gen[block] > 0) $genName .= "{$gen[name]}
"; + else $genName .= $gen[name]."
"; + $genDate .= $gen[lastconnect]."
"; + $genIP .= $gen[ip]."
"; + $genID .= $gen[user_id]."
"; + $conMsg .= $gen[conmsg]."
"; + } + $genName .= "
"; + $genDate .= "
"; + $genIP .= "
"; + $genID .= "
"; + $conMsg .= "
"; +} +echo " + + + + + "; +?> + +
장수명최근로그인IPID-
$genName$genDate$genIP$genID$conMsg
+ + + + + + + + + +1"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$ipCount = MYDB_num_rows($result); +$genName = ""; +$genDate = ""; +$genIP = ""; +$genID = ""; +$conMsg = ""; +for($i=0; $i < $ipCount; $i++) { + $ip = MYDB_fetch_array($result); + + $query = "select name,password,lastconnect,user_id,block,conmsg from general where password='$ip[password]' and npc<2"; + $genResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($genResult); + for($k=0; $k < $genCount; $k++) { + $gen = MYDB_fetch_array($genResult); + if($gen[block] > 0) $genName .= "{$gen[name]}
"; + else $genName .= $gen[name]."
"; + $genDate .= $gen[lastconnect]."
"; + $genIP .= substr($gen[password],0,10)." ...
"; + $genID .= $gen[user_id]."
"; + $conMsg .= $gen[conmsg]."
"; + } + $genName .= "
"; + $genDate .= "
"; + $genIP .= "
"; + $genID .= "
"; + $conMsg .= "
"; +} +echo " + + + + + "; +?> + +
장수명최근로그인PasswordID-
$genName$genDate$genIP$genID$conMsg
+
+ + + +
+ + diff --git a/twe_close/_admin4_submit.php b/twe_close/_admin4_submit.php new file mode 100644 index 00000000..344f7def --- /dev/null +++ b/twe_close/_admin4_submit.php @@ -0,0 +1,107 @@ +location.replace('_admin4.php');"; +} + +switch($btn) { + case "블럭 해제": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set block=0 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "1단계 블럭": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set block=1,killturn=24 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select user_id from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + $uid[$i] = $gen[user_id]; + } + $connect = dbConn("sammo"); + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($uid); $i++) { + //블럭정보 + $query = "update MEMBER set block_num=block_num+1,block_date='$date' where id='$uid[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "2단계 블럭": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set block=2,killturn=24 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select user_id from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + $uid[$i] = $gen[user_id]; + } + $connect = dbConn("sammo"); + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($uid); $i++) { + //블럭정보 + $query = "update MEMBER set block_num=block_num+1,block_date='$date' where id='$uid[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "3단계 블럭": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set block=3,killturn=24 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select user_id from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + $uid[$i] = $gen[user_id]; + } + $connect = dbConn("sammo"); + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($uid); $i++) { + //블럭정보 + $query = "update MEMBER set block_num=block_num+1,block_date='$date' where id='$uid[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "무한삭턴": + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set killturn=8000 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "강제 사망": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "update general set turn0=0,killturn=0,turntime='$date' where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; + case "메세지 전달": + $date = date('Y-m-d H:i:s'); + for($i=0; $i < sizeof($genlist); $i++) { + $query = "select msgindex from general where no='$genlist[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}_type=10,msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_who='$genlist[$i]'+10000,msg{$you[msgindex]}_when='$date',newmsg=1 where no='$genlist[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; +} + +echo ""; +?> + diff --git a/twe_close/_admin5.php b/twe_close/_admin5.php new file mode 100644 index 00000000..d1e021ab --- /dev/null +++ b/twe_close/_admin5.php @@ -0,0 +1,313 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +if($type == 0) { + $type = 0; +} +if($type2 == 0) { + $type2 = 0; +} +$sel[$type] = "selected"; +$sel2[$type2] = "selected"; + +$query = "select conlimit from game where no=1"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); +?> + + +일제정보 + + + + + + + +
일 제 정 보
+
정렬순서 : + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"; +} + +?> +
국명접률단접국력단합장수속령기술전략국고병량평금평쌀평통평무평지평Lv보숙궁숙기숙귀숙차숙총병인구인구율농업상업치안성벽수비국명
$nation[name] {$nation[connect]}  {$nation[con]}  {$nation[power]}  {$nation[chemi]}  {$gen[cnt]}  {$city[cnt]}  {$nation[tech]}  {$nation[tricklimit]}  {$nation[gold]}  {$nation[rice]}  {$gen[avgg]}  {$gen[avgr]}  {$gen[avgl]}  {$gen[avgp]}  {$gen[avgi]}  {$gen[avge]}  {$nation[dex0]}  {$nation[dex10]}  {$nation[dex20]}  {$nation[dex30]}  {$nation[dex40]}  {$gen[crew]}/{$gen[leader]}00  {$city[pop]}/{$city[pop2]}  {$city[rate]}%  {$city[agri]}%  {$city[comm]}%  {$city[secu]}%  {$city[wall]}%  {$city[def]}% $nation[name]
+ + +
+ + + + + + + +국력(국력,장수수,도시수,인구/100,최대인구/100,국가자원/100,장수자원/100,능력치,숙련/1000,경험공헌/100)"; break; +case 1: echo ""; break; +case 2: echo ""; break; +case 3: echo ""; break; +case 4: echo ""; break; +case 5: echo ""; break; +case 6: echo ""; break; +} +?> + + + + + + +"; + switch($type2) { + default: + case 0: echo ""; break; + case 1: echo ""; break; + case 2: echo ""; break; + case 3: echo ""; break; + case 4: echo ""; break; + case 5: echo ""; break; + case 6: echo ""; break; + } + + echo " + +"; +} +?> +
국가수장수수국가별성향국가성향장수성격장수특기병종수기타
{$stat[year]}{$stat[month]}{$stat[nation_count]}{$stat[gen_count]}{$stat[power_hist]}{$stat[nation_name]}{$stat[nation_hist]}{$stat[personal_hist]}{$stat[special_hist]}{$stat[crewtype]}{$stat[etc]}
+ + + + +
+ + diff --git a/twe_close/_admin5_submit.php b/twe_close/_admin5_submit.php new file mode 100644 index 00000000..3a6bcb98 --- /dev/null +++ b/twe_close/_admin5_submit.php @@ -0,0 +1,30 @@ +location.replace('_admin5.php');"; +} + +switch($btn) { + case "국가변경": + if($nation == 0) { + $query = "update general set nation=0,level=0 where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update general set nation='{$nation}',level=1 where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + break; +} + +echo ""; +?> + diff --git a/twe_close/_admin6.php b/twe_close/_admin6.php new file mode 100644 index 00000000..8b003b99 --- /dev/null +++ b/twe_close/_admin6.php @@ -0,0 +1,101 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +if($type == 0) { + $type = 0; +} +$sel[$type] = "selected"; + +?> + + +접속정보 + + + + + + + +
접 속 정 보
정렬순서 : + +
+
+ + + + + + + + + + + + + + + + + + + + + "; +} + +?> +
장수명접속률시작연령연령총갱신갱신/턴총로그인갱신/로그인
$gen[name]$gen[connect]$gen[startage]$gen[age]".round($gen[refcnt]/2, 1)."".round($gen[ref]/2,1)."$gen[logcnt]".round($gen[log]/2,1)."
+ + + +
+ + diff --git a/twe_close/_admin7.php b/twe_close/_admin7.php new file mode 100644 index 00000000..c2013275 --- /dev/null +++ b/twe_close/_admin7.php @@ -0,0 +1,133 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +if($btn == '정렬하기') { + $gen = 0; +} + +if($type == 0) { + $type = 0; +} +$sel[$type] = "selected"; +?> + + +로그정보 + + + + + + + +
로 그 정 보
+
+ 정렬순서 : + + + 대상장수 : + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
장 수 정 보-
+ +   +
개인 기록전투 기록
+ + + +
장수 열전전투 결과
+ + + +
+ + + +
+ + diff --git a/twe_close/_admin8.php b/twe_close/_admin8.php new file mode 100644 index 00000000..3bc04662 --- /dev/null +++ b/twe_close/_admin8.php @@ -0,0 +1,156 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +if($btn == '정렬하기') { + $gen = 0; +} + +if($type == 0) { + $type = 0; +} +$sel[$type] = "selected"; +?> + + +외교정보 + + + + + + + +
외 교 정 보
+
+ 정렬순서 : + + +
+
+ + + + + + + + + +교 전"; break; + case 1: $state = "선포중"; break; + case 2: $state = "통 상"; break; + case 3: $state = "통합수락중"; break; + case 4: $state = "통합제의중"; break; + case 5: $state = "합병수락중"; break; + case 6: $state = "합병제의중"; break; + case 7: $state = "불가침"; break; + } + + $date = date('Y-m-d H:i:s'); + $note = ""; + if($dip[fixed] != "") { + if($dip[state] == 7) { + $note .= $dip[fixed]; + } else { + $note .= "{$dip[fixed]}"; + } + if($dip[reserved] != "" || $dip2[reserved] != "") { + $note .= "
"; + } + } + if($dip[reserved] != "") { + if($dip[showing] >= $date) { + $note .= "아국측 제의: {$dip[reserved]}"; + } else { + $note .= "아국측 제의: {$dip[reserved]}"; + } + if($dip2[reserved] != "") { + $note .= "
"; + } + } + if($dip2[reserved] != "") { + if($dip2[showing] >= $date) { + $note .= "상대측 제의: {$dip2[reserved]}"; + } else { + $note .= "상대측 제의: {$dip2[reserved]}"; + } + } + if($note == "") { $note = " "; } + + echo " + + + + + + + "; +} +?> +
외 교 관 계
국 가 명국 가 명상 태기 간비 고
$nationName[$me]$nationName[$you]$state$dip[term] 개월{$note}
+ + + +
+ + diff --git a/twe_close/_simul.php b/twe_close/_simul.php new file mode 100644 index 00000000..b993bd97 --- /dev/null +++ b/twe_close/_simul.php @@ -0,0 +1,1562 @@ += 2) { printLimitMsg($me[turntime]); exit(); } + +if($me[userlevel] < 3) { + echo "특별회원이 아닙니다."; + exit(); +} + +$mydeathnumSum = 0; +$mykillnumSum = 0; +$expSum = 0; +$ricingSum = 0; +$expSum2 = 0; +$ricingSum2 = 0; + +if($isgen == "장수평균" || $isgen == "성벽평균") { + $simulCount = 1000; +} else { + $simulCount = 1; +} + +if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평균" || $isgen == "성벽평균") { + $msg2 = ""; + for($i=0; $i < $simulCount; $i++) { + $general[leader] = $leader1; + $general[power] = $power1; + $general[intel] = $intel1; + $general[crewtype] = $type1; + $general[crew] = $crew1; + $general[train] = $train1; + $general[atmos] = $atmos1; + $general[level] = $level1; + $general[explevel] = $explevel1; + $general[dex0] = $dex10; + $general[dex10] = $dex110; + $general[dex20] = $dex120; + $general[dex30] = $dex130; + $general[dex40] = $dex140; + + $oppose[leader] = $leader2; + $oppose[power] = $power2; + $oppose[intel] = $intel2; + $oppose[crewtype] = $type2; + $oppose[crew] = $crew2; + $oppose[train] = $train2; + $oppose[atmos] = $atmos2; + $oppose[level] = $level2; + $oppose[explevel] = $explevel2; + $oppose[dex0] = $dex20; + $oppose[dex10] = $dex210; + $oppose[dex20] = $dex220; + $oppose[dex30] = $dex230; + $oppose[dex40] = $dex240; + + $city[def] = $def; + $city[wall] = $wall; + + if($isgen == "장수공격" || $isgen == "장수평균") { + $opposecount = 1; + } else { + $opposecount = 0; + } + + $warphase = getRate($game, $general[crewtype], "spd"); //병종간 페이즈 수 얻기 + + // 우선 스케일링 + $city[def] *= 10; + $city[wall] *= 10; + + $msg = ""; + $msg .= "●1월:공격장수가 공격합니다.
"; + + $exp = 0; //병사 소진 시킨 만큼 + $opexp = 0; + $exp2 = 1; //능력경험치 + $phase = 0; + while($phase < $warphase) { + // 장수가 없어서 도시 공격 + if($opposecount == 0) { + $msg .= "●".getTypename($general[crewtype])."(으)로 성을 공격합니다.
"; + + $mykillnum = 0; $mydeathnum = 0; + while($phase < $warphase) { + $phase++; + $myAtt = getAtt($game, $general, $tech1); + $myDef = getDef($game, $general, $tech1); + $cityAtt = getCityAtt($city); + $cityDef = getCityDef($city); + + // 감소할 병사 수 + $cityCrew = $_armperphase + $myAtt - $cityDef; + $myCrew = $_armperphase + $cityAtt - $myDef; + $cityweight = $myAtt - $cityDef; + $myweight = $cityAtt - $myDef; + + //훈련 사기따라 + $myCrew = getCrew($myCrew, $atmos3, $general[train]); + $cityCrew = getCrew($cityCrew, $general[atmos], $train3); + //숙련도 따라 + $genDexAtt = getGenDex($general, $general[crewtype]); + $genDexDef = getGenDex($general, 40); + $cityCrew *= getDexLog($genDexAtt, ($train3-60)*7200); + $myCrew *= getDexLog(($atmos3-60)*7200, $genDexDef); + + $avoid = 1; + // 병종간 특성 + if(floor($general[crewtype]/10) == 3) { // 귀병 + $int = $general[intel] + getBookEff($general[book]); + if($general[crewtype] == 30) { + $ratio2 = $int * 5; // 0~500 즉 50% + } elseif($general[crewtype] == 31) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 32) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 33) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 34) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 35) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($general[crewtype] == 36) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($general[crewtype] == 37) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 38) { + $ratio2 = $int * 6; // 0~600 즉 60% + } + $ratio = rand() % 1000; // 0~999 + if($ratio <= $ratio2) { + $ratio = rand() % 100; // 0~99 + if($ratio >= 30) { + $type = rand() % 3; + switch($type) { + case 0: + $msg .= "급습을 성공했다!
"; + $cityCrew *= 1.2; + break; + case 1: + $msg .= "위보를 성공했다!
"; + $cityCrew *= 1.4; + break; + case 2: + $msg .= "혼란을 성공했다!
"; + $cityCrew *= 1.6; + break; + } + } else { + $type = rand() % 3; + switch($type) { + case 0: + $msg .= "급습을 실패했다!
"; + $cityCrew /= 1.2; + $myCrew *= 1.2; + break; + case 1: + $msg .= "위보를 실패했다!
"; + $cityCrew /= 1.4; + $myCrew *= 1.4; + break; + case 2: + $msg .= "혼란을 실패했다!
"; + $cityCrew /= 1.6; + $myCrew *= 1.6; + break; + } + } + } + } elseif($general[crewtype] == 40) { // 정란 + $cityCrew = $cityCrew * 1.5; + } elseif($general[crewtype] == 41) { // 충차 + $cityCrew = $cityCrew * 2.0; + } elseif($general[crewtype] == 42) { // 벽력거 + $cityCrew = $cityCrew * 1.5; + } + //군주, 참모, 장군 공격 보정 5% + if($general[level] == 12 || $general[level] == 11 || $general[level] == 10 || $general[level] == 8 || $general[level] == 6) { + $cityCrew = $cityCrew * 1.05; + } + //레벨 보정 + $cityCrew = $cityCrew * (100 + $general[explevel]/6)/100; + + //크리 + $rd = rand() % 100; // 0 ~ 99 + $ratio = CriticalRatio2($general[leader], $general[power], $general[intel]); + if($ratio >= $rd && $avoid == 1) { + $msg .= "필살공격!
"; + $cityCrew = CriticalScore2($cityCrew); + $avoid = 0; + } + //회피 + $ratio = rand() % 100; // 0 ~ 99 + $ratio2 = getRate($game, $general[crewtype], "avd"); //회피율 + if($ratio < $ratio2 && $avoid == 1) { + $msg .= "회피했다!
"; + $myCrew /= 10; // 10%만 소모 + $avoid = 0; + } + + //랜타추가 + $cityCrew *= (rand() % 21 + 90)/100; // 90~110% + $myCrew *= (rand() % 21 + 90)/100; // 90~110% + + $general[crew] -= round($myCrew); + $city[def] -= round($cityCrew); + $city[wall] -= round($cityCrew); + + $tempMyCrew = $myCrew; $tempCityCrew = $cityCrew; + $tempGeneralCrew = $general[crew]; $tempCityDef = $city[def]; + + if($city[wall] <= 0) { $city[wall] = 0; } + + if($city[def] < 0) { + $offset = round($tempCityDef*$tempMyCrew/$tempCityCrew); + $myCrew += $offset; + $general[crew] -= $offset; + $cityCrew += $tempCityDef; + $city[def] = 0; + } + if($general[crew] < 0) { + $offset = round($tempGeneralCrew*$tempCityCrew/$tempMyCrew); + $cityCrew += $offset; + $city[def] -= $offset; + $myCrew += $tempGeneralCrew; + $general[crew] = 0; + } + + $exp += $cityCrew; + $opexp += $myCrew; + $general[crew] = round($general[crew]); + $cityCrew = round($cityCrew); + $myCrew = round($myCrew); + $myAtt = round($myAtt, 2); + $myDef = round($myDef, 2); + $cityAtt = round($cityAtt, 2); + $cityDef = round($cityDef, 2); + $msg .= "● $phase : 【공격장수】 $general[crew] (-$myCrew) VS $city[def] (-$cityCrew) 【성벽】
"; + + $mykillnum += $cityCrew; $mydeathnum += $myCrew; + + if($city[def] <= 0) { break; } + if($general[crew] <= 0) { break; } + } + + // 도시쌀 소모 계산 + $opexp = round($opexp / 50); + $rice = round($opexp * 4 * getCrewtypeRice($game, 0, 0) * ($train3/100 - 0.2)); + + //원래대로 스케일링 + $city[def] = round($city[def] / 10); + $city[wall] = round($city[wall] / 10); + //내정 감소 + $dec = round($cityCrew / 10); + $city[agri] -= $dec; + $city[comm] -= $dec; + $city[secu] -= $dec; + if($city[agri] < 0) { $city[agri] = 0; } + if($city[comm] < 0) { $city[comm] = 0; } + if($city[secu] < 0) { $city[secu] = 0; } + $msg .= "★병사수 변화 : -$mydeathnum vs -$mykillnum
"; + $msg .= "★【성벽】내정 감소량 : $dec 【성벽】쌀 소모 : $rice
"; + +// $msg2 .= "★병사수 변화 : -$mydeathnum vs -$mykillnum   "; +// $msg2 .= "★【성벽】내정 감소량 : $dec 【성벽】쌀 소모 : $rice
"; + + if($city[def] == 0 || $general[crew] == 0) { + break; + } + // 장수 대결 + } else { + $msg .= "●".getTypename($general[crewtype])."(으)로 수비장수의 ".getTypename($oppose[crewtype])."(을)를 공격합니다.
"; + + $mykillnum = 0; $mydeathnum = 0; + while($phase < $warphase) { + $phase++; + + $myAtt = getAtt($game, $general, $tech1); + $myDef = getDef($game, $general, $tech1); + $opAtt = getAtt($game, $oppose, $tech2); + $opDef = getDef($game, $oppose, $tech2); + // 감소할 병사 수 + $myCrew = $_armperphase + $opAtt - $myDef; + $opCrew = $_armperphase + $myAtt - $opDef; + //훈련 사기따라 + $myCrew = getCrew($myCrew, $oppose[atmos], $general[train]); + $opCrew = getCrew($opCrew, $general[atmos], $oppose[train]); + //숙련도 따라 + $genDexAtt = getGenDex($general, $general[crewtype]); + $genDexDef = getGenDex($general, $oppose[crewtype]); + $oppDexAtt = getGenDex($oppose, $oppose[crewtype]); + $oppDexDef = getGenDex($oppose, $general[crewtype]); + $opCrew *= getDexLog($genDexAtt, $oppDexDef); + $myCrew *= getDexLog($oppDexAtt, $genDexDef); + + $myAvoid = 1; + $opAvoid = 1; + // 병종간 특성 + if(floor($general[crewtype]/10) == 3) { // 귀병 + $int = $general[intel] + getBookEff($general[book]); + if($general[crewtype] == 30) { + $ratio2 = $int * 5; // 0~500 즉 50% + } elseif($general[crewtype] == 31) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 32) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 33) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 34) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 35) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($general[crewtype] == 36) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($general[crewtype] == 37) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 38) { + $ratio2 = $int * 6; // 0~600 즉 60% + } + $ratio = rand() % 1000; // 0~999 + if($ratio <= $ratio2) { + $ratio = rand() % 100; + if($ratio >= 30) { + $type = rand() % 5; // 0~4 + switch($type) { + case 0: + $msg .= "위보를 성공했다!
"; + $opCrew *= 1.2; + break; + case 1: + $msg .= "매복을 성공했다!
"; + $opCrew *= 1.4; + break; + case 2: + $msg .= "반목을 성공했다!
"; + $opCrew *= 1.6; + break; + case 3: + $msg .= "화계를 성공했다!
"; + $opCrew *= 1.8; + break; + case 4: + $msg .= "혼란을 성공했다!
"; + $opCrew *= 2.0; + break; + } + } else { + $type = rand() % 5; // 0~4 + switch($type) { + case 0: + $msg .= "위보를 실패했다!
"; + $opCrew /= 1.1; + $myCrew *= 1.1; + break; + case 1: + $msg .= "매복을 실패했다!
"; + $opCrew /= 1.2; + $myCrew *= 1.2; + break; + case 2: + $msg .= "반목을 실패했다!
"; + $opCrew /= 1.3; + $myCrew *= 1.3; + break; + case 3: + $msg .= "화계를 실패했다!
"; + $opCrew /= 1.4; + $myCrew *= 1.4; + break; + case 4: + $msg .= "혼란을 실패했다!
"; + $opCrew /= 1.5; + $myCrew *= 1.5; + break; + } + } + } + } + + // 상대 장수 병종간 특성 + if(floor($oppose[crewtype]/10) == 3) { // 귀병 + $int = $oppose[intel] + getBookEff($oppose[book]); + if($oppose[crewtype] == 30) { + $ratio2 = $int * 5; // 0~500 즉 50% + } elseif($oppose[crewtype] == 31) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($oppose[crewtype] == 32) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($oppose[crewtype] == 33) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($oppose[crewtype] == 34) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($oppose[crewtype] == 35) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($oppose[crewtype] == 36) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($oppose[crewtype] == 37) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($oppose[crewtype] == 38) { + $ratio2 = $int * 6; // 0~600 즉 60% + } + $ratio = rand() % 1000; // 0~999 + if($ratio <= $ratio2) { + $ratio = rand() % 100; + if($ratio >= 30) { + $type = rand() % 5; // 0~4 + switch($type) { + case 0: + $msg .= "위보에 당했다!
"; + $myCrew *= 1.2; + break; + case 1: + $msg .= "매복에 당했다!
"; + $myCrew *= 1.4; + break; + case 2: + $msg .= "반목에 당했다!
"; + $myCrew *= 1.6; + break; + case 3: + $msg .= "화계에 당했다!
"; + $myCrew *= 1.8; + break; + case 4: + $msg .= "혼란에 당했다!
"; + $myCrew *= 2.0; + break; + } + } else { + $type = rand() % 5; // 0~4 + switch($type) { + case 0: + $msg .= "위보를 간파했다!
"; + $myCrew /= 1.1; + $opCrew *= 1.1; + break; + case 1: + $msg .= "매복을 간파했다!
"; + $myCrew /= 1.2; + $opCrew *= 1.2; + break; + case 2: + $msg .= "반목을 간파했다!
"; + $myCrew /= 1.3; + $opCrew *= 1.3; + break; + case 3: + $msg .= "화계를 간파했다!
"; + $myCrew /= 1.4; + $opCrew *= 1.4; + break; + case 4: + $msg .= "혼란을 간파했다!
"; + $myCrew /= 1.5; + $opCrew *= 1.5; + break; + } + } + } + } + + if($oppose[crewtype] == 43) { // 목우 + $r = 0; + $r += $oppose[atmos]; + $r += $oppose[train]; + $ratio = rand() % 400; // 최대 50% 저지 + if($ratio < $r && $opAvoid == 1) { + $msg .= "저지당했다!
"; + $opAvoid = 0; + continue; + } + } + + // my 입장 상성 + // 보병계열 > 궁병계열 + if(floor($general[crewtype]/10) == 0 && floor($oppose[crewtype]/10) == 1) { + $myCrew *= 0.8; + $opCrew *= 1.2; + } + // 궁병계열 > 기병계열 + if(floor($general[crewtype]/10) == 1 && floor($oppose[crewtype]/10) == 2) { + $myCrew *= 0.8; + $opCrew *= 1.2; + } + // 기병계열 > 보병계열 + if(floor($general[crewtype]/10) == 2 && floor($oppose[crewtype]/10) == 0) { + $myCrew *= 0.8; + $opCrew *= 1.2; + } + // 차병계열 + if(floor($general[crewtype]/10) == 4) { + $myCrew *= 1.2; + $opCrew *= 0.8; + } + + // op 입장 상성 + // 보병계열 > 궁병계열 + if(floor($oppose[crewtype]/10) == 0 && floor($general[crewtype]/10) == 1) { + $opCrew *= 0.8; + $myCrew *= 1.2; + } + // 궁병계열 > 기병계열 + if(floor($oppose[crewtype]/10) == 1 && floor($general[crewtype]/10) == 2) { + $opCrew *= 0.8; + $myCrew *= 1.2; + } + // 기병계열 > 보병계열 + if(floor($oppose[crewtype]/10) == 2 && floor($general[crewtype]/10) == 0) { + $opCrew *= 0.8; + $myCrew *= 1.2; + } + // 차병계열 + if(floor($oppose[crewtype]/10) == 4) { + $opCrew *= 1.2; + $myCrew *= 0.8; + } + + //군주, 참모, 장군 공격 보정 5% + if($general[level] == 12 || $general[level] == 11 || $general[level] == 10 || $general[level] == 8 || $general[level] == 6) { + $opCrew = $opCrew * 1.05; + } + //상대장수 관직 보정 + //군주, 참모, 모사 방어 보정 5% + if($oppose[level] == 12 || $oppose[level] == 11 || $oppose[level] == 9 || $oppose[level] == 7 || $oppose[level] == 5) { + $opCrew = $opCrew * 0.95; + } elseif($oppose[level] == 4 && $oppose[no] == $city[gen1]) { // 태수 보정 + $opCrew = $opCrew * 0.95; + } elseif($oppose[level] == 3 && $oppose[no] == $city[gen2]) { // 군사 보정 + $opCrew = $opCrew * 0.95; + } elseif($oppose[level] == 2 && $oppose[no] == $city[gen3]) { // 시중 보정 + $opCrew = $opCrew * 0.95; + } + + //레벨 보정 + $myCrew = $myCrew * ((100 - $general[explevel]/3)/100); + $opCrew = $opCrew / ((100 - $general[explevel]/3)/100); + $myCrew = $myCrew / ((100 - $oppose[explevel]/3)/100); + $opCrew = $opCrew * ((100 - $oppose[explevel]/3)/100); + + //크리 + $rd = rand() % 100; // 0 ~ 99 + $ratio = CriticalRatio2($general[leader], $general[power], $general[intel]); + if($ratio >= $rd && $myAvoid == 1) { + $msg .= "필살공격!
"; + $opCrew = CriticalScore2($opCrew); + $myAvoid = 0; + } + //크리 + $rd = rand() % 100; // 0 ~ 99 + $ratio = CriticalRatio2($oppose[leader], $oppose[power], $oppose[intel]); + if($ratio >= $rd && $opAvoid == 1) { + $msg .= "●상대의 필살공격!
"; + $myCrew = CriticalScore2($myCrew); + $opAvoid = 0; + } + //회피 + $ratio = rand() % 100; // 0 ~ 99 + $ratio2 = getRate($game, $general[crewtype], "avd"); //회피율 + if($ratio < $ratio2 && $myAvoid == 1) { + $msg .= "회피했다!
"; + $myCrew /= 10; // 10%만 소모 + $myAvoid = 0; + } + //회피 + $ratio = rand() % 100; // 0 ~ 99 + $ratio2 = getRate($game, $oppose[crewtype], "avd"); //회피율 + if($ratio < $ratio2 && $opAvoid == 1) { + $msg .= "●상대가 회피했다!
"; + $opCrew /= 10; // 10%만 소모 + $opAvoid = 0; + } + + //랜타추가 + $opCrew *= (rand() % 21 + 90)/100; // 90~110% + $myCrew *= (rand() % 21 + 90)/100; // 90~110% + + $general[crew] -= round($myCrew); + $oppose[crew] -= round($opCrew); + $tempMyCrew = $myCrew; $tempOpCrew = $opCrew; + $tempGeneralCrew = $general[crew]; $tempOpposeCrew = $oppose[crew]; + if($general[crew] <= 0 && $oppose[crew] <= 0) { + $r1 = $tempGeneralCrew / $tempMyCrew; + $r2 = $tempOpposeCrew / $tempOpCrew; + + if($r1 > $r2) { + $offset = round($tempOpposeCrew*$tempMyCrew/$tempOpCrew); + $myCrew += $offset; + $general[crew] -= $offset; + $opCrew += $tempOpposeCrew; + $oppose[crew] = 0; + } else { + $offset = round($tempGeneralCrew*$tempOpCrew/$tempMyCrew); + $opCrew += $offset; + $oppose[crew] -= $offset; + $myCrew += $tempGeneralCrew; + $general[crew] = 0; + } + } elseif($general[crew] * $oppose[crew] <= 0) { + if($oppose[crew] < 0) { + $offset = round($tempOpposeCrew*$tempMyCrew/$tempOpCrew); + $myCrew += $offset; + $general[crew] -= $offset; + $opCrew += $tempOpposeCrew; + $oppose[crew] = 0; + } + if($general[crew] < 0) { + $offset = round($tempGeneralCrew*$tempOpCrew/$tempMyCrew); + $opCrew += $offset; + $oppose[crew] -= $offset; + $myCrew += $tempGeneralCrew; + $general[crew] = 0; + } + } + + $exp += $opCrew; + $opexp += $myCrew; + $general[crew] = round($general[crew]); + $oppose[crew] = round($oppose[crew]); + $myCrew = round($myCrew); + $opCrew = round($opCrew); + $myAtt = round($myAtt, 2); + $myDef = round($myDef, 2); + $opAtt = round($opAtt, 2); + $opDef = round($opDef, 2); + $msg .= "● $phase : 【공격장수】 $general[crew] (-$myCrew) VS $oppose[crew] (-$opCrew) 【수비장수】
"; + + $mykillnum += $opCrew; $mydeathnum += $myCrew; + + if($oppose[crew] <= 0) { break; } + if($general[crew] <= 0) { break; } + } + + $msg .= "★병사수 변화 : -$mydeathnum vs -$mykillnum
"; +// $msg2 .= "★병사수 변화 : -$mydeathnum vs -$mykillnum   "; + } + } + + // 공헌, 명성 상승 + $exp = round($exp / 50); + $ricing = ($exp * 5 * getCrewtypeRice($game, $general[crewtype], $tech1)); + $msg .= "★ 【공격장수】공헌 상승 : $exp 쌀 소비 : {$exp}x5x".getCrewtypeRice($game, $general[crewtype], $tech1)." = $ricing
"; +// $msg2 .= "★ 【공격장수】공헌 상승 : $exp 쌀 소비 : {$exp}x5x".getCrewtypeRice($game, $general[crewtype], $tech1)." = $ricing
"; + + $msg = ConvertLog($msg, 1); + + $mydeathnumSum += $mydeathnum; + $mykillnumSum += $mykillnum; + $expSum += $exp; + $ricingSum += $ricing; + $expSum2 += $dec; + $ricingSum2 += $rice; + } + + $mydeathnumSum /= $simulCount; + $mykillnumSum /= $simulCount; + $expSum /= $simulCount; + $ricingSum /= $simulCount; + $expSum2 /= $simulCount; + $ricingSum2 /= $simulCount; + if($isgen == "성벽평균") { + $msg2 .= "{$simulCount}회 평균
"; + $msg2 .= "★병사수 변화 : -$mydeathnumSum vs -$mykillnumSum   "; + $msg2 .= "★【성벽】내정 감소량 : $expSum2 【성벽】쌀 소모 : $ricingSum2
"; + $msg2 .= "★ 【공격장수】공헌 상승 : $expSum 쌀 소비 : {$expSum}x5x".getCrewtypeRice($game, $general[crewtype], $tech1)." = $ricingSum
"; + } elseif($isgen == "장수평균") { + $msg2 .= "{$simulCount}회 평균
"; + $msg2 .= "★병사수 변화 : -$mydeathnumSum vs -$mykillnumSum   "; + $msg2 .= "★ 【공격장수】공헌 상승 : $expSum 쌀 소비 : {$expSum}x5x".getCrewtypeRice($game, $general[crewtype], $tech1)." = $ricingSum
"; + } + + $msg2 = ConvertLog($msg2, 1); +} else { + $leader1 = 70; + $power1 = 70; + $intel1 = 10; + $type1 = 0; + $crew1 = 7000; + $train1 = 100; + $atmos1 = 100; + $level1 = 1; + $explevel1 = 20; + + $leader2 = 70; + $power2 = 70; + $intel2 = 10; + $type2 = 0; + $crew2 = 7000; + $train2 = 100; + $atmos2 = 100; + $level2 = 1; + $explevel2 = 20; + + $def = 7000; + $wall = 7000; + $train3 = $game[city_rate]; + $atmos3 = $game[city_rate]; +} + +switch($level1) { + case 12: $sellevel1[12] = "selected"; break; + case 11: $sellevel1[11] = "selected"; break; + case 10: $sellevel1[10] = "selected"; break; + case 9: $sellevel1[9] = "selected"; break; + case 8: $sellevel1[8] = "selected"; break; + case 7: $sellevel1[7] = "selected"; break; + case 6: $sellevel1[6] = "selected"; break; + case 5: $sellevel1[5] = "selected"; break; + case 1: $sellevel1[1] = "selected"; break; +} +switch($level2) { + case 12: $sellevel2[12] = "selected"; break; + case 11: $sellevel2[11] = "selected"; break; + case 10: $sellevel2[10] = "selected"; break; + case 9: $sellevel2[9] = "selected"; break; + case 8: $sellevel2[8] = "selected"; break; + case 7: $sellevel2[7] = "selected"; break; + case 6: $sellevel2[6] = "selected"; break; + case 5: $sellevel2[5] = "selected"; break; + case 1: $sellevel2[1] = "selected"; break; +} + +switch($type1) { + case 0: $sel1[0] = "selected"; break; + case 1: $sel1[1] = "selected"; break; + case 2: $sel1[2] = "selected"; break; + case 3: $sel1[3] = "selected"; break; + case 4: $sel1[4] = "selected"; break; + case 5: $sel1[5] = "selected"; break; + case 10: $sel1[10] = "selected"; break; + case 11: $sel1[11] = "selected"; break; + case 12: $sel1[12] = "selected"; break; + case 13: $sel1[13] = "selected"; break; + case 14: $sel1[14] = "selected"; break; + case 20: $sel1[20] = "selected"; break; + case 21: $sel1[21] = "selected"; break; + case 22: $sel1[22] = "selected"; break; + case 23: $sel1[23] = "selected"; break; + case 24: $sel1[24] = "selected"; break; + case 25: $sel1[25] = "selected"; break; + case 26: $sel1[26] = "selected"; break; + case 27: $sel1[27] = "selected"; break; + case 30: $sel1[30] = "selected"; break; + case 31: $sel1[31] = "selected"; break; + case 32: $sel1[32] = "selected"; break; + case 33: $sel1[33] = "selected"; break; + case 34: $sel1[34] = "selected"; break; + case 35: $sel1[35] = "selected"; break; + case 36: $sel1[36] = "selected"; break; + case 37: $sel1[37] = "selected"; break; + case 38: $sel1[38] = "selected"; break; + case 40: $sel1[40] = "selected"; break; + case 41: $sel1[41] = "selected"; break; + case 42: $sel1[42] = "selected"; break; + case 43: $sel1[43] = "selected"; break; +} +switch($type2) { + case 0: $sel2[0] = "selected"; break; + case 1: $sel2[1] = "selected"; break; + case 2: $sel2[2] = "selected"; break; + case 3: $sel2[3] = "selected"; break; + case 4: $sel2[4] = "selected"; break; + case 5: $sel2[5] = "selected"; break; + case 10: $sel2[10] = "selected"; break; + case 11: $sel2[11] = "selected"; break; + case 12: $sel2[12] = "selected"; break; + case 13: $sel2[13] = "selected"; break; + case 14: $sel2[14] = "selected"; break; + case 20: $sel2[20] = "selected"; break; + case 21: $sel2[21] = "selected"; break; + case 22: $sel2[22] = "selected"; break; + case 23: $sel2[23] = "selected"; break; + case 24: $sel2[24] = "selected"; break; + case 25: $sel2[25] = "selected"; break; + case 26: $sel2[26] = "selected"; break; + case 27: $sel2[27] = "selected"; break; + case 30: $sel2[30] = "selected"; break; + case 31: $sel2[31] = "selected"; break; + case 32: $sel2[32] = "selected"; break; + case 33: $sel2[33] = "selected"; break; + case 34: $sel2[34] = "selected"; break; + case 35: $sel2[35] = "selected"; break; + case 36: $sel2[36] = "selected"; break; + case 37: $sel2[37] = "selected"; break; + case 38: $sel2[38] = "selected"; break; + case 40: $sel2[40] = "selected"; break; + case 41: $sel2[41] = "selected"; break; + case 42: $sel2[42] = "selected"; break; + case 43: $sel2[43] = "selected"; break; +} +switch($tech1) { + case 0: $tch1[0] = "selected"; break; + case 1000: $tch1[1] = "selected"; break; + case 2000: $tch1[2] = "selected"; break; + case 3000: $tch1[3] = "selected"; break; + case 4000: $tch1[4] = "selected"; break; + case 5000: $tch1[5] = "selected"; break; + case 6000: $tch1[6] = "selected"; break; + case 7000: $tch1[7] = "selected"; break; + case 8000: $tch1[8] = "selected"; break; + case 9000: $tch1[9] = "selected"; break; + case 10000: $tch1[10] = "selected"; break; +} +switch($tech2) { + case 0: $tch2[0] = "selected"; break; + case 1000: $tch2[1] = "selected"; break; + case 2000: $tch2[2] = "selected"; break; + case 3000: $tch2[3] = "selected"; break; + case 4000: $tch2[4] = "selected"; break; + case 5000: $tch2[5] = "selected"; break; + case 6000: $tch2[6] = "selected"; break; + case 7000: $tch2[7] = "selected"; break; + case 8000: $tch2[8] = "selected"; break; + case 9000: $tch2[9] = "selected"; break; + case 10000: $tch2[10] = "selected"; break; +} +switch($dex10) { + case 0: $dx10[0] = "selected"; break; + case 2500: $dx10[1] = "selected"; break; + case 7500: $dx10[2] = "selected"; break; + case 15000: $dx10[3] = "selected"; break; + case 25000: $dx10[4] = "selected"; break; + case 37500: $dx10[5] = "selected"; break; + case 52500: $dx10[6] = "selected"; break; + case 70000: $dx10[7] = "selected"; break; + case 90000: $dx10[8] = "selected"; break; + case 112500: $dx10[9] = "selected"; break; + case 137500: $dx10[10] = "selected"; break; + case 165000: $dx10[11] = "selected"; break; + case 195000: $dx10[12] = "selected"; break; + case 227500: $dx10[13] = "selected"; break; + case 262500: $dx10[14] = "selected"; break; + case 300000: $dx10[15] = "selected"; break; + case 340000: $dx10[16] = "selected"; break; + case 382500: $dx10[17] = "selected"; break; + case 427500: $dx10[18] = "selected"; break; +} +switch($dex110) { + case 0: $dx110[0] = "selected"; break; + case 2500: $dx110[1] = "selected"; break; + case 7500: $dx110[2] = "selected"; break; + case 15000: $dx110[3] = "selected"; break; + case 25000: $dx110[4] = "selected"; break; + case 37500: $dx110[5] = "selected"; break; + case 52500: $dx110[6] = "selected"; break; + case 70000: $dx110[7] = "selected"; break; + case 90000: $dx110[8] = "selected"; break; + case 112500: $dx110[9] = "selected"; break; + case 137500: $dx110[10] = "selected"; break; + case 165000: $dx110[11] = "selected"; break; + case 195000: $dx110[12] = "selected"; break; + case 227500: $dx110[13] = "selected"; break; + case 262500: $dx110[14] = "selected"; break; + case 300000: $dx110[15] = "selected"; break; + case 340000: $dx110[16] = "selected"; break; + case 382500: $dx110[17] = "selected"; break; + case 427500: $dx110[18] = "selected"; break; +} +switch($dex120) { + case 0: $dx120[0] = "selected"; break; + case 2500: $dx120[1] = "selected"; break; + case 7500: $dx120[2] = "selected"; break; + case 15000: $dx120[3] = "selected"; break; + case 25000: $dx120[4] = "selected"; break; + case 37500: $dx120[5] = "selected"; break; + case 52500: $dx120[6] = "selected"; break; + case 70000: $dx120[7] = "selected"; break; + case 90000: $dx120[8] = "selected"; break; + case 112500: $dx120[9] = "selected"; break; + case 137500: $dx120[10] = "selected"; break; + case 165000: $dx120[11] = "selected"; break; + case 195000: $dx120[12] = "selected"; break; + case 227500: $dx120[13] = "selected"; break; + case 262500: $dx120[14] = "selected"; break; + case 300000: $dx120[15] = "selected"; break; + case 340000: $dx120[16] = "selected"; break; + case 382500: $dx120[17] = "selected"; break; + case 427500: $dx120[18] = "selected"; break; +} +switch($dex130) { + case 0: $dx130[0] = "selected"; break; + case 2500: $dx130[1] = "selected"; break; + case 7500: $dx130[2] = "selected"; break; + case 15000: $dx130[3] = "selected"; break; + case 25000: $dx130[4] = "selected"; break; + case 37500: $dx130[5] = "selected"; break; + case 52500: $dx130[6] = "selected"; break; + case 70000: $dx130[7] = "selected"; break; + case 90000: $dx130[8] = "selected"; break; + case 112500: $dx130[9] = "selected"; break; + case 137500: $dx130[10] = "selected"; break; + case 165000: $dx130[11] = "selected"; break; + case 195000: $dx130[12] = "selected"; break; + case 227500: $dx130[13] = "selected"; break; + case 262500: $dx130[14] = "selected"; break; + case 300000: $dx130[15] = "selected"; break; + case 340000: $dx130[16] = "selected"; break; + case 382500: $dx130[17] = "selected"; break; + case 427500: $dx130[18] = "selected"; break; +} +switch($dex140) { + case 0: $dx140[0] = "selected"; break; + case 2500: $dx140[1] = "selected"; break; + case 7500: $dx140[2] = "selected"; break; + case 15000: $dx140[3] = "selected"; break; + case 25000: $dx140[4] = "selected"; break; + case 37500: $dx140[5] = "selected"; break; + case 52500: $dx140[6] = "selected"; break; + case 70000: $dx140[7] = "selected"; break; + case 90000: $dx140[8] = "selected"; break; + case 112500: $dx140[9] = "selected"; break; + case 137500: $dx140[10] = "selected"; break; + case 165000: $dx140[11] = "selected"; break; + case 195000: $dx140[12] = "selected"; break; + case 227500: $dx140[13] = "selected"; break; + case 262500: $dx140[14] = "selected"; break; + case 300000: $dx140[15] = "selected"; break; + case 340000: $dx140[16] = "selected"; break; + case 382500: $dx140[17] = "selected"; break; + case 427500: $dx140[18] = "selected"; break; +} +switch($dex20) { + case 0: $dx20[0] = "selected"; break; + case 2500: $dx20[1] = "selected"; break; + case 7500: $dx20[2] = "selected"; break; + case 15000: $dx20[3] = "selected"; break; + case 25000: $dx20[4] = "selected"; break; + case 37500: $dx20[5] = "selected"; break; + case 52500: $dx20[6] = "selected"; break; + case 70000: $dx20[7] = "selected"; break; + case 90000: $dx20[8] = "selected"; break; + case 112500: $dx20[9] = "selected"; break; + case 137500: $dx20[10] = "selected"; break; + case 165000: $dx20[11] = "selected"; break; + case 195000: $dx20[12] = "selected"; break; + case 227500: $dx20[13] = "selected"; break; + case 262500: $dx20[14] = "selected"; break; + case 300000: $dx20[15] = "selected"; break; + case 340000: $dx20[16] = "selected"; break; + case 382500: $dx20[17] = "selected"; break; + case 427500: $dx20[18] = "selected"; break; +} +switch($dex210) { + case 0: $dx210[0] = "selected"; break; + case 2500: $dx210[1] = "selected"; break; + case 7500: $dx210[2] = "selected"; break; + case 15000: $dx210[3] = "selected"; break; + case 25000: $dx210[4] = "selected"; break; + case 37500: $dx210[5] = "selected"; break; + case 52500: $dx210[6] = "selected"; break; + case 70000: $dx210[7] = "selected"; break; + case 90000: $dx210[8] = "selected"; break; + case 112500: $dx210[9] = "selected"; break; + case 137500: $dx210[10] = "selected"; break; + case 165000: $dx210[11] = "selected"; break; + case 195000: $dx210[12] = "selected"; break; + case 227500: $dx210[13] = "selected"; break; + case 262500: $dx210[14] = "selected"; break; + case 300000: $dx210[15] = "selected"; break; + case 340000: $dx210[16] = "selected"; break; + case 382500: $dx210[17] = "selected"; break; + case 427500: $dx210[18] = "selected"; break; +} +switch($dex220) { + case 0: $dx220[0] = "selected"; break; + case 2500: $dx220[1] = "selected"; break; + case 7500: $dx220[2] = "selected"; break; + case 15000: $dx220[3] = "selected"; break; + case 25000: $dx220[4] = "selected"; break; + case 37500: $dx220[5] = "selected"; break; + case 52500: $dx220[6] = "selected"; break; + case 70000: $dx220[7] = "selected"; break; + case 90000: $dx220[8] = "selected"; break; + case 112500: $dx220[9] = "selected"; break; + case 137500: $dx220[10] = "selected"; break; + case 165000: $dx220[11] = "selected"; break; + case 195000: $dx220[12] = "selected"; break; + case 227500: $dx220[13] = "selected"; break; + case 262500: $dx220[14] = "selected"; break; + case 300000: $dx220[15] = "selected"; break; + case 340000: $dx220[16] = "selected"; break; + case 382500: $dx220[17] = "selected"; break; + case 427500: $dx220[18] = "selected"; break; +} +switch($dex230) { + case 0: $dx230[0] = "selected"; break; + case 2500: $dx230[1] = "selected"; break; + case 7500: $dx230[2] = "selected"; break; + case 15000: $dx230[3] = "selected"; break; + case 25000: $dx230[4] = "selected"; break; + case 37500: $dx230[5] = "selected"; break; + case 52500: $dx230[6] = "selected"; break; + case 70000: $dx230[7] = "selected"; break; + case 90000: $dx230[8] = "selected"; break; + case 112500: $dx230[9] = "selected"; break; + case 137500: $dx230[10] = "selected"; break; + case 165000: $dx230[11] = "selected"; break; + case 195000: $dx230[12] = "selected"; break; + case 227500: $dx230[13] = "selected"; break; + case 262500: $dx230[14] = "selected"; break; + case 300000: $dx230[15] = "selected"; break; + case 340000: $dx230[16] = "selected"; break; + case 382500: $dx230[17] = "selected"; break; + case 427500: $dx230[18] = "selected"; break; +} +switch($dex240) { + case 0: $dx240[0] = "selected"; break; + case 2500: $dx240[1] = "selected"; break; + case 7500: $dx240[2] = "selected"; break; + case 15000: $dx240[3] = "selected"; break; + case 25000: $dx240[4] = "selected"; break; + case 37500: $dx240[5] = "selected"; break; + case 52500: $dx240[6] = "selected"; break; + case 70000: $dx240[7] = "selected"; break; + case 90000: $dx240[8] = "selected"; break; + case 112500: $dx240[9] = "selected"; break; + case 137500: $dx240[10] = "selected"; break; + case 165000: $dx240[11] = "selected"; break; + case 195000: $dx240[12] = "selected"; break; + case 227500: $dx240[13] = "selected"; break; + case 262500: $dx240[14] = "selected"; break; + case 300000: $dx240[15] = "selected"; break; + case 340000: $dx240[16] = "selected"; break; + case 382500: $dx240[17] = "selected"; break; + case 427500: $dx240[18] = "selected"; break; +} + +?> + + + + +전투시뮬레이션 + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
공격장수상대장수상대성벽
관직 + + 관직 + + -
Lv >Lv >-
통솔 >통솔 >-
무력 >무력 >-
지력 >지력 >-
병종 + + 병종 + + 성벽 >
병력 >병력 >수비 >
훈련 >훈련 >훈련 >
사기 >사기 >사기 >
기술 + + 기술 + + -
보 + + 궁 + + 기 + + 귀 + + 차 + + 보 + + 궁 + + 기 + + 귀 + + 차 + + -
- + + ';?> + + + ';?> +
+ +
+ + + + + + + + + + + + +"; + + for($i=10; $i <= 14; $i++) { + printSimul($game, $i); + } + echo " + "; + + for($i=20; $i <= 27; $i++) { + printSimul($game, $i); + } + echo " + "; + + for($i=30; $i <= 38; $i++) { + printSimul($game, $i); + } + echo " + "; + + for($i=40; $i <= 43; $i++) { + printSimul($game, $i); + } + echo " + "; +?> +
공격방어기동회피가격군량-
+
+ + + + + ".getTypename($i)." + $att + $def + $spd + $avd + $cst + $ric + - + "; +} + +?> diff --git a/twe_close/a_bestGeneral.php b/twe_close/a_bestGeneral.php new file mode 100644 index 00000000..718d1b91 --- /dev/null +++ b/twe_close/a_bestGeneral.php @@ -0,0 +1,279 @@ += 2) { printLimitMsg($me[turntime]); exit(); } +?> + + + + +명장일람 + + + + + + + +
명 장 일 람
+ + + + +
+ + +
+ +=2"; } +else { $sel = "npc<2"; } + +$query = "select nation,name,color from nation"; +$nationresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$nationcount = MYDB_num_rows($nationresult); + +for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($nationresult); + $nationName[$nation[nation]] = $nation[name]; + $nationColor[$nation[nation]] = $nation[color]; +} + +$type = array( + "명 성", + "계 급", + "계 략 성 공", + "전 투 횟 수", + "승 리", + "승 률", + "사 살", + "살 상 률", + "보 병 숙 련 도", + "궁 병 숙 련 도", + "기 병 숙 련 도", + "귀 병 숙 련 도", + "차 병 숙 련 도", + "전 력 전 승 률", + "통 솔 전 승 률", + "일 기 토 승 률", + "설 전 승 률", + "베 팅 투 자 액", + "베 팅 당 첨", + "베 팅 수 익 금", + "베 팅 수 익 률" +); +for($i=0; $i < 21; $i++) { + switch($i) { + case 0: $query = "select nation,no,name,picture,imgsvr,experience as data from general where $sel order by data desc limit 0,10"; break; + case 1: $query = "select nation,no,name,picture,imgsvr,dedication as data from general where $sel order by data desc limit 0,10"; break; + case 2: $query = "select nation,no,name,picture,imgsvr,firenum as data from general where $sel order by data desc limit 0,10"; break; + case 3: $query = "select nation,no,name,picture,imgsvr,warnum as data from general where $sel order by data desc limit 0,10"; break; + case 4: $query = "select nation,no,name,picture,imgsvr,killnum as data from general where $sel order by data desc limit 0,10"; break; + case 5: $query = "select nation,no,name,picture,imgsvr,killnum/warnum*10000 as data from general where warnum>=10 and $sel order by data desc limit 0,10"; break; + case 6: $query = "select nation,no,name,picture,imgsvr,killcrew as data from general where $sel order by data desc limit 0,10"; break; + case 7: $query = "select nation,no,name,picture,imgsvr,killcrew/deathcrew*10000 as data from general where warnum>=10 and $sel order by data desc limit 0,10"; break; + case 8: $query = "select nation,no,name,picture,imgsvr,dex0 as data from general where $sel order by data desc limit 0,10"; break; + case 9: $query = "select nation,no,name,picture,imgsvr,dex10 as data from general where $sel order by data desc limit 0,10"; break; + case 10: $query = "select nation,no,name,picture,imgsvr,dex20 as data from general where $sel order by data desc limit 0,10"; break; + case 11: $query = "select nation,no,name,picture,imgsvr,dex30 as data from general where $sel order by data desc limit 0,10"; break; + case 12: $query = "select nation,no,name,picture,imgsvr,dex40 as data from general where $sel order by data desc limit 0,10"; break; + case 13: $query = "select nation,no,name,picture,imgsvr,ttw/(ttw+ttd+ttl)*10000 as data from general where $sel and (ttw+ttd+ttl)>=50 order by data desc limit 0,10"; break; + case 14: $query = "select nation,no,name,picture,imgsvr,tlw/(tlw+tld+tll)*10000 as data from general where $sel and (tlw+tld+tll)>=50 order by data desc limit 0,10"; break; + case 15: $query = "select nation,no,name,picture,imgsvr,tpw/(tpw+tpd+tpl)*10000 as data from general where $sel and (tpw+tpd+tpl)>=50 order by data desc limit 0,10"; break; + case 16: $query = "select nation,no,name,picture,imgsvr,tiw/(tiw+tid+til)*10000 as data from general where $sel and (tiw+tid+til)>=50 order by data desc limit 0,10"; break; + case 17: $query = "select nation,no,name,picture,imgsvr,betgold as data from general where $sel order by data desc limit 0,10"; break; + case 18: $query = "select nation,no,name,picture,imgsvr,betwin as data from general where $sel order by data desc limit 0,10"; break; + case 19: $query = "select nation,no,name,picture,imgsvr,betwingold as data from general where $sel order by data desc limit 0,10"; break; + case 20: $query = "select nation,no,name,picture,imgsvr,betwingold/betgold*10000 as data from general where $sel and betgold >= 1000 order by data desc limit 0,10"; break; + } + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + echo " + + + "; + + for($k=0; $k < 10; $k++) { + $gen = MYDB_fetch_array($result); + if($i != 2) { + $name[$k] = $gen[name]; + $nation[$k] = $nationName[$gen[nation]]; + $data[$k] = $gen[data]; + $color[$k] = $nationColor[$gen[nation]]; + $pic[$k] = $gen[picture]; + } else { + $name[$k] = "???"; + $nation[$k] = "???"; + $data[$k] = $gen[data]; + $color[$k] = $_basecolor4; + $gen[imgsvr] = 0; + $pic[$k] = "9999.jpg"; + } + if($color[$k] == "") $color[$k] = $_basecolor4; + if($nation[$k] == "") $nation[$k] = " "; + if($pic[$k] == "") { + echo ""; + } else { + $imageTemp = GetImageURL($gen[imgsvr]); + echo ""; + } + } + + echo ""; + + for($k=0; $k < 10; $k++) { + echo ""; + } + + echo ""; + + for($k=0; $k < 10; $k++) { + echo ""; + } + + echo ""; + + for($k=0; $k < 10; $k++) { + if($i == 5 || $i == 7 || $i == 20) { $data[$k] = floor($data[$k]/100).".".($data[$k]%100)." %"; } + if($i >= 13 && $i <= 16) { $data[$k] = floor($data[$k]/100).".".($data[$k]%100)." %"; } + echo ""; + } + echo ""; +} + +echo " +
$type[$i]
1위2위3위4위5위6위7위8위9위10위
 
{$nation[$k]}
{$name[$k]}
{$data[$k]}
+
+ +"; + +$type = array( + "명 마", + "명 검", + "명 서", + "도 구" +); + +$call = array( + "horse", + "weap", + "book", + "item" +); + +$func = array( + "getHorseName", + "getWeapName", + "getBookName", + "getItemName" +); + +for($i=0; $i < 4; $i++) { + echo " + + "; + for($k=26; $k > 16; $k--) { + $str = $func[$i]($k); + echo ""; + } + + echo ""; + + for($k=26; $k > 16; $k--) { + $query = "select nation,no,name,picture,imgsvr from general where {$call[$i]}={$k}"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + $name[$k] = $gen[name]; + $nation[$k] = $nationName[$gen[nation]]; + $color[$k] = $nationColor[$gen[nation]]; + $pic[$k] = $gen[picture]; + if($color[$k] == "") $color[$k] = $_basecolor4; + if($nation[$k] == "") $nation[$k] = " "; + if($pic[$k] == "") { + echo ""; + } else { + $imageTemp = GetImageURL($gen[imgsvr]); + echo ""; + } + } + + echo ""; + + for($k=26; $k > 16; $k--) { + echo ""; + } + + echo ""; + + for($k=26; $k > 16; $k--) { + echo ""; + } + + echo ""; + + echo " + "; + for($k=16; $k > 6; $k--) { + $str = $func[$i]($k); + echo ""; + } + + echo ""; + + for($k=16; $k > 6; $k--) { + $query = "select nation,no,name,picture,imgsvr from general where {$call[$i]}={$k}"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + $name[$k] = $gen[name]; + $nation[$k] = $nationName[$gen[nation]]; + $color[$k] = $nationColor[$gen[nation]]; + $pic[$k] = $gen[picture]; + if($color[$k] == "") $color[$k] = $_basecolor4; + if($nation[$k] == "") $nation[$k] = " "; + if($pic[$k] == "") { + echo ""; + } else { + $imageTemp = GetImageURL($gen[imgsvr]); + echo ""; + } + } + + echo ""; + + for($k=16; $k > 6; $k--) { + echo ""; + } + + echo ""; + + for($k=16; $k > 6; $k--) { + echo ""; + } + + echo ""; +} + +?> +
$type[$i]
".$str."
 
{$nation[$k]}
{$name[$k]}
".$str."
 
{$nation[$k]}
{$name[$k]}
+ + + +
+ + + + diff --git a/twe_close/a_emperior.php b/twe_close/a_emperior.php new file mode 100644 index 00000000..6159ac2e --- /dev/null +++ b/twe_close/a_emperior.php @@ -0,0 +1,199 @@ + + + + + + +왕조일람 + + + + + + + +
역 대 왕 조
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ $emperior[phase] + + +
+ $emperior[name] ({$emperior[year]}年 {$emperior[month]}月) +
국 력$emperior[power]장 수$emperior[gennum]속 령$emperior[citynum]성 향$emperior[type]
황 제$emperior[l12name]승 상$emperior[l11name]위 장 군$emperior[l10name]사 공$emperior[l9name]
+"; + } +} else { + $query = "select * from emperior where no='$select'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $emperior = MYDB_fetch_array($result); + +//background={$image}/{$emperior[l12pic]} + + echo " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ $emperior[phase] + + +
국 가 수
(최종 / 최대)
$emperior[nation_count]장 수 수
(최종 / 최대)
$emperior[gen_count]
등 장 국 가$emperior[nation_name]
국가별 성향$emperior[nation_hist]
장 수 성 격$emperior[personal_hist]
장 수 특 기$emperior[special_hist]
+ $emperior[name] ({$emperior[year]}年 {$emperior[month]}月) +
국 력$emperior[power]성 향$emperior[type]
장 수$emperior[gennum]속 령$emperior[citynum]
총 인 구$emperior[pop]인 구 율$emperior[poprate]
국 고$emperior[gold]병 량$emperior[rice]
황 제 $emperior[l12name]승 상 $emperior[l11name]
위 장 군 $emperior[l10name]사 공 $emperior[l9name]
표 기 장 군 $emperior[l8name]태 위 $emperior[l7name]
거 기 장 군 $emperior[l6name]사 도 $emperior[l5name]
오 호 장 군$emperior[tiger]
건 안 칠 자$emperior[eagle]
장 수 들
(공헌도 순서)
$emperior[gen]
역 사 기 록".ConvertLog($emperior[history], 1)."
+"; +} +?> + + + + +
+ + + + diff --git a/twe_close/a_emperior2.php b/twe_close/a_emperior2.php new file mode 100644 index 00000000..c3d9e8c5 --- /dev/null +++ b/twe_close/a_emperior2.php @@ -0,0 +1,200 @@ + + + + + + +왕조일람 + + + + + + + +
역 대 왕 조
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ $emperior[phase] + + +
+ $emperior[name] ({$emperior[year]}年 {$emperior[month]}月) +
국 력$emperior[power]장 수$emperior[gennum]속 령$emperior[citynum]성 향$emperior[type]
황 제$emperior[l12name]승 상$emperior[l11name]위 장 군$emperior[l10name]사 공$emperior[l9name]
+"; + } +} else { + $query = "select * from emperior_table where no='$select'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $emperior = MYDB_fetch_array($result); + +//background={$image}/{$emperior[l12pic]} + + echo " +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ $emperior[phase] + + +
국 가 수
(최종 / 최대)
$emperior[nation_count]장 수 수
(최종 / 최대)
$emperior[gen_count]
등 장 국 가$emperior[nation_name]
국가별 성향$emperior[nation_hist]
장 수 성 격$emperior[personal_hist]
장 수 특 기$emperior[special_hist]
+ $emperior[name] ({$emperior[year]}年 {$emperior[month]}月) +
국 력$emperior[power]성 향$emperior[type]
장 수$emperior[gennum]속 령$emperior[citynum]
총 인 구$emperior[pop]인 구 율$emperior[poprate]
국 고$emperior[gold]병 량$emperior[rice]
황 제 $emperior[l12name]승 상 $emperior[l11name]
위 장 군 $emperior[l10name]사 공 $emperior[l9name]
표 기 장 군 $emperior[l8name]태 위 $emperior[l7name]
거 기 장 군 $emperior[l6name]사 도 $emperior[l5name]
오 호 장 군$emperior[tiger]
건 안 칠 자$emperior[eagle]
장 수 들
(공헌도 순서)
$emperior[gen]
역 사 기 록".ConvertLog($emperior[history], 1)."
+
"; +} +?> + + + + +
+ + + + diff --git a/twe_close/a_genList.php b/twe_close/a_genList.php new file mode 100644 index 00000000..21c54ed7 --- /dev/null +++ b/twe_close/a_genList.php @@ -0,0 +1,182 @@ += 2) { printLimitMsg($me[turntime]); exit(); } + +if($type == 0) { + $type = 9; +} +$sel[$type] = "selected"; + +?> + + + + +장수일람 + + + + + + + + +
장 수 일 람
정렬순서 : + +
+
+ + + 얼 굴 + 이 름 + 연령 + 성격 + 특기 + 레 벨 + 국 가 + 명 성 + 계 급 + 관 직 + 통솔 + 무력 + 지력 + 삭턴 + 벌점 + "; +for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + $nation = $nationname[$general[nation]]; + + if($general[level] == 12) { + $lbonus = $nationlevel[$general[nation]] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nationlevel[$general[nation]]; + } else { + $lbonus = 0; + } + if($lbonus > 0) { + $lbonus = "+{$lbonus}"; + } else { + $lbonus = ""; + } + + if($general[injury] > 0) { + $leader = floor($general[leader] * (100 - $general[injury])/100); + $power = floor($general[power] * (100 - $general[injury])/100); + $intel = floor($general[intel] * (100 - $general[injury])/100); + $leader = "{$leader}{$lbonus}"; + $power = "{$power}"; + $intel = "{$intel}"; + } else { + $leader = "{$general[leader]}{$lbonus}"; + $power = "{$general[power]}"; + $intel = "{$general[intel]}"; + } + + if($general[npc] >= 2) { $name = "$general[name]"; } + elseif($general[npc] == 1) { $name = "$general[name]"; } + else { $name = "$general[name]"; } + + $general[connect] = round($general[connect] / 10, 0) * 10; + + $imageTemp = GetImageURL($general[imgsvr]); + echo " + + + $name + $general[age]세 + ".getGenChar($general[personal])." + ".getGenSpecial($general[special])." / ".getGenSpecial($general[special2])." + Lv ".getExpLevel($general[experience])." + {$nation} + ".getHonor($general[experience])." + ".getDed($general[dedication])." + "; echo getLevel($general[level]); echo " + $leader + $power + $intel + $general[killturn] + $general[connect]"; echo "
【".getConnect($general[connect])."】 + "; +} +echo " + +"; + +MYDB_close($connect); +?> + + + + +
+ + + + diff --git a/twe_close/a_hallOfFame.php b/twe_close/a_hallOfFame.php new file mode 100644 index 00000000..3eecaadd --- /dev/null +++ b/twe_close/a_hallOfFame.php @@ -0,0 +1,103 @@ + + + + + +명예의 전당 + + + + + + + +
명 예 의 전 당
+ + + + "; + + for($k=0; $k < 10; $k++) { + $gen = MYDB_fetch_array($result); + $name[$k] = $gen[name]; + $nation[$k] = $gen[nation]; + $data[$k] = $gen[data]; + $color[$k] = $gen[color]; + $pic[$k] = $gen[picture]; + if($color[$k] == "") $color[$k] = $_basecolor4; + if($nation[$k] == "") $nation[$k] = " "; +/* + if($pic[$k] == "") { + echo ""; + } else { + $imageTemp = GetImageURL($gen[imgsvr]); + echo ""; + } +*/ + } + +// echo ""; + + for($k=0; $k < 10; $k++) { + echo ""; + } + + echo ""; + + for($k=0; $k < 10; $k++) { + echo ""; + } + + echo ""; + + for($k=0; $k < 10; $k++) { + if($i == 5 || $i == 7 || $i == 20) { $data[$k] = floor($data[$k]/100).".".($data[$k]%100)." %"; } + if($i >= 13 && $i <= 16) { $data[$k] = floor($data[$k]/100).".".($data[$k]%100)." %"; } + echo ""; + } + echo ""; +} +?> +
$type[$i]
1위2위3위4위5위6위7위8위9위10위
 
{$nation[$k]}
{$name[$k]}
{$data[$k]}
+ + + +
+ + + + diff --git a/twe_close/a_history.php b/twe_close/a_history.php new file mode 100644 index 00000000..83cfe509 --- /dev/null +++ b/twe_close/a_history.php @@ -0,0 +1,137 @@ += 2) { printLimitMsg($me[turntime]); exit(); } + +$query = "select year,month from history order by no limit 1"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$history = MYDB_fetch_array($result); +$s = ($history[year]*12) + $history[month]; + +$query = "select year,month from history order by no desc limit 1"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$history = MYDB_fetch_array($result); +$e = ($history[year]*12) + $history[month]; + +if(!$yearmonth) { + $year = $admin['year']; + $month = $admin['month'] - 1; +} else { + $year = substr($yearmonth, 0, 3) - 0; + $month = substr($yearmonth, 3, 2) - 0; + + if($btn == "◀◀ 이전달") { + $month -= 1; + } elseif($btn == "다음달 ▶▶") { + $month += 1; + } +} +$now = ($year*12) + $month; + +if($now < $s) { $now = $s; } +if($now > $e) { $now = $e; } + +$year = floor($now / 12); +$month = $now % 12; +if($month <= 0) { + $year -= 1; + $month += 12; +} + +if($me[skin] < 1) { + $tempColor = $_basecolor; $tempColor2 = $_basecolor2; $tempColor3 = $_basecolor3; $tempColor4 = $_basecolor4; + $_basecolor = "000000"; $_basecolor2 = "000000"; $_basecolor3 = "000000"; $_basecolor4 = "000000"; +} +?> + + + + +연감 + + + + + + + + +
연 감
+
+ 년월 선택 : + + + + +
+
+ + + + + + + + + + + + + + + + + +
중 원 지 도
+ +
중 원 정 세
+ +
장 수 동 향
+ +
+ + + +
+ + + + diff --git a/twe_close/a_kingdomList.php b/twe_close/a_kingdomList.php new file mode 100644 index 00000000..108b78cf --- /dev/null +++ b/twe_close/a_kingdomList.php @@ -0,0 +1,246 @@ += 2) { printLimitMsg($me[turntime]); exit(); } +?> + + + + +세력일람 + + + + + + + +
세 력 일 람
+= 2) { $l12 = "$level12[name]"; } + elseif($level12[npc] == 1) { $l12 = "$level12[name]"; } + else { $l12 = $level12[name]; } + + if($level11[name] == "") { $l11 = "-"; } + elseif($level11[npc] >= 2) { $l11 = "$level11[name]"; } + elseif($level11[npc] == 1) { $l11 = "$level11[name]"; } + else { $l11 = $level11[name]; } + + if($level10[name] == "") { $l10 = "-"; } + elseif($level10[npc] >= 2) { $l10 = "$level10[name]"; } + elseif($level10[npc] == 1) { $l10 = "$level10[name]"; } + else { $l10 = $level10[name]; } + + if($level9[name] == "") { $l9 = "-"; } + elseif($level9[npc] >= 2) { $l9 = "$level9[name]"; } + elseif($level9[npc] == 1) { $l9 = "$level9[name]"; } + else { $l9 = $level9[name]; } + + if($level8[name] == "") { $l8 = "-"; } + elseif($level8[npc] >= 2) { $l8 = "$level8[name]"; } + elseif($level8[npc] == 1) { $l8 = "$level8[name]"; } + else { $l8 = $level8[name]; } + + if($level7[name] == "") { $l7 = "-"; } + elseif($level7[npc] >= 2) { $l7 = "$level7[name]"; } + elseif($level7[npc] == 1) { $l7 = "$level7[name]"; } + else { $l7 = $level7[name]; } + + if($level6[name] == "") { $l6 = "-"; } + elseif($level6[npc] >= 2) { $l6 = "$level6[name]"; } + elseif($level6[npc] == 1) { $l6 = "$level6[name]"; } + else { $l6 = $level6[name]; } + + if($level5[name] == "") { $l5 = "-"; } + elseif($level5[npc] >= 2) { $l5 = "$level5[name]"; } + elseif($level5[npc] == 1) { $l5 = "$level5[name]"; } + else { $l5 = $level5[name]; } + + echo " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
【 {$nation[name]} 】
성 향".getNationType($nation[type])."작 위".getNationLevel($nation[level])."국 력{$nation[power]}장수 / 속령{$gencount} / {$citycount}
".getLevel(12, $nation[level])."$l12".getLevel(11, $nation[level])."$l11".getLevel(10, $nation[level])."$l10".getLevel( 9, $nation[level])."$l9
".getLevel( 8, $nation[level])."$l8".getLevel( 7, $nation[level])."$l7".getLevel( 6, $nation[level])."$l6".getLevel( 5, $nation[level])."$l5
"; + if($nation[level] > 0) { + echo "속령 일람 : "; + + for($j=0; $j < $citycount; $j++) { + $city = MYDB_fetch_array($cityresult); + if($city[city] == $nation[capital]) { + echo "[{$city[name]}], "; + } else { + echo "$city[name], "; + } + } + } else { + $query = "select name from city where city='$level12[city]'"; // 군주 위치 도시 이름 + $cityResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($cityResult); + + echo "현재 위치 : $city[name]"; + } + echo" +
장수 일람 : "; + for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + if($general[npc] >= 2) { echo "$general[name], "; } + elseif($general[npc] == 1) { echo "$general[name], "; } + else { echo "$general[name], "; } + } + echo" +
+
"; +} + +//재야 +$query = "select npc,name from general where nation='0'"; // 장수 목록 +$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$gencount = MYDB_num_rows($genresult); + +$query = "select name from city where nation='0'"; // 도시 이름 목록 +$cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$citycount = MYDB_num_rows($cityresult); + +echo " + + + + + + + + + + + + + + + + + +
【 재 야 】
 장 수{$gencount}속 령{$citycount}
속령 일람 : "; +for($j=0; $j < $citycount; $j++) { + $city = MYDB_fetch_array($cityresult); + echo "$city[name], "; +} +echo" +
장수 일람 : "; + for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + if($general[npc] >= 2) { echo "$general[name], "; } + elseif($general[npc] == 1) { echo "$general[name], "; } + else { echo "$general[name], "; } + } + echo" +
"; + +?> + + + + +
+ + + + diff --git a/twe_close/a_npcList.php b/twe_close/a_npcList.php new file mode 100644 index 00000000..2a94a39d --- /dev/null +++ b/twe_close/a_npcList.php @@ -0,0 +1,117 @@ + + + + + +빙의일람 + + + + + + + + +
빙 의 일 람
정렬순서 : + +
+
+ + + 희생된 장수 + 악령 이름 + 레벨 + 국가 + 성격 + 특기 + 종능 + 통솔 + 무력 + 지력 + 명성 + 계급 + "; +for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + $nation = $nationname[$general[nation]]; + + if($general[npc] >= 2) { $name = "$general[name]"; } + elseif($general[npc] == 1) { $name = "$general[name]"; } + else { $name = "$general[name]"; } + + echo " + + {$name} + {$general[name2]} + Lv {$general[explevel]} + {$nation} + ".getGenChar($general[personal])." + ".getGenSpecial($general[special])." / ".getGenSpecial($general[special2])." + $general[sum] + $general[leader] + $general[power] + $general[intel] + {$general[experience]} + {$general[dedication]} + "; +} +echo " + +"; + +MYDB_close($connect); +?> + + + + +
+ + + + diff --git a/twe_close/a_status.php b/twe_close/a_status.php new file mode 100644 index 00000000..c9dafa4c --- /dev/null +++ b/twe_close/a_status.php @@ -0,0 +1,58 @@ += 2) { printLimitMsg($me[turntime]); exit(); } +?> + + + + +세력도 + + + + + + + +
세 력 도
+ + + + + + + + +
+ + + +
+ +
+ + + +
+ + + + + diff --git a/twe_close/a_traffic.php b/twe_close/a_traffic.php new file mode 100644 index 00000000..3731917b --- /dev/null +++ b/twe_close/a_traffic.php @@ -0,0 +1,257 @@ +"; } +echo $str; + +$curonline = onlinenum($connect); +for($i=0; $i < 11; $i++) { + $parse = explode("|", $log[count($log)-12+$i]); + $date[$i] = trim($parse[0]); + $year[$i] = trim($parse[1]); + $month[$i] = trim($parse[2]); + $refresh[$i] = trim($parse[3]); + $online[$i] = trim($parse[4]); +} +if($game[maxrefresh] == 0) { $game[maxrefresh] = 1; } +if($game[maxrefresh] < $game[refresh]) { $game[maxrefresh] = $game[refresh]; } +if($game[maxonline] == 0) { $game[maxonline] = 1; } +if($game[maxonline] < $curonline) { $game[maxonline] = $curonline; } +?> + + +트래픽정보 + + + + + + + +
트 래 픽 정 보
+
+ + + +
+ + += 100) { $w -= 0.1; } + if($refresh[$i] < 10 && $w < 3) { $w = 3; } + elseif($refresh[$i] < 100 && $w < 6) { $w = 6; } + elseif($refresh[$i] < 1000 && $w < 9) { $w = 9; } + $w2 = round(100 - $w, 1); + $color = getColor($w); + $dt = substr($date[$i], 11, 5); + echo " + + + + + + + "; +} +$w = round($game[refresh] / $game[maxrefresh] * 100, 1); +if($w >= 100) { $w -= 0.1; } +if($game[refresh] < 10 && $w < 3) { $w = 3; } +elseif($game[refresh] < 100 && $w < 6) { $w = 6; } +elseif($game[refresh] < 1000 && $w < 9) { $w = 9; } +$w2 = round(100 - $w, 1); +$color = getColor($w); +$dt = date('H:i'); +echo " + + + + + + + + + + +"; +?> +
접 속 량
{$year[$i]}년 {$month[$i]}월{$dt} + + + + + +
{$refresh[$i]}  
+
{$game[year]}년 {$game[month]}월{$dt} + + + + + +
{$game[refresh]}  
+
최고기록: {$game[maxrefresh]}
+
+ + += 100) { $w -= 0.1; } + if($online[$i] < 10 && $w < 3) { $w = 3; } + elseif($online[$i] < 100 && $w < 6) { $w = 6; } + elseif($online[$i] < 1000 && $w < 9) { $w = 9; } + $w2 = round(100 - $w, 1); + $color = getColor($w); + $dt = substr($date[$i], 11, 5); + echo " + + + + + + + "; +} +$w = round($curonline / $game[maxonline] * 100, 1); +if($w >= 100) { $w -= 0.1; } +if($curonline < 10 && $w < 3) { $w = 3; } +elseif($curonline < 100 && $w < 6) { $w = 6; } +elseif($curonline < 1000 && $w < 9) { $w = 9; } +$w2 = round(100 - $w, 1); +$color = getColor($w); +$dt = date('H:i'); +echo " + + + + + + + + + + +"; +?> +
접 속 자
{$year[$i]}년 {$month[$i]}월{$dt} + + + + + +
{$online[$i]}  
+
{$game[year]}년 {$game[month]}월{$dt} + + + + + +
{$curonline}  
+
최고기록: {$game[maxonline]}
+
+
+ + + + + + + + + + + + +"; + +$query = "select name,refresh,connect from general order by refresh desc limit 0,5"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $user = MYDB_fetch_array($result); + + $w = round($user[refresh] / $maxrefresh * 100, 1); + $w2 = round(100 - $w, 1); + $color = getColor($w); + echo " + + + + + + "; +} +?> +
주 의 대 상 자 (순간과도갱신)
주의대상자벌점(순간갱신)전체 대비
접속자 총합{$user[connect]}({$maxrefresh}) + + + + + +
  
+
{$user[name]}{$user[connect]}({$user[refresh]}) + + + + + +
  
+
+
+ + + +
+ + + + + diff --git a/twe_close/a_vote.php b/twe_close/a_vote.php new file mode 100644 index 00000000..b6acb56c --- /dev/null +++ b/twe_close/a_vote.php @@ -0,0 +1,338 @@ + + + +설문조사 + + + + + + + + +
설 문 조 사
+ + + += 5) { + echo " + + + + + + "; +} + +$vote[0] = Tag2Code($vote[0]); +echo " + + + + +"; + +$query = "select no from general where vote>0 and npc<2"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$voteCount = MYDB_num_rows($result); + +$query = "select no from general where npc<2"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$allCount = MYDB_num_rows($result); + +$percentage = round($voteCount / $allCount * 100, 1); + +$voteTypeCount = count($vote); +for($i=1; $i < $voteTypeCount; $i++) { + echo " + + + + + + "; +} + +echo " + +"; +if($me[vote] == 0 && $me[no] > 0) { + echo " + + + "; +} else { + echo " + + "; +} +echo " + + +"; + +if($me[userlevel] >= 5) { + echo " + + + + + + "; +} + +if($admin[votecomment] != "") { + $comment = explode("|", $admin[votecomment]); + $commentCount = count($comment); +} else { + $commentCount = 0; +} +echo " +
설 문 조 사 (금과 추첨으로 유니크템 증정!)
제 목 {$vote[0]}
{$i}. + "; + if($me[vote] == 0 && $me[no] > 0) { + echo " + + "; + } elseif($admin[voteopen] >= 1 || $me[userlevel] >= 5) { + $query = "select no from general where vote='{$i}'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $vCount = MYDB_num_rows($result); + + $per = @round($vCount / $voteCount * 100, 1); + echo "{$vCount} 표 ({$per}%)"; + } else { + echo "추후공개"; + } + $vote[i] = Tag2Code($vote[i]); + echo " +  {$vote[$i]}
투표결산 투표율 : {$voteCount} / {$allCount} ({$percentage} %)
+ + + + +"; +for($i=0; $i < $commentCount; $i++) { + $cmt = explode(":", $comment[$i]); + $cmt[2] = Tag2Code($cmt[2]); + $j = $i+1; + echo " + + + + + + + "; +} +if($me[no] > 0) { + echo " + + + + + + "; +} +?> +
댓 글
{$j}.{$cmt[0]}{$cmt[1]} {$cmt[2]}
-
+
+ + "; + +if($admin[voteopen] >= 1 || $me[userlevel] >= 5) { + echo " + + + + + + "; +} + +if($admin[voteopen] >= 2 || $me[userlevel] >= 5) { + $query = "select no from general where nation=0 and npc<2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $memCount = MYDB_num_rows($result); + + if(!$nationVoteCount[0]) { $nationVoteCount[0] = 0; } + $percentage = @round($nationVoteCount[0] / $memCount * 100, 1); + + echo " + + + + + + "; + + $query = "select nation,color,name,gennum from nation order by gennum desc"; + $nationResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($nationResult); + for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($nationResult); + + $query = "select no from general where nation='{$nation[nation]}' and npc<2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $memCount = MYDB_num_rows($result); + + if(!$nationVoteCount[$nation[nation]]) { $nationVoteCount[$nation[nation]] = 0; } + $percentage = @round($nationVoteCount[$nation[nation]] / $memCount * 100, 1); + + echo " + + + + + + "; + } +} +?> + +
+ 전 체 통 계 += 5) { + echo " + + + "; +} +echo " +
전 체{$voteCount} / {$allCount} ({$percentage} %) + + + "; + + $query = "select no from general where npc<2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $memCount = MYDB_num_rows($result); + + $query = "select nation,vote from general where npc<2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $vote = MYDB_fetch_array($result); + + $totalVote[$vote[vote]]++; + if($vote[vote] > 0) { $nationVoteCount[$vote[nation]]++; } + $nationVote[$vote[nation]][$vote[vote]]++; + } + + for($i=0; $i < $voteTypeCount; $i++) { + $per = @round($totalVote[$i] / $memCount * 100, 1); +// if($per < 5) { $vote[cnt] = " "; } + echo " + + "; + } + + echo " + +
{$totalVote[$i]}
+
재 야{$nationVoteCount[0]} / {$memCount} ({$percentage} %) + + + "; + + for($i=0; $i < $voteTypeCount; $i++) { + $per = @round($nationVote[0][$i] / $memCount * 100, 1); +// if($per < 5) { $vote[cnt] = " "; } + echo " + + "; + } + + echo " + +
{$nationVote[0][$i]}
+
{$nation[name]}{$nationVoteCount[$nation[nation]]} / {$memCount} ({$percentage} %) + + + "; + + for($k=0; $k < $voteTypeCount; $k++) { + $per = @round($nationVote[$nation[nation]][$k] / $memCount * 100, 1); +// if($per < 5) { $vote[cnt] = " "; } + echo " + + "; + } + + echo " + +
{$nationVote[$nation[nation]][$k]}
+
+ + + +
+ + + + + 0) { + $type = (($type - 1) % 7) + 1; + } + + switch($type) { + case 0: $color = "black"; break; + case 1: $color = "red"; break; + case 2: $color = "orange"; break; + case 3: $color = "yellow"; break; + case 4: $color = "green"; break; + case 5: $color = "blue"; break; + case 6: $color = "navy"; break; + case 7: $color = "purple"; break; + } + + return $color; +} + +function getNewColor($type) { + if($type > 0) { + $type = (($type - 1) % 7) + 1; + } + + switch($type) { + case 2: $color = "black"; break; + case 3: $color = "black"; break; + default:$color = "white"; break; + } + + return $color; +} + +?> diff --git a/twe_close/analytics.php b/twe_close/analytics.php new file mode 100644 index 00000000..bf3f0d19 --- /dev/null +++ b/twe_close/analytics.php @@ -0,0 +1,13 @@ + diff --git a/twe_close/b_auction.php b/twe_close/b_auction.php new file mode 100644 index 00000000..57ef9961 --- /dev/null +++ b/twe_close/b_auction.php @@ -0,0 +1,260 @@ += 2) { printLimitMsg($me[turntime]); exit(); } + +$query = "select no from auction where no1='$me[no]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$tradeCount = MYDB_num_rows($result); + +$query = "select no from auction where no2='$me[no]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$bidCount = MYDB_num_rows($result); + +$btCount = $tradeCount + $bidCount; + +if($me[userlevel] >= 5 || ($me[special] != 30 && $btCount < 1) || ($me[special] == 30 && $btCount < 3)) { + $btn = "submit"; +} else { + $btn = "hidden"; +} + +if($me[skin] < 1) { + $tempColor = $_basecolor; $tempColor2 = $_basecolor2; $tempColor3 = $_basecolor3; $tempColor4 = $_basecolor4; + $_basecolor = "000000"; $_basecolor2 = "000000"; $_basecolor3 = "000000"; $_basecolor4 = "000000"; +} + +if($msg == "") $msg = "-"; +if($msg2 == "") $msg2 = "-"; +?> + + +거래장 + + + + + + + + +
거 래 장
거 래 장
+ + + + + + + + + + + + + + + + + 0 && $auction[amount] * 2 <= $auction[value] && $auction[stuff] == 0) { $radio = " disabled"; $alert = ""; $alert2 = ""; } + elseif($auction[no2] > 0 && $auction[topv] <= $auction[value]) { $radio = " disabled"; $alert = ""; $alert2 = ""; } + elseif($chk == 0) { $radio = " checked"; $chk = 1; } + $pv = round($auction[value] * 100 / $auction[amount]) / 100 + 0.001; + $pv = substr($pv, 0, 4); + if($auction[stuff] != 0) { $pv = '-'; } + echo " + + + + + + + + + + + + + + "; +} +?> + + + + + + + + + + + + + + + + +
팝 니 다
거래번호선택판매자물품수량시작판매가현재판매가즉시판매가단가구매 예정자거래종료
{$auction[no]}{$auction[name1]}{$itemname}{$auction[amount]}금 {$auction[cost]}{$alert}금 {$auction[value]}{$alert2}{$alert}금 {$auction[topv]}{$alert2}{$alert}{$pv}{$alert2}{$alert}{$auction[name2]}{$alert2}{$auction[expire]}
등록결과
입찰등록 +  지불할 금액: + name=btn value='구매시도' onclick='return confirm("정말 입찰하시겠습니까?");'> +
거래등록 +  종료: 턴 후 +  물품: +  판매량: +  시작가: +  즉구가: + name=btn value='판매' onclick='return confirm("정말 판매하시겠습니까?");'> +
+ ㆍHint) 거래자가 판매(물품 판매, 금 수령), 입찰자가 구매(물품 구입, 금 지불).
+ ㆍHint) 단가가 1.00보다 높을수록 판매자 유리.
+ ㆍHint) 단가가 1.00보다 낮을수록 입찰자 유리.
+
+
+ + + + + + + + + + + + + + + + + 0 && $auction[amount] >= $auction[value] * 2 && $auction[stuff] == 0) { $radio = " disabled"; $alert = ""; $alert2 = ""; } + elseif($auction[no2] > 0 && $auction[topv] >= $auction[value]) { $radio = " disabled"; $alert = ""; $alert2 = ""; } + elseif($chk == 0) { $radio = " checked"; $chk = 1; } + $pv = round($auction[value] * 100 / $auction[amount]) / 100 + 0.001; + $pv = substr($pv, 0, 4); + if($auction[stuff] != 0) { $pv = '-'; } + echo " + + + + + + + + + + + + + + "; +} +?> + + + + + + + + + + + + + + + + +
삽 니 다
거래번호선택구매자물품수량시작구매가현재구매가즉시구매가단가판매 예정자거래종료
{$auction[no]}{$auction[name1]}{$itemname}{$auction[amount]}금 {$auction[cost]}{$alert}금 {$auction[value]}{$alert2}{$alert}금 {$auction[topv]}{$alert2}{$alert}{$pv}{$alert2}{$alert}{$auction[name2]}{$alert2}{$auction[expire]}
등록결과
입찰등록 +  수령할 금액: + name=btn value='판매시도' onclick='return confirm("정말 입찰하시겠습니까?");'> +
거래등록 +  종료: 턴 후 +  물품: +  구입량: +  시작가: +  즉구가: + name=btn value='구매' onclick='return confirm("정말 구매하시겠습니까?");'> +
+ ㆍHint) 거래자가 구매(물품 구매, 금 지불), 입찰자가 판매(물품 판매, 금 수령).
+ ㆍHint) 단가가 1.00보다 낮을수록 구매자 유리.
+ ㆍHint) 단가가 1.00보다 높을수록 입찰자 유리.
+
+
+ + + + + + + +
최 근 기 록
+ +
도 움 말
+ +ㆍ판매거래는 거래자가 판매할 물품을 거래하면, 구입을 희망하는 사람이 현재가보다 높게 입찰하여 구입하는 방식입니다.
+ㆍHint) 쌀이 귀한 경우는 입찰자가 많아서 자연스레 단가가 오르게 됩니다. (해당 물품을 사려는 가격이 오름)
+ㆍHint) 쌀이 흔한 경우는 초기 가격을 낮게 책정해야 판매가 가능할 겁니다.
+ㆍ구매거래는 거래자가 구입할 물품을 거래하면, 판매를 희망하는 사람이 현재가보다 낮게 입찰하여 판매하는 방식입니다.
+ㆍHint) 쌀이 흔한 경우는 입찰자가 많아서 자연스레 단가가 내리게 됩니다. (해당 물품을 팔려는 가격이 내림)
+ㆍHint) 쌀이 귀한 경우는 초기 가격을 높게 책정해야 구입이 가능할 겁니다.
+ㆍ마감임박때 입찰하는 경우 입찰후 1턴 후로 종료시간이 연장됩니다.
+ㆍ즉시구매가로 입찰하는 경우 입찰후 1턴 후로 종료시간이 결정됩니다.
+ㆍ악용 방지를 위해 50% ~ 200%의 가격에서 거래시작이 가능합니다.
+ㆍ악용 방지를 위해 즉시판매가는 110% 이상, 즉시구매가는 90% 이하의 시세로 가능합니다.
+ㆍ악용 방지를 위해 즉시판매가는 시작판매가의 110% 이상, 즉시구매가는 시작구매가의 90% 이하로 가능합니다.
+ㆍ1인당 도합 1건의 거래와 입찰이 가능합니다. 거상 특기 소유자는 1인당 도합 3건입니다.
+ㆍ기본금쌀 1000은 거래에 사용되지 못합니다.
+ㆍ유찰될 때는 거래 과실자에게 거래금의 1%가 벌금으로 부과됩니다.
+ㆍ10단위로 거래가 가능합니다. 1자리는 반올림 처리 됩니다.
+ㆍ★ 최고가 거래 ★ 혹은 ★ 최저가 거래 ★ 는 암거래 및 악용의 가능성이니 감시 부탁드립니다.
+ㆍ거래와 입찰은 취소가 불가능하니 주의하세요!
+ㆍHint) 단가는 금/쌀로 쌀1을 거래하기 위한 금의 양입니다.
+ㆍHint) 단가가 높으면(>1.00) 쌀이 비싸므로 판매가 이득입니다.
+ㆍHint) 단가가 낮으면(<1.00) 금이 비싸므로 구매가 이득입니다.
+ㆍ즐거운 거래! +
+
+ + + diff --git a/twe_close/b_battleCenter.php b/twe_close/b_battleCenter.php new file mode 100644 index 00000000..f61d9645 --- /dev/null +++ b/twe_close/b_battleCenter.php @@ -0,0 +1,142 @@ += 2) { printLimitMsg($me[turntime]); exit(); } + +//재야인 경우 +$meLevel = $me[level]; +if($meLevel == 0 || ($meLevel == 1 && $me[belong] < $nation[secretlimit])) { + echo "수뇌부가 아니거나 사관년도가 부족합니다."; + exit(); +} + +//잘못된 접근 +if($general[nation] != $me[nation]) { + $gen = 0; +} + +if($btn == '정렬하기') { + $gen = 0; +} + +if($type == 0) { + $type = 0; +} +$sel[$type] = "selected"; + +if($me[skin] < 1) { + $tempColor = $_basecolor; $tempColor2 = $_basecolor2; $tempColor3 = $_basecolor3; $tempColor4 = $_basecolor4; + $_basecolor = "000000"; $_basecolor2 = "000000"; $_basecolor3 = "000000"; $_basecolor4 = "000000"; +} +?> + + + +감찰부 + + + + + + + + + +
감 찰 부
+
+ 정렬순서 : + + + 대상장수 : + + +
+
+ + + + + + + + + + + + + + + + + +
장 수 정 보장 수 열 전
+ + + +
전투 기록전투 결과
+ + + +
+ + + +
+ + + diff --git a/twe_close/b_betting.php b/twe_close/b_betting.php new file mode 100644 index 00000000..0e4963d9 --- /dev/null +++ b/twe_close/b_betting.php @@ -0,0 +1,339 @@ += 2) { printLimitMsg($me[turntime]); exit(); } + +switch($admin[tnmt_type]) { +case 0: $tnmt_type = "전력전"; $tp = "tot"; $tp2 = "종합"; $tp3 = "total"; break; +case 1: $tnmt_type = "통솔전"; $tp = "ldr"; $tp2 = "통솔"; $tp3 = "leader"; break; +case 2: $tnmt_type = "일기토"; $tp = "pwr"; $tp2 = "무력"; $tp3 = "power"; break; +case 3: $tnmt_type = "설전"; $tp = "itl"; $tp2 = "지력"; $tp3 = "intel"; break; +} + +$str1 = getTournament($admin[tournament]); +$str2 = getTournamentTime($connect); +$str3 = getTournamentTerm($connect); + +?> + + + + +베팅장 + + + + + + + +
베 팅 장
+ + + + +
()
16강 상황
(전체 금액 : / 내 투자 금액 : )
+ + + +=60 order by grp, grp_no"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=0; $i < 1; $i++) { + $general = MYDB_fetch_array($result); + if($general[name] == "") { $general[name] = "-"; } + if($general[npc] >= 2) { $general[name] = "".$general[name].""; } + elseif($general[npc] == 1) { $general[name] = "".$general[name].""; } + echo ""; +} + +echo " + + "; + +$query = "select npc,name,win from tournament where grp>=50 order by grp, grp_no"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=0; $i < 1; $i++) { $cent[$i] = ""; } +for($i=0; $i < 2; $i++) { + $general = MYDB_fetch_array($result); + if($general[name] == "") { $general[name] = "-"; } + if($general[npc] >= 2) { $general[name] = "".$general[name].""; } + elseif($general[npc] == 1) { $general[name] = "".$general[name].""; } + if($general[win] > 0) { $line[$i] = ""; $cent[floor($i/2)] = ""; } + else { $line[$i] = ""; } + $gen[$i] = $general[name]; +} +for($i=0; $i < 1; $i++) { + $cent[$i] = $cent[$i]."┻".""; + $line[$i*2] = $line[$i*2]."┏━━━━━━━━━━━━━━━━━━━━━━━━━━━".""; + $line[$i*2+1] = $line[$i*2+1]."━━━━━━━━━━━━━━━━━━━━━━━━━━━┓".""; + echo ""; +} +echo " + + "; + +for($i=0; $i < 2; $i++) { + echo ""; +} + +echo " + + "; + +$query = "select npc,name,win from tournament where grp>=40 order by grp, grp_no"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=0; $i < 2; $i++) { $cent[$i] = ""; } +for($i=0; $i < 4; $i++) { + $general = MYDB_fetch_array($result); + if($general[name] == "") { $general[name] = "-"; } + if($general[npc] >= 2) { $general[name] = "".$general[name].""; } + elseif($general[npc] == 1) { $general[name] = "".$general[name].""; } + if($general[win] > 0) { $line[$i] = ""; $cent[floor($i/2)] = ""; } + else { $line[$i] = ""; } + $gen[$i] = $general[name]; +} +for($i=0; $i < 2; $i++) { + $cent[$i] = $cent[$i]."┻".""; + $line[$i*2] = $line[$i*2]."┏━━━━━━━━━━━━━".""; + $line[$i*2+1] = $line[$i*2+1]."━━━━━━━━━━━━━┓".""; + echo ""; +} +echo " + + "; + +for($i=0; $i < 4; $i++) { + echo ""; +} + +echo " + + "; + +$query = "select npc,name,win from tournament where grp>=30 order by grp, grp_no"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=0; $i < 4; $i++) { $cent[$i] = ""; } +for($i=0; $i < 8; $i++) { + $general = MYDB_fetch_array($result); + if($general[name] == "") { $general[name] = "-"; } + if($general[npc] >= 2) { $general[name] = "".$general[name].""; } + elseif($general[npc] == 1) { $general[name] = "".$general[name].""; } + if($general[win] > 0) { $line[$i] = ""; $cent[floor($i/2)] = ""; } + else { $line[$i] = ""; } + $gen[$i] = $general[name]; +} +for($i=0; $i < 4; $i++) { + $cent[$i] = $cent[$i]."┻".""; + $line[$i*2] = $line[$i*2]."┏━━━━━━".""; + $line[$i*2+1] = $line[$i*2+1]."━━━━━━┓".""; + echo ""; +} +echo " + + "; + +for($i=0; $i < 8; $i++) { + echo ""; +} + +echo " + + "; + +$query = "select npc,name,win from tournament where grp>=20 order by grp, grp_no"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=0; $i < 8; $i++) { $cent[$i] = ""; } +for($i=0; $i < 16; $i++) { + $general = MYDB_fetch_array($result); + if($general[name] == "") { $general[name] = "-"; } + if($general[npc] >= 2) { $general[name] = "".$general[name].""; } + elseif($general[npc] == 1) { $general[name] = "".$general[name].""; } + if($general[win] > 0) { $line[$i] = ""; $cent[floor($i/2)] = ""; } + else { $line[$i] = ""; } + $gen[$i] = $general[name]; +} +for($i=0; $i < 8; $i++) { + $cent[$i] = $cent[$i]."┻".""; + $line[$i*2] = $line[$i*2]."┏━━".""; + $line[$i*2+1] = $line[$i*2+1]."━━┓".""; + echo ""; +} +echo " + + "; + +for($i=0; $i < 16; $i++) { + echo ""; +} + +$query = "select bet0,bet1,bet2,bet3,bet4,bet5,bet6,bet7,bet8,bet9,bet10,bet11,bet12,bet13,bet14,bet15 from general where user_id='$_SESSION[p_id]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$me = MYDB_fetch_array($result); +for($i=0; $i < 16; $i++) { + $myBet[$i] = $me["bet{$i}"]; +} + +for($i=0; $i < 16; $i++) { + $bet[$i] = @round($admin[bet] / $admin["bet{$i}"], 2); + if($bet[$i] == 0) { $bet[$i] = "∞"; } +} + +for($i=0; $i < 16; $i++) { + $gold[$i] = round($myBet[$i] * $bet[$i]); +} +?> + +
{$general[name]}
{$line[$i*2]}{$cent[$i]}{$line[$i*2+1]}
{$gen[$i]}
{$line[$i*2]}{$cent[$i]}{$line[$i*2+1]}
{$gen[$i]}
{$line[$i*2]}{$cent[$i]}{$line[$i*2+1]}
{$gen[$i]}
{$line[$i*2]}{$cent[$i]}{$line[$i*2+1]}
{$gen[$i]}
+ + +"; + +for($i=0; $i < 16; $i++) { + echo ""; +} +?> + + + + + + +{$myBet[$i]}"; +} +?> + + + + + + +{$gold[$i]}"; +} + +echo " + + "; + +if($admin[tournament] == 6) { + echo " + + "; + + for($i=0; $i < 16; $i++) { + echo " + "; + } + + echo " + + "; + + for($i=0; $i < 16; $i++) { + echo " + "; + } + + echo " + +"; +} + +?> + + + + +
{$bet[$i]}
××××××××××××××××
+ +
+ 배당률 × 베팅금 = 적중시 환수금
+ ( 베팅후 500원 이하일땐 베팅이 불가능합니다. ) +
+ + + + + +
토너먼트 랭킹
순위 / 장수명 / 능력치 / 경기수 / 승리 / 무승부 / 패배 / 집계점수 / 우승횟수
+ + "; + + $query = "select npc,name,leader,power,intel,leader+power+intel as total,{$type3[$i]}p as prize,{$type3[$i]}w+{$type3[$i]}d+{$type3[$i]}l as game,{$type3[$i]}w as win,{$type3[$i]}d as draw,{$type3[$i]}l as lose,{$type3[$i]}g as gl from general order by gl desc, game desc, win desc, draw desc, lose, no limit 0,30"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + for($k=1; $k <= 30; $k++) { + $general = MYDB_fetch_array($result); + printRow($k, $general[npc], $general[name], $general[$type4[$i]], $general[game], $general[win], $general[draw], $general[lose], $general[gl], $general[prize], 0); + } + echo " +
{$type1[$i]}
장수{$type2[$i]}
+ "; +} + +?> + + + +ㆍ토너먼트의 16강 대진표가 완성되면, 베팅 기간이 주어집니다.
+ㆍ유저들의 베팅 상황에 따라 배당률이 실시간 결정되며, 자신의 베팅금에 따른 예상 환급금을 알 수 있습니다.
+ㆍ베팅은 16슬롯에 각각 베팅 가능하며, 도합 최대 금 1000씩 베팅 가능합니다.
+ㆍ소지금 500원 이하일땐 베팅이 불가능합니다. +ㆍ삼모와 더불어 토너먼트, 베팅기능으로 즐거운 삼모 되세요!
+ + + + + + +
+ + + diff --git a/twe_close/b_chiefboard.php b/twe_close/b_chiefboard.php new file mode 100644 index 00000000..9e783b9d --- /dev/null +++ b/twe_close/b_chiefboard.php @@ -0,0 +1,71 @@ + + + +기밀실 + + + + + + + + + + + + + +
기 밀 실
+ 제목 +
+
+ + +
+
+ + + + + +
+ + + + diff --git a/twe_close/b_chiefcenter.php b/twe_close/b_chiefcenter.php new file mode 100644 index 00000000..0cc44cb3 --- /dev/null +++ b/twe_close/b_chiefcenter.php @@ -0,0 +1,175 @@ += 2) { printLimitMsg($me[turntime]); exit(); } + +if($me[level] == 0 || ($me[level] == 1 && $me[belong] < $nation[secretlimit])) { + echo "수뇌부가 아니거나 사관년도가 부족합니다."; + exit(); +} + +if($me[level] >= 5) { $btn = "submit"; $btn2 = "button"; } +else { $btn = "hidden"; $btn2 = "hidden"; } + +if($me[skin] < 1) { + $tempColor = $_basecolor; $tempColor2 = $_basecolor2; $tempColor3 = $_basecolor3; $tempColor4 = $_basecolor4; + $_basecolor = "000000"; $_basecolor2 = "000000"; $_basecolor3 = "000000"; $_basecolor4 = "000000"; +} + +$date = date('Y-m-d H:i:s'); + +// 명령 목록 +$query = "select year,month,turnterm from game where no='1'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); + +$query = " + select nation,level, + l12turn0,l12turn1,l12turn2,l12turn3,l12turn4,l12turn5,l12turn6,l12turn7,l12turn8,l12turn9,l12turn10,l12turn11, + l11turn0,l11turn1,l11turn2,l11turn3,l11turn4,l11turn5,l11turn6,l11turn7,l11turn8,l11turn9,l11turn10,l11turn11, + l10turn0,l10turn1,l10turn2,l10turn3,l10turn4,l10turn5,l10turn6,l10turn7,l10turn8,l10turn9,l10turn10,l10turn11, + l9turn0, l9turn1, l9turn2, l9turn3, l9turn4, l9turn5, l9turn6, l9turn7, l9turn8, l9turn9, l9turn10, l9turn11, + l8turn0, l8turn1, l8turn2, l8turn3, l8turn4, l8turn5, l8turn6, l8turn7, l8turn8, l8turn9, l8turn10, l8turn11, + l7turn0, l7turn1, l7turn2, l7turn3, l7turn4, l7turn5, l7turn6, l7turn7, l7turn8, l7turn9, l7turn10, l7turn11, + l6turn0, l6turn1, l6turn2, l6turn3, l6turn4, l6turn5, l6turn6, l6turn7, l6turn8, l6turn9, l6turn10, l6turn11, + l5turn0, l5turn1, l5turn2, l5turn3, l5turn4, l5turn5, l5turn6, l5turn7, l5turn8, l5turn9, l5turn10, l5turn11 + from nation where nation='$me[nation]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$nation = MYDB_fetch_array($result); + +$lv = getNationChiefLevel($nation[level]); +for($i=12; $i >= $lv; $i--) { + $turn[$i] = getCoreTurn($connect, $nation, $i); + + $query = "select name,turntime,npc from general where level={$i} and nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen[$i] = MYDB_fetch_array($result); +} + +?> + + + +사령부 + + + + + + + + +
사 령 부
+ + + + + + + + + + + "; + + for($i=0; $i < 12; $i++) { + $turndate[$l4] = substr($totaldate[$l4], 11, 5); + $turndate[$l3] = substr($totaldate[$l3], 11, 5); + $turndate[$l2] = substr($totaldate[$l2], 11, 5); + $turndate[$l1] = substr($totaldate[$l1], 11, 5); + $j = $i + 1; + $td4 = ($turndate[$l4] == "") ? "-" : $turndate[$l4]; + $td3 = ($turndate[$l3] == "") ? "-" : $turndate[$l3]; + $td2 = ($turndate[$l2] == "") ? "-" : $turndate[$l2]; + $td1 = ($turndate[$l1] == "") ? "-" : $turndate[$l1]; + $tn4 = ($turn[$l4][$i] == "") ? "-" : $turn[$l4][$i]; + $tn3 = ($turn[$l3][$i] == "") ? "-" : $turn[$l3][$i]; + $tn2 = ($turn[$l2][$i] == "") ? "-" : $turn[$l2][$i]; + $tn1 = ($turn[$l1][$i] == "") ? "-" : $turn[$l1][$i]; + echo " + + + + + + + + + + + + + "; + if($totaldate[$l4] != "") { $totaldate[$l4] = addTurn($totaldate[$l4], $admin[turnterm]); } + if($totaldate[$l3] != "") { $totaldate[$l3] = addTurn($totaldate[$l3], $admin[turnterm]); } + if($totaldate[$l2] != "") { $totaldate[$l2] = addTurn($totaldate[$l2], $admin[turnterm]); } + if($totaldate[$l1] != "") { $totaldate[$l1] = addTurn($totaldate[$l1], $admin[turnterm]); } + } + if($k == 0) { + echo ""; + } +} + +?> +
수뇌부 일정
+= $lv; $i--) { + $totaldate[$i] = $gen[$i][turntime]; + $turntime[$i] = substr($gen[$i][turntime], 14); +} + +for($k=0; $k < 2; $k++) { + $l4 = 12 - $k; $l3 = 10 - $k; $l2 = 8 - $k; $l1 = 6 - $k; + + if ($gen[$l4][npc] >= 2) { $gen[$l4][name] = "".$gen[$l4][name].""; } + elseif($gen[$l4][npc] == 1) { $gen[$l4][name] = "".$gen[$l4][name].""; } + if ($gen[$l3][npc] >= 2) { $gen[$l3][name] = "".$gen[$l3][name].""; } + elseif($gen[$l3][npc] == 1) { $gen[$l3][name] = "".$gen[$l3][name].""; } + if ($gen[$l2][npc] >= 2) { $gen[$l2][name] = "".$gen[$l2][name].""; } + elseif($gen[$l2][npc] == 1) { $gen[$l2][name] = "".$gen[$l2][name].""; } + if ($gen[$l1][npc] >= 2) { $gen[$l1][name] = "".$gen[$l1][name].""; } + elseif($gen[$l1][npc] == 1) { $gen[$l1][name] = "".$gen[$l1][name].""; } + + echo " +
.".getLevel($l4, $nation[level])." : {$gen[$l4][name]}".getLevel($l3, $nation[level])." : {$gen[$l3][name]}".getLevel($l2, $nation[level])." : {$gen[$l2][name]}".getLevel($l1, $nation[level])." : {$gen[$l1][name]}.
$j$td4$tn4$td3$tn3$td2$tn2$td1$tn1$j
"; + CoreTurnTable(); + echo " + + +
"; + CoreCommandTable($connect); + echo "
+ + + +
+ + + + diff --git a/twe_close/b_currentCity.php b/twe_close/b_currentCity.php new file mode 100644 index 00000000..40ab67c5 --- /dev/null +++ b/twe_close/b_currentCity.php @@ -0,0 +1,352 @@ + + + + +도시정보 + + + + + + + + +
도 시 정 보
+ + + + + +
+
도시선택 : + + +

명령 화면에서 도시를 클릭하셔도 됩니다.

+
+
+
"; + +// 첩보된 도시까지만 허용 +if($valid == 0 && $me[userlevel] < 5) { + $_POST[citylist] = $me[city]; +} + +$query = "select * from city where city='$_POST[citylist]'"; // 도시 이름 목록 +$cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$city = MYDB_fetch_array($cityresult); + +$query = "select nation,name,color from nation where nation='$city[nation]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$nation = MYDB_fetch_array($result); + +$query = "select name from general where no='$city[gen1]'"; // 태수 이름 +$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$gen1 = MYDB_fetch_array($genresult); + +$query = "select name from general where no='$city[gen2]'"; // 군사 이름 +$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$gen2 = MYDB_fetch_array($genresult); + +$query = "select name from general where no='$city[gen3]'"; // 시중 이름 +$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$gen3 = MYDB_fetch_array($genresult); + +if($city[trade] == 0) { + $city[trade] = "- "; +} +?> + + + +
+ + + + 【 ".getRegion($city[region])." | ".getCityLevel($city[level])." 】 $city[name] + + + 주민 + $city[pop]/$city[pop2] + 농업 + $city[agri]/$city[agri2] + 상업 + $city[comm]/$city[comm2] + 치안 + $city[secu]/$city[secu2] + 수비 + $city[def]/$city[def2] + 성벽 + $city[wall]/$city[wall2] + + + 민심 + $city[rate] + 시세 + {$city[trade]}% + 인구 + ".round($city[pop]/$city[pop2]*100, 2)." % + 태수 + ";echo $gen1[name]==''?"-":"$gen1[name]";echo " + 군사 + ";echo $gen2[name]==''?"-":"$gen2[name]";echo " + 시중 + ";echo $gen3[name]==''?"-":"$gen3[name]";echo " + + + 장수 + "; + $query = "select name from general where city='$city[city]' and nation='$city[nation]'"; // 장수 목록 + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($genresult); + if($gencount == 0) echo "-"; + for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($genresult); + echo "$general[name], "; + } + echo " + + +"; + +$query = "select npc,mode,no,picture,imgsvr,name,injury,leader,power,intel,level,nation,crewtype,crew,train,atmos,term,turn0,turn1,turn2,turn3,turn4 from general where city='$city[city]' order by dedication desc"; // 장수 목록 +$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$gencount = MYDB_num_rows($genresult); + +$query = "select nation,level,name from nation"; // 국가 이름 목록 +$nationresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$nationcount = MYDB_num_rows($nationresult); + +for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($nationresult); + $nationname[$nation[nation]] = $nation[name]; + $nationlevel[$nation[nation]] = $nation[level]; +} + +if($gencount != 0) { + echo " +
+ + + + + + + + + + + + + + + "; +} + +for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + + if($general[level] == 12) { + $lbonus = $nationlevel[$general[nation]] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nationlevel[$general[nation]]; + } else { + $lbonus = 0; + } + if($lbonus > 0) { + $lbonus = "+{$lbonus}"; + } else { + $lbonus = ""; + } + + if($general[injury] > 0) { + $leader = floor($general[leader] * (100 - $general[injury])/100); + $power = floor($general[power] * (100 - $general[injury])/100); + $intel = floor($general[intel] * (100 - $general[injury])/100); + $leader = "{$leader}{$lbonus}"; + $power = "{$power}"; + $intel = "{$intel}"; + } else { + $leader = "{$general[leader]}{$lbonus}"; + $power = "{$general[power]}"; + $intel = "{$general[intel]}"; + } + + if($general[npc] >= 2) { $general[name] = "{$general[name]}"; } + elseif($general[npc] == 1) { $general[name] = "{$general[name]}"; } + $imageTemp = GetImageURL($general[imgsvr]); + echo " + + + + + + + "; + //아국장수이거나 보는 사람이 운영자일때 보여줌 + if(($general[nation] != 0 && $general[nation] == $myNation[nation]) || $me[userlevel] >= 5) { + switch($general[mode]) { + case 0: $mode = "×"; break; + case 1: $mode = "○"; break; + case 2: $mode = "◎"; break; + } + + echo " + + + + + "; + if($general[npc] >= 2) { + echo " + + + + + + + + + + + + "; +} +?> +
얼 굴이 름통솔무력지력관 직병 종병 사훈련사기명 령
$general[name]$leader$power$intel".getLevel($general[level])."$mode".getTypename($general[crewtype])."$general[crew]$general[train]$general[atmos]NPC 장수"; + } else { + echo " + + "; + $turn = getTurn($connect, $general, 1); + + for($i=0; $i < 5; $i++) { + $k = $i+1; + echo " +   $k : $turn[$i]
"; + } + echo " +
"; + } + } elseif($general[nation] != 0) { + echo " +
??$general[crew]??【{$nationname[$general[nation]]}】 장수"; + } else { + echo " + ??$general[crew]??  재 야"; + } + + echo " +
+ + + + +
+ + + + diff --git a/twe_close/b_dipcenter.php b/twe_close/b_dipcenter.php new file mode 100644 index 00000000..4b08eeb7 --- /dev/null +++ b/twe_close/b_dipcenter.php @@ -0,0 +1,298 @@ += 2) { printLimitMsg($me[turntime]); exit(); } + +if($me[level] == 0 || ($me[level] == 1 && $me[belong] < $nation[secretlimit])) { + echo "수뇌부가 아니거나 사관년도가 부족합니다."; + exit(); +} + +if($me[level] >= 5) { $btn = "submit"; $read = ""; } +else { $btn = "hidden"; $read = "readonly"; } + +if($me[skin] < 1) { + $tempColor = $_basecolor; $tempColor2 = $_basecolor2; $tempColor3 = $_basecolor3; $tempColor4 = $_basecolor4; + $_basecolor = "000000"; $_basecolor2 = "000000"; $_basecolor3 = "000000"; $_basecolor4 = "000000"; +} +?> + + + +내무부 + + + + + + + +
내 무 부
+ + + + + + + + + + + + + + + + + + + + + + "; + + continue; + } + + $query = "select state,term,fixed,reserved,showing from diplomacy where me='$me[nation]' and you='$nation[nation]'"; + $result2 = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result2); + + $query = "select reserved,showing from diplomacy where you='$me[nation]' and me='$nation[nation]'"; + $result2 = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip2 = MYDB_fetch_array($result2); + //속령수 + $query = "select city from city where nation='$nation[nation]'"; + $result2 = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($result2); + switch($dip[state]) { + case 0: $state = "교 전"; break; + case 1: $state = "선포중"; break; + case 2: $state = "통 상"; break; + case 3: $state = "통합수락중"; break; + case 4: $state = "통합제의중"; break; + case 5: $state = "합병수락중"; break; + case 6: $state = "합병제의중"; break; + case 7: $state = "불가침"; break; + } + + $term = $admin[year] * 12 + $admin[month] + $dip[term]; + $year = floor($term / 12); + $month = $term % 12; + + if($month == 0) { + $month = 12; + $year--; + } + + $date = date('Y-m-d H:i:s'); + $note = ""; + if($dip[fixed] != "") { + if($dip[state] == 7) { + $note .= $dip[fixed]; + } else { + $note .= "{$dip[fixed]}"; + } + if($dip[reserved] != "" || $dip2[reserved] != "") { + $note .= "
"; + } + } + if($dip[showing] >= $date) { + if($dip[reserved] != "") { + $note .= "아국측 제의: ".$dip[reserved]; + if($dip2[reserved] != "") { + $note .= "
"; + } + } + } + if($dip2[showing] >= $date) { + if($dip2[reserved] != "") { + $note .= "상대측 제의: ".$dip2[reserved]; + } + } + if($note == "") { $note = " "; } + + echo " + + + + + + "; + if($dip[term] != 0) { + echo" + + "; + } else { + echo" + + "; + } + echo " + + "; +} +echo " +
외 교 관 계
국 가 명국력장수속령상태기간종 료 시 점비 고
$nation[name]$nation[power]$nation[gennum]$citycount----
$nation[name]$nation[power]$nation[gennum]$citycount$state$dip[term] 개월{$year}年 {$month}月--{$note}
+"; + +$query = "select nation,name,color,type,msg,gold,rice,bill,rate,scout,war,myset,scoutmsg,secretlimit from nation where nation='$me[nation]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$nation = MYDB_fetch_array($result); + +$query = "select gold_rate,rice_rate from game where no='1'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); +// 금 수지 +$deadIncome = getDeadIncome($connect, $nation[nation], $nation[type], $admin[gold_rate]); + +$goldincomeList = getGoldIncome($connect, $nation[nation], $nation[rate], $admin[gold_rate], $nation[type]); +$goldincome = $goldincomeList[0] + $goldincomeList[1] + $deadIncome; +$goldoutcome = getGoldOutcome($connect, $nation[nation], $nation[bill]); +$riceincomeList = getRiceIncome($connect, $nation[nation], $nation[rate], $admin[rice_rate], $nation[type]); +$riceincome = $riceincomeList[0] + $riceincomeList[1]; +$riceoutcome = getRiceOutcome($connect, $nation[nation], $nation[bill]); + + +$budgetgold = $nation[gold] + $goldincome - $goldoutcome + $deadIncome; +$budgetrice = $nation[rice] + $riceincome - $riceoutcome; +$budgetgolddiff = $goldincome - $goldoutcome + $deadIncome; +$budgetricediff = $riceincome - $riceoutcome; +if($budgetgolddiff > 0) { $budgetgolddiff = "+{$budgetgolddiff}"; } +else { $budgetgolddiff = "$budgetgolddiff"; } +if($budgetricediff > 0) { $budgetricediff = "+{$budgetricediff}"; } +else { $budgetricediff = "$budgetricediff"; } + +?> + + + + + + + + + + + + + +
국 가 방 침 & 임관 권유 메세지
국가 방침 maxlength=500 style=color:white;background-color:black;width:830; name=msg value=''> name=btn value=국가방침>
임관 권유 maxlength=500 style=color:white;background-color:black;width:830; name=scoutmsg value=''> name=btn value=임관권유>
900 x 200px 넘는 크기를 점유할 시 통보없이 제한될 수 있습니다.
예 산 & 정 책
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "; +?> + + + + + + + + + + + + + + + +
자금 예산병량 예산
현 재   $nation[gold]현 재   $nation[rice]
단기수입   +$deadIncome둔전수입   +$riceincomeList[1]
세 금   +$goldincomeList[0]세 곡   +$riceincomeList[0]
수입 / 지출   +$goldincome / -$goldoutcome수입 / 지출   +$riceincome / -$riceoutcome
국고 예산   {$budgetgold} ({$budgetgolddiff})병량 예산   {$budgetrice} ({$budgetricediff})
세율 (5 ~ 30%)    name=rate style=text-align:right;color:white;background-color:black; size=3 maxlength=3 value=>% name=btn value=세율>봉급 지급율 (20 ~ 200%)    name=bill style=text-align:right;color:white;background-color:black; size=3 maxlength=3 value=>% name=btn value=지급율>
기밀 권한 (1 ~ 99년)    name=secretlimit style=text-align:right;color:white;background-color:black; size=3 maxlength=3 value=>년 name=btn value=기밀권한>임관&전쟁 변경 가능
+ 0) { + if($nation[scout] == 0) { + echo " + "; + } else { + echo " + "; + } + + if($nation[war] == 0) { + echo " + "; + } else { + echo " + "; + } +} +?> +
+
기밀 권한이란, 암행부를 열람할 수 있는 일반 장수의 최소 사관 년수를 의미합니다.
+ + + +
+ + + diff --git a/twe_close/b_diplomacy.php b/twe_close/b_diplomacy.php new file mode 100644 index 00000000..6d134326 --- /dev/null +++ b/twe_close/b_diplomacy.php @@ -0,0 +1,222 @@ +0 order by power desc"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$nationcount = MYDB_num_rows($result); + +$nationStr = ""; +for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($result); + + $query = "select city from city where nation='$nation[nation]'"; + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($cityresult); + + $nationnum[count($nationnum)] = $nation[nation]; + $nationname[$nation[nation]] = $nation[name]; + $nationcolor[$nation[nation]] = $nation[color]; + + $nationStr .= " $nation[name]
"; + $powerStr .= "국력 $nation[power]
"; + $genStr .= "장수 $nation[gennum]
"; + $cityStr .= "속령 $citycount
"; +} + +if($me[skin] < 1) { + $tempColor = $_basecolor; $tempColor2 = $_basecolor2; $tempColor3 = $_basecolor3; $tempColor4 = $_basecolor4; + $_basecolor = "000000"; $_basecolor2 = "000000"; $_basecolor3 = "000000"; $_basecolor4 = "000000"; +} +?> + + + + +중원정보 + + + + + + + +
중 원 정 보
+
+ + + + "; + +if($nationcount != 0) { + $width = floor(888 / $nationcount); +} + +for($i=0; $i < $nationcount; $i++) { + echo " + "; +} +echo " + "; + +for($i=0; $i < $nationcount; $i++) { + $query = "select you,state from diplomacy where me='$nationnum[$i]'"; + $dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount2 = MYDB_num_rows($dipresult); + for($k=0; $k < $nationcount2; $k++) { + $dip = MYDB_fetch_array($dipresult); + $state[$dip[you]] = $dip[state]; + } + echo " + + "; + + for($k=0; $k < $nationcount; $k++) { + if($i == $k) { + $str = "\"; + } else { + switch($state[$nationnum[$k]]) { + case 0: $str = ""; break; + case 1: $str = ""; break; + case 2: + if($nationnum[$i] == $me[nation] || $nationnum[$k] == $me[nation] || $me[userlevel] >= 4) { $str = "ㆍ"; } + else { $str = "?"; } +// $str = "ㆍ"; + break; + case 3: $str = ""; break; + case 4: $str = ""; break; + case 5: $str = ""; break; + case 6: $str = ""; break; + case 7: + if($nationnum[$i] == $me[nation] || $nationnum[$k] == $me[nation] || $me[userlevel] >= 4) { $str = "@"; } + else { $str = "?"; } +// $str = "@"; + break; + } + } + + if($nationnum[$i] == $me[nation] || $nationnum[$k] == $me[nation]) { $backcolor = "style=background-color:$_basecolor3;"; } + else { $backcolor = ""; } + + echo " + "; + } + echo " + +"; +} +?> + +
align=center bgcolor=blue>외 교 현 황
 {$nationname[$nationnum[$i]]}
{$nationname[$nationnum[$i]]}$str
align=center>불가침 : @, 통합 : , 합병 : , 통상 : ㆍ, 선포 : , 교전 :
+ + + "; +} + +for($i=0; $i < $citycount; $i++) { + $city = MYDB_fetch_array($result); + + if($city[conflict] != "") { + $nation = explode("|", $city[conflict]); + $killnum = explode("|", $city[conflict2]); + + $seq = mySort($killnum); // 큰 순서대로 순서를 구한다. + + $sum = 0; + for($k=0; $k < count($killnum); $k++) { + $sum += $killnum[$k]; + } + echo " + + + + + "; + } +} + +function mySort($killnum) { + for($i=0; $i < count($killnum); $i++) { + $seq[$i] = $i; + } + for($i=0; $i < count($killnum); $i++) { + $max = 0; + for($k=0; $k < count($killnum); $k++) { + if($max < $killnum[$k]) { + $max = $killnum[$k]; + $index = $k; + } + } + $seq[$i] = $index; + $killnum[$index] = 0; + } + return $seq; +} + +echo " +
분 쟁 현 황
$city[name]"; + for($k=0; $k < count($nation); $k++) { + $per = 100*$killnum[$seq[$k]] / $sum; + $graph1 = $per / 100 * 798; + $per = round($per, 1); + echo " + + + + + + + +
{$nationname[$nation[$seq[$k]]]} {$per}% 
"; + } + echo " +
+
"; + +echo " + + + + + + + + + + + +
중 원 지 도
+ + $nationStr$powerStr$genStr$cityStr
+
"; +?> + + + + +
+ + + diff --git a/twe_close/b_genList.php b/twe_close/b_genList.php new file mode 100644 index 00000000..afe6f440 --- /dev/null +++ b/twe_close/b_genList.php @@ -0,0 +1,199 @@ += 2) { printLimitMsg($me[turntime]); exit(); } + +if($me[level] == 0 || ($me[level] == 1 && $me[belong] < $nation[secretlimit])) { + echo "수뇌부가 아니거나 사관년도가 부족합니다."; + exit(); +} + +if($type == 0) { + $type = 7; +} +$sel[$type] = "selected"; + +if($me[skin] < 1) { + $tempColor = $_basecolor; $tempColor2 = $_basecolor2; $tempColor3 = $_basecolor3; $tempColor4 = $_basecolor4; + $_basecolor = "000000"; $_basecolor2 = "000000"; $_basecolor3 = "000000"; $_basecolor4 = "000000"; +} +?> + + + + +암행부 + + + + + + + + +
암 행 부
정렬순서 : + +
+
+ + + 이 름 + 통무지 + 부 대 + 자 금 + 군 량 + 도시 + 守 + 병 종 + 병 사 + 훈련 + 사기 + 명 령 + 삭턴 + 턴 + "; +for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + $city = $cityname[$general[city]]; + $troop = $troopName[$general[troop]] == "" ? "-" : $troopName[$general[troop]]; + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + if($lbonus > 0) { + $lbonus = "+{$lbonus}"; + } else { + $lbonus = ""; + } + + if($general[injury] > 0) { + $leader = floor($general[leader] * (100 - $general[injury])/100); + $power = floor($general[power] * (100 - $general[injury])/100); + $intel = floor($general[intel] * (100 - $general[injury])/100); + $leader = "{$leader}{$lbonus}"; + $power = "{$power}"; + $intel = "{$intel}"; + } else { + $leader = "{$general[leader]}{$lbonus}"; + $power = "{$general[power]}"; + $intel = "{$general[intel]}"; + } + + if($general[npc] >= 2) { $name = "$general[name]"; } + elseif($general[npc] == 1) { $name = "$general[name]"; } + else { $name = "$general[name]"; } + + switch($general[mode]) { + case 0: $mode = "×"; break; + case 1: $mode = "○"; break; + case 2: $mode = "◎"; break; + } + + echo " + + $name
Lv ".getExpLevel($general[experience])." + {$leader}∥{$power}∥{$intel} + $troop + $general[gold] + $general[rice] + $city + $mode + ".getTypename($general[crewtype])." + $general[crew] + $general[train] + $general[atmos]"; + if($general[npc] >= 2) { + echo " + + NPC 장수"; + } else { + echo " + + "; + $turn = getTurn($connect, $general, 1, 0); + + for($i=0; $i < 5; $i++) { + $turn[$i] = _String::SubStrForWidth($turn[$i], 0, 20); + $k = $i+1; + echo " +  $k : $turn[$i]
"; + } + } + echo " +
+ + $general[killturn] + ".substr($general[turntime],14,5)." + "; +} +echo " + +"; + +MYDB_close($connect); +?> + + + + +
+ + + diff --git a/twe_close/b_myBossInfo.php b/twe_close/b_myBossInfo.php new file mode 100644 index 00000000..acd0eea9 --- /dev/null +++ b/twe_close/b_myBossInfo.php @@ -0,0 +1,503 @@ + + + + + +인사부 + + + + + + + + +
인 사 부
+
+ += 5) { $btn = "submit"; } +else { $btn = "hidden"; } + +$query = "select name,level,picture,imgsvr,belong from general where nation='$nation[nation]' and level>={$lv} order by level desc"; +$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=12; $i >= $lv; $i--) { + $levels = MYDB_fetch_array($genresult); + $level[$levels[level]] = $levels; +} + +$query = "select name,picture,killnum from general where nation='$nation[nation]' order by killnum desc limit 5"; // 오호장군 +$tigerresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + +$query = "select name,picture,firenum from general where nation='$nation[nation]' order by firenum desc limit 7"; // 건안칠자 +$eagleresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + +echo " + + + + +"; +for($i=12; $i >= $lv; $i-=2) { + $i1 = $i; $i2 = $i - 1; + $imageTemp1 = GetImageURL($level[$i1][imgsvr]); + $imageTemp2 = GetImageURL($level[$i2][imgsvr]); + echo " + + + + + + + + + "; +} + +echo " + + + + + + + + +
+ 【 $nation[name] 】 +
".getLevel($i1, $nation[level])." ";echo $level[$i1][name]==''?"-":$level[$i1][name]; echo " ({$level[$i1][belong]}년)".getLevel($i2, $nation[level])." ";echo $level[$i2][name]==''?"-":$level[$i2][name]; echo " ({$level[$i2][belong]}년)
오호장군【승전】 +"; + +$tigernum = MYDB_num_rows($tigerresult); +for($i=0; $i < $tigernum; $i++) { + $tiger = MYDB_fetch_array($tigerresult); + + if($tiger[killnum] > 0) { + echo "{$tiger[name]}【{$tiger[killnum]}】, "; + } +} + +echo " +
건안칠자【계략】 +"; + +$eaglenum = MYDB_num_rows($eagleresult); +for($i=0; $i < $eaglenum; $i++) { + $eagle = MYDB_fetch_array($eagleresult); + + if($eagle[firenum] > 0) { + echo "{$eagle[name]}【{$eagle[firenum]}】, "; + } +} + +echo " +
+ + + + + + + + + +
추 방
대상 장수 +"; + +if($meLevel >= 5 && $nation["l{$meLevel}set"] == 0) { + echo " + + "; +} + +$query = "select name,city from general where nation='$me[nation]' and level=12"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$general = MYDB_fetch_array($result); +echo " +
+ + + + + + + + + + + +"; + +$querys[10] = "select no,name,level,city from general where nation='$me[nation]' and level!='12' and power>='$_goodgenpower' order by npc,binary(name)"; +$querys[9] = "select no,name,level,city from general where nation='$me[nation]' and level!='12' and intel>='$_goodgenintel' order by npc,binary(name)"; +$querys[8] = "select no,name,level,city from general where nation='$me[nation]' and level!='12' and power>='$_goodgenpower' order by npc,binary(name)"; +$querys[7] = "select no,name,level,city from general where nation='$me[nation]' and level!='12' and intel>='$_goodgenintel' order by npc,binary(name)"; +$querys[6] = "select no,name,level,city from general where nation='$me[nation]' and level!='12' and power>='$_goodgenpower' order by npc,binary(name)"; +$querys[5] = "select no,name,level,city from general where nation='$me[nation]' and level!='12' and intel>='$_goodgenintel' order by npc,binary(name)"; + +for($i=10; $i >= $lv; $i--) { + if($i % 2 == 0) { echo ""; } + echo " + + + "; + if($i % 2 == 1) { echo ""; } +} +echo " + +
수 뇌 부 임 명
".getLevel(12, $nation[level])."{$general[name]} 【{$cityNames[$general[city]]}】".getLevel(11, $nation[level])."
+"; + +if($meLevel >= 5 && $nation[l11set] == 0) { + echo " + + + "; +} else { + $query = "select name,city from general where nation='$me[nation]' and level='11'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + echo "{$general[name]} 【{$cityNames[$general[city]]}】"; +} +echo " +
".getLevel($i, $nation[level])."
+ "; + + if($meLevel >= 5 && $nation["l{$i}set"] == 0) { + echo " + + + "; + } else { + $query = "select name,city from general where nation='$me[nation]' and level={$i}"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + echo "{$general[name]} 【{$cityNames[$general[city]]}】"; + } + echo "
빨간색은 현재 임명중인 장수, 노란색은 다른 관직에 임명된 장수, 하얀색은 일반 장수를 뜻합니다.
+ + +"; +if($meLevel >= 5) { + echo " + + + + + + + + + + + + + + + + + + + + + "; +} +echo " + + + + + + +"; + +$citylevel[1] = "수"; +$citylevel[2] = "진"; +$citylevel[3] = "관"; +$citylevel[4] = "이"; +$citylevel[5] = "소"; +$citylevel[6] = "중"; +$citylevel[7] = "대"; +$citylevel[8] = "특"; + +$query = "select city,name,gen1,gen2,gen3,level,region,gen1set,gen2set,gen3set from city where nation='$nation[nation]' order by region,level desc,binary(name)"; // 도시 이름 목록 +$cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$citycount = MYDB_num_rows($cityresult); + +$region = 0; +for($j=0; $j < $citycount; $j++) { + $city = MYDB_fetch_array($cityresult); + + $query = "select name,belong,city from general where no='$city[gen1]'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen1 = MYDB_fetch_array($genresult); + $query = "select name,belong,city from general where no='$city[gen2]'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen2 = MYDB_fetch_array($genresult); + $query = "select name,belong,city from general where no='$city[gen3]'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen3 = MYDB_fetch_array($genresult); + + if($region != $city[region]) { + echo " + + "; + $region = $city[region]; + } + + $gen1[name] = $gen1[name]==""?"-":$gen1[name]." ({$gen1[belong]}년) 【{$cityNames[$gen1[city]]}】"; + $gen2[name] = $gen2[name]==""?"-":$gen2[name]." ({$gen2[belong]}년) 【{$cityNames[$gen2[city]]}】"; + $gen3[name] = $gen3[name]==""?"-":$gen3[name]." ({$gen3[belong]}년) 【{$cityNames[$gen3[city]]}】"; + if($city[gen1set] == 1) { $gen1[name] = "".$gen1[name].""; } + if($city[gen2set] == 1) { $gen2[name] = "".$gen2[name].""; } + if($city[gen3set] == 1) { $gen3[name] = "".$gen3[name].""; } + echo " + + + + + + + + "; +} +?> + +
도 시 관 직 임 명
태 수 임 명 + + + + +
군 사 임 명 + + + + +
시 중 임 명 + + + + +
빨간색은 현재 임명중인 장수, 노란색은 다른 관직에 임명된 장수, 하얀색은 일반 장수를 뜻합니다.
도 시태 수 (사관) 【현재도시】군 사 (사관) 【현재도시】시 중 (사관) 【현재도시】
【 ".getRegion($city[region])." 】
【{$citylevel[$city[level]]}】$city[name]  $gen1[name]$gen2[name]$gen3[name]
노란색은 변경 불가능, 하얀색은 변경 가능 관직입니다.
+
+ + + +
+ + + diff --git a/twe_close/b_myCityInfo.php b/twe_close/b_myCityInfo.php new file mode 100644 index 00000000..618d7898 --- /dev/null +++ b/twe_close/b_myCityInfo.php @@ -0,0 +1,173 @@ + + + + + +세력도시 + + + + + + + + +
세 력 도 시
정렬순서 : + +
+
+[{$city[name]}]
"; } + $query = "select name from general where no='$city[gen1]'"; // 태수 + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen1 = MYDB_fetch_array($genresult); + + $query = "select name from general where no='$city[gen2]'"; // 군사 + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen2 = MYDB_fetch_array($genresult); + + $query = "select name from general where no='$city[gen3]'"; // 시중 + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen3 = MYDB_fetch_array($genresult); + + if($type == 10 && $city[region] != $region) { + echo "
"; + $region = $city[region]; + } elseif($type == 11 && $city[level] != $level) { + echo "
"; + $level = $city[level]; + } + + if($city[trade] == 0) { + $city[trade] = "- "; + } + + echo " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
【 ".getRegion($city[region])." | ".getCityLevel($city[level])." 】 {$city[name]}
주민$city[pop]/$city[pop2]농업$city[agri]/$city[agri2]상업$city[comm]/$city[comm2]치안$city[secu]/$city[secu2]수비$city[def]/$city[def2]성벽$city[wall]/$city[wall2]
민심$city[rate]시세{$city[trade]}%인구".round($city[pop]/$city[pop2]*100, 2)." %태수";echo $gen1[name]==''?"-":"$gen1[name]";echo "군사";echo $gen2[name]==''?"-":"$gen2[name]";echo "시중";echo $gen3[name]==''?"-":"$gen3[name]";echo "
장수"; + $query = "select npc,name from general where city='$city[city]' and nation='$me[nation]'"; // 장수 목록 + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($genresult); + if($gencount == 0) echo "-"; + for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($genresult); + if($general[npc] >= 2) { echo "{$general[name]}, "; } + elseif($general[npc] == 1) { echo "{$general[name]}, "; } + else { echo "$general[name], "; } + } + echo " +
+"; +} +?> + + + + +
+ + + + + diff --git a/twe_close/b_myGenInfo.php b/twe_close/b_myGenInfo.php new file mode 100644 index 00000000..a0912ef1 --- /dev/null +++ b/twe_close/b_myGenInfo.php @@ -0,0 +1,173 @@ + + + + + +세력장수 + + + + + + + + +
세 력 장 수
정렬순서 : + +
+
+ + + 얼 굴 + 이 름 + 관 직 + 계 급 + 명 성 + 봉 록 + 통솔 + 무력 + 지력 + 자 금 + 군 량 + 성 격 + 특 기 + 사 관 + 벌점 + "; +for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + if($lbonus > 0) { + $lbonus = "+{$lbonus}"; + } else { + $lbonus = ""; + } + + if($general[injury] > 0) { + $leader = floor($general[leader] * (100 - $general[injury])/100); + $power = floor($general[power] * (100 - $general[injury])/100); + $intel = floor($general[intel] * (100 - $general[injury])/100); + $leader = "{$leader}{$lbonus}"; + $power = "{$power}"; + $intel = "{$intel}"; + } else { + $leader = "{$general[leader]}{$lbonus}"; + $power = "{$general[power]}"; + $intel = "{$general[intel]}"; + } + + if($general[npc] >= 2) { $name = "$general[name]"; } + elseif($general[npc] == 1) { $name = "$general[name]"; } + else { $name = "$general[name]"; } + + $imageTemp = GetImageURL($general[imgsvr]); + echo " + + 0?" background={$imageTemp}/{$general[picture]}":""; echo " height=64> + $name + "; echo getLevel($general[level], $nation[level]); echo " + ".getDed($general[dedication])." + ".getHonor($general[experience])." + ".getBill($general[dedication])." + $leader + $power + $intel + $general[gold] + $general[rice] + ".getGenChar($general[personal])." + ".getGenSpecial($general[special])." / ".getGenSpecial($general[special2])." + $general[belong] + $general[connect]"; echo "
(".getConnect($general[connect]).") + "; +} + echo " + +"; + +?> + + + + +
+ + + + + diff --git a/twe_close/b_myKingdomInfo.php b/twe_close/b_myKingdomInfo.php new file mode 100644 index 00000000..50e11922 --- /dev/null +++ b/twe_close/b_myKingdomInfo.php @@ -0,0 +1,156 @@ + + + + + +세력정보 + + + + + + + +
세 력 정 보
+
+[{$city[name]}]
"; } + else { $cityname[$j] = $city[name]; } + $totalpop += $city[pop]; + $maxpop += $city[pop2]; +} + +$query = "select sum(crew) as totcrew,sum(leader)*100 as maxcrew from general where nation='$nation[nation]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$general = MYDB_fetch_array($result); + +$query = "select gold_rate,rice_rate from game where no='1'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); +// 금 수지 +$deadIncome = getDeadIncome($connect, $nation[nation], $nation[type], $admin[gold_rate]); + +$goldincomeList = getGoldIncome($connect, $nation[nation], $nation[rate], $admin[gold_rate], $nation[type]); +$goldincome = $goldincomeList[0] + $goldincomeList[1] + $deadIncome; +$goldoutcome = getGoldOutcome($connect, $nation[nation], $nation[bill]); +$riceincomeList = getRiceIncome($connect, $nation[nation], $nation[rate], $admin[rice_rate], $nation[type]); +$riceincome = $riceincomeList[0] + $riceincomeList[1]; +$riceoutcome = getRiceOutcome($connect, $nation[nation], $nation[bill]); + + +$budgetgold = $nation[gold] + $goldincome - $goldoutcome + $deadIncome; +$budgetrice = $nation[rice] + $riceincome - $riceoutcome; +$budgetgolddiff = $goldincome - $goldoutcome + $deadIncome; +$budgetricediff = $riceincome - $riceoutcome; +if($budgetgolddiff > 0) { $budgetgolddiff = "+{$budgetgolddiff}"; } +else { $budgetgolddiff = "$budgetgolddiff"; } +if($budgetricediff > 0) { $budgetricediff = "+{$budgetricediff}"; } +else { $budgetricediff = "$budgetricediff"; } + +echo " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
【 ";echo $me[nation]==0?"공 백 지":"$nation[name]";echo " 】
총주민{$totalpop}/{$maxpop}총병사{$general[totcrew]}/{$general[maxcrew]}국 력$nation[power]
국 고"; echo $nation[gold]==0?"-":"$nation[gold]"; echo "병 량"; echo $nation[rice]==0?"-":"$nation[rice]"; echo "세 율"; echo $me[nation]==0?"해당 없음":"$nation[rate] %"; echo "
세금/단기+$goldincomeList[0] / +$deadIncome세곡/둔전+$riceincomeList[0] / +$riceincomeList[1]지급율"; echo $me[nation]==0?"해당 없음":"$nation[bill] %"; echo "
수입/지출+$goldincome / -$goldoutcome수입/지출+$riceincome / -$riceoutcome속 령$citycount장 수$nation[gennum]
국고 예산{$budgetgold} ({$budgetgolddiff})병량 예산{$budgetrice} ({$budgetricediff})기술력$nation[tech]작 위".getNationLevel($nation[level])."
속령일람 :"; +for($j=0; $j < $citycount; $j++) { + echo "$cityname[$j], "; +} +echo" +
국가열전".ConvertLog($nation[history], $me[skin])."
+
"; + +?> + + + + +
+ + + + + diff --git a/twe_close/b_myPage.php b/twe_close/b_myPage.php new file mode 100644 index 00000000..494d8519 --- /dev/null +++ b/twe_close/b_myPage.php @@ -0,0 +1,139 @@ + 0) { + $submit = 'submit'; +} else { + $submit = 'hidden'; +} + +if($btn == "설정저장" && $me['myset'] > 0) { + if($me['myset'] > 1) { + $submit = 'submit'; + } else { + $submit = 'hidden'; + } + + $query = "update general set myset=myset-1,map='$map',mode='$mode',skin='$skin',tnmt='$tnmt' where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +$query = "select no,skin,map,mode,tnmt,myset from general where user_id='$_SESSION[p_id]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$me = MYDB_fetch_array($result); + +if($me[skin] < 1) { + $tempColor = $_basecolor; $tempColor2 = $_basecolor2; $tempColor3 = $_basecolor3; $tempColor4 = $_basecolor4; + $_basecolor = "000000"; $_basecolor2 = "000000"; $_basecolor3 = "000000"; $_basecolor4 = "000000"; +} +?> + + + +내정보 + type=text/css> + + + + + + + +
내 정 보
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+     스킨 【 +

+     지도수준 【 + >상세 + >간단 + >생략 + 】

+     토너먼트 【 + >수동참여 + >자동참여 + 】
+     ∞개막직전 남는자리가 있을경우 랜덤하게 참여합니다.

+     수비 【 + >◎(훈사80) + >○(훈사60) + >× + 】

+      name=btn style=background-color:;color:white;width:160;height:30;font-size:13; value=설정저장>
+     ∞설정저장은 이달중 회 남았습니다.

+
+     휴 가 신 청
+     ;color:white;width:160;height:30;font-size:13; value=휴가신청 onclick='go(0)'> +
개인 기록전투 기록
+ + + +
장수 열전전투 결과
+ + + +
+ + + +
+ + + + diff --git a/twe_close/b_nationboard.php b/twe_close/b_nationboard.php new file mode 100644 index 00000000..7f69c734 --- /dev/null +++ b/twe_close/b_nationboard.php @@ -0,0 +1,66 @@ + + + +회의실 + + + + + + + + + + + + + +
회 의 실
+ 제목 +
+
+ + +
+
+ + + + + +
+ + + + diff --git a/twe_close/b_nationrule.php b/twe_close/b_nationrule.php new file mode 100644 index 00000000..e5124562 --- /dev/null +++ b/twe_close/b_nationrule.php @@ -0,0 +1,50 @@ + + + +국법 + + + + + + + + + + + +
국 법
+ += 5) { + echo " +
+
+ +
"; +} else { + echo " +
"; +} + +?> +
+ + + + diff --git a/twe_close/b_tournament.php b/twe_close/b_tournament.php new file mode 100644 index 00000000..e98a210f --- /dev/null +++ b/twe_close/b_tournament.php @@ -0,0 +1,405 @@ += 2) { printLimitMsg($me[turntime]); exit(); } + +switch($admin[tnmt_type]) { +case 0: $tnmt_type = "전력전"; $tp = "tot"; $tp2 = "종합"; $tp3 = "total"; break; +case 1: $tnmt_type = "통솔전"; $tp = "ldr"; $tp2 = "통솔"; $tp3 = "leader"; break; +case 2: $tnmt_type = "일기토"; $tp = "pwr"; $tp2 = "무력"; $tp3 = "power"; break; +case 3: $tnmt_type = "설전"; $tp = "itl"; $tp2 = "지력"; $tp3 = "intel"; break; +} + +?> + + + + +토너먼트 + + + + + + + +
삼모전 토너먼트
+ += 5) { + echo " + + + +"; +} elseif($me[no] > 0 && $me[tournament] == 0 && $admin[tournament] == 1) { + echo ""; +} else { + echo ""; +} + +$str1 = getTournament($admin[tournament]); +$str2 = getTournamentTime($connect); +$str3 = getTournamentTerm($connect); +?> + + + + + + + "; + +if($admin[tournament] >= 7 || $admin[tournament] == 0) { printFighting($admin[tournament], $admin[phase]); } +echo " + + + "; + +$num = Array("一", "二", "三", "四", "五", "六", "七", "八"); + +for($i=0; $i < 8; $i++) { + $grp = $i + 10; + echo " + "; +} +echo ""; +if($admin[tournament] == 4 || $admin[tournament] == 5) { printFighting($admin[tournament], $admin[phase]); } +echo " + + "; + +for($i=0; $i < 8; $i++) { + $grp = $i; + echo " + "; +} + +if($admin[tournament] == 2 || $admin[tournament] == 3) { printFighting($admin[tournament], $admin[phase]); } + +?> + + +
+ "; + + switch($admin[tnmt_trig]) { + case 0: $sel[0] = "selected"; break; + case 1: $sel[1] = "selected"; break; + case 2: $sel[2] = "selected"; break; + case 3: $sel[3] = "selected"; break; + case 4: $sel[4] = "selected"; break; + case 5: $sel[5] = "selected"; break; + case 6: $sel[6] = "selected"; break; + case 7: $sel[7] = "selected"; break; + } + + if($admin[tournament] == 0) { + echo " + + + + + + + "; } + else { + echo ""; + } + + switch($admin[tournament]) { + case 1: + echo " + + + + + + + + + + + "; + break; + case 2: echo ""; break; + case 3: echo ""; break; + case 4: echo ""; break; + case 5: echo ""; break; + case 6: echo ""; break; + case 7: echo ""; break; + case 8: echo ""; break; + case 9: echo ""; break; + case 10: echo ""; break; + } + + echo " +
운영자 메세지 :
()
16강 승자전
+ + "; + +$query = "select npc,name,win from tournament where grp>=60 order by grp, grp_no"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=0; $i < 1; $i++) { + $general = MYDB_fetch_array($result); + if($general[name] == "") { $general[name] = "-"; } + if($general[npc] >= 2) { $general[name] = "".$general[name].""; } + elseif($general[npc] == 1) { $general[name] = "".$general[name].""; } + echo ""; +} + +echo " + + "; + +$query = "select npc,name,win from tournament where grp>=50 order by grp, grp_no"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=0; $i < 1; $i++) { $cent[$i] = ""; } +for($i=0; $i < 2; $i++) { + $general = MYDB_fetch_array($result); + if($general[name] == "") { $general[name] = "-"; } + if($general[npc] >= 2) { $general[name] = "".$general[name].""; } + elseif($general[npc] == 1) { $general[name] = "".$general[name].""; } + if($general[win] > 0) { $line[$i] = ""; $cent[floor($i/2)] = ""; } + else { $line[$i] = ""; } + $gen[$i] = $general[name]; +} +for($i=0; $i < 1; $i++) { + $cent[$i] = $cent[$i]."┻".""; + $line[$i*2] = $line[$i*2]."┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━".""; + $line[$i*2+1] = $line[$i*2+1]."━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓".""; + echo ""; +} +echo " + + "; + +for($i=0; $i < 2; $i++) { + echo ""; +} + +echo " + + "; + +$query = "select npc,name,win from tournament where grp>=40 order by grp, grp_no"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=0; $i < 2; $i++) { $cent[$i] = ""; } +for($i=0; $i < 4; $i++) { + $general = MYDB_fetch_array($result); + if($general[name] == "") { $general[name] = "-"; } + if($general[npc] >= 2) { $general[name] = "".$general[name].""; } + elseif($general[npc] == 1) { $general[name] = "".$general[name].""; } + if($general[win] > 0) { $line[$i] = ""; $cent[floor($i/2)] = ""; } + else { $line[$i] = ""; } + $gen[$i] = $general[name]; +} +for($i=0; $i < 2; $i++) { + $cent[$i] = $cent[$i]."┻".""; + $line[$i*2] = $line[$i*2]."┏━━━━━━━━━━━━━━━━━━".""; + $line[$i*2+1] = $line[$i*2+1]."━━━━━━━━━━━━━━━━━━┓".""; + echo ""; +} +echo " + + "; + +for($i=0; $i < 4; $i++) { + echo ""; +} + +echo " + + "; + +$query = "select npc,name,win from tournament where grp>=30 order by grp, grp_no"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=0; $i < 4; $i++) { $cent[$i] = ""; } +for($i=0; $i < 8; $i++) { + $general = MYDB_fetch_array($result); + if($general[name] == "") { $general[name] = "-"; } + if($general[npc] >= 2) { $general[name] = "".$general[name].""; } + elseif($general[npc] == 1) { $general[name] = "".$general[name].""; } + if($general[win] > 0) { $line[$i] = ""; $cent[floor($i/2)] = ""; } + else { $line[$i] = ""; } + $gen[$i] = $general[name]; +} +for($i=0; $i < 4; $i++) { + $cent[$i] = $cent[$i]."┻".""; + $line[$i*2] = $line[$i*2]."┏━━━━━━━━━".""; + $line[$i*2+1] = $line[$i*2+1]."━━━━━━━━━┓".""; + echo ""; +} +echo " + + "; + +for($i=0; $i < 8; $i++) { + echo ""; +} + +echo " + + "; + +$query = "select npc,name,win from tournament where grp>=20 order by grp, grp_no"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +for($i=0; $i < 8; $i++) { $cent[$i] = ""; } +for($i=0; $i < 16; $i++) { + $general = MYDB_fetch_array($result); + if($general[name] == "") { $general[name] = "-"; } + if($general[npc] >= 2) { $general[name] = "".$general[name].""; } + elseif($general[npc] == 1) { $general[name] = "".$general[name].""; } + if($general[win] > 0) { $line[$i] = ""; $cent[floor($i/2)] = ""; } + else { $line[$i] = ""; } + $gen[$i] = $general[name]; +} +for($i=0; $i < 8; $i++) { + $cent[$i] = $cent[$i]."┻".""; + $line[$i*2] = $line[$i*2]."┏━━━━".""; + $line[$i*2+1] = $line[$i*2+1]."━━━━┓".""; + echo ""; +} +echo " + + "; + +for($i=0; $i < 16; $i++) { + echo ""; +} + +echo" + "; + +$query = "select tournament,bet0,bet1,bet2,bet3,bet4,bet5,bet6,bet7,bet8,bet9,bet10,bet11,bet12,bet13,bet14,bet15,bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 as bet from game where no=1"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$betting = MYDB_fetch_array($result); +for($i=0; $i < 16; $i++) { + $bet[$i] = @round($betting[bet] / $betting["bet{$i}"], 2); + if($bet[$i] == 0) { $bet[$i] = "∞"; } +} + +echo " + "; + +for($i=0; $i < 16; $i++) { + echo ""; +} + +echo " + + + +
{$general[name]}
{$line[$i*2]}{$cent[$i]}{$line[$i*2+1]}
{$gen[$i]}
{$line[$i*2]}{$cent[$i]}{$line[$i*2+1]}
{$gen[$i]}
{$line[$i*2]}{$cent[$i]}{$line[$i*2+1]}
{$gen[$i]}
{$line[$i*2]}{$cent[$i]}{$line[$i*2+1]}
{$gen[$i]}
{$bet[$i]}
배당률이 낮을수록 베팅된 금액이 많고 유저들이 우승후보로 많이 선택한 장수입니다.
+
조별 본선 순위
+ + + "; + + $query = "select npc,name,ldr,pwr,itl,ldr+pwr+itl as tot,prmt,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$grp' order by gd desc, gl desc, seq"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + for($k=1; $k <= 4; $k++) { + $general = MYDB_fetch_array($result); + printRow($k, $general[npc], $general[name], $general[$tp], $general[game], $general[win], $general[draw], $general[lose], $general[gd], $general[gl], $general[prmt]); + } + echo " +
{$num[$i]}조
장수{$tp2}
+
조별 예선 순위
+ + + "; + + $query = "select npc,name,ldr,pwr,itl,ldr+pwr+itl as tot,prmt,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$grp' order by gd desc, gl desc, seq"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + for($k=1; $k <= 8; $k++) { + $general = MYDB_fetch_array($result); + printRow($k, $general[npc], $general[name], $general[$tp], $general[game], $general[win], $general[draw], $general[lose], $general[gd], $general[gl], $general[prmt]); + } + echo " +
{$num[$i]}조
장수{$tp2}
+
+ +ㆍ예선은 홈&어웨이 풀리그로 진행됩니다. (총 14경기)
+ㆍ상위 4명이 본선에 진출하게 되며 조추첨을 통해 조가 배정됩니다.
+ㆍ각 조1위가 시드1로 랜덤하게 조에 배정되며, 역시 각 조2위가 시드2로 랜덤하게 조에 배정됩니다.
+ㆍ그후 남은 3, 4위는 완전 랜덤하게 모든 조에 랜덤하게 배정됩니다.
+ㆍ본선은 개인당 3경기를 치르게 되며 승점(승3, 무1, 패0), 득실, 참가순서(시드)에 따라 순위를 매깁니다.
+ㆍ각 조 1, 2위는 16강에 지정된 위치에 배정됩니다.
+ㆍ16강부터는 1경기 토너먼트로 진행됩니다.
+ㆍ참가비는 금20~140이며, 성적에 따라 금과 약간의 명성이 포상으로 주어집니다.
+ㆍ16강자 100, 8강자 300, 4강자 600, 준우승자 1200, 우승자 2000 (220년 기준)
+ㆍ즐거운 삼토! +
+
+ + + +
+ + + diff --git a/twe_close/b_troop.php b/twe_close/b_troop.php new file mode 100644 index 00000000..9807b772 --- /dev/null +++ b/twe_close/b_troop.php @@ -0,0 +1,161 @@ + + + + +부대편성 + + + + + + + +
부 대 편 성
+
+ + + + + + + + +"; + } else { + $turn .= " $m : ∼
"; + } + } + } + } + $genlist .= "({$gencount}명)"; + + if($me[troop] == 0) { + echo " + + + + + + + + + + + + + + + + + +
선 택부 대 정 보부 대 장장 수부대장행동
$troop[name]
【 $cityname 】
 $genlist$turn
【턴】".substr($turntime, 14)."$name
"; + } else { + echo " +
 $troop[name]
【 $cityname 】
 $genlist"; + + if($troop[no] == $me[no]) { + $query = "select no,name from general where troop='$troop[troop]' and no!='$me[no]' order by binary(name)"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($genresult); + echo " +
+ "; + } else { + echo $turn; + } + + echo " +
【턴】".substr($turntime, 14)."$name
"; + } +} + +if($me[troop] == 0) { + echo" +"; +} else { + echo" +"; +} + +echo " +
+
"; + +echo " + + + + "; +if($me[troop] == 0) { + echo " + "; +} else { + echo " + "; +} +echo " + +
부 대 명
"; + +MYDB_close($connect); +?> + + + +
+
+ + + + diff --git a/twe_close/c_auction.php b/twe_close/c_auction.php new file mode 100644 index 00000000..99db948f --- /dev/null +++ b/twe_close/c_auction.php @@ -0,0 +1,216 @@ + 24) $term = 24; + +$valid = 1; +if($me[userlevel] >= 5 || ($me[special] != 30 && $btCount < 1) || ($me[special] == 30 && $btCount < 3)) { +} else { + $msg = "ㆍ더이상 등록할 수 없습니다."; + $msg2 = "ㆍ더이상 등록할 수 없습니다."; + $valid = 0; + $btn = "hidden"; +} + +if($btn == "판매") { + if($stuff != 0) { + $msg = "ㆍ현재 쌀만 거래 가능합니다."; + $valid = 0; + } + if($term < 0 || $term > 24) { + $msg = "ㆍ종료기한은 1 ~ 24 턴 이어야 합니다."; + $valid = 0; + } + if($amount < 100 || $amount > 10000) { + $msg = "ㆍ거래량은 100 ~ 10000 이어야 합니다."; + $valid = 0; + } + if($cost > $amount * 2 || $cost * 2 < $amount) { + $msg = "ㆍ시작판매가는 50% ~ 200% 이어야 합니다."; + $valid = 0; + } + if($topv < $amount*1.1 || $topv > $amount * 2) { + $msg = "ㆍ즉시판매가는 110% ~ 200% 이어야 합니다."; + $valid = 0; + } + if($topv < $cost*1.1) { + $msg = "ㆍ즉시판매가는 시작판매가의 110% 이상이어야 합니다."; + $valid = 0; + } + if($amount > $me[rice] - 1000) { + $msg = "ㆍ기본 군량 1000은 거래할 수 없습니다."; + $valid = 0; + } + if($valid == 1) { + $msg = "ㆍ등록 성공."; + $date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s")) + $unit * $term); + $query = "insert into auction (type, no1, name1, stuff, amount, cost, value, topv, expire) values (0, '$me[no]', '$me[name]', '$stuff', '$amount', '$cost', '$cost', '$topv', '$date')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} elseif($btn == "구매시도") { + $query = "select no2,value,topv,expire,amount from auction where no='$sel'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $auction = MYDB_fetch_array($result); + + if($value == $auction[topv]) { + $valid = 2; + } + if(!$auction) { + $msg = "ㆍ종료된 거래입니다."; + $valid = 0; + } +/* + if($stuff != 0) { + $msg = "ㆍ현재 쌀만 거래 가능합니다."; + $valid = 0; + } +*/ + if($auction[no2] > 0 && $value <= $auction[value]) { + $msg = "ㆍ현재판매가보다 높게 입찰해야 합니다."; + $valid = 0; + } + if($value < $auction[value]) { + $msg = "ㆍ현재판매가보다 높게 입찰해야 합니다."; + $valid = 0; + } + if($value > $auction[topv]) { + $msg = "ㆍ즉시판매가보다 높을 수 없습니다."; + $valid = 0; + } + if($value > $me[gold] - 1000) { + $msg = "ㆍ기본 자금 1000은 거래할 수 없습니다."; + $valid = 0; + } + if($valid == 1) { + $msg = "ㆍ입찰 성공. 거래완료는 빨라도 현재로부터 1턴 뒤입니다."; + $date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s")) + $unit); + if($auction[expire] > $date) $date = $auction[expire]; + $query = "update auction set value='$value',no2='$me[no]',name2='$me[name]',expire='$date' where no='$sel'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($valid == 2) { + $msg = "ㆍ즉시판매 성공. 거래완료는 빨라도 현재로부터 1턴 뒤입니다."; + $date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s")) + $unit); + $query = "update auction set value='$value',no2='$me[no]',name2='$me[name]',expire='$date' where no='$sel'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} elseif($btn == "구매") { + if($stuff != 0) { + $msg2 = "ㆍ현재 쌀만 거래 가능합니다."; + $valid = 0; + } + if($term < 0 || $term > 24) { + $msg2 = "ㆍ종료기한은 1 ~ 24 턴 이어야 합니다."; + $valid = 0; + } + if($amount < 100 || $amount > 10000) { + $msg2 = "ㆍ거래량은 100 ~ 10000 이어야 합니다."; + $valid = 0; + } + if($cost > $amount * 2 || $cost * 2 < $amount) { + $msg2 = "ㆍ시작구매가는 50% ~ 200% 이어야 합니다."; + $valid = 0; + } + if($topv < $amount * 0.5 || $topv > $amount * 0.9) { + $msg2 = "ㆍ즉시구매가는 50% ~ 90% 이어야 합니다."; + $valid = 0; + } + if($topv > $cost * 0.9) { + $msg2 = "ㆍ즉시구매가는 시작구매가의 90% 이하이어야 합니다."; + $valid = 0; + } + if($cost > $me[gold] - 1000) { + $msg2 = "ㆍ기본 자금 1000은 거래할 수 없습니다."; + $valid = 0; + } + if($valid == 1) { + $msg2 = "ㆍ등록 성공."; + $date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s")) + $unit * $term); + $query = "insert into auction (type, no1, name1, stuff, amount, cost, value, topv, expire) values (1, '$me[no]', '$me[name]', '$stuff', '$amount', '$cost', '$cost', '$topv', '$date')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} elseif($btn == "판매시도") { + $query = "select no2,value,topv,expire,amount from auction where no='$sel'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $auction = MYDB_fetch_array($result); + + if($value == $auction[topv]) { + $valid = 2; + } + if(!$auction) { + $msg2 = "ㆍ종료된 거래입니다."; + $valid = 0; + } + if($stuff != 0) { + $msg2 = "ㆍ현재 쌀만 거래 가능합니다."; + $valid = 0; + } + if($auction[no2] > 0 && $value >= $auction[value]) { + $msg2 = "ㆍ현재구매가보다 낮게 입찰해야 합니다."; + $valid = 0; + } + if($value > $auction[value]) { + $msg2 = "ㆍ현재구매가보다 낮게 입찰해야 합니다."; + $valid = 0; + } + if($value < $auction[topv]) { + $msg2 = "ㆍ즉시구매가보다 낮을 수 없습니다."; + $valid = 0; + } + if($value > $me[rice] - 1000) { + $msg2 = "ㆍ기본 군량 1000은 거래할 수 없습니다."; + $valid = 0; + } + if($valid == 1) { + $msg2 = "ㆍ입찰 성공. 거래완료는 빨라도 현재로부터 1턴 뒤입니다."; + $date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s")) + $unit); + if($auction[expire] > $date) $date = $auction[expire]; + $query = "update auction set value='$value',no2='$me[no]',name2='$me[name]',expire='$date' where no='$sel'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($valid == 2) { + $msg2 = "ㆍ즉시구매 성공. 거래완료는 빨라도 현재로부터 1턴 뒤입니다."; + $date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s")) + $unit); + $query = "update auction set value='$value',no2='$me[no]',name2='$me[name]',expire='$date' where no='$sel'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +Submit("b_auction.php", $msg, $msg2); +?> diff --git a/twe_close/c_betting.php b/twe_close/c_betting.php new file mode 100644 index 00000000..7383a23f --- /dev/null +++ b/twe_close/c_betting.php @@ -0,0 +1,41 @@ +location.replace('b_betting.php');"; + exit(); +} + +$query = "select gold,bet0,bet1,bet2,bet3,bet4,bet5,bet6,bet7,bet8,bet9,bet10,bet11,bet12,bet13,bet14,bet15,bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 as bet from general where user_id='$_SESSION[p_id]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$me = MYDB_fetch_array($result); + +for($i=0; $i < 16; $i++) { + if(${"btn{$i}"} == "베팅!") { + $gold = ${"gold{$i}"}; + $mebet = $me["bet{$i}"]; + if($gold >= 10 && $gold <= 1000) { + if($gold + 500 <= $me[gold] && $gold + $mebet <= 1000 && $gold + $me[bet] <= 1000) { + $query = "update general set gold=gold-'$gold',bet{$i}=bet{$i}+'$gold',betgold=betgold+'$gold' where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update game set bet{$i}=bet{$i}+'$gold' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + } +} + +?> + + diff --git a/twe_close/c_chiefboard.php b/twe_close/c_chiefboard.php new file mode 100644 index 00000000..2f0fa578 --- /dev/null +++ b/twe_close/c_chiefboard.php @@ -0,0 +1,51 @@ += 20) { $num = 0; } + $msg = $title."|".$msg; + $msg = addslashes(SQ2DQ($msg)); + $date = date('Y-m-d H:i:s'); + $query = "update nation set coreboard{$num}='$msg',coreboard{$num}_who='$me[no]',coreboard{$num}_when='$date' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update nation set coreindex='$num' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //$num에 댓글시 + } elseif($num >= 0 && $reply != "") { + $newmsg = $nation["coreboard{$num}"]."|".$me[no]."|".$reply; + $newmsg = addslashes(SQ2DQ($newmsg)); + + $query = "update nation set coreboard{$num}='$newmsg' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +echo ""; + +?> + + + + diff --git a/twe_close/c_dipcenter.php b/twe_close/c_dipcenter.php new file mode 100644 index 00000000..65334296 --- /dev/null +++ b/twe_close/c_dipcenter.php @@ -0,0 +1,62 @@ +location.replace('b_myBossInfo.php');"; + exit(); +} + +if($btn == "국가방침") { + $msg = BadTag2Code(addslashes(SQ2DQ($msg))); + $query = "update nation set msg='$msg' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "임관권유") { + $scoutmsg = BadTag2Code(addslashes(SQ2DQ($scoutmsg))); + $query = "update nation set scoutmsg='$scoutmsg' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "세율") { + if($rate < 5) { $rate = 5; } + if($rate > 30) { $rate = 30; } + $query = "update nation set rate='$rate' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "지급율") { + if($bill < 20) { $bill = 20; } + if($bill > 200) { $bill = 200; } + $query = "update nation set bill='$bill' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "기밀권한") { + if($secretlimit < 1) { $secretlimit = 1; } + if($secretlimit > 99) { $secretlimit = 99; } + $query = "update nation set secretlimit='$secretlimit' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "임관 금지") { + $query = "update nation set myset=myset-1,scout='1' where nation='$me[nation]' and myset>0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "임관 허가") { + $query = "update nation set myset=myset-1,scout='0' where nation='$me[nation]' and myset>0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "전쟁 금지") { + $query = "update nation set myset=myset-1,war='1' where nation='$me[nation]' and myset>0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "전쟁 허가") { + $query = "update nation set myset=myset-1,war='0' where nation='$me[nation]' and myset>0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +echo ""; + +?> + diff --git a/twe_close/c_double.php b/twe_close/c_double.php new file mode 100644 index 00000000..8c99759b --- /dev/null +++ b/twe_close/c_double.php @@ -0,0 +1,128 @@ + 99) { $command = 0; } +if($double > 9999) { $double = 9999; } +if($third > 9999) { $third = 9999; } +if($fourth > 9999) { $fourth = 9999; } + +$comStr = EncodeCommand($fourth, $third, $double, $command); + +// 건국 +if($command == 46) { + $name = addslashes(SQ2DQ($name)); + $name = str_replace("|", "", $name); + $name = str_replace(" ", "", $name); + $name = str_replace(" ", "뷁", $name); + if($name == "") { $name = "무명"; } + $name = _String::SubStrForWidth($name, 0, 12); + + $query = "update general set makenation='{$name}' where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $count = sizeof($turn); + $str = "con=con"; + for($i=0; $i < $count; $i++) { + $str .= ",turn{$turn[$i]}='{$comStr}'"; + } + $query = "update general set {$str} where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + echo ""; +//통합제의 +} elseif($command == 53) { + $query = "select nation,level from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + if($me[level] >= 5) { + $nationname = addslashes(SQ2DQ($nationname)); + $nationname = str_replace("|", "", $nationname); + $nationname = str_replace(" ", "", $nationname); + $nationname = str_replace(" ", "뷁", $nationname); + if($nationname == "") { $nationname = "무명"; } + $nationname = _String::SubStrForWidth($nationname, 0, 12); + + $query = "update general set makenation='{$nationname}' where level>=5 and nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $count = sizeof($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),""); + } + echo ""; +//불가침 +} elseif($command == 61) { + $query = "select nation,level from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + if($me[level] >= 5) { + $note = addslashes(SQ2DQ($note)); + $note = str_replace("|", "", $note); + $note = str_replace(" ", "", $note); + $note = str_replace(" ", "뷁", $note); + $note = _String::SubStrForWidth($note, 0, 90); + + $query = "update diplomacy set reserved='{$note}' where me='$me[nation]' and you='$double'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $count = sizeof($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),""); + } + echo ""; +//포상, 몰수, 발령, 항복권고, 원조 +//선전포고, 종전, 파기, 초토화, 천도, 증축, 감축 +//백성동원, 수몰, 허보, 피장파장, 의병모집, 이호경식, 급습 +//국기변경 +} elseif($command == 23 || $command == 24 || $command == 27 || $command == 51 || $command == 52 || $command > 60) { + $query = "select no,nation,level from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + if(($command == 23 || $command == 24 || $command == 27) && $me[no] == $third) { + // 자기자신에게 악용 금지 + } elseif($me[level] >= 5) { + $count = sizeof($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),""); + } + echo ""; +} else { + $count = sizeof($turn); + $str = "con=con"; + for($i=0; $i < $count; $i++) { + $str .= ",turn{$turn[$i]}='{$comStr}'"; + } + $query = "update general set {$str} where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + echo ""; +} + +?> + diff --git a/twe_close/c_msgsubmit.php b/twe_close/c_msgsubmit.php new file mode 100644 index 00000000..4a0eba39 --- /dev/null +++ b/twe_close/c_msgsubmit.php @@ -0,0 +1,119 @@ += 2) { echo ""; exit(); } + +$msg = str_replace("|", "", $msg); +$msg = trim($msg); + +$msg = _String::SubStrForWidth($msg, $s, 198); + +$date = date('Y-m-d H:i:s'); + +// 전체 메세지 +if($genlist == 9999 && str_replace(" ", "", $msg) != "") { + if($me[nation] == 0) { + $nation[name] = '재야'; + $nation[color] = 'FFFFFF'; + } else { + $query = "select nation,name,color from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + } + PushMsg(1, 0, $me[picture], $me[imgsvr], "{$me[name]}:", $nation[color], $nation[name], $nation[color], $msg); +// 국가 메세지 +} elseif($genlist >= 9000 && $msg != "") { + if($me[nation] == 0) { + $nation[name] = '재야'; + $nation[color] = 'FFFFFF'; + } else { + $query = "select nation,name,color from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + } + + $genlist -= 9000; + $query = "select nation,name,color from nation where nation='$genlist'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dest = MYDB_fetch_array($result); + + if($nation[nation] == $dest[nation]) { + PushMsg(2, $nation[nation], $me[picture], $me[imgsvr], "{$me[name]}:", $nation[color], $dest[name], $dest[color], $msg); + } else { + //타국에 보내는 경우 + PushMsg(2, $nation[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$nation[name]}▶", $nation[color], $dest[name], $dest[color], $msg); + // 수뇌이면 발송, 아니면 자국으로 돌림 + if($me[level] >= 5) { + PushMsg(3, $dest[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$nation[name]}▶", $nation[color], $dest[name], $dest[color], $msg); + } else { + PushMsg(2, $nation[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$nation[name]}▶", $nation[color], $dest[name], $dest[color], "반송"); + } + } +// 개인 메세지 +} elseif($genlist > 0 && $msg != "") { + $query = "select name,msgindex from general where no='$genlist'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + //발신, 수신인 코딩 + $who = $me[no] * 10000 + $genlist; + + $msg = addslashes(SQ2DQ($msg)); + + $query = "select msg{$me[msgindex]}_when as priv_when from general where no='$me[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $prev_msg = MYDB_fetch_array($result); + $diff_second = strtotime($date) - strtotime($prev_msg[priv_when]); + + if($diff_second < 3) { + $who = 1 * 10000 + $me[no]; // 운영자가 본인에게 + $msg = "개인메세지는 3초당 1건만 보낼 수 있습니다!"; + //자신에게 표시 + $me[msgindex]++; + if($me[msgindex] >= 10) { $me[msgindex] = 0; } + $query = "update general set msgindex='$me[msgindex]',msg{$me[msgindex]}='$msg',msg{$me[msgindex]}_type='10',msg{$me[msgindex]}_who='$who',msg{$me[msgindex]}_when='$date',newmsg=1 where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + //자신에게 표시 + $me[msgindex]++; + if($me[msgindex] >= 10) { $me[msgindex] = 0; } + $query = "update general set msgindex='$me[msgindex]',msg{$me[msgindex]}='$msg',msg{$me[msgindex]}_type='9',msg{$me[msgindex]}_who='$who',msg{$me[msgindex]}_when='$date' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 상대에게 발송 + $you[msgindex]++; + if($you[msgindex] >= 10) { $you[msgindex] = 0; } + $query = "update general set msgindex='$you[msgindex]',msg{$you[msgindex]}='$msg',msg{$you[msgindex]}_type='10',msg{$you[msgindex]}_who='$who',msg{$you[msgindex]}_when='$date',newmsg=1 where no='$genlist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + $fp = fopen("logs/_gen_msg.txt", "a"); + //로그 파일에 기록 + fwrite($fp, _String::Fill($me[name],12," ")." > "._String::Fill($you[name],12," ")." | {$msg}\r\n"); + fclose($fp); +} + +echo ""; + +?> + diff --git a/twe_close/c_myBossInfo.php b/twe_close/c_myBossInfo.php new file mode 100644 index 00000000..f12bee51 --- /dev/null +++ b/twe_close/c_myBossInfo.php @@ -0,0 +1,256 @@ +location.replace('b_myBossInfo.php');"; + exit(); + } +} elseif($btn == "추방") { + $query = "select no,name,gold,rice,nation,troop,level,history,npc,picture,imgsvr from general where no='$outlist'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + //추방할사람이 군주이면 불가, 내가 수뇌부이어야함, 공석아닌때는 국가가 같아야함 + if($general[level] == 12 || $meLevel < 5 || ($general[nation] != $me[nation] && $outlist != 0)) { + echo ""; + exit(); + } +} + +if($btn == "추방") { + $query = "select name,l{$meLevel}set,chemi from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + //이미 지정했다면 무시 + if($nation["l{$meLevel}set"] == 0 && $general[level] > 0 && $general[level] < 12) { + $query = "select no from diplomacy where me='$general[nation]' and state>='3' and state<='4'"; + $dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipcount1 = MYDB_num_rows($dipresult); + + $query = "select no from diplomacy where me='$general[nation]' and state>='5' and state<='6'"; + $dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipcount2 = MYDB_num_rows($dipresult); + + $gold = 0; + $rice = 0; + // 금쌀1000이상은 남김 + if($general[gold] > 1000) { + $gold = $general[gold] - 1000; + $general[gold] = 1000; + } + if($general[rice] > 1000) { + $rice = $general[rice] - 1000; + $general[rice] = 1000; + } + + if($dipcount1 > 0) { + $alllog[count($alllog)] = "●{$admin[month]}월:통합에 반대하던 $general[name](이)가 $nation[name]에서 숙청당했습니다."; + $log[count($log)] = "●통합에 반대하다가 $nation[name]에서 숙청당했습니다."; + + // 재야로, 국가 무소속으로 + $query = "update general set level=0,nation=0,belong=0,makelimit='12',gold='$general[gold]',rice='$general[rice]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($dipcount2 > 0) { + $alllog[count($alllog)] = "●{$admin[month]}월:합병에 반대하던 $general[name](이)가 $nation[name]에서 숙청당했습니다."; + $log[count($log)] = "●합병에 반대하다가 $nation[name]에서 숙청당했습니다."; + + // 재야로, 국가 무소속으로 + $query = "update general set level=0,nation=0,belong=0,makelimit='12',gold='$general[gold]',rice='$general[rice]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $nation[name]에서 추방당하였습니다."; + $log[count($log)] = "$nation[name]에서 추방당하였습니다."; + + // 재야로, 국가 무소속으로, 명성/공헌 N*10%감소 + $query = "update general set level=0,nation=0,belong=0,betray=betray+1,makelimit='12',gold='$general[gold]',rice='$general[rice]',dedication=dedication*(1-0.1*betray),experience=experience*(1-0.1*betray) where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + // 부대 처리 + $query = "select no from troop where troop='$general[troop]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $troop = MYDB_fetch_array($result); + + //부대장일 경우 + if($troop[no] == $general[no]) { + // 모두 탈퇴 + $query = "update general set troop='0' where troop='$general[troop]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 부대 삭제 + $query = "delete from troop where troop='$general[troop]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update general set troop='0' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + // 도시관직해제 + $query = "update city set gen1='0' where gen1='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen2='0' where gen2='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen3='0' where gen3='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + if($general[npc] >= 2 && ($admin[scenario] == 0 || rand()%100 == 0)) { + switch(rand()%5) { + case 0: $str = "날 버리다니... 곧 전장에서 복수해주겠다..."; break; + case 1: $str = "추방이라... 내가 무얼 잘못했단 말인가..."; break; + case 2: $str = "어디 추방해가면서 잘되나 보자... 꼭 복수하겠다..."; break; + case 3: $str = "인덕이 제일이거늘... 추방이 웬말인가... 저주한다!"; break; + case 4: $str = "날 추방했으니 그 복수로 적국에 정보를 팔아 넘겨야겠군요. 그럼 이만."; break; + } + + PushMsg(1, 0, $general[picture], $general[imgsvr], "{$general[name]}:", $nation[color], $nation[name], $nation[color], $str); + } + + //국가 기술력 그대로 + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $gennum = $gencount; + if($gencount < 10) $gencount = 10; + + $nation[chemi] -= 1; + if($nation[chemi] < 0) { $nation[chemi] = 0; } + + if($admin[year] < $admin[startyear]+3) { + //초반엔 군주 부상 증가(엔장 임관지양) + $query = "update general set injury=injury+1 where no='$ruler[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update nation set totaltech=tech*'$gencount',gennum='$gennum',chemi='$nation[chemi]',gold=gold+'$gold',rice=rice+'$rice' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + //이번분기는 추방불가(초반 제외) + $query = "update nation set l{$meLevel}set=1,totaltech=tech*'$gencount',gennum='$gennum',chemi='$nation[chemi]',gold=gold+'$gold',rice=rice+'$rice' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$nation[name]에서 추방됨"); + + pushGenLog($general, $log); + pushAllLog($alllog); + } +} elseif($btn == "임명" && $level >= 5 && $level <= 11) { + $query = "select l{$level}set,level,chemi from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + // 임명가능 레벨 + $lv = getNationChiefLevel($nation[level]); + + //이미 지정했다면 무시 + if($nation["l{$level}set"] == 0 && $lv <= $level) { + $nation[chemi] -= 1; + if($nation[chemi] < 0) { $nation[chemi] = 0; } + + $query = "update nation set chemi='$nation[chemi]' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //기존 장수 일반으로 + $query = "update general set level=1 where nation='$me[nation]' and level='$level'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + if($genlist != 0) { + $valid = 0; + switch($level) { + case 10: if($general[power] >= $_goodgenpower) { $valid = 1; } break; + case 9: if($general[intel] >= $_goodgenintel) { $valid = 1; } break; + case 8: if($general[power] >= $_goodgenpower) { $valid = 1; } break; + case 7: if($general[intel] >= $_goodgenintel) { $valid = 1; } break; + case 6: if($general[power] >= $_goodgenpower) { $valid = 1; } break; + case 5: if($general[intel] >= $_goodgenintel) { $valid = 1; } break; + default: $valid = 1; break; + } + if($valid == 1) { + // 신임 장수의 원래 자리 해제 + $query = "update city set gen1=0 where gen1='$genlist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen2=0 where gen2='$genlist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen3=0 where gen3='$genlist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //신임 장수 + $query = "update general set level='$level' where no='$genlist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //이번분기는 불가 + $query = "update nation set l{$level}set=1 where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + } +} elseif($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) { + switch($level) { + case 4: $lv = 1; break; + case 3: $lv = 2; break; + case 2: $lv = 3; break; + } + + $query = "select gen{$lv} from city where city='$citylist'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + $oldlist = $city["gen{$lv}"]; + if($oldlist != 0) { + //기존 장수 일반으로 + $query = "update general set level=1 where no='$oldlist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //기존 자리 공석으로 + $query = "update city set gen{$lv}=0 where city='$citylist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + if($genlist != 0) { + $valid = 0; + switch($level) { + case 4: if($general[power] >= $_goodgenpower) { $valid = 1; } break; + case 3: if($general[intel] >= $_goodgenintel) { $valid = 1; } break; + default: $valid = 1; break; + } + if($valid == 1) { + // 신임 장수의 원래 자리 해제 + $query = "update city set gen1=0 where gen1='$genlist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen2=0 where gen2='$genlist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen3=0 where gen3='$genlist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //신임 장수 + $query = "update general set level='$level' where no='$genlist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen{$lv}='$genlist',gen{$lv}set='1' where city='$citylist'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } +} + +echo ""; + +?> + diff --git a/twe_close/c_nationboard.php b/twe_close/c_nationboard.php new file mode 100644 index 00000000..6d3544d3 --- /dev/null +++ b/twe_close/c_nationboard.php @@ -0,0 +1,51 @@ += 20) { $num = 0; } + $msg = $title."|".$msg; + $msg = addslashes(SQ2DQ($msg)); + $date = date('Y-m-d H:i:s'); + $query = "update nation set board{$num}='$msg',board{$num}_who='$me[no]',board{$num}_when='$date' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update nation set boardindex='$num' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //$num에 댓글시 + } elseif($num >= 0 && $reply != "") { + $newmsg = $nation["board{$num}"]."|".$me[no]."|".$reply; + $newmsg = addslashes(SQ2DQ($newmsg)); + + $query = "update nation set board{$num}='$newmsg' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +echo ""; + +?> + + + + diff --git a/twe_close/c_nationrule.php b/twe_close/c_nationrule.php new file mode 100644 index 00000000..9744f007 --- /dev/null +++ b/twe_close/c_nationrule.php @@ -0,0 +1,22 @@ +location.replace('b_nationrule.php');"; + +?> + diff --git a/twe_close/c_tournament.php b/twe_close/c_tournament.php new file mode 100644 index 00000000..157dc74a --- /dev/null +++ b/twe_close/c_tournament.php @@ -0,0 +1,205 @@ +location.replace('b_tournament.php');"; exit(); } + +if($btn == "자동개최설정" && $me[userlevel] >= 5) { + $query = "update game set tnmt_trig={$trig}"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "개최" && $me[userlevel] >= 5) { + startTournament($connect, $auto, $type); +} elseif($btn == "중단" && $me[userlevel] >= 5) { + $query = "update game set tnmt_auto=0, tournament=0, phase=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif((($btn == "투입" || $btn == "무명투입" || $btn == "쪼렙투입" || $btn == "일반투입" || $btn == "굇수투입" || $btn == "랜덤투입") && $me[userlevel] >= 5) || $btn == "참가") { + if($btn == "투입") { + $query = "select no,name,npc,leader,power,intel,explevel,gold,horse,weap,book from general where no='$gen'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + $general[gold] -= $admin[develcost]; + } elseif($btn == "무명투입") { + $general[no] = 0; + $general[name] = "무명장수"; + $general[npc] = 2; + $general[leader] = 10; + $general[power] = 10; + $general[intel] = 10; + $general[explevel] = 10; + $general[gold] = 0; + } elseif($btn == "쪼렙투입") { + $sel = rand() % 32; + $query = "select no,name,npc,leader,power,intel,explevel,gold,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='$admin[develcost]' and npc>=2 order by {$tp} limit {$sel},1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + $general[gold] -= $admin[develcost]; + } elseif($btn == "일반투입") { + //참가한 사람 평균치 + $query = "select AVG({$tp3}) as av from general where tournament=1"; + $genResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $avgGen = MYDB_fetch_array($genResult); + + //그 장수보다 높은장수 수 + $query = "select no from general where tournament=0 and gold>='$admin[develcost]' and npc>=2 and {$tp3}>{$avgGen[av]}"; + $genResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($genResult); + + $sel = rand() % 32 + $genCount - 8; + + $query = "select no,name,npc,leader,power,intel,explevel,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='$admin[develcost]' and npc>=2 order by {$tp} desc limit {$sel},1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + $general[gold] -= $admin[develcost]; + } elseif($btn == "굇수투입") { + $sel = rand() % 32; + $query = "select no,name,npc,leader,power,intel,explevel,gold,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='$admin[develcost]' and npc>=2 order by {$tp} desc limit {$sel},1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + $general[gold] -= $admin[develcost]; + } elseif($btn == "랜덤투입") { + $query = "select no,name,npc,leader,power,intel,explevel,gold,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='$admin[develcost]' and npc>=2 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + $general[gold] -= $admin[develcost]; + //참가 + } else { + $query = "select no,name,npc,leader,power,intel,explevel,gold,horse,weap,book from general where no='$me[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + //$admin[develcost]원 참가비 + if($general[gold] < $admin[develcost]) { echo ""; exit(1); } + $general[gold] -= $admin[develcost]; + } + + $query = "select grp from tournament where grp<10 group by grp having count(*)=8"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $grpCount = MYDB_num_rows($result); + for($i=0; $i < $grpCount; $i++) { + $grp = MYDB_fetch_array($result); + $occupied[$grp[grp]] = 1; + } + for($i=0; $i < 8; $i++) { + if($occupied[$i] == 0) { + $map[count($map)] = $i; + } + } + + if($grpCount < 8) { + $grp = $map[rand() % count($map)]; + $query = "select grp from tournament where grp='$grp'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $grpCount = MYDB_num_rows($result); + $query = "insert into tournament (no, npc, name, ldr, pwr, itl, lvl, grp, grp_no, h, w, b) values ('$general[no]', '$general[npc]', '$general[name]', '$general[leader]', '$general[power]', '$general[intel]', '$general[explevel]', '$grp', '$grpCount', '$general[horse]', '$general[weap]', '$general[book]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set tournament=1,gold='$general[gold]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + $query = "select grp from tournament where grp<10 group by grp having count(*)=8"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $grpCount = MYDB_num_rows($result); + if($grpCount >= 8) { + $query = "update game set tournament=2, phase=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} elseif(($btn == "쪼렙전부투입" || $btn == "일반전부투입" || $btn == "굇수전부투입" || $btn == "랜덤전부투입") && $me[userlevel] >= 5) { + $z = 0; + for($i=0; $i < 8; $i++) { + $query = "select grp from tournament where grp='$i'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $grpCount = MYDB_num_rows($result); + for($k=$grpCount; $k < 8; $k++) { + $code[$z++] = $i * 10 + $k; + } + } + //섞기 + for($i=0; $i < $z; $i++) { + $index = rand() % $z; + $temp = $code[$i]; + $code[$i] = $code[$index]; + $code[$index] = $temp; + } + + for($i=0; $i < $z; $i++) { + $sel = rand() % 32; + if($btn == "쪼렙전부투입") { + $query = "select no,name,npc,leader,power,intel,explevel,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='$admin[develcost]' and npc>=2 order by {$tp} limit {$sel},1"; + } elseif($btn == "일반전부투입") { + //참가한 사람 평균치 + $query = "select AVG({$tp3}) as av from general where tournament=1"; + $genResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $avgGen = MYDB_fetch_array($genResult); + + //그 장수보다 높은장수 수 + $query = "select no from general where tournament=0 and gold>='$admin[develcost]' and npc>=2 and {$tp3}>{$avgGen[av]}"; + $genResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($genResult); + + $sel += $genCount - 8; + + $query = "select no,name,npc,leader,power,intel,explevel,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='$admin[develcost]' and npc>=2 order by {$tp} desc limit {$sel},1"; + } elseif($btn == "굇수전부투입") { + $query = "select no,name,npc,leader,power,intel,explevel,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='$admin[develcost]' and npc>=2 order by {$tp} desc limit {$sel},1"; + } else { + $query = "select no,name,npc,leader,power,intel,explevel,leader+power+intel as total,horse,weap,book from general where tournament=0 and gold>='$admin[develcost]' and npc>=2 order by rand() limit 0,1"; + } + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $grp = floor($code[$i] / 10); + $grp_no = $code[$i] % 10; + $query = "insert into tournament (no, npc, name, ldr, pwr, itl, lvl, grp, grp_no, h, w, b) values ('$general[no]', '$general[npc]', '$general[name]', '$general[leader]', '$general[power]', '$general[intel]', '$general[explevel]', '$grp', '$grp_no', '$general[horse]', '$general[weap]', '$general[book]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set tournament=1,gold=gold-'$admin[develcost]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + $query = "update game set tournament=2, phase=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "무명전부투입" && $me[userlevel] >= 5) { fillLowGenAll($connect); +} elseif($btn == "예선" && $me[userlevel] >= 5) { qualify($connect, $admin[tnmt_type], $admin[tournament], $admin[phase]); +} elseif($btn == "예선전부" && $me[userlevel] >= 5) { qualifyAll($connect, $admin[tnmt_type], $admin[tournament], $admin[phase]); +} elseif($btn == "추첨" && $me[userlevel] >= 5) { selection($connect, $admin[tnmt_type], $admin[tournament], $admin[phase]); +} elseif($btn == "추첨전부" && $me[userlevel] >= 5) { selectionAll($connect, $admin[tnmt_type], $admin[tournament], $admin[phase]); +} elseif($btn == "본선" && $me[userlevel] >= 5) { finallySingle($connect, $admin[tnmt_type], $admin[tournament], $admin[phase]); +} elseif($btn == "본선전부" && $me[userlevel] >= 5) { finallyAll($connect, $admin[tnmt_type], $admin[tournament], $admin[phase]); +} elseif($btn == "배정" && $me[userlevel] >= 5) { final16set($connect); +} elseif($btn == "베팅마감" && $me[userlevel] >= 5) { + $dt = date("Y-m-d H:i:s", time() + 60); + $query = "update game set tournament='7',phase='0',tnmt_time='$dt' where no=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "16강" && $me[userlevel] >= 5) { finalFight($connect, $admin[tnmt_type], $admin[tournament], $admin[phase], 16); +} elseif($btn == "8강" && $me[userlevel] >= 5) { finalFight($connect, $admin[tnmt_type], $admin[tournament], $admin[phase], 8); +} elseif($btn == "4강" && $me[userlevel] >= 5) { finalFight($connect, $admin[tnmt_type], $admin[tournament], $admin[phase], 4); +} elseif($btn == "결승" && $me[userlevel] >= 5) { finalFight($connect, $admin[tnmt_type], $admin[tournament], $admin[phase], 2); +} elseif($btn == "포상" && $me[userlevel] >= 5) { setGift($connect, $admin[tnmt_type], $admin[tournament], $admin[phase]); +} elseif($btn == "회수" && $me[userlevel] >= 5) { setRefund($connect); +} elseif($btn == "메시지" && $me[userlevel] >= 5) { + $msg = addslashes(SQ2DQ($msg)); + $query = "update game set tnmt_msg='$msg'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} +?> + + diff --git a/twe_close/c_troop.php b/twe_close/c_troop.php new file mode 100644 index 00000000..5dbdfb79 --- /dev/null +++ b/twe_close/c_troop.php @@ -0,0 +1,58 @@ +location.replace('b_troop.php');"; + +MYDB_close($connect); +?> + diff --git a/twe_close/c_vacation.php b/twe_close/c_vacation.php new file mode 100644 index 00000000..b4062169 --- /dev/null +++ b/twe_close/c_vacation.php @@ -0,0 +1,20 @@ +location.replace('b_myPage.php');"; + +?> + diff --git a/twe_close/c_vote.php b/twe_close/c_vote.php new file mode 100644 index 00000000..c9e0d242 --- /dev/null +++ b/twe_close/c_vote.php @@ -0,0 +1,76 @@ += 5) { + if($title != "") { + $vote = explode("|", $admin[vote]); + $vote[0] = addslashes(SQ2DQ($title)); + $admin[vote] = implode("|", $vote); + $query = "update game set vote='{$admin[vote]}' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} elseif($btn == "추가" && $me[userlevel] >= 5) { + if($str != "") { + $str = addslashes(SQ2DQ($str)); + $admin[vote] .= "|{$str}"; + $query = "update game set vote='{$admin[vote]}' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} elseif($btn == "리셋" && $me[userlevel] >= 5) { + $query = "update game set voteopen=1,vote='',votecomment='' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set vote='0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "알림" && $me[userlevel] >= 5) { + $query = "update general set newvote='1' where vote=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "숨김" && $me[userlevel] >= 5) { + $query = "update game set voteopen=0 where no=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "전체통계만" && $me[userlevel] >= 5) { + $query = "update game set voteopen=1 where no=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "전부" && $me[userlevel] >= 5) { + $query = "update game set voteopen=2 where no=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($btn == "투표" && $me[vote] == 0 && $sel > 0) { + $develcost = $admin[develcost] * 5; + $query = "update general set gold=gold+{$develcost},vote='{$sel}' where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = array(); + $log = uniqueItem($connect, $me, $log, 1); + pushGenLog($me, $log); +} elseif($btn == "댓글" && $comment != "") { + $comment = str_replace("|", " ", $comment); + $comment = str_replace(":", " ", $comment); + $comment = trim($comment); + $comment = addslashes(SQ2DQ($comment)); + + $query = "select name from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + if($nation[name] == "") { $nation[name] = "재야"; } + + if($admin[votecomment] != "") { $admin[votecomment] .= "|"; } + $admin[votecomment] .= "{$nation[name]}:{$me[name]}:{$comment}"; + + $query = "update game set votecomment='{$admin[votecomment]}' where no=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} +?> + + diff --git a/twe_close/commandlist.php b/twe_close/commandlist.php new file mode 100644 index 00000000..2239349c --- /dev/null +++ b/twe_close/commandlist.php @@ -0,0 +1,113 @@ + + + + +커맨드리스트 + + + + + + + +
+ + - 명령 목록 - + "; + + $year = $admin[year]; + $month = $admin[month]; + // 실행된 턴시간이면 +1 + $cutTurn = cutTurn($me[turntime], $admin[turnterm]); + if($date <= $cutTurn) { $month++; } + + $totaldate = $me[turntime]; + + for($i=0; $i < 24; $i++) { + if($month == 13) { + $month = 1; + $year++; + } + $j = $i + 1; + $turndate = substr($totaldate,11, 5); + echo " + + $j + {$year}年 {$month}月 + $turndate + $turn[$i] + "; + $month++; + $totaldate = addTurn($totaldate, $admin[turnterm]); + } + + echo " +
+ +"; +} +?> + + + diff --git a/twe_close/confirm.png b/twe_close/confirm.png new file mode 100644 index 00000000..073c4642 Binary files /dev/null and b/twe_close/confirm.png differ diff --git a/twe_close/d_ally.php b/twe_close/d_ally.php new file mode 100644 index 00000000..3e6b36f4 --- /dev/null +++ b/twe_close/d_ally.php @@ -0,0 +1,120 @@ +●수뇌부가 아니므로 불가능합니다. 불가침 실패."; + } elseif($dip[term] == $when*12 && $dip[state] == 7) { + $mylog[count($mylog)] = "●이미 수락했습니다. 불가침 실패."; + } elseif($losecitynum == 0) { + $mylog[count($mylog)] = "●방랑군이므로 불가능합니다. 불가침 실패."; + } elseif($wincitynum == 0) { + $mylog[count($mylog)] = "●상대가 방랑군이므로 불가능합니다. 불가침 실패."; + } elseif($dip[state] == 0) { + $mylog[count($mylog)] = "●아국과 교전중입니다. 불가침 실패."; + } elseif($dip[state] == 1) { + $mylog[count($mylog)] = "●아국과 선포중입니다. 불가침 실패."; + } elseif($dip[state] == 3 || $dip[state] == 4) { + $mylog[count($mylog)] = "●아국과 합병중입니다. 불가침 실패."; + } elseif($mynation[dipmsg] == "") { + $mylog[count($mylog)] = "●이미 거절했습니다. 불가침 실패."; + } else { +// $alllog[count($alllog)] = "●{$admin[month]}월:$me[name](이)가 $younation[name](와)과 불가침에 합의."; +// $history[count($history)] = "●$admin[year]년 $admin[month]월:【불가침】$mynation[name](이)가 $younation[name](와)과 불가침 조약을 체결했습니다."; + + $youlog[count($youlog)] = "$mynation[name](와)과 $when년 불가침에 성공했습니다."; + $mylog[count($mylog)] = "$younation[name](와)과 $when년 불가침에 합의했습니다."; + $you = addHistory($connect, $you, "●$admin[year]년 $admin[month]월:$mynation[name](와)과 {$when}년 불가침 성공"); + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:$younation[name](와)과 {$when}년 불가침 수락"); + + //국메로 저장 + $msg = "【외교】$admin[year]년 $admin[month]월:$younation[name](와)과 {$when}년 불가침 합의, 비고: {$dip2[reserved]}"; + $youmsg = "【외교】$admin[year]년 $admin[month]월:$mynation[name](와)과 {$when}년 불가침 합의, 비고: {$dip2[reserved]}"; + + PushMsg(2, $me[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$mynation[name]}▶", $mynation[color], $younation[name], $younation[color], $msg); + PushMsg(3, $you[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$mynation[name]}▶", $mynation[color], $younation[name], $younation[color], $youmsg); + + $when = $when * 12; + //외교 변경 + $query = "update diplomacy set state='7',term='$when',fixed='$dip2[reserved]' where me='$me[nation]' and you='$you[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update diplomacy set state='7',term='$when',fixed='$dip2[reserved]' where me='$you[nation]' and you='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + //조건 지움 + $query = "update diplomacy set reserved='' where me='$you[nation]' and you='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //현 메세지 지움 + $query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} else { + $youlog[count($youlog)] = "$mynation[name](이)가 불가침을 거부했습니다."; + $mylog[count($mylog)] = "$younation[name](와)과 불가침을 거부했습니다."; + + //조건 지움 + $query = "update diplomacy set reserved='' where me='$you[nation]' and you='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //현 메세지 지움 + $query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +pushGenLog($me, $mylog); +pushGenLog($you, $youlog); +//pushAllLog($alllog); +//pushHistory($connect, $history); + +echo ""; + +?> + diff --git a/twe_close/d_cancel.php b/twe_close/d_cancel.php new file mode 100644 index 00000000..94281351 --- /dev/null +++ b/twe_close/d_cancel.php @@ -0,0 +1,99 @@ +●수뇌부가 아니므로 불가능합니다. 파기 실패."; + } elseif($losecitynum == 0) { + $mylog[count($mylog)] = "●방랑군이므로 불가능합니다. 파기 실패."; + } elseif($wincitynum == 0) { + $mylog[count($mylog)] = "●상대가 방랑군이므로 불가능합니다. 파기 실패."; + } elseif($dip[state] != 7) { + $mylog[count($mylog)] = "●아국과 불가침중이 아닙니다. 파기 실패."; + } elseif($mynation[dipmsg] == "") { + $mylog[count($mylog)] = "●이미 거절했습니다. 파기 실패."; + } else { + $alllog[count($alllog)] = "●{$admin[month]}월:$me[name](이)가 $younation[name](와)과 조약 파기에 합의."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【파기】$mynation[name](이)가 $younation[name](와)과 불가침을 파기 하였습니다."; + $youlog[count($youlog)] = "$mynation[name](와)과 파기에 성공했습니다."; + $mylog[count($mylog)] = "$younation[name](와)과 파기에 합의했습니다."; + $you = addHistory($connect, $you, "●$admin[year]년 $admin[month]월:$mynation[name](와)과 파기 성공"); + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:$younation[name](와)과 파기 수락"); + + //외교 변경 + $query = "update diplomacy set state='2',term='0' where me='$me[nation]' and you='$you[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update diplomacy set state='2',term='0' where me='$you[nation]' and you='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //국메로 저장 + $msg = "【외교】$admin[year]년 $admin[month]월:$younation[name](와)과 불가침 파기 동의"; + $youmsg = "【외교】$admin[year]년 $admin[month]월:$mynation[name](와)과 불가침 파기 동의"; + + PushMsg(2, $me[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$mynation[name]}▶", $mynation[color], $younation[name], $younation[color], $msg); + PushMsg(3, $you[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$mynation[name]}▶", $mynation[color], $younation[name], $younation[color], $youmsg); + } + + //현 메세지 지움 + $query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} else { + $youlog[count($youlog)] = "$mynation[name](이)가 파기를 거부했습니다."; + $mylog[count($mylog)] = "$younation[name](와)과 파기를 거부했습니다."; + + //현 메세지 지움 + $query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +pushGenLog($me, $mylog); +pushGenLog($you, $youlog); +pushAllLog($alllog); +pushHistory($connect, $history); + +echo ""; + +?> + diff --git a/twe_close/d_cease.php b/twe_close/d_cease.php new file mode 100644 index 00000000..76c125f7 --- /dev/null +++ b/twe_close/d_cease.php @@ -0,0 +1,104 @@ +●수뇌부가 아니므로 불가능합니다. 종전 실패."; + } elseif($losecitynum == 0) { + $mylog[count($mylog)] = "●방랑군이므로 불가능합니다. 종전 실패."; + } elseif($wincitynum == 0) { + $mylog[count($mylog)] = "●상대가 방랑군이므로 불가능합니다. 종전 실패."; + } elseif($dip[state] != 0 && $dip[state] != 1) { + $mylog[count($mylog)] = "●아국과 교전중이 아닙니다. 종전 실패."; + } elseif($mynation[dipmsg] == "") { + $mylog[count($mylog)] = "●이미 거절했습니다. 불가침 실패."; + } else { + $alllog[count($alllog)] = "●{$admin[month]}월:$me[name](이)가 $younation[name](와)과 종전 합의 하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【종전】$mynation[name](이)가 $younation[name](와)과 종전 합의 하였습니다."; + $youlog[count($youlog)] = "$mynation[name](와)과 종전에 성공했습니다."; + $mylog[count($mylog)] = "$younation[name](와)과 종전에 합의했습니다."; + $you = addHistory($connect, $you, "●$admin[year]년 $admin[month]월:$mynation[name](와)과 종전 성공"); + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:$younation[name](와)과 종전 수락"); + + //외교 변경 + $query = "update diplomacy set state='2',term='0' where me='$mynation[nation]' and you='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update diplomacy set state='2',term='0' where me='$younation[nation]' and you='$mynation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //외교제한 + $query = "update nation set surlimit=24 where nation='$mynation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update nation set surlimit=24 where nation='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //국메로 저장 + $msg = "【외교】$admin[year]년 $admin[month]월:$younation[name](와)과 종전 동의"; + $youmsg = "【외교】$admin[year]년 $admin[month]월:$mynation[name](와)과 종전 동의"; + + PushMsg(2, $mynation[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$mynation[name]}▶", $mynation[color], $younation[name], $younation[color], $msg); + PushMsg(3, $younation[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$mynation[name]}▶", $mynation[color], $younation[name], $younation[color], $youmsg); + } + + //현 메세지 지움 + $query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} else { + $youlog[count($youlog)] = "$mynation[name](이)가 종전을 거부했습니다."; + $mylog[count($mylog)] = "$younation[name](와)과 종전을 거부했습니다."; + + //현 메세지 지움 + $query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +pushGenLog($me, $mylog); +pushGenLog($you, $youlog); +pushAllLog($alllog); +pushHistory($connect, $history); + +echo ""; + +?> + diff --git a/twe_close/d_merge.php b/twe_close/d_merge.php new file mode 100644 index 00000000..d57c213e --- /dev/null +++ b/twe_close/d_merge.php @@ -0,0 +1,138 @@ +=1"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$avgnation = MYDB_fetch_array($result); + +$query = "select round(std(power)) as power,round(std(gennum)) as gennum from nation where level>=1"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$stdnation = MYDB_fetch_array($result); + +$query = "select nation,name,gennum,power,surlimit,history,color from nation where nation='$you[nation]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$younation = MYDB_fetch_array($result); + +$query = "select nation,name,gennum,power,gold,rice,surlimit,color,dip{$num} as dipmsg from nation where nation='$me[nation]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$mynation = MYDB_fetch_array($result); + +$query = "select city from city where nation='$me[nation]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$losecitynum = MYDB_num_rows($result); + +$query = "select city from city where nation='$you[nation]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$wincitynum = MYDB_num_rows($result); + +//아국과의 관계 +$query = "select state from diplomacy where me='$me[nation]' and you='$you[nation]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$dip = MYDB_fetch_array($result); +//대상국이 외교 진행중(선포중,교전중,합병수락중,통합수락중)일때 +$query = "select state from diplomacy where me='$you[nation]' and (state='0' or state='1' or state='3' or state='5')"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$dipcount = MYDB_num_rows($result); +//대상국B이 아국C과 교전중인 국가A와 불가침중일때 불가(A=B 불가침, A=C(아국) 교전, B<-C(아국) 항복) +$query = "select you,state from diplomacy where me='$me[nation]' and (state='0' or state='1')"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$warcount = MYDB_num_rows($result); +// 아국과 교전중인 국가 골라냄 +$valid = 1; +for($i=0; $i < $warcount; $i++) { + $acdip = MYDB_fetch_array($result); + //교전중 국가A와 대상국B 외교 확인 + $query = "select state from diplomacy where me='$acdip[you]' and you='$you[nation]'"; + $dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $abdip = MYDB_fetch_array($dipresult); + + if($abdip[state] == 7) { + $valid = 0; + } +} + +if($ok == "수락") { + // 서신 보낸 후 멸망 했을때. + if($me[level] < 5) { + $mylog[count($mylog)] = "●수뇌부가 아니므로 불가능합니다. 통합 실패."; + } elseif($mynation[surlimit] > 0) { + $mylog[count($mylog)] = "●본국이 외교제한이 지나지 않았습니다. 통합 실패."; + } elseif($younation[surlimit] > 0) { + $mylog[count($mylog)] = "●상대국이 외교제한이 지나지 않았습니다. 통합 실패."; + } elseif($losecitynum == 0) { + $mylog[count($mylog)] = "●방랑군이므로 불가능합니다. 통합 실패."; + } elseif($wincitynum == 0) { + $mylog[count($mylog)] = "●상대가 방랑군이므로 불가능합니다. 통합 실패."; + } elseif($mynation[power]+$younation[power] > $avgnation[power]+$stdnation[power]) { + $mylog[count($mylog)] = "●양국 국력이 너무 높습니다. 통합 실패."; + } elseif($mynation[gennum]+$younation[gennum] > $avgnation[gennum]+$stdnation[gennum]) { + $mylog[count($mylog)] = "●양국 장수가 많습니다. 통합 실패."; + } elseif(!isClose($connect, $younation[nation], $mynation[nation])) { + $mylog[count($mylog)] = "●인접한 국가가 아니므로 불가능합니다. 통합 실패."; + } elseif($dip[state] == 0) { + $mylog[count($mylog)] = "●아국과 교전중입니다. 통합 실패."; + } elseif($dipcount != 0) { + $mylog[count($mylog)] = "●상대국이 외교 진행중입니다. 통합 실패."; + } elseif($valid == 0) { + $mylog[count($mylog)] = "●상대국이 아국의 교전국과 불가침중입니다. 통합 실패."; + } elseif($mynation[dipmsg] == "") { + $mylog[count($mylog)] = "●이미 거절했습니다. 불가침 실패."; + } else { + $youlog[count($youlog)] = "$mynation[name](이)가 통합에 동의했습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【통합시도】$mynation[name](와)과 $younation[name](이)가 통합을 시도합니다."; + $mylog[count($mylog)] = "$younation[name](와)과 통합에 동의했습니다."; + $alllog[count($alllog)] = "●{$admin[month]}월:$me[name](이)가 $younation[name](와)과 통합에 동의하였습니다."; + $you = addHistory($connect, $you, "●$admin[year]년 $admin[month]월:$mynation[name](와)과 통합 시도"); + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:$younation[name](와)과 통합 시도"); + + //외교 변경 + $query = "update diplomacy set state='3',term='24' where me='$mynation[nation]' and you='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update diplomacy set state='4',term='24' where me='$younation[nation]' and you='$mynation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //국메로 저장 + $msg = "【외교】$admin[year]년 $admin[month]월:$younation[name](와)과 통합에 합의"; + $youmsg = "【외교】$admin[year]년 $admin[month]월:$mynation[name](와)과 통합에 합의"; + + PushMsg(2, $mynation[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$mynation[name]}▶", $mynation[color], $younation[name], $younation[color], $msg); + PushMsg(3, $younation[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$mynation[name]}▶", $mynation[color], $younation[name], $younation[color], $youmsg); + } + + //현 메세지 지움 + $query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} else { + $youlog[count($youlog)] = "$mynation[name](이)가 항복을 거부했습니다."; + $mylog[count($mylog)] = "$younation[name](으)로 항복을 거부했습니다."; + + //현 메세지 지움 + $query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +pushGenLog($me, $mylog); +pushGenLog($you, $youlog); +pushAllLog($alllog); +pushHistory($connect, $history); + +echo ""; + +?> + diff --git a/twe_close/d_scout.php b/twe_close/d_scout.php new file mode 100644 index 00000000..9900e98f --- /dev/null +++ b/twe_close/d_scout.php @@ -0,0 +1,164 @@ + 0 && $nation[scout] == 0 && $me[nation] != $nation[nation] && $admin[year] >= $admin[startyear]+3 && strpos($me['nations'], ",{$nation['nation']},") === false) { + $youlog[count($youlog)] = "$me[name] 등용에 성공했습니다."; + $alllog[count($alllog)] = "●{$admin[month]}월:$me[name](이)가 $nation[name](으)로 망명하였습니다."; + $mylog[count($mylog)] = "$nation[name](으)로 망명하여 수도로 이동합니다."; + $you = addHistory($connect, $you, "●$admin[year]년 $admin[month]월:$me[name] 등용에 성공"); + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:$nation[name](으)로 망명"); + + // 임관내역 추가 + $me['nations'] .= "{$nation['nation']},"; + + // 국가 변경, 도시 변경, 일반으로, 수도로 + $query = "update general set killturn='$admin[killturn]',belong=1,nation='$you[nation]',nations='{$me['nations']}',level=1,city='$nation[capital]' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 재야가 아니면 명성N*10% 공헌N*10%감소 + if($me[level] > 0) { + // 1000 1000 남기고 환수 + if($me[gold] > 1000) { $gold = $me[gold] - 1000; $me[gold] = 1000; } else { $gold = 0; } + if($me[rice] > 1000) { $rice = $me[rice] - 1000; $me[rice] = 1000; } else { $rice = 0; } + $query = "update general set gold='$me[gold]',rice='$me[rice]',betray=betray+1,dedication=dedication*(1-0.1*betray),experience=experience*(1-0.1*betray) where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update nation set gold=gold+'$gold',rice=rice+'$rice' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + //재야이면 100 100 증가 + $query = "update general set dedication=dedication+100,experience=experience+100 where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + //유저이면 삭턴 리셋 + if($me[npc] < 2) { + $query = "update general set killturn='$admin[killturn]' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + //태수 군사 시중 해제 + switch($me[level]) { + case 4: + $query = "update city set gen1=0 where gen1='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 3: + $query = "update city set gen2=0 where gen2='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 2: + $query = "update city set gen3=0 where gen3='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + } + + //등용자 명성, 공헌 상승 + $query = "update general set dedication=dedication+100,experience=experience+100 where no='$you[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 부대 처리 + $query = "select no from troop where troop='$me[troop]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $troop = MYDB_fetch_array($result); + + //부대장일 경우 + if($troop[no] == $me[no]) { + // 모두 탈퇴 + $query = "update general set troop='0' where troop='$me[troop]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 부대 삭제 + $query = "delete from troop where troop='$me[troop]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update general set troop='0' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + //국가 기술력 그대로 + $query = "select no from general where nation='$nation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $gennum = $gencount; + if($gencount < 10) $gencount = 10; + + $query = "update nation set totaltech=tech*'$gencount',gennum='$gennum' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //기존 국가 기술력 그대로 + $query = "select no from general where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $gennum = $gencount; + if($gencount < 10) $gencount = 10; + + $query = "update nation set totaltech=tech*'$gencount',gennum='$gennum' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //현 메세지 수정 + $query = "update general set msg{$num}='$nation[name](으)로 등용 제의 수락',msg{$num}_type='10' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($me[level] == 12) { + $mylog[count($mylog)] = "●군주입니다. 등용 수락 불가."; + + //현 메세지 지움 + $query = "update general set msg{$num}='$nation[name](으)로 등용 제의 수락 불가',msg{$num}_type='10' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($nation[level] == 0) { + $mylog[count($mylog)] = "●없는 국가이거나 방랑군입니다. 등용 수락 불가."; + + //현 메세지 지움 + $query = "update general set msg{$num}='$nation[name](으)로 등용 제의 수락 불가',msg{$num}_type='10' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($nation[scout] != 0) { + $mylog[count($mylog)] = "●임관 금지중입니다. 등용 수락 불가."; + + //현 메세지 지움 + $query = "update general set msg{$num}='$nation[name](으)로 등용 제의 수락 불가',msg{$num}_type='10' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif($admin[year] < $admin[startyear]+3) { + $mylog[count($mylog)] = "●초반 제한중입니다. 등용 수락 불가."; + + //현 메세지 지움 + $query = "update general set msg{$num}='$nation[name](으)로 등용 제의 수락 불가',msg{$num}_type='10' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} elseif(strpos($me['nations'], ",{$nation['nation']},") > 0) { + $mylog[count($mylog)] = "●이미 임관했었던 국가입니다. 등용 수락 불가."; + + //현 메세지 지움 + $query = "update general set msg{$num}='$nation[name](으)로 등용 제의 수락 불가',msg{$num}_type='10' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} else { + $youlog[count($youlog)] = "$me[name](이)가 등용을 거부했습니다."; + $mylog[count($mylog)] = "$nation[name](으)로 망명을 거부했습니다."; + + //현 메세지 지움 + $query = "update general set msg{$num}='$nation[name](으)로 등용 제의 거부',msg{$num}_type='10' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +pushGenLog($me, $mylog); +pushGenLog($you, $youlog); +pushAllLog($alllog); +pushHistory($connect, $history); + +echo ""; + +?> + diff --git a/twe_close/d_setting/.htaccess b/twe_close/d_setting/.htaccess new file mode 100644 index 00000000..698196ae --- /dev/null +++ b/twe_close/d_setting/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/twe_close/d_setting/_common.php b/twe_close/d_setting/_common.php new file mode 100644 index 00000000..90e4756f --- /dev/null +++ b/twe_close/d_setting/_common.php @@ -0,0 +1,10 @@ + diff --git a/twe_close/d_surrender.php b/twe_close/d_surrender.php new file mode 100644 index 00000000..729fe7fa --- /dev/null +++ b/twe_close/d_surrender.php @@ -0,0 +1,128 @@ +●수뇌부가 아니므로 불가능합니다. 투항 실패."; + } elseif($mynation[surlimit] > 0) { + $mylog[count($mylog)] = "●본국이 외교제한이 지나지 않았습니다. 투항 실패."; + } elseif($younation[surlimit] > 0) { + $mylog[count($mylog)] = "●상대국이 외교제한이 지나지 않았습니다. 투항 실패."; +// } elseif($losecitynum == 0) { +// $mylog[count($mylog)] = "●방랑군이므로 불가능합니다. 투항 실패."; + } elseif($wincitynum == 0) { + $mylog[count($mylog)] = "●상대가 방랑군이므로 불가능합니다. 투항 실패."; + } elseif($younation[power] / $mynation[power] <= 3) { + $mylog[count($mylog)] = "●아국과 상대국의 국력차이가 크지 않습니다. 투항 실패."; + } elseif($losecitynum != 0 && !isClose($connect, $younation[nation], $mynation[nation])) { + $mylog[count($mylog)] = "●인접한 국가가 아니므로 불가능합니다. 투항 실패."; + } elseif($dip[state] == 0) { + $mylog[count($mylog)] = "●아국과 교전중입니다. 투항 실패."; + } elseif($dipcount != 0) { + $mylog[count($mylog)] = "●상대국이 외교 진행중입니다. 투항 실패."; + } elseif($valid == 0) { + $mylog[count($mylog)] = "●상대국이 아국의 교전국과 불가침중입니다. 투항 실패."; + } elseif($mynation[dipmsg] == "") { + $mylog[count($mylog)] = "●이미 거절했습니다. 불가침 실패."; + } else { + $youlog[count($youlog)] = "$mynation[name](이)가 합병에 동의했습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【합병시도】$mynation[name](와)과 $younation[name](이)가 합병을 시도합니다."; + $mylog[count($mylog)] = "$younation[name](와)과 합병에 동의했습니다."; + $alllog[count($alllog)] = "●{$admin[month]}월:$me[name](이)가 $younation[name](와)과 합병에 동의하였습니다."; + $you = addHistory($connect, $you, "●$admin[year]년 $admin[month]월:$mynation[name](와)과 합병 시도"); + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:$younation[name](와)과 합병 시도"); + + //외교 변경 + $query = "update diplomacy set state='5',term='24' where me='$mynation[nation]' and you='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update diplomacy set state='6',term='24' where me='$younation[nation]' and you='$mynation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //국메로 저장 + $msg = "【외교】$admin[year]년 $admin[month]월:$younation[name](와)과 합병에 동의"; + $youmsg = "【외교】$admin[year]년 $admin[month]월:$mynation[name](와)과 합병에 동의"; + + PushMsg(2, $mynation[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$mynation[name]}▶", $mynation[color], $younation[name], $younation[color], $msg); + PushMsg(3, $younation[nation], $me[picture], $me[imgsvr], "{$me[name]}:{$mynation[name]}▶", $mynation[color], $younation[name], $younation[color], $youmsg); + } + + //현 메세지 지움 + $query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} else { + $youlog[count($youlog)] = "$mynation[name](이)가 항복을 거부했습니다."; + $mylog[count($mylog)] = "$younation[name](으)로 항복을 거부했습니다."; + + //현 메세지 지움 + $query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +pushGenLog($me, $mylog); +pushGenLog($you, $youlog); +pushAllLog($alllog); +pushHistory($connect, $history); + +echo ""; + +?> + diff --git a/twe_close/data/.htaccess b/twe_close/data/.htaccess new file mode 100644 index 00000000..698196ae --- /dev/null +++ b/twe_close/data/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/twe_close/data/connected.php b/twe_close/data/connected.php new file mode 100644 index 00000000..caaabefa --- /dev/null +++ b/twe_close/data/connected.php @@ -0,0 +1 @@ + diff --git a/twe_close/data/session/sess_bl2knvun8a0dsp2e0hc12u2i06 b/twe_close/data/session/sess_bl2knvun8a0dsp2e0hc12u2i06 new file mode 100644 index 00000000..788e8886 --- /dev/null +++ b/twe_close/data/session/sess_bl2knvun8a0dsp2e0hc12u2i06 @@ -0,0 +1 @@ +p_ip|s:14:"125.209.213.87";p_time|i:1457326503; \ No newline at end of file diff --git a/twe_close/data/session/sess_e67fe7rdm5eaehoqrn0j6rodl1 b/twe_close/data/session/sess_e67fe7rdm5eaehoqrn0j6rodl1 new file mode 100644 index 00000000..e2a88960 --- /dev/null +++ b/twe_close/data/session/sess_e67fe7rdm5eaehoqrn0j6rodl1 @@ -0,0 +1 @@ +p_ip|s:14:"125.209.213.86";p_time|i:1457326490; \ No newline at end of file diff --git a/twe_close/error.php b/twe_close/error.php new file mode 100644 index 00000000..e715fc70 --- /dev/null +++ b/twe_close/error.php @@ -0,0 +1,32 @@ + + + + + +에러 + + + + +




+ + + + + + + + +
서 버 에 러
+ 두가지 중 한가지 이유일 수 있습니다.

+ 1. 현재 서버가 처리중입니다. 몇초 후 아래 버튼을 눌러주세요.

+ 2. 오랫동안 이 메세지가 뜰 경우는 서버에 에러가 발생하여 잠시 중단된 상태입니다.
+    운영자가 처리할 때까지 기다려주세요.
+
잠시 후 아래의 버튼을 눌러주세요.
+ + + diff --git a/twe_close/event_1.php b/twe_close/event_1.php new file mode 100644 index 00000000..7dea2813 --- /dev/null +++ b/twe_close/event_1.php @@ -0,0 +1,248 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +$query = "select year,month,turnterm,isUnited from game where no='1'"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); + +if($admin[isUnited] == 0) { + $query = "select no from general where npc<2 and age>50"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + for($i=0; $i < $count; $i++) { + $general = MYDB_fetch_array($result); + CheckHall($connect, $general[no]); + } +} + +// 수도가 이성인경우 옆으로 이전, 또는 랜덤 +$query = "select nation from nation where capital=63 or capital=64 or capital=65 or capital=66 or capital=67 or capital=68 or capital=69"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); + +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + + $query = "select city,nation from city where nation='$nation[nation]' order by rand() limit 0,1"; + $result2 = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + $city = MYDB_fetch_array($result2); + + $query = "update nation set capital='$city[city]' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +} + +//이벤트1 : 이민족침범 +$name = Array( "강족", "저족", "흉노족", "남만족", "산월족", "오환족", "왜족"); +$cap = Array( 63, 64, 65, 66, 67, 68, 69); + +$query = "select no from general where npc<5"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$eachCount = MYDB_num_rows($result); +$eachCount = round($eachCount / 7) * 2; + +for($i=0; $i < 7; $i++) { + RegNation($connect, $name[$i], "800000", 999999, 999999, "중원의 부패를 물리쳐라! 이민족 침범!", 15000, $eachCount, "병가", 0); +} + +//////////////////////////외교////////////////////////////////////////////////// +$query = "update game set isUnited=1"; +MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + +//-------------------------------------------------------------------- +for($i=0; $i < 7; $i++) { + $query = "select nation from nation where name='{$name[$i]}'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $nationNum[$i] = $nation[nation]; + + $query = "update nation set scout=1,capital={$cap[$i]} where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + + //태수,군사,시중 해제 + $query = "select gen1,gen2,gen3 from city where city='{$cap[$i]}'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + //태수 해제 + $query = "update general set level=1 where no='{$city[gen1]}'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + //군사 해제 + $query = "update general set level=1 where no='{$city[gen2]}'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + //시중 해제 + $query = "update general set level=1 where no='{$city[gen3]}'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + + $query = "update city set nation='$nation[nation]',pop='1000000',agri=agri2,comm=comm2,secu=secu2,def=def2,wall=wall2,supply=1,gen1=0,gen2=0,gen3=0 where city='{$cap[$i]}'"; + MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + + $query = "select nation,level from nation where nation!='$nation[nation]'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + for($k=0; $k < $count; $k++) { + $your = MYDB_fetch_array($result); + if($your[level] > 0) { + $query = "insert into diplomacy (me, you, state, term) values ('$nation[nation]', '$your[nation]', '1', '1')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "insert into diplomacy (me, you, state, term) values ('$your[nation]', '$nation[nation]', '1', '1')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "insert into diplomacy (me, you, state, term) values ('$nation[nation]', '$your[nation]', '7', '999')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "insert into diplomacy (me, you, state, term) values ('$your[nation]', '$nation[nation]', '7', '999')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } +} + +for($i=0; $i < 7; $i++) { + $query = "update nation set level=1 where nation='$nationNum[$i]'"; + MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +} +//-------------------------------------------------------------------- + +//////////////////////////장수////////////////////////////////////////////////// +// 이름 통 무 지 꿈 특기 +$gencount = 2001; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[0],12, "강대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[1],12, "저대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[2],12, "흉노대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[3],12, "남만대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[4],12, "산월대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[5],12, "오환대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[6],12, "왜대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%10 + 85; $p = rand()%10 + 85; $i = rand()%10 + 10; } + else { $l = rand()%10 + 85; $p = rand()%10 + 10; $i = rand()%10 + 85; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[0], 1, "강장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%10 + 85; $p = rand()%10 + 85; $i = rand()%10 + 10; } + else { $l = rand()%10 + 85; $p = rand()%10 + 10; $i = rand()%10 + 85; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[1], 1, "저장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%10 + 85; $p = rand()%10 + 85; $i = rand()%10 + 10; } + else { $l = rand()%10 + 85; $p = rand()%10 + 10; $i = rand()%10 + 85; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[2], 1,"흉노장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%10 + 85; $p = rand()%10 + 85; $i = rand()%10 + 10; } + else { $l = rand()%10 + 85; $p = rand()%10 + 10; $i = rand()%10 + 85; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[3], 1,"남만장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%10 + 85; $p = rand()%10 + 85; $i = rand()%10 + 10; } + else { $l = rand()%10 + 85; $p = rand()%10 + 10; $i = rand()%10 + 85; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[4], 1,"산월장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%10 + 85; $p = rand()%10 + 85; $i = rand()%10 + 10; } + else { $l = rand()%10 + 85; $p = rand()%10 + 10; $i = rand()%10 + 85; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[5], 1,"오환장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%10 + 85; $p = rand()%10 + 85; $i = rand()%10 + 10; } + else { $l = rand()%10 + 85; $p = rand()%10 + 10; $i = rand()%10 + 85; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[6], 1, "왜장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +//////////////////////////장수 끝/////////////////////////////////////////////// + +// 전장수 금쌀 999999 +$query = "update general set gold=999999,rice=999999"; +MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●$admin[year]년 $admin[month]월:【이벤트】각지의 이민족들이 궐기합니다!"; +$history[count($history)] = "●$admin[year]년 $admin[month]월:【이벤트】중원의 전 국가에 선전포고 합니다!"; +$history[count($history)] = "●$admin[year]년 $admin[month]월:【이벤트】이민족의 기세는 그 누구도 막을 수 없을듯 합니다!"; +pushHistory($connect, $history); + +echo ""; + +function RegGeneral3($connect,$turnterm,$gencount,$nation,$level,$name,$leader,$power,$intel,$personal,$special,$msg="") { + $name = "ⓞ".$name; + $genid = "npc{$gencount}"; + $turntime = getRandTurn2($turnterm); + $personal = CharCall($personal); + $special = SpecCall($special); + if($special >= 40) { $special2 = $special; $special = 0; } + else { $special2 = 0; } + $city = rand()%94 + 1; + $age = 15; + $specage = $age; + $specage2 = $age; + $killturn = 9999; + $experience = $age * 100; + $dedication = $age * 100; + $npc = 5; + $npcmatch = 999; + $picture = 'default.jpg'; + $crew = $leader * 100; + $crewtype = rand() % 3; + $pw = md5("18071807"); + //장수 + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation,city, + leader,power,intel,experience,dedication, + level,gold,rice,crew,crewtype,train,atmos,tnmt, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit, + dex0, dex10, dex20, dex30, dex40 + ) values ( + '$gencount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','$nation','$city', + '$leader','$power','$intel','$experience','$dedication', + '$level','99999','99999','$crew','$crewtype','100','100','0', + '6','6','6','$turntime','$killturn','$age','1', + '$personal','$special','$specage','$special2','$specage2','$msg', + '0', + 450000, 450000, 450000, 450000, 450000 + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); +} + +?> + diff --git a/twe_close/event_2.php b/twe_close/event_2.php new file mode 100644 index 00000000..94bcc518 --- /dev/null +++ b/twe_close/event_2.php @@ -0,0 +1,257 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +$query = "select year,month,turnterm,isUnited from game where no='1'"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); + +if($admin[isUnited] == 0) { + $query = "select no from general where npc<2 and age>50"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + for($i=0; $i < $count; $i++) { + $general = MYDB_fetch_array($result); + CheckHall($connect, $general[no]); + } +} + +// 수도가 이성인경우 옆으로 이전, 또는 랜덤 +$query = "select nation from nation where capital=63 or capital=64 or capital=65 or capital=66 or capital=67 or capital=68 or capital=69"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); + +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + + $query = "select city,nation from city where nation='$nation[nation]' order by rand() limit 0,1"; + $result2 = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + $city = MYDB_fetch_array($result2); + + $query = "update nation set capital='$city[city]' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +} + +//이벤트2 : 오랑캐궐기 +$name = Array( "강족", "저족", "흉노족", "남만족", "산월족", "오환족", "왜족"); +$cap = Array( 63, 64, 65, 66, 67, 68, 69); + +$query = "select no from general where npc<5"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$eachCount = MYDB_num_rows($result); +$eachCount = round($eachCount / 7) * 2; + +$query = "select avg(tech) as tch from nation where level>0"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$info = MYDB_fetch_array($result); + +for($i=0; $i < 7; $i++) { + RegNation($connect, $name[$i], "800000", 99999, 99999, "오랑캐여 일어서라! 오랑캐 궐기!", $info[tch]+500, $eachCount, "병가", 0); +} + +//////////////////////////외교////////////////////////////////////////////////// +$query = "update game set isUnited=1"; +MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + +//-------------------------------------------------------------------- +for($i=0; $i < 7; $i++) { + $query = "select nation from nation where name='{$name[$i]}'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $nationNum[$i] = $nation[nation]; + + $query = "update nation set scout=1,capital={$cap[$i]} where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + + //태수,군사,시중 해제 + $query = "select gen1,gen2,gen3 from city where city='{$cap[$i]}'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + //태수 해제 + $query = "update general set level=1 where no='{$city[gen1]}'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + //군사 해제 + $query = "update general set level=1 where no='{$city[gen2]}'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + //시중 해제 + $query = "update general set level=1 where no='{$city[gen3]}'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + + $query = "update city set nation='$nation[nation]',pop='1000000',agri=agri2,comm=comm2,secu=secu2,def=def2,wall=wall2,supply=1,gen1=0,gen2=0,gen3=0 where city='{$cap[$i]}'"; + MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + + $query = "select nation,level from nation where nation!='$nation[nation]'"; + $result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + for($k=0; $k < $count; $k++) { + $your = MYDB_fetch_array($result); + if($your[level] > 0) { + $query = "insert into diplomacy (me, you, state, term) values ('$nation[nation]', '$your[nation]', '1', '1')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "insert into diplomacy (me, you, state, term) values ('$your[nation]', '$nation[nation]', '1', '1')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "insert into diplomacy (me, you, state, term) values ('$nation[nation]', '$your[nation]', '7', '999')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "insert into diplomacy (me, you, state, term) values ('$your[nation]', '$nation[nation]', '7', '999')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } +} + +for($i=0; $i < 7; $i++) { + $query = "update nation set level=1 where nation='$nationNum[$i]'"; + MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +} +//-------------------------------------------------------------------- + +//////////////////////////장수////////////////////////////////////////////////// +// 이름 통 무 지 꿈 특기 +$gencount = 2001; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[0],12, "강대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[1],12, "저대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[2],12, "흉노대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[3],12, "남만대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[4],12, "산월대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[5],12, "오환대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[6],12, "왜대왕", 95, 95, 75,"패권","돌격", ""); $gencount++; + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%40 + 35; $p = rand()%40 + 35; $i = rand()%10 + 10; } + else { $l = rand()%40 + 35; $p = rand()%10 + 10; $i = rand()%40 + 35; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[0], 1, "강장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%40 + 35; $p = rand()%40 + 35; $i = rand()%10 + 10; } + else { $l = rand()%40 + 35; $p = rand()%10 + 10; $i = rand()%40 + 35; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[1], 1, "저장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%40 + 35; $p = rand()%40 + 35; $i = rand()%10 + 10; } + else { $l = rand()%40 + 35; $p = rand()%10 + 10; $i = rand()%40 + 35; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[2], 1,"흉노장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%40 + 35; $p = rand()%40 + 35; $i = rand()%10 + 10; } + else { $l = rand()%40 + 35; $p = rand()%10 + 10; $i = rand()%40 + 35; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[3], 1,"남만장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%40 + 35; $p = rand()%40 + 35; $i = rand()%10 + 10; } + else { $l = rand()%40 + 35; $p = rand()%10 + 10; $i = rand()%40 + 35; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[4], 1,"산월장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%40 + 35; $p = rand()%40 + 35; $i = rand()%10 + 10; } + else { $l = rand()%40 + 35; $p = rand()%10 + 10; $i = rand()%40 + 35; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[5], 1,"오환장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +for($k=1; $k <= $eachCount; $k++) { + if(rand()%2) { $l = rand()%40 + 35; $p = rand()%40 + 35; $i = rand()%10 + 10; } + else { $l = rand()%40 + 35; $p = rand()%10 + 10; $i = rand()%40 + 35; } + RegGeneral3($connect,$admin[turnterm],$gencount,$nationNum[6], 1, "왜장수{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +//////////////////////////장수 끝/////////////////////////////////////////////// + +// 전장수 금쌀 999999 +$query = "update general set gold=999999,rice=999999"; +MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●$admin[year]년 $admin[month]월:【이벤트】각지의 오랑캐들이 궐기합니다!"; +$history[count($history)] = "●$admin[year]년 $admin[month]월:【이벤트】중원의 전 국가에 선전포고 합니다!"; +$history[count($history)] = "●$admin[year]년 $admin[month]월:【이벤트】그러나 중원의 영웅들이라면 막아낼 수도 있을법 해 보입니다!"; +pushHistory($connect, $history); + +echo ""; + +function RegGeneral3($connect,$turnterm,$gencount,$nation,$level,$name,$leader,$power,$intel,$personal,$special,$msg="") { + $name = "ⓞ".$name; + $genid = "npc{$gencount}"; + $turntime = getRandTurn2($turnterm); + $personal = CharCall($personal); + $special = SpecCall($special); + if($special >= 40) { $special2 = $special; $special = 0; } + else { $special2 = 0; } + $city = rand()%94 + 1; + $age = 15; + $specage = $age; + $specage2 = $age; + $killturn = 9999; + $experience = $age * 100; + $dedication = $age * 100; + $npc = 5; + $npcmatch = 999; + $picture = 'default.jpg'; + $crew = $leader * 100; + $crewtype = rand() % 3; + $dex0 = 0; + $dex10 = 0; + $dex20 = 0; + $dex30 = 0; + $dex40 = 0; + $pw = md5("18071807"); + //장수 + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation,city, + leader,power,intel,experience,dedication, + level,gold,rice,crew,crewtype,train,atmos,tnmt, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit, + dex0, dex10, dex20, dex30, dex40 + ) values ( + '$gencount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','$nation','$city', + '$leader','$power','$intel','$experience','$dedication', + '$level','99999','99999','$crew','$crewtype','100','100','0', + '0','0','0','$turntime','$killturn','$age','1', + '$personal','$special','$specage','$special2','$specage2','$msg', + '0', + '$dex0', '$dex10', '$dex20', '$dex30', '$dex40' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); +} + +?> + diff --git a/twe_close/event_3.php b/twe_close/event_3.php new file mode 100644 index 00000000..48fd3d51 --- /dev/null +++ b/twe_close/event_3.php @@ -0,0 +1,118 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +$query = "select year,month,turnterm,isUnited from game where no='1'"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); + +if($admin[isUnited] == 0) { + $query = "select no from general where npc<2 and age>50"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + for($i=0; $i < $count; $i++) { + $general = MYDB_fetch_array($result); + CheckHall($connect, $general[no]); + } +} + +//이벤트3 : NPC추가 +//////////////////////////장수////////////////////////////////////////////////// +// 이름 통 무 지 꿈 특기 +$gencount = 2001; +for($k=1; $k <= 200; $k++) { + if(rand()%2) { $l = rand()%40 + 35; $p = rand()%40 + 35; $i = rand()%10 + 10; } + else { $l = rand()%40 + 35; $p = rand()%10 + 10; $i = rand()%40 + 35; } + RegGeneral3($connect,$admin[turnterm],$gencount, 0, 0, "무명장{$k}", $l, $p, $i,"패권","돌격", ""); $gencount++; +} + +//////////////////////////장수 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●$admin[year]년 $admin[month]월:【이벤트】각지에서 인재들이 등장합니다!"; +$history[count($history)] = "●$admin[year]년 $admin[month]월:【이벤트】중원 통일에 보탬이 될듯 합니다!"; +pushHistory($connect, $history); + +echo ""; + +function RegGeneral3($connect,$turnterm,$gencount,$nation,$level,$name,$leader,$power,$intel,$personal,$special,$msg="") { + $name = "ⓝ".$name; + $genid = "npc{$gencount}"; + $turntime = getRandTurn($turnterm); + $personal = CharCall($personal); + $special = SpecCall($special); + if($special >= 40) { $special2 = $special; $special = 0; } + else { $special2 = 0; } + $city = rand()%94 + 1; + $age = 15; + $specage = $age; + $specage2 = $age; + $killturn = 9999; + $experience = $age * 100; + $dedication = $age * 100; + $npc = 2; + $npcmatch = rand() % 150 + 1; + $picture = 'default.jpg'; + $crew = 0; + $crewtype = rand() % 3; + $dex0 = rand() % 18000; + $dex10 = rand() % 18000; + $dex20 = rand() % 18000; + $dex30 = rand() % 18000; + $dex40 = rand() % 18000; + $pw = md5("18071807"); + //장수 + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation,city, + leader,power,intel,experience,dedication, + level,gold,rice,crew,crewtype,train,atmos,tnmt, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit, + dex0, dex10, dex20, dex30, dex40 + ) values ( + '$gencount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','$nation','$city', + '$leader','$power','$intel','$experience','$dedication', + '$level','1000','1000','$crew','$crewtype','100','100','0', + '0','0','0','$turntime','$killturn','$age','1', + '$personal','$special','$specage','$special2','$specage2','$msg', + '0', + '$dex0', '$dex10', '$dex20', '$dex30', '$dex40' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); +} + +?> + diff --git a/twe_close/event_4.php b/twe_close/event_4.php new file mode 100644 index 00000000..9d3b1c10 --- /dev/null +++ b/twe_close/event_4.php @@ -0,0 +1,147 @@ + + +관리메뉴 + + + + +관리자가 아닙니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +//중복체크 +$query = "select no from general where user_id='jwh1807'"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$general = MYDB_fetch_array($result); + +if($general[no] > 0) { + echo " + + +관리메뉴 + + + + +이미 있습니다.
+"; + banner(); + echo " + +"; + + exit(); +} + +$query = "select year,month,turnterm,isUnited from game where no='1'"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); + +$query = "select round(avg(specage)) as specage,round(avg(specage2)) as specage2 from general where npc<2"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$general = MYDB_fetch_array($result); + +//이벤트4 : 유기체 추가 +//////////////////////////장수////////////////////////////////////////////////// +// 이름 통 무 지 꿈 특기 +$gencount = 2000; + +$personal = rand()%10; +$personal = getGenChar($personal); + +$leader = 65 + rand()%11; +if(rand()%2 == 0) { + $intel = 10 + rand()%6; + $power = 150 - $leader - $intel; +} else { + $power= 10 + rand()%6; + $intel = 150 - $leader - $power; +} + +RegGeneral4($connect,$admin[turnterm],$gencount, 0, 0, "유기체", $leader, $power, $intel, $personal, $general[specage], $general[specage2], "흠... 그럼 어쩔 수 없이 흉노로 가야겠군요."); $gencount++; + +//////////////////////////장수 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$log[0] = "●{$admin[month]}월:ⓝ유기체가 천하에 이름을 알립니다."; +pushAllLog($log); + +$history[count($history)] = "●$admin[year]년 $admin[month]월:【이벤트】NPC 유기체가 등장합니다. 의병장과 NPC들의 지능 개선을 위해 NPC 두뇌를 체험합니다. 크게 신경쓰진 마세요."; +pushHistory($connect, $history); + +echo ""; + +function RegGeneral4($connect,$turnterm,$gencount,$nation,$level,$name,$leader,$power,$intel,$personal,$specage,$specage2,$msg="") { + $name = "ⓝ".$name; + $genid = "jwh1807"; + $turntime = getRandTurn($turnterm); + $personal = CharCall($personal); + $city = rand()%94 + 1; + $age = 20; + + //전특 + $special2 = 0; + //내특 + $special = 0; + + $killturn = 720; + $experience = 0; + $dedication = 0; + $npc = 3; + $npcmatch = rand() % 150 + 1; + $picture = 'pic_3.jpg'; + $crew = 0; + $crewtype = rand() % 3; + $dex0 = 0; + $dex10 = 0; + $dex20 = 0; + $dex30 = 0; + $dex40 = 0; + $pw = md5("18071807"); + //장수 + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation,city, + leader,power,intel,experience,dedication, + level,gold,rice,crew,crewtype,train,atmos, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit, + dex0, dex10, dex20, dex30, dex40 + ) values ( + '$gencount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','$nation','$city', + '$leader','$power','$intel','$experience','$dedication', + '$level','1000','1000','$crew','$crewtype','100','100', + '0','0','0','$turntime','$killturn','$age','1', + '$personal','$special','$specage','$special2','$specage2','$msg', + '0', + '$dex0', '$dex10', '$dex20', '$dex30', '$dex40' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); +} + +?> + diff --git a/twe_close/func.php b/twe_close/func.php new file mode 100644 index 00000000..31577742 --- /dev/null +++ b/twe_close/func.php @@ -0,0 +1,7419 @@ + $leader, 'power' => $power, 'intel' => $intel); +} + +// 14 ~ 75 +function abilityLeadpow() { + $total = 150; + $leader = (rand()%100 + 1) / 100.0 + 6.0; + $power = (rand()%100 + 1) / 100.0 + 6.0; + $intel = (rand()%100 + 1) / 100.0 + 1.0; + $rate = $leader + $power + $intel; + $leader = floor($leader / $rate * $total); + $power = floor($power / $rate * $total); + $intel = floor($intel / $rate * $total); + + while($leader+$power+$intel < 150) { + $leader++; + } + + return array('leader' => $leader, 'power' => $power, 'intel' => $intel); +} + +function abilityLeadint() { + $total = 150; + $leader = (rand()%100 + 1) / 100.0 + 6.0; + $power = (rand()%100 + 1) / 100.0 + 1.0; + $intel = (rand()%100 + 1) / 100.0 + 6.0; + $rate = $leader + $power + $intel; + $leader = floor($leader / $rate * $total); + $power = floor($power / $rate * $total); + $intel = floor($intel / $rate * $total); + + while($leader+$power+$intel < 150) { + $leader++; + } + + return array('leader' => $leader, 'power' => $power, 'intel' => $intel); +} + +function abilityPowint() { + $total = 150; + $leader = (rand()%100 + 1) / 100.0 + 1.0; + $power = (rand()%100 + 1) / 100.0 + 6.0; + $intel = (rand()%100 + 1) / 100.0 + 6.0; + $rate = $leader + $power + $intel; + $leader = floor($leader / $rate * $total); + $power = floor($power / $rate * $total); + $intel = floor($intel / $rate * $total); + + while($leader+$power+$intel < 150) { + $leader++; + } + + return array('leader' => $leader, 'power' => $power, 'intel' => $intel); +} + +function delInDir($dir) { + $handle = opendir($dir); + while(false !== ($FolderOrFile = readdir($handle))) { + if($FolderOrFile != "." && $FolderOrFile != "..") { + if(is_dir("$dir/$FolderOrFile")) { + deldir("$dir/$FolderOrFile"); + } // recursive + else { + unlink("$dir/$FolderOrFile"); + } + } + } + closedir($handle); +// if(rmdir($dir)) { +// $success = true; +// } + return $success; +} + +function GetImageURL($imgsvr) { + global $image, $image1; + if($imgsvr == 0) { + return $image; + } else { + return $image1; + } +} + +function CheckLogin($type=0) { + if($_SESSION[p_id] == "") { + if($type == 0) { echo ""; } + else { echo ""; } + exit(); + } +} + +function checkLimit($userlevel, $con, $conlimit) { + //운영자 + if($userlevel >= 5) { return 0; } + //특회이면 3배 + if($userlevel >= 3) { $conlimit *= 3; } + //접속률 이상이면 제한 + if($con > $conlimit) { + return 2; + //접속제한 90%이면 경고문구 + } elseif($con > $conlimit * 0.9) { + return 1; + } else { + return 0; + } +} + +function bar($per, $skin=1, $h=7) { + global $images; + if($h == 7) { $bd = 0; $h = 7; $h2 = 5; } + else { $bd = 1; $h = 12; $h2 = 8; } + + $per = round($per, 1); + if($per < 1 || $per > 99) { $per = round($per); } + $str1 = " "; + $str2 = " "; + if($per <= 0) { $str1 = ""; } + elseif($per >= 100) { $str2 = ""; } + if($skin == 0) { + $str = "-"; + } else { + $str = " + + {$str1}{$str2} +
"; + } + return $str; +} + +function printLimitMsg($turntime) { + echo " + + +접속제한 + + +"; +require('analytics.php'); +echo " + + + +접속 제한중입니다. 1턴 이내에 너무 많은 갱신을 하셨습니다. (다음 접속 가능 시각 : {$turntime})
+(자신의 턴이 되면 다시 접속 가능합니다. 당신의 건강을 위해 잠시 쉬어보시는 것은 어떨까요? ^^)
+
+ + +"; +} +// (자신의 턴이 되면 다시 접속 가능합니다. 제한량을 늘리기 위해 참여해주세요! 참여게시판 참고.)
+ +function getScenario($connect) { + $query = "select scenario from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + switch($admin[scenario]) { + case 0: $str = "공백지모드"; break; + case 1: $str = "역사모드1 : 184년 황건적의 난"; break; + case 2: $str = "역사모드2 : 190년 반동탁연합"; break; + case 3: $str = "역사모드3 : 194년 군웅할거"; break; + case 4: $str = "역사모드4 : 196년 황제는 허도로"; break; + case 5: $str = "역사모드5 : 200년 관도대전"; break; + case 6: $str = "역사모드6 : 202년 원가의 분열"; break; + case 7: $str = "역사모드7 : 207년 적벽대전"; break; + case 8: $str = "역사모드8 : 213년 익주 공방전"; break; + case 9: $str = "역사모드9 : 219년 삼국정립"; break; + case 10: $str = "역사모드10 : 225년 칠종칠금"; break; + case 11: $str = "역사모드11 : 228년 출사표"; break; + + case 12: $str = "IF모드1 : 191년 백마장군의 위세"; break; + + case 20: $str = "가상모드1 : 180년 영웅 난무"; break; + case 21: $str = "가상모드1 : 180년 영웅 집결"; break; + case 22: $str = "가상모드2 : 179년 훼신 집결"; break; + case 23: $str = "가상모드3 : 180년 영웅 시대"; break; + case 24: $str = "가상모드4 : 180년 결사항전"; break; + case 25: $str = "가상모드5 : 180년 영웅독존"; break; + case 26: $str = "가상모드6 : 180년 무풍지대"; break; + case 27: $str = "가상모드7 : 180년 가요대잔치"; break; + case 28: $str = "가상모드8 : 180년 확산성 밀리언 아서"; break; + default: $str = "시나리오?"; break; + } + return $str; +} + +function CheckBlock($connect) { + $query = "select block from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + return $me[block]; +} + +function NationCharCall($call) { + switch($call) { + case "명가": $type =13; break; + case "음양가": $type =12; break; + case "종횡가": $type =11; break; + case "불가": $type =10; break; + case "도적": $type = 9; break; + case "오두미도":$type = 8; break; + case "태평도": $type = 7; break; + case "도가": $type = 6; break; + case "묵가": $type = 5; break; + case "덕가": $type = 4; break; + case "병가": $type = 3; break; + case "유가": $type = 2; break; + case "법가": $type = 1; break; + default: $type = 0; break; + } + return $type; +} + +function getRandGenName() { + $first = array('가', '간', '감', '강', '고', '공', '공손', '곽', '관', '괴', '교', '금', '노', '뇌', '능', '도', '동', '두', + '등', '마', '맹', '문', '미', '반', '방', '부', '비', '사', '사마', '서', '설', '성', '소', '손', '송', '순', '신', '심', + '악', '안', '양', '엄', '여', '염', '오', '왕', '요', '우', '원', '위', '유', '육', '윤', '이', '장', '저', '전', '정', + '제갈', '조', '종', '주', '진', '채', '태사', '하', '하후', '학', '한', '향', '허', '호', '화', '황', + '공손', '손', '왕', '유', '장', '조'); + $last = array('가', '간', '강', '거', '건', '검', '견', '경', '공', '광', '권', '규', '녕', '단', '대', '도', '등', '람', + '량', '례', '로', '료', '모', '민', '박', '범', '보', '비', '사', '상', '색', '서', '소', '속', '송', '수', '순', '습', + '승', '양', '연', '영', '온', '옹', '완', '우', '웅', '월', '위', '유', '윤', '융', '이', '익', '임', '정', '제', '조', + '주', '준', '지', '찬', '책', '충', '탁', '택', '통', '패', '평', '포', '합', '해', '혁', '현', '화', '환', '회', '횡', + '후', '훈', '휴', '흠', '흥'); + + $firstname = $first[rand()%count($first)]; + $lastname = $last[rand()%count($last)]; + + $fullname = "{$firstname}{$lastname}"; + return $fullname; +} + +function CityNameArray() { + $cityNames = array( + "","업","허창","낙양","장안","성도","양양","건업","북평","남피","완","수춘","서주","강릉","장사", + "시상","위례","계","복양","진류","여남","하비","서량","하내","한중","상용","덕양","강주","건녕", + "남해","계양","오","평양","사비","계림","진양","평원","북해","초","패","천수","안정","홍농", + "하변","자동","영안","귀양","주시","운남","남영","교지","신야","강하","무릉","영릉","상동","여강", + "회계","고창","대","안평","졸본","이도","강","저","흉노","남만","산월","오환","왜","호관", + "호로","사곡","함곡","사수","양평","가맹","역경","계교","동황","관도","정도","합비","광릉","적도", + "가정","기산","면죽","이릉","장판","백랑","적벽","파양","탐라","유구" + ); + return $cityNames; +} + +function CityCall($call) { + switch($call) { + case "업": $type = 1; break; case "허창": $type = 2; break; + case "낙양": $type = 3; break; case "장안": $type = 4; break; + case "성도": $type = 5; break; case "양양": $type = 6; break; + case "건업": $type = 7; break; case "북평": $type = 8; break; + case "남피": $type = 9; break; case "완": $type = 10; break; + case "수춘": $type = 11; break; case "서주": $type = 12; break; + case "강릉": $type = 13; break; case "장사": $type = 14; break; + case "시상": $type = 15; break; case "위례": $type = 16; break; + case "계": $type = 17; break; case "복양": $type = 18; break; + case "진류": $type = 19; break; case "여남": $type = 20; break; + case "하비": $type = 21; break; case "서량": $type = 22; break; + case "하내": $type = 23; break; case "한중": $type = 24; break; + case "상용": $type = 25; break; case "덕양": $type = 26; break; + case "강주": $type = 27; break; case "건녕": $type = 28; break; + case "남해": $type = 29; break; case "계양": $type = 30; break; + case "오": $type = 31; break; case "평양": $type = 32; break; + case "사비": $type = 33; break; case "계림": $type = 34; break; + case "진양": $type = 35; break; case "평원": $type = 36; break; + case "북해": $type = 37; break; case "초": $type = 38; break; + case "패": $type = 39; break; case "천수": $type = 40; break; + case "안정": $type = 41; break; case "홍농": $type = 42; break; + case "하변": $type = 43; break; case "자동": $type = 44; break; + case "영안": $type = 45; break; case "귀양": $type = 46; break; + case "주시": $type = 47; break; case "운남": $type = 48; break; + case "남영": $type = 49; break; case "교지": $type = 50; break; + case "신야": $type = 51; break; case "강하": $type = 52; break; + case "무릉": $type = 53; break; case "영릉": $type = 54; break; + case "상동": $type = 55; break; case "여강": $type = 56; break; + case "회계": $type = 57; break; case "고창": $type = 58; break; + case "대": $type = 59; break; case "안평": $type = 60; break; + case "졸본": $type = 61; break; case "이도": $type = 62; break; + case "강": $type = 63; break; case "저": $type = 64; break; + case "흉노": $type = 65; break; case "남만": $type = 66; break; + case "산월": $type = 67; break; case "오환": $type = 68; break; + case "왜": $type = 69; break; case "호관": $type = 70; break; + case "호로": $type = 71; break; case "사곡": $type = 72; break; + case "함곡": $type = 73; break; case "사수": $type = 74; break; + case "양평": $type = 75; break; case "가맹": $type = 76; break; + case "역경": $type = 77; break; case "계교": $type = 78; break; + case "동황": $type = 79; break; case "관도": $type = 80; break; + case "정도": $type = 81; break; case "합비": $type = 82; break; + case "광릉": $type = 83; break; case "적도": $type = 84; break; + case "가정": $type = 85; break; case "기산": $type = 86; break; + case "면죽": $type = 87; break; case "이릉": $type = 88; break; + case "장판": $type = 89; break; case "백랑": $type = 90; break; + case "적벽": $type = 91; break; case "파양": $type = 92; break; + case "탐라": $type = 93; break; case "유구": $type = 94; break; + } + return $type; +} + +function CityNum($num) { + switch($num) { + case 1: $call = "업" ; break; case 2: $call = "허창"; break; + case 3: $call = "낙양"; break; case 4: $call = "장안"; break; + case 5: $call = "성도"; break; case 6: $call = "양양"; break; + case 7: $call = "건업"; break; case 8: $call = "북평"; break; + case 9: $call = "남피"; break; case 10: $call = "완" ; break; + case 11: $call = "수춘"; break; case 12: $call = "서주"; break; + case 13: $call = "강릉"; break; case 14: $call = "장사"; break; + case 15: $call = "시상"; break; case 16: $call = "위례"; break; + case 17: $call = "계" ; break; case 18: $call = "복양"; break; + case 19: $call = "진류"; break; case 20: $call = "여남"; break; + case 21: $call = "하비"; break; case 22: $call = "서량"; break; + case 23: $call = "하내"; break; case 24: $call = "한중"; break; + case 25: $call = "상용"; break; case 26: $call = "덕양"; break; + case 27: $call = "강주"; break; case 28: $call = "건녕"; break; + case 29: $call = "남해"; break; case 30: $call = "계양"; break; + case 31: $call = "오" ; break; case 32: $call = "평양"; break; + case 33: $call = "사비"; break; case 34: $call = "계림"; break; + case 35: $call = "진양"; break; case 36: $call = "평원"; break; + case 37: $call = "북해"; break; case 38: $call = "초" ; break; + case 39: $call = "패" ; break; case 40: $call = "천수"; break; + case 41: $call = "안정"; break; case 42: $call = "홍농"; break; + case 43: $call = "하변"; break; case 44: $call = "자동"; break; + case 45: $call = "영안"; break; case 46: $call = "귀양"; break; + case 47: $call = "주시"; break; case 48: $call = "운남"; break; + case 49: $call = "남영"; break; case 50: $call = "교지"; break; + case 51: $call = "신야"; break; case 52: $call = "강하"; break; + case 53: $call = "무릉"; break; case 54: $call = "영릉"; break; + case 55: $call = "상동"; break; case 56: $call = "여강"; break; + case 57: $call = "회계"; break; case 58: $call = "고창"; break; + case 59: $call = "대" ; break; case 60: $call = "안평"; break; + case 61: $call = "졸본"; break; case 62: $call = "이도"; break; + case 63: $call = "강" ; break; case 64: $call = "저" ; break; + case 65: $call = "흉노"; break; case 66: $call = "남만"; break; + case 67: $call = "산월"; break; case 68: $call = "오환"; break; + case 69: $call = "왜" ; break; case 70: $call = "호관"; break; + case 71: $call = "호로"; break; case 72: $call = "사곡"; break; + case 73: $call = "함곡"; break; case 74: $call = "사수"; break; + case 75: $call = "양평"; break; case 76: $call = "가맹"; break; + case 77: $call = "역경"; break; case 78: $call = "계교"; break; + case 79: $call = "동황"; break; case 80: $call = "관도"; break; + case 81: $call = "정도"; break; case 82: $call = "합비"; break; + case 83: $call = "광릉"; break; case 84: $call = "적도"; break; + case 85: $call = "가정"; break; case 86: $call = "기산"; break; + case 87: $call = "면죽"; break; case 88: $call = "이릉"; break; + case 89: $call = "장판"; break; case 90: $call = "백랑"; break; + case 91: $call = "적벽"; break; case 92: $call = "파양"; break; + case 93: $call = "탐라"; break; case 94: $call = "유구"; break; + } + return $call; +} + +function CharCall($call) { + switch($call) { + case "은둔": $type =10; break; + case "안전"; $type = 9; break; + case "유지"; $type = 8; break; + case "재간"; $type = 7; break; + case "출세"; $type = 6; break; + case "할거"; $type = 5; break; + case "정복"; $type = 4; break; + case "패권"; $type = 3; break; + case "의협"; $type = 2; break; + case "대의"; $type = 1; break; + case "왕좌"; $type = 0; break; + } + return $type; +} + +function SpecCall($call) { + switch($call) { + case "-": $type = 0; break; + case "경작": $type = 1; break; + case "상재": $type = 2; break; + case "발명": $type = 3; break; + + case "축성": $type = 10; break; + case "수비": $type = 11; break; + case "통찰": $type = 12; break; + + case "인덕": $type = 20; break; + + case "거상": $type = 30; break; + case "귀모": $type = 31; break; + + case "귀병": $type = 40; break; + case "신산": $type = 41; break; + case "환술": $type = 42; break; + case "집중": $type = 43; break; + case "신중": $type = 44; break; + case "반계": $type = 45; break; + + case "보병": $type = 50; break; + case "궁병": $type = 51; break; + case "기병": $type = 52; break; + case "공성": $type = 53; break; + + case "돌격": $type = 60; break; + case "무쌍": $type = 61; break; + case "견고": $type = 62; break; + case "위압": $type = 63; break; + + case "저격": $type = 70; break; + case "필살": $type = 71; break; + case "징병": $type = 72; break; + case "의술": $type = 73; break; + case "격노": $type = 74; break; + case "척사": $type = 75; break; + } + return $type; +} + +// 0 1 2 3 4 5 6 7 +// 0 -, 경작, 상재, 발명 = 3 지력내정 +// 10 축성, 수비, 통찰 = 3 무력내정 +// 20 인덕 = 1 통솔내정 +// 30 거상, 귀모 = 2 공통내정 + +function getSpecial($connect, $leader, $power, $intel) { + //통장 + if($leader*0.9 > $power && $leader*0.9 > $intel) { + $type = array(20, 30, 31); + $special = $type[rand()%3]; + // 거상, 귀모는 33% * 6% = 2% + if(($special == 30 || $special == 31) && rand()%100 > 6) { + $type = array(20, 20); + $special = $type[rand()%2]; + } + //무장 + } elseif($power >= $intel) { + $type = array(10, 11, 12, 30, 31); + $special = $type[rand()%5]; + // 거상, 귀모는 그중에 20% * 10% = 2% + if(($special == 30 || $special == 31) && rand()%100 > 10) { + $type = array(10, 11, 12); + $special = $type[rand()%3]; + } + //지장 + } elseif($intel > $power) { + $type = array(1, 2, 3, 30, 31); + $special = $type[rand()%5]; + // 거상, 귀모는 그중에 20% * 10% = 2% + if(($special == 30 || $special == 31) && rand()%100 > 10) { + $type = array(1, 2, 3); + $special = $type[rand()%3]; + } + } else { + $type = array(30, 31); + $special = $type[rand()%2]; + } + return $special; +} + +// 0 1 2 3 4 5 6 7 +// 40 귀병, 신산, 환술, 집중, 신중, 반계 = 6 지력전투 +// 50 보병, 궁병, 기병, 공성 = 4 무력전투 +// 60 돌격, 무쌍, 견고, 위압 = 4 무장전투 +// 70 저격, 필살, 징병, 의술, 격노, 척사 = 6 공통전투 + +function getSpecial2($connect, $leader, $power, $intel, $nodex=1, $dex0=0, $dex10=0, $dex20=0, $dex30=0, $dex40=0) { + $special2 = 70; + // 숙련 10,000: 25%, 40,000: 50%, 100,000: 79%, 160,000: 100% + $dex = sqrt($dex0 + $dex10 + $dex20 + $dex30 + $dex40); + $dex = round($dex / 4); + // 숙련 10,000: 75%, 40,000: 50%, 100,000: 21%, 160,000: 0% + // 그중 20%만 + if($nodex == 0 && rand()%100 < 20 && rand()%100 > $dex) { + if(max($dex0, $dex10, $dex20, $dex30, $dex40) == $dex0) { + $special2 = 50; + // 숙련이 아얘 없을시 재분배 + if($dex0 <= 0) { + if($power >= $intel) { + $special2 = 50 + rand()%4; + } else { + $special2 = 40; + } + } + } elseif(max($dex0, $dex10, $dex20, $dex30, $dex40) == $dex10) { + $special2 = 51; + } elseif(max($dex0, $dex10, $dex20, $dex30, $dex40) == $dex20) { + $special2 = 52; + } elseif(max($dex0, $dex10, $dex20, $dex30, $dex40) == $dex30) { + $special2 = 40; + } elseif(max($dex0, $dex10, $dex20, $dex30, $dex40) == $dex40) { + $special2 = 53; + } + //무장 + } elseif($power >= $intel) { + $type = array(60, 61, 62, 63, 70, 71, 72, 73, 74, 75); + $special2 = $type[rand()%10]; + // 의술은 그중에 10% * 20% = 2% + if(($special2 == 73) && rand()%100 > 20) { + $type = array(60, 61, 62, 63, 70, 71, 72, 74, 75); + $special2 = $type[rand()%9]; + } + //지장 + } elseif($intel > $power) { + $type = array(41, 42, 43, 44, 45, 70, 71, 72, 73, 74, 75); + $special2 = $type[rand()%11]; + // 환술은 그중에 9% * 50% = 4.5% + if(($special2 == 42) && rand()%100 > 50) { + $type = array(41, 43, 44, 45, 70, 71, 72, 74, 75); + $special2 = $type[rand()%9]; + } + // 의술은 그중에 9% * 20% = 1.8% + if(($special2 == 73) && rand()%100 > 20) { + $type = array(41, 42, 43, 44, 45, 70, 71, 72, 74, 75); + $special2 = $type[rand()%10]; + } + } else { + $type = array(70, 71, 72, 73, 74, 75); + $special2 = $type[rand()%6]; + } + return $special2; +} + +function getConnect($con) { + if($con < 50) $conname = "안함"; + elseif($con < 100) $conname = "무관심"; + elseif($con < 200) $conname = "가끔"; + elseif($con < 400) $conname = "보통"; + elseif($con < 800) $conname = "자주"; + elseif($con < 1600) $conname = "열심"; + elseif($con < 3200) $conname = "중독"; + elseif($con < 6400) $conname = "폐인"; + elseif($con < 12800) $conname = "경고"; + else $conname = "헐..."; + + return $conname; +} + +function getCityLevel($level) { + switch($level) { + case 8: $call = "특"; break; + case 7: $call = "대"; break; + case 6: $call = "중"; break; + case 5: $call = "소"; break; + case 4: $call = "이"; break; + case 3: $call = "관"; break; + case 2: $call = "진"; break; + case 1: $call = "수"; break; + default:$call = "?"; break; + } + return $call; +} + +function getRegion($region) { + switch($region) { + case 8: $call = "동이"; break; + case 7: $call = "오월"; break; + case 6: $call = "초"; break; + case 5: $call = "남중"; break; + case 4: $call = "서촉"; break; + case 3: $call = "서북"; break; + case 2: $call = "중원"; break; + case 1: $call = "하북"; break; + default:$call = "?"; break; + } + return $call; +} + +function getNationChiefLevel($level) { + switch($level) { + case 7: $lv = 5; break; + case 6: $lv = 5; break; + case 5: $lv = 7; break; + case 4: $lv = 7; break; + case 3: $lv = 9; break; + case 2: $lv = 9; break; + case 1: $lv = 11; break; + case 0: $lv = 11; break; + } + return $lv; +} + +function getNationLevel($level) { + switch($level) { + case 7: $call = "황제"; break; + case 6: $call = "왕"; break; + case 5: $call = "공"; break; + case 4: $call = "주목"; break; + case 3: $call = "주자사"; break; + case 2: $call = "군벌"; break; + case 1: $call = "호족"; break; + case 0: $call = "방랑군"; break; + } + return $call; +} + +function getGenChar($type) { + switch($type) { + case 10: $call = "은둔"; break; + case 9: $call = "안전"; break; + case 8: $call = "유지"; break; + case 7: $call = "재간"; break; + case 6: $call = "출세"; break; + case 5: $call = "할거"; break; + case 4: $call = "정복"; break; + case 3: $call = "패권"; break; + case 2: $call = "의협"; break; + case 1: $call = "대의"; break; + case 0: $call = "왕좌"; break; + } + return $call; +} + +function getGenSpecial($type) { + switch($type) { + case 0: $call = "-"; break; + case 1: $call = "경작"; break; + case 2: $call = "상재"; break; + case 3: $call = "발명"; break; + + case 10: $call = "축성"; break; + case 11: $call = "수비"; break; + case 12: $call = "통찰"; break; + + case 20: $call = "인덕"; break; + + case 30: $call = "거상"; break; + case 31: $call = "귀모"; break; + + case 40: $call = "귀병"; break; + case 41: $call = "신산"; break; + case 42: $call = "환술"; break; + case 43: $call = "집중"; break; + case 44: $call = "신중"; break; + case 45: $call = "반계"; break; + + case 50: $call = "보병"; break; + case 51: $call = "궁병"; break; + case 52: $call = "기병"; break; + case 53: $call = "공성"; break; + + case 60: $call = "돌격"; break; + case 61: $call = "무쌍"; break; + case 62: $call = "견고"; break; + case 63: $call = "위압"; break; + + case 70: $call = "저격"; break; + case 71: $call = "필살"; break; + case 72: $call = "징병"; break; + case 73: $call = "의술"; break; + case 74: $call = "격노"; break; + case 75: $call = "척사"; break; + } + return $call; +} + +function getNationType($type) { + switch($type) { + case 13: $call = "명 가"; break; + case 12: $call = "음 양 가"; break; + case 11: $call = "종 횡 가"; break; + case 10: $call = "불 가"; break; + case 9: $call = "도 적"; break; + case 8: $call = "오 두 미 도"; break; + case 7: $call = "태 평 도"; break; + case 6: $call = "도 가"; break; + case 5: $call = "묵 가"; break; + case 4: $call = "덕 가"; break; + case 3: $call = "병 가"; break; + case 2: $call = "유 가"; break; + case 1: $call = "법 가"; break; + case 0: $call = "-"; break; + } + return $call; +} + +function getNationType2($type, $skin) { + switch($type) { + case 13: $call = "기술↑ 인구↑ 쌀수입↓ 수성↓"; break; + case 12: $call = "내정↑ 인구↑ 기술↓ 전략↓"; break; + case 11: $call = "전략↑ 수성↑ 금수입↓ 내정↓"; break; + case 10: $call = "민심↑ 수성↑ 금수입↓"; break; + case 9: $call = "계략↑ 금수입↓ 치안↓ 민심↓"; break; + case 8: $call = "쌀수입↑ 인구↑ 기술↓ 수성↓ 내정↓"; break; + case 7: $call = "인구↑ 민심↑ 기술↓ 수성↓"; break; + case 6: $call = "인구↑ 기술↓ 치안↓"; break; + case 5: $call = "수성↑ 기술↓"; break; + case 4: $call = "치안↑인구↑ 민심↑ 쌀수입↓ 수성↓"; break; + case 3: $call = "기술↑ 수성↑ 인구↓ 민심↓"; break; + case 2: $call = "내정↑ 민심↑ 쌀수입↓"; break; + case 1: $call = "금수입↑ 치안↑ 인구↓ 민심↓"; break; + case 0: $call = "-"; break; + } + if($skin == 0) { + $call = str_replace("","", $call); + $call = str_replace("","", $call); + $call = str_replace("","", $call); + } + return $call; +} + +function getLevel($level, $nlevel=8) { + if($level >= 0 && $level <= 4) { $nlevel = 0; } + $code = $nlevel * 100 + $level; + switch($code) { + case 812: $call = "군주"; break; + case 811: $call = "참모"; break; + case 810: $call = "제1장군"; break; + case 809: $call = "제1모사"; break; + case 808: $call = "제2장군"; break; + case 807: $call = "제2모사"; break; + case 806: $call = "제3장군"; break; + case 805: $call = "제3모사"; break; + + case 712: $call = "황제"; break; case 612: $call = "왕"; break; + case 711: $call = "승상"; break; case 611: $call = "광록훈"; break; + case 710: $call = "위장군"; break; case 610: $call = "전장군"; break; + case 709: $call = "사공"; break; case 609: $call = "상서령"; break; + case 708: $call = "표기장군"; break; case 608: $call = "좌장군"; break; + case 707: $call = "태위"; break; case 607: $call = "중서령"; break; + case 706: $call = "거기장군"; break; case 606: $call = "우장군"; break; + case 705: $call = "사도"; break; case 605: $call = "비서령"; break; + + case 512: $call = "공"; break; case 412: $call = "주목"; break; + case 511: $call = "광록대부"; break; case 411: $call = "태사령"; break; + case 510: $call = "안국장군"; break; case 410: $call = "아문장군"; break; + case 509: $call = "집금오"; break; case 409: $call = "낭중"; break; + case 508: $call = "파로장군"; break; case 408: $call = "호군"; break; + case 507: $call = "소부"; break; case 407: $call = "종사중랑"; break; + + case 312: $call = "주자사"; break; case 212: $call = "군벌"; break; + case 311: $call = "주부"; break; case 211: $call = "참모"; break; + case 310: $call = "편장군"; break; case 210: $call = "비장군"; break; + case 309: $call = "간의대부"; break; case 209: $call = "부참모"; break; + + case 112: $call = "영주"; break; case 12: $call = "두목"; break; + case 111: $call = "참모"; break; case 11: $call = "부두목"; break; + + case 4: $call = "태수"; break; + case 3: $call = "군사"; break; + case 2: $call = "시중"; break; + case 1: $call = "일반"; break; + case 0: $call = "재야"; break; + default: $call = "-"; break; + } + return $call; +} + +function getCall($leader, $power, $intel) { + global $_goodgenleader, $_goodgenpower, $_goodgenintel; + + $call = "평범"; + if($leader >= $_goodgenleader && $power >= $_goodgenpower && $intel >= $_goodgenintel) { + $call = "만능"; + } elseif($leader >= $_goodgenleader && $power >= $_goodgenpower) { + $call = "용장"; + } elseif($leader >= $_goodgenleader && $intel >= $_goodgenintel) { + $call = "지장"; + } elseif($power >= $_goodgenpower && $intel >= $_goodgenintel) { + $call = "명장"; + } elseif($leader >= $_goodgenleader) { + $call = "명사"; + } elseif($power >= $_goodgenpower) { + $call = "용맹"; + } elseif($intel >= $_goodgenintel) { + $call = "현명"; + } + return $call; +} + +function getDed($dedication) { + if($dedication < 1 ) $level2 = "무품관"; + elseif($dedication < 10*10) $level2 = "30품관"; + elseif($dedication < 20*20) $level2 = "29품관"; + elseif($dedication < 30*30) $level2 = "28품관"; + elseif($dedication < 40*40) $level2 = "27품관"; + elseif($dedication < 50*50) $level2 = "26품관"; + elseif($dedication < 60*60) $level2 = "25품관"; + elseif($dedication < 70*70) $level2 = "24품관"; + elseif($dedication < 80*80) $level2 = "23품관"; + elseif($dedication < 90*90) $level2 = "22품관"; + elseif($dedication < 100*100) $level2 = "21품관"; + elseif($dedication < 110*110) $level2 = "20품관"; + elseif($dedication < 120*120) $level2 = "19품관"; + elseif($dedication < 130*130) $level2 = "18품관"; + elseif($dedication < 140*140) $level2 = "17품관"; + elseif($dedication < 150*150) $level2 = "16품관"; + elseif($dedication < 160*160) $level2 = "15품관"; + elseif($dedication < 170*170) $level2 = "14품관"; + elseif($dedication < 180*180) $level2 = "13품관"; + elseif($dedication < 190*190) $level2 = "12품관"; + elseif($dedication < 200*200) $level2 = "11품관"; // 40000 + elseif($dedication < 210*210) $level2 = "10품관"; // 44100 + elseif($dedication < 220*220) $level2 = "9품관"; // 48400 + elseif($dedication < 230*230) $level2 = "8품관"; // 52900 + elseif($dedication < 240*240) $level2 = "7품관"; // 57600 + elseif($dedication < 250*250) $level2 = "6품관"; // 62500 + elseif($dedication < 260*260) $level2 = "5품관"; // 67600 + elseif($dedication < 270*270) $level2 = "4품관"; // 72900 + elseif($dedication < 280*280) $level2 = "3품관"; // 78400 + elseif($dedication < 290*290) $level2 = "2품관"; // 84100 + else { + $level2 = "1품관"; + } + + return $level2; +} + +function getExpLevel($experience) { + if($experience < 1000) { + $level = floor($experience / 100); + } else { + for($level = 0; $experience > (($level+1)*($level+1)*10); $level++) { + } + } + + return $level; +} + +function getDedLevel($dedication) { + for($level = 0; $dedication > (($level+1)*($level+1)*100); $level++) { + } + + return $level; +} + +function expStatus($exp) { + global $_upgradeLimit; + return $exp / $_upgradeLimit * 100; +} + +function getLevelPer($exp, $level) { + if($exp < 100) { $per = $exp; } + elseif($exp < 1000) { $per = $exp - ($level)*100; } + else { $per = ($exp - 10*$level*$level) / (2*$level+1) * 10; } + return $per; +} + +function getBill($dedication) { + for($level = 0; $dedication > (($level+1)*($level+1)*100); $level++) { + } + + return ($level * 200 + 400); +} + +function getHonor($experience) { + if($experience < 640 ) $honor = "전무"; + elseif($experience < 2560) $honor = "무명"; + elseif($experience < 5760) $honor = "신동"; + elseif($experience < 10240) $honor = "약간"; + elseif($experience < 16000) $honor = "평범"; + elseif($experience < 23040) $honor = "지역적"; + elseif($experience < 31360) $honor = "전국적"; + elseif($experience < 40960) $honor = "세계적"; + elseif($experience < 45000) $honor = "유명"; + elseif($experience < 51840) $honor = "명사"; + elseif($experience < 55000) $honor = "호걸"; + elseif($experience < 64000) $honor = "효웅"; + elseif($experience < 77440) $honor = "영웅"; + else $honor = "구세주"; + + 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 getCost($connect, $armtype) { + $query = "select cst{$armtype} from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + return $admin["cst{$armtype}"]; +} + +function TechLimit($startyear, $year, $tech) { + $limit = 0; + if($year < $startyear+ 5 && $tech >= 1000) { $limit = 1; } + if($year < $startyear+10 && $tech >= 2000) { $limit = 1; } + if($year < $startyear+15 && $tech >= 3000) { $limit = 1; } + if($year < $startyear+20 && $tech >= 4000) { $limit = 1; } + if($year < $startyear+25 && $tech >= 5000) { $limit = 1; } + if($year < $startyear+30 && $tech >= 6000) { $limit = 1; } + if($year < $startyear+35 && $tech >= 7000) { $limit = 1; } + if($year < $startyear+40 && $tech >= 8000) { $limit = 1; } + if($year < $startyear+45 && $tech >= 9000) { $limit = 1; } + if($year < $startyear+50 && $tech >= 10000) { $limit = 1; } + if($year < $startyear+55 && $tech >= 11000) { $limit = 1; } + if($year < $startyear+60 && $tech >= 12000) { $limit = 1; } + return $limit; +} + +function getTechAbil($tech) { + if($tech < 1000) { $abil = 0; } + elseif($tech < 2000) { $abil = 25; } + elseif($tech < 3000) { $abil = 50; } + elseif($tech < 4000) { $abil = 75; } + elseif($tech < 5000) { $abil = 100; } + elseif($tech < 6000) { $abil = 125; } + elseif($tech < 7000) { $abil = 150; } + elseif($tech < 8000) { $abil = 175; } + elseif($tech < 9000) { $abil = 200; } + elseif($tech < 10000) { $abil = 225; } + elseif($tech < 11000) { $abil = 250; } + elseif($tech < 12000) { $abil = 275; } + else { $abil = 300; } + return $abil; +} + +function getTechCost($tech) { + if($tech < 1000) { $cost = 1.00; } + elseif($tech < 2000) { $cost = 1.15; } + elseif($tech < 3000) { $cost = 1.30; } + elseif($tech < 4000) { $cost = 1.45; } + elseif($tech < 5000) { $cost = 1.60; } + elseif($tech < 6000) { $cost = 1.75; } + elseif($tech < 7000) { $cost = 1.90; } + elseif($tech < 8000) { $cost = 2.05; } + elseif($tech < 9000) { $cost = 2.20; } + elseif($tech < 10000) { $cost = 2.35; } + elseif($tech < 11000) { $cost = 2.50; } + elseif($tech < 12000) { $cost = 2.65; } + else { $cost = 2.80; } + return $cost; +} + +function getTechCall($tech) { + if($tech < 1000) { $str = "0등급"; } + elseif($tech < 2000) { $str = "1등급"; } + elseif($tech < 3000) { $str = "2등급"; } + elseif($tech < 4000) { $str = "3등급"; } + elseif($tech < 5000) { $str = "4등급"; } + elseif($tech < 6000) { $str = "5등급"; } + elseif($tech < 7000) { $str = "6등급"; } + elseif($tech < 8000) { $str = "7등급"; } + elseif($tech < 9000) { $str = "8등급"; } + elseif($tech < 10000) { $str = "9등급"; } + elseif($tech < 11000) { $str = "10등급"; } + elseif($tech < 12000) { $str = "11등급"; } + else { $str = "12등급"; } + return $str; +} + +function getDexCall($dex) { + if($dex < 2500) { $str = "F-"; } + elseif($dex < 7500) { $str = "F"; } + elseif($dex < 15000) { $str = "F+"; } + elseif($dex < 25000) { $str = "E-"; } + elseif($dex < 37500) { $str = "E"; } + elseif($dex < 52500) { $str = "E+"; } + elseif($dex < 70000) { $str = "D-"; } + elseif($dex < 90000) { $str = "D"; } + elseif($dex < 112500) { $str = "D+"; } + elseif($dex < 137500) { $str = "C-"; } + elseif($dex < 165000) { $str = "C"; } + elseif($dex < 195000) { $str = "C+"; } + elseif($dex < 227500) { $str = "B-"; } + elseif($dex < 262500) { $str = "B"; } + elseif($dex < 300000) { $str = "B+"; } + elseif($dex < 340000) { $str = "A-"; } + elseif($dex < 382500) { $str = "A"; } + elseif($dex < 427500) { $str = "A+"; } + elseif($dex < 475000) { $str = "S-"; } + elseif($dex < 525000) { $str = "S"; } + elseif($dex < 577500) { $str = "S+"; } + elseif($dex < 632500) { $str = "SS-"; } + elseif($dex < 690000) { $str = "SS"; } + elseif($dex < 750000) { $str = "SS+"; } + elseif($dex < 812500) { $str = "SSS-"; } + elseif($dex < 877500) { $str = "SSS"; } + elseif($dex < 945000) { $str = "SSS+"; } + elseif($dex < 1015000) { $str = "Z-"; } + elseif($dex < 1087500) { $str = "Z"; } + elseif($dex < 1162500) { $str = "Z+"; } + else { $str = "?"; } + return $str; +} + +function getDexLevel($dex) { + if($dex < 2500) { $lvl = 0; } + elseif($dex < 7500) { $lvl = 1; } + elseif($dex < 15000) { $lvl = 2; } + elseif($dex < 25000) { $lvl = 3; } + elseif($dex < 37500) { $lvl = 4; } + elseif($dex < 52500) { $lvl = 5; } + elseif($dex < 70000) { $lvl = 6; } + elseif($dex < 90000) { $lvl = 7; } + elseif($dex < 112500) { $lvl = 8; } + elseif($dex < 137500) { $lvl = 9; } + elseif($dex < 165000) { $lvl = 10; } + elseif($dex < 195000) { $lvl = 11; } + elseif($dex < 227500) { $lvl = 12; } + elseif($dex < 262500) { $lvl = 13; } + elseif($dex < 300000) { $lvl = 14; } + elseif($dex < 340000) { $lvl = 15; } + elseif($dex < 382500) { $lvl = 16; } + elseif($dex < 427500) { $lvl = 17; } + elseif($dex < 475000) { $lvl = 18; } + elseif($dex < 525000) { $lvl = 19; } + elseif($dex < 577500) { $lvl = 20; } + elseif($dex < 632500) { $lvl = 21; } + elseif($dex < 690000) { $lvl = 22; } + elseif($dex < 750000) { $lvl = 23; } + elseif($dex < 812500) { $lvl = 24; } + elseif($dex < 877500) { $lvl = 25; } + elseif($dex < 945000) { $lvl = 26; } + elseif($dex < 1015000) { $lvl = 27; } + elseif($dex < 1087500) { $lvl = 28; } + elseif($dex < 1162500) { $lvl = 29; } + else { $lvl = 30; } + return $lvl; +} + +function getDexLog($dex1, $dex2) { + $ratio = (getDexLevel($dex1) - getDexLevel($dex2)) / 50 + 1; + return $ratio; +} + +function getGenDex($general, $type) { + $type = floor($type / 10) * 10; + return $general["dex{$type}"]; +} + +function addGenDex($connect, $no, $type, $exp) { + $type = floor($type / 10) * 10; + $dexType = "dex{$type}"; + if($type == 30) { $exp = round($exp * 0.90); } //귀병은 90%효율 + elseif($type == 40) { $exp = round($exp * 0.90); } //차병은 90%효율 + + $query = "update general set {$dexType}={$dexType}+{$exp} where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function getWeapName($weap) { + switch($weap) { + case 0: $weapname = "-"; break; + case 1: $weapname = "단도(+1)"; break; + case 2: $weapname = "단궁(+2)"; break; + case 3: $weapname = "단극(+3)"; break; + case 4: $weapname = "목검(+4)"; break; + case 5: $weapname = "죽창(+5)"; break; + case 6: $weapname = "소부(+6)"; break; + + case 7: $weapname = "동추(+7)"; break; + case 8: $weapname = "철편(+7)"; break; + case 9: $weapname = "철쇄(+7)"; break; + case 10: $weapname = "맥궁(+7)"; break; + case 11: $weapname = "유성추(+8)"; break; + case 12: $weapname = "철질여골(+8)"; break; + case 13: $weapname = "쌍철극(+9)"; break; + case 14: $weapname = "동호비궁(+9)"; break; + case 15: $weapname = "삼첨도(+10)"; break; + case 16: $weapname = "대부(+10)"; break; + case 17: $weapname = "고정도(+11)"; break; + case 18: $weapname = "이광궁(+11)"; break; + case 19: $weapname = "철척사모(+12)"; break; + case 20: $weapname = "칠성검(+12)"; break; + case 21: $weapname = "사모(+13)"; break; + case 22: $weapname = "양유기궁(+13)"; break; + case 23: $weapname = "언월도(+14)"; break; + case 24: $weapname = "방천화극(+14)"; break; + case 25: $weapname = "청홍검(+15)"; break; + case 26: $weapname = "의천검(+15)"; break; + } + return $weapname; +} + +function getWeapEff($weap) { + switch($weap) { + case 7: $weap = 7; break; + case 8: $weap = 7; break; + case 9: $weap = 7; break; + case 10: $weap = 7; break; + case 11: $weap = 8; break; + case 12: $weap = 8; break; + case 13: $weap = 9; break; + case 14: $weap = 9; break; + case 15: $weap = 10; break; + case 16: $weap = 10; break; + case 17: $weap = 11; break; + case 18: $weap = 11; break; + case 19: $weap = 12; break; + case 20: $weap = 12; break; + case 21: $weap = 13; break; + case 22: $weap = 13; break; + case 23: $weap = 14; break; + case 24: $weap = 14; break; + case 25: $weap = 15; break; + case 26: $weap = 15; break; + default: break; + } + return $weap; +} + +function getBookName($book) { + switch($book) { + case 0: $bookname = "-"; break; + case 1: $bookname = "효경전(+1)"; break; + case 2: $bookname = "회남자(+2)"; break; + case 3: $bookname = "변도론(+3)"; break; + case 4: $bookname = "건상역주(+4)"; break; + case 5: $bookname = "여씨춘추(+5)"; break; + case 6: $bookname = "사민월령(+6)"; break; + + case 7: $bookname = "위료자(+7)"; break; + case 8: $bookname = "사마법(+7)"; break; + case 9: $bookname = "한서(+7)"; break; + case 10: $bookname = "논어(+7)"; break; + case 11: $bookname = "전론(+8)"; break; + case 12: $bookname = "사기(+8)"; break; + case 13: $bookname = "장자(+9)"; break; + case 14: $bookname = "역경(+9)"; break; + case 15: $bookname = "시경(+10)"; break; + case 16: $bookname = "구국론(+10)"; break; + case 17: $bookname = "상군서(+11)"; break; + case 18: $bookname = "춘추전(+11)"; break; + case 19: $bookname = "산해경(+12)"; break; + case 20: $bookname = "맹덕신서(+12)"; break; + case 21: $bookname = "관자(+13)"; break; + case 22: $bookname = "병법24편(+13)"; break; + case 23: $bookname = "한비자(+14)"; break; + case 24: $bookname = "오자병법(+14)"; break; + case 25: $bookname = "노자(+15)"; break; + case 26: $bookname = "손자병법(+15)"; break; + } + return $bookname; +} + +function getBookEff($book) { + switch($book) { + case 7: $book = 7; break; + case 8: $book = 7; break; + case 9: $book = 7; break; + case 10: $book = 7; break; + case 11: $book = 8; break; + case 12: $book = 8; break; + case 13: $book = 9; break; + case 14: $book = 9; break; + case 15: $book = 10; break; + case 16: $book = 10; break; + case 17: $book = 11; break; + case 18: $book = 11; break; + case 19: $book = 12; break; + case 20: $book = 12; break; + case 21: $book = 13; break; + case 22: $book = 13; break; + case 23: $book = 14; break; + case 24: $book = 14; break; + case 25: $book = 15; break; + case 26: $book = 15; break; + default: break; + } + return $book; +} + +function getHorseName($horse) { + switch($horse) { + case 0: $horsename = "-"; break; + case 1: $horsename = "노기(+1)"; break; + case 2: $horsename = "조랑(+2)"; break; + case 3: $horsename = "노새(+3)"; break; + case 4: $horsename = "나귀(+4)"; break; + case 5: $horsename = "갈색마(+5)"; break; + case 6: $horsename = "흑색마(+6)"; break; + + case 7: $horsename = "백마(+7)"; break; + case 8: $horsename = "백마(+7)"; break; + case 9: $horsename = "기주마(+7)"; break; + case 10: $horsename = "기주마(+7)"; break; + case 11: $horsename = "양주마(+8)"; break; + case 12: $horsename = "양주마(+8)"; break; + case 13: $horsename = "과하마(+9)"; break; + case 14: $horsename = "과하마(+9)"; break; + case 15: $horsename = "대완마(+10)"; break; + case 16: $horsename = "대완마(+10)"; break; + case 17: $horsename = "서량마(+11)"; break; + case 18: $horsename = "서량마(+11)"; break; + case 19: $horsename = "사륜거(+12)"; break; + case 20: $horsename = "사륜거(+12)"; break; + case 21: $horsename = "절영(+13)"; break; + case 22: $horsename = "적로(+13)"; break; + case 23: $horsename = "적란마(+14)"; break; + case 24: $horsename = "조황비전(+14)"; break; + case 25: $horsename = "한혈마(+15)"; break; + case 26: $horsename = "적토마(+15)"; break; + } + return $horsename; +} + +function getHorseEff($horse) { + switch($horse) { + case 7: $horse = 7; break; + case 8: $horse = 7; break; + case 9: $horse = 7; break; + case 10: $horse = 7; break; + case 11: $horse = 8; break; + case 12: $horse = 8; break; + case 13: $horse = 9; break; + case 14: $horse = 9; break; + case 15: $horse = 10; break; + case 16: $horse = 10; break; + case 17: $horse = 11; break; + case 18: $horse = 11; break; + case 19: $horse = 12; break; + case 20: $horse = 12; break; + case 21: $horse = 13; break; + case 22: $horse = 13; break; + case 23: $horse = 14; break; + case 24: $horse = 14; break; + case 25: $horse = 15; break; + case 26: $horse = 15; break; + default: break; + } + return $horse; +} + +function getItemName($item) { + switch($item) { + case 0: $itemname = "-"; break; + case 1: $itemname = "환약(치료)"; break; + case 2: $itemname = "수극(저격)"; break; + case 3: $itemname = "탁주(사기)"; break; + case 4: $itemname = "청주(훈련)"; break; + case 5: $itemname = "이추(계략)"; break; + case 6: $itemname = "향낭(계략)"; break; + + case 7: $itemname = "오석산(치료)"; break; + case 8: $itemname = "무후행군(치료)"; break; + case 9: $itemname = "도소연명(치료)"; break; + case 10: $itemname = "칠엽청점(치료)"; break; + case 11: $itemname = "정력견혈(치료)"; break; + case 12: $itemname = "과실주(훈련)"; break; + case 13: $itemname = "이강주(훈련)"; break; + case 14: $itemname = "의적주(사기)"; break; + case 15: $itemname = "두강주(사기)"; break; + case 16: $itemname = "보령압주(사기)"; break; + case 17: $itemname = "철벽서(훈련)"; break; + case 18: $itemname = "단결도(훈련)"; break; + case 19: $itemname = "춘화첩(사기)"; break; + case 20: $itemname = "초선화(사기)"; break; + case 21: $itemname = "육도(계략)"; break; + case 22: $itemname = "삼략(계략)"; break; + case 23: $itemname = "청낭서(의술)"; break; + case 24: $itemname = "태평청령(의술)"; break; + case 25: $itemname = "태평요술(회피)"; break; + case 26: $itemname = "둔갑천서(회피)"; break; + } + return $itemname; +} + +function getItemCost2($weap) { + switch($weap) { + case 0: $weapcost = 0; break; + case 1: $weapcost = 100; break; + case 2: $weapcost = 1000; break; + case 3: $weapcost = 1000; break; + case 4: $weapcost = 1000; break; + case 5: $weapcost = 1000; break; + case 6: $weapcost = 3000; break; + default: $weapcost = 200; break; + } + return $weapcost; +} + +function getItemCost($weap) { + switch($weap) { + case 0: $weapcost = 0; break; + case 1: $weapcost = 1000; break; + case 2: $weapcost = 3000; break; + case 3: $weapcost = 6000; break; + case 4: $weapcost = 10000; break; + case 5: $weapcost = 15000; break; + case 6: $weapcost = 21000; break; + default: $weapcost = 200; break; + } + return $weapcost; +} + +function getTurn($connect, $general, $type, $font=1) { + $turn[0] = $general[turn0]; + + if($type >= 1) { + $turn[1] = $general[turn1]; + $turn[2] = $general[turn2]; + $turn[3] = $general[turn3]; + $turn[4] = $general[turn4]; + $turn[5] = $general[turn5]; + } + if($type >= 2) { + $turn[6] = $general[turn6]; + $turn[7] = $general[turn7]; + $turn[8] = $general[turn8]; + $turn[9] = $general[turn9]; + $turn[10] = $general[turn10]; + $turn[11] = $general[turn11]; + $turn[12] = $general[turn12]; + $turn[13] = $general[turn13]; + $turn[14] = $general[turn14]; + $turn[15] = $general[turn15]; + $turn[16] = $general[turn16]; + $turn[17] = $general[turn17]; + $turn[18] = $general[turn18]; + $turn[19] = $general[turn19]; + $turn[20] = $general[turn20]; + $turn[21] = $general[turn21]; + $turn[22] = $general[turn22]; + $turn[23] = $general[turn23]; + } + + if($type == 0) { $count = 1; } + elseif($type == 1) { $count = 5; } + elseif($type == 2) { $count = 24; } + + for($i=0; $i < $count; $i++) { + $command = DecodeCommand($turn[$i]); + + switch($command[0]) { + case 0: $str[$i] = "휴식"; break; //휴식 + case 1: $str[$i] = "농지 개간"; break; //농업 + case 2: $str[$i] = "상업 투자"; break; //상업 + case 3: $str[$i] = "기술 연구"; break; //기술 + case 4: $str[$i] = "주민 선정"; break; //선정 + case 5: $str[$i] = "수비 강화"; break; //수비 + case 6: $str[$i] = "성벽 보수"; break; //성벽 + case 7: $str[$i] = "정착 장려"; break; //정착 장려 + case 8: $str[$i] = "치안 강화"; break; //치안 + case 9: $str[$i] = "물자 조달"; break; //조달 + + case 11: //징병 + $third = getTypename($command[2]); + $double = $command[1]; + $str[$i] = "【{$third}】 {$double}00명 징병"; + break; + case 12: //모병 + $third = getTypename($command[2]); + $double = $command[1]; + $str[$i] = "【{$third}】 {$double}00명 모병"; + break; + case 13: //훈련 + $str[$i] = "훈련"; + break; + case 14: //사기진작 + $str[$i] = "사기진작"; + break; + case 15: //전투태세 + $str[$i] = "전투태세"; + break; + case 16: //전쟁 + $double = $command[1]; + $city = getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】(으)로 출병"; + break; + case 17: //소집해제 + $str[$i] = "소집 해제"; + break; + + case 21: //이동 + $double = $command[1]; + $city = getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】(으)로 이동"; + break; + case 22: //등용 + $double = $command[1]; + + $query = "select name from general where no='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $str[$i] = "【{$general[name]}】(을)를 등용"; + break; + case 25: //임관 + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if(!$nation[name]) { $nation[name] = '????'; } + + $str[$i] = "【{$nation[name]}】(으)로 임관"; + break; + case 26: //집합 + $str[$i] = "집합"; + break; + case 28: //귀환 + $str[$i] = "담당 도시로 귀환"; + break; + case 29: //인재탐색 + $str[$i] = "인재 탐색"; + break; + case 30: //강행 + $double = $command[1]; + $city = getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】(으)로 강행"; + break; + + case 31: //첩보 + $double = $command[1]; + $city= getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】에 첩보 실행"; + break; + case 32: //화계 + $double = $command[1]; + $city= getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】에 화계 실행"; + break; + case 33: //탈취 + $double = $command[1]; + $city= getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】에 탈취 실행"; + break; + case 34: //파괴 + $double = $command[1]; + $city= getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】에 파괴 실행"; + break; + case 35: //선동 + $double = $command[1]; + $city= getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】에 선동 실행"; + break; + case 36: //기습 + $double = $command[1]; + $city= getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】에 기습 실행"; + break; + + case 41: //단련 + $str[$i] = "숙련도를 단련"; + break; + case 42: //견문 + $str[$i] = "견문"; + break; + case 43: //증여 + $fourth = $command[3]; + $third = $command[2]; + $double = $command[1]; + + $query = "select name from general where no='$third'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + if($fourth == 1) { $str[$i] = "【{$general[name]}】에게 금 {$double}00을 증여"; } + else { $str[$i] = "【{$general[name]}】에게 쌀 {$double}00을 증여"; } + break; + case 44: //헌납 + $third = $command[2]; + $double = $command[1]; + + if($third == 1) { $str[$i] = "금 {$double}00을 헌납"; } + else { $str[$i] = "쌀 {$double}00을 헌납"; } + break; + case 45: //하야 + $str[$i] = "하야"; + break; + case 46: //건국 + $query = "select makenation from general where no='$general[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $str[$i] = "【{$general[makenation]}】(을)를 건국"; + break; + case 47: //방랑 + $str[$i] = "방랑"; + break; + case 48: //장비 구입 + $double = $command[1]; + if($double == 0) { + $str[$i] = "무기를 판매"; + } elseif($double == 100) { + $str[$i] = "서적을 판매"; + } elseif($double == 200) { + $str[$i] = "명마를 판매"; + } elseif($double == 300) { + $str[$i] = "도구를 판매"; + } elseif($double < 100) { + $str[$i] = "【".getWeapName($double)."】(을)를 구입"; + } elseif($double < 200) { + $str[$i] = "【".getBookName($double-100)."】(을)를 구입"; + } elseif($double < 300) { + $str[$i] = "【".getHorseName($double-200)."】(을)를 구입"; + } elseif($double < 400) { + $str[$i] = "【".getItemName($double-300)."】(을)를 구입"; + } + break; + case 49: //군량 매매 + $third = $command[2]; + $double = $command[1]; + + if($third == 1) { $str[$i] = "군량 {$double}00을 판매"; } + else { $str[$i] = "군량 {$double}00을 구입"; } + break; + case 50: //요양 + $str[$i] = "요양"; + break; + + case 54: //선양 + $double = $command[1]; + + $query = "select name from general where no='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $str[$i] = "【{$general[name]}】에게 선양"; + break; + case 55: //거병 + $str[$i] = "방랑군 결성"; + break; + case 56: //해산 + $str[$i] = "방랑군 해산"; + break; + case 57: //모반 시도 + $str[$i] = "모반 시도"; + break; + + default: + $str[$i] = "????"; + break; + } + } + + if($font == 1) { + for($i=0; $i < count($str); $i++) { + $str[$i] = getFont($str[$i]); + } + } + return $str; +} + +function getCoreTurn($connect, $nation, $level) { + $turn[0] = $nation["l{$level}turn0"]; + $turn[1] = $nation["l{$level}turn1"]; + $turn[2] = $nation["l{$level}turn2"]; + $turn[3] = $nation["l{$level}turn3"]; + $turn[4] = $nation["l{$level}turn4"]; + $turn[5] = $nation["l{$level}turn5"]; + $turn[6] = $nation["l{$level}turn6"]; + $turn[7] = $nation["l{$level}turn7"]; + $turn[8] = $nation["l{$level}turn8"]; + $turn[9] = $nation["l{$level}turn9"]; + $turn[10] = $nation["l{$level}turn10"]; + $turn[11] = $nation["l{$level}turn11"]; + + $count = 12; + for($i=0; $i < $count; $i++) { + $command = DecodeCommand($turn[$i]); + + switch($command[0]) { + case 99: //휴식 + $str[$i] = "휴식"; + break; + case 23: //포상 + $fourth = $command[3]; + $third = $command[2]; + $double = $command[1]; + + $query = "select name from general where no='$third'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + if($fourth == 1) { $str[$i] = "【{$general[name]}】에게 금 {$double}00을 포상"; } + else { $str[$i] = "【{$general[name]}】에게 쌀 {$double}00을 포상"; } + break; + case 24: //몰수 + $fourth = $command[3]; + $third = $command[2]; + $double = $command[1]; + + $query = "select name from general where no='$third'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + if($fourth == 1) { $str[$i] = "【{$general[name]}】에게서 금 {$double}00을 몰수"; } + else { $str[$i] = "【{$general[name]}】에게서 쌀 {$double}00을 몰수"; } + break; + case 27: //발령 + $third = $command[2]; + $double = $command[1]; + + $query = "select name from general where no='$third'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + $city = getCity($connect, $double, "name"); + + $str[$i] = "【{$general[name]}】【{$city[name]}】(으)로 발령"; + break; + case 51: //항복권고 + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $str[$i] = "【{$nation[name]}】에게 항복 권고"; + break; + case 52: //원조 + $fourth = $command[3]; + $third = $command[2]; + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $fourth *= 1000; + $third *= 1000; + $str[$i] = "【{$nation[name]}】에게 국고 {$third} 병량 {$fourth} 원조"; + break; + case 53: //통합제의 + $query = "select makenation from general where level='$level' and nation='$nation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $str[$i] = "【{$nation[name]}】에 【{$general[makenation]}】(으)로 통합 제의"; + break; + case 61: //불가침제의 + $third = $command[2]; + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $str[$i] = "【{$nation[name]}】에 {$third}년 불가침 제의"; + break; + case 62: //선전 포고 + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $str[$i] = "【{$nation[name]}】에 선전 포고"; + break; + case 63: //종전 제의 + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $str[$i] = "【{$nation[name]}】에 종전 제의"; + break; + case 64: //파기 제의 + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $str[$i] = "【{$nation[name]}】에 파기 제의"; + break; + case 65: //초토 + $double = $command[1]; + $city = getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】(을)를 초토화"; + break; + case 66: //천도 + $double = $command[1]; + $city = getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】(으)로 천도"; + break; + case 67: //증축 + $double = $command[1]; + $city = getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】(을)를 증축"; + break; + case 68: //감축 + $double = $command[1]; + $city = getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】(을)를 감축"; + break; + case 71: //필사즉생 + $str[$i] = "필사즉생"; + break; + case 72: //백성동원 + $double = $command[1]; + $city = getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】에 백성동원"; + break; + case 73: //수몰 + $double = $command[1]; + $city = getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】(을)를 수몰"; + break; + case 74: //허보 + $double = $command[1]; + $city = getCity($connect, $double, "name"); + $str[$i] = "【{$city[name]}】에 허보"; + break; + case 75: //피장파장 + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $str[$i] = "【{$nation[name]}】에 피장파장"; + break; + case 76: //의병모집 + $str[$i] = "의병모집"; + break; + case 77: //이호경식 + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $str[$i] = "【{$nation[name]}】에 이호경식"; + break; + case 78: //급습 + $double = $command[1]; + + $query = "select name from nation where nation='$double'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $str[$i] = "【{$nation[name]}】에 급습"; + break; + case 81: //국기변경 + $double = $command[1]; + $colors = GetNationColors(); + $color = $colors[$double]; + + $str[$i] = "【국기】를 변경"; + break; + default: + $str[$i] = "????"; + break; + } + } + + for($i=0; $i < count($str); $i++) { + $str[$i] = getFont($str[$i]); + } + + return $str; +} + +function turnTable() { + echo " + +"; +} + +function CoreTurnTable() { + echo " + +"; +} + +function cityInfo($connect) { + global $_basecolor, $_basecolor2, $images; + + $query = "select no,city,skin from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + // 도시 정보 + $city = getCity($connect, $me[city]); + + $query = "select name,color from nation where nation='$city[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $pop = $city[pop] / $city[pop2] * 100; + $rate = $city[rate]; + $agri = $city[agri] / $city[agri2] * 100; + $comm = $city[comm] / $city[comm2] * 100; + $secu = $city[secu] / $city[secu2] * 100; + $def = $city[def] / $city[def2] * 100; + $wall = $city[wall] / $city[wall2] * 100; + if($city[trade] == 0) { + $trade = 0; + $tradeStr = "상인없음"; + } else { + $trade = ($city[trade]-95) * 10; + $tradeStr = $city[trade] . "%"; + } + + if($nation[color] == "" || $me[skin] < 1) { $nation[color] = "000000"; } + echo " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
【 ".getRegion($city[region])." | ".getCityLevel($city[level])." 】 $city[name]
"; + + if($city[nation] == 0) { + echo "공 백 지"; + } else { + echo "지배 국가 【 {$nation[name]} 】"; + } + + if($city[gen1] > 0) { + $query = "select name from general where no='$city[gen1]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen1 = MYDB_fetch_array($result); + } else { + $gen1[name] = '-'; + } + + if($city[gen2] > 0) { + $query = "select name from general where no='$city[gen2]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen2 = MYDB_fetch_array($result); + } else { + $gen2[name] = '-'; + } + + if($city[gen3] > 0) { + $query = "select name from general where no='$city[gen3]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen3 = MYDB_fetch_array($result); + } else { + $gen3[name] = '-'; + } + + echo " +
주민".bar($pop, $me[skin])."민심".bar($rate, $me[skin])."태수{$gen1[name]}
{$city[pop]}/{$city[pop2]}{$city[rate]}
농업".bar($agri, $me[skin])."상업".bar($comm, $me[skin])."치안".bar($secu, $me[skin])."군사{$gen2[name]}
{$city[agri]}/{$city[agri2]}{$city[comm]}/{$city[comm2]}{$city[secu]}/{$city[secu2]}
수비".bar($def, $me[skin])."성벽".bar($wall, $me[skin])."시세".bar($trade, $me[skin])."시중{$gen3[name]}
{$city[def]}/{$city[def2]}{$city[wall]}/{$city[wall2]}{$tradeStr}
+"; +} + +function myNationInfo($connect) { + global $_basecolor, $_basecolor2, $images; + + $query = "select startyear,year from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select skin,no,nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select nation,name,color,power,msg,gold,rice,bill,rate,scout,war,tricklimit,surlimit,tech,totaltech,level,type from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select COUNT(*) as cnt, SUM(pop) as totpop, SUM(pop2) as maxpop from city where nation='$nation[nation]'"; // 도시 이름 목록 + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $query = "select COUNT(*) as cnt, SUM(crew) as totcrew,SUM(leader)*100 as maxcrew from general where nation='$nation[nation]'"; // 장수 목록 + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select name from general where nation='$nation[nation]' and level='12'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $level12 = MYDB_fetch_array($genresult); + + $query = "select name from general where nation='$nation[nation]' and level='11'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $level11 = MYDB_fetch_array($genresult); + + echo " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
【재 야】"; } + else { echo "style=font-weight:bold;font-size:13;>국가【 {$nation[name]} 】"; } + } else { + if($me[nation] == 0) { echo "style=color:white;background-color:000000;font-weight:bold;font-size:13;>【재 야】"; } + else { echo "style=color:".newColor($nation[color]).";background-color:{$nation[color]};font-weight:bold;font-size:13;>국가【 {$nation[name]} 】"; } + } + + echo " +
성 향".getNationType($nation[type])." (".getNationType2($nation[type], $me[skin]).")
".getLevel(12, $nation[level])."";echo $level12==''?"-":"$level12[name]"; echo "".getLevel(11, $nation[level])."";echo $level11==''?"-":"$level11[name]"; echo "
총주민";echo $me[nation]==0?"해당 없음":"$city[totpop]/$city[maxpop]";echo "총병사";echo $me[nation]==0?"해당 없음":"$general[totcrew]/$general[maxcrew]"; echo "
국 고";echo $me[nation]==0?"해당 없음":"$nation[gold]";echo "병 량";echo $me[nation]==0?"해당 없음":"$nation[rice]";echo "
지급율"; + if($me[nation] == 0) { + echo "해당 없음"; + } else { + echo $nation[bill]==0?"0 %":"$nation[bill] %"; + } + echo " + 세 율"; + if($me[nation] == 0) { + echo "해당 없음"; + } else { + echo $nation[rate]==0?"0 %":"$nation[rate] %"; + } + + $techCall = getTechCall($nation[tech]); + + if(TechLimit($admin[startyear], $admin[year], $nation[tech])) { $nation[tech] = "{$nation[tech]}"; } + else { $nation[tech] = "{$nation[tech]}"; } + + $nation[tech] = "$techCall / $nation[tech]"; + + if($nation[tricklimit] != 0) { $nation[tricklimit] = "$nation[tricklimit]턴"; } + else { $nation[tricklimit] = "가 능"; } + + if($nation[surlimit] != 0) { $nation[surlimit] = "$nation[surlimit]턴"; } + else { $nation[surlimit] = "가 능"; } + + if($nation[scout] != 0) { $nation[scout] = "금 지"; } + else { $nation[scout] = "허 가"; } + + if($nation[war] != 0) { $nation[war] = "금 지"; } + else { $nation[war] = "허 가"; } + + if($me[skin] == 0) { + $nation[tech] = unfont($nation[tech]); + $nation[tricklimit] = unfont($nation[tricklimit]); + $nation[surlimit] = unfont($nation[surlimit]); + $nation[scout] = unfont($nation[scout]); + $nation[war] = unfont($nation[war]); + } + + echo " +
속 령";echo $me[nation]==0?"-":"$city[cnt]"; echo "장 수";echo $me[nation]==0?"-":"$general[cnt]"; echo "
국 력$nation[power]기술력";echo $me[nation]==0?"-":"$nation[tech]"; echo "
전 략$nation[tricklimit]외 교$nation[surlimit]
임 관$nation[scout]전 쟁$nation[war]
+"; +} + +function addCommand($typename, $value, $valid = 1, $color=0) { + if($valid == 1) { + switch($color) { + case 0: + echo " + "; + break; + case 1: + echo " + "; + break; + case 2: + echo " + "; + break; + } + } else { + echo " + "; + } +} + +function commandGroup($typename, $type=0) { + if($type == 0) { + echo " + "; + } else { + echo " + "; + } +} + +function commandTable($connect) { + $query = "select startyear,year,develcost,scenario from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select no,npc,troop,city,nation,level,crew,makelimit,special from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $troop = getTroop($connect, $me[troop]); + $city = getCity($connect, $me[city]); + + $query = "select nation from nation"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($result); + + $query = "select city from city where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($result); + + $query = "select no from general where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + $query = "select type,level from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $develcost = $admin[develcost]; + $develcostA = $admin[develcost]; $colorA = 0; + $develcostB = $admin[develcost]; $colorB = 0; + $develcostC = $admin[develcost]; $colorC = 0; + $develcostD = $admin[develcost]; $colorD = 0; + $develcostE = $admin[develcost]*2; $colorE = 0; + $develcost3 = $admin[develcost]*3; + $develcost5 = $admin[develcost]*5; + + // 농상 국가보정 + if($nation[type] == 2 || $nation[type] == 12) { $develcostA *= 0.8; $colorA = 1; } + if($nation[type] == 8 || $nation[type] == 11) { $develcostA *= 1.2; $colorA = 2; } + // 기술 국가보정 + if($nation[type] == 3 || $nation[type] == 13) { $develcostB *= 0.8; $colorB = 1; } + if($nation[type] == 5 || $nation[type] == 6 || $nation[type] == 7 || $nation[type] == 8 || $nation[type] == 12) { $develcostB *= 1.2; $colorB = 2; } + // 수성 국가보정 + if($nation[type] == 3 || $nation[type] == 5 || $nation[type] == 10 || $nation[type] == 11) { $develcostC *= 0.8; $colorC = 1; } + if($nation[type] == 4 || $nation[type] == 7 || $nation[type] == 8 || $nation[type] == 13) { $develcostC *= 1.2; $colorC = 2; } + // 치안 국가보정 + if($nation[type] == 1 || $nation[type] == 4) { $develcostD *= 0.8; $colorD = 1; } + if($nation[type] == 6 || $nation[type] == 9) { $develcostD *= 1.2; $colorD = 2; } + // 민심,정착장려 국가보정 + if($nation[type] == 2 || $nation[type] == 4 || $nation[type] == 7 || $nation[type] == 10) { $develcostE *= 0.8; $colorE = 1; } + if($nation[type] == 1 || $nation[type] == 3 || $nation[type] == 9) { $develcostE *= 1.2; $colorE = 2; } + + $develcostA = round($develcostA); + $develcostB = round($develcostB); + $develcostC = round($develcostC); + $develcostD = round($develcostD); + $develcostE = round($develcostE); + + echo " + +"; +} + +function CoreCommandTable($connect) { + $query = "select develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select no,nation,city,level from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select level,colset from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select no from general where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + + $query = "select supply from city where city='$me[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + if($nation[level] > 0) { $valid = 1; } + else { $valid = 0; } + if($city[supply] == 0) { $valid = 0; } + + echo " + +"; +} + +function commandButton($connect) { + global $_basecolor, $_basecolor2; + + $query = "select skin,no,nation,level,belong from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select nation,color,secretlimit from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($nation[color] == "" || $me[skin] < 1) { $nation[color] = "000000"; } + + echo " + + "; + + if($me[level] >= 1) { echo ""; } + else { echo ""; } + if($me[level] >= 5) { echo ""; } + else { echo ""; } + if($me[level] >= 1) { echo ""; } + else { echo ""; } + if($me[level] >= 1) { echo ""; } + else { echo ""; } + if($me[level] >= 2 || ($me[level] == 1 && $me[belong] >= $nation[secretlimit])) { echo ""; } + else { echo ""; } + if($me[level] >= 2 || ($me[level] == 1 && $me[belong] >= $nation[secretlimit])) { echo ""; } + else { echo ""; } + if($me[level] >= 2 || ($me[level] == 1 && $me[belong] >= $nation[secretlimit])) { echo ""; } + else { echo ""; } + echo ""; + echo ""; + echo " + +
【회 의 실】【기 밀 실】【부대 편성】【인 사 부】【내 무 부】【사 령 부】【암 행 부】
"; + + echo " + + "; + + if($me[level] >= 1) { echo ""; } + else { echo ""; } + if($me[level] >= 1) { echo ""; } + else { echo ""; } + if($me[level] >= 1) { echo ""; } + else { echo ""; } + if($me[level] >= 1) { echo ""; } + else { echo ""; } + echo ""; + echo ""; + if($me[level] >= 2 || ($me[level] == 1 && $me[belong] >= $nation[secretlimit])) { echo ""; } + else { echo ""; } + echo ""; + echo ""; + echo " + +
【세력 정보】【세력 도시】【세력 장수】【국 법】【감 찰 부】
"; +} + +function myInfo($connect) { + $query = "select no,skin from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + generalInfo($connect, $me[no], $me[skin]); +} + +function generalInfo($connect, $no, $skin) { + global $_basecolor, $_basecolor2, $image, $images; + + $query = "select img from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select skin from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select block,userlevel,no,name,picture,imgsvr,injury,nation,city,troop,leader,leader2,power,power2,intel,intel2,explevel,experience,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,killturn,age,personal,special,specage,special2,specage2,mode,con,connect from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select nation,level,color from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + if($lbonus > 0) { + $lbonus = "+{$lbonus}"; + } else { + $lbonus = ""; + } + + $troop = getTroop($connect, $general[troop]); + + $level = getLevel($general[level], $nation[level]); + if($general[level] == 2) { + $query = "select name from city where gen3='$general[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + $level = $city[name]." ".$level; + } elseif($general[level] == 3) { + $query = "select name from city where gen2='$general[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + $level = $city[name]." ".$level; + } elseif($general[level] == 4) { + $query = "select name from city where gen1='$general[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + $level = $city[name]." ".$level; + } + $call = getCall($general[leader], $general[power], $general[intel]); + $typename = getTypename($general[crewtype]); + $weapname = getWeapName($general[weap]); + $bookname = getBookName($general[book]); + $horsename = getHorseName($general[horse]); + $itemname = getItemName($general[item]); + if($general[injury] > 0) { + $leader = floor($general[leader] * (100 - $general[injury])/100); + $power = floor($general[power] * (100 - $general[injury])/100); + $intel = floor($general[intel] * (100 - $general[injury])/100); + } else { + $leader = $general[leader]; + $power = $general[power]; + $intel = $general[intel]; + } + if($general[injury] > 60) { $color = ""; $injury = "위독"; } + elseif($general[injury] > 40) { $color = ""; $injury = "심각"; } + elseif($general[injury] > 20) { $color = ""; $injury = "중상"; } + elseif($general[injury] > 0) { $color = ""; $injury = "경상"; } + else { $color = ""; $injury = "건강"; } + + $remaining = substr($general[turntime], 14, 2) - date('i'); + if($remaining < 0) { $remaining = 60 + $remaining; } + + if($general[userlevel] > 2) { $specUser = "특별"; } + else { $specUser = "일반"; } + if($general[block] > 0) { $specUser = "블럭"; } + $specUser = ''; + + if($nation[color] == "" || $skin < 1) { $nation[color] = "000000"; } + + if($general[age] < 60) { $general[age] = "$general[age] 세"; } + elseif($general[age] < 80) { $general[age] = "$general[age] 세"; } + else { $general[age] = "$general[age] 세"; } + + $general[connect] = round($general[connect] / 10, 0) * 10; + $special = $general[special] == 0 ? "{$general[specage]}세" : "".getGenSpecial($general[special]).""; + $special2 = $general[special2] == 0 ? "{$general[specage2]}세" : "".getGenSpecial($general[special2]).""; + + switch($general[personal]) { + case 2: case 4: + $atmos = "{$general[atmos]} (+5)"; break; + case 0: case 9: case 10: + $atmos = "{$general[atmos]} (-5)"; break; + default: + $atmos = "$general[atmos]"; break; + } + switch($general[personal]) { + case 3: case 5: + $train = "{$general[train]} (+5)"; break; + case 1: case 8: case 10: + $train = "{$general[train]} (-5)"; break; + default: + $train = "$general[train]"; break; + } + if($general[troop] == 0) { $troop[name] = "-"; } + if($general[mode] == 2) { $general[mode] = "수비 함(훈사80)"; } + elseif($general[mode] == 1) { $general[mode] = "수비 함(훈사60)"; } + else { $general[mode] = "수비 안함"; } + + if($skin == 0) { + $general[age] = unfont($general[age]); + $special = unfont($special); + $special2 = unfont($special2); + $atmos = unfont($atmos); + $train = unfont($train); + $general[mode] = unfont($general[mode]); + } + + $weapImage = "{$images}/weap{$general[crewtype]}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; }; + $imageTemp = GetImageURL($general[imgsvr]); + echo " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
0?" background={$imageTemp}/{$general[picture]}":""; echo "> {$specUser} {$general[name]} 【 {$level} | {$call} | {$color}{$injury} 】 ".substr($general[turntime], 11)."
통솔 {$color}{$leader}{$lbonus} ".bar(expStatus($general[leader2]), $skin, 20)."무력 {$color}{$power} ".bar(expStatus($general[power2]), $skin, 20)."지력 {$color}{$intel} ".bar(expStatus($general[intel2]), $skin, 20)."
명마$horsename무기$weapname서적$bookname
0?" background={$weapImage}":""; echo "> 자금$general[gold]군량$general[rice]도구$itemname
병종$typename병사$general[crew]성격".getGenChar($general[personal])."
훈련$train사기$atmos특기$special / $special2
Lv {$general[explevel]} ".bar(getLevelPer($general[experience], $general[explevel]), $skin, 20)."연령$general[age]
수비$general[mode]삭턴$general[killturn] 턴실행$remaining 분 남음
부대$troop[name]벌점".getConnect($general[connect])." $general[connect]($general[con])
"; +} + +function myInfo2($connect) { + $query = "select no,skin from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + generalInfo2($connect, $me[no], $me[skin]); +} + +function generalInfo2($connect, $no, $skin) { + global $_basecolor, $_basecolor2, $image, $images, $_dexLimit; + + $query = "select personal,experience,dedication,firenum,warnum,killnum,deathnum,killcrew,deathcrew,belong,killnum*100/warnum as winrate,killcrew/deathcrew*100 as killrate,dex0,dex10,dex20,dex30,dex40 from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $general[winrate] = round($general[winrate], 2); + $general[killrate] = round($general[killrate], 2); + + switch($general[personal]) { + case 0: case 1; case 6: + $experience = "".getHonor($general[experience])." ($general[experience])"; break; + case 4: case 5: case 7: case 10: + $experience = "".getHonor($general[experience])." ($general[experience])"; break; + default: + $experience = getHonor($general[experience])." ($general[experience])"; break; + } + switch($general[personal]) { + case 10: + $dedication = "".getDed($general[dedication])." ($general[dedication])"; break; + default: + $dedication = getDed($general[dedication])." ($general[dedication])"; break; + } + + if($skin == 0) { + $experience = unfont($experience); + $dedication = unfont($dedication); + } + + $dex0 = $general[dex0] / $_dexLimit * 100; + $dex10 = $general[dex10] / $_dexLimit * 100; + $dex20 = $general[dex20] / $_dexLimit * 100; + $dex30 = $general[dex30] / $_dexLimit * 100; + $dex40 = $general[dex40] / $_dexLimit * 100; + + if($dex0 > 100) { $dex0 = 100; } + if($dex10 > 100) { $dex10 = 100; } + if($dex20 > 100) { $dex20 = 100; } + if($dex30 > 100) { $dex30 = 100; } + if($dex40 > 100) { $dex40 = 100; } + + $general[dex0] = getDexCall($general[dex0]); + $general[dex10] = getDexCall($general[dex10]); + $general[dex20] = getDexCall($general[dex20]); + $general[dex30] = getDexCall($general[dex30]); + $general[dex40] = getDexCall($general[dex40]); + + echo " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
추 가 정 보
명성$experience계급$dedication
전투$general[warnum]계략$general[firenum]사관$general[belong]년
승률$general[winrate] %승리$general[killnum]패배$general[deathnum]
살상률$general[killrate] %사살$general[killcrew]피살$general[deathcrew]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
숙 련 도
보병  $general[dex0]".bar($dex0, $skin, 16)."
궁병  $general[dex10]".bar($dex10, $skin, 16)."
기병  $general[dex20]".bar($dex20, $skin, 16)."
귀병  $general[dex30]".bar($dex30, $skin, 16)."
차병  $general[dex40]".bar($dex40, $skin, 16)."
"; +} + +function pushTrickLog($connect, $log) { + $size = count($log); + if($size > 0) { + $fp = fopen("logs/_tricklog.txt", "a"); + for($i=0; $i < $size; $i++) { + fwrite($fp, $log[$i]."\r\n"); + } + fclose($fp); + } +} + +function pushProcessLog($connect, $log) { + $size = count($log); + if($size > 0) { + $date = date('Y_m_d'); + $fp = fopen("logs/_{$date}_processlog.txt", "a"); + for($i=0; $i < $size; $i++) { + fwrite($fp, $log[$i]."\r\n"); + } + fclose($fp); + } +} + +function delStepLog() { + $date = date('Y_m_d'); + @unlink("logs/_{$date}_steplog.txt"); +} + +function pushStepLog($log) { + $date = date('Y_m_d'); + $fp = fopen("logs/_{$date}_steplog.txt", "a"); + fwrite($fp, $log."\r\n"); + fclose($fp); +} + +function pushLockLog($connect, $log) { + $size = count($log); + if($size > 0) { + $date = date('Y_m_d'); + $fp = fopen("logs/_{$date}_locklog.txt", "a"); + for($i=0; $i < $size; $i++) { + fwrite($fp, $log[$i]."\r\n"); + } + fclose($fp); + } +} + +function pushAdminLog($connect, $log) { + $size = count($log); + if($size > 0) { + $fp = fopen("logs/_adminlog.txt", "a"); + for($i=0; $i < $size; $i++) { + fwrite($fp, $log[$i]."\r\n"); + } + fclose($fp); + } +} + +function pushAuctionLog($connect, $log) { + $size = count($log); + if($size > 0) { + $fp = fopen("logs/_auctionlog.txt", "a"); + for($i=0; $i < $size; $i++) { + fwrite($fp, $log[$i]."\r\n"); + } + fclose($fp); + } +} + +function pushGenLog($general, $log) { + $size = count($log); + if($size > 0) { + $fp = fopen("logs/gen{$general[no]}.txt", "a"); + for($i=0; $i < $size; $i++) { + fwrite($fp, $log[$i]."\r\n"); + } + fclose($fp); + } +} + +function pushBatRes($general, $log) { + $size = count($log); + if($size > 0) { + $fp = fopen("logs/batres{$general[no]}.txt", "a"); + for($i=0; $i < $size; $i++) { + fwrite($fp, $log[$i]."\r\n"); + } + fclose($fp); + } +} + +function pushBatLog($general, $log) { + $size = count($log); + if($size > 0) { + $fp = fopen("logs/batlog{$general[no]}.txt", "a"); + for($i=0; $i < $size; $i++) { + fwrite($fp, $log[$i]."\r\n"); + } + fclose($fp); + } +} + +function pushAllLog($log) { + $size = count($log); + if($size > 0) { + $fp = fopen("logs/_alllog.txt", "a"); + for($i=0; $i < $size; $i++) { + fwrite($fp, $log[$i]."\r\n"); + } + fclose($fp); + } +} + +function pushHistory($connect, $history) { + $size = count($history); + if($size > 0) { + $fp = fopen("logs/_history.txt", "a"); + for($i=0; $i < $size; $i++) { + fwrite($fp, $history[$i]."\r\n"); + } + fclose($fp); + } +} + +function TrickLog($count, $skin) { + $fp = @fopen("logs/_tricklog.txt", "r"); + @fseek($fp, -$count*150, SEEK_END); + $file = @fread($fp, $count*150); + @fclose($fp); + $log = explode("\r\n",$file); + $str = ""; + for($i=0; $i < $count; $i++) { $str .= ConvertLog($log[count($log)-2-$i], $skin)."
"; } + echo $str; +} + +function AllLog($count, $skin) { + $fp = @fopen("logs/_alllog.txt", "r"); + @fseek($fp, -$count*300, SEEK_END); + $file = @fread($fp, $count*300); + @fclose($fp); + $log = explode("\r\n",$file); + $str = ""; + for($i=0; $i < $count; $i++) { $str .= ConvertLog($log[count($log)-2-$i], $skin)."
"; } + echo $str; +} + +function AuctionLog($count, $skin) { + $fp = @fopen("logs/_auctionlog.txt", "r"); + @fseek($fp, -$count*300, SEEK_END); + $file = @fread($fp, $count*300); + @fclose($fp); + $log = explode("\r\n",$file); + $str = ""; + for($i=0; $i < $count; $i++) { $str .= ConvertLog($log[count($log)-2-$i], $skin)."
"; } + echo $str; +} + +function History($count, $skin) { + $fp = @fopen("logs/_history.txt", "r"); + @fseek($fp, -$count*300, SEEK_END); + $file = @fread($fp, $count*300); + @fclose($fp); + $log = explode("\r\n",$file); + $str = ""; + for($i=0; $i < $count; $i++) { $str .= ConvertLog($log[count($log)-2-$i], $skin)."
"; } + echo $str; +} + +function MyLog($no, $count, $skin) { + $fp = @fopen("logs/gen{$no}.txt", "r"); + @fseek($fp, -$count*300, SEEK_END); + $file = @fread($fp, $count*300); + @fclose($fp); + $log = explode("\r\n",$file); + $str = ""; + for($i=0; $i < $count; $i++) { $str .= ConvertLog($log[count($log)-2-$i], $skin)."
"; } + echo $str; +} + +function MyBatRes($no, $count, $skin) { + $fp = @fopen("logs/batres{$no}.txt", "r"); + @fseek($fp, -$count*300, SEEK_END); + $file = @fread($fp, $count*300); + @fclose($fp); + $log = explode("\r\n",$file); + $str = ""; + for($i=0; $i < $count; $i++) { $str .= ConvertLog($log[count($log)-2-$i], $skin)."
"; } + echo $str; +} + +function MyBatLog($no, $count, $skin) { + $fp = @fopen("logs/batlog{$no}.txt", "r"); + @fseek($fp, -$count*300, SEEK_END); + $file = @fread($fp, $count*300); + @fclose($fp); + $log = explode("\r\n",$file); + $str = ""; + for($i=0; $i < $count; $i++) { $str .= ConvertLog($log[count($log)-2-$i], $skin)."
"; } + echo $str; +} + +function MyHistory($connect, $no, $skin) { + $query = "select history from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + echo ConvertLog($general[history], $skin); +} + +function addHistory($connect, $me, $history) { + $me[history] = "{$history}
{$me[history]}"; + $query = "update general set history='$me[history]' where no='$me[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + return $me; +} + +function addNationHistory($connect, $nation, $history) { + $nation[history] = "{$nation[history]}{$history}
"; + $query = "update nation set history='$nation[history]' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + return $nation; +} + +function adminMsg($connect, $skin=1) { + $query = "select msg from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + echo "운영자 메세지 : "; + echo $admin[msg].""; +} + +function allButton($connect) { + global $_basecolor2; + $query = "select npcmode from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + if($admin[npcmode] == 1) { + $site = "a_npcList.php"; + $call = "빙의일람"; + } else { + $site = "a_vote.php"; + $call = "설문조사"; + } + + echo " + + + + + + + + + + + + + + + + + + + + + +
"; +} + +function onlinenum($connect) { + $query = "select online from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $game = MYDB_fetch_array($result); + return $game[online]; +} + +function onlinegen($connect) { + $onlinegen = ""; + if($_SESSION[p_nation] == 0) { + $query = "select onlinegen from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $game = MYDB_fetch_array($result); + + $onlinegen = $game[onlinegen]; + } else { + $query = "select onlinegen from nation where nation='$_SESSION[p_nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $onlinegen = $nation[onlinegen]; + } + return $onlinegen; +} + +function onlineNation($connect) { + $query = "select onlinenation from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $game = MYDB_fetch_array($result); + return $game[onlinenation]; +} + +function nationMsg($connect) { + $query = "select no,nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select msg from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + echo "".$nation[msg].""; +} + +function genList($connect) { + $query = "select no,nation,level,msgindex,userlevel from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select msg{$me[msgindex]}_who as reply,msg{$me[msgindex]}_type as type from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $reply = MYDB_fetch_array($result); + if($reply[type] % 100 == 9) { + $reply[reply] %= 10000; + $query = "select no,name from general where no={$reply[reply]}"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + } elseif($reply[type] % 100 == 10) { + $reply[reply] = floor($reply[reply]/10000); + $query = "select no,name from general where no={$reply[reply]}"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + } + + $query = "select nation,color,name from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + echo " + +"; +} + +function moveMsg($connect, $table, $msgtype, $msgnum, $msg, $type, $who, $when, $column, $value) { + $query = "update {$table} set {$msgtype}{$msgnum}='$msg',{$msgtype}{$msgnum}_type='$type',{$msgtype}{$msgnum}_who='$who',{$msgtype}{$msgnum}_when='$when' where {$column}='$value'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function MsgMe($connect, $bg) { + $query = "select no,nation,msgindex, + msg0,msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9, + msg0_type,msg1_type,msg2_type,msg3_type,msg4_type,msg5_type,msg6_type,msg7_type,msg8_type,msg9_type, + msg0_who,msg1_who,msg2_who,msg3_who,msg4_who,msg5_who,msg6_who,msg7_who,msg8_who,msg9_who, + msg0_when,msg1_when,msg2_when,msg3_when,msg4_when,msg5_when,msg6_when,msg7_when,msg8_when,msg9_when + from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $index = $me[msgindex]; + for($i=0; $i < 10; $i++) { + if($me["msg{$index}"]) { echo "\n"; DecodeMsg($connect, $me["msg{$index}"], $me["msg{$index}_type"], $me["msg{$index}_who"], $me["msg{$index}_when"], $bg, $index); } + $index--; + if($index < 0) { $index = 9; } + } +} + +function MsgDip($connect, $bg) { + $query = "select no,nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select dip0,dip1,dip2,dip3,dip4,dip0_who,dip1_who,dip2_who,dip3_who,dip4_who,dip0_when,dip1_when,dip2_when,dip3_when,dip4_when,dip0_type,dip1_type,dip2_type,dip3_type,dip4_type from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($nation[dip0]) { echo "\n"; DecodeMsg($connect, $nation[dip0], $nation[dip0_type], $nation[dip0_who], $nation[dip0_when], $bg, 0); } + if($nation[dip1]) { echo "\n"; DecodeMsg($connect, $nation[dip1], $nation[dip1_type], $nation[dip1_who], $nation[dip1_when], $bg, 1); } + if($nation[dip2]) { echo "\n"; DecodeMsg($connect, $nation[dip2], $nation[dip2_type], $nation[dip2_who], $nation[dip2_when], $bg, 2); } + if($nation[dip3]) { echo "\n"; DecodeMsg($connect, $nation[dip3], $nation[dip3_type], $nation[dip3_who], $nation[dip3_when], $bg, 3); } + if($nation[dip4]) { echo "\n"; DecodeMsg($connect, $nation[dip4], $nation[dip4_type], $nation[dip4_who], $nation[dip4_when], $bg, 4); } +} + +// type : xx,xx(불가침기간,타입) +// who : xxxx,xxxx(발신인, 수신인) +function DecodeMsg($connect, $msg, $type, $who, $date, $bg, $num=0) { + $query = "select skin,no,nation,name,picture,level from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + // 1 : 전메, 2 : 아국->타국, 3 : 타국->아국 + // 4 : 합병, 5 : 통합, 6 : 불가침, 7 : 종전, 8 : 파기 + // 9 : 자신->타인, 10 : 타인 -> 자신, 11 : 등용 + $category = $type % 100; + $term = floor($type / 100); + $from = floor($who / 10000); + $to = $who % 10000; + + $query = "select name,picture,imgsvr,nation from general where no='$from'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $sndr = MYDB_fetch_array($result); + + if($sndr[nation] == 0) { + $sndrnation[name] = '재야'; + $sndrnation[color] = 'FFFFFF'; + } else { + $query = "select name,color from nation where nation='$sndr[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $sndrnation = MYDB_fetch_array($result); + } + + switch($bg) { + case 2: + case 4: $bgcolor = "CC6600"; break; + } + + if($category == 6) { + $query = "select reserved from diplomacy where me='$sndr[nation]' and you='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + ShowMsg($me[skin], $bgcolor, $category, $sndr[picture], $sndr[imgsvr], "{$sndr[name]}:{$sndrnation[name]}▶", $sndrnation[color], $sndr[name], $sndrnation[color], $msg, $date, $num, $from, $term, $me[level], $dip[reserved]); + } elseif($category <= 8) { + $query = "select name,color from nation where nation='$to'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $rcvrnation = MYDB_fetch_array($result); + + ShowMsg($me[skin], $bgcolor, $category, $sndr[picture], $sndr[imgsvr], "{$sndr[name]}:{$sndrnation[name]}▶", $sndrnation[color], $rcvrnation[name], $rcvrnation[color], $msg, $date, $num, $from, $term, $me[level]); + } elseif($category <= 11) { + $query = "select name,picture,nation from general where no='$to'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $rcvr = MYDB_fetch_array($result); + + if($rcvr[nation] == 0) { + $rcvrnation[name] = '재야'; + $rcvrnation[color] = 'FFFFFF'; + } else { + $query = "select name,color from nation where nation='$rcvr[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $rcvrnation = MYDB_fetch_array($result); + } + ShowMsg($me[skin], $bgcolor, $category, $sndr[picture], $sndr[imgsvr], "{$sndr[name]}:{$sndrnation[name]}▶", $sndrnation[color], "{$rcvr[name]}:{$rcvrnation[name]}", $rcvrnation[color], $msg, $date, $num, $from, $term); + } +} + +function PushMsg($type, $nation, $picture, $imgsvr, $from, $fromcolor, $to, $tocolor, $msg) { + if($nation == 0) { $nation = 0; } + if($fromcolor == "") { $fromcolor = "FFFFFF"; } + if($to == "") { $to = "재야"; } + if($tocolor == "") { $tocolor = "FFFFFF"; } + + $date = date('Y-m-d H:i:s'); + if($type == 1) { $file = "_all_msg.txt"; } + else { $file = "_nation_msg{$nation}.txt"; } + $fp = fopen("logs/{$file}", "a"); + //로그 파일에 기록 + $str = "{$type}|"._String::Fill($from,12," ")."|"._String::Fill($to,12," ")."|".$date."|".$msg."|".$fromcolor."|".$tocolor."|".$picture."|".$imgsvr; + fwrite($fp, "{$str}\r\n"); + fclose($fp); +} + +function MsgFile($skin, $bg, $nation=0, $level=0) { + switch($bg) { + case 1: $bgcolor = "000055"; $count = 10; $fl = "_all_msg.txt"; break; + case 3: $bgcolor = "336600"; $count = 20; $fl = "_nation_msg{$nation}.txt"; break; + } + + $fp = @fopen("logs/{$fl}", "r"); + @fseek($fp, -$count*300, SEEK_END); + $file = @fread($fp, $count*300); + @fclose($fp); + $code = explode("\r\n",$file); + for($i=0; $i < $count; $i++) { + $msg = explode("|", $code[count($code)-2-$i]); + + $cnt = count($msg); + for($k=0; $k < $cnt; $k++) { $msg[$k] = trim($msg[$k]); } + + ShowMsg($skin, $bgcolor, $msg[0], $msg[7], $msg[8], $msg[1], $msg[5], $msg[2], $msg[6], $msg[4], $msg[3]); + } +} + +function ShowMsg($skin, $bgcolor, $type, $picture, $imgsvr, $me, $mycolor, $you, $youcolor, $msg, $date, $num=0, $who=0, $when=0, $level=0, $note="") { + if($msg == "") return; + + $msg = Tag2Code($msg); + + $site = ""; $form = ""; $form2 = ""; + if($type == 11 || ($type >= 4 && $type <= 8 && $level >= 5)) { + $corebutton = " "; + } else { + $corebutton = " 【수락】【거절】"; + } + if($type == 6) { + $corebutton .= "
비고: {$note}"; + } + switch($type) { + case 1: $sign = ""; $corebutton = ""; break; + case 2: $sign = ""; $corebutton = ""; break; + case 3: $sign = ""; $corebutton = ""; break; + case 4: $sign = ""; $site = "d_surrender.php"; break; + case 5: $sign = ""; $site = "d_merge.php"; break; + case 6: $sign = ""; $site = "d_ally.php"; break; + case 7: $sign = ""; $site = "d_cease.php"; break; + case 8: $sign = ""; $site = "d_cancel.php"; break; + case 9: $sign = ""; $corebutton = ""; break; + case 10: $sign = ""; $corebutton = ""; break; + case 11: $sign = ""; $site = "d_scout.php"; break; + } + if($skin == 0) { + $bgcolor = "000000"; $picture = ""; + $naming = "[{$me}{$sign}{$you}]"; + } else { + $imageTemp = GetImageURL($imgsvr); + $naming = "[$me{$sign}$you]"; + $picture = ""; + } + if($site != "") { + $form = "
"; + $form2 = "
"; + } + if($num >= 0) { $num = ""; } + else { $num = ""; } + if($who > 0) { $who = ""; } + else { $who = ""; } + if($when > 0) { $when = ""; } + else { $when = ""; } + echo " + + + + $form + + $num + $who + $when + $form2 + +
$picture$naming<$date>
{$msg}{$corebutton}
+ "; +} + +function msgprint($connect, $msg, $name, $picture, $imgsvr, $when, $num, $type) { + global $_basecolor2, $_basecolor4, $images; + + $message = explode("|", $msg); + $count = (count($message) - 2)/2; + $message[0] = Tag2Code($message[0]); + $message[1] = Tag2Code($message[1]); +// $message[0] = str_replace("\n", "
", $message[0]); +// $message[1] = str_replace("\n", "
", $message[1]); + + if($type == 0) { $board = "c_nationboard.php"; } + else { $board = "c_chiefboard.php"; } + + $imageTemp = GetImageURL($imgsvr); + echo " + + + + + + + + + + "; + for($i=0; $i < $count; $i++) { + $who = Tag2Code($message[2+$i*2]); + $reply = Tag2Code($message[3+$i*2]); + $query = "select name from general where no='$who'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $regen = MYDB_fetch_array($result); + echo " + + + + "; + } + echo " + + + + + + +
$name$message[0]$when
$message[1]
$regen[name]$reply
댓글달기 + + + +
+
"; +} + +function banner() { + global $_version, $_banner, $_helper; + echo "$_version / $_banner
$_helper
"; +} + +function addTurn($date, $turnterm=1) { + $lastday = array(0,31,28,31,30,31,30,31,31,30,31,30,31); + + $year = $date[0].$date[1].$date[2].$date[3]; + $month = floor($date[5].$date[6]); + $day = $date[8].$date[9]; + $hour = $date[11].$date[12]; + $min = $date[14].$date[15]; + $sec = $date[17].$date[18]; + + //윤년계산 + if((($year % 4 == 0) && ($year % 100 != 0)) || ($year % 400 == 0)) { $lastday[2] = 29; } + + if($turnterm == 0) { $hour += 2; } + elseif($turnterm == 1) { $hour += 1; } + elseif($turnterm == 2) { $min += 30; } + elseif($turnterm == 3) { $min += 20; } + elseif($turnterm == 4) { $min += 10; } + elseif($turnterm == 5) { $min += 5; } + elseif($turnterm == 6) { $min += 2; } + elseif($turnterm == 7) { $min += 1; } + + if($min >= 60) { $min %= 60; $hour++; } + if($hour >= 24) { $hour %= 24; $day++; } + if($day > $lastday[$month]) { $month++; $day = 1; } + if($month >= 13) { $year++; $month = 1; } + + $month = _String::Fill2($month, 2, "0"); + $day = _String::Fill2($day, 2, "0"); + $hour = _String::Fill2($hour, 2, "0"); + $min = _String::Fill2($min, 2, "0"); + $sec = _String::Fill2($sec, 2, "0"); + + return "{$year}-{$month}-{$day} {$hour}:{$min}:{$sec}"; +} + +function add12Turn($date, $turnterm=1) { + $lastday = array(0,31,28,31,30,31,30,31,31,30,31,30,31); + + $year = $date[0].$date[1].$date[2].$date[3]; + $month = floor($date[5].$date[6]); + $day = $date[8].$date[9]; + $hour = $date[11].$date[12]; + $min = $date[14].$date[15]; + $sec = $date[17].$date[18]; + + //윤년계산 + if((($year % 4 == 0) && ($year % 100 != 0)) || ($year % 400 == 0)) { $lastday[2] = 29; } + + if($turnterm == 0) { $day += 1; } + elseif($turnterm == 1) { $hour += 12; } + elseif($turnterm == 2) { $hour += 6; } + elseif($turnterm == 3) { $hour += 4; } + elseif($turnterm == 4) { $hour += 2; } + elseif($turnterm == 5) { $hour += 1; } + elseif($turnterm == 6) { $min += 24; } + elseif($turnterm == 7) { $min += 12; } + + if($min >= 60) { $min %= 60; $hour++; } + if($hour >= 24) { $hour %= 24; $day++; } + if($day > $lastday[$month]) { $month++; $day = 1; } + if($month >= 13) { $year++; $month = 1; } + + $month = _String::Fill2($month, 2, "0"); + $day = _String::Fill2($day, 2, "0"); + $hour = _String::Fill2($hour, 2, "0"); + $min = _String::Fill2($min, 2, "0"); + $sec = _String::Fill2($sec, 2, "0"); + + return "{$year}-{$month}-{$day} {$hour}:{$min}:{$sec}"; +} + +function subTurn($date, $turnterm=1) { + $lastday = array(0,31,28,31,30,31,30,31,31,30,31,30,31); + + $year = $date[0].$date[1].$date[2].$date[3]; + $month = floor($date[5].$date[6]); + $day = $date[8].$date[9]; + $hour = $date[11].$date[12]; + $min = $date[14].$date[15]; + $sec = $date[17].$date[18]; + + if($turnterm == 0) { $hour -= 2; } + elseif($turnterm == 1) { $hour -= 1; } + elseif($turnterm == 2) { $min -= 30; } + elseif($turnterm == 3) { $min -= 20; } + elseif($turnterm == 4) { $min -= 10; } + elseif($turnterm == 5) { $min -= 5; } + elseif($turnterm == 6) { $min -= 2; } + elseif($turnterm == 7) { $min -= 1; } + + //윤년계산 + if((($year % 4 == 0) && ($year % 100 != 0)) || ($year % 400 == 0)) { $lastday[2] = 29; } + + if($min < 0) { $min = 60 + $min; $hour--; } + if($hour < 0) { $hour = 24 + $hour; $day--; } + if($day <= 0) { $month--; $day = $lastday[$month]; } + if($month <= 0) { $year--; $month = 12; } + + $year = _String::Fill2($year, 2, "0"); + $month = _String::Fill2($month, 2, "0"); + $day = _String::Fill2($day, 2, "0"); + $hour = _String::Fill2($hour, 2, "0"); + $min = _String::Fill2($min, 2, "0"); + $sec = _String::Fill2($sec, 2, "0"); + + return "{$year}-{$month}-{$day} {$hour}:{$min}:{$sec}"; +} + +function cutTurn($date, $turnterm=1) { + // 0123456789012345678 + // $date = "2000-01-01 00:00:00"; + // 0 : 120분, 1 : 60분, 2 : 30분, 3 : 10분, 4 : 5분 + switch($turnterm) { + case 0: + $hour = $date[11].$date[12]; + if($hour % 2 == 1) { $hour--; } + $date[11] = floor($hour / 10); + $date[12] = $hour % 10; + $date[14] = "0"; + $date[15] = "0"; + $date[17] = "0"; + $date[18] = "0"; + break; + case 1: + $date[14] = "0"; + $date[15] = "0"; + $date[17] = "0"; + $date[18] = "0"; + break; + case 2: + $min = $date[14].$date[15]; + if($min < 30) { $min = 0; } + else { $min = 30; } + $date[14] = floor($min / 10); + $date[15] = $min % 10; + $date[17] = "0"; + $date[18] = "0"; + break; + case 3: + $min = $date[14].$date[15]; + if($min < 20) { $min = 0; } + elseif($min < 40) { $min = 20; } + else { $min = 40; } + $date[14] = floor($min / 10); + $date[15] = $min % 10; + $date[17] = "0"; + $date[18] = "0"; + break; + case 4: + $min = $date[14].$date[15]; + if($min < 10) { $min = 0; } + elseif($min < 20) { $min = 10; } + elseif($min < 30) { $min = 20; } + elseif($min < 40) { $min = 30; } + elseif($min < 50) { $min = 40; } + else { $min = 50; } + $date[14] = floor($min / 10); + $date[15] = $min % 10; + $date[17] = "0"; + $date[18] = "0"; + break; + case 5: + $min = $date[14].$date[15]; + if($min < 5) { $min = 0; } + elseif($min < 10) { $min = 5; } + elseif($min < 15) { $min = 10; } + elseif($min < 20) { $min = 15; } + elseif($min < 25) { $min = 20; } + elseif($min < 30) { $min = 25; } + elseif($min < 35) { $min = 30; } + elseif($min < 40) { $min = 35; } + elseif($min < 45) { $min = 40; } + elseif($min < 50) { $min = 45; } + elseif($min < 55) { $min = 50; } + else { $min = 55; } + $date[14] = floor($min / 10); + $date[15] = $min % 10; + $date[17] = "0"; + $date[18] = "0"; + break; + case 6: + $min = $date[14].$date[15]; + $min = floor($min / 2) * 2; + $date[14] = floor($min / 10); + $date[15] = $min % 10; + $date[17] = "0"; + $date[18] = "0"; + break; + case 7: + $date[17] = "0"; + $date[18] = "0"; + break; + } + + return $date; +} + +function CutDay($date) { + $hour = $date[11].$date[12]; + if($hour >= 19) { + $date[11] = "0"; + $date[12] = "1"; + + $date = add12Turn($date, 1); + $date = add12Turn($date, 1); + } elseif($hour < 07) { + $date[11] = "0"; + $date[12] = "1"; + } else { + $date[11] = "1"; + $date[12] = "3"; + } + $date[14] = "0"; + $date[15] = "0"; + $date[17] = "0"; + $date[18] = "0"; + return $date; +} + +function increaseRefresh($connect, $type="", $cnt=1) { + $date = date('Y-m-d H:i:s'); + + $query = "update game set refresh=refresh+'$cnt' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + if($_SESSION[p_id] != "") { + $query = "update general set lastrefresh='$date',con=con+'$cnt',connect=connect+'$cnt',refcnt=refcnt+'$cnt',refresh=refresh+'$cnt' where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + $date = date('Y_m_d H:i:s'); + $date2 = substr($date, 0, 10); + $online = onlinenum($connect); + $fp = fopen("logs/_{$date2}_refresh.txt", "a"); + $msg = _String::Fill2($date,20," ")._String::Fill2($_SESSION[p_id],13," ")._String::Fill2($_SESSION[p_name],13," ")._String::Fill2($_SESSION[p_ip],16," ")._String::Fill2($type, 10, " ")." 동접자: {$online}"; + fwrite($fp, $msg."\r\n"); + fclose($fp); + + $proxy_headers = array( + 'HTTP_VIA', + 'HTTP_X_FORWARDED_FOR', + 'HTTP_FORWARDED_FOR', + 'HTTP_X_FORWARDED', + 'HTTP_FORWARDED', + 'HTTP_CLIENT_IP', + 'HTTP_FORWARDED_FOR_IP', + 'VIA', + 'X_FORWARDED_FOR', + 'FORWARDED_FOR', + 'X_FORWARDED', + 'FORWARDED', + 'CLIENT_IP', + 'FORWARDED_FOR_IP', + 'HTTP_PROXY_CONNECTION' + ); + + $str = ""; + foreach($proxy_headers as $x) { + if(isset($_SERVER[$x])) $str .= "//{$x}:{$_SERVER[$x]}"; + } + if($str != "") { + $fp2 = fopen("logs/_{$date2}_ipcheck.txt", "a"); + $str = "ID:{$_SESSION[p_id]}//name:{$_SESSION[p_name]}//REMOTE_ADDR:{$_SERVER[REMOTE_ADDR]}" . $str; + fwrite($fp2, $str."\r\n"); + fclose($fp2); + } +} + +function updateTraffic($connect) { + $online = onlinenum($connect); + + $query = "select year,month,refresh,maxonline,maxrefresh from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $game = MYDB_fetch_array($result); + + //최다갱신자 + $query = "select name,refresh from general order by refresh desc limit 0,1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $user = MYDB_fetch_array($result); + + if($game[maxrefresh] < $game[refresh]) { + $game[maxrefresh] = $game[refresh]; + } + if($game[maxonline] < $online) { + $game[maxonline] = $online; + } + $query = "update game set refresh=0,maxrefresh={$game[maxrefresh]},maxonline={$game[maxonline]} where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set refresh=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $date = date('Y-m-d H:i:s'); + $fp = fopen("logs/_traffic.txt", "a"); + //일시|년|월|총갱신|접속자|최다갱신자 + $msg = _String::Fill2($date,20," ")."|"._String::Fill2($game[year],3," ")."|"._String::Fill2($game[month],2," ")."|"._String::Fill2($game[refresh],8," ")."|"._String::Fill2($online,5," ")."|"._String::Fill2($user[name]."(".$user[refresh].")",20," "); + fwrite($fp, $msg."\r\n"); + fclose($fp); +} + +function CheckOverhead($connect) { + //서버정보 + $query = "select conweight,turnterm,conlimit from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $onlineNumber = onlinenum($connect); + switch($admin[turnterm]) { + case 0: $thr1 = 30; $thr2 = 60; $thr3 = 120; $con1 = 480; $con2 = 360; $con3 = 240; $con4 = 120; break; // 120분턴 + case 1: $thr1 = 30; $thr2 = 60; $thr3 = 120; $con1 = 480; $con2 = 360; $con3 = 240; $con4 = 120; break; // 60분턴 + case 2: $thr1 = 10; $thr2 = 20; $thr3 = 30; $con1 = 360; $con2 = 240; $con3 = 120; $con4 = 60; break; // 30분턴 + case 3: $thr1 = 10; $thr2 = 20; $thr3 = 30; $con1 = 240; $con2 = 180; $con3 = 120; $con4 = 60; break; // 20분턴 + case 4: $thr1 = 10; $thr2 = 20; $thr3 = 30; $con1 = 240; $con2 = 180; $con3 = 120; $con4 = 60; break; // 10분턴 + case 5: $thr1 = 5; $thr2 = 10; $thr3 = 20; $con1 = 120; $con2 = 90; $con3 = 60; $con4 = 30; break; // 5분턴 + case 6: $thr1 = 5; $thr2 = 10; $thr3 = 20; $con1 = 90; $con2 = 60; $con3 = 40; $con4 = 30; break; // 2분턴 + case 7: $thr1 = 5; $thr2 = 10; $thr3 = 20; $con1 = 90; $con2 = 60; $con3 = 40; $con4 = 30; break; // 1분턴 + } + + $thr1 *= $admin[conweight] / 100; + $thr2 *= $admin[conweight] / 100; + $thr3 *= $admin[conweight] / 100; + $con1 *= $admin[conweight] / 100; + $con2 *= $admin[conweight] / 100; + $con3 *= $admin[conweight] / 100; + $con4 *= $admin[conweight] / 100; + + //if($onlineNumber > $thr2) { $me[map] = 1; } + if ($onlineNumber > $thr3 && $admin[conlimit] != $con4) { + $query = "update game set conlimit='$con4' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($onlineNumber > $thr2 && $admin[conlimit] != $con3) { + $query = "update game set conlimit='$con3' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($onlineNumber > $thr1 && $admin[conlimit] != $con2) { + $query = "update game set conlimit='$con2' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($onlineNumber <= $thr1 && $admin[conlimit] != $con1) { + $query = "update game set conlimit='$con1' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + } +} + +function isLock($connect) { + $query = "select plock from plock where no=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $plock = MYDB_fetch_array($result); + + if($plock[plock] == 0) { return 0; } // 열려있음 + else { return 1; } // 사용중 +} + +function lock($connect) { + //테이블 락 + $query = "lock tables plock write"; + @MYDB_query($query, $connect); + // 잠금 + $query = "update plock set plock=1 where no=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //테이블 언락 + $query = "unlock tables"; + @MYDB_query($query, $connect); +} + +function unlock($connect) { + // 풀림 + $query = "update plock set plock=0 where no=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function timeover($connect) { + $query = "select turnterm,TIMESTAMPDIFF(SECOND,turntime,now()) as diff from game where no=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + switch($admin[turnterm]) { + case 0: $t = 20; break; // 120분턴 + case 1: $t = 10; break; // 60분턴 + case 2: $t = 10; break; // 30분턴 + case 3: $t = 10; break; // 20분턴 + case 4: $t = 10; break; // 10분턴 + case 5: $t = 5; break; // 5분턴 + case 6: $t = 2; break; // 2분턴 + case 7: $t = 1; break; // 1분턴 + } + + $term = $admin[diff]; + if($term >= $t || $term < 0) { return 1; } + else { return 0; } +} + +function checkDelay($connect) { + //서버정보 + $query = "select turnterm,now() as now,TIMESTAMPDIFF(MINUTE,turntime,now()) as offset from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + // 1턴이상 갱신 없었으면 서버 지연 + switch($admin[turnterm]) { + case 0: $term = 120; $threshold = 1; break; + case 1: $term = 60; $threshold = 1; break; + case 2: $term = 30; $threshold = 1; break; + case 3: $term = 20; $threshold = 1; break; + case 4: $term = 10; $threshold = 2; break; + case 5: $term = 5; $threshold = 3; break; + case 6: $term = 2; $threshold = 3; break; + case 7: $term = 1; $threshold = 3; break; + } + //지연 해야할 밀린 턴 횟수 + $iter = floor($admin[offset] / $term); + if($iter > $threshold) { + $minute = $iter * $term; + $query = "update game set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE),starttime=DATE_ADD(starttime, INTERVAL $minute MINUTE),tnmt_time=DATE_ADD(tnmt_time, INTERVAL $minute MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE) where turntime<=DATE_ADD(turntime, INTERVAL $term MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update auction set expire=DATE_ADD(expire, INTERVAL $minute MINUTE)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function updateOnline($connect) { + $query = "select nation,name from nation"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + //국가별 이름 매핑 + for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + $nationname[$nation[nation]] = $nation[name]; + } + $nationname[0] = "재야"; + + //동접수 + $query = "select no,name,nation from general where lastrefresh > DATE_SUB(NOW(), INTERVAL 5 MINUTE)"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $onlinenum = MYDB_num_rows($result); + + //국가별 접속중인 장수 + for($i=0; $i < $onlinenum; $i++) { + $general = MYDB_fetch_array($result); + $onnation[$general[nation]] .= $general[name].', '; + } + + foreach($onnation as $key => $val) { + $onnationstr .= "【{$nationname[$key]}】, "; + + if($key == 0) { + $query = "update game set onlinegen='$onnation[0]' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update nation set onlinegen='$onnation[$key]' where nation='$key'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + + //접속중인 국가 + $query = "update game set online='$onlinenum',onlinenation='$onnationstr' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function checkTurn($connect) { + // 잦은 갱신 금지 현재 10초당 1회 + if(!timeover($connect)) { return; } + // 현재 처리중이면 접근 불가 + if(isLock($connect)) { return; } + + $locklog[0] = "- checkTurn() : ".date('Y-m-d H:i:s')." : ".$_SESSION[p_id]; + pushLockLog($connect, $locklog); + + // 파일락 획득 + $fp = fopen('lock.txt', 'r'); + if(!flock($fp, LOCK_EX)) { return; } + // 세마포어 획득(윈도우서버 불가) + //$sema = @sem_get(fileinode('stylesheet.php')); + //if(!@sem_acquire($sema)) { echo "치명적 에러! 유기체에게 문의하세요!"; exit(1); } + + // 현재 처리중이면 접근 불가 + if(isLock($connect)) { return; } + // 락 걸고 처리 + lock($connect); + + // 파일락 해제 + if(!flock($fp, LOCK_UN)) { return; } + // 세마포어 해제 + //if(!@sem_release($sema)) { echo "치명적 에러! 유기체에게 문의하세요!"; exit(1); } + + $locklog[0] = "- checkTurn() 입 : ".date('Y-m-d H:i:s')." : ".$_SESSION[p_id]; + pushLockLog($connect, $locklog); + + //if(STEP_LOG) delStepLog(); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', 진입'); + + //천통시에는 동결 + $query = "select turntime from game where isUnited=2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $down = MYDB_num_rows($result); + if($down > 0) { + $query = "update plock set plock=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + return; + } + // 1턴이상 갱신 없었으면 서버 지연 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', checkDelay'); + checkDelay($connect); + // 접속자수, 접속국가, 국가별 접속장수 갱신 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', checkDelay'); + updateOnline($connect); + //접속자 수 따라서 갱신제한 변경 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', CheckOverhead'); + CheckOverhead($connect); + //서버정보 + $query = "select startyear,year,month,turntime,turnterm,scenario from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $date = date('Y-m-d H:i:s'); + // 최종 처리 월턴의 다음 월턴시간 구함 + $prevTurn = cutTurn($admin[turntime], $admin[turnterm]); + $nextTurn = addTurn($prevTurn, $admin[turnterm]); + // 현재 턴 이전 월턴까지 모두처리. + //최종 처리 이후 다음 월턴이 현재 시간보다 전이라면 + while($nextTurn <= $date) { + // 월턴이전 장수 모두 처리 + $query = "select no,name,turntime,turn0,npc from general where turntime < '$nextTurn' order by turntime"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + + //if(PROCESS_LOG) $processlog[0] = "[{$date}] 월턴 이전 갱신: name({$general[name]}), no({$general[no]}), turntime({$general[turntime]}), turn0({$general[turn0]})"; + //if(PROCESS_LOG) pushProcessLog($connect, $processlog); + + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processAI'); + if($general[npc] >= 2) { processAI($connect, $general[no]); } // npc AI 처리 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', PreprocessCommand'); + PreprocessCommand($connect, $general[no]); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processCommand'); + processCommand($connect, $general[no]); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateCommand'); + updateCommand($connect, $general[no]); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateTurntime'); + updateTurntime($connect, $general[no]); + + } + + // 트래픽 업데이트 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateTraffic'); + updateTraffic($connect); + // 1달마다 처리하는 것들, 벌점 감소 및 건국,전턴,합병 -1, 군량 소모 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', preUpdateMonthly'); + $result = preUpdateMonthly($connect); + if($result == false) { + $locklog[0] = "-- checkTurn() 오류출 : ".date('Y-m-d H:i:s')." : ".$_SESSION[p_id]; + pushLockLog($connect, $locklog); + + // 잡금 해제 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', unlock'); + unlock($connect); + return false; + } + + // 그 시각 년도,월 저장 + $dt = turnDate($connect, $nextTurn); + $admin[year] = $dt[0]; $admin[month] = $dt[1]; + + $locklog[0] = "-- checkTurn() ".$admin[month]."월 : ".date('Y-m-d H:i:s')." : ".$_SESSION[p_id]; + pushLockLog($connect, $locklog); + // 분기계산. 장수들 턴보다 먼저 있다면 먼저처리 + if($admin[month] == 1) { + // NPC 등장 + if($admin[scenario] > 0 && $admin[scenario] < 20) { RegNPC($connect); } + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processGoldIncome'); + processGoldIncome($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processSpring'); + processSpring($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateYearly'); + updateYearly($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateQuaterly'); + updateQuaterly($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', disaster'); + disaster($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', tradeRate'); + tradeRate($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', addAge'); + addAge($connect); + // 새해 알림 + $alllog[count($alllog)] = "◆{$admin[month]}월:$admin[year]년이 되었습니다."; + pushAllLog($alllog); + } elseif($admin[month] == 4) { + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateQuaterly'); + updateQuaterly($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', disaster'); + disaster($connect); + } elseif($admin[month] == 7) { + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processRiceIncome'); + processRiceIncome($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processFall'); + processFall($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateQuaterly'); + updateQuaterly($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', disaster'); + disaster($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', tradeRate'); + tradeRate($connect); + } elseif($admin[month] == 10) { + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateQuaterly'); + updateQuaterly($connect); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', disaster'); + disaster($connect); + } + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', postUpdateMonthly'); + postUpdateMonthly($connect); + + // 다음달로 넘김 + $prevTurn = $nextTurn; + $nextTurn = addTurn($prevTurn, $admin[turnterm]); + } + + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', '.__LINE__); + + // 이시각 정각 시까지 업데이트 완료했음 + $query = "update game set turntime='$prevTurn' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 그 시각 년도,월 저장 + $dt = turnDate($connect, $prevTurn); + $admin[year] = $dt[0]; $admin[month] = $dt[1]; + // 현재시간의 월턴시간 이후 분단위 장수 처리 + do { + $query = "select no,name,turntime,turn0,npc from general where turntime<='$date' order by turntime"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + + //if(PROCESS_LOG) $processlog[0] = "[{$date}] 월턴 이후 갱신: name({$general[name]}), no({$general[no]}), turntime({$general[turntime]}), turn0({$general[turn0]})"; + //if(PROCESS_LOG) pushProcessLog($connect, $processlog); + + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processAI'); + if($general[npc] >= 2) { processAI($connect, $general[no]); } // npc AI 처리 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', PreprocessCommand'); + PreprocessCommand($connect, $general[no]); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processCommand'); + processCommand($connect, $general[no]); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateCommand'); + updateCommand($connect, $general[no]); + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateTurntime'); + updateTurntime($connect, $general[no]); + } + } while($gencount > 0); + + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', '.__LINE__); + + $query = "update game set turntime='$date' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 3턴 전 시간 + $letterdate = $date; + $letterdate = subTurn($letterdate, $admin[turnterm]); + $letterdate = subTurn($letterdate, $admin[turnterm]); + $letterdate = subTurn($letterdate, $admin[turnterm]); + //기한 지난 외교 메세지 지움(3개월 유지) + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', '.__LINE__); + for($i=0; $i < 5; $i++) { + $query = "update nation set dip{$i}='',dip{$i}_who='0',dip{$i}_type='0',dip{$i}_when='' where dip{$i}_when < '$letterdate'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + // 부상 과도 제한 + $query = "update general set injury='80' where injury>'80'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //토너먼트 처리 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processTournament'); + processTournament($connect); + //거래 처리 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processAuction'); + processAuction($connect); + // 잡금 해제 + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', unlock'); + unlock($connect); + + $locklog[0] = "- checkTurn() 출 : ".date('Y-m-d H:i:s')." : ".$_SESSION[p_id]; + pushLockLog($connect, $locklog); + + //if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', finish'); + + return true; +} + +function addAge($connect) { + //나이와 호봉 증가 + $query = "update general set age=age+1,belong=belong+1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select startyear,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + if($admin[year] >= $admin[startyear]+3) { + $query = "select no,name,nation,leader,power,intel,history from general where specage<=age and special='0'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + $special = getSpecial($connect, $general[leader], $general[power], $general[intel]); + $query = "update general set special='$special' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "●특기 【".getGenSpecial($special)."】(을)를 익혔습니다!"; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:특기 【".getGenSpecial($special)."】(을)를 습득"); + pushGenLog($general, $log); + } + + $query = "select no,name,nation,leader,power,intel,history,npc,dex0,dex10,dex20,dex30,dex40 from general where specage2<=age and special2='0'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + $special2 = getSpecial2($connect, $general[leader], $general[power], $general[intel], 0, $general[dex0], $general[dex10], $general[dex20], $general[dex30], $general[dex40]); + + $query = "update general set special2='$special2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "●특기 【".getGenSpecial($special2)."】(을)를 익혔습니다!"; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:특기 【".getGenSpecial($special2)."】(을)를 습득"); + pushGenLog($general, $log); + } + } +} + +function turnDate($connect, $curtime) { + $query = "select startyear,starttime,turnterm,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $turn = $admin[starttime]; + $curturn = cutTurn($curtime, $admin[turnterm]); + $num = 0; + switch($admin[turnterm]) { + case 0: $term = 7200; break; + case 1: $term = 3600; break; + case 2: $term = 1800; break; + case 3: $term = 1200; break; + case 4: $term = 600; break; + case 5: $term = 300; break; + case 6: $term = 120; break; + case 7: $term = 60; break; + } + $num = floor((strtotime($curturn) - strtotime($turn)) / $term); + + $year = $admin[startyear] + floor($num / 12); + $month = 1 + (12+$num) % 12; + + // 바뀐 경우만 업데이트 + if($admin[month] != $month || $admin[year] != $year) { + $query = "update game set year='$year',month='$month' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + $value[0] = $year; + $value[1] = $month; + return $value; +} + +//한국가의 전체 전방 설정 +function SetNationFront($connect, $nationNo) { + if(!$nationNo) { return; } + // 도시소유 국가와 선포,교전중인 국가 + $query = "select me,you from diplomacy where me={$nationNo} and (state=0 or (state=1 and term<=3))"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipNum = MYDB_num_rows($result); + if($dipNum > 0) { + for($i=0; $i < $dipNum; $i++) { + $dip = MYDB_fetch_array($result); + + $query = "select city,path from city where nation={$dip[you]}"; + $result2 = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityNum = MYDB_num_rows($result2); + for($k=0; $k < $cityNum; $k++) { + $city = MYDB_fetch_array($result2); + $path = explode("|", $city[path]); + $cnt = count($path); + for($j=0; $j < $cnt; $j++) { + $adj[$path[$j]] = 1; + } + } + } + } else { + //평시이면 공백지 + $query = "select city,path from city where nation=0"; + $result2 = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityNum = MYDB_num_rows($result2); + for($k=0; $k < $cityNum; $k++) { + $city = MYDB_fetch_array($result2); + $path = explode("|", $city[path]); + $cnt = count($path); + for($j=0; $j < $cnt; $j++) { + $adj[$path[$j]] = 1; + } + } + } + $str = "city=0"; $valid = 0; + $query = "select city from city where nation={$nationNo}"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityNum = MYDB_num_rows($result); + for($i=0; $i < $cityNum; $i++) { + $city = MYDB_fetch_array($result); + if($adj[$city[city]] == 1) { $str .= " or city={$city[city]}"; $valid = 1; } + } + $query = "update city set front=0 where nation={$nationNo}"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + if($valid == 1) { + $query = "update city set front=1 where {$str}"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function checkSupply($connect) { + include_once("queue.php"); + + $query = "select city,nation,path from city"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityNum = MYDB_num_rows($result); + for($i=0; $i < $cityNum; $i++) { + $city = MYDB_fetch_array($result); + $cityPath[$city[city]] = $city[path]; + $cityNation[$city[city]] = $city[nation]; + $label[$city[city]] = 0; + } + + $select = 0; + $queue = new Queue(20); + $queue2 = new Queue(20); + $labelling = 0; + $marked = 0; + + //모든 도시 마크할 때까지 + while($marked < $cityNum) { + $queue->clear(); $queue2->clear(); + $q = $queue; $q2 = $queue2; + + $labelling++; + //마크 되지 않은 도시부터 라벨링 시작 + for($i=1; $i <= $cityNum; $i++) { + if($label[$i] == 0) { + $label[$i] = $labelling; + $labelMapping[$labelling] = $cityNation[$i]; + $comCount[$cityNation[$i]]++; + $q->push($i); + $marked++; + break; + } + } + + while($q->getSize() > 0 || $q2->getSize() > 0) { + while($q->getSize() > 0) { + $city = $q->pop(); + unset($path); + $path = explode("|", $cityPath[$city]); + for($i=0; $i < count($path); $i++) { + if($label[$path[$i]] == 0 && $cityNation[$path[$i]] == $cityNation[$city]) { + $label[$path[$i]] = $labelling; + $q2->push($path[$i]); + $marked++; + } + } + } + if($select == 0) { + $q2 = $queue; + $q = $queue2; + } else { + $q = $queue; + $q2 = $queue2; + } + $select = 1 - $select; + } + } + + //공백지는 다 보급상태 + $query = "update city set supply='1' where nation='0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //우선 다 미보급 상태로 + $query = "update city set supply='0' where nation!='0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //도시 있는 국가들 + $query = "select nation,capital from nation where level>'0'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationNum = MYDB_num_rows($result); + + $str = "city='0'"; + for($i=0; $i < $nationNum; $i++) { + $nation = MYDB_fetch_array($result); + //수도 있는 덩어리 도시들 1로 세팅 + $lbl = $label[$nation[capital]]; + + for($k=1; $k <= $cityNum; $k++) { + if($lbl == $label[$k]) { + $str .= " or city='{$k}'"; + } + } + } + $query = "update city set supply='1' where {$str}"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function updateYearly($connect) { + //통계 + checkStatistic($connect); +} + +//관직 변경 해제 +function updateQuaterly($connect) { + //천도 제한 해제, 관직 변경 제한 해제 + $query = "update nation set capset='0',l12set='0',l11set='0',l10set='0',l9set='0',l8set='0',l7set='0',l6set='0',l5set='0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //관직 변경 제한 해제 + $query = "update city set gen1set='0',gen2set='0',gen3set='0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +// 벌점 감소와 건국제한-1 전턴제한-1 외교제한-1, 1달마다 실행, 병사 있는 장수의 군량 감소, 수입비율 조정 +function preUpdateMonthly($connect) { + //연감 월결산 + $result = LogHistory($connect); + if($result == false) { return false; } + + $query = "select startyear,year,month,normgeneral from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + //배신 횟수 최대 10회 미만 + $query = "update general set betray=9 where betray>9"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //보급선 체크 + checkSupply($connect); + //미보급도시 10% 감소 + $query = "update city set pop=pop*0.9,rate=rate*0.9,agri=agri*0.9,comm=comm*0.9,secu=secu*0.9,def=def*0.9,wall=wall*0.9 where supply='0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //미보급도시 장수 5% 감소 + $query = "select city,nation from city where supply='0'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityCount = MYDB_num_rows($result); + for($i=0; $i < $cityCount; $i++) { + $city = MYDB_fetch_array($result); + //병 훈 사 5%감소 + $query = "update general set crew=crew*0.95,atmos=atmos*0.95,train=train*0.95 where city='$city[city]' and nation='$city[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + //민심30이하 공백지 처리 + $query = "select city,name,gen1,gen2,gen3 from city where rate<='30' and supply='0'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityCount = MYDB_num_rows($result); + for($i=0; $i < $cityCount; $i++) { + $city = MYDB_fetch_array($result); + + $query = "update general set level=1 where no='$city[gen1]' or no='$city[gen2]' or no='$city[gen3]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $history[count($history)] = "●$admin[year]년 $admin[month]월:【고립】$city[name](이)가 보급이 끊겨 미지배 도시가 되었습니다."; + } + pushHistory($connect, $history); + //민심30이하 공백지 처리 + $query = "update city set nation='0',gen1='0',gen2='0',gen3='0',conflict='',conflict2='',term=0,front=0 where rate<='30' and supply='0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 우선 병사수/100 만큼 소비 + $query = "update general set rice=rice-round(crew/100) where crew>=100"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 쌀이 마이너스인 장수들 소집해제 + $query = "select no,name,rice,crew,city from general where rice<0"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + + // 주민으로 돌아감 + $query = "update city set pop=pop+'$general[crew]' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set crew=0,rice=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "●군량이 모자라 병사들이 소집해제되었습니다!"; + pushGenLog($general, $log); + } + + //접률감소 + $query = "update general set connect=floor(connect*0.99)"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //건국제한, 전략제한, 외교제한-1 + $query = "update general set makelimit=makelimit-1 where makelimit>'0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update nation set tricklimit=tricklimit-1 where tricklimit>'0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update nation set surlimit=surlimit-1 where surlimit>'0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //세율 동기화 목적 + $query = "update nation set rate_tmp=rate"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //도시훈사 180년 60, 220년 87, 240년 100 + $rate = round(($admin[year] - $admin[startyear]) / 1.5) + 60; + if($rate > 100) $rate = 100; + + //금률 쌀률, 내정비용 +// $query = "select count(*) as cnt from general"; +// $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +// $gencount = MYDB_fetch_array($result); // 전체 등록자 수 +// $ratio = 50 + round($gencount[cnt] / $admin[normgeneral] * 100 / 2); // 300명 등록시에 100% 지급 + $ratio = 100; + // 20 ~ 140원 + $develcost = ($admin[year] - $admin[startyear] + 10) * 2; + $query = "update game set gold_rate='$ratio',rice_rate='$ratio',city_rate='$rate',develcost='$develcost' where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //매달 사망자 수입 결산 + processDeadIncome($connect, $ratio); + + //계략, 전쟁표시 해제 + $query = "update city set state=0 where state=31 or state=33"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set state=state-1 where state=32 or state=34"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set term=term-1 where term>0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set conflict='',conflict2='' where term=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set state=0 where state=41"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set state=41 where state=42"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set state=42 where state=43"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 계급 검사 및 승,강급 + $query = "select no,name,dedication,dedlevel,experience,explevel from general"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + + unset($log); + $log = checkDedication($connect, $general, $log); + $log = checkExperience($connect, $general, $log); + pushGenLog($general, $log); + } + + //첩보-1 + $query = "select nation,spy from nation where spy!=''"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationCount = MYDB_num_rows($result); + for($i=0; $i < $nationCount; $i++) { + $nation = MYDB_fetch_array($result); + $spy = ""; $k = 0; unset($citys); + if($nation[spy] != "") { $citys = explode("|", $nation[spy]); } + while(count($citys)) { + $citys[$k]--; + if($citys[$k]%10 != 0) { $spy .= "$citys[$k]"; } + $k++; + if($k >= count($citys)) { break; } + if($citys[$k-1]%10 != 0) { $spy .= "|"; } + } + $query = "update nation set spy='$spy' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + return true; +} + +// 외교 로그처리, 외교 상태 처리 +function postUpdateMonthly($connect) { + $query = "select startyear,year,month,scenario from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + //각 국가 전월 장수수 대비 당월 장수수로 단합도 산정 + //각 국가 장수수를 구하고 국력 산정 +// $query = "select nation,gennum from nation where level>0"; +// 국력= +// 자원(국가/장수의 금,쌀) +// 기술력 +// 인구수*내정% +// 장수능력 +// 접속률 +// 숙련도 +// 명성,공헌 + $query = " +select +A.nation, +A.gennum, A.gennum2, A.chemi, +round(( + round(((A.gold+A.rice)+(select sum(gold+rice) from general where nation=A.nation))/100) + +A.tech + +if(A.level=0,0,( + select round( + sum(pop)*sum(pop+agri+comm+secu+wall+def)/sum(pop2+agri2+comm2+secu2+wall2+def2)/100 + ) from city where nation=A.nation and supply=1 + )) + +(select sum(leader+power+intel) from general where nation=A.nation) + +(select round(sum(dex0+dex10+dex20+dex30+dex40)/1000) from general where nation=A.nation) + +(select round(sum(experience+dedication)/100) from general where nation=A.nation) + +(select round(avg(connect)) from general where nation=A.nation) +)/10) +as power +from nation A +group by A.nation +"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationCount = MYDB_num_rows($result); + for($i=0; $i < $nationCount; $i++) { + $nation = MYDB_fetch_array($result); + $genNum[$nation[nation]] = $nation[gennum]; + + if($nation[gennum] > $nation[gennum2]) { + // 장수가 증가했을때 + $nation[chemi] -= ceil(($nation[gennum] - $nation[gennum2]) / $nation[gennum] * 100); + } else { + // 장수가 감소했을때 + $nation[chemi] -= ceil(($nation[gennum2] - $nation[gennum]) / $nation[gennum2] * 100); + } + // 매달 2씩 증가 + $nation[chemi] += 2; + if($nation[chemi] < 0) { $nation[chemi] = 0; } + if($nation[chemi] > 100) { $nation[chemi] = 100; } + + //약간의 랜덤치 부여 (95% ~ 105%) + $nation[power] = round($nation[power] * (rand()%101 + 950) / 1000); + $query = "update nation set power='$nation[power]',gennum2='$nation[gennum]',chemi='$nation[chemi]' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + // 전쟁기한 세팅 + $query = "select me,you,dead,term from diplomacy where state='0'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipCount = MYDB_num_rows($result); + for($i=0; $i < $dipCount; $i++) { + $dip = MYDB_fetch_array($result); + $genCount = $genNum[$dip[me]]; + // 25% 참여율일때 두당 10턴에 4000명 소모한다고 계산 + // 4000 / 10 * 0.25 = 100 + $term = round($dip[dead] / 100 / $genCount) + 1; + if($dip[term] > $term) { $term = $dip[term]; } + if($term > 13) { $term = 13; } + $query = "update diplomacy set term='{$term}' where (me='$dip[me]' and you='$dip[you]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + //개전국 로그 + $query = "select me,you from diplomacy where state='1' and term<='1' and me= $admin[startyear]+3) { + checkWander($connect); + } + // 작위 업데이트 + updateNationState($connect); + // 천통여부 검사 + checkEmperior($connect); + //토너먼트 개시 + triggerTournament($connect); + // 시스템 거래건 등록 + registerAuction($connect); + //전방설정 + $query = "select nation from nation where level>0"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); + } +} + +function triggerTournament($connect) { + $query = "select tournament,tnmt_trig from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + //현재 토너먼트 없고, 자동개시 걸려있을때, 40%확률 + if($admin[tournament] == 0 && $admin[tnmt_trig] > 0 && rand() % 100 < 40) { + $type = rand() % 6; // 0 : 전력전, 1 : 통솔전, 2 : 일기토, 3 : 설전 + //전력전 50%, 통, 일, 설 각 17% + if($type > 3) { $type = 0; } + startTournament($connect, $admin[tnmt_trig], $type); + } +} + +function checkWander($connect) { + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + // 국가정보, 장수수 + $query = "select nation from nation where level=0"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($result); + for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($result); + + $query = "select no,name,nation,level,history,turntime from general where nation='$nation[nation]' and level=12"; + $kingResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $king = MYDB_fetch_array($kingResult); + + $log[0] = "●초반 제한후 방랑군은 자동 해산됩니다."; + pushGenLog($king, $log); + + process_56($connect, $king); + } +} + +function checkMerge($connect) { + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select * from diplomacy where state='3' and term='0'"; + $dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipcount = MYDB_num_rows($dipresult); + + for($i=0; $i < $dipcount; $i++) { + $dip = MYDB_fetch_array($dipresult); + + // 아국군주 + $query = "select no,name,history,nation from general where nation='$dip[me]' and level='12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + // 상대군주 + $query = "select no,name,history,nation,makenation from general where nation='$dip[you]' and level='12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + // 모국 + $query = "select nation,name,surlimit,history,totaltech from nation where nation='$you[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $younation = MYDB_fetch_array($result); + // 아국 + $query = "select nation,name,gold,rice,surlimit,totaltech from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $mynation = MYDB_fetch_array($result); + //양국 NPC수 + $query = "select no from general where nation='$you[nation]' and npc>=2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $npccount = MYDB_num_rows($result); + //양국 NPC수 + $query = "select no from general where nation='$me[nation]' and npc>=2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $npccount2 = MYDB_num_rows($result); + + //피항복국 장수들 역사 기록 및 로그 전달 + $query = "select no,name,nation,history from general where nation='$you[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $genlog[0] = "$mynation[name](와)과 통합에 성공했습니다."; + for($i=0; $i < $gencount; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $genlog); + $gen = addHistory($connect, $gen, "●$admin[year]년 $admin[month]월:$mynation[name]$you[makenation]로 통합에 성공"); + } + //항복국 장수들 역사 기록 및 로그 전달 + $query = "select no,name,nation,history from general where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount2 = MYDB_num_rows($result); + $genlog[0] = "$younation[name](와)과 통합에 성공했습니다."; + for($i=0; $i < $gencount2; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $genlog); + $gen = addHistory($connect, $gen, "●$admin[year]년 $admin[month]월:$younation[name]$you[makenation]로 통합에 성공"); + } + + $history[count($history)] = "●$admin[year]년 $admin[month]월:【통합】$mynation[name](와)과 $younation[name](이)가 $you[makenation](으)로 통합하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【혼란】통합에 반대하는 세력들로 인해 $you[makenation]에 혼란이 일고 있습니다."; + $younation = addNationHistory($connect, $younation, "●$admin[year]년 $admin[month]월:$mynation[name]$you[makenation]로 통합"); + + $newGenCount = $gencount + $gencount2; + if($newGenCount < 10) { $newGenCount = 10; } + $newTotalTech = $younation[totaltech] + $mynation[totaltech]; + $newTech = round($newTotalTech / $newGenCount); + // 자금 통합, 외교제한 5년, 기술유지 + $query = "update nation set name='$you[makenation]',gold=gold+'$mynation[gold]',rice=rice+'$mynation[rice]',surlimit='24',totaltech='$newTotalTech',tech='$newTech',gennum='{$newGenCount}' where nation='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //국가 삭제 + $query = "delete from nation where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 아국 모든 도시들 상대국 소속으로 + $query = "update city set nation='$you[nation]',gen1='0',gen2='0',gen3='0',conflict='',conflict2='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 아국 모든 장수들 일반으로 하고 상대국 소속으로, 수도로 이동 + $query = "update general set belong=1,level=1,nation='$you[nation]' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 공헌도0.9, 명성0.9 + $query = "update general set dedication=dedication*0.9,experience=experience*0.9 where nation='$you[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 부대도 모두 국가 소속 변경 + $query = "update troop set nation='$you[nation]' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 통합국 모든 도시 5% 감소 + $query = "update city set pop=pop*0.95,agri=agri*0.95,comm=comm*0.95,secu=secu*0.95,rate=rate*0.95,def=def*0.95,wall=wall*0.95 where nation='$you[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 외교 삭제 + $query = "delete from diplomacy where me='$me[nation]' or you='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // NPC들 일부 하야 (양국중 큰쪽 장수수의 90~110%만큼) + $resignCount = 0; + if($npccount >= $npccount2) { + $resignCount = round($npccount*(rand()%21+90)/100); + } else { + $resignCount = round($npccount2*(rand()%21+90)/100); + } + $resignCommand = EncodeCommand(0, 0, 0, 45); //하야 + $query = "update general set turn0='$resignCommand' where nation='$you[nation]' and npc>=2 order by rand() limit {$resignCount}"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + pushGenLog($me, $mylog); + pushGenLog($you, $youlog); + pushHistory($connect, $history); + unset($mylog); + unset($youlog); + unset($history); + } +} + +function checkSurrender($connect) { + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select * from diplomacy where state='5' and term='0'"; + $dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipcount = MYDB_num_rows($dipresult); + + for($i=0; $i < $dipcount; $i++) { + $dip = MYDB_fetch_array($dipresult); + + // 아국군주 + $query = "select no,name,history,nation from general where nation='$dip[me]' and level='12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + // 상대군주 + $query = "select no,name,history,nation,makenation from general where nation='$dip[you]' and level='12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + // 모국 + $query = "select nation,name,surlimit,history,totaltech from nation where nation='$you[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $younation = MYDB_fetch_array($result); + // 아국 + $query = "select nation,name,gold,rice,surlimit,totaltech from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $mynation = MYDB_fetch_array($result); + //양국 NPC수 + $query = "select no from general where nation='$you[nation]' and npc>=2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $npccount = MYDB_num_rows($result); + //양국 NPC수 + $query = "select no from general where nation='$me[nation]' and npc>=2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $npccount2 = MYDB_num_rows($result); + + //피항복국 장수들 역사 기록 및 로그 전달 + $query = "select no,name,nation,history from general where nation='$you[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $genlog[0] = "$mynation[name] 합병에 성공했습니다."; + for($i=0; $i < $gencount; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $genlog); + $gen = addHistory($connect, $gen, "●$admin[year]년 $admin[month]월:$mynation[name] 합병에 성공"); + } + //항복국 장수들 역사 기록 및 로그 전달 + $query = "select no,name,nation,history from general where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount2 = MYDB_num_rows($result); + $genlog[0] = "$younation[name](으)로 항복하여 수도로 이동합니다."; + for($i=0; $i < $gencount2; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $genlog); + $gen = addHistory($connect, $gen, "●$admin[year]년 $admin[month]월:$mynation[name]$younation[name](으)로 항복"); + } + + $history[count($history)] = "●$admin[year]년 $admin[month]월:【투항】$mynation[name] (이)가 $younation[name](으)로 항복하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【혼란】통합에 반대하는 세력들로 인해 $younation[name]에 혼란이 일고 있습니다."; + $younation = addNationHistory($connect, $younation, "●$admin[year]년 $admin[month]월:$mynation[name](와)과 합병"); + + $newGenCount = $gencount + $gencount2; + if($newGenCount < 10) { $newGenCount = 10; } + $newTotalTech = $younation[totaltech] + $mynation[totaltech]; + $newTech = round($newTotalTech / $newGenCount); + // 자금 통합, 외교제한 5년, 기술유지 + $query = "update nation set gold=gold+'$mynation[gold]',rice=rice+'$mynation[rice]',surlimit='24',totaltech='$newTotalTech',tech='$newTech',gennum='{$newGenCount}' where nation='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //합병 당한국 모든 도시 10%감소 + $query = "update city set pop=pop*0.9,agri=agri*0.9,comm=comm*0.9,secu=secu*0.9,rate=rate*0.9,def=def*0.9,wall=wall*0.9 where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //합병 시도국 모든 도시 5%감소 + $query = "update city set pop=pop*0.95,agri=agri*0.95,comm=comm*0.95,secu=secu*0.95,rate=rate*0.95,def=def*0.95,wall=wall*0.95 where nation='$you[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //국가 삭제 + $query = "delete from nation where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 군주가 있는 위치 구함 + $query = "select city from general where nation='$you[nation]' and level='12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $king = MYDB_fetch_array($result); + // 아국 모든 도시들 상대국 소속으로 + $query = "update city set nation='$you[nation]',gen1='0',gen2='0',gen3='0',conflict='',conflict2='' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 제의국 모든 장수들 공헌도0.95, 명성0.95 + $query = "update general set dedication=dedication*0.95,experience=experience*0.95 where nation='$you[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 아국 모든 장수들 일반으로 하고 상대국 소속으로, 수도로 이동, 공헌도1.1, 명성0.9 + $query = "update general set belong=1,level=1,nation='$you[nation]',city='$king[city]',dedication=dedication*1.1,experience=experience*0.9 where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 부대도 모두 국가 소속 변경 + $query = "update troop set nation='$you[nation]' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 외교 삭제 + $query = "delete from diplomacy where me='$me[nation]' or you='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // NPC들 일부 하야 (양국중 큰쪽 장수수의 90~110%만큼) + $resignCount = 0; + if($npccount >= $npccount2) { + $resignCount = round($npccount*(rand()%21+90)/100); + } else { + $resignCount = round($npccount2*(rand()%21+90)/100); + } + $resignCommand = EncodeCommand(0, 0, 0, 45); //하야 + $query = "update general set turn0='$resignCommand' where nation='$you[nation]' and npc>=2 order by rand() limit {$resignCount}"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + pushGenLog($me, $mylog); + pushGenLog($you, $youlog); + pushHistory($connect, $history); + unset($mylog); + unset($youlog); + unset($history); + } +} + +function updateNationState($connect) { + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select nation,name,level,history from nation"; + $nationresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($nationresult); + + for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($nationresult); + + $query = "select city,level,secu from city where nation='$nation[nation]' and level>=4"; + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($cityresult); + + $query = "select no from general where nation='$nation[nation]'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($genresult); + + if($citycount == 0) { + $nationlevel = 0; // 방랑군 + } elseif($citycount == 1) { + $nationlevel = 1; // 호족 + } elseif($citycount <= 4) { + $nationlevel = 2; // 군벌 + } elseif($citycount <= 7) { + $nationlevel = 3; // 주자사 + } elseif($citycount <= 10) { + $nationlevel = 4; // 주목 + } elseif($citycount <= 15) { + $nationlevel = 5; // 공 + } elseif($citycount <= 20) { + $nationlevel = 6; // 왕 + } else { + $nationlevel = 7; // 황제 + } + + if($nationlevel > $nation[level]) { + $nation[level] = $nationlevel; + + switch($nationlevel) { + case 7: + $history[count($history)] = "●$admin[year]년 $admin[month]월:【작위】$nation[name]의 군주가 ".getNationLevel($nationlevel)."(을)를 자칭하였습니다."; + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$nation[name]의 군주가 ".getNationLevel($nationlevel)."(을)를 자칭"); + break; + case 6: + $history[count($history)] = "●$admin[year]년 $admin[month]월:【작위】$nation[name]의 군주가 ".getNationLevel($nationlevel)."에 등극하였습니다."; + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$nation[name]의 군주가 ".getNationLevel($nationlevel)."에 등극"); + break; + case 5: + case 4: + case 3: + $history[count($history)] = "●$admin[year]년 $admin[month]월:【작위】$nation[name]의 군주가 ".getNationLevel($nationlevel)."에 임명되었습니다."; + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$nation[name]의 군주가 ".getNationLevel($nationlevel)."에 임명됨"); + break; + case 2: + $history[count($history)] = "●$admin[year]년 $admin[month]월:【작위】$nation[name]의 군주가 독립하여 ".getNationLevel($nationlevel)."로 나섰습니다."; + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$nation[name]의 군주가 ".getNationLevel($nationlevel)."로 나서다"); + break; + } + + //작위 상승 + $query = "update nation set level='$nation[level]' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + $gennum = $gencount; + if($gencount < 10) $gencount = 10; + //기술 및 변경횟수 업데이트 + $myset = $nation[level] + 1; + $query = "update nation set tech=totaltech/'$gencount',gennum='$gennum',myset='$myset' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + pushHistory($connect, $history); +} + +function checkStatistic($connect) { + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $etc = ''; + + $query = "select avg(gold) as avggold, avg(rice) as avgrice, avg(dex0+dex10+dex20+dex30) as avgdex, max(dex0+dex10+dex20+dex30) as maxdex, avg(experience+dedication) as avgexpded, max(experience+dedication) as maxexpded from general"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + $general[avggold] = round($general[avggold]); + $general[avgrice] = round($general[avgrice]); + $general[avgdex] = round($general[avgdex]); + $general[avgexpded] = round($general[avgexpded]); + $etc .= "평균 금/쌀 ({$general[avggold]}/{$general[avgrice]}), 평균/최고 숙련({$general[avgdex]}/{$general[maxdex]}), 평균/최고 경험공헌({$general[avgexpded]}/{$general[maxexpded]}), "; + + $query = "select min(tech) as mintech, max(tech) as maxtech, avg(tech) as avgtech, min(power) as minpower, max(power) as maxpower, avg(power) as avgpower from nation where level>0"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + $nation[avgtech] = round($nation[avgtech]); + $nation[avgpower] = round($nation[avgpower]); + $etc .= "최저/평균/최고 기술({$nation[mintech]}/{$nation[avgtech]}/{$nation[maxtech]}), "; + $etc .= "최저/평균/최고 국력({$nation[minpower]}/{$nation[avgpower]}/{$nation[maxpower]}), "; + + $nationName = ''; + $power_hist = ''; + + $query = "select nation,name,type,power,gennum,round((gold+rice)/100) as goldrice from nation where level>0 order by power desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationCount = MYDB_num_rows($result); + for($i=0; $i < $nationCount; $i++) { + $nation = MYDB_fetch_array($result); + + $query = "select sum(leader+power+intel) as abil,round(sum(gold+rice)/100) as goldrice,round(sum(dex0+dex10+dex20+dex30)/1000) as dex,round(sum(experience+dedication)/100) as expded from general where nation='{$nation['nation']}'"; + $result2 = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result2); + + $query = "select count(*) as cnt,round(sum(pop)/100) as pop,round(sum(pop2)/100) as pop2 from city where nation='{$nation['nation']}'"; + $result2 = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result2); + + $nationName .= $nation['name'].'('.getNationType($nation['type']).'), '; + $power_hist .= "{$nation['name']}({$nation['power']}/{$nation['gennum']}/{$city['cnt']}/{$city['pop']}/{$city['pop2']}/{$nation['goldrice']}/{$general['goldrice']}/{$general['abil']}/{$general['dex']}/{$general['expded']}), "; + $nationHists[$nation['type']]++; + } + + $nationHist = ''; + for($i=1; $i <= 13; $i++) { + if(!$nationHists[$i]) { $nationHists[$i] = '-'; } + $nationHist .= getNationType($i)."({$nationHists[$i]}), "; + } + + $query = "select no from general where npc <= 1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + + $query = "select no from general where npc > 1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $npcCount = MYDB_num_rows($result); + + $query = "select personal,special,special2 from general"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $generalCount = MYDB_num_rows($result); + for($i=0; $i < $generalCount; $i++) { + $general = MYDB_fetch_array($result); + + $personalHists[$general['personal']]++; + $specialHists[$general['special']]++; + $specialHists2[$general['special2']]++; + } + + $generalCountStr = "{$generalCount}({$genCount}+{$npcCount})"; + + $personalHist = ''; + for($i=0; $i < 11; $i++) { + if(!$personalHists[$i]) { $personalHists[$i] = '-'; } + $personalHist .= getGenChar($i)."({$personalHists[$i]}), "; + } + $specialHist = ''; + for($i=0; $i < 40; $i++) { + $call = getGenSpecial($i); + if($call) { + if(!$specialHists[$i]) { $specialHists[$i] = '-'; } + + $specialHist .= $call."({$specialHists[$i]}), "; + } + } + $specialHist .= '// '; + $specialHist .= "-({$specialHists2[0]}), "; + for($i=40; $i < 80; $i++) { + $call = getGenSpecial($i); + if($call) { + if(!$specialHists2[$i]) { $specialHists2[$i] = '-'; } + + $specialHist .= $call."({$specialHists2[$i]}), "; + } + } + + $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); + 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 = " + insert into statistic ( + year, month, + nation_count, nation_name, nation_hist, + gen_count, personal_hist, special_hist, power_hist, + crewtype, etc + ) values ( + '$admin[year]', '$admin[month]', + '$nationCount', '$nationName', '$nationHist', + '$generalCountStr', '$personalHist', '$specialHist', '$power_hist', + '$crewtype', '$etc' + )"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function checkEmperior($connect) { + $query = "select year,month,isUnited from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select nation,name,history from nation where level>0"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + if($count == 1 && $admin[isUnited] == 0) { + $nation = MYDB_fetch_array($result); + + $query = "select city from city where nation='$nation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + $query = "select city from city"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $allcount = MYDB_num_rows($result); + + if($count == $allcount) { + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$nation[name](이)가 전토를 통일"); + + $query = "update game set isUnited=2,conlimit=conlimit*100 where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select no from general where npc<2 and age>50"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + for($i=0; $i < $count; $i++) { + $general = MYDB_fetch_array($result); + CheckHall($connect, $general[no]); + } + + $query = "select nation,name,type,color,gold,rice,power,gennum,history from nation where nation='$nation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select SUM(pop) as totalpop,SUM(pop2) as maxpop from city where nation='$nation[nation]'"; // 도시 이름 목록 + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($cityresult); + $pop = "{$city[totalpop]} / {$city[maxpop]}"; + $poprate = round($city[totalpop]/$city[maxpop]*100, 2); + $poprate .= " %"; + + $query = "select name,picture,belong from general where nation='$nation[nation]' and level='12'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $level12 = MYDB_fetch_array($genresult); + + $query = "select name,picture,belong from general where nation='$nation[nation]' and level='11'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $level11 = MYDB_fetch_array($genresult); + + $query = "select name,picture,belong from general where nation='$nation[nation]' and level='10'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $level10 = MYDB_fetch_array($genresult); + + $query = "select name,picture,belong from general where nation='$nation[nation]' and level='9'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $level9 = MYDB_fetch_array($genresult); + + $query = "select name,picture,belong from general where nation='$nation[nation]' and level='8'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $level8 = MYDB_fetch_array($genresult); + + $query = "select name,picture,belong from general where nation='$nation[nation]' and level='7'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $level7 = MYDB_fetch_array($genresult); + + $query = "select name,picture,belong from general where nation='$nation[nation]' and level='6'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $level6 = MYDB_fetch_array($genresult); + + $query = "select name,picture,belong from general where nation='$nation[nation]' and level='5'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $level5 = MYDB_fetch_array($genresult); + + $query = "select name,picture,killnum from general where nation='$nation[nation]' order by killnum desc limit 5"; // 오호장군 + $tigerresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $tigernum = MYDB_num_rows($tigerresult); + for($i=0; $i < $tigernum; $i++) { + $tiger = MYDB_fetch_array($tigerresult); + if($tiger[killnum] > 0) { + $tigerstr .= "{$tiger[name]}【{$tiger[killnum]}】, "; + } + } + + $query = "select name,picture,firenum from general where nation='$nation[nation]' order by firenum desc limit 7"; // 건안칠자 + $eagleresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $eaglenum = MYDB_num_rows($eagleresult); + for($i=0; $i < $eaglenum; $i++) { + $eagle = MYDB_fetch_array($eagleresult); + if($eagle[firenum] > 0) { + $eaglestr .= "{$eagle[name]}【{$eagle[firenum]}】, "; + } + } + + $log[0] = "●$admin[year]년 $admin[month]월: $nation[name](이)가 전토를 통일하였습니다."; + + $query = "select no,name from general where nation='$nation[nation]' order by dedication desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + $gen .= "{$general[name]}, "; + + pushGenLog($general, $log); + } + + $nation[type] = getNationType($nation[type]); + + $query = "select MAX(nation_count) as nc,MAX(gen_count) as gc from statistic"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $stat = MYDB_fetch_array($result); + + $query = "select count(*) as cnt from general"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_fetch_array($result); + + $statNC = "1 / {$stat[nc]}"; + $statGC = "{$gencount[cnt]} / {$stat[gc]}"; + + $query = "select nation_count,nation_name,nation_hist from statistic where nation_count='$stat[nc]' limit 0,1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $statNation = MYDB_fetch_array($result); + + $query = "select gen_count,personal_hist,special_hist from statistic order by no desc limit 0,1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $statGeneral = MYDB_fetch_array($result); + + $query = " + insert into emperior ( + phase, + nation_count, nation_name, nation_hist, + gen_count, personal_hist, special_hist, + name, type, color, year, month, power, gennum, citynum, + pop, poprate, gold, rice, + l12name, l12pic, l11name, l11pic, + l10name, l10pic, l9name, l9pic, + l8name, l8pic, l7name, l7pic, + l6name, l6pic, l5name, l5pic, + tiger, eagle, gen, history + ) values ( + '-', + '$statNC', '$statNation[nation_name]', '$statNation[nation_hist]', + '$statGC', '$statGeneral[personal_hist]', '$statGeneral[special_hist]', + '$nation[name]', '$nation[type]', '$nation[color]', '$admin[year]', '$admin[month]', '$nation[power]', '$nation[gennum]', '$allcount', + '$pop', '$poprate', '$nation[gold]', '$nation[rice]', + '$level12[name]', '$level12[picture]', '$level11[name]', '$level11[picture]', + '$level10[name]', '$level10[picture]', '$level9[name]', '$level9[picture]', + '$level8[name]', '$level8[picture]', '$level7[name]', '$level7[picture]', + '$level6[name]', '$level6[picture]', '$level5[name]', '$level5[picture]', + '$tigerstr', '$eaglestr', '$gen', '$nation[history]' + )"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $history[count($history)] = "●$admin[year]년 $admin[month]월:【통일】$nation[name](이)가 전토를 통일하였습니다."; + pushHistory($connect, $history); + + //연감 월결산 + LogHistory($connect); + } + } +} + +function PreprocessCommand($connect, $no) { + $query = "select no,name,city,injury,special2,item,turn0 from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + if($general[special2] == 73 || $general[item] == 23 || $general[item] == 24) { + //특기보정 : 의술 + //의서 사용 + if($general[injury] > 0) { + $general[injury] = 0; + $query = "update general set injury=0 where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "의술을 펼쳐 스스로 치료합니다!"; + pushGenLog($general, $log); + } + + $query = "select no,name,injury from general where city='$general[city]' and injury>10 order by rand()"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $patientCount = MYDB_num_rows($result); + + if($patientCount > 0) { + // 50% 확률로 치료 + $patientCount = round($patientCount * 0.5); + + $patientName = ""; + for($i=0; $i < $patientCount; $i++) { + $patient = MYDB_fetch_array($result); + + //부상 치료 + $query = "update general set injury=0 where no='$patient[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "{$general['name']}(이)가 의술로써 치료해줍니다!"; + pushGenLog($patient, $log); + + if($patientName == "") { + $patientName = $patient['name']; + } + } + + if($patientCount == 1) { + $log[0] = "의술을 펼쳐 도시의 장수 {$patientName}(을)를 치료합니다!"; + } else { + $patientCount -= 1; + $log[0] = "의술을 펼쳐 도시의 장수들 {$patientName} 외 {$patientCount}명을 치료합니다!"; + } + pushGenLog($general, $log); + } + } + + if($general[injury] > 0) { + if($general[item] >=7 && $general[item] <= 11) { + //영구약 사용 + $query = "update general set injury=0 where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "".getItemName($general[item])."(을)를 사용하여 치료합니다!"; + pushGenLog($general, $log); + } elseif($general[injury] > 10 && $general[item] == 1 && $general[turn0] != EncodeCommand(0, 0, 0, 50)) { + //환약 사용 + $query = "update general set injury=0,item=0 where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "환약을 사용하여 치료합니다!"; + pushGenLog($general, $log); + } elseif($general[injury] > 10) { + //부상 감소 + $query = "update general set injury=injury-10 where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + //부상 감소 + $query = "update general set injury=0 where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } +} + +function processCommand($connect, $no) { + $query = "select npc,no,name,userlevel,picture,imgsvr,nation,nations,city,troop,injury,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,history,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40 from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select month,killturn from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + // 블럭자는 미실행. 삭턴 감소 + if($general[block] == 2) { + $date = substr($general[turntime],11,5); + $log[count($log)] = "●{$admin[month]}월:현재 멀티, 또는 비매너로 인한블럭 대상자입니다. <1>$date"; + pushGenLog($general, $log); + + $query = "update general set recturn='',resturn='BLOCK_2',myset=3,con=0,killturn=killturn-1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($general[block] == 3) { + $date = substr($general[turntime],11,5); + $log[count($log)] = "●{$admin[month]}월:현재 악성유저로 분류되어 블럭, 발언권 무효 대상자입니다. <1>$date"; + pushGenLog($general, $log); + + $query = "update general set recturn='',resturn='BLOCK_3',myset=3,con=0,killturn=killturn-1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + if($general[level] >= 5 && $general[level] <= 12) { + $query = "select l{$general[level]}turn0,l{$general[level]}term from nation where nation='$general[nation]'"; + $coreresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $core = MYDB_fetch_array($coreresult); + $corecommand = DecodeCommand($core["l{$general[level]}turn0"]); + //연속턴 아닌경우 텀 리셋 + if($core["l{$general[level]}term"]%100 != $corecommand[0]) { + $query = "update nation set l{$general[level]}term=0 where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + switch($corecommand[0]) { + case 23: process_23($connect, $general); break; //포상 + case 24: process_24($connect, $general); break; //몰수 + case 27: process_27($connect, $general); break; //발령 + case 51: process_51($connect, $general); break; //항복권고 + case 52: process_52($connect, $general); break; //원조 + case 53: process_53($connect, $general); break; //통합제의 + case 61: process_61($connect, $general); break; //불가침제의 + case 62: process_62($connect, $general); break; //선전 포고 + case 63: process_63($connect, $general); break; //종전 제의 + case 64: process_64($connect, $general); break; //파기 제의 + case 65: process_65($connect, $general); break; //초토화 + case 66: process_66($connect, $general); break; //천도 + case 67: process_67($connect, $general); break; //증축 + case 68: process_68($connect, $general); break; //감축 + case 71: process_71($connect, $general); break; //필사즉생 + case 72: process_72($connect, $general); break; //백성동원 + case 73: process_73($connect, $general); break; //수몰 + case 74: process_74($connect, $general); break; //허보 + case 75: process_75($connect, $general); break; //피장파장 + case 76: process_76($connect, $general); break; //의병모집 + case 77: process_77($connect, $general); break; //이호경식 + case 78: process_78($connect, $general); break; //급습 + case 81: process_81($connect, $general); break; //국기변경 + case 99: break; //수뇌부휴식 + } + + //장수정보 재로드 + $query = "select npc,no,name,userlevel,picture,imgsvr,nation,nations,city,troop,injury,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,history,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40 from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + } + + $command = DecodeCommand($general[turn0]); + //삭턴 처리 + if($general[npc] >= 2 || $general[killturn] > $admin[killturn]) { + $query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn=killturn-1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif(floor($command[0]) == 0 && $general[userlevel] < 5) { + $query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn=killturn-1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn='$admin[killturn]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + //연속턴 아닌경우 텀 리셋 + if($general[term]%100 != $command[0]) { + $query = "update general set term=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + //턴 처리 + switch($command[0]) { + case 0: //휴식 + $date = substr($general[turntime],11,5); + $log[count($log)] = "●{$admin[month]}월:아무것도 실행하지 않았습니다. <1>$date"; + pushGenLog($general, $log); + break; + case 1: process_1($connect, $general, 1); break; //농업 + case 2: process_1($connect, $general, 2); break; //상업 + case 3: process_3($connect, $general); break; //기술 + case 4: process_4($connect, $general); break; //선정 + case 5: process_5($connect, $general, 1); break; //수비 + case 6: process_5($connect, $general, 2); break; //성벽 + case 7: process_7($connect, $general); break; //정착 장려 + case 8: process_8($connect, $general); break; //치안 + case 9: process_9($connect, $general); break; //조달 + + case 11: process_11($connect, $general, 1); break; //징병 + case 12: process_11($connect, $general, 2); break; //모병 + case 13: process_13($connect, $general); break; //훈련 + case 14: process_14($connect, $general); break; //사기진작 + case 15: process_15($connect, $general); break; //전투태세 + case 16: process_16($connect, $general); break; //전쟁 + case 17: process_17($connect, $general); break; //소집해제 + + case 21: process_21($connect, $general); break; //이동 + case 22: process_22($connect, $general); break; //등용 + case 25: process_25($connect, $general); break; //임관 + case 26: process_26($connect, $general); break; //집합 + case 28: process_28($connect, $general); break; //귀환 + case 29: process_29($connect, $general); break; //인재탐색 + case 30: process_30($connect, $general); break; //강행 + + case 31: process_31($connect, $general); break; //첩보 + case 32: process_32($connect, $general); break; //화계 + case 33: process_33($connect, $general); break; //탈취 + case 34: process_34($connect, $general); break; //파괴 + case 35: process_35($connect, $general); break; //선동 + case 36: process_36($connect, $general); break; //기습 + + case 41: process_41($connect, $general); break; //단련 + case 42: process_42($connect, $general); break; //견문 + case 43: process_43($connect, $general); break; //증여 + case 44: process_44($connect, $general); break; //헌납 + case 45: process_45($connect, $general); break; //하야 + case 46: process_46($connect, $general); break; //건국 + case 47: process_47($connect, $general); break; //방랑 + case 48: process_48($connect, $general); break; //장비매매 + case 49: process_49($connect, $general); break; //군량매매 + case 50: process_50($connect, $general); break; //요양 + + case 54: process_54($connect, $general); break; //선양 + case 55: process_55($connect, $general); break; //거병 + case 56: process_56($connect, $general); break; //해산 + case 57: process_57($connect, $general); break; //모반 시도 + } + } +} + +function updateCommand($connect, $no, $type=0) { + $query = "select no,nation,level from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + if($type == 0 || $type == 1) { // 턴처리후, 당기기 + $query = " +update general set +turn0=turn1,turn1=turn2,turn2=turn3,turn3=turn4,turn4=turn5,turn5=turn6,turn6=turn7,turn7=turn8,turn8=turn9, +turn9=turn10,turn10=turn11,turn11=turn12,turn12=turn13,turn13=turn14,turn14=turn15,turn15=turn16,turn16=turn17, +turn17=turn18,turn18=turn19,turn19=turn20,turn20=turn21,turn21=turn22,turn22=turn23,turn23='00000000000000' +where no='$general[no]' +"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + if($type == 2 || ($general[level] >= 5 && $general[level] <= 12 && $type == 0)) { // 턴 처리후 수뇌부, 수뇌부 당기기 + $turn = "l{$general[level]}turn"; + $query = " +update nation set +{$turn}0={$turn}1,{$turn}1={$turn}2, +{$turn}2={$turn}3,{$turn}3={$turn}4, +{$turn}4={$turn}5,{$turn}5={$turn}6, +{$turn}6={$turn}7,{$turn}7={$turn}8, +{$turn}8={$turn}9,{$turn}9={$turn}10, +{$turn}10={$turn}11,{$turn}11='00000000000099' +where nation='$general[nation]' +"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function backupdateCommand($connect, $no, $type=0) { + $query = "select no,nation,level from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + if($type == 1) { // 미루기 + $query = " +update general set +turn23=turn22,turn22=turn21, +turn21=turn20,turn20=turn19, +turn19=turn18,turn18=turn17, +turn17=turn16,turn16=turn15, +turn15=turn14,turn14=turn13, +turn13=turn12,turn12=turn11, +turn11=turn10,turn10=turn9, +turn9=turn8,turn8=turn7, +turn7=turn6,turn6=turn5, +turn5=turn4,turn4=turn3, +turn3=turn2,turn2=turn1, +turn1=turn0,turn0='00000000000000' +where no='$no' +"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($type == 2) { // 수뇌부 미루기 + $turn = "l{$general[level]}turn"; + $query = " +update nation set +{$turn}11={$turn}10,{$turn}10={$turn}9, +{$turn}9={$turn}8,{$turn}8={$turn}7, +{$turn}7={$turn}6,{$turn}6={$turn}5, +{$turn}5={$turn}4,{$turn}4={$turn}3, +{$turn}3={$turn}2,{$turn}2={$turn}1, +{$turn}1={$turn}0,{$turn}0='00000000000099' +where nation='$general[nation]' +"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function updateTurntime($connect, $no) { + $query = "select year,month,isUnited,turnterm from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select no,name,name2,nation,troop,age,turntime,history,killturn,level,deadyear,npc,npc_org,npcmatch,npcid from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + // 삭턴장수 삭제처리 + if($general[killturn] <= 0) { + // npc유저 삭턴시 npc로 전환 + if($general[npc] == 1 && $general[deadyear] > $admin[year]) { + $npcid = "gen" . $general[npcid]; + $pw = md5("18071807"); + $general[killturn] = ($general[deadyear] - $admin[year]) * 12; + $general[npc] = $general[npc_org]; + $query = "update general set user_id='$npcid',password='$pw',npc='$general[npc]',killturn='$general[killturn]',mode=2 where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $alllog[0] = "●{$admin[month]}월:$general[name2](이)가 $general[name]의 육체에서 유체이탈합니다!"; + pushAllLog($alllog); + + if($admin[isUnited] == 0) { + CheckHall($connect, $no); + } + } else { + // 군주였으면 유지 이음 + if($general[level] == 12) { + nextRuler($connect, $general); + } + + //도시의 태수, 군사, 시중직도 초기화 + $query = "update city set gen1='0' where gen1='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen2='0' where gen2='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen3='0' where gen3='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 부대 처리 + $query = "select no from troop where troop='$general[troop]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $troop = MYDB_fetch_array($result); + + //부대장일 경우 + if($troop[no] == $general[no]) { + // 모두 탈퇴 + $query = "update general set troop='0' where troop='$general[troop]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 부대 삭제 + $query = "delete from troop where troop='$general[troop]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update general set troop='0' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + // 장수 삭제 + $query = "delete from general where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //기존 국가 기술력 그대로 + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $gennum = $gencount; + if($gencount < 10) $gencount = 10; + + $query = "update nation set totaltech=tech*'$gencount',gennum='$gennum' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 병, 요절, 객사, 번개, 사채, 일확천금, 호랑이, 곰, 수영, 처형, 발견 + switch(rand()%42) { + case 0: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 역병에 걸려 죽고 말았습니다."; break; + case 1: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 요절하고 말았습니다."; break; + case 2: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 거리에서 갑자기 객사하고 말았습니다."; break; + case 3: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 안타깝게도 번개에 맞아 죽고 말았습니다."; break; + case 4: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 고리대금에 시달리다가 자살하고 말았습니다."; break; + case 5: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 일확천금에 놀라 심장마비로 죽고 말았습니다."; break; + case 6: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 산속에서 호랑이에게 물려 죽고 말았습니다."; break; + case 7: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 산책중 곰에게 할퀴어 죽고 말았습니다."; break; + case 8: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 수영을 하다 익사하고 말았습니다."; break; + case 9: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 황제를 모독하다가 처형당하고 말았습니다."; break; + case 10: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 이튿날 침실에서 죽은채로발견되었습니다."; break; + case 11: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 색에 빠져 기력이 쇠진해 죽고말았습니다."; break; + case 12: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 미녀를 보고 심장마비로 죽고말았습니다."; break; + case 13: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 우울증에 걸려 자살하고 말았습니다."; break; + case 14: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 천하 정세를 비관하며 분신하고 말았습니다."; break; + case 15: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 어떤 관심도 못받고 쓸쓸히 죽고말았습니다."; break; + case 16: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 유산 상속 문제로 다투다가 살해당했습니다."; break; + case 17: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 누군가의 사주로 자객에게 암살당했습니다."; break; + case 18: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 바람난 배우자에게 독살당하고 말았습니다."; break; + case 19: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 농약을 술인줄 알고 마셔 죽고말았습니다."; break; + case 20: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 아무 이유 없이 죽고말았습니다."; break; + case 21: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 전재산을 잃고 화병으로 죽고말았습니다."; break; + case 22: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 단식운동을 하다가 굶어 죽고말았습니다."; break; + case 23: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 귀신에게 홀려 시름 앓다가 죽고말았습니다."; break; + case 24: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 사람들에게 집단으로 맞아서 죽고말았습니다."; break; + case 25: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 갑자기 성벽에서 뛰어내려 죽고말았습니다."; break; + case 26: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 농사중 호미에 머리를 맞아 죽고말았습니다."; break; + case 27: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 저세상이 궁금하다며 자살하고 말았습니다."; break; + case 28: $alllog[0] = "●{$admin[month]}월:운좋기로 소문난 $general[name](이)가 불운하게도 죽고말았습니다."; break; + case 29: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 무리하게 단련을 하다가 죽고말았습니다."; break; + case 30: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 생활고를 비관하며 자살하고 말았습니다."; break; + case 31: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 평생 결혼도 못해보고 죽고 말았습니다."; break; + case 32: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 과식하다 배가 터져 죽고 말았습니다."; break; + case 33: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 웃다가 숨이 넘어가 죽고 말았습니다."; break; + case 34: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 추녀를 보고 놀라서 죽고 말았습니다."; break; + case 35: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 물에 빠진 사람을 구하려다 같이 죽고 말았습니다."; break; + case 36: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 독살을 준비하다 독에 걸려 죽고 말았습니다."; break; + case 37: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 뒷간에서 너무 힘을 주다가 죽고 말았습니다."; break; + case 38: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 돌팔이 의사에게 치료받다가 죽고 말았습니다."; break; + case 39: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 남의 보약을 훔쳐먹다 부작용으로 죽고 말았습니다."; break; + case 40: $alllog[0] = "●{$admin[month]}월:희대의 사기꾼 $general[name](이)가 사망했습니다."; break; + case 41: $alllog[0] = "●{$admin[month]}월:희대의 호색한 $general[name](이)가 사망했습니다."; break; + default: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 사망했습니다."; break; + } + // 엔피씨,엠피씨,의병 사망로그 + if($general[npc] == 2) { + $alllog[0] = "●{$admin[month]}월:$general[name](이)가 사망했습니다."; + } elseif($general[npc] >= 3) { + switch(rand()%10) { + case 0: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 푸대접에 실망하여 떠났습니다."; break; + case 1: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 갑자기 화를 내며 떠났습니다."; break; + case 2: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 의견차이를 좁히지 못하고 떠났습니다."; break; + case 3: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 판단 착오였다며 떠났습니다."; break; + case 4: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 생활고가 나아지지 않는다며 떠났습니다."; break; + case 5: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 기대가 너무 컸다며 떠났습니다."; break; + case 6: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 아무 이유 없이 떠났습니다."; break; + case 7: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 자기 목적은 달성했다며 떠났습니다."; break; + case 8: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 자기가 없어도 될것 같다며 떠났습니다."; break; + case 9: $alllog[0] = "●{$admin[month]}월:$general[name](이)가 처자식이 그립다며 떠났습니다."; break; + } + } + + pushAllLog($alllog); + + return; + } + } + + if($general[age] >= 80 && $general[npc] == 0) { + if($admin[isUnited] == 0) { + CheckHall($connect, $no); + } + + $query = "update general set leader=leader*0.85,power=power*0.85,intel=intel*0.85,injury=0,experience=experience*0.5,dedication=dedication*0.5,firenum=0,warnum=0,killnum=0,deathnum=0,killcrew=0,deathcrew=0,age=20,specage=0,specage2=0,crew=crew*0.85,dex0=dex0*0.5,dex10=dex10*0.5,dex20=dex20*0.5,dex30=dex30*0.5,dex40=dex40*0.5 where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $alllog[0] = "●{$admin[month]}월:$general[name](이)가 은퇴하고 그 자손이 유지를 이어받았습니다."; + pushAllLog($alllog); + + $log[0] = "●나이가 들어 은퇴하고 자손에게 자리를 물려줍니다."; + pushGenLog($general, $log); + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:나이가 들어 은퇴하고, 자손에게 관직을 물려줌"); + } + + $turntime = addTurn($general[turntime], $admin[turnterm]); + + $query = "update general set turntime='$turntime' where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function CheckHall($connect, $no) { + $type = array( + "experience", + "dedication", + "firenum", + "warnum", + "killnum", + "winrate", + "killcrew", + "killrate", + "dex0", + "dex10", + "dex20", + "dex30", + "dex40", + "ttrate", + "tlrate", + "tprate", + "tirate", + "betgold", + "betwin", + "betwingold", + "betrate" + ); + + $query = "select name,nation,picture, + experience,dedication,warnum,firenum,killnum, + killnum/warnum*10000 as winrate,killcrew,killcrew/deathcrew*10000 as killrate, + dex0,dex10,dex20,dex30,dex40, + ttw/(ttw+ttd+ttl)*10000 as ttrate, ttw+ttd+ttl as tt, + tlw/(tlw+tld+tll)*10000 as tlrate, tlw+tld+tll as tl, + tpw/(tpw+tpd+tpl)*10000 as tprate, tpw+tpd+tpl as tp, + tiw/(tiw+tid+til)*10000 as tirate, tiw+tid+til as ti, + betgold, betwin, betwingold, betwingold/betgold*10000 as betrate + from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select nation,name,color from nation where nation='$general[nation]'"; + $nationresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($nationresult); + + for($k=0; $k < 21; $k++) { + $query = "select * from hall where type='$k' order by data desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + //승률,살상률인데 10회 미만 전투시 스킵 + if(($k == 5 || $k == 7) && $general[warnum]<10) { continue; } + //토너승률인데 50회 미만시 스킵 + if($k == 13 && $general[tt] < 50) { continue; } + //토너승률인데 50회 미만시 스킵 + if($k == 14 && $general[tl] < 50) { continue; } + //토너승률인데 50회 미만시 스킵 + if($k == 15 && $general[tp] < 50) { continue; } + //토너승률인데 50회 미만시 스킵 + if($k == 16 && $general[ti] < 50) { continue; } + //수익률인데 1000미만시 스킵 + if($k == 20 && $general[betgold] < 1000) { continue; } + + $rank = 10; + for($i=0; $i < $count; $i++) { + $ranker = MYDB_fetch_array($result); + + if($general[$type[$k]] >= $ranker[data]) { + $rank = $i; + break; + } + } + for($i=8; $i >= $rank; $i--) { + $j = $i + 1; + $query = "select * from hall where type='$k' and rank='$i'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $ranker = MYDB_fetch_array($result); + + $query = "update hall set name='$ranker[name]', nation='$ranker[nation]', data='$ranker[data]', color='$ranker[color]', picture='$ranker[picture]' where type='$k' and rank='$j'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + $query = "update hall set name='$general[name]', nation='{$nation[name]}', data='{$general[$type[$k]]}', color='{$nation[color]}', picture='$general[picture]' where type='$k' and rank='$rank'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function info($connect, $type=0, $skin=1) { + $query = "select year,month,turnterm,maxgeneral from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + switch($admin[turnterm]) { + case 0: $termtype="120분 턴"; break; + case 1: $termtype="60분 턴"; break; + case 2: $termtype="30분 턴"; break; + case 3: $termtype="20분 턴"; break; + case 4: $termtype="10분 턴"; break; + case 5: $termtype="5분 턴"; break; + case 6: $termtype="2분 턴"; break; + case 7: $termtype="1분 턴"; break; + } + + $query = "select no from general where npc<2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + $query = "select no from general where npc>=2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $npccount = MYDB_num_rows($result); + + switch($type) { + case 0: + echo "현재 : {$admin[year]}年 {$admin[month]}月 ($termtype 서버)
등록 장수 : 유저 {$gencount} / {$admin[maxgeneral]} 명 + NPC {$npccount} 명"; + break; + case 1: + echo "현재 : {$admin[year]}年 {$admin[month]}月 ($termtype 서버)          등록 장수 : 유저 {$gencount} / {$admin[maxgeneral]} 명 + NPC {$npccount} 명"; + break; + case 2: + echo "현재 : {$admin[year]}年 {$admin[month]}月 ($termtype 서버)"; + break; + case 3: + echo "등록 장수 : 유저 {$gencount} / {$admin[maxgeneral]} 명 + NPC {$npccount} 명"; + break; + } +} + +function uniqueItem($connect, $general, $log, $vote=0) { + if($general[npc] >= 2 || $general[betray] > 1) { return $log; } + if($general[weap] > 6 || $general[book] > 6 || $general[horse] > 6 || $general[item] > 6) { return $log; } + + $query = "select year,month,scenario from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $game = MYDB_fetch_array($result); + + $query = "select count(*) as cnt from general where npc<2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + + if($game[scenario] == 0) { $prob = $gen[cnt] * 5; } // 5~6개월에 하나씩 등장 + else { $prob = $gen[cnt]; } // 1~2개월에 하나씩 등장 + + if($vote == 1) { $prob = round($gen[cnt] * 0.7 / 3); } // 투표율 70%, 투표 한번에 2~3개 등장 + elseif($vote == 2) { $prob = round($gen[cnt] / 10 / 2); } // 랜임시 2개(10%) 등장(200명중 20명 랜임시도?) + elseif($vote == 3) { $prob = round($gen[cnt] / 10 / 4); } // 건국시 4개(20%) 등장(200명시 20국 정도 됨) + + if($prob < 3) { $prob = 3; } + //아이템 습득 상황 + if(rand() % $prob == 0) { + //셋중 선택 + $sel = rand() % 4; + switch($sel) { + case 0: $type = "weap"; break; + case 1: $type = "book"; break; + case 2: $type = "horse"; break; + case 3: $type = "item"; break; + } + $query = "select no,{$type} from general where {$type}>6"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + if($count < 20) { + for($i=0; $i < $count; $i++) { + $gen = MYDB_fetch_array($result); + $occupied[$gen[$type]] = 1; + } + for($i=7; $i <= 26; $i++) { + if($occupied[$i] == 0) { + $item[count($item)] = $i; + } + } + $it = $item[rand() % count($item)]; + + $query = "update general set {$type}='$it' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select name from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($nation[name] == "") { + $nation[name] = "재야"; + } + + switch($sel) { + case 0: + $log[count($log)] = "".getWeapName($it)."(을)를 습득했습니다!"; + $alllog[0] = "●{$game[month]}월:$general[name](이)가 ".getWeapName($it)."(을)를 습득했습니다!"; + $general = addHistory($connect, $general, "●{$game[year]}년 {$game[month]}월:".getWeapName($it)."(을)를 습득"); + if($vote == 0) { + $history[0] = "●$game[year]년 $game[month]월:【아이템】$nation[name]$general[name](이)가 ".getWeapName($it)."(을)를 습득했습니다!"; + } elseif($vote == 1) { + $history[0] = "●$game[year]년 $game[month]월:【설문상품】$nation[name]$general[name](이)가 ".getWeapName($it)."(을)를 습득했습니다!"; + } elseif($vote == 2) { + $history[0] = "●$game[year]년 $game[month]월:【랜덤임관상품】$nation[name]$general[name](이)가 ".getWeapName($it)."(을)를 습득했습니다!"; + } elseif($vote == 3) { + $history[0] = "●$game[year]년 $game[month]월:【건국상품】$nation[name]$general[name](이)가 ".getWeapName($it)."(을)를 습득했습니다!"; + } + break; + case 1: + $log[count($log)] = "".getBookName($it)."(을)를 습득했습니다!"; + $alllog[0] = "●{$game[month]}월:$general[name](이)가 ".getBookName($it)."(을)를 습득했습니다!"; + $general = addHistory($connect, $general, "●{$game[year]}년 {$game[month]}월:".getBookName($it)."(을)를 습득"); + if($vote == 0) { + $history[0] = "●$game[year]년 $game[month]월:【아이템】$nation[name]$general[name](이)가 ".getBookName($it)."(을)를 습득했습니다!"; + } elseif($vote == 1) { + $history[0] = "●$game[year]년 $game[month]월:【설문상품】$nation[name]$general[name](이)가 ".getBookName($it)."(을)를 습득했습니다!"; + } elseif($vote == 2) { + $history[0] = "●$game[year]년 $game[month]월:【랜덤임관상품】$nation[name]$general[name](이)가 ".getBookName($it)."(을)를 습득했습니다!"; + } elseif($vote == 3) { + $history[0] = "●$game[year]년 $game[month]월:【건국상품】$nation[name]$general[name](이)가 ".getBookName($it)."(을)를 습득했습니다!"; + } + break; + case 2: + $log[count($log)] = "".getHorseName($it)."(을)를 습득했습니다!"; + $alllog[0] = "●{$game[month]}월:$general[name](이)가 ".getHorseName($it)."(을)를 습득했습니다!"; + $general = addHistory($connect, $general, "●{$game[year]}년 {$game[month]}월:".getHorseName($it)."(을)를 습득"); + if($vote == 0) { + $history[0] = "●$game[year]년 $game[month]월:【아이템】$nation[name]$general[name](이)가 ".getHorseName($it)."(을)를 습득했습니다!"; + } elseif($vote == 1) { + $history[0] = "●$game[year]년 $game[month]월:【설문상품】$nation[name]$general[name](이)가 ".getHorseName($it)."(을)를 습득했습니다!"; + } elseif($vote == 2) { + $history[0] = "●$game[year]년 $game[month]월:【랜덤임관상품】$nation[name]$general[name](이)가 ".getHorseName($it)."(을)를 습득했습니다!"; + } elseif($vote == 3) { + $history[0] = "●$game[year]년 $game[month]월:【건국상품】$nation[name]$general[name](이)가 ".getHorseName($it)."(을)를 습득했습니다!"; + } + break; + case 3: + $log[count($log)] = "".getItemName($it)."(을)를 습득했습니다!"; + $alllog[0] = "●{$game[month]}월:$general[name](이)가 ".getItemName($it)."(을)를 습득했습니다!"; + $general = addHistory($connect, $general, "●{$game[year]}년 {$game[month]}월:".getItemName($it)."(을)를 습득"); + if($vote == 0) { + $history[0] = "●$game[year]년 $game[month]월:【아이템】$nation[name]$general[name](이)가 ".getItemName($it)."(을)를 습득했습니다!"; + } elseif($vote == 1) { + $history[0] = "●$game[year]년 $game[month]월:【설문상품】$nation[name]$general[name](이)가 ".getItemName($it)."(을)를 습득했습니다!"; + } elseif($vote == 2) { + $history[0] = "●$game[year]년 $game[month]월:【랜덤임관상품】$nation[name]$general[name](이)가 ".getItemName($it)."(을)를 습득했습니다!"; + } elseif($vote == 3) { + $history[0] = "●$game[year]년 $game[month]월:【건국상품】$nation[name]$general[name](이)가 ".getItemName($it)."(을)를 습득했습니다!"; + } + break; + } + pushAllLog($alllog); + pushHistory($connect, $history); + } + } + return $log; +} + +function checkAbility($connect, $general, $log) { + global $_upgradeLimit; + + $limit = $_upgradeLimit; + + $query = "select no,leader,leader2,power,power2,intel,intel2 from general where no='$general[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + if($general[leader2] < 0) { + $query = "update general set leader2='$limit'+leader2,leader=leader-1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[count($log)] = "통솔이 1 떨어졌습니다!"; + } elseif($general[leader2] >= $limit) { + $query = "update general set leader2=leader2-'$limit',leader=leader+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[count($log)] = "통솔이 1 올랐습니다!"; + } + + if($general[power2] < 0) { + $query = "update general set power2='$limit'+power2,power=power-1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[count($log)] = "무력이 1 떨어졌습니다!"; + } elseif($general[power2] >= $limit) { + $query = "update general set power2=power2-'$limit',power=power+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[count($log)] = "무력이 1 올랐습니다!"; + } + + if($general[intel2] < 0) { + $query = "update general set intel2='$limit'+intel2,intel=intel-1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[count($log)] = "지력이 1 떨어졌습니다!"; + } elseif($general[intel2] >= $limit) { + $query = "update general set intel2=intel2-'$limit',intel=intel+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[count($log)] = "지력이 1 올랐습니다!"; + } + + return $log; +} + +function checkDedication($connect, $general, $log) { + $dedlevel = getDedLevel($general[dedication]); + + $query = "update general set dedlevel='$dedlevel' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 승급했다면 + if($general[dedlevel] < $dedlevel) { + $log[count($log)] = "".getDed($general[dedication])."(으)로 승급하여 봉록이 ".getBill($general[dedication])."(으)로 상승했습니다!"; + // 강등했다면 + } elseif($general[dedlevel] > $dedlevel) { + $log[count($log)] = "".getDed($general[dedication])."(으)로 강등되어 봉록이 ".getBill($general[dedication])."(으)로 하락했습니다!"; + } + + return $log; +} + +function checkExperience($connect, $general, $log) { + $explevel = getExpLevel($general[experience]); + + $query = "update general set explevel='$explevel' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 승급했다면 + if($general[explevel] < $explevel) { + $log[count($log)] = "Lv $explevel로 레벨업!"; + // 강등했다면 + } elseif($general[explevel] > $explevel) { + $log[count($log)] = "Lv $explevel로 레벨다운!"; + } + + return $log; +} + +//1월마다 실행 +function processSpring($connect) { + //인구 증가 + popIncrease($connect); + // 1월엔 무조건 내정 1% 감소 + $query = "update city set dead=0,agri=agri*0.99,comm=comm*0.99,secu=secu*0.99,def=def*0.99,wall=wall*0.99"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 유지비 3% 거상 1.5% + $query = "update general set gold=gold*0.97 where gold>10000 and special!=30"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set gold=gold*0.985 where gold>10000 and special=30"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 유지비 1% 거상 0.5% + $query = "update general set gold=gold*0.99 where gold>1000 and gold<=10000 and special!=30"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set gold=gold*0.995 where gold>1000 and gold<=10000 and special=30"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 유지비 5% + $query = "update nation set gold=gold*0.95 where gold>100000"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 유지비 3% + $query = "update nation set gold=gold*0.97 where gold>10000 and gold<=100000"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 유지비 1% + $query = "update nation set gold=gold*0.99 where gold>1000 and gold<=10000"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $history[0] = "★{$admin['year']}년 {$admin['month']}월: 모두들 즐거운 게임 하고 계신가요? ^^ 삼국일보 애독해 주시고, 훼접은 삼가주세요~"; + pushHistory($connect, $history); +} + +function processGoldIncome($connect) { + global $_basegold; + + $query = "select year,month,gold_rate from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select name,nation,gold,rate_tmp,bill,type from nation"; + $nationresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($nationresult); + + //국가별 처리 + for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($nationresult); + + $incomeList = getGoldIncome($connect, $nation[nation], $nation[rate_tmp], $admin[gold_rate], $nation[type]); + $income = $incomeList[0] + $incomeList[1]; + $originoutcome = getGoldOutcome($connect, $nation[nation], 100); // 100%의 지급량 + $outcome = round($originoutcome * $nation[bill] / 100); // 지급량에 따른 요구량 + // 실제 지급량 계산 + $nation[gold] += $income; + // 기본량도 안될경우 + if($nation[gold] < $_basegold) { + $realoutcome = 0; + // 실지급율 + $ratio = 0; + //기본량은 넘지만 요구량이 안될경우 + } elseif($nation[gold] - $_basegold < $outcome) { + $realoutcome = $nation[gold] - $_basegold; + $nation[gold] = $_basegold; + // 실지급율 + $ratio = $realoutcome / $originoutcome; + } else { + $realoutcome = $outcome; + $nation[gold] -= $realoutcome; + // 실지급율 + $ratio = $realoutcome / $originoutcome; + } + $adminLog[count($adminLog)] = _String::Fill2($nation[name],12," ")." // 세금 : "._String::Fill2($income,6," ")." // 세출 : "._String::Fill2($originoutcome,6," ")." // 실제 : ".tab2($realoutcome,6," ")." // 지급율 : ".tab2(round($ratio*100,2),5," ")." % // 결과금 : ".tab2($nation[gold],6," "); + + $query = "select no,name,nation from general where nation='$nation[nation]' and level>='9'"; + $coreresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $corecount = MYDB_num_rows($coreresult); + $corelog[0] = "●이번 수입은 금 $income입니다."; + for($j=0; $j < $corecount; $j++) { + $coregen = MYDB_fetch_array($coreresult); + pushGenLog($coregen, $corelog); + } + + $query = "update nation set gold='$nation[gold]' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select no,name,nation,dedication,gold from general where nation='$nation[nation]'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($genresult); + + // 각 장수들에게 지급 + for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + $gold = round(getBill($general[dedication])*$ratio); + $general[gold] += $gold; + + $query = "update general set gold='$general[gold]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "●봉급으로 금 $gold을 받았습니다."; + pushGenLog($general, $log); + } + } + + $history[0] = "●$admin[year]년 $admin[month]월:【지급】봄이 되어 봉록에 따라 자금이 지급됩니다."; + pushHistory($connect, $history); + pushAdminLog($connect, $adminLog); +} + +function popIncrease($connect) { + $query = "select nation,rate_tmp,type from nation"; + $nationresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($nationresult); + + for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($nationresult); + $rate[$nation[nation]] = $nation[rate_tmp]; + $type[$nation[nation]] = $nation[type]; + } + + $query = "select * from city where supply='1'"; // 도시 목록 + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($cityresult); + + // 인구 및 민심 + for($i=0; $i < $citycount; $i++) { + $city = MYDB_fetch_array($cityresult); + + $pop = $city[pop]; + if($city[nation] == 0) { + $pop = $city[pop]; // 공백지는 증가하지 않게 + $cityrate = 50; + + $ratio = 0.99; // 공백지는 수비 빼고 약간씩 감소 + $agri = floor($city[agri] * $ratio); + $comm = floor($city[comm] * $ratio); + $secu = floor($city[secu] * $ratio); + $def = $city[def]; + $wall = $city[wall]; + } else { + $ratio = (20 - $rate[$city[nation]])/200; // 20일때 0% 0일때 10% 100일때 -40% + $agri = $city[agri] + floor($city[agri] * $ratio); //내정도 증감 + $comm = $city[comm] + floor($city[comm] * $ratio); + $secu = $city[secu] + floor($city[secu] * $ratio); + $def = $city[def] + floor($city[def] * $ratio); + $wall = $city[wall] + floor($city[wall] * $ratio); + $ratio = (30 - $rate[$city[nation]])/200; // 20일때 5% 5일때 12.5% 50일때 -10% + if($ratio >= 0) { + // 국가보정 + if($type[$city[nation]] == 4 || $type[$city[nation]] == 6 || $type[$city[nation]] == 7 || $type[$city[nation]] == 8 || $type[$city[nation]] == 12 || $type[$city[nation]] == 13) { $ratio *= 1.2; } + if($type[$city[nation]] == 1 || $type[$city[nation]] == 3) { $ratio *= 0.8; } + $ratio *= (1 + $city[secu]/$city[secu2]/10); //치안에 따라 최대 10% 추가 + } else { + // 국가보정 + if($type[$city[nation]] == 4 || $type[$city[nation]] == 6 || $type[$city[nation]] == 7 || $type[$city[nation]] == 8 || $type[$city[nation]] == 12 || $type[$city[nation]] == 13) { $ratio *= 0.8; } + if($type[$city[nation]] == 1 || $type[$city[nation]] == 3) { $ratio *= 1.2; } + $ratio *= (1 - $city[secu]/$city[secu2]/10); //치안에 따라 최대 10% 경감 + } + + $pop = $city[pop] + floor($city[pop] * $ratio) + 5000; // 기본 5000명은 증가 + + $ratio = round($ratio*100, 2); + $cityrate = $city[rate]; + $cityrate = $cityrate + (20 - $rate[$city[nation]]); + if($cityrate > 100) { $cityrate = 100; } + if($cityrate < 0) { $cityrate = 0; } + } + if($pop > $city[pop2]) { $pop = $city[pop2]; } + if($pop < 0) { $pop = 0; } + if($agri > $city[agri2]) { $agri = $city[agri2]; } + if($comm > $city[comm2]) { $comm = $city[comm2]; } + if($secu > $city[secu2]) { $secu = $city[secu2]; } + if($def > $city[def2]) { $def= $city[def2]; } + if($wall > $city[wall2]) { $wall = $city[wall2]; } + + //시세 + $query = "update city set pop='$pop',rate='$cityrate',agri='$agri',comm='$comm',secu='$secu',def='$def',wall='$wall' where city='$city[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function getGoldIncome($connect, $nationNo, $rate, $admin_rate, $type) { + $query = "select no,city from general where nation='$nationNo' and level=4"; // 태수 + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($j=0; $j < $count; $j++) { + $gen = MYDB_fetch_array($result); + $level4[$gen[no]] = $gen[city]; + } + $query = "select no,city from general where nation='$nationNo' and level=3"; // 군사 + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($j=0; $j < $count; $j++) { + $gen = MYDB_fetch_array($result); + $level3[$gen[no]] = $gen[city]; + } + $query = "select no,city from general where nation='$nationNo' and level=2"; // 시중 + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($j=0; $j < $count; $j++) { + $gen = MYDB_fetch_array($result); + $level2[$gen[no]] = $gen[city]; + } + + $query = "select capital,level from nation where nation='$nationNo'"; // 수도 + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($cityresult); + + $query = "select * from city where nation='$nationNo' and supply='1'"; // 도시 목록 + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($cityresult); + + //총 수입 구함 + $income[0] = 0; $income[1] = 0; // income[0] : 세수, income[1] : 수비병 세수 + for($j=0; $j < $citycount; $j++) { + $city = MYDB_fetch_array($cityresult); + + //민충 0~100 : 50~100 수입 + $ratio = $city[rate] / 2 + 50; + $tax1 = ($city[pop] * $city[comm] / $city[comm2] * $ratio / 1000) / 3; +// $tax2 = $city[def] * $city[wall] / $city[wall2] / 3; + $tax1 *= (1 + $city[secu]/$city[secu2]/10); //치안에 따라 최대 10% 추가 +// $tax2 *= (1 + $city[secu]/$city[secu2]/10); //치안에 따라 최대 10% 추가 + //도시 관직 추가 세수 + if($level4[$city[gen1]] == $city[city]) { $tax1 *= 1.05; $tax2 *= 1.05; } + if($level3[$city[gen2]] == $city[city]) { $tax1 *= 1.05; $tax2 *= 1.05; } + if($level2[$city[gen3]] == $city[city]) { $tax1 *= 1.05; $tax2 *= 1.05; } + //수도 추가 세수 130%~105% + if($city[city] == $nation[capital]) { $tax1 *= 1+(1/3/$nation[level]); $tax2 *= 1+(1/3/$nation[level]); } + + $income[0] += $tax1; +// $income[1] += $tax2; + } + $income[0] *= ($rate / 20); + + // 국가보정 + if($type == 1) { $income[0] *= 1.1; $income[1] *= 1.1; } + if($type == 9 || $type == 10 || $type == 11) { $income[0] *= 0.9; $income[1] *= 0.9; } + + $income[0] = round($income[0] * ($admin_rate/100)); + $income[1] = round($income[1] * ($admin_rate/100)); + + return $income; +} + +function processDeadIncome($connect, $admin_rate) { + $query = "select nation,type from nation where level>0"; // 도시 가진 국가 + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationCount = MYDB_num_rows($result); + + for($i=0; $i < $nationCount; $i++) { + $nation = MYDB_fetch_array($result); + + $income = getDeadIncome($connect, $nation[nation], $nation[type], $admin_rate); + +// 단기수입 금만적용 +// $query = "update nation set gold=gold+'$income',rice=rice+'$income' where nation='$nation[nation]'"; + $query = "update nation set gold=gold+'$income' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + // 10%수입, 20%부상병 + $query = "update city set pop=pop+dead*0.2,dead='0'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function getDeadIncome($connect, $nation, $type, $admin_rate) { + $query = "select dead from city where nation='$nation' and dead>'0' and supply='1'"; // 도시 목록 + $cityResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityCount = MYDB_num_rows($cityResult); + + $income = 0; // 단기수입 + if($cityCount > 0) { + for($k=0; $k < $cityCount; $k++) { + $city = MYDB_fetch_array($cityResult); + + $income += $city[dead]; + } + $income /= 10; + + // 국가보정 + if($type == 1) { $income *= 1.1; } + if($type == 9 || $type == 10) { $income *= 0.9; } + + $income = round($income * $admin_rate / 100); + } + return $income; +} + +function getGoldOutcome($connect, $nation, $bill) { + $query = "select dedication from general where nation='$nation'"; // 장수 목록 + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($genresult); + + //총 지출 구함 + $outcome = 0; + for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + $outcome += getBill($general[dedication]); + } + + $outcome = round($outcome * $bill / 100); + + return $outcome; +} + +//7월마다 실행 +function processFall($connect) { + //인구 증가 + popIncrease($connect); + // 7월엔 무조건 내정 1% 감소 + $query = "update city set dead=0,agri=agri*0.99,comm=comm*0.99,secu=secu*0.99,def=def*0.99,wall=wall*0.99"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 유지비 3% 거상 1.5% + $query = "update general set rice=rice*0.97 where rice>10000 and special!=30"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set rice=rice*0.985 where rice>10000 and special=30"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 유지비 1% 거상 0.5% + $query = "update general set rice=rice*0.99 where rice>1000 and rice<=10000 and special!=30"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set rice=rice*0.995 where rice>1000 and rice<=10000 and special=30"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 유지비 5% + $query = "update nation set rice=rice*0.95 where rice>100000"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 유지비 3% + $query = "update nation set rice=rice*0.97 where rice>10000 and rice<=100000"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 유지비 1% + $query = "update nation set rice=rice*0.99 where rice>2000 and rice<=10000"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function processRiceIncome($connect) { + global $_baserice; + + $query = "select year,month,rice_rate from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select name,nation,rice,rate_tmp,bill,type from nation"; + $nationresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($nationresult); + + //국가별 처리 + for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($nationresult); + + $incomeList = getRiceIncome($connect, $nation[nation], $nation[rate_tmp], $admin[rice_rate], $nation[type]); + $income = $incomeList[0] + $incomeList[1]; + $originoutcome = getRiceOutcome($connect, $nation[nation], 100); // 100%의 지급량 + $outcome = round($originoutcome * $nation[bill] / 100); // 지급량에 따른 요구량 + + // 실제 지급량 계산 + $nation[rice] += $income; + // 기본량도 안될경우 + if($nation[rice] < $_baserice) { + $realoutcome = 0; + // 실지급율 + $ratio = 0; + //기본량은 넘지만 요구량이 안될경우 + } elseif($nation[rice] - $_baserice < $outcome) { + $realoutcome = $nation[rice] - $_baserice; + $nation[rice] = $_baserice; + // 실지급율 + $ratio = $realoutcome / $originoutcome; + } else { + $realoutcome = $outcome; + $nation[rice] -= $realoutcome; + // 실지급율 + $ratio = $realoutcome / $originoutcome; + } + $adminLog[count($adminLog)] = _String::Fill2($nation[name],12," ")." // 세곡 : "._String::Fill2($income,6," ")." // 세출 : "._String::Fill2($originoutcome,6," ")." // 실제 : ".tab2($realoutcome,6," ")." // 지급율 : ".tab2(round($ratio*100,2),5," ")." % // 결과곡 : ".tab2($nation[rice],6," "); + + $query = "select no,name,nation from general where nation='$nation[nation]' and level>='9'"; + $coreresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $corecount = MYDB_num_rows($coreresult); + $corelog[0] = "●이번 수입은 쌀 $income입니다."; + for($j=0; $j < $corecount; $j++) { + $coregen = MYDB_fetch_array($coreresult); + pushGenLog($coregen, $corelog); + } + + $query = "update nation set rice='$nation[rice]' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select no,name,nation,dedication,rice from general where nation='$nation[nation]'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($genresult); + + // 각 장수들에게 지급 + for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + $rice = round(getBill($general[dedication])*$ratio); + $general[rice] += $rice; + + $query = "update general set rice='$general[rice]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "●봉급으로 쌀 $rice을 받았습니다."; + pushGenLog($general, $log); + } + } + + $history[0] = "●$admin[year]년 $admin[month]월:【지급】가을이 되어 봉록에 따라 군량이 지급됩니다."; + pushHistory($connect, $history); + pushAdminLog($connect, $adminLog); +} + +function getRiceIncome($connect, $nationNo, $rate, $admin_rate, $type) { + $query = "select no,city from general where nation='$nationNo' and level=4"; // 태수 + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($j=0; $j < $count; $j++) { + $gen = MYDB_fetch_array($result); + $level4[$gen[no]] = $gen[city]; + } + $query = "select no,city from general where nation='$nationNo' and level=3"; // 군사 + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($j=0; $j < $count; $j++) { + $gen = MYDB_fetch_array($result); + $level3[$gen[no]] = $gen[city]; + } + $query = "select no,city from general where nation='$nationNo' and level=2"; // 시중 + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($j=0; $j < $count; $j++) { + $gen = MYDB_fetch_array($result); + $level2[$gen[no]] = $gen[city]; + } + + $query = "select capital,level from nation where nation='$nationNo'"; // 수도 + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($cityresult); + + $query = "select * from city where nation='$nationNo' and supply='1'"; // 도시 목록 + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($cityresult); + + //총 수입 구함 + $income[0] = 0; $income[1] = 0; // income[0] : 세수, income[1] : 수비병 세수 + for($j=0; $j < $citycount; $j++) { + $city = MYDB_fetch_array($cityresult); + + //민충 0~100 : 50~100 수입 + $ratio = $city[rate] / 2 + 50; + $tax1 = ($city[pop] * $city[agri] / $city[agri2] * $ratio / 1000) / 3; + $tax2 = $city[def] * $city[wall] / $city[wall2] / 3; + $tax1 *= (1 + $city[secu]/$city[secu2]/10); //치안에 따라 최대 10% 추가 + $tax2 *= (1 + $city[secu]/$city[secu2]/10); //치안에 따라 최대 10% 추가 + //도시 관직 추가 세수 + if($level4[$city[gen1]] == $city[city]) { $tax1 *= 1.05; $tax2 *= 1.05; } + if($level3[$city[gen2]] == $city[city]) { $tax1 *= 1.05; $tax2 *= 1.05; } + if($level2[$city[gen3]] == $city[city]) { $tax1 *= 1.05; $tax2 *= 1.05; } + //수도 추가 세수 130%~105% + if($city[city] == $nation[capital]) { $tax1 *= 1+(1/3/$nation[level]); $tax2 *= 1+(1/3/$nation[level]); } + $income[0] += $tax1; + $income[1] += $tax2; + } + $income[0] *= ($rate / 20); + + // 국가보정 + if($type == 8) { $income[0] *= 1.1; $income[1] *= 1.1; } + if($type == 2 || $type == 4 || $type == 13) { $income[0] *= 0.9; $income[1] *= 0.9; } + + $income[0] = round($income[0] * ($admin_rate/100)); + $income[1] = round($income[1] * ($admin_rate/100)); + + return $income; +} + +function getRiceOutcome($connect, $nation, $bill) { + $query = "select dedication from general where nation='$nation'"; // 장수 목록 + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($genresult); + + //총 지출 구함 + $outcome = 0; + for($j=0; $j < $gencount; $j++) { + $general = MYDB_fetch_array($genresult); + $outcome += getBill($general[dedication]); + } + + $outcome = round($outcome * $bill / 100); + + return $outcome; +} + +function tradeRate($connect) { + $query = "select city,level,trade from city"; // 도시 목록 + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($cityresult); + + for($i=0; $i < $citycount; $i++) { + $city = MYDB_fetch_array($cityresult); + //시세 + switch($city[level]) { + case 1: $per = 0; break; + case 2: $per = 0; break; + case 3: $per = 0; break; + case 4: $per = 20; break; + case 5: $per = 40; break; + case 6: $per = 60; break; + case 7: $per = 80; break; + case 8: $per = 100; break; + default:$per = 0; break; + } + if($per > rand()%100) { + $trade = rand() % 11 + 95; + } else { + $trade = 0; + } + $query = "update city set trade='$trade' where city='$city[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function disaster($connect) { + $query = "select startyear,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + //재난표시 초기화 + $query = "update city set state=0 where state<=10"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 초반 3년은 스킵 + if($admin[startyear] + 3 > $admin[year]) return; + + $query = "select city,name,secu,secu2 from city"; // 도시 목록 + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($cityresult); + + $disastertype = rand() % 4; + $isgood = 0; + if($admin[month] == 4 && $disastertype == 3) { $isgood = 1; } + if($admin[month] == 7 && $disastertype == 3) { $isgood = 1; } + + for($i=0; $i < $citycount; $i++) { + $city = MYDB_fetch_array($cityresult); + //호황 발생 도시 선택 ( 기본 3% 이므로 약 3개 도시 ) + //재해 발생 도시 선택 ( 기본 6% 이므로 약 6개 도시 ) + if($isgood == 1) { $ratio = 3 + round(1.0*$city[secu]/$city[secu2]*3); } // 3 ~ 6% + else { $ratio = 6 - round(1.0*$city[secu]/$city[secu2]*3); } // 3 ~ 6% + + if(rand()%100+1 < $ratio) { + $disastercity[count($disastercity)] = $city[city]; + $disasterratio[count($disastercity)] = 1.0 * $city[secu] / $city[secu2]; + $disastername .= $city[name]." "; + } + } + + $disastername = "{$disastername}"; + + //재해 처리 + if(count($disastercity)) { + $state = 0; + switch($admin[month]) { + //봄 + case 1: + switch($disastertype) { + case 0: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 역병이 발생하여 도시가 황폐해지고 있습니다."; + $state = 4; + break; + case 1: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 지진으로 피해가 속출하고 있습니다."; + $state = 5; + break; + case 2: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 추위가 풀리지 않아 얼어죽는 백성들이 늘어나고 있습니다."; + $state = 3; + break; + case 3: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 황건적이 출현해 도시를 습격하고 있습니다."; + $state = 9; + break; + } + break; + //여름 + case 4: + switch($disastertype) { + case 0: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 홍수로 인해 피해가 급증하고 있습니다."; + $state = 7; + break; + case 1: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 지진으로 피해가 속출하고 있습니다."; + $state = 5; + break; + case 2: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 태풍으로 인해 피해가 속출하고 있습니다."; + $state = 6; + break; + case 3: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【호황】{$disastername}에 호황으로 도시가 번창하고 있습니다."; + $state = 2; + $isGood = 1; + break; + } + break; + //가을 + case 7: + switch($disastertype) { + case 0: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 메뚜기 떼가 발생하여 도시가 황폐해지고 있습니다."; + $state = 8; + break; + case 1: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 지진으로 피해가 속출하고 있습니다."; + $state = 5; + break; + case 2: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 흉년이 들어 굶어죽는 백성들이 늘어나고 있습니다."; + $state = 8; + break; + case 3: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【풍작】{$disastername}에 풍작으로 도시가 번창하고 있습니다."; + $state = 1; + $isGood = 1; + break; + } + break; + //겨울 + case 10: + switch($disastertype) { + case 0: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 혹한으로 도시가 황폐해지고 있습니다."; + $state = 3; + break; + case 1: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 지진으로 피해가 속출하고 있습니다."; + $state = 5; + break; + case 2: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 눈이 많이 쌓여 도시가 황폐해지고 있습니다."; + $state = 3; + break; + case 3: + $disaster[count($disaster)] = "●$admin[year]년 $admin[month]월:【재난】{$disastername}에 황건적이 출현해 도시를 습격하고 있습니다."; + $state = 9; + break; + } + break; + } + + if($isgood == 0) { + for($i=0; $i < count($disastercity); $i++) { + $ratio = 15 * $disasterratio[$i]; + $ratio = (80 + $ratio) / 100.0; // 치안률 따라서 80~95% + + $query = "update city set state='$state',pop=pop*{$ratio},rate=rate*{$ratio},agri=agri*{$ratio},comm=comm*{$ratio},secu=secu*{$ratio},def=def*{$ratio},wall=wall*{$ratio} where city='$disastercity[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + TrickInjury($connect, $disastercity[$i], 1); + } + } else { + for($i=0; $i < count($disastercity); $i++) { + $ratio = 4 * $disasterratio[$i]; + $ratio = (101 + $ratio) / 100.0; // 치안률 따라서 101~105% + + $city = getCity($connect, $disastercity[$i]); + $city[pop] *= $ratio; $city[rate] *= $ratio; $city[agri] *= $ratio; + $city[comm] *= $ratio; $city[secu] *= $ratio; $city[def] *= $ratio; + $city[wall] *= $ratio; + + if($city[pop] > $city[pop2]) { $city[pop] = $city[pop2]; } + if($city[rate] > 100) { $city[rate] = 100; } + if($city[agri] > $city[agri2]) { $city[agri] = $city[agri2]; } + if($city[comm] > $city[comm2]) { $city[comm] = $city[comm2]; } + if($city[secu] > $city[secu2]) { $city[secu] = $city[secu2]; } + if($city[def] > $city[def2]) { $city[def] = $city[def2]; } + if($city[wall] > $city[wall2]) { $city[wall] = $city[wall2]; } + + $query = "update city set state='$state',pop='$city[pop]',rate='$city[rate]',agri='$city[agri]',comm='$city[comm]',secu='$city[secu]',def='$city[def]',wall='$city[wall]' where city='$disastercity[$i]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + } + + pushHistory($connect, $disaster); +} + +function getAdmin($connect) { + $query = "select * from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + return $admin; +} + +function getMe($connect) { + $query = "select * from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("접속자가 많아 접속을 중단합니다. 잠시후 갱신해주세요.
getMe : ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + return $me; +} + +function getTroop($connect, $troop) { + $query = "select * from troop where troop='$troop'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $troop = MYDB_fetch_array($result); + + return $troop; +} + +function getCity($connect, $city, $sel="*") { + $query = "select {$sel} from city where city='$city'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + return $city; +} + +function getNation($connect, $nation) { + $query = "select * from nation where nation='$nation'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + return $nation; +} + +function newColor($color) { + switch($color) { + case "": + case "330000": + case "FF0000": + case "800000": + case "A0522D": + case "FF6347": + case "808000": + case "008000": + case "2E8B57": + case "008080": + case "6495ED": + case "0000FF": + case "000080": + case "483D8B": + case "7B68EE": + case "800080": + case "A9A9A9": + case "000000": + $color = "FFFFFF"; break; + default: + $color = "000000"; break; + } + return $color; +} + +function backColor($color) { + return newColor($color); +} + +function ConvertLog($str, $type=1) { + if($type > 0) { + $str = str_replace("<1>", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + //$str = str_replace("", "", $str); + //$str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + } else { + $str = str_replace("<1>", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + } + + return $str; +} + +function deleteNation($connect, $general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select name from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $history[count($history)] = "●$admin[year]년 $admin[month]월:【멸망】$nation[name]은(는) 멸망했습니다."; + + // 전 장수 재야로 // 전 장수 소속 무소속으로 + $query = "update general set belong=0,troop=0,level=0,nation=0,makelimit=12 where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 도시 공백지로 + $query = "update city set nation=0,front=0,gen1=0,gen2=0,gen3=0 where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 부대 삭제 + $query = "delete from troop where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 국가 삭제 + $query = "delete from nation where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 외교 삭제 + $query = "delete from diplomacy where me='$general[nation]' or you='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + pushHistory($connect, $history); +} + +function nextRuler($connect, $general) { + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select nation,name,history from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select no,name from general where nation='$general[nation]' and level!='12' and level>='9' order by level desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $corecount = MYDB_num_rows($result); + + //npc or npc유저인 경우 후계 찾기 + if($general[npc] > 0) { + $query = "select no,name,nation,IF(ABS(npcmatch-'$general[npcmatch]')>75,150-ABS(npcmatch-'$general[npcmatch]'),ABS(npcmatch-'$general[npcmatch]')) as npcmatch2 from general where nation='$general[nation]' and level!=12 and npc>0 order by npcmatch2,rand() limit 0,1"; + $npcresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $npccount = MYDB_num_rows($npcresult); + } else { + $npccount = 0; + } + + // 수뇌부가 없으면 공헌도 최고 장수 + if($npccount > 0) { + $nextruler = MYDB_fetch_array($npcresult); + //국명 교체 + //$query = "update nation set name='$nextruler[name]' where nation='$general[nation]'"; + //MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($corecount == 0) { + $query = "select no,name from general where nation='$general[nation]' and level!='12' order by dedication desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $corecount = MYDB_num_rows($result); + + // 아무도 없으면 국가 삭제 + if($corecount == 0) { + //분쟁기록 모두 지움 + DeleteConflict($connect, $general[nation]); + deleteNation($connect, $general); + return; + } else { + $nextruler = MYDB_fetch_array($result); + } + } else { + $nextruler = MYDB_fetch_array($result); + } + + //군주 교체 + $query = "update general set level='12' where no='$nextruler[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //도시관직해제 + $query = "update city set gen1=0 where gen1='$nextruler[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //도시관직해제 + $query = "update city set gen2=0 where gen2='$nextruler[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //도시관직해제 + $query = "update city set gen3=0 where gen3='$nextruler[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $history[count($history)] = "●$admin[year]년 $admin[month]월:【유지】$nextruler[name](이)가 $nation[name]의 유지를 이어 받았습니다"; + + pushHistory($connect, $history); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:【유지】$nextruler[name](이)가 $nation[name]의 유지를 이어 받음."); + // 장수 삭제 및 부대처리는 checkTurn에서 +} + +function printCitysName($connect, $cityNo, $distance=1) { + $dist = distance($connect, $cityNo, $distance); + + $citynames = CityNameArray(); + $citynum = 94; + + $citystr = ""; + for($i=1; $i <= $citynum; $i++) { + + if($dist[$i] == $distance) { + $citystr = $citystr.$citynames[$i].", "; + } + } + + switch($distance) { + case 1: $color = "magenta"; break; + case 2: $color = "orange"; break; + default: $color = "yellow"; break; + } + echo "{$distance}칸 떨어진 도시 : {$citystr}
"; +} + +function backButton() { + echo " +
+"; +} + +function CoreBackButton() { + echo " +
+"; +} + +function closeButton() { + echo " +
+"; +} + +function distance($connect, $from, $maxDist=99) { + include_once("queue.php"); + + $query = "select city,path from city"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityNum = MYDB_num_rows($result); + for($i=0; $i < $cityNum; $i++) { + $city = MYDB_fetch_array($result); + $cityPath[$city[city]] = $city[path]; + $dist[$city[city]] = 99; + } + + $select = 0; + $queue = new Queue(20); + $queue2 = new Queue(20); + $q = $queue; + $q2 = $queue2; + $distance = $dist[$from] = 0; + $q->push($from); + while($q->getSize() > 0 || $q2->getSize() > 0) { + $distance++; + if($distance > $maxDist) return $dist; + while($q->getSize() > 0) { + $city = $q->pop(); + unset($path); + $path = explode("|", $cityPath[$city]); + for($i=0; $i < count($path); $i++) { + if($dist[$path[$i]] > $distance) { + $dist[$path[$i]] = $distance; + $q2->push($path[$i]); + } + } + } + if($select == 0) { + $q2 = $queue; + $q = $queue2; + } else { + $q = $queue; + $q2 = $queue2; + } + $select = 1 - $select; + } + + return $dist; +} + +function isClose($connect, $nation1, $nation2) { + $isClose = 0; + // $nation1의 모든 도시 + $query = "select path from city where nation='$nation1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($result); + + // 국가의 모든 도시 검색 + for($i=0; $i < $citycount; $i++) { + $city = MYDB_fetch_array($result); + + // 각 도시당 모든 인접 도시 플래그 세팅 + $path = explode("|", $city[path]); + for($j=0; $j < count($path); $j++) { + $barrier[$path[$j]] = 1; + } + } + + // $nation2의 모든 도시 선택 + $query = "select city from city where nation='$nation2'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($result); + + for($i=0; $i < $citycount; $i++) { + $city = MYDB_fetch_array($result); + + if($barrier[$city[city]] == 1) { + $isClose = 1; + } + } + + return $isClose; +} + +function CharExperience($exp, $personal) { + switch($personal) { + case 0: case 1; case 6: + $exp *= 1.1; break; + case 4: case 5: case 7: case 10: + $exp *= 0.9; break; + } + $exp = round($exp); + + return $exp; +} + +function CharDedication($ded, $personal) { + switch($personal) { + case 10: + $ded *= 0.9; break; + } + $ded = round($ded); + + return $ded; +} + +function CharAtmos($atmos, $personal) { + switch($personal) { + case 2: case 4: + $atmos += 5; break; + case 0: case 9: case 10: + $atmos -= 5; break; + } + + return $atmos; +} + +function CharTrain($train, $personal) { + switch($personal) { + case 3: case 5: + $train += 5; break; + case 1: case 8: case 10: + $train -= 5; break; + } + + return $train; +} + +function CharCost($cost, $personal) { + switch($personal) { + case 7: case 8: case 9: + $cost *= 0.8; break; + case 2: case 3: case 6: + $cost *= 1.2; break; + } + + return $cost; +} + +function CharCritical($rate, $personal) { + switch($personal) { + case 10: + $rate += 10; break; + } + + return $rate; +} + +function TrickInjury($connect, $city, $type=0) { + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select no,name,nation from general where city='$city'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + if($type == 0) { + $log[0] = "●{$admin[month]}월:계략으로 인해 부상을 당했습니다."; + } else { + $log[0] = "●{$admin[month]}월:재난으로 인해 부상을 당했습니다."; + } + for($i=0; $i < $gencount; $i++) { + $general = MYDB_fetch_array($result); + + $injury = rand() % 100; + if($injury < 30) { // 부상률 30% + $injury = floor($injury / 2) + 1; // 부상 1~16 + + $query = "update general set crew=crew*0.98,atmos=atmos*0.98,train=train*0.98,injury=injury+'$injury' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + pushGenLog($general, $log); + } + } +} + +function getRandTurn($term) { + switch($term) { + case 0: $randtime = rand() % 7200; break; + case 1: $randtime = rand() % 3600; break; + case 2: $randtime = rand() % 1800; break; + case 3: $randtime = rand() % 1200; break; + case 4: $randtime = rand() % 600; break; + case 5: $randtime = rand() % 300; break; + case 6: $randtime = rand() % 120; break; + case 7: $randtime = rand() % 60; break; + default:$randtime = rand() % 3600; break; + } + + $turntime = date('Y-m-d H:i:s', strtotime('now') + $randtime); + + return $turntime; +} + +function getRandTurn2($term) { + switch($term) { + case 0: $randtime = rand() % 7200; break; + case 1: $randtime = rand() % 3600; break; + case 2: $randtime = rand() % 1800; break; + case 3: $randtime = rand() % 1200; break; + case 4: $randtime = rand() % 600; break; + case 5: $randtime = rand() % 300; break; + case 6: $randtime = rand() % 120; break; + case 7: $randtime = rand() % 60; break; + default:$randtime = rand() % 3600; break; + } + + $turntime = date('Y-m-d H:i:s', strtotime('now') - $randtime); + + return $turntime; +} + +function ScoutMsg($connect, $genNum, $nationName, $who, $msgIndex) { + // 상대에게 발송 + $msgIndex++; + if($msgIndex >= 10) { $msgIndex = 0; } + + $date = date('Y-m-d H:i:s'); + //등용 서신시 장수번호/내 번호 + $me = $genNum * 10000 + $who; + $query = "update general set msgindex='$msgIndex',msg{$msgIndex}='{$nationName}(으)로 망명 권유 서신',msg{$msgIndex}_who='$me',msg{$msgIndex}_when='$date',msg{$msgIndex}_type='11' where no='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function command_Single($connect, $turn, $command) { + $command = EncodeCommand(0, 0, 0, $command); + + $count = sizeof($turn); + $str = "con=con"; + for($i=0; $i < $count; $i++) { + $str .= ",turn{$turn[$i]}='{$command}'"; + } + $query = "update general set {$str} where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + echo ""; + +} + +function command_Chief($connect, $turn, $command) { + $command = EncodeCommand(0, 0, 0, $command); + + $query = "select nation,level from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + if($me[level] >= 5) { + $count = sizeof($turn); + $str = "type=type"; + for($i=0; $i < $count; $i++) { + $str .= ",l{$me[level]}turn{$turn[$i]}='{$command}'"; + } + $query = "update nation set {$str} where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + echo ""; +} + +function command_Other($connect, $turn, $commandtype) { + echo "
"; + $count = sizeof($turn); + for($i=0; $i < $count; $i++) { + echo ""; + } + echo ""; + echo "
"; + echo "a"; // 없으면 파폭에서 아래 스크립트 실행 안됨 + echo ""; +} + +function GetNationColors() { + $colors = array("FF0000", "800000", "A0522D", "FF6347", "FFA500", "FFDAB9", "FFD700", "FFFF00", + "7CFC00", "00FF00", "808000", "008000", "2E8B57", "008080", "20B2AA", "6495ED", "7FFFD4", + "AFEEEE", "87CEEB", "00FFFF", "00BFFF", "0000FF", "000080", "483D8B", "7B68EE", "BA55D3", + "800080", "FF00FF", "FFC0CB", "F5F5DC", "E0FFFF", "FFFFFF", "A9A9A9"); + return $colors; +} + +function EncodeCommand($fourth, $third, $double, $command) { + $str = _String::Fill2($fourth, 4, "0"); + $str .= _String::Fill2($third, 4, "0"); + $str .= _String::Fill2($double, 4, "0"); + $str .= _String::Fill2($command, 2, "0"); + return $str; +} + +function DecodeCommand($str) { + $command[3] = floor(substr($str, 0, 4)); + $command[2] = floor(substr($str, 4, 4)); + $command[1] = floor(substr($str, 8, 4)); + $command[0] = floor(substr($str, 12, 2)); + return $command; +} + +function OptionsForCitys() { + $citynames = CityNameArray(); + + for($i=1; $i <= 94; $i++) { + echo " + "; + } +} + +function Submit($url, $msg="", $msg2="") { + echo "a"; // 파폭 버그 때문 + echo " +
+ + +
+ + "; +} + +?> diff --git a/twe_close/func_auction.php b/twe_close/func_auction.php new file mode 100644 index 00000000..9ffd729c --- /dev/null +++ b/twe_close/func_auction.php @@ -0,0 +1,348 @@ + 20000) { $general[gold] = 20000; } + if($general[rice] < 1000) { $general[rice] = 1000; } + if($general[rice] > 20000) { $general[rice] = 20000; } + +/* + // 유닉템 등록 + $query = "select * from auction where stuff!='0'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + // 유닉템 거래가 없을 경우 1% 확률로 등장 + if($count == 0 && rand()%100 < 1) { + // 유닉템 선택 + $sel = rand() % 4 + 1; + switch($sel) { + case 1: $type = "weap"; break; + case 2: $type = "book"; break; + case 3: $type = "horse"; break; + case 4: $type = "item"; break; + } + $query = "select no,{$type} from general where {$type}>6"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + if($count < 20) { + for($i=0; $i < $count; $i++) { + $gen = MYDB_fetch_array($result); + $occupied[$gen[$type]] = 1; + } + for($i=7; $i <= 26; $i++) { + if($occupied[$i] == 0) { + $item[count($item)] = $i; + } + } + $it = $item[rand() % count($item)]; + $stuff = $it * 10 + $sel; + + //평균 금의 100% + $amount = 1; + $cost = $general[gold]; + $topv = $general[maxgold] * 10; + if($cost < 5000) { $cost = 5000; } + if($topv < 10000) { $topv = 10000; } + + $cost = round($cost / 10) * 10; + $topv = round($topv / 10) * 10; + + $term = 12; + $date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s")) + $unit * $term); + $query = "insert into auction (type, no1, name1, stuff, amount, cost, value, topv, expire) values (0, '0', 'ⓝ암시장상인', '$stuff', '$amount', '$cost', '$cost', '$topv', '$date')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $alllog[0] = "●{$admin[month]}월:".GetStuffName($stuff)."(이)가 거래장에 등장했습니다!"; + $history[0] = "●$admin[year]년 $admin[month]월:【암시장】ⓝ암시장상인(이)가 ".GetStuffName($stuff)."(을)를 판다는 소문이 돌고 있습니다!"; + pushAllLog($alllog); + pushHistory($connect, $history); + } + } +*/ + + $query = "select * from auction where type='0' and stuff='0' and no1='0'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + $count += 5; + // 판매건 등록 + if(rand()%$count == 0) { + //평균 쌀의 5% ~ 25% + $mul = rand() % 5 + 1; + $amount = $general[rice] / 20 * $mul; + $cost = $general[gold] / 20 * 0.9 * $mul; + $topv = $amount * 2; + if($cost <= $amount*0.8) { $cost = $amount*0.8; } + if($cost >= $amount*1.2) { $cost = $amount*1.2; } + + $amount = round($amount / 10) * 10; + $cost = round($cost / 10) * 10; + $topv = round($topv / 10) * 10; + + $term = 3 + rand() % 10; + $date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s")) + $unit * $term); + $query = "insert into auction (type, no1, name1, stuff, amount, cost, value, topv, expire) values (0, '0', 'ⓝ상인', '0', '$amount', '$cost', '$cost', '$topv', '$date')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + $query = "select * from auction where type='1' and stuff='0' and no1='0'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + $count += 5; + // 구매건 등록 + if(rand()%$count == 0) { + //평균 쌀의 5% ~ 25% + $mul = rand() % 5 + 1; + $amount = $general[rice] / 20 * $mul; + $cost = $general[gold] / 20 * 1.1 * $mul; + $topv = $amount * 0.5; + if($cost <= $amount*0.8) { $cost = $amount*0.8; } + if($cost >= $amount*1.2) { $cost = $amount*1.2; } + + $amount = round($amount / 10) * 10; + $cost = round($cost / 10) * 10; + $topv = round($topv / 10) * 10; + + $term = 3 + rand() % 10; + $date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s")) + $unit * $term); + $query = "insert into auction (type, no1, name1, stuff, amount, cost, value, topv, expire) values (1, '0', 'ⓝ상인', '0', '$amount', '$cost', '$cost', '$topv', '$date')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function processAuction($connect) { + $date = date("Y-m-d H:i:s"); + + $query = "select year,month from game where no=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select * from auction where expire<='$date'"; + $result2 = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count2 = MYDB_num_rows($result2); + + for($i=0; $i < $count2; $i++) { + $auction = MYDB_fetch_array($result2); + + // 유닉템 처리 + if($auction[stuff] != 0) { + if($auction[no2] == 0) { + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 판매 유찰 : {$auction[name1]}(이)가 ".GetStuffName($auction[stuff])."(을)를 판매, 그러나 입찰자 부재"; + pushAuctionLog($connect, $auctionLog); + } else { + $trader[no] = 0; + $trader[name] = 'ⓝ암시장상인'; + $trader[gold] = 99999999; + $trader[rice] = 99999999; + + $query = "select no,name,gold,rice from general where no='$auction[no2]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $bidder = MYDB_fetch_array($result); + + $sel1 = $auction[stuff] % 10; + $sel2 = floor($auction[stuff] / 10); + switch($sel1) { + case 1: $type = "weap"; break; + case 2: $type = "book"; break; + case 3: $type = "horse"; break; + case 4: $type = "item"; break; + } + // 이미 유닉템이 풀렸는지 검사 + $query = "select no from general where {$type}='$sel2'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + // 판매거래만 존재 + if($count > 0) { + $traderLog[0] = "◆{$auction[no]}번 거래 유찰! 이미 아이템을 누군가가 가로챘습니다!"; + $bidderLog[0] = "◆{$auction[no]}번 거래 유찰! 이미 아이템을 누군가가 가로챘습니다!"; + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 판매 유찰 : {$auction[name1]}(이)가 ".GetStuffName($auction[stuff])."(을)를 판매, {$auction[name2]}(이)가 금 {$auction[value]}(으)로 입찰, 그러나 아이템 이미 매진!"; + } elseif($auction[value] > $bidder[gold] - 1000) { + $gold = round($auction[value] * 0.01); + $bidder[gold] -= $gold; + if($bidder[gold] < 0) $bidder[gold] = 0; + $query = "update general set gold='$bidder[gold]' where no='$auction[no2]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $traderLog[0] = "◆입찰자의 자금 부족으로 {$auction[no]}번 ".GetStuffName($auction[stuff])." 거래 유찰!"; + $bidderLog[0] = "◆입찰자의 자금 부족으로 {$auction[no]}번 ".GetStuffName($auction[stuff])." 거래 유찰! 벌금 {$gold}"; + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 판매 유찰 : {$auction[name1]}(이)가 ".GetStuffName($auction[stuff])."(을)를 판매, {$auction[name2]}(이)가 금 {$auction[value]}(으)로 입찰, 그러나 입찰자 자금부족, 벌금 {$gold}"; + } else { + $traderLog[0] = "◆{$auction[no]}번 거래 성사로 ".GetStuffName($auction[stuff])."(을)를 판매, 금 {$auction[value]}(을)를 획득!"; + $bidderLog[0] = "◆{$auction[no]}번 거래 성사로 금 {$auction[value]}(을)를 지불, ".GetStuffName($auction[stuff])." 구입!"; + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 판매 성사 : {$auction[name1]}(이)가 ".GetStuffName($auction[stuff])."(을)를 판매, {$auction[name2]}(이)가 금 {$auction[value]}(으)로 구매"; + $auctionLog[0] .= " ★ 아이템 거래 ★"; + + $query = "update general set gold=gold-'$auction[value]',{$type}='$sel2' where no='$auction[no2]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $alllog[0] = "●{$admin[month]}월:$auction[name2](이)가 ".GetStuffName($auction[stuff])."(을)를 구매했습니다!"; + $history[0] = "●$admin[year]년 $admin[month]월:【암시장】$auction[name2](이)가 ".GetStuffName($auction[stuff])."(을)를 구매했습니다!"; + pushAllLog($alllog); + pushHistory($connect, $history); + } + pushGenLog($trader, $traderLog); + pushGenLog($bidder, $bidderLog); + pushAuctionLog($connect, $auctionLog); + } + } else { + // 쌀 처리 + if($auction[no2] == 0) { + // 상인건수가 아닌것만 출력 + if($auction[no1] != 0) { + $query = "select no from general where no='$auction[no1]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $trader = MYDB_fetch_array($result); + + $traderLog[0] = "◆입찰자 부재로 {$auction[no]}번 거래 유찰!"; + if($auction[type] == 0) { + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 판매 유찰 : {$auction[name1]}(이)가 쌀 {$auction[amount]}(을)를 판매, 그러나 입찰자 부재"; + } else { + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 구매 유찰 : {$auction[name1]}(이)가 쌀 {$auction[amount]}(을)를 구매, 그러나 입찰자 부재"; + } + pushGenLog($trader, $traderLog); + pushAuctionLog($connect, $auctionLog); + } + } else { + if($auction[no1] == 0) { + $trader[no] = 0; + $trader[name] = 'ⓝ상인'; + $trader[gold] = 99999; + $trader[rice] = 99999; + } else { + $query = "select no,name,gold,rice from general where no='$auction[no1]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $trader = MYDB_fetch_array($result); + } + + $query = "select no,name,gold,rice from general where no='$auction[no2]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $bidder = MYDB_fetch_array($result); + //판매거래 + if($auction[type] == 0) { + if($auction[amount] > $trader[rice] - 1000) { + $gold = round($auction[value] * 0.01); + $trader[gold] -= $gold; + if($trader[gold] < 0) $trader[gold] = 0; + $query = "update general set gold='$trader[gold]' where no='$auction[no1]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $traderLog[0] = "◆판매자의 군량 부족으로 {$auction[no]}번 거래 유찰! 벌금 {$gold}"; + $bidderLog[0] = "◆판매자의 군량 부족으로 {$auction[no]}번 거래 유찰!"; + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 판매 유찰 : {$auction[name1]}(이)가 쌀 {$auction[amount]}(을)를 판매, {$auction[name2]}(이)가 금 {$auction[value]}(으)로 입찰, 그러나 판매자 군량부족, 벌금 {$gold}"; + } elseif($auction[value] > $bidder[gold] - 1000) { + $gold = round($auction[value] * 0.01); + $bidder[gold] -= $gold; + if($bidder[gold] < 0) $bidder[gold] = 0; + $query = "update general set gold='$bidder[gold]' where no='$auction[no2]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $traderLog[0] = "◆입찰자의 자금 부족으로 {$auction[no]}번 거래 유찰!"; + $bidderLog[0] = "◆입찰자의 자금 부족으로 {$auction[no]}번 거래 유찰! 벌금 {$gold}"; + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 판매 유찰 : {$auction[name1]}(이)가 쌀 {$auction[amount]}(을)를 판매, {$auction[name2]}(이)가 금 {$auction[value]}(으)로 입찰, 그러나 입찰자 자금부족, 벌금 {$gold}"; + } else { + $traderLog[0] = "◆{$auction[no]}번 거래 성사로 쌀 {$auction[amount]}(을)를 판매, 금 {$auction[value]}(을)를 획득!"; + $bidderLog[0] = "◆{$auction[no]}번 거래 성사로 금 {$auction[value]}(을)를 지불, 쌀 {$auction[amount]}(을)를 구입!"; + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 판매 성사 : {$auction[name1]}(이)가 쌀 {$auction[amount]}(을)를 판매, {$auction[name2]}(이)가 금 {$auction[value]}(으)로 구매"; + if($auction[value] >= $auction[amount] * 2) { + $auctionLog[0] .= " ★ 최고가 거래 ★"; + } elseif($auction[value] >= $auction[topv]) { + $auctionLog[0] .= " ★ 즉시구매가 거래 ★"; + } elseif($auction[value] * 2 <= $auction[amount]) { + $auctionLog[0] .= " ★ 최저가 거래 ★"; + } + $query = "update general set gold=gold+'$auction[value]',rice=rice-'$auction[amount]' where no='$auction[no1]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set gold=gold-'$auction[value]',rice=rice+'$auction[amount]' where no='$auction[no2]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + pushGenLog($trader, $traderLog); + pushGenLog($bidder, $bidderLog); + pushAuctionLog($connect, $auctionLog); + //구매거래 + } else { + if($auction[amount] > $bidder[rice] - 1000) { + $gold = round($auction[value] * 0.01); + $bidder[gold] -= $gold; + if($bidder[gold] < 0) $bidder[gold] = 0; + $query = "update general set gold='$bidder[gold]' where no='$auction[no2]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $traderLog[0] = "◆입찰자의 군량 부족으로 {$auction[no]}번 거래 유찰!"; + $bidderLog[0] = "◆입찰자의 군량 부족으로 {$auction[no]}번 거래 유찰! 벌금 {$gold}"; + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 구매 유찰 : {$auction[name1]}(이)가 쌀 {$auction[amount]}(을)를 구매, {$auction[name2]}(이)가 금 {$auction[value]}(으)로 입찰, 그러나 입찰자 군량부족, 벌금 {$gold}"; + } elseif($auction[value] > $trader[gold] - 1000) { + $gold = round($auction[value] * 0.01); + $trader[gold] -= $gold; + if($trader[gold] < 0) $trader[gold] = 0; + $query = "update general set gold='$trader[gold]' where no='$auction[no1]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $traderLog[0] = "◆구매자의 자금 부족으로 {$auction[no]}번 거래 유찰! 벌금 {$gold}"; + $bidderLog[0] = "◆구매자의 자금 부족으로 {$auction[no]}번 거래 유찰!"; + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 구매 유찰 : {$auction[name1]}(이)가 쌀 {$auction[amount]}(을)를 구매, {$auction[name2]}(이)가 금 {$auction[value]}(으)로 입찰, 그러나 구매자 자금부족, 벌금 {$gold}"; + } else { + $traderLog[0] = "◆{$auction[no]}번 거래 성사로 금 {$auction[value]}(을)를 지불, 쌀 {$auction[amount]}(을)를 구입!"; + $bidderLog[0] = "◆{$auction[no]}번 거래 성사로 쌀 {$auction[amount]}(을)를 판매, 금 {$auction[value]}(을)를 획득!"; + $auctionLog[0] = "◆$admin[year]년 $admin[month]월, {$auction[no]}번 구매 성사 : {$auction[name1]}(이)가 쌀 {$auction[amount]}(을)를 구매, {$auction[name2]}(이)가 금 {$auction[value]}(으)로 판매"; + if($auction[value] >= $auction[amount] * 2) { + $auctionLog[0] .= " ★ 최고가 거래 ★"; + } elseif($auction[value] * 2 <= $auction[amount]) { + $auctionLog[0] .= " ★ 최저가 거래 ★"; + } elseif($auction[value] <= $auction[topv]) { + $auctionLog[0] .= " ★ 즉시구매가 거래 ★"; + } + + $query = "update general set gold=gold-'$auction[value]',rice=rice+'$auction[amount]' where no='$auction[no1]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set gold=gold+'$auction[value]',rice=rice-'$auction[amount]' where no='$auction[no2]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + pushGenLog($trader, $traderLog); + pushGenLog($bidder, $bidderLog); + pushAuctionLog($connect, $auctionLog); + } + } + } + } + + $query = "delete from auction where expire<='$date'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +?> diff --git a/twe_close/func_history.php b/twe_close/func_history.php new file mode 100644 index 00000000..bd18360c --- /dev/null +++ b/twe_close/func_history.php @@ -0,0 +1,131 @@ +{$year}년 {$month}월:"; + for($i=0; $i < $count; $i++) { + $line = $log[count($log)-2-$i]; + if($line == "") { + continue; + } + + if(strpos($line, $prefix) || $isFirst == 1) { + $str = ConvertLog($line).'
'.$str; + } else { + break; + } + } + if($str == "") { + $str = "●{$year}년 {$month}월: 기록 없음"; + $str = ConvertLog($str); + } + return $str; +} + +function getGenHistory($count, $year, $month, $isFirst=0) { + $fp = @fopen("logs/_alllog.txt", "r"); + @fseek($fp, -$count*300, SEEK_END); + $file = @fread($fp, $count*300); + @fclose($fp); + $log = explode("\r\n",$file); + + $str = ""; + $prefix = "{$month}월:"; + $year -= 1; + $prefixYear = "{$month}월:{$year}"; + for($i=0; $i < $count; $i++) { + $line = $log[count($log)-2-$i]; + if($line == "") { + continue; + } + + if(strpos($line, $prefixYear)) { + break; + } elseif(strpos($line, $prefix) || $isFirst == 1) { + $str = ConvertLog($line).'
'.$str; + } else { + break; + } + } + if($str == "") { + $str = "●{$month}월: 기록 없음"; + $str = ConvertLog($str); + } + return $str; +} + +function LogHistory($connect, $isFirst=0) { + if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', LogHistory Start'); + + $query = "select startyear,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + if($isFirst == 1) { + $admin['year'] -= 1; + $admin['month'] = 12; + } + + $file = explode('/', __FILE__); + $url = '/'.$file[count($file)-3].'/'.$file[count($file)-2].'/map.php?type=2&graphic=0'; + + /* 소켓 통신을 통하여 필요한 html정보를 가져옴 */ + if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', Start HTTP'); + $http = new HTTP("62che.com", 80, 10); + if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', Connect end, '.$http->GetError()); + if($http->GetErr() == true) { return false; } + $http->setHttpVersion("1.1"); + $cookie = ""; + $http->Get($url, $cookie); + if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', Response end, '.$http->GetError()); + if($http->GetErr() == true) { return false; } + $map = $http->Response["body"]; + $map = str_replace("'", '<_quot_>', $map); + $map = str_replace('"', '<_dquot_>', $map); + $http->Close(); + if($http->GetErr() == true) { return false; } + + $log = getHistory(20, $admin['year'], $admin['month'], $isFirst); + $genlog = getGenHistory(50, $admin['year'], $admin['month'], $isFirst); + + $query = "select nation,color,name,power,gennum from nation where level>0 order by power desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($result); + + $nationStr = ""; + $powerStr = ""; + $genStr = ""; + $cityStr = ""; + for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($result); + + $query = "select city from city where nation='$nation[nation]'"; + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($cityresult); + + $nationStr .= " $nation[name]
"; + $powerStr .= "국력 $nation[power]
"; + $genStr .= "장수 $nation[gennum]
"; + $cityStr .= "속령 $citycount
"; + } + + if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', contents collected'); + + @MYDB_query(" + insert into history ( + year, month, map, log, genlog, nation, power, gen, city + ) values ( + '$admin[year]', '$admin[month]', '$map', '$log', '$genlog', '$nationStr', '$powerStr', '$genStr', '$cityStr' + )", + $connect) or Error(__LINE__.MYDB_error($connect),""); + + if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', LogHistory Finish'); + return true; +} +?> diff --git a/twe_close/func_http.php b/twe_close/func_http.php new file mode 100644 index 00000000..09dd69d3 --- /dev/null +++ b/twe_close/func_http.php @@ -0,0 +1,288 @@ +Server = $Server; + $this->Port = $Port; + $this->Timeout = $Timeout; + + $this->Socket = @fsockopen ($this->Server, $this->Port, $errno, $errstr, $this->Timeout); + if(!$this->Socket){ + $this->Error(0, "Socket Connection Fail"); + } + } + + function setTimeout($Timeout){ + $this->Timeout = $Timeout; + } + + function setHttpVersion($HttpVersion){ + $this->HttpVersion = $HttpVersion; + } + + function Head($Url = "/") { + $this->Url = $Url; + $msg = sprintf("HEAD %s HTTP/%s\r\n", $this->Url, $this->HttpVersion); + $msg .= $this->PutHead(); + $msg .= "\n\n"; + fputs($this->Socket, $msg); + + return $this->Read(); + } + + function isHead($Url = "/"){ + $this->Url = $Url; + $msg = sprintf("HEAD %s HTTP/%s\r\n", $this->Url, $this->HttpVersion); + if($Cookie != ""){ + $msg .= $this->PutCookie($Cookie); + } + $msg .= $this->PutHead(); + $msg .= "\n\n"; + fputs($this->Socket, $msg); + + return $this->isOK(); + } + + function GetHead($Url = "/") { + $this->Url = $Url; + $msg = sprintf("GET %s HTTP/%s\r\n", $this->Url, $this->HttpVersion); + $msg .= $this->PutHead(); + $msg .= "\n\n"; + fputs($this->Socket, $msg); + $out = $this->ReadHeader(); + return $out; + } + + function Get($Url = "/", $Cookie="") { + $this->Url = $Url; + $msg = sprintf("GET %s HTTP/%s\r\n", $this->Url, $this->HttpVersion); + if($Cookie != ""){ + $msg .= $this->PutCookie($Cookie); + } + $msg .= $this->PutHead(); + $msg .= "\n\n"; + fputs($this->Socket, $msg); + return $this->Read(); + } + + function isGet($Url = "/", $Cookie=""){ + $this->Url = $Url; + $msg = sprintf("GET %s HTTP/%s\r\n", $this->Url, $this->HttpVersion); + if($Cookie != ""){ + $msg .= $this->PutCookie($Cookie); + } + $msg .= $this->PutHead(); + $msg .= "\n\n"; + fputs($this->Socket, $msg); + return $this->isOK(); + } + + function isGetAll($Url = "/", $Cookie=""){ + $this->Url = $Url; + $msg = sprintf("GET %s HTTP/%s\r\n", $this->Url, $this->HttpVersion); + if($Cookie != ""){ + $msg .= $this->PutCookie($Cookie); + } + $msg .= $this->PutHead(); + $msg .= "\n\n"; + fputs($this->Socket, $msg); + + $data = $this->Read(); + $this->Length = strlen($data); + return $this->isOK($data); + } + + function Post($Url, $Data, $Cookie = ""){ + $this->Url = $Url; + fputs ($this->Socket,sprintf("POST %s HTTP/%s\r\n", $this->Url, $this->HttpVersion)); + if($Cookie != ""){ + $this->PutCookie($Cookie); + } + $this->PutHead(); + fputs ($this->Socket, "Content-type: application/x-www-form-urlencoded\r\n"); + $out = ""; + while (list ($k, $v) = each ($Data)) { + if(strlen($out) != 0) $out .= "&"; + $out .= rawurlencode($k). "=" .rawurlencode($v); + } + fputs ($this->Socket, "Content-length: ".strlen($out)."\n\n"); + fputs ($this->Socket, "$out"); + fputs ($this->Socket, "\n"); + return $this->Read(); + } + + function IsPost($Url, $Data, $Cookie = ""){ + $this->Url = $Url; + fputs ($this->Socket,sprintf("POST %s HTTP/%s\r\n", $this->Url, $this->HttpVersion)); + if($Cookie != ""){ + $this->PutCookie($Cookie); + } + $this->PutHead(); + fputs ($this->Socket, "Content-type: application/x-www-form-urlencoded\r\n"); + $out = ""; + while (list ($k, $v) = each ($Data)) { + if(strlen($out) != 0) $out .= "&"; + $out .= rawurlencode($k). "=" .rawurlencode($v); + } + fputs ($this->Socket, "Content-length: ".strlen($out)."\n\n"); + fputs ($this->Socket, "$out"); + fputs ($this->Socket, "\n"); + return $this->isOk(); + } + + function PutHead(){ + $msg = ""; + $msg .= "Accept: */*\r\n"; + $msg .= "Accept-Language: ko\r\n"; + $msg .= "Accept-Encoding: gzip, deflate\r\n"; + $msg .= "User-Agent: Mozilla/4.0 (compatible; 62che)\r\n"; + while (list($name, $value) = each ($this->headers)) { + $msg .= "$name: $value\r\n"; + } + $msg .= "Host: ".$this->Server.":".$this->Port."\r\n"; + $msg .= "Connection: close\r\n"; + return $msg; + } + + function AddHeader($name, $value){ + $this->headers[$name] = $value; + } + + function PutCookie($cookie){ + $msg = ""; + if(is_array($cookie)){ + $out = ""; + while (list ($k, $v) = each ($cookie)) { + if(strlen($out) != 0) $out .= ";"; + $out .= rawurlencode($k). "=" .rawurlencode($v); + } + $msg = "Cookie: $out\n"; + } else { + $msg = "Cookie: $cookie\n"; + } + return $msg; + } + + function Read(){ + $out = $this->ReadHeader(); + $chunked = isset($this->Response['transfer-encoding']) && ('chunked' == $this->Response['transfer-encoding']); + $gzipped = isset($this->Response['content-encoding']) && ('gzip' == $this->Response['content-encoding']); + $body = ''; + while(!feof($this->Socket)){ + if ($chunked) { + $buf = $this->_readChunked(); + } else { + $buf = fread($this->Socket, 4096); + } + $body .= $buf; + } + if($gzipped){ + $body = gzinflate(substr($body, 10)); + } + $this->Response['body'] = $body; + $out .= $body; + return $out; + } + + function ReadHeader(){ + $out = ''; + $buf = $this->_readLine(); + if (sscanf($buf, 'HTTP/%s %s', $http_version, $returncode) != 2) { + $this->Error(0,"Malformed response"); + return false; + } else { + $this->Response["protocol"] = 'HTTP/' . $http_version; + $this->Response["code"] = intval($returncode); + } + $out .= $buf; + while(!feof($this->Socket)){ + $buf = $this->_readLine(); + $out .= $buf; + + if($buf == "\n" || $buf == "\r\n"){ + break; + } + + list($name,$value) = split(":",rtrim($buf,"\r\n"),2); + $this->Response[strtolower($name)] = trim($value); + } + $this->Response["header"] = $out; + return $out; + } + + function isOk($buffer = ""){ + if($buffer == "") $buffer .= fgets($this->Socket, 128); + if(preg_match('/^HTTP\/.* (2\d{2}|3\d{2}).*/', $buffer)){ + return true; + } + return false; + } + + function _readLine(){ + $line = ''; + while(!feof($this->Socket)){ + $line .= fgets($this->Socket, 4096); + if (substr($line, -2) == "\r\n" || substr($line, -1) == "\n") { + return $line; + } + } + return $line; + } + + function _readAll(){ + $data = ''; + while(!feof($this->Socket)){ + $data .= fread($this->Socket, 4096); + } + return $data; + } + + function _readChunked(){ + // at start of the next chunk? + if (0 == $this->_chunkLength) { + $line = $this->_readLine(); + if (preg_match('/^([0-9a-f]+)/i', $line, $matches)) { + $this->_chunkLength = hexdec($matches[1]); + // Chunk with zero length indicates the end + if (0 == $this->_chunkLength) { + $this->_readAll(); // make this an eof() + return ''; + } + } + } + $data = fread($this->Socket, $this->_chunkLength); + $this->_chunkLength -= strlen($data); + if (0 == $this->_chunkLength) { + $this->_readLine(); // Trailing CRLF + } + return $data; + } + + function Close(){ + fclose($this->Socket); + } + + function Error($errnum, $errmsg){ + $this->Err = true; + $this->ErrNum = $errnum; + $this->ErrMsg = $errmsg; + } + + function GetErr() { + return $this->Err; + } + + function GetError() { + if($this->Err == true) { + return "{$this->ErrNum}, {$this->ErrMsg}"; + } else { + return "No Err"; + } + } +} +?> \ No newline at end of file diff --git a/twe_close/func_npc.php b/twe_close/func_npc.php new file mode 100644 index 00000000..9c8f7d1d --- /dev/null +++ b/twe_close/func_npc.php @@ -0,0 +1,1864 @@ + 0) { + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1492, 123, "가화",$img,1492, 0, "-", 50, 66, 40, 0, 176, 224, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1493, 999, "건석",$img,1493, 0, "-", 21, 12, 61, 0, 155, 189, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1494, 999, "견씨",$img,1494, 0, "-", 35, 24, 58, 0, 182, 221, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1495, 40, "견홍",$img,1495, 0, "-", 76, 72, 66, 0, 224, 272, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1496, 120, "고담",$img,1496, 0, "-", 33, 21, 69, 0, 203, 244, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1497, 101, "고유",$img,1497, 0, "-", 56, 44, 73, 0, 174, 263, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1498, 132, "곽마",$img,1498, 0, "-", 68, 71, 49, 0, 239, 280, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1499, 39, "관구수",$img,1499, 0, "-", 58, 63, 35, 0, 206, 265, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1500, 39, "관구전",$img,1500, 0, "-", 63, 58, 68, 0, 224, 255, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1501, 999, "관로",$img,1501, 0, "-", 62, 21, 75, 0, 191, 256, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1502, 65, "관정",$img,1502, 0, "-", 35, 50, 73, 0, 158, 199, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1503, 137, "교수",$img,1503, 0, "-", 67, 69, 39, 0, 143, 195, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1504, 33, "구건",$img,1504, 0, "-", 43, 56, 69, 0, 239, 272, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1505, 41, "구본",$img,1505, 0, "-", 52, 41, 70, 0, 232, 269, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1506, 12, "구성",$img,1506, 0, "-", 56, 71, 31, 0, 157, 187, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1507, 21, "국연",$img,1507, 0, "-", 52, 21, 71, 0, 160, 219, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1508, 99, "국의",$img,1508, 0, "-", 83, 79, 50, 0, 146, 191, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1509, 34, "금의",$img,1509, 0, "-", 18, 40, 63, 0, 177, 218, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1510, 76, "나헌",$img,1510, 0, "-", 86, 67, 75, 0, 218, 270, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1511, 999, "남두",$img,1511, 0, "-", 35, 25, 54, 0, 130, 200, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1512, 54, "냉포",$img,1512, 0, "-", 70, 82, 69, 0, 176, 214, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1513, 124, "노숙2",$img,1513, 0, "-", 70, 55, 76, 0, 208, 274, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1514, 42, "누규",$img,1514, 0, "-", 54, 19, 88, 0, 143, 212, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1515, 6, "누반",$img,1515, 0, "-", 65, 76, 39, 0, 178, 207, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1516, 130, "누현",$img,1516, 0, "-", 23, 20, 68, 0, 223, 275, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1517, 40, "당균",$img,1517, 0, "-", 33, 19, 81, 0, 229, 264, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1518, 32, "당빈",$img,1518, 0, "-", 70, 74, 62, 0, 235, 294, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1519, 999, "대교",$img,1519, 0, "-", 42, 10, 54, 0, 177, 235, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1520, 28, "대릉",$img,1520, 0, "-", 64, 75, 45, 0, 199, 258, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1521, 129, "동조",$img,1521, 0, "-", 16, 15, 51, 0, 221, 281, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1522, 114, "등수",$img,1522, 0, "-", 35, 20, 44, 0, 228, 288, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1523, 50, "마막",$img,1523, 0, "-", 22, 17, 5, 0, 221, 265, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1524, 116, "만욱",$img,1524, 0, "-", 20, 18, 66, 0, 240, 272, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1525, 120, "맹종",$img,1525, 0, "-", 48, 48, 67, 0, 216, 271, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1526, 38, "문호",$img,1526, 0, "-", 65, 74, 45, 0, 227, 279, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1527, 999, "미씨",$img,1527, 0, "-", 59, 15, 68, 0, 176, 208, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1528, 39, "반림",$img,1528, 0, "-", 66, 79, 8, 0, 168, 225, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1529, 129, "반장",$img,1529, 0, "-", 77, 78, 69, 0, 177, 222, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1530, 94, "방열",$img,1530, 0, "-", 58, 82, 28, 0, 153, 190, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1531, 55, "방희",$img,1531, 0, "-", 59, 38, 69, 0, 153, 218, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1532, 30, "배수",$img,1532, 0, "-", 10, 11, 77, 0, 223, 271, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1533, 8, "번능",$img,1533, 0, "-", 70, 61, 47, 0, 158, 194, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1534, 999, "번씨",$img,1534, 0, "-", 32, 17, 45, 0, 176, 220, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1535, 49, "보도근",$img,1535, 0, "-", 64, 73, 50, 0, 170, 233, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1536, 129, "보천",$img,1536, 0, "-", 68, 60, 72, 0, 222, 272, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1537, 121, "보협",$img,1537, 0, "-", 73, 53, 75, 0, 216, 264, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1538, 28, "부하",$img,1538, 0, "-", 44, 36, 85, 0, 209, 255, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1539, 26, "비요",$img,1539, 0, "-", 70, 65, 73, 0, 192, 228, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1540, 31, "사마주",$img,1540, 0, "-", 63, 53, 62, 0, 227, 283, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1541, 41, "사찬",$img,1541, 0, "-", 61, 71, 54, 0, 215, 264, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1542, 128, "설후",$img,1542, 0, "-", 16, 14, 71, 0, 221, 271, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1543, 36, "성공영",$img,1543, 0, "-", 73, 58, 80, 0, 172, 220, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1544, 126, "성만",$img,1544, 0, "-", 61, 69, 66, 0, 225, 276, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1545, 999, "소교",$img,1545, 0, "-", 57, 23, 66, 0, 178, 218, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1546, 46, "소유",$img,1546, 0, "-", 51, 61, 48, 0, 164, 210, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1547, 31, "소제2",$img,1547, 0, "-", 22, 16, 78, 0, 224, 268, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1548, 126, "손교",$img,1548, 0, "-", 77, 60, 69, 0, 181, 219, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1549, 116, "손기",$img,1549, 0, "-", 62, 65, 52, 0, 227, 276, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1550, 999, "손상향",$img,1550, 0, "-", 72, 62, 42, 0, 193, 244, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1551, 125, "손익",$img,1551, 0, "-", 69, 75, 26, 0, 184, 204, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1552, 125, "손진",$img,1552, 0, "-", 64, 71, 48, 0, 234, 280, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1553, 123, "송겸",$img,1553, 0, "-", 61, 48, 44, 0, 175, 215, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1554, 85, "순심",$img,1554, 0, "-", 20, 21, 79, 0, 164, 208, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1555, 31, "순욱2",$img,1555, 0, "-", 10, 16, 77, 0, 225, 289, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1556, 31, "순의",$img,1556, 0, "-", 16, 11, 73, 0, 207, 281, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1557, 129, "시삭",$img,1557, 0, "-", 36, 66, 44, 0, 226, 268, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1558, 29, "신창",$img,1558, 0, "-", 51, 29, 46, 0, 210, 272, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1559, 999, "악신",$img,1559, 0, "-", 53, 12, 46, 0, 175, 228, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1560, 138, "악취",$img,1560, 0, "-", 56, 68, 58, 0, 157, 195, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1561, 138, "양강",$img,1561, 0, "-", 62, 70, 42, 0, 160, 199, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1562, 21, "양부",$img,1562, 0, "-", 68, 55, 85, 0, 178, 239, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1563, 72, "양서",$img,1563, 0, "-", 56, 62, 66, 0, 198, 260, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1564, 34, "양습",$img,1564, 0, "-", 67, 49, 73, 0, 168, 230, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1565, 16, "양앙",$img,1565, 0, "-", 65, 70, 39, 0, 172, 215, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1566, 17, "양임",$img,1566, 0, "-", 71, 78, 56, 0, 170, 215, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1567, 32, "양제",$img,1567, 0, "-", 69, 63, 71, 0, 226, 291, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1568, 33, "양조2",$img,1568, 0, "-", 65, 61, 67, 0, 223, 286, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1569, 48, "양추2",$img,1569, 0, "-", 66, 67, 61, 0, 172, 238, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1570, 140, "양홍",$img,1570, 0, "-", 19, 17, 76, 0, 152, 199, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1571, 31, "양혼",$img,1571, 0, "-", 60, 67, 63, 0, 220, 278, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1572, 123, "여거",$img,1572, 0, "-", 71, 58, 69, 0, 196, 256, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1573, 130, "여대",$img,1573, 0, "-", 83, 72, 70, 0, 161, 256, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1574, 136, "염상",$img,1574, 0, "-", 29, 27, 69, 0, 158, 199, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1575, 36, "염행",$img,1575, 0, "-", 70, 86, 38, 0, 159, 222, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1576, 73, "영수",$img,1576, 0, "-", 69, 70, 74, 0, 234, 264, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1577, 39, "오거",$img,1577, 0, "-", 49, 63, 32, 0, 151, 211, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1578, 126, "오경",$img,1578, 0, "-", 73, 60, 57, 0, 159, 203, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1579, 999, "오국태",$img,1579, 0, "-", 31, 11, 60, 0, 161, 222, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1580, 126, "오찬",$img,1580, 0, "-", 69, 41, 78, 0, 181, 245, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1581, 23, "온회",$img,1581, 0, "-", 42, 40, 78, 0, 178, 222, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1582, 21, "왕기2",$img,1582, 0, "-", 70, 66, 63, 0, 217, 281, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1583, 32, "왕도",$img,1583, 0, "-", 48, 44, 70, 0, 210, 269, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1584, 123, "왕돈",$img,1584, 0, "-", 60, 65, 41, 0, 198, 256, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1585, 34, "왕릉",$img,1585, 0, "-", 73, 60, 71, 0, 172, 251, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1586, 63, "왕문",$img,1586, 0, "-", 64, 67, 32, 0, 162, 205, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1587, 32, "왕상",$img,1587, 0, "-", 25, 19, 65, 0, 180, 268, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1588, 34, "왕숙",$img,1588, 0, "-", 35, 21, 80, 0, 195, 256, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1589, 33, "왕업",$img,1589, 0, "-", 32, 6, 46, 0, 220, 280, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1590, 35, "왕충",$img,1590, 0, "-", 42, 58, 21, 0, 152, 214, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1591, 1, "우보",$img,1591, 0, "-", 43, 63, 12, 0, 159, 192, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1592, 122, "우사",$img,1592, 0, "-", 70, 33, 79, 0, 217, 273, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1593, 138, "원요",$img,1593, 0, "-", 44, 42, 45, 0, 177, 206, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1594, 95, "원유",$img,1594, 0, "-", 57, 38, 73, 0, 150, 193, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1595, 31, "위관",$img,1595, 0, "-", 69, 45, 81, 0, 220, 291, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1596, 129, "위막",$img,1596, 0, "-", 58, 62, 60, 0, 221, 268, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1597, 55, "유괴",$img,1597, 0, "-", 75, 72, 66, 0, 165, 214, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1598, 129, "유략",$img,1598, 0, "-", 72, 68, 59, 0, 206, 260, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1599, 45, "유반",$img,1599, 0, "-", 74, 79, 48, 0, 168, 210, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1600, 29, "유복",$img,1600, 0, "-", 54, 50, 73, 0, 164, 208, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1601, 78, "유선2",$img,1601, 0, "-", 9, 21, 39, 0, 224, 264, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1602, 139, "유섭",$img,1602, 0, "-", 62, 79, 26, 0, 158, 190, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1603, 28, "유소",$img,1603, 0, "-", 66, 51, 73, 0, 195, 264, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1604, 128, "유승",$img,1604, 0, "-", 46, 69, 29, 0, 215, 258, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1605, 129, "유찬",$img,1605, 0, "-", 74, 75, 66, 0, 172, 255, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1606, 129, "유평",$img,1606, 0, "-", 65, 70, 67, 0, 218, 272, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1607, 138, "유훈",$img,1607, 0, "-", 51, 64, 50, 0, 163, 216, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1608, 48, "이감",$img,1608, 0, "-", 59, 67, 33, 0, 176, 211, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1609, 19, "이승",$img,1609, 0, "-", 13, 26, 32, 0, 201, 249, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1610, 22, "이통",$img,1610, 0, "-", 75, 84, 52, 0, 168, 211, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1611, 138, "이풍2",$img,1611, 0, "-", 72, 77, 50, 0, 158, 199, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1612, 20, "이풍3",$img,1612, 0, "-", 23, 25, 71, 0, 204, 254, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1613, 29, "장구",$img,1613, 0, "-", 69, 71, 47, 0, 201, 263, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1614, 21, "장기",$img,1614, 0, "-", 77, 35, 79, 0, 170, 223, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1615, 74, "장남",$img,1615, 0, "-", 71, 64, 38, 0, 187, 222, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1616, 100, "장막",$img,1616, 0, "-", 53, 52, 70, 0, 155, 195, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1617, 7, "장만성",$img,1617, 0, "-", 73, 83, 47, 0, 143, 184, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1618, 135, "장반",$img,1618, 0, "-", 56, 73, 66, 0, 227, 282, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1619, 78, "장빈",$img,1619, 0, "-", 30, 28, 67, 0, 216, 263, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1620, 124, "장승",$img,1620, 0, "-", 75, 68, 75, 0, 178, 244, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1621, 999, "장양2",$img,1621, 0, "-", 58, 50, 47, 0, 130, 184, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1622, 68, "장억",$img,1622, 0, "-", 82, 80, 54, 0, 190, 254, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1623, 75, "장준",$img,1623, 0, "-", 65, 67, 66, 0, 224, 263, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1624, 20, "장집",$img,1624, 0, "-", 31, 27, 74, 0, 196, 254, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1625, 39, "장특",$img,1625, 0, "-", 71, 53, 74, 0, 209, 265, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1626, 96, "저곡",$img,1626, 0, "-", 57, 53, 67, 0, 184, 204, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1627, 128, "전기",$img,1627, 0, "-", 51, 69, 55, 0, 231, 258, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1628, 23, "전만",$img,1628, 0, "-", 52, 74, 38, 0, 181, 235, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1629, 128, "전상",$img,1629, 0, "-", 5, 6, 11, 0, 208, 258, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1630, 130, "전역",$img,1630, 0, "-", 60, 62, 37, 0, 212, 265, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1631, 75, "전예",$img,1631, 0, "-", 80, 62, 83, 0, 171, 252, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1632, 64, "전해",$img,1632, 0, "-", 71, 63, 57, 0, 154, 199, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1633, 123, "정봉2",$img,1633, 0, "-", 67, 68, 52, 0, 198, 266, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1634, 22, "정의",$img,1634, 0, "-", 17, 3, 66, 0, 184, 220, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1635, 81, "제갈교",$img,1635, 0, "-", 55, 17, 77, 0, 204, 228, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1636, 40, "제갈서",$img,1636, 0, "-", 45, 43, 27, 0, 218, 286, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1637, 25, "조충",$img,1637, 0, "-", 14, 7, 80, 0, 196, 208, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1638, 121, "종리목",$img,1638, 0, "-", 84, 68, 75, 0, 214, 269, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1639, 22, "종육",$img,1639, 0, "-", 27, 11, 71, 0, 223, 263, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1640, 122, "좌혁",$img,1640, 0, "-", 60, 66, 51, 0, 232, 280, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1641, 36, "주령",$img,1641, 0, "-", 77, 70, 69, 0, 170, 236, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1642, 115, "주앙",$img,1642, 0, "-", 75, 64, 64, 0, 162, 195, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1643, 52, "주포",$img,1643, 0, "-", 59, 72, 12, 0, 191, 225, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1644, 11, "주흔",$img,1644, 0, "-", 67, 53, 77, 0, 159, 196, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1645, 140, "진기",$img,1645, 0, "-", 58, 67, 46, 0, 165, 198, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1646, 142, "진란",$img,1646, 0, "-", 65, 70, 43, 0, 157, 204, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1647, 25, "진랑",$img,1647, 0, "-", 57, 70, 38, 0, 192, 234, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1648, 12, "진응",$img,1648, 0, "-", 62, 69, 49, 0, 172, 208, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1649, 124, "진표",$img,1649, 0, "-", 62, 49, 74, 0, 204, 237, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1650, 999, "채염",$img,1650, 0, "-", 40, 22, 64, 0, 168, 237, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1651, 999, "초선",$img,1651, 0, "-", 66, 15, 72, 0, 176, 211, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1652, 135, "초이",$img,1652, 0, "-", 54, 65, 55, 0, 219, 266, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1653, 65, "추단",$img,1653, 0, "-", 63, 71, 36, 0, 148, 193, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1654, 999, "추씨",$img,1654, 0, "-", 36, 13, 54, 0, 165, 225, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1655, 71, "추정",$img,1655, 0, "-", 67, 65, 66, 0, 144, 193, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1656, 145, "파재",$img,1656, 0, "-", 69, 75, 52, 0, 145, 184, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1657, 22, "포신",$img,1657, 0, "-", 78, 60, 83, 0, 152, 192, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1658, 114, "하식",$img,1658, 0, "-", 18, 38, 29, 0, 230, 284, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1659, 36, "하안",$img,1659, 0, "-", 6, 27, 72, 0, 190, 249, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1660, 999, "하후씨",$img,1660, 0, "-", 29, 16, 47, 0, 186, 249, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1661, 5, "학맹",$img,1661, 0, "-", 57, 66, 41, 0, 156, 197, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1662, 98, "한거자",$img,1662, 0, "-", 53, 59, 30, 0, 158, 200, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1663, 19, "한덕",$img,1663, 0, "-", 62, 79, 24, 0, 171, 228, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1664, 140, "한윤",$img,1664, 0, "-", 27, 24, 68, 0, 155, 197, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1665, 999, "허소",$img,1665, 0, "-", 53, 27, 60, 0, 150, 195, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1666, 30, "호열",$img,1666, 0, "-", 77, 69, 76, 0, 225, 272, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1667, 76, "호제",$img,1667, 0, "-", 58, 42, 68, 0, 207, 264, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1668, 149, "호진",$img,1668, 0, "-", 65, 77, 13, 0, 146, 190, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1669, 29, "호질",$img,1669, 0, "-", 73, 50, 75, 0, 192, 250, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1670, 7, "환계",$img,1670, 0, "-", 12, 25, 67, 0, 156, 221, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1671, 56, "황숭",$img,1671, 0, "-", 68, 64, 74, 0, 208, 263, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1672, 999, "황승언",$img,1672, 0, "-", 68, 17, 81, 0, 165, 222, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1673, 999, "황월영",$img,1673, 0, "-", 58, 14, 75, 0, 186, 235, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1674, 45, "황조",$img,1674, 0, "-", 74, 65, 57, 0, 148, 208, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1675, 48, "후선",$img,1675, 0, "-", 56, 66, 35, 0, 175, 228, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1676, 8, "휴고",$img,1676, 0, "-", 61, 72, 40, 0, 151, 199, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1677, 98, "휴원진",$img,1677, 0, "-", 53, 63, 38, 0, 155, 200, "-", "-"); + RegGeneral($connect,0,0,$fiction,$turnterm,$startyear,$year,1678, 22, "희지재",$img,1678, 0, "-", 24, 5, 86, 0, 157, 194, "-", "-"); + } +} + +function RegGeneral($connect,$init,$life,$fiction,$turnterm,$startyear,$year,$gencount,$npcmatch,$name,$img,$picture,$nation, + $city,$leader,$power,$intel,$level, + $bornyear,$deadyear,$personal,$special, + $msg="") { + $name = "ⓝ".$name; + $npc = 2; + if($city == "-") { + $city = rand() % 94 + 1; + } else { + $city = CityCall($city); + } + if($npcmatch == 0 || $fiction == 1) { $npcmatch = rand() % 150 + 1; } + if($life == 1) { $bornyear = 160; $deadyear = 300; } + if($init != 0 && $startyear > $bornyear+14 && $startyear <= $deadyear) { + if($deadyear <= $startyear+3) $deadyear += 5; + + $genid = "gen{$gencount}"; + $turntime = getRandTurn($turnterm); + if($personal != "-") { $personal = CharCall($personal); } + else { $personal = rand() % 10; } + if($fiction == 1) { $special = SpecCall("-"); } + else { $special = SpecCall($special); } + if($special >= 40) { $special2 = $special; $special = 0; } + else { $special2 = 0; } + if($picture == 0) { $picture = 1001 + rand() % 400; } + if($picture == -1) { $picture = 'default'; } + $picture = "{$picture}.jpg"; + if($img < 3) { $picture = 'default.jpg'; } + $age = $startyear - $bornyear; + $specage = $age + 1; + $specage2 = $age + 1; + $killturn = ($deadyear - $startyear) * 12 + (rand() % 12); + $experience = $age * 100; + $dedication = $age * 100; + if($nation != 0 && $level == 0) $level = 1; + $pw = md5("18071807"); + + //장수 + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation,city,leader,power,intel, + experience,dedication,level,gold,rice,crew,crewtype,train,atmos, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit,bornyear,deadyear + ) values ( + '$gencount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','$nation', + '$city','$leader','$power','$intel','$experience','$dedication', + '$level','1000','1000','0','0','0','0', + '0','0','0','$turntime','$killturn','$age','1', + '$personal','$special','$specage','$special2','$specage2','$msg', + '0','$bornyear','$deadyear' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); + } elseif($year == $bornyear+14 && $year < $deadyear) { + $genid = "gen{$gencount}"; + + $query = "select no from general where npcid='$gencount'"; + $result = MYDB_query($query, $connect) or Error("func_npc ".MYDB_error($connect),""); + $count = MYDB_num_rows($result); + if($count == 0) { + $turntime = getRandTurn($turnterm); + if($personal != "-") { $personal = CharCall($personal); } + else { $personal = rand() % 10; } + if($fiction == 1) { $special = SpecCall("-"); } + else { $special = SpecCall($special); } + if($special >= 40) { $special2 = $special; $special = 0; } + else { $special2 = 0; } + if($picture == 0) { $picture = 1001 + rand() % 400; } + $picture = "{$picture}.jpg"; + if($img < 3) { $picture = 'default.jpg'; } + $age = $year - $bornyear; + $specage = $age + 1; + $specage2 = $age + 1; + $killturn = ($deadyear - $year) * 12 + (rand() % 12); + $experience = $age * 100; + $dedication = $age * 100; + $pw = md5("18071807"); + + //장수 + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation,city,leader,power,intel, + experience,dedication,level,gold,rice,crew,crewtype,train,atmos, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit,bornyear,deadyear + ) values ( + '$gencount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','0', + '$city','$leader','$power','$intel','$experience','$dedication', + '0','1000','1000','0','0','0','0', + '0','0','0','$turntime','$killturn','$age','1', + '$personal','$special','$specage','$special2','$specage2','$msg', + '0','$bornyear','$deadyear' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); + + $alllog[0] = "●1월:$name(이)가 성인이 되어 등장했습니다."; + pushAllLog($alllog); + } + } +} + +function SetDevelop($connect, $genType, $no, $city, $tech) { + $query = "select rate,pop/pop2*100 as po,comm/comm2*100 as co,def/def2*100 as de,wall/wall2*100 as wa,secu/secu2*100 as se,agri/agri2*100 as ag from city where city='$city'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + // 우선 선정 + if($city[rate] < 95) { + $command = EncodeCommand(0, 0, 0, 4); // 우선 선정 + + $query = "update general set turn0='$command' where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + return; + } + + $prob = rand() % 100; + $command = EncodeCommand(0, 0, 0, 9); //조달 + switch($genType) { + case 0: //무장 + case 2: //무내정장 + if($prob < 30) { + if($city[de] < 99) { $command = EncodeCommand(0, 0, 0, 5); } //수비 + elseif($city[po] < 99) { $command = EncodeCommand(0, 0, 0, 7); } //정장 + else { $command = EncodeCommand(0, 0, 0, 9); } //조달 + } elseif($prob < 60) { + if($city[wa] < 99) { $command = EncodeCommand(0, 0, 0, 6); } //성벽 + elseif($city[po] < 99) { $command = EncodeCommand(0, 0, 0, 7); } //정장 + else { $command = EncodeCommand(0, 0, 0, 9); } //조달 + } elseif($prob < 90) { + if($city[se] < 99) { $command = EncodeCommand(0, 0, 0, 8); } //치안 + elseif($city[po] < 99) { $command = EncodeCommand(0, 0, 0, 7); } //정장 + else { $command = EncodeCommand(0, 0, 0, 9); } //조달 + } else { + $command = EncodeCommand(0, 0, 0, 29); + } + break; + case 1: //지장 + case 3: //지내정장 + if($prob < 40) { + if($city[ag] < 99) { $command = EncodeCommand(0, 0, 0, 1); } //농업 + elseif($tech < 10000) { $command = EncodeCommand(0, 0, 0, 3); } //기술 + elseif($city[po] < 99) { $command = EncodeCommand(0, 0, 0, 7); } //정장 + else { $command = EncodeCommand(0, 0, 0, 9); } //조달 + } elseif($prob < 80) { + if($city[co] < 99) { $command = EncodeCommand(0, 0, 0, 2); } //상업 + elseif($tech < 10000) { $command = EncodeCommand(0, 0, 0, 3); } //기술 + elseif($city[po] < 99) { $command = EncodeCommand(0, 0, 0, 7); } //정장 + else { $command = EncodeCommand(0, 0, 0, 9); } //조달 + } elseif($prob < 90) { + if($tech < 10000) { $command = EncodeCommand(0, 0, 0, 3); } //기술 + elseif($city[po] < 99) { $command = EncodeCommand(0, 0, 0, 7); } //정장 + else { $command = EncodeCommand(0, 0, 0, 9); } //조달 + } else { + if($tech < 10000) { $command = EncodeCommand(0, 0, 0, 3 + (rand() % 2) * 6); } //기술, 조달 + else { $command = EncodeCommand(0, 0, 0, 29); } + } + break; + } + + // 장수수가 너무 많으면 탐색 확률 감소 + if($command == EncodeCommand(0, 0, 0, 29)) { + $query = "select no from general"; + $result = MYDB_query($query, $connect) or Error("processAI04 ".MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + + $ratio = round($genCount / 600 * 100); + + if(rand() % 100 < $ratio) { + $command = EncodeCommand(0, 0, 0, 9); + } + } + + $query = "update general set turn0='$command' where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + return; +} + +function SetCrew($connect, $no, $personal, $gold, $leader, $genType, $tech, $region, $city, $dex0, $dex10, $dex20, $dex30, $dex40) { + switch($genType) { + case 0: //무장 + case 2: //무내정장 + $dex0 = $dex0 + rand()%1000; + $dex10 = $dex10 + rand()%1000; + $dex20 = $dex20 + rand()%1000; + $sel = 0; + // 보궁기 선택 + if($dex0 > $dex10) { + if($dex0 > $dex20) { + $sel = 0; + } else { + $sel = 2; + } + } else { + if($dex10 > $dex20) { + $sel = 1; + } else { + $sel = 2; + } + } + + switch($sel) { + case 0: + $type = 0; //보병 + if($tech >= 3000 && $city == 3) { $type = 4; } //근위병 + elseif($tech >= 2000 && $city == 64) { $type = 3; } //자객병 + elseif($tech >= 1000 && $region == 2) { $type = 1; } //청주병 + elseif($tech >= 1000 && $region == 5) { $type = 5; } //등갑병 + elseif($tech >= 1000 && $region == 7) { $type = 2; } //수병 + break; + case 1: + $type = 10; //궁병 + if($tech >= 3000 && $city == 7) { $type = 14; } //석궁병 + elseif($tech >= 3000 && $city == 6) { $type = 13; } //강궁병 + elseif($tech >= 1000 && $region == 4) { $type = 12; } //연노병 + elseif($tech >= 1000 && $region == 8) { $type = 11; } //궁기병 + break; + case 2: + $type = 20; //기병 + if($tech >= 3000 && $city == 2) { $type = 27; } //호표기병 + elseif($tech >= 2000 && $city == 63) { $type = 24; } //철기병 + elseif($tech >= 2000 && $city == 67) { $type = 25; } //수렵기병 + elseif($tech >= 2000 && $city == 65) { $type = 23; } //돌격기병 + elseif($tech >= 2000 && $city == 66) { $type = 26; } //맹수병 + elseif($tech >= 1000 && $region == 1) { $type = 21; } //백마병 + elseif($tech >= 1000 && $region == 3) { $type = 22; } //중장기병 + break; + } + break; + case 1: //지장 + case 3: //지내정장 + $type = 30; //귀병 + if($tech >= 3000 && $city == 4) { $type = 34; } //악귀병 + elseif($tech >= 3000 && $city == 5) { $type = 37; } //천귀병 + elseif($tech >= 3000 && $city == 1) { $type = 38; } //마귀병 + elseif($tech >= 2000 && $city == 69) { $type = 33; } //흑귀병 + elseif($tech >= 2000 && $city == 68) { $type = 32; } //백귀병 + elseif($tech >= 1000 && $region == 6) { $type = 31; } //신귀병 + elseif($tech >= 3000 && $city == 3) { $type = 36; } //황귀병 + elseif($tech >= 1000 && rand()%100 < 50) { $type = 35; } //남귀병 + break; + } + + $gold -= 200; // 사기비용 + + $cost = getCost($connect, $type) * getTechCost($tech); + $cost = CharCost($cost, $personal); + + $crew = floor($gold / $cost); + if($leader < $crew) { $crew = $leader; } + $command = EncodeCommand(0, $type, $crew, 11); + + $query = "update general set turn0='$command' where no='$no'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + return; +} + +function processAI($connect, $no) { + global $_baserice; + + $query = "select startyear,year,month,turnterm,scenario,gold_rate,rice_rate from game where no='1'"; + $result = MYDB_query($query, $connect) or Error("processAI00 ".MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + // 초반 여부 + if($admin[startyear]+2 > $admin[year] || ($admin[startyear]+2 == $admin[year] && $admin[month] < 5)) { + $isStart = 1; + } else { + $isStart = 0; + } + + $query = "select no,turn0,npcid,name,nation,nations,city,level,npcmsg,personal,leader,intel,power,gold,rice,crew,train,atmos,npc,npcmatch,mode,injury,picture,imgsvr,killturn,makelimit,dex0,dex10,dex20,dex30,dex40 from general where no='$no'"; + $result = MYDB_query($query, $connect) or Error("processAI01 ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + // 입력된 턴이 있으면 그것 실행 + if($general[turn0] != "00000000000000") { + return; + } + + $query = "select city,region,nation,level,path,rate,gen1,gen2,gen3,pop,supply,front from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("processAI02 ".MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $query = "select nation,level,tech,gold,rice,rate,type,color,name,war from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error("processAI03 ".MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] >= 5) { + $query = "select l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error("processAI03 ".MYDB_error($connect),""); + $coreCommand = MYDB_fetch_array($result); + } + + $attackable = 0; + $query = "select city from city where nation='$general[nation]' and supply='1' and front=1"; + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $cityCount = MYDB_num_rows($result); + // 공격가능도시 있으면 1 + if($cityCount > 0) { $attackable = 1; } + + $dipState = 0; + $query = "select no from diplomacy where me='$general[nation]' and state=1 and term>8"; + $result = MYDB_query($query, $connect) or Error("processAI04 ".MYDB_error($connect),""); + $dipCount = MYDB_num_rows($result); + // 선포중이면 1상태 + if($dipCount > 0) { $dipState = 1; } + + $query = "select no from diplomacy where me='$general[nation]' and state=1 and term<=8"; + $result = MYDB_query($query, $connect) or Error("processAI04 ".MYDB_error($connect),""); + $dipCount = MYDB_num_rows($result); + // 전쟁준비 선포중이면 2상태 + if($dipCount > 0) { $dipState = 2; } + + $query = "select no from diplomacy where me='$general[nation]' and state=1 and term<=3"; + $result = MYDB_query($query, $connect) or Error("processAI04 ".MYDB_error($connect),""); + $dipCount = MYDB_num_rows($result); + // 교전 직전이면 3상태 + if($dipCount > 0) { $dipState = 3; } + + $query = "select no from diplomacy where me='$general[nation]' and state=0"; + $result = MYDB_query($query, $connect) or Error("processAI04 ".MYDB_error($connect),""); + $dipCount = MYDB_num_rows($result); + // 교전중이면 4상태 + if($dipCount > 0) { $dipState = 4; } + + //무장 + if($general[power] >= $general[intel]) { + $genType = 0; + if($general[intel] >= $general[power] * 0.8) { //무지장 + switch(rand() % 5) { + case 0: case 1: case 2: case 3: $genType = 0; break; + case 4: $genType = 1; break; + } + } + //지장 + } else { + $genType = 1; + if($general[power] >= $general[intel] * 0.8) { //지무장 + switch(rand() % 5) { + case 0: $genType = 0; break; + case 1: case 2: case 3: case 4: $genType = 1; break; + } + } + } + + //내정장 + if($general[leader] < 40) { + $genType += 2; + //$genType = 2; // 무내정장 + //$genType = 3; // 지내정장 + } + + $tech = getTechCost($nation[tech]); + + 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),""); + } + } + + //유기체메시지 출력 하루 6번 + //특별 메세지 있는 경우 출력 하루 4번 + switch($admin[turnterm]) { + case 0: $term = 1; break; + case 1: $term = 1; break; + case 2: $term = 2; break; + case 3: $term = 3; break; + case 4: $term = 6; break; + case 5: $term = 12; break; + case 6: $term = 30; break; + case 7: $term = 60; break; + } + if($general[npcid] == 2000 && rand()%(24*$term) < 6) { + PushMsg(1, 0, $general[picture], $general[imgsvr], "{$general[name]}:", $nation[color], $nation[name], $nation[color], $general[npcmsg]); + } elseif($general[npcmsg] != "" && rand()%(24*$term) < 3) { + PushMsg(1, 0, $general[picture], $general[imgsvr], "{$general[name]}:", $nation[color], $nation[name], $nation[color], $general[npcmsg]); + } + + //재야인경우 + if($general[npc] == 5 && $general[level] == 0) { + // 오랑캐는 바로 임관 + $query = "select nation from general where level=12 and npc=5 and nation not in (0{$general['nations']}0) order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI06 ".MYDB_error($connect),""); + $rulerCount = MYDB_num_rows($result); + if($rulerCount > 0) { + $ruler = MYDB_fetch_array($result); + $command = EncodeCommand(0, 0, $ruler[nation], 25); //임관 + } else { + $command = EncodeCommand(0, 0, 0, 42); //견문 + } + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI07 ".MYDB_error($connect),""); + return; + } elseif($general[npc] < 5 && $general[level] == 0) { + switch(rand()%5) { + //임관 40% + case 0: case 1: + if($admin[scenario] == 0 || $admin[scenario] >= 20) { + // 가상모드엔 랜덤임관, 초반엔 부상 적은 군주 우선 70% + if($admin[startyear]+3 > $admin[year] && rand()%100 < 70) { + $query = "select nation from general where level=12 and nation not in (0{$general['nations']}0) order by injury,rand() limit 0,1"; + } else { + $query = "select nation from general where level=12 and nation not in (0{$general['nations']}0) order by rand() limit 0,1"; + } + $result = MYDB_query($query, $connect) or Error("processAI06 ".MYDB_error($connect),""); + $rulerCount = MYDB_num_rows($result); + if($rulerCount > 0 && $general[npcmatch] != 999 && $general[makelimit] == 0) { + $ruler = MYDB_fetch_array($result); + $command = EncodeCommand(0, 0, $ruler[nation], 25); //임관 + } else { + $command = EncodeCommand(0, 0, 0, 42); //견문 + } + } else { + $query = "select nation from general where level=12 and npc=0"; + $result = MYDB_query($query, $connect) or Error("processAI06 ".MYDB_error($connect),""); + $nonCount = MYDB_num_rows($result); + $query = "select nation from general where level=12 and npc>0"; + $result = MYDB_query($query, $connect) or Error("processAI06 ".MYDB_error($connect),""); + $npcCount = MYDB_num_rows($result); + $ratio = round($npcCount / ($nonCount + $npcCount) * 100); + $ratio = round($ratio * 1.0); + //NPC우선임관 + $query = "select nation,ABS(IF(ABS(npcmatch-'$general[npcmatch]')>75,150-ABS(npcmatch-'$general[npcmatch]'),ABS(npcmatch-'$general[npcmatch]'))) as npcmatch2 from general where level=12 and npc>0 and nation not in (0{$general['nations']}0) order by npcmatch2,rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI06 ".MYDB_error($connect),""); + $rulerCount = MYDB_num_rows($result); + if($rulerCount > 0 && $general[npcmatch] != 999 && rand()%100 < $ratio && $general[makelimit] == 0) { // 엔국 비율대로 임관(50% : 50%) + $ruler = MYDB_fetch_array($result); + $command = EncodeCommand(0, 0, $ruler[nation], 25); //임관 + } elseif($general[npcmatch] != 999 && $general[makelimit] == 0) { // NPC국가 없으면 유저국 임관 + $query = "select nation from general where level=12 and npc=0 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI06 ".MYDB_error($connect),""); + $ruler = MYDB_fetch_array($result); + $command = EncodeCommand(0, 0, $ruler[nation], 25); //임관 + } else { + $command = EncodeCommand(0, 0, 0, 42); //견문 + } + } + break; + case 2: case 3: //거병이나 견문 40% + // 초반이면서 능력이 좋은놈 위주로 1%확률로 거병 (300명 재야시 2년간 약 10개 거병 예상) + $prop = rand() % 100; + $ratio = round(($general[leader] + $general[power] + $general[intel]) / 3); + if($admin[startyear]+2 > $admin[year] && $prop < $ratio && rand()%100 < 1 && $general[makelimit] == 0) { + //거병 + $command = EncodeCommand(0, 0, 0, 55); + } else { + //견문 + $command = EncodeCommand(0, 0, 0, 42); + } + break; + case 4: //이동 20% + $paths = explode("|", $city[path]); + $command = EncodeCommand(0, 0, $paths[rand()%count($paths)], 21); + break; + } + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI07 ".MYDB_error($connect),""); + return; + } + + $rulerCommand = 0; + //군주가 할일 + if($general[level] == 12) { + //오랑캐인데 공격 못하면 바로 방랑/해산 + if($general[npc] == 5 && $dipState == 0 && $attackable == 0) { + //방랑군이냐 아니냐 + if($nation[level] == 0) { + // 해산 + $command = EncodeCommand(0, 0, 0, 56); + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); + return; + } else { + // 방랑 + $command = EncodeCommand(0, 0, 0, 47); + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); + return; + } + } + //분기마다 + if($admin[month] == 1 || $admin[month] == 4 || $admin[month] == 7 || $admin[month] == 10) { + //관직임명 + Promotion($connect, $general[nation], $nation[level]); + } elseif($admin[month] == 12) { + //세율 + $nation[rate] = TaxRate($connect, $general[nation]); + //지급율 + GoldBillRate($connect, $nation[nation], $nation[rate], $admin[gold_rate], $nation[type], $nation[gold]); + } elseif($admin[month] == 6) { + //세율 + $nation[rate] = TaxRate($connect, $general[nation]); + //지급율 + RiceBillRate($connect, $nation[nation], $nation[rate], $admin[rice_rate], $nation[type], $nation[rice]); + } + + //방랑군이냐 아니냐 + if($nation[level] == 0) { + if($admin[startyear]+2 <= $admin[year]) { + // 해산 + $command = EncodeCommand(0, 0, 0, 56); + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); + return; + } elseif($city[nation] == 0 && ($city[level] == 5 || $city[level] == 6)) { + $type = rand()%9 + 1; + $colors = GetNationColors(); + $color = rand() % count($colors); + $command = EncodeCommand(0, $type, $color, 46); + $nationName = "㉿"._String::SubStr($general[name], 1); + //건국 + $query = "update general set turn0='$command',makenation='$nationName' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI08 ".MYDB_error($connect),""); + return; + } elseif(rand()%4 > 0) { + //이동 + $paths = explode("|", $city[path]); + $command = EncodeCommand(0, 0, $paths[rand()%count($paths)], 21); + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); + return; + } else { + //조달 + $command = EncodeCommand(0, 0, 0, 9); + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); + return; + } + } else { + //외교 평시에 선포 + if($dipState == 0 && $attackable == 0) { + //전방 체크 먼저 + SetNationFront($connect, $nation[nation]); + + $query = "select city from city where nation='$general[nation]' and front=1 limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI02 ".MYDB_error($connect),""); + $frontCount = MYDB_num_rows($result); + //근접 공백지 없을때 + if($frontCount == 0) { + $query = "select (sum(pop/10)+sum(agri)+sum(comm)+sum(secu)+sum(def)+sum(wall))/(sum(pop2/10)+sum(agri2)+sum(comm2)+sum(secu2)+sum(def2)+sum(wall2))*100 as dev from city where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $devRate = MYDB_fetch_array($result); + //내정이 80% 이상일때 + if($devRate[dev] > 80) { + $query = "select nation from nation where level>0 order by rand()"; + $result = MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); + $nationCount = MYDB_num_rows($result); + for($i=0; $i < $nationCount; $i++) { + $youNation = MYDB_fetch_array($result); + + if(isClose($connect, $general[nation], $youNation[nation])) { + $command = EncodeCommand(0, 0, $youNation[nation], 62); + $query = "update nation set l12turn0='$command' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); + $rulerCommand = 1; + break; + } + } + } + } + } + } + } + + // 입력된 턴이 있으면 + if($coreCommand["l{$general[level]}turn0"] != EncodeCommand(0, 0, 0, 99)) { + $rulerCommand = 1; + } + + //방랑군 아니고, 입력된 턴이 없을때 수뇌부가 할일 + if($nation[level] != 0 && $general[level] >= 5 && $rulerCommand == 0) { + $query = "select A.no,A.name,A.nation,B.nation from general A, city B where A.city=B.city and A.nation='$general[nation]' and B.nation!='$general[nation]' and A.no!='$general[no]' order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI11 ".MYDB_error($connect),""); + $curGen = MYDB_fetch_array($result); + + if($curGen[no] != 0) { // 타도시에 있는 경우 국내로 발령 + if($dipState >= 3) { + $query = "select city from city where nation='$general[nation]' and front=1 and supply=1 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $selCity = MYDB_fetch_array($result); + if($selCity[city] > 0) { + // 발령 + $command = EncodeCommand(0, $curGen[no], $selCity[city], 27); + } else { + // 발령 + $command = EncodeCommand(0, $curGen[no], $city[city], 27); + } + } else { + // 발령 + $command = EncodeCommand(0, $curGen[no], $city[city], 27); + } + $query = "update nation set l{$general[level]}turn0='$command' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); + } elseif($dipState <= 1) { // 평시엔 균등 발령만 + //발령, 최소장수 도시 선택, 최다장수도시의 장수 선택 + $query = "select B.city,count(*) as cnt,((B.agri+B.comm+B.secu+B.def+B.wall)/(B.agri2+B.comm2+B.secu2+B.def2+B.wall2)+(B.pop/B.pop2))/2*100 as dev from general A, city B where A.city=B.city and A.nation='$general[nation]' and B.nation='$general[nation]' and B.supply=1 group by A.city"; + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $cityCount = MYDB_num_rows($result); + //도시 2개 이상일때만 + if($cityCount > 1) { + $min = 500; $minCity = 0; + $max = 0; $maxCity = 0; + $devCity = 0; + for($i=0; $i < $cityCount; $i++) { + $curCity = MYDB_fetch_array($result); + if($curCity[cnt] >= $max) { $max = $curCity[cnt]; $maxCity = $curCity[city]; } + if($curCity[cnt] <= $min) { $min = $curCity[cnt]; $minCity = $curCity[city]; } + if($curCity[dev] < 70) { $devCity = $curCity[city]; } // 개발이 안된 곳 우선 + } + if($devCity != 0) { $minCity = $devCity; } + if($maxCity != $minCity) { + $query = "select no from general where city='$maxCity' and nation='$general[nation]' and no!='$general[no]' and npc>=2 limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI11 ".MYDB_error($connect),""); + $curGen = MYDB_fetch_array($result); + + if($curGen[no] != 0) { + // 발령 + $command = EncodeCommand(0, $curGen[no], $minCity, 27); + $query = "update nation set l{$general[level]}turn0='$command' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); + } + //계속 진행 + } + } + } else { + // 병사있고 쌀있고 후방에 있는 장수 + $query = "select A.no from general A, city B where A.city=B.city and A.nation='$general[nation]' and B.nation='$general[nation]' and B.front=0 and A.crew>700 and A.rice>700*{$tech} order by A.npc,A.crew desc limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $selGen = MYDB_fetch_array($result); + // 전방 도시, 30% 확률로 태수 있는 전방으로 발령 + if(rand()%100 < 30) { + $query = "select city from city where nation='$general[nation]' and front=1 and supply=1 order by gen1 desc,rand() limit 0,1"; + } else { + $query = "select city from city where nation='$general[nation]' and front=1 and supply=1 order by rand() limit 0,1"; + } + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $selCity = MYDB_fetch_array($result); + if($selGen[no] > 0 && $selCity[city] > 0 && rand() % 100 < 80) { // 80% 확률 + // 발령 + $command = EncodeCommand(0, $selGen[no], $selCity[city], 27); + } else { + //병사 없고 인구없는 전방에 있는 장수 + $query = "select A.no from general A, city B where A.city=B.city and A.nation='$general[nation]' and B.nation='$general[nation]' and B.pop<40000 and B.front=1 and A.crew<700 order by A.npc,A.crew limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $selGen = MYDB_fetch_array($result); + // 인구많은도시 + $query = "select city from city where nation='$general[nation]' and supply=1 order by pop desc limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $selCity = MYDB_fetch_array($result); + if($selGen[no] > 0 && $selCity[city] > 0 && rand() % 100 < 80) { // 80% 확률 + // 발령 + $command = EncodeCommand(0, $selGen[no], $selCity[city], 27); + } else { + // 발령할 장수 없으면 몰포 + if(rand() % 2 == 0) { $type = "gold"; $type2 = 1; } + else { $type = "rice"; $type2 = 2; } + + if($nation[$type] < 1000) { // 몰수 + // 몰수 대상 + $query = "select no,{$type} from general where nation='$general[nation]' and no!='$general[no]' and {$type}>3000 order by {$type} desc limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $SelGen = MYDB_fetch_array($result); + if($SelGen[no] != 0) { + $amount = floor($SelGen[$type] / 5000)*10 + 10; + if($amount > 100) $amount = 100; + // 몰수 + $command = EncodeCommand($type2, $SelGen[no], $amount, 24); // 금,쌀 1000단위 몰수 + } + } else { // 포상 + // 포상 대상 + $query = "select no from general where nation='$general[nation]' and no!='$general[no]' and killturn>=5 order by {$type} limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $SelGen = MYDB_fetch_array($result); + if($SelGen[no] != 0) { + $amount = floor(($nation[$type]-$_baserice) / 5000)*10 + 10; + if($amount > 100) $amount = 100; + // 포상 + $command = EncodeCommand($type2, $SelGen[no], $amount, 23); // 금 1000단위 포상 + } + } + } + } + $query = "update nation set l{$general[level]}turn0='$command' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); + } + } + + $command = EncodeCommand(0, 0, 0, 1); + //일반 할일 + if($general[killturn] < 5) { + if($general[gold] + $general[rice] == 0) { + $command = EncodeCommand(0, 0, 0, 9); //조달 + } elseif($general[gold] > $general[rice]) { + $command = EncodeCommand(0, 1, 100, 44); //헌납 + } else { + $command = EncodeCommand(0, 2, 100, 44); //헌납 + } + } elseif($general[injury] > 10) { + // 부상 2달 이상이면 요양 + $command = EncodeCommand(0, 0, 0, 50); //요양 + } elseif($nation[level] == 0) { + //방랑군일때 + if($admin[startyear]+3 <= $admin[year]) { + $command = EncodeCommand(0, 0, 0, 45); //하야 + } else { + switch(rand()%5) { + case 0: + $command = EncodeCommand(0, 0, 0, 42); break; //견문 20% + case 1: case 2: case 3: case 4: + $command = EncodeCommand(0, 0, 0, 9); break; //조달 80% + } + } + } else { + //국가일때 + //아국땅 아니면 귀환 + if($general[nation] != $city[nation] || $city[supply] == 0) { + $command = EncodeCommand(0, 0, 0, 28); //귀환 + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI23 ".MYDB_error($connect),""); + return; + } + //국가 병량이 없을때 바로 헌납 + if($nation[rice] < 2000 && $general[rice] > 200) { + $amount = floor(($general[rice] - 200)/100) + 1; + if($amount > 20) { $amount = 20; } + $command = EncodeCommand(0, 2, $amount, 44); //헌납 + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI23 ".MYDB_error($connect),""); + return; + } + +// R +// ┃ ┃ 공격/내정 +// 700┃쌀┣━━━━┓ +// ┃팜┃ ┃ +// 100┣━┫ 내정 ┣━━━ +// ┃조┃ ┃쌀삼 +// 0┗━┻━━━━┻━━━> G +// 100 700 + $resrc = $tech * 700; + // 평시거나 초반아니면서 공격가능 없으면서 병사 있으면 해제(25%) + if($dipState == 0 && $isStart == 0 && $attackable == 0 && $general[crew] > 0 && rand()% 100 < 25) { + $command = EncodeCommand(0, 0, 0, 17); //소집해제 + } elseif($dipState <= 1 || $isStart == 1) { + //평시이거나 선포있어도 초반이면 + if($general[gold] + $general[rice] < 200) { $command = EncodeCommand(0, 0, 0, 9); } //금쌀없으면 조달9 + elseif($general[rice] > 100 && $city[rate] < 95) { $command = EncodeCommand(0, 0, 0, 4); } //우선 선정 + elseif($general[gold] < 100) { //금없으면 쌀팜 + $amount = floor(($general[rice] - $general[gold]) / 100 / 2); // 100단위 + $command = EncodeCommand(0, 1, $amount, 49); //팜 + } elseif($general[gold] < 700 && $general[rice] < 700) { $command = EncodeCommand(0, 0, 0, 1); } //금쌀되면 내정 + elseif($general[rice] < 100) { //쌀없으면 쌀삼 + $amount = floor(($general[gold] - $general[rice]) / 100 / 2); // 100단위 + $command = EncodeCommand(0, 2, $amount, 49); //삼 + } elseif($genType >= 2) { $command = EncodeCommand(0, 0, 0, 1); } //내정장일때 내정 + else { + //현도시가 전방이면 공격 가능성 체크 + if($city[front] > 0) { + //주변도시 체크 + $paths = explode("|", $city[path]); + for($i=0; $i < count($paths); $i++) { + $query = "select city,nation from city where city='$paths[$i]'"; + $result = MYDB_query($query, $connect) or Error("processAI20 ".MYDB_error($connect),""); + $targetCity = MYDB_fetch_array($result); + //공백지이면 타겟에 포함 + if($targetCity[nation] == 0) { $target[count($target)] = $targetCity[city]; } + } + if(count($target) == 0 || $isStart == 1 || $nation[war] == 1) { $command = EncodeCommand(0, 0, 0, 1); } //공격 가능도시가 없으면 내정 + else { $command = EncodeCommand(0, 0, $target[rand()%count($target)], 16); } //있으면 공격 + } else { + //전방 아니면 내정 + $command = EncodeCommand(0, 0, 0, 1); + } + + if($command == EncodeCommand(0, 0, 0, 1)) { // 공격아닌 경우 + $query = "select city,(pop/10+agri+comm+secu+def+wall)/(pop2/10+agri2+comm2+secu2+def2+wall2)*100 as dev from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("processAI19 ".MYDB_error($connect),""); + $selCity = MYDB_fetch_array($result); + + $sel = rand() % 10; + if($selCity[dev] > 95) { $sel = 9; } + elseif($selCity[dev] < 70) { $sel = 0; } + switch($sel) { + case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: // 그대로 내정 80 % + $command = EncodeCommand(0, 0, 0, 1); + break; + case 8: case 9: // 저개발 도시로 워프 20% + //도시 선택, 30% 확률로 군사 있는 곳으로 워프 + if(rand()%100 < 30) { + $query = "select city,(pop/10+agri+comm+secu+def+wall)/(pop2/10+agri2+comm2+secu2+def2+wall2)*100 as dev from city where nation='$general[nation]' and supply='1' order by gen2 desc,dev limit 0,1"; + } else { + $query = "select city,(pop/10+agri+comm+secu+def+wall)/(pop2/10+agri2+comm2+secu2+def2+wall2)*100 as dev from city where nation='$general[nation]' and supply='1' order by dev limit 0,1"; + } + $result = MYDB_query($query, $connect) or Error("processAI16 ".MYDB_error($connect),""); + $selCity = MYDB_fetch_array($result); + //이미 그 도시이거나, 그 도시도 고개발이면 내정 + if($selCity[city] == $general[city] || $selCity[dev] > 95) { + $command = EncodeCommand(0, 0, 0, 1); + } else { + //워프 + $query = "update general set city='$selCity[city]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI18 ".MYDB_error($connect),""); + + $command = EncodeCommand(0, 0, 0, 50); //요양 + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI23 ".MYDB_error($connect),""); + return; + } + break; + } + +// ┃ ┃ +// ┃ 쌀팜 ┃ 공격 +// ┃ ┃ +// 700t┣━━━━╋━━━━━━━━━ +// ┃내조 ↗┃ +// ┃ ↗ ┃ +// ┣━┓내조┃ 쌀삼 +// ┃**┃ ┃ +// 0 ┗━┻━━━━━━━> G +// 700t + + } else { // 공격인 경우 + if($general[crew] < 700 && $general[gold] >= $resrc && $general[rice] >= $resrc) { //자원되고, 병사없을때 + if($city[pop] > 40000) { $command = EncodeCommand(0, 0, 0, 11); } + else { $command = EncodeCommand(0, 0, 0, 1); } + } elseif($general[rice] < $resrc && $general[rice] <= $general[gold]) { + //금이 더 많으면 매매 + $amount = floor(($general[gold] - $general[rice]) / 100 / 2); // 100단위 + if($amount > 0) { $command = EncodeCommand(0, 2, $amount, 49); }//삼 + else { $command = EncodeCommand(0, 0, 0, (rand()%2)*8 + 1); } // 내정, 조달 + } elseif($general[gold] < $resrc && $general[rice] > $general[gold]) { + //쌀이 더 많으면 매매 + $amount = floor(($general[rice] - $general[gold]) / 100 / 2); // 100단위 + if($amount > 0) { $command = EncodeCommand(0, 1, $amount, 49); }//팜 + else { $command = EncodeCommand(0, 0, 0, (rand()%2)*8 + 1); } // 내정, 조달 + //자원, 병사 모두 충족 + } elseif($general[crew] >= 700 && $general[train] < 90) { + $command = EncodeCommand(0, 0, 0, 13); //훈련 + } elseif($general[crew] >= 700 && $general[atmos] < 90) { + $command = EncodeCommand(0, 0, 0, 14); //사기진작 + } else { + //공격 + //$command = $target[rand()%count($target)] * 100 + 16; //있으면 공격 + } + } + } + } else { +// R +// ┃ ┃ +// ┃쌀┃ +// ┃팜┃ 공격 +// 700t┣━╋━━━━━ +// ┃조┃ 쌀삼 +// 0┗━┻━━━━━> G +// 700t + + //전시일때 + if($general[gold] + $general[rice] < $resrc*2) { $command = EncodeCommand(0, 0, 0, 9); } //금쌀없으면 조달 + elseif($general[rice] > $resrc && $city[rate] < 95 && $city[front] == 0) { $command = EncodeCommand(0, 0, 0, 4); } // 우선 선정 + elseif($general[rice] > $resrc && $city[rate] < 50 && $city[front] == 1) { $command = EncodeCommand(0, 0, 0, 4); } // 우선 선정 + elseif($general[gold] < $resrc) { // 금없으면 쌀팜 + $amount = floor(($general[rice] - $general[gold]) / 100 / 2); // 100단위 + if($amount > 0) { $command = EncodeCommand(0, 1, $amount, 49); }// 팜 + else { $command = EncodeCommand(0, 0, 0, 9); } // 조달 + } elseif($general[rice] < $resrc) { // 쌀없으면 쌀삼 + $amount = floor(($general[gold] - $general[rice]) / 100 / 2); // 100단위 + if($amount > 0) { $command = EncodeCommand(0, 2, $amount, 49); }// 팜 + else { $command = EncodeCommand(0, 0, 0, 9); } // 조달 + } elseif($genType >= 2) { $command = EncodeCommand(0, 0, 0, 1); } //내정장일때 내정 + elseif($general[crew] < 700 && $general[gold] >= $resrc && $general[rice] >= $resrc) { + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error("processAI16 ".MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + + $query = "select no from general where nation='$general[nation]' and city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("processAI16 ".MYDB_error($connect),""); + $genCount2 = MYDB_num_rows($result); + + $query = "select sum(pop) as sum from city where nation='$general[nation]' and supply='1'"; + $result = MYDB_query($query, $connect) or Error("processAI16 ".MYDB_error($connect),""); + $sumCity = MYDB_fetch_array($result); + // 현도시 인구 비율 + $ratio = round($city[pop] / $sumCity[sum] * 100); + // 현도시 장수 비율 + $ratio2 = round($genCount2 / $genCount * 100); + $ratio3 = rand() % 100; + // 전체 인구 대비 확률로 현지에서 징병 + if($city[pop] > 40000 && 100 + $ratio - $ratio2 > $ratio3) { + $command = EncodeCommand(0, 0, 0, 11); //인구 되면 징병 + } else { + // 인구 안되면 4만 이상인 도시로 워프 + $query = "select city from city where nation='$general[nation]' and pop>40000 and supply='1' order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI16 ".MYDB_error($connect),""); + $cityCount = MYDB_num_rows($result); + if($cityCount > 0) { + $selCity = MYDB_fetch_array($result); + //워프 + $query = "update general set city='$selCity[city]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI18 ".MYDB_error($connect),""); + + $command = EncodeCommand(0, 0, 0, 50); //요양 + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI23 ".MYDB_error($connect),""); + return; + } else { + $command = EncodeCommand(0, 0, 0, 7); //인구 안되면 정장 + } + } + } elseif($general[crew] >= 700 && $general[train] < 90) { + 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] >= 700 && $general[atmos] < 90) { + 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); // 준비는 됐으나 아직 선포중이면 내정, 조달 + } else { + //공격 & 내정 + $paths = explode("|", $city[path]); + for($i=0; $i < count($paths); $i++) { + $query = "select city,nation from city where city='$paths[$i]'"; + $result = MYDB_query($query, $connect) or Error("processAI21 ".MYDB_error($connect),""); + $targetCity = MYDB_fetch_array($result); + //소유국이 있는 경우 + if($targetCity[nation] != 0 && $targetCity[nation] != $general[nation]) { + $query = "select state from diplomacy where me='$general[nation]' and you='$targetCity[nation]'"; + $dipResult = MYDB_query($query, $connect) or Error("processAI22 ".MYDB_error($connect),""); + $dip = MYDB_fetch_array($dipResult); + //전쟁중인 국가이면 타겟에 포함 + if($dip[state] == 0) $target[count($target)] = $targetCity[city]; + } + } + if(count($target) == 0) { + //전방 도시 선택, 30% 확률로 태수 있는 전방으로 워프 + if(rand()%100 < 30) { + $query = "select city from city where nation='$general[nation]' and supply='1' and front=1 order by gen1 desc,rand() limit 0,1"; + } else { + $query = "select city from city where nation='$general[nation]' and supply='1' and front=1 order by rand() limit 0,1"; + } + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $cityCount = MYDB_num_rows($result); + if($cityCount == 0) { + //도시 수, 랜덤(상위 20%) 선택, 저개발 도시 선택 + $query = "select city from city where nation='$general[nation]' and supply='1'"; + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $cityCount = MYDB_num_rows($result); + $citySelect = rand() % (round($cityCount/5) + 1); + + $query = "select city,(def+wall)/(def2+wall2) as dev from city where nation='$general[nation]' and supply='1' order by dev limit {$citySelect},1"; + $result = MYDB_query($query, $connect) or Error("processAI10 ".MYDB_error($connect),""); + $selCity = MYDB_fetch_array($result); + } else { + $selCity = MYDB_fetch_array($result); + } + + if($general[city] != $selCity[city]) { + //워프 + $query = "update general set city='$selCity[city]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI18 ".MYDB_error($connect),""); + + $command = EncodeCommand(0, 0, 0, 50); //요양 + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI23 ".MYDB_error($connect),""); + return; + } else { + $command = EncodeCommand(0, 0, 0, (rand()%2)*8 + 1); //공격 가능도시가 없고 워프도 안되면 내정, 조달 + } + } elseif($nation[war] == 1) { + //전금이면 내정, 조달 + $command = EncodeCommand(0, 0, 0, (rand()%2)*8 + 1); //내정, 조달 + } else { $command = EncodeCommand(0, 0, $target[rand()%count($target)], 16); } //있으면 공격 + } + } + } + + switch($command) { + case "00000000000001": //내정 + SetDevelop($connect, $genType, $general[no], $general[city], $nation[tech]); + return; + case "00000000000011": //징병 + $query = "select region from city where nation='$general[nation]' order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI16 ".MYDB_error($connect),""); + $selRegion = MYDB_fetch_array($result); + + $selCity[city] = 0; + // 90% 확률로 이민족 또는 특성병 + if(rand()%100 < 90) { + $query = "select city from city where nation='$general[nation]' and (level='4' or level='8') order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("processAI16 ".MYDB_error($connect),""); + $selCity = MYDB_fetch_array($result); + } + // 특병 없으면 원래대로 + if($selCity[city] == 0) { + $selCity[city] = $general[city]; + } + SetCrew($connect, $general[no], $general[personal], $general[gold], $general[leader], $genType, $nation[tech], $selRegion[region], $selCity[city], $general[dex0], $general[dex10], $general[dex20], $general[dex30], $general[dex40]); + return; + default: + $query = "update general set turn0='$command' where no='$general[no]'"; + MYDB_query($query, $connect) or Error("processAI23 ".MYDB_error($connect),""); + return; + } +} +//종전하기, 지급율 +//$command = $fourth * 100000000 + $type * 100000 + $crew * 100 + 11; + +function RegNation($connect, + $name, $color, $gold, $rice, $scoutmsg, $tech, $gencount, $type, $level) { + $type = NationCharCall($type); + $totaltech = $tech * $gencount; + + @MYDB_query(" + insert into nation ( + name,color,gold,rice,bill,rate,scout,war,tricklimit,surlimit, + scoutmsg,tech,totaltech,type,level,gennum + ) values ( + '$name','$color','$gold','$rice','100','15','0','0','24','72', + '$scoutmsg','$tech','$totaltech','$type','$level','$gencount' + )", $connect + ) or Error(__LINE__.MYDB_error($connect),""); +} + +function RegCity($connect, $nation, $name, $cap=0) { + $city = CityCall($name); + @MYDB_query("update city set nation='$nation' where city='$city'",$connect) or Error(__LINE__.MYDB_error($connect),""); + if($cap > 0) { + @MYDB_query("update nation set capital='$city' where nation='$nation'",$connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function Promotion($connect, $nation, $level) { + $lv = getNationChiefLevel($level); + + $query = "select scenario,killturn from game where no='1'"; + $result = MYDB_query($query, $connect) or Error("processAI00 ".MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + //우선 수뇌 해제 (승상 뺴고) + $query = "update general set level=1 where level<11 and level>4 and nation='$nation'"; + MYDB_query($query, $connect) or Error("Promotion_02 ".MYDB_error($connect),""); + + //유저 후보 선택 + $query = "select no from general where nation='$nation' and npc<2 and level=1 and belong>=3 and killturn>='$admin[killturn]' order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("Promotion_00 ".MYDB_error($connect),""); + $userCandidate = MYDB_fetch_array($result); + // 유저수뇌 안함 + //$userCandidate[no] = 0; + + //NPC 후보 선택 + $query = "select no from general where nation='$nation' and npc>=2 and level=1 order by intel desc limit 0,1"; + $result = MYDB_query($query, $connect) or Error("Promotion_00 ".MYDB_error($connect),""); + $npcCandidate = MYDB_fetch_array($result); + + //현재 참모 + $query = "select no,intel,npc,killturn from general where nation='$nation' and level=11"; + $result = MYDB_query($query, $connect) or Error("Promotion_00 ".MYDB_error($connect),""); + $level11 = MYDB_fetch_array($result); + + //공석이거나 삭턴 유저 참모인 경우 + if($level11[no] == 0 || ($level11[npc] < 2 && $level11[killturn] < $admin[killturn])) { + if($userCandidate[no] > 0) { + //기존 참모 해임 + $query = "update general set level=1 where nation='$nation' and level=11"; + MYDB_query($query, $connect) or Error("Promotion_02 ".MYDB_error($connect),""); + //유저 후보 있으면 임명 + $query = "update general set level=11 where no='$userCandidate[no]'"; + MYDB_query($query, $connect) or Error("Promotion_02 ".MYDB_error($connect),""); + } elseif($npcCandidate[no] > 0) { + //기존 참모 해임 + $query = "update general set level=1 where nation='$nation' and level=11"; + MYDB_query($query, $connect) or Error("Promotion_02 ".MYDB_error($connect),""); + //NPC 후보 있으면 임명 + $query = "update general set level=11 where no='$npcCandidate[no]'"; + MYDB_query($query, $connect) or Error("Promotion_02 ".MYDB_error($connect),""); + } + } elseif($level11[npc] >= 2 && $userCandidate[no] > 0) { + //NPC 참모인데 삭턴 아닌 유저장이 있는 경우 + //기존 참모 해임 + $query = "update general set level=1 where nation='$nation' and level=11"; + MYDB_query($query, $connect) or Error("Promotion_02 ".MYDB_error($connect),""); + //유저 후보 있으면 임명 + $query = "update general set level=11 where no='$userCandidate[no]'"; + MYDB_query($query, $connect) or Error("Promotion_02 ".MYDB_error($connect),""); + } + + for($i=10; $i >= $lv; $i-=2) { + $i1 = $i; $i2 = $i - 1; + //무관임명 + $query = "select no from general where nation='$nation' and level=1 order by power desc limit 0,1"; + $result = MYDB_query($query, $connect) or Error("Promotion_00 ".MYDB_error($connect),""); + $level = MYDB_fetch_array($result); + $query = "update general set level={$i1} where no='$level[no]'"; + MYDB_query($query, $connect) or Error("Promotion_02 ".MYDB_error($connect),""); + //문관임명 + $query = "select no from general where nation='$nation' and level=1 order by intel desc limit 0,1"; + $result = MYDB_query($query, $connect) or Error("Promotion_00 ".MYDB_error($connect),""); + $level = MYDB_fetch_array($result); + $query = "update general set level={$i2} where no='$level[no]'"; + MYDB_query($query, $connect) or Error("Promotion_02 ".MYDB_error($connect),""); + } +} + +function TaxRate($connect, $nation) { + //도시 + $query = "select city from city where nation='$nation'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityCount = MYDB_num_rows($result); + + if($cityCount == 0) { + $query = "update nation set war=0,rate=15 where nation='$nation'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + return 15; + } else { + $query = "select sum(pop)/sum(pop2)*100 as rate,(sum(agri)+sum(comm)+sum(secu)+sum(def)+sum(wall))/(sum(agri2)+sum(comm2)+sum(secu2)+sum(def2)+sum(wall2))*100 as dev from city where nation='$nation'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $devRate = MYDB_fetch_array($result); + + $avg = ($devRate[rate] + $devRate[dev]) / 2; + + if($avg > 95) $rate = 25; + elseif($avg > 70) $rate = 20; + elseif($avg > 50) $rate = 15; + else $rate = 10; + + $query = "update nation set war=0,rate='$rate' where nation='$nation'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + return $rate; + } +} + +function GoldBillRate($connect, $nation, $rate, $gold_rate, $type, $gold) { + $incomeList = getGoldIncome($connect, $nation, $rate, $gold_rate, $type); + $income = $gold + $incomeList[0] + $incomeList[1]; + $outcome = getGoldOutcome($connect, $nation, 100); // 100%의 지급량 + $bill = floor($income / $outcome * 90); // 수입의 90% 만 지급 + + if($bill < 20) { $bill = 20; } + if($bill > 200) { $bill = 200; } + + $query = "update nation set bill='$bill' where nation='$nation'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function RiceBillRate($connect, $nation, $rate, $rice_rate, $type, $rice) { + $incomeList = getRiceIncome($connect, $nation, $rate, $rice_rate, $type); + $income = $rice + $incomeList[0] + $incomeList[1]; + $outcome = getRiceOutcome($connect, $nation, 100); // 100%의 지급량 + $bill = floor($income / $outcome * 90); // 수입의 90% 만 지급 + + if($bill < 20) { $bill = 20; } + if($bill > 200) { $bill = 200; } + + $query = "update nation set bill='$bill' where nation='$nation'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +?> diff --git a/twe_close/func_process.php b/twe_close/func_process.php new file mode 100644 index 00000000..7c25f4ff --- /dev/null +++ b/twe_close/func_process.php @@ -0,0 +1,6148 @@ + 1) $ratio = 1; + + $r[fail] = (0.2 / $ratio - 0.1) * 100; + $r[succ] = ($ratio - 0.5) * 100; + + if($r[fail] < 0) { $r[fail] = 0; } + $r[succ] += $r[fail]; + if($r[succ] > 100) { $r[succ] = 100; } + + return $r; +} + +function CriticalScore($score, $type) { + switch($type) { + case 0: + $ratio = (rand()%9 + 20)/10; // 2.0~2.8 + break; + case 1: + $ratio = (rand()%3 + 2)/10; // 0.2~0.4 + break; + } + return round($score * $ratio); +} + +function process_1($connect, &$general, $type) { + global $_develrate; + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + if($type == 1) { $dtype = "농지 개간"; $atype = "을"; $btype = "은"; $stype = "agri"; } + elseif($type == 2) { $dtype = "상업 투자"; $atype = "를"; $btype = "는"; $stype = "comm"; } + + $query = "select * from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $dtype 실패. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3 && $nation[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:초반제한중 방랑군은 불가능합니다. $dtype 실패. <1>$date"; + } elseif($city[nation] != $general[nation] && $nation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $dtype 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $dtype 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $dtype 실패. <1>$date"; + } elseif($city["$stype"] >= $city["$stype"."2"]) { + $log[count($log)] = "●{$admin[month]}월:{$dtype}{$btype} 충분합니다. $dtype 실패. <1>$date"; + } else { + // 민심 50 이하이면 50과 같게 + if($city[rate] < $_develrate) { $city[rate] = $_develrate; } + $rate = $city[rate] / 100; + + $score = ($general[intel] * (100 - $general[injury])/100 + getBookEff($general[book])) * $rate; + $score = $score * (100 + $general[explevel]/5)/100; + $score = $score * (80 + rand() % 41)/100; // 80 ~ 120% + + // 국가보정 + if($nation[type] == 2 || $nation[type] == 12) { $score *= 1.1; $admin[develcost] *= 0.8; } + if($nation[type] == 8 || $nation[type] == 11) { $score *= 0.9; $admin[develcost] *= 1.2; } + + // 군주, 참모, 모사 보정 + if($general[level] == 12 || $general[level] == 11 || $general[level] == 9 || $general[level] == 7 || $general[level] == 5) { $score *= 1.05; } + // 군사 보정 + if($general[level] == 3 && $general[no] == $city[gen2]) { $score *= 1.05; } + + $rd = rand() % 100; + $r = CriticalRatio($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book]), 2); + + // 특기보정 : 경작, 상재 + if($type == 1 && $general[special] == 1) { $r[succ] += 10; $score *= 1.1; $admin[develcost] *= 0.8; } + if($type == 2 && $general[special] == 2) { $r[succ] += 10; $score *= 1.1; $admin[develcost] *= 0.8; } + + //버그방지 + if($score < 1) $score = 1; + + if($r[fail] > $rd) { + $score = CriticalScore($score, 1); + $log[count($log)] = "●{$admin[month]}월:{$dtype}{$atype} 실패하여 $score 상승했습니다. <1>$date"; + } elseif($city[rate] >= 80 && $r[succ] > $rd) { + $score = CriticalScore($score, 0); + $log[count($log)] = "●{$admin[month]}월:{$dtype}{$atype} 성공하여 $score 상승했습니다. <1>$date"; + } else { + $score = round($score); + $log[count($log)] = "●{$admin[month]}월:{$dtype}{$atype} 하여 $score 상승했습니다. <1>$date"; + } + + $exp = $score * 0.7; + $ded = $score * 1.0; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $score += $city["$stype"]; + if($score > $city["{$stype}2"]) { $score = $city["{$stype}2"]; } + // 내정 상승 + $query = "update city set {$stype}='$score' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 자금 하락, 경험치 상승 + $general[gold] -= $admin[develcost]; + $general[intel2]++; + $query = "update general set resturn='SUCCESS',gold='$general[gold]',intel2='$general[intel2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_3($connect, &$general) { + global $_develrate; + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $dtype = "기술 연구"; + + $query = "select * from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $query = "select level,type,tech from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $dtype 실패. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3 && $nation[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:초반제한중 방랑군은 불가능합니다. $dtype 실패. <1>$date"; + } elseif($city[nation] != $general[nation] && $nation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $dtype 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $dtype 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $dtype 실패. <1>$date"; + } else { + $score = ($general[intel] * (100 - $general[injury])/100 + getBookEff($general[book])); + $score = $score * (100 + $general[explevel]/5)/100; + $score = $score * (80 + rand() % 41)/100; // 80 ~ 120% + + // 국가보정 + if($nation[type] == 3 || $nation[type] == 13) { $score *= 1.1; $admin[develcost] *= 0.8; } + if($nation[type] == 5 || $nation[type] == 6 || $nation[type] == 7 || $nation[type] == 8 || $nation[type] == 12) { $score *= 0.9; $admin[develcost] *= 1.2; } + + // 군주, 참모, 모사 보정 + if($general[level] == 12 || $general[level] == 11 || $general[level] == 9 || $general[level] == 7 || $general[level] == 5) { $score *= 1.05; } + + $rd = rand() % 100; + $r = CriticalRatio($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book]), 0); + // 특기보정 : 발명 + if($general[special] == 3) { $score *= 1.1; $admin[develcost] *= 0.8; $r[succ] += 10; } + + //버그방지 + if($score < 1) $score = 1; + + if($r[fail] > $rd) { + $score = CriticalScore($score, 1); + $log[count($log)] = "●{$admin[month]}월:{$dtype}를 실패하여 $score 상승했습니다. <1>$date"; + } elseif($city[rate] >= 80 && $r[succ] > $rd) { + $score = CriticalScore($score, 0); + $log[count($log)] = "●{$admin[month]}월:{$dtype}를 성공하여 $score 상승했습니다. <1>$date"; + } else { + $score = round($score); + $log[count($log)] = "●{$admin[month]}월:{$dtype}를 하여 $score 상승했습니다. <1>$date"; + } + + $exp = $score * 0.7; + $ded = $score * 1.0; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 부드러운 기술 제한 + if(TechLimit($admin[startyear], $admin[year], $nation[tech])) { $score = floor($score/4); } + + //장수수 구함 + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + if($gencount < 10) $gencount = 10; + // 내정 상승 + $query = "update nation set totaltech=totaltech+'$score',tech=totaltech/'$gencount' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 자금 하락, 경험치 상승 // 공헌도, 명성 상승 = $score * 10 + $general[gold] -= $admin[develcost]; + + $general[intel2]++; + $query = "update general set resturn='SUCCESS',gold='$general[gold]',intel2='$general[intel2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_4($connect, &$general) { + global $_develrate; + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select * from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 주민 선정 실패. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3 && $nation[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:초반제한중 방랑군은 불가능합니다. 주민 선정 실패. <1>$date"; + } elseif($city[nation] != $general[nation] && $nation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 주민 선정 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 주민 선정 실패. <1>$date"; + } elseif($general[rice] < $admin[develcost]*2) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. 주민 선정 실패. <1>$date"; + } elseif($city[rate] >= 100) { + $log[count($log)] = "●{$admin[month]}월:민심은 충분합니다. 주민 선정 실패. <1>$date"; + } else { + $score = ($general[leader] * (100 - $general[injury])/100 + getHorseEff($general[horse]) + $lbonus) / 10; + $score = $score * (100 + $general[explevel]/5)/100; + $score = $score * (80 + rand() % 41)/100; // 80 ~ 120% + + // 국가보정 + if($nation[type] == 2 || $nation[type] == 4 || $nation[type] == 7 || $nation[type] == 10) { $score *= 1.1; $admin[develcost] *= 0.8; } + if($nation[type] == 1 || $nation[type] == 3 || $nation[type] == 9) { $score *= 0.9; $admin[develcost] *= 1.2; } + + // 군주, 참모 보정 + if($general[level] == 12 || $general[level] == 11) { $score *= 1.05; } + // 시중 보정 + if($general[level] == 2 && $general[no] == $city[gen3]) { $score *= 1.05; } + + $rd = rand() % 100; + $r = CriticalRatio($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book]), 0); + // 특기보정 : 인덕 + if($general[special] == 20) { $r[succ] += 10; $admin[develcost] *= 0.8; $score *= 1.1; } + + //버그방지 + if($score < 1) $score = 1; + + if($r[fail] > $rd) { + $score = CriticalScore($score, 1); + $log[count($log)] = "●{$admin[month]}월:선정을 실패하여 민심이 $score 상승했습니다. <1>$date"; + } elseif($r[succ] > $rd) { + $score = CriticalScore($score, 0); + $log[count($log)] = "●{$admin[month]}월:선정을 성공하여 민심이 $score 상승했습니다. <1>$date"; + } else { + $score = round($score); + $log[count($log)] = "●{$admin[month]}월:민심이 $score 상승했습니다. <1>$date"; + } + + $exp = $score * 7; + $ded = $score * 10; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $score += $city[rate]; + if($score > 100) { $score = 100; } + // 민심 상승 + $query = "update city set rate='$score' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 군량 하락 내정보다 2배 지력경험 경험, 공헌 상승 + $general[rice] -= $admin[develcost] * 2; + $general[leader2]++; + $query = "update general set resturn='SUCCESS',rice='$general[rice]',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_5($connect, &$general, $type) { + global $_develrate; + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + if($type == 1) { $dtype = "수비 강화"; $stype = "def"; } + elseif($type == 2) { $dtype = "성벽 보수"; $stype = "wall"; } + + $query = "select * from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $dtype 실패. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3 && $nation[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:초반제한중 방랑군은 불가능합니다. $dtype 실패. <1>$date"; + } elseif($city[nation] != $general[nation] && $nation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $dtype 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $dtype 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $dtype 실패. <1>$date"; + } elseif($city["$stype"] >= $city["$stype"."2"]) { + $log[count($log)] = "●{$admin[month]}월:{$dtype}는 충분합니다. $dtype 실패. <1>$date"; + } else { + // 민심 50 이하이면 50과 같게 + if($city[rate] < $_develrate) { $city[rate] = $_develrate; } + $rate = $city[rate] / 100; + + $score = ($general[power] * (100 - $general[injury])/100 + getWeapEff($general[weap])) * $rate; + $score = $score * (100 + $general[explevel]/5)/100; + $score = $score * (80 + rand() % 41)/100; // 80 ~ 120% + + // 국가보정 + if($nation[type] == 3 || $nation[type] == 5 || $nation[type] == 10 || $nation[type] == 11) { $score *= 1.1; $admin[develcost] *= 0.8; } + if($nation[type] == 4 || $nation[type] == 7 || $nation[type] == 8 || $nation[type] == 13) { $score *= 0.9; $admin[develcost] *= 1.2; } + + // 군주, 참모, 장군 보정 + if($general[level] == 12 || $general[level] == 11 || $general[level] == 10 || $general[level] == 8 || $general[level] == 6) { $score *= 1.05; } + // 태수 보정 + if($general[level] == 4 && $general[no] == $city[gen1]) { $score *= 1.05; } + + $rd = rand() % 100; // 현재 20% + $r = CriticalRatio($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book]), 0); + // 특기보정 : 수비, 축성 + if($type == 1 && $general[special] == 11) { $r[succ] += 10; $score *= 1.1; $admin[develcost] *= 0.8; } + if($type == 2 && $general[special] == 10) { $r[succ] += 10; $score *= 1.1; $admin[develcost] *= 0.8; } + + //버그방지 + if($score < 1) $score = 1; + + if($r[fail] > $rd) { + $score = CriticalScore($score, 1); + $log[count($log)] = "●{$admin[month]}월:{$dtype}를 실패하여 $score 상승했습니다. <1>$date"; + } elseif($city[rate] >= 80 && $r[succ] > $rd) { + $score = CriticalScore($score, 0); + $log[count($log)] = "●{$admin[month]}월:{$dtype}를 성공하여 $score 상승했습니다. <1>$date"; + } else { + $score = round($score); + $log[count($log)] = "●{$admin[month]}월:{$dtype}를 하여 $score 상승했습니다. <1>$date"; + } + + $exp = $score * 0.7; + $ded = $score * 1.0; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $score += $city["$stype"]; + if($score > $city["{$stype}2"]) { $score = $city["{$stype}2"]; } + // 내정 상승 + $query = "update city set {$stype}='$score' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 자금 하락, 무력 경험 경험, 공헌 상승 + $general[gold] -= $admin[develcost]; + $general[power2]++; + $query = "update general set resturn='SUCCESS',gold='$general[gold]',power2='$general[power2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_7($connect, &$general) { + global $_develrate; + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select * from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 정착 장려 실패. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3 && $nation[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:초반제한중 방랑군은 불가능합니다. 정착 장려 실패. <1>$date"; + } elseif($city[nation] != $general[nation] && $nation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 정착 장려 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 정착 장려 실패. <1>$date"; + } elseif($general[rice] < $admin[develcost] * 2) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. 정착 장려 실패. <1>$date"; + } elseif($city[pop] >= $city[pop2]) { + $log[count($log)] = "●{$admin[month]}월:이미 포화상태입니다. 정착 장려 실패. <1>$date"; + } else { + $score = $general[leader] * (100 - $general[injury])/100 + getHorseEff($general[horse]) + $lbonus; + $score = $score * (100 + $general[explevel]/5)/100; + $score = $score * (80 + rand() % 41)/100; // 80 ~ 120% + + // 국가보정 + if($nation[type] == 2 || $nation[type] == 4 || $nation[type] == 7 || $nation[type] == 10) { $score *= 1.1; $admin[develcost] *= 0.8; } + if($nation[type] == 1 || $nation[type] == 3 || $nation[type] == 9) { $score *= 0.9; $admin[develcost] *= 1.2; } + + // 군주, 참모 보정 + if($general[level] == 12 || $general[level] == 11) { $score *= 1.05; } + // 시중 보정 + if($general[level] == 2 && $general[no] == $city[gen3]) { $score *= 1.05; } + + $rd = rand() % 100; // 현재 20% + $r = CriticalRatio($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book]), 0); + // 특기보정 : 인덕 + if($general[special] == 20) { $r[succ] += 10; $score *= 1.1; $admin[develcost] *= 0.8; } + + //버그방지 + if($score < 1) $score = 1; + + if($r[fail] > $rd) { + $score = CriticalScore($score, 1); + $log[count($log)] = "●{$admin[month]}월:장려를 실패하여 주민이 {$score}0명 증가했습니다. <1>$date"; + } elseif($r[succ] > $rd) { + $score = CriticalScore($score, 0); + $log[count($log)] = "●{$admin[month]}월:장려를 성공하여 주민이 {$score}0명 증가했습니다. <1>$date"; + } else { + $score = round($score); + $log[count($log)] = "●{$admin[month]}월:주민이 {$score}0명 증가했습니다. <1>$date"; + } + + $exp = $score * 0.7; + $ded = $score * 1.0; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $score = $city[pop] + ($score * 10); + if($score > $city[pop2]) { $score = $city[pop2]; } + // 민심 상승 + $query = "update city set pop='$score' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 군량 하락 내정보다 2배 지력경험 경험, 공헌 상승 + $general[rice] -= $admin[develcost] * 2; + $general[leader2]++; + $query = "update general set resturn='SUCCESS',rice='$general[rice]',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_8($connect, &$general) { + global $_develrate; + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $dtype = "치안"; $stype = "secu"; + + $query = "select * from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $dtype 강화 실패. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3 && $nation[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:초반제한중 방랑군은 불가능합니다. $dtype 강화 실패. <1>$date"; + } elseif($city[nation] != $general[nation] && $nation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $dtype 강화 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $dtype 강화 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $dtype 강화 실패. <1>$date"; + } elseif($city[secu] >= $city[secu2]) { + $log[count($log)] = "●{$admin[month]}월:치안은 충분합니다. $dtype 강화 실패. <1>$date"; + } else { + // 민심 50 이하이면 50과 같게 + if($city[rate] < $_develrate) { $city[rate] = $_develrate; } + $rate = $city[rate] / 100; + + $score = ($general[power] * (100 - $general[injury])/100 + getWeapEff($general[weap])) * $rate; + $score = $score * (100 + $general[explevel]/5)/100; + $score = $score * (80 + rand() % 41)/100; // 80 ~ 120% + + // 국가보정 + if($nation[type] == 1 || $nation[type] == 4) { $score *= 1.1; $admin[develcost] *= 0.8; } + if($nation[type] == 6 || $nation[type] == 9) { $score *= 0.9; $admin[develcost] *= 1.2; } + + // 군주, 참모, 장군 보정 + if($general[level] == 12 || $general[level] == 11 || $general[level] == 10 || $general[level] == 8 || $general[level] == 6) { $score *= 1.05; } + // 태수 보정 + if($general[level] == 4 && $general[no] == $city[gen1]) { $score *= 1.05; } + + $rd = rand() % 100; // 현재 20% + $r = CriticalRatio($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book]), 0); + // 특기보정 : 통찰 + if($general[special] == 12) { $r[succ] += 10; $score *= 1.1; $admin[develcost] *= 0.8; } + + //버그방지 + if($score < 1) $score = 1; + + if($r[fail] > $rd) { + $score = CriticalScore($score, 1); + $log[count($log)] = "●{$admin[month]}월:{$dtype}을 실패하여 $score 강화했습니다. <1>$date"; + } elseif($city[rate] >= 80 && $r[succ] > $rd) { + $score = CriticalScore($score, 0); + $log[count($log)] = "●{$admin[month]}월:{$dtype}을 성공하여 $score 강화했습니다. <1>$date"; + } else { + $score = round($score); + $log[count($log)] = "●{$admin[month]}월:{$dtype}을 $score 강화했습니다. <1>$date"; + } + + $exp = $score * 0.7; + $ded = $score * 1.0; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $score += $city["$stype"]; + if($score > $city["{$stype}2"]) { $score = $city["{$stype}2"]; } + // 내정 상승 + $query = "update city set {$stype}='$score' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 자금 하락, 무력 경험 경험, 공헌 상승 + $general[gold] -= $admin[develcost]; + $general[power2]++; + $query = "update general set resturn='SUCCESS',gold='$general[gold]',power2='$general[power2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_9($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 물자 조달 실패. <1>$date"; + } elseif($nation[level] > 0 && $city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 물자 조달 실패. <1>$date"; + } elseif($city[supply] == 0 && $city[nation] == $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 물자 조달 실패. <1>$date"; + } else { + if(rand() % 2 == 0) { $dtype = 0; $stype = "금"; } + else { $dtype = 1; $stype = "쌀"; } + + $score = (($general[leader]+$general[power]+$general[intel]) * (100 - $general[injury])/100 + getHorseEff($general[horse])+$lbonus+getWeapEff($general[weap])+getBookEff($general[book])); + $score = $score * (100 + $general[explevel]/5)/100; + $score = $score * (80 + rand() % 41)/100; // 80 ~ 120% + + $rd = rand() % 100; // 현재 20% + + //버그방지 + if($score < 1) $score = 1; + + if(30 > $rd) { + $score = CriticalScore($score, 1); + $log[count($log)] = "●{$admin[month]}월:조달을 실패하여 {$stype}을 $score 조달했습니다. <1>$date"; + } elseif(40 > $rd) { + $score = CriticalScore($score, 0); + $log[count($log)] = "●{$admin[month]}월:조달을 성공하여 {$stype}을 $score 조달했습니다. <1>$date"; + } else { + $score = round($score); + $log[count($log)] = "●{$admin[month]}월:{$stype}을 $score 조달했습니다. <1>$date"; + } + + $exp = $score * 0.7; + $ded = $score * 1.0; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 물자 상승 + if($dtype == 0) { + $query = "update nation set gold=gold+'$score' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update nation set rice=rice+'$score' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + switch(rand()%3) { + case 0: + $general[leader2]++; + $query = "update general set resturn='SUCCESS',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + break; + case 1: + $general[power2]++; + $query = "update general set resturn='SUCCESS',power2='$general[power2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + break; + case 2: + $general[intel2]++; + $query = "update general set resturn='SUCCESS',intel2='$general[intel2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + break; + } + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); +} + +function process_11($connect, &$general, $type) { + global $_defaultatmos, $_defaulttrain, $_defaultatmos2, $_defaulttrain2; + $date = substr($general[turntime],11,5); + + if($type == 1) { $defaultatmos = $_defaultatmos; $defaulttrain = $_defaulttrain; } + else { $defaultatmos = $_defaultatmos2; $defaulttrain = $_defaulttrain2; } + + $query = "select year,month,startyear from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select level,tech from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + $query = "select * from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $command = DecodeCommand($general[turn0]); + $armtype = $command[2]; + $crew = $command[1]; + + if($armtype != $general[crewtype]) { $general[crew] = 0; $general[train] = $defaulttrain; $general[atmos] = $defaultatmos; } + + if($crew*100 + $general[crew] > (floor($general[leader] * (100 - $general[injury])/100)+getHorseEff($general[horse])+$lbonus)*100) { $crew = round(((floor($general[leader] * (100 - $general[injury])/100)+getHorseEff($general[horse])+$lbonus)*100 - $general[crew])/100, 0); } + if($crew < 0) { $crew = 0; } + $cost = $crew * getCost($connect, $armtype); + //기술로 가격 + $cost *= getTechCost($nation[tech]); + //성격 보정 + $cost = CharCost($cost, $general[personal]); + $cost = round($cost); + + //특기 보정 : 보병, 궁병, 기병, 귀병, 공성, 징병 + if(floor($armtype/10) == 0 && $general[special2] == 50) { $cost *= 0.9; } + if(floor($armtype/10) == 1 && $general[special2] == 51) { $cost *= 0.9; } + if(floor($armtype/10) == 2 && $general[special2] == 52) { $cost *= 0.9; } + if(floor($armtype/10) == 3 && $general[special2] == 40) { $cost *= 0.9; } + if(floor($armtype/10) == 4 && $general[special2] == 43) { $cost *= 0.9; } + if($general[special2] == 72) { $cost *= 0.5; } + + if($type == 1) { $dtype = "징병"; } + elseif($type == 2) { $dtype = "모병"; $cost *= 2; } + if($general[crew] != 0) { $dtype = "추가".$dtype; } + + //현재 가능한지 검사 + switch($armtype) { + case 0: case 10: case 20: case 30: case 35: // 보병 궁병 기병 귀병 남귀병 + $sel = 0; break; + + case 1: $sel = 1; $rg = 2; break; // 청주병(중원) + case 2: $sel = 1; $rg = 7; break; // 수병(오월) + case 3: $sel = 2; $ct = 64; break; // 자객병(저) + case 4: $sel = 2; $ct = 3; break; // 근위병(낙양) + case 5: $sel = 1; $rg = 5; break; // 등갑병(남중) + + case 11: $sel = 1; $rg = 8; break; // 궁기병(동이) + case 12: $sel = 1; $rg = 4; break; // 연노병(서촉) + case 13: $sel = 2; $ct = 6; break; // 강궁병(양양) + case 14: $sel = 2; $ct = 7; break; // 석궁병(건업) + + case 21: $sel = 1; $rg = 1; break; // 백마병(하북) + case 22: $sel = 1; $rg = 3; break; // 중장기병(서북) + case 23: $sel = 2; $ct = 65; break; // 돌격기병(흉노) + case 24: $sel = 2; $ct = 63; break; // 철기병(강) + case 25: $sel = 2; $ct = 67; break; // 수렵기병(산월) + case 26: $sel = 2; $ct = 66; break; // 맹수병(남만) + case 27: $sel = 2; $ct = 2; break; // 호표기병(허창) + + case 31: $sel = 1; $rg = 6; break; // 신귀병(초) + case 32: $sel = 2; $ct = 68; break; // 백귀병(오환) + case 33: $sel = 2; $ct = 69; break; // 흑귀병(왜) + case 34: $sel = 2; $ct = 4; break; // 악귀병(장안) + case 36: $sel = 2; $ct = 3; break; // 황귀병(낙양) + case 37: $sel = 2; $ct = 5; break; // 천귀병(성도) + case 38: $sel = 2; $ct = 1; break; // 마귀병(업) + + case 40: $sel = 0; break; // 정란 + case 41: $sel = 0; break; // 충차 + case 42: $sel = 2; $ct = 1; break; // 벽력거(업) + case 43: $sel = 2; $ct = 5; break; // 목우(성도) + + default: $sel = 0; $armtype = 0; break; + } + if($sel == 0) { + // 남귀병은 기술1등급부터 + // 충차는 기술1등급부터 + if($armtype == 35 && $nation[tech] < 1000) { + $cnt = 0; + } elseif($armtype == 41 && $nation[tech] < 1000) { + $cnt = 0; + } else { + $cnt = 1; + } + } elseif($sel == 1) { + $query = "select city,level from city where nation='$general[nation]' and region='$rg'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cnt = MYDB_num_rows($result); + $rgcity = MYDB_fetch_array($result); + // 기술 1000 이상부터 지역병 + if($cnt > 0 && $nation[tech] < 1000) { + $cnt = 0; + } + } else { + $query = "select city,level from city where nation='$general[nation]' and city='$ct'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cnt = MYDB_num_rows($result); + $ctcity = MYDB_fetch_array($result); + // 기술 2000 이상부터 이민족병 + if($cnt > 0 && $ctcity[level] == 4 && $nation[tech] < 2000) { + $cnt = 0; + } + // 기술 3000 이상부터 특수병 + if($cnt > 0 && $ctcity[level] == 8 && $nation[tech] < 3000) { + $cnt = 0; + } + } + if($cnt > 0) { $valid = 1; } + else { $valid = 0; } + + // 초반 제한중 차병 불가 + if($admin[year] < $admin[startyear]+3 && floor($armtype/10) == 4) { + $valid = 0; + } + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $dtype 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $dtype 실패. <1>$date"; +// } elseif($city[supply] == 0) { +// $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $dtype 실패. <1>$date"; + } elseif($crew <= 0) { + $log[count($log)] = "●{$admin[month]}월:더이상 $dtype 할 수 없습니다. $dtype 실패. <1>$date"; + } elseif($general[gold] < $cost) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $dtype 실패. <1>$date"; + } elseif($general[rice] < $crew) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. $dtype 실패. <1>$date"; + } elseif($valid == 0) { + $log[count($log)] = "●{$admin[month]}월:현재 $dtype 할 수 없는 병종입니다. $dtype 실패. <1>$date"; + } elseif($city[pop]-30000 < $crew*100) { // 주민 30000명 이상만 가능 + $log[count($log)] = "●{$admin[month]}월:주민이 모자랍니다. $dtype 실패. <1>$date"; + } elseif($city[rate] < 20) { + $log[count($log)] = "●{$admin[month]}월:민심이 낮아 주민들이 도망갑니다. $dtype 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:".getTypename($armtype)."을(를) {$crew}00명 {$dtype}했습니다. <1>$date"; + $exp = $crew; + $ded = $crew; + // 숙련도 증가 + addGenDex($connect, $general[no], $armtype, $crew); + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $atmos = round(($general[atmos] * $general[crew] + $defaultatmos * $crew*100) / ($general[crew] + $crew*100)); + $train = round(($general[train] * $general[crew] + $defaulttrain * $crew*100) / ($general[crew] + $crew*100)); + $general[crew] += $crew*100; + $general[gold] -= $cost; + // 주민수 감소 // 민심 김소 + if($type == 1) { $city[rate] = $city[rate] - round(($crew*100 / $city[pop])*100); } + else { $city[rate] = $city[rate] - round(($crew*100 / $city[pop])*50); } + if($city[rate] < 0) { $city[rate] = 0; } + $query = "update city set pop=pop-({$crew}*100),rate='$city[rate]' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 통솔경험, 병종 변경, 병사수 변경, 훈련치 변경, 사기치 변경, 자금 군량 하락, 공헌도, 명성 상승 + $general[leader2]++; + $query = "update general set resturn='SUCCESS',leader2='$general[leader2]',crewtype='$armtype',crew='$general[crew]',train='$train',atmos='$atmos',gold='$general[gold]',rice=rice-'$crew',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_13($connect, &$general) { + global $_maxtrain, $_training, $_atmosing; + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select level from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + $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); + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 훈련 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 훈련 실패. <1>$date"; +// } elseif($city[supply] == 0) { +// $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 훈련 실패. <1>$date"; + } elseif($general[crew] == 0) { + $log[count($log)] = "●{$admin[month]}월:병사가 없습니다. 훈련 실패. <1>$date"; + } elseif($general[train] >= $_maxtrain) { + $log[count($log)] = "●{$admin[month]}월:병사들은 이미 정예병사들입니다. <1>$date"; +// } elseif(floor($general[crewtype]/10) == 4) { +// $log[count($log)] = "●{$admin[month]}월:병기는 훈련이 불가능합니다. <1>$date"; + } else { + // 훈련시 + $score = round((floor($general[leader] * (100 - $general[injury])/100)+getHorseEff($general[horse])+$lbonus)*100 / $general[crew] * $_training); + + $log[count($log)] = "●{$admin[month]}월:훈련치가 $score 상승했습니다. <1>$date"; + $exp = 100; + $ded = 70; + // 숙련도 증가 + addGenDex($connect, $general[no], $general[crewtype], round($general[crew]/100)); + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 훈련치 변경 + $score += $general[train]; + if($score > $_maxtrain) { $score = $_maxtrain; } + $query = "update general set train='$score' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 사기 약간 감소 + $score = floor($general[atmos] * $_atmosing); + if($score < 0 ) { $score = 0; } + $query = "update general set atmos='$score' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 경험치 상승 // 공헌도, 명성 상승 + $general[leader2]++; + $query = "update general set resturn='SUCCESS',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_14($connect, &$general) { + global $_maxatmos, $_training; + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select level from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + $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); + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 사기진작 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 사기진작 실패. <1>$date"; +// } elseif($city[supply] == 0) { +// $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 사기진작 실패. <1>$date"; + } elseif($general[crew] == 0) { + $log[count($log)] = "●{$admin[month]}월:병사가 없습니다. 사기진작 실패. <1>$date"; + } elseif($general[gold] < $general[crew]/100) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. 사기진작 실패. <1>$date"; + } elseif($general[atmos] >= $_maxatmos) { + $log[count($log)] = "●{$admin[month]}월:이미 사기는 하늘을 찌를듯 합니다. <1>$date"; +// } elseif(floor($general[crewtype]/10) == 4) { +// $log[count($log)] = "●{$admin[month]}월:병기는 사기 진작이 불가능합니다. <1>$date"; + } else { + $score = round((floor($general[leader] * (100 - $general[injury])/100)+getHorseEff($general[horse])+$lbonus)*100 / $general[crew] * $_training); + $gold = $general[gold] - round($general[crew]/100); + + $log[count($log)] = "●{$admin[month]}월:사기치가 $score 상승했습니다. <1>$date"; + $exp = 100; + $ded = 70; + // 숙련도 증가 + addGenDex($connect, $general[no], $general[crewtype], round($general[crew]/100)); + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 사기치 변경 // 자금 감소 // 경험치 상승 // 공헌도, 명성 상승 + $score += $general[atmos]; + if($score > $_maxatmos) { $score = $_maxatmos; } + $general[leader2]++; + $query = "update general set resturn='SUCCESS',atmos='$score',gold='$gold',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_15($connect, &$general) { + global $_maxatmos, $_maxtrain; + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select nation,tech from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $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); + + if($general[term]%100 == 15) { + $term = floor($general[term]/100) + 1; + $code = $term * 100 + 15; + } else { + $term = 1; + $code = 100 + 15; + } + + $cost = round($general[crew]/100 * 3 * getTechCost($nation[tech])); + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 전투태세 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 전투태세 실패. <1>$date"; +// } elseif($city[supply] == 0) { +// $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 전투태세 실패. <1>$date"; + } elseif($general[crew] == 0) { + $log[count($log)] = "●{$admin[month]}월:병사가 없습니다. 전투태세 실패. <1>$date"; + } elseif($general[atmos] >= 90 && $general[train] >= 90) { + $log[count($log)] = "●{$admin[month]}월:이미 병사들은 날쌔고 용맹합니다. <1>$date"; + } elseif($general[gold] < $cost) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. 전투태세 실패. <1>$date"; + } elseif($term < 3) { + $log[count($log)] = "●{$admin[month]}월:병사들을 열심히 훈련중... ({$term}/3) <1>$date"; + + $query = "update general set resturn='ONGOING',term={$code} where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + //기술로 가격 + $gold = $general[gold] - $cost; + + $log[count($log)] = "●{$admin[month]}월:전투태세 완료! <1>$date"; + $exp = 100 * 3; + $ded = 70 * 3; + // 숙련도 증가 + addGenDex($connect, $general[no], $general[crewtype], round($general[crew]/100 * 3)); + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 훈련,사기치 변경 // 자금 감소 // 경험치 상승 // 공헌도, 명성 상승 + $general[leader2]+=3; + $query = "update general set resturn='SUCCESS',term='0',atmos='95',train='95',gold='$gold',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_16($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select nation,war,tricklimit,tech from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select path,nation,supply from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $path = explode("|", $city[path]); + $command = DecodeCommand($general[turn0]); + $destination = $command[1]; + + $query = "select * from city where city='$destination'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $query = "select nation,tricklimit,tech from nation where nation='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dnation = MYDB_fetch_array($result); + + $query = "select state from diplomacy where me='$general[nation]' and you='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + for($i=0; $i < count($path); $i++) { + if($path[$i] == $destination) { $valid = 1; } + } + + if($admin[year] < $admin[startyear]+3) { + $log[count($log)] = "●{$admin[month]}월:현재 초반 제한중입니다. $destcity[name](으)로 출병 실패. <1>$date"; +// } elseif($city[supply] == 0) { +// $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $destcity[name](으)로 출병 실패. <1>$date"; + } elseif(!$valid) { + $log[count($log)] = "●{$admin[month]}월:인접도시가 아닙니다. $destcity[name](으)로 출병 실패. <1>$date"; + } elseif($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $destcity[name](으)로 출병 실패. <1>$date"; + } elseif($general[crew] <= 0) { + $log[count($log)] = "●{$admin[month]}월:병사가 없습니다. $destcity[name](으)로 출병 실패. <1>$date"; + } elseif($general[rice] <= round($general[crew]/100)) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. $destcity[name](으)로 출병 실패. <1>$date"; + } elseif($dip[state] != 0) { + $log[count($log)] = "●{$admin[month]}월:교전중인 국가가 아닙니다. $destcity[name](으)로 출병 실패. <1>$date"; + } elseif($general[nation] != $city[nation]) { + $log[count($log)] = "●{$admin[month]}월:본국에서만 출병가능합니다. $destcity[name](으)로 출병 실패. <1>$date"; + } elseif($nation[war] == 1) { + $log[count($log)] = "●{$admin[month]}월:현재 전쟁 금지입니다. $destcity[name](으)로 출병 실패. <1>$date"; + } elseif($general[nation] == $destcity[nation]) { + $log[count($log)] = "●{$admin[month]}월:본국입니다. $destcity[name](으)로 출병 실패. <1>$date"; + pushGenLog($general, $log); + process_21($connect, $general); + return; + } else { + // 전쟁 표시 + $query = "update city set state=43,term=3 where city='$destcity[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 숙련도 증가 + addGenDex($connect, $general[no], $general[crewtype], round($general[crew]/100)); + // 전투 처리 + $dead = processWar($connect, $general, $destcity); + + // 기술력 따라서 보정 + $dead[att] = round($dead[att] * getTechCost($nation[tech])); + $dead[def] = round($dead[def] * getTechCost($dnation[tech])); + + // 사상자 누적 + if($nation[nation] > 0 && $dnation[nation] > 0) { + $query = "update diplomacy set dead=dead+'$dead[att]' where me='$nation[nation]' and you='$dnation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update diplomacy set dead=dead+'$dead[def]' where you='$nation[nation]' and me='$dnation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + $log = uniqueItem($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_17($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + if($general[crew] == 0) { + $log[count($log)] = "●{$admin[month]}월:병사가 없습니다. 소집해제 실패. <1>$date"; + } else { + // 주민으로 돌아감 + $query = "update city set pop=pop+'$general[crew]' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set crew='0' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[0] = "●{$admin[month]}월:병사들을 소집해제하였습니다. <1>$date"; + + // 경험, 공헌 상승 + $exp = 70; + $ded = 100; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $query = "update general set resturn='SUCCESS',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); +} + +function process_21($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select path from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $path = explode("|", $city[path]); + $command = DecodeCommand($general[turn0]); + $destination = $command[1]; + + $query = "select name from city where city='$destination'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + for($i=0; $i < count($path); $i++) { + if($path[$i] == $destination) { $valid = 1; } + } + + if(!$valid) { + $log[count($log)] = "●{$admin[month]}월:인접도시가 아닙니다. $destcity[name](으)로 이동 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]) { + $log[count($log)] = "●{$admin[month]}월:자금이 부족합니다. $destcity[name](으)로 이동 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name](으)로 이동했습니다. <1>$date"; + $exp = 50; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + + // 이동, 경험치 상승, 명성 상승, 사기 감소 + $general[leader2]++; + $query = "update general set resturn='SUCCESS',gold=gold-'$admin[develcost]',city='$destination',atmos=atmos*0.95,leader2='$general[leader2]',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + if($general[level] == 12) { + $query = "select level from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($nation[level] == 0) { + $query = "update general set city='$destination' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select no,name from general where nation='$general[nation]' and level<'12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $genlog[0] = "●방랑군 세력이 $destcity[name](으)로 이동했습니다."; + for($j=0; $j < $gencount; $j++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $genlog); + } + } + } + + $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); +} + +function process_22($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select name from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($general[turn0]); + $who = $command[1]; + + $query = "select * from general where no='$who'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + + $cost = round($admin[develcost] + ($you[experience] + $you[dedication])/1000) * 10; + + if(!$you) { + $log[count($log)] = "●{$admin[month]}월:없는 장수입니다. 등용 실패. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3) { + $log[count($log)] = "●{$admin[month]}월:초반 제한중입니다. 등용 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 등용 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 등용 실패. <1>$date"; + } elseif($general[gold] < $cost) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. 등용 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$you[name]에게 등용 권유 서신을 보냈습니다. <1>$date"; + $exp = 100; + $ded = 200; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + ScoutMsg($connect, $general[no], $nation[name], $who, $you[msgindex]); + + $general[intel2]++; + $query = "update general set resturn='SUCCESS',gold=gold-'$cost',intel2='$general[intel2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); +} + +function process_23($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select gold,rice,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $what = $command[3]; + $who = $command[2]; + $amount = $command[1]; + $amount *= 100; // 100~10000까지 + + if($amount > 10000) { $amount = 10000; } + if($amount < 100) { $amount = 100; } + if($what == 1) { + $dtype = "금"; + if($nation[gold]-$_basegold < $amount) { $amount = $nation[gold] - $_basegold; } + } elseif($what == 2) { + $dtype = "쌀"; + if($nation[rice]-$_baserice < $amount) { $amount = $nation[rice] - $_baserice; } + } else { + $what = 2; + $dtype = "쌀"; + if($nation[rice]-$_baserice < $amount) { $amount = $nation[rice] - $_baserice; } + } + + $query = "select no,nation,level,name,gold,rice from general where no='$who'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + + if(!$gen) { + $log[count($log)] = "●{$admin[month]}월:없는 장수입니다. 포상 실패. <1>$date"; + } elseif($general[no] == $who) { + $log[count($log)] = "●{$admin[month]}월:자기 자신입니다. 포상 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 포상 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 포상 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 포상 실패. <1>$date"; + } elseif($what == 1 && $amount <= 0) { + $log[count($log)] = "●{$admin[month]}월:국고가 부족합니다. 포상 실패. <1>$date"; + } elseif($what == 2 && $amount <= 0) { + $log[count($log)] = "●{$admin[month]}월:병량이 부족합니다. 포상 실패. <1>$date"; + } elseif($gen[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국 장수가 아닙니다. 포상 실패. <1>$date"; + } else { + $genlog[count($genlog)] = "●$dtype $amount을 포상으로 받았습니다."; + $log[count($log)] = "●{$admin[month]}월:$gen[name]에게 $dtype $amount을 수여했습니다. <1>$date"; + $exp = 1; + $ded = 1; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + if($what == 1) { + $gen[gold] += $amount; + $query = "update general set gold='$gen[gold]' where no='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $nation[gold] -= $amount; + $query = "update nation set gold='$nation[gold]' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($what == 2) { + $gen[rice] += $amount; + $query = "update general set rice='$gen[rice]' where no='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $nation[rice] -= $amount; + $query = "update nation set rice='$nation[rice]' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + // 경험치 상승 + $query = "update general set resturn='SUCCESS',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + +// $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); + pushGenLog($gen, $genlog); +} + +function process_24($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month,scenario,startyear from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,color,gold,rice,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $what = $command[3]; + $who = $command[2]; + $amount = $command[1]; + $amount *= 100; // 100~10000까지 + + $query = "select no,nation,level,name,gold,rice,npc,picture,imgsvr from general where no='$who'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + + if($amount > 10000) { $amount = 10000; } + if($amount < 100) { $amount = 100; } + if($what == 1) { + $dtype = "금"; + if($gen[gold] < $amount) { $amount = $gen[gold]; } + } elseif($what == 2) { + $dtype = "쌀"; + if($gen[rice] < $amount) { $amount = $gen[rice]; } + } else { + $what = 2; + $dtype = "쌀"; + if($gen[rice] < $amount) { $amount = $gen[rice]; } + } + + if(!$gen) { + $log[count($log)] = "●{$admin[month]}월:없는 장수입니다. 몰수 실패. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3) { + $log[count($log)] = "●{$admin[month]}월:현재 초반 제한중입니다. 몰수 실패. <1>$date"; + } elseif($general[no] == $who) { + $log[count($log)] = "●{$admin[month]}월:자기 자신입니다. 몰수 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 몰수 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 몰수 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 몰수 실패. <1>$date"; + } elseif($gen[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국 장수가 아닙니다. 몰수 실패. <1>$date"; + } else { + if($gen[npc] >= 2 && rand()%100 == 0) { + switch(rand()%5) { + case 0: $str = "몰수를 하다니... 이것이 윗사람이 할 짓이란 말입니까..."; break; + case 1: $str = "사유재산까지 몰수해가면서 이 나라가 잘 될거라 믿습니까? 정말 이해할 수가 없군요..."; break; + case 2: $str = "내 돈 내놔라! 내 돈! 몰수가 왠 말이냐!"; break; + case 3: $str = "몰수해간 내 자금... 언젠가 몰래 다시 빼내올 것이다..."; break; + case 4: $str = "몰수로 인한 사기 저하는 몰수로 얻은 물자보다 더 손해란걸 모른단 말인가!"; break; + } + + PushMsg(1, 0, $gen[picture], $gen[imgsvr], "{$gen[name]}:", $nation[color], $nation[name], $nation[color], $str); + } + + $genlog[count($genlog)] = "●$dtype {$amount}을 몰수 당했습니다."; + $log[count($log)] = "●{$admin[month]}월:$gen[name]에게서 $dtype $amount을 몰수했습니다. <1>$date"; + $exp = 1; + $ded = 1; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + if($what == 1) { + $gen[gold] -= $amount; + $query = "update general set gold='$gen[gold]' where no='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $nation[gold] += $amount; + $query = "update nation set gold='$nation[gold]' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($what == 2) { + $gen[rice] -= $amount; + $query = "update general set rice='$gen[rice]' where no='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $nation[rice] += $amount; + $query = "update nation set rice='$nation[rice]' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + // 경험치 상승 + $query = "update general set resturn='SUCCESS',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + +// $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); + pushGenLog($gen, $genlog); +} + +function process_25($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $command = DecodeCommand($general[turn0]); + $where = $command[1]; + + // 랜덤임관인 경우 + if($where == 99) { + // 초반시 10명이하, 임관금지없음 국가 + if($admin[year] < $admin[startyear]+3) { + $query = "select name,nation,scout,level from nation where nation not in (0{$general['nations']}0) and gennum<10 and scout=0 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + } else { + $query = "select name,nation,scout,level from nation where nation not in (0{$general['nations']}0) and scout=0 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + } + } elseif($where == 98) { + // 초반시 10명이하, 임관금지없음 국가, 방랑군 제외 + if($admin[year] < $admin[startyear]+3) { + $query = "select name,nation,scout,level from nation where nation not in (0{$general['nations']}0) and gennum<10 and scout=0 and level>0 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + } else { + $query = "select name,nation,scout,level from nation where nation not in (0{$general['nations']}0) and scout=0 and level>0 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + } + } else { + $query = "select name,nation,scout,level from nation where nation='$where'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + } + $query = "select no from general where nation='$nation[nation]'"; + $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($genresult); + + if(!$nation) { + $log[count($log)] = "●{$admin[month]}월:임관할 국가가 없습니다. 임관 실패. <1>$date"; + } elseif($general[nation] != 0) { + $log[count($log)] = "●{$admin[month]}월:재야가 아닙니다. 임관 실패. <1>$date"; + } elseif($nation[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:없는 국가입니다. 임관 실패. <1>$date"; + } elseif($nation[level] == 0 && $gencount >= 10) { + $log[count($log)] = "●{$admin[month]}월:현재 $nation[name]은(는) 임관이 제한되고 있습니다. 임관 실패."; + } elseif($admin[year] < $admin[startyear]+3 && $gencount >= 10) { + $log[count($log)] = "●{$admin[month]}월:현재 $nation[name]은(는) 임관이 제한되고 있습니다. 임관 실패."; + } elseif($nation[scout] == 1 && $general[npc] < 5) { + $log[count($log)] = "●{$admin[month]}월:현재 $nation[name]은(는) 임관이 금지되어 있습니다. 임관 실패."; + } elseif($general[makelimit] > 0 && $general[npc] < 5) { + $log[count($log)] = "●{$admin[month]}월:재야가 된지 12턴이 지나야 합니다. 임관 실패. <1>$date"; + } elseif(strpos($general['nations'], ",{$nation['nation']},") > 0) { + $log[count($log)] = "●{$admin[month]}월:이미 임관했었던 국가입니다. 임관 실패. <1>$date"; + } else { + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $nation[name]임관했습니다."; + $log[count($log)] = "●{$admin[month]}월:$nation[name]에 임관했습니다. <1>$date"; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$nation[name]에 임관"); + + if($gencount < 10) { $exp = 700; } + else { $exp = 100; } + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 군주가 있는 곳으로 이동 + $query = "select city from general where nation='$nation[nation]' and level='12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $king = MYDB_fetch_array($result); + + // NPC초반시 임관기록 추가 안함 + if($general[npc] > 1 && $admin[year] < $admin[startyear]+3) { + } else { + $general['nations'] .= "{$nation['nation']},"; + } + + // 국적 바꾸고 등급 일반으로 // 명성 상승 + $query = "update general set resturn='SUCCESS',nation='$nation[nation]',nations='{$general['nations']}',level='1',experience=experience+'$exp',city='$king[city]',belong=1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //국가 기술력 그대로 + $query = "select no from general where nation='$nation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $gennum = $gencount; + if($gencount < 10) $gencount = 10; + + $query = "update nation set totaltech=tech*'$gencount',gennum='$gennum' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + if($where < 99) { + $log = uniqueItem($connect, $general, $log); + } else { + $log = uniqueItem($connect, $general, $log, 2); + } + } + + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_26($connect, &$general) { + $date = substr($general[turntime],11,5); + + $troop = getTroop($connect, $general[troop]); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select nation,name,supply from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $query = "select no,name,nation,city from general where troop='$general[troop]' and no!='$general[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + if($general[nation] != $city[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 집합 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 집합 실패. <1>$date"; + } elseif($general[no] != $troop[no]) { + $log[count($log)] = "●{$admin[month]}월:부대장이 아닙니다. 집합 실패. <1>$date"; + } elseif($gencount == 0) { + $log[count($log)] = "●{$admin[month]}월:집합 가능한 부대원이 없습니다. 집합 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$city[name]에서 집합을 실시했습니다. <1>$date"; + $exp = 70; + $ded = 100; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + //부대원에게 로그 전달 + $genlog[count($genlog)] = "$troop[name]의 부대원들은 $city[name](으)로 집합되었습니다."; + + for($i=0; $i < $gencount; $i++) { + $troopgen = MYDB_fetch_array($result); + if($general[city] != $troopgen[city]) { + pushGenLog($troopgen, $genlog); + } + } + + // 같은 부대원 모두 집합 + $query = "update general set city='$general[city]' where troop='$general[troop]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 경험치 명성 공헌 상승 + $general[leader2]++; + $query = "update general set resturn='SUCCESS',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_27($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select gold,rice,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $who = $command[2]; + $where = $command[1]; + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select no,name,nation,level from general where no='$who'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $you = MYDB_fetch_array($result); + + $query = "select name,nation,supply from city where city='$where'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + if(!$you) { + $log[count($log)] = "●{$admin[month]}월:없는 장수입니다. 발령 실패. <1>$date"; + } elseif($general[no] == $who) { + $log[count($log)] = "●{$admin[month]}월:자기 자신입니다. $you[name] 발령 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. $you[name] 발령 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $you[name] 발령 실패. <1>$date"; + } elseif($destcity[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $you[name] 발령 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $you[name] 발령 실패. <1>$date"; + } elseif($destcity[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국 도시가 아닙니다. $you[name] 발령 실패. <1>$date"; + } elseif($general[nation] != $you[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국 장수가 아닙니다. $you[name] 발령 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$you[name](을)를 $destcity[name](으)로 발령했습니다. <1>$date"; + $youlog[count($youlog)] = "$general[name]에 의해 $destcity[name](으)로 발령됐습니다. <1>$date"; + $exp = 1; + $ded = 1; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 발령 + $query = "update general set city='$where' where no='$you[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 경험치 상승 + $query = "update general set resturn='SUCCESS',experience=experience+'$exp',dedication=dedication+'$ded' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + +// $log = checkAbility($connect, $general, $log); + } + + pushGenLog($general, $log); + pushGenLog($you, $youlog); +} + +function process_28($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select level,capital from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($nation[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:방랑군입니다. 귀환 실패. <1>$date"; + } elseif($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 귀환 실패. <1>$date"; + } elseif(($general[level] == 1 || $general[level] >= 5) && $general[city] == $nation[capital]) { + $log[count($log)] = "●{$admin[month]}월:이미 수도입니다. 귀환 실패. <1>$date"; + } else { + if($general[level] == 2) { + $query = "select city,name from city where gen3='$general[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + } elseif($general[level] == 3) { + $query = "select city,name from city where gen2='$general[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + } elseif($general[level] == 4) { + $query = "select city,name from city where gen1='$general[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + } else { + $query = "select city,name from city where city='$nation[capital]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + } + + $log[count($log)] = "●{$admin[month]}월:$city[name](으)로 귀환했습니다. <1>$date"; + $exp = 70; + $ded = 100; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 귀환 + $query = "update general set city='$city[city]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 경험치 상승 // 명성,공헌 상승 + $general[leader2]++; + $query = "update general set resturn='SUCCESS',leader2='$general[leader2]',experience=experience+'$exp',dedication=dedication+'$ded' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + + pushGenLog($general, $log); + pushGenLog($you, $youlog); +} + +function process_29($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month,develcost,npccount,turnterm,scenario from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select nation,name,level,gennum,scout from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 인재탐색 실패. <1>$date"; + } elseif($nation[level] <= 0) { + $log[count($log)] = "●{$admin[month]}월:방랑군입니다. 인재탐색 실패. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3 && $nation[gennum] >= 10) { + $log[count($log)] = "●{$admin[month]}월:현재 $nation[name]은(는) 탐색이 제한되고 있습니다. 인재탐색 실패."; + } elseif($general[gold] < $admin[develcost]) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. 인재탐색 실패. <1>$date"; + } else { + $query = "select no from general where nation='$general[nation]' and npc<2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + $query = "select no from general where nation='$general[nation]' and npc=3"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $npccount = MYDB_num_rows($result); + + $query = "select no from general where nation!='$general[nation]' and npc=3"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $otherNpccount = MYDB_num_rows($result); + $otherNpccount = round(sqrt($otherNpccount + 1)) - 1; + + if($gencount <= 0) { $gencount = 1; } + if($npccount <= 0) { $npccount = 1; } + $criteria = $gencount * $npccount + $otherNpccount; + + // 탐색 실패 + if(rand() % $criteria > 0) { + $exp = 100; + $ded = 70; + switch(rand()%3) { + case 0: $general[leader2] += 1; break; + case 1: $general[power2] += 1; break; + case 2: $general[intel2] += 1; break; + } + $log[count($log)] = "●{$admin[month]}월:인재를 찾을 수 없었습니다. <1>$date"; + } else { + // 탐색 성공 + $exp = 200; + $ded = 300; + switch(rand()%3) { + case 0: $general[leader2] += 3; break; + case 1: $general[power2] += 3; break; + case 2: $general[intel2] += 3; break; + } + + $name = getRandGenName(); + $name = 'ⓜ'.$name; + //중복장수 처리 + $query = "select no from general where name like '{$name}%'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + $count++; + if($count > 1) { + $name = "{$name}{$count}"; + } + + if($nation[scout] != 0) { + $scoutType = "발견"; + $scoutLevel = 0; + $scoutNation = 0; + } else { + $scoutType = "영입"; + $scoutLevel = 1; + $scoutNation = $nation[nation]; + } + + $log[count($log)] = "●{$admin[month]}월:$name(이)라는 인재를 {$scoutType}하였습니다! <1>$date"; + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $name(이)라는 인재를 {$scoutType}하였습니다!"; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$name(이)라는 인재를 {$scoutType}"); + + $query = "select max(leader+power+intel) as lpi, avg(dedication) as ded,avg(experience) as exp, avg(dex0) as dex0, avg(dex10) as dex10, avg(dex20) as dex20, avg(dex30) as dex30, avg(dex40) as dex40 from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $avgGen = MYDB_fetch_array($result); + + // 체섭시 무장 20%, 지장 20%, 무지장 60% + // 마이너 무장 40%, 지장 40%, 무지장 20% + $type = rand() % 10; + if($admin[scenario] == 0) { + switch($type) { + case 0: case 1: + $leader = 65 + rand()%11; + $intel = 10 + rand()%6; + $power = 150 - $leader - $intel; + break; + case 2: case 3: + $leader = 65 + rand()%11; + $power = 10 + rand()%6; + $intel = 150 - $leader - $power; + break; + case 4: case 5: case 6: case 7: case 8: case 9: + $leader = 10 + rand()%6; + $power = 65 + rand()%11; + $intel = 150 - $leader - $power; + break; + } + } else { + switch($type) { + case 0: case 1: case 2: case 3: + $leader = 65 + rand()%11; + $intel = 10 + rand()%6; + $power = 150 - $leader - $intel; + break; + case 4: case 5: case 6: case 7: + $leader = 65 + rand()%11; + $power = 10 + rand()%6; + $intel = 150 - $leader - $power; + break; + case 8: case 9: + $leader = 10 + rand()%6; + $power = 65 + rand()%11; + $intel = 150 - $leader - $power; + break; + } + } + // 국내 최고능치 기준으로 랜덤성 스케일링 + if($avgGen[lpi] > 210) { + $leader = round($leader * $avgGen[lpi] / 150 * (60+rand()%31)/100); + $power = round($power * $avgGen[lpi] / 150 * (60+rand()%31)/100); + $intel = round($intel * $avgGen[lpi] / 150 * (60+rand()%31)/100); + } elseif($avgGen[lpi] > 180) { + $leader = round($leader * $avgGen[lpi] / 150 * (75+rand()%21)/100); + $power = round($power * $avgGen[lpi] / 150 * (75+rand()%21)/100); + $intel = round($intel * $avgGen[lpi] / 150 * (75+rand()%21)/100); + } else { + $leader = round($leader * $avgGen[lpi] / 150 * (90+rand()%11)/100); + $power = round($power * $avgGen[lpi] / 150 * (90+rand()%11)/100); + $intel = round($intel * $avgGen[lpi] / 150 * (90+rand()%11)/100); + } + $over1 = 0; + $over2 = 0; + $over3 = 0; + // 너무 높은 능치는 다른 능치로 분산 + if($leader > 90) { + $over1 = rand() % ($leader - 90) + 5; + $leader -= $over1; + } + if($power > 90) { + $over2 = rand() % ($power - 90) + 5; + $power -= $over2; + } + if($intel > 90) { + $over3 = rand() % ($intel - 90) + 5; + $intel -= $over3; + } + // 낮은 능치쪽으로 합산 + if($type == 0) { + $intel = $intel + $over1 + $over2 + $over3; + } else { + $power = $power + $over1 + $over2 + $over3; + } + // 너무 높은 능치는 제한 + if($leader > 95) { + $leader = 95; + } + if($power > 95) { + $power = 95; + } + if($intel > 95) { + $intel = 95; + } + + //인재추가 + $npc = 3; + $npcid = $admin[npccount]; + $npccount = 10000 + $npcid; + $npcmatch = rand() % 150 + 1; + $genid = "gen{$npccount}"; + $pw = md5("18071807"); + $picture = 'default.jpg'; + $turntime = getRandTurn($admin[turnterm]); + $personal = rand() % 10; + $bornyear = $admin[year]; + $deadyear = $admin[year] + 3; + $age = 20; + $specage = round((80 - $age)/12) + $age; + $specage2 = round((80 - $age)/3) + $age; + //$specage = $age + 1 + rand() % 3; + //$specage2 = $age + 5 + rand() % 5; + // 10년 ~ 50년 + $killturn = rand()%480 + 120; + + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation, + city,leader,power,intel,experience,dedication, + level,gold,rice,crew,crewtype,train,atmos,tnmt, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit,bornyear,deadyear, + dex0, dex10, dex20, dex30, dex40 + ) values ( + '$npccount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','$scoutNation', + '$general[city]','$leader','$power','$intel','$avgGen[exp]','$avgGen[ded]', + '$scoutLevel','100','100','0','0','0','0','0', + '0','0','0','$turntime','$killturn','$age','1','$personal','0','$specage','0','$specage2','', + '0','$bornyear','$deadyear', + '$avgGen[dex0]','$avgGen[dex10]','$avgGen[dex20]','$avgGen[dex30]','$avgGen[dex40]' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); + + $npcid++; + + //npccount + $query = "update game set npccount={$npcid} where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //국가 기술력 그대로 + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $gennum = $gencount; + if($gencount < 10) $gencount = 10; + + // 국가보정 + if($nation[type] == 11) { $term3 = round($term3 / 2); } + if($nation[type] == 12) { $term3 = $term3 * 2; } + + //국가 기술력 그대로 + $query = "update nation set totaltech=tech*'$gencount',gennum='$gennum' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + } + + //기술로 가격 + $gold = $general[gold] - $admin[develcost]; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 자금 감소 // 경험치 상승 // 공헌도, 명성 상승 + $query = "update general set resturn='SUCCESS',term='0',gold='$gold',leader2='$general[leader2]',power2='$general[power2]',intel2='$general[intel2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + $log = uniqueItem($connect, $general, $log); + } + + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_30($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select path from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $dist = distance($connect, $general[city], 3); + $command = DecodeCommand($general[turn0]); + $destination = $command[1]; + + $query = "select name from city where city='$destination'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $cost = $admin[develcost] * 5; + + if($dist[$destination] > 3) { + $log[count($log)] = "●{$admin[month]}월:거리가 멉니다. $destcity[name](으)로 강행 실패. <1>$date"; + } elseif($general[gold] < $cost) { + $log[count($log)] = "●{$admin[month]}월:자금이 부족합니다. $destcity[name](으)로 강행 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name](으)로 강행했습니다. <1>$date"; + $exp = 100; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + + // 이동, 경험치 상승, 명성 상승, 병력/사기/훈련 감소 + $general[leader2]++; + $query = "update general set resturn='SUCCESS',gold=gold-'$cost',city='$destination',crew=crew*0.95,atmos=atmos*0.9,train=train*0.95,leader2='$general[leader2]',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + if($general[level] == 12) { + $query = "select level from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($nation[level] == 0) { + $query = "update general set city='$destination' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select no,name from general where nation='$general[nation]' and level<'12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $genlog[0] = "●방랑군 세력이 $destcity[name](으)로 강행했습니다."; + for($j=0; $j < $gencount; $j++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $genlog); + } + } + } + + $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); +} + +function process_31($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $dist = distance($connect, $general[city], 2); + $command = DecodeCommand($general[turn0]); + $destination = $command[1]; + + $query = "select * from city where city='$destination'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + if(!$city) { + $log[count($log)] = "●{$admin[month]}월:없는 도시입니다. 첩보 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]*3) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $city[name]에 첩보 실패. <1>$date"; + } elseif($general[rice] < $admin[develcost]*3) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. $city[name]에 첩보 실패. <1>$date"; + } elseif($general[nation] == $city[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국입니다. $city[name]에 첩보 실패. <1>$date"; +// } elseif($dist[$destination] > 3) { +// $log[count($log)] = "●{$admin[month]}월:너무 멉니다. $city[name]에 첩보 실패. <1>$date"; + } else { + $query = "select crew,crewtype from general where city='$destination' and nation='$city[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $crew = 0; + for($i=0; $i < $gencount; $i++) { + $gen = MYDB_fetch_array($result); + if($gen[crew] != 0) { $typecount[$gen[crewtype]]++; $crew += $gen[crew]; } + } + if($dist[$destination] > 2) { + $alllog[count($alllog)] = "●{$admin[month]}월:누군가가 $city[name](을)를 살피는 것 같습니다."; + $log[count($log)] = "●{$admin[month]}월:$city[name]의 소문만 들을 수 있었습니다. <1>$date"; + $log[count($log)] = "【$city[name]】주민:$city[pop], 민심:$city[rate], 장수:$gencount, 병력:$crew"; + } elseif($dist[$destination] == 2) { + $alllog[count($alllog)] = "●{$admin[month]}월:누군가가 $city[name](을)를 살피는 것 같습니다."; + $log[count($log)] = "●{$admin[month]}월:$city[name]의 어느정도 정보를 얻었습니다. <1>$date"; + $log[count($log)] = "【첩보】농업:$city[agri], 상업:$city[comm], 치안:$city[secu], 수비:$city[def], 성벽:$city[wall]"; + $log[count($log)] = "【$city[name]】주민:$city[pop], 민심:$city[rate], 장수:$gencount, 병력:$crew"; + } else { + $alllog[count($alllog)] = "●{$admin[month]}월:누군가가 $city[name](을)를 살피는 것 같습니다."; + $log[count($log)] = "●{$admin[month]}월:$city[name]의 많은 정보를 얻었습니다. <1>$date"; + $msg[count($msg)] = "【병종】"; + for($i=0; $i <= 5; $i++) { if($typecount[$i] != 0) { $msg[count($msg)] = _String::SubStr(getTypename($i), 0, 2).":$typecount[$i]"; } } + for($i=10; $i <= 14; $i++) { if($typecount[$i] != 0) { $msg[count($msg)] = _String::SubStr(getTypename($i), 0, 2).":$typecount[$i]"; } } + for($i=20; $i <= 27; $i++) { if($typecount[$i] != 0) { $msg[count($msg)] = _String::SubStr(getTypename($i), 0, 2).":$typecount[$i]"; } } + for($i=30; $i <= 38; $i++) { if($typecount[$i] != 0) { $msg[count($msg)] = _String::SubStr(getTypename($i), 0, 2).":$typecount[$i]"; } } + for($i=40; $i <= 43; $i++) { if($typecount[$i] != 0) { $msg[count($msg)] = _String::SubStr(getTypename($i), 0, 2).":$typecount[$i]"; } } + + $count = ceil(count($msg) / 8) * 8; + for($i=$count; $i > 0; $i-=8) { + $log[count($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]}"; + } + $log[count($log)] = "【첩보】농업:$city[agri], 상업:$city[comm], 치안:$city[secu], 수비:$city[def], 성벽:$city[wall]"; + $log[count($log)] = "【$city[name]】주민:$city[pop], 민심:$city[rate], 장수:$gencount, 병력:$crew"; + + if($general[nation] != 0 && $city[nation] != 0) { + $query = "select name,tech from nation where nation='$city[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $yourTech = MYDB_fetch_array($result); + + $query = "select tech from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $myTech = MYDB_fetch_array($result); + + $diff = $yourTech[tech] - $myTech[tech]; // 차이 + if($diff >= 1000) { $log[count($log)] = "【$yourTech[name]】아국대비기술:↑압도"; } + elseif($diff >= 250) { $log[count($log)] = "【$yourTech[name]】아국대비기술:▲우위"; } + elseif($diff >= -250) { $log[count($log)] = "【$yourTech[name]】아국대비기술:↕대등"; } + elseif($diff >= -1000) { $log[count($log)] = "【$yourTech[name]】아국대비기술:▼열위"; } + else { $log[count($log)] = "【$yourTech[name]】아국대비기술:↓미미"; } + } + } + + // 자금 하락 // 경험치 상승 // 공헌도, 명성 상승 + $exp = rand() % 100 + 1; + $ded = rand() % 70 + 1; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $general[leader2]++; + $general[gold] -= $admin[develcost]*3; + $general[rice] -= $admin[develcost]*3; + $query = "update general set resturn='SUCCESS',gold='$general[gold]',rice='$general[rice]',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select spy from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + if($nation[spy] != "") { $citys = explode("|", $nation[spy]); } + for($i=0; $i < count($citys); $i++) { + if(floor($citys[$i]/10) == $destination) { + $exist = 1; + break; + } + } + // 기존 첩보 목록에 없으면 새로 등록, 있으면 갱신 + if($exist == 0) { + $citys[count($citys)] = $destination * 10 + 3; + } else { + $citys[$i] = $destination * 10 + 3; + } + $spy = implode("|", $citys); + $query = "update nation set spy='$spy' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_32($connect, &$general) { + global $_firing, $_basefiring, $_firingpower; + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $dist = distance($connect, $general[city], 5); + $command = DecodeCommand($general[turn0]); + $destination = $command[1]; + + $query = "select * from city where city='$destination'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $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); + + $query = "select state from diplomacy where me='$general[nation]' and you='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + if(!$destcity) { + $log[count($log)] = "●{$admin[month]}월:없는 도시입니다. 화계 실패. <1>$date"; + } elseif($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $destcity[name]에 화계 실패. <1>$date"; + } elseif($general[nation] != $city[nation] && $nation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $destcity[name]에 화계 실패. <1>$date"; + } elseif($city[supply] == 0 && $nation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $destcity[name]에 화계 실패. <1>$date"; + } elseif($destcity[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:공백지입니다. $destcity[name]에 화계 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]*5) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $destcity[name]에 화계 실패. <1>$date"; + } elseif($general[rice] < $admin[develcost]*5) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. $destcity[name]에 화계 실패. <1>$date"; + } elseif($general[nation] == $destcity[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국입니다. $destcity[name]에 화계 실패. <1>$date"; + } elseif($dip[state] >= 7) { + $log[count($log)] = "●{$admin[month]}월:불가침국입니다. $destcity[name]에 화계 실패. <1>$date"; + } else { + $query = "select intel,book from general where city='$destination' and nation='$destcity[nation]' order by intel desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $intelgen = MYDB_fetch_array($result); + + $ratio = round((($general[intel]+getBookEff($general[book]) - $intelgen[intel]-getBookEff($intelgen[book])) / $_firing - ($destcity[secu]/$destcity[secu2])/5 + $_basefiring)*100); + $ratio2 = rand() % 100; + + if($general[item] == 5) { + // 이추 사용 + $ratio += 10; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] == 6) { + // 향낭 사용 + $ratio += 20; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] >= 21 && $general[item] <= 22) { + // 육도, 삼략 사용 + $ratio += 20; + } + + // 특기보정 : 신산, 귀모 + if($general[special2] == 41) { $ratio += 10; } + if($general[special] == 31) { $ratio += 20; } + + // 국가보정 + if($nation[type] == 9) { $ratio += 10; } + + // 거리보정 + $ratio /= $dist[$destination]; + + if($ratio > $ratio2) { + $alllog[count($alllog)] = "●{$admin[month]}월:$destcity[name](이)가 불타고 있습니다."; + $log[count($log)] = "●{$admin[month]}월:$destcity[name]에 화계가 성공했습니다. <1>$date"; + + $destcity[agri] -= rand() % $_firingpower + $_firingbase; + $destcity[comm] -= rand() % $_firingpower + $_firingbase; + if($destcity[agri] < 0) { $destcity[agri] = 0; } + if($destcity[comm] < 0) { $destcity[comm] = 0; } + $query = "update city set state=32,agri='$destcity[agri]',comm='$destcity[comm]' where city='$destination'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set firenum=firenum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + TrickInjury($connect, $destination); + $exp = rand() % 100 + 201; + $ded = rand() % 70 + 141; + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name]에 화계가 실패했습니다. <1>$date"; + $exp = rand() % 100 + 1; + $ded = rand() % 70 + 1; + } + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $general[intel2]++; + $general[gold] -= $admin[develcost]*5; + $general[rice] -= $admin[develcost]*5; + $query = "update general set resturn='SUCCESS',gold='$general[gold]',rice='$general[rice]',intel2='$general[intel2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_33($connect, &$general) { + global $_firing, $_basefiring, $_firingpower; + global $_basegold, $_baserice; + //탈취는 0까지 무제한 + $_basegold = 0; $_baserice = 0; + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $dist = distance($connect, $general[city], 5); + $command = DecodeCommand($general[turn0]); + $destination = $command[1]; + + $query = "select name,level,nation,secu,secu2 from city where city='$destination'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $query = "select gold,rice from nation where nation='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $mynation = MYDB_fetch_array($result); + + $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); + + $query = "select state from diplomacy where me='$general[nation]' and you='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + if(!$destcity) { + $log[count($log)] = "●{$admin[month]}월:없는 도시입니다. 탈취 실패. <1>$date"; + } elseif($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $destcity[name]에 탈취 실패. <1>$date"; + } elseif($general[nation] != $city[nation] && $mynation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $destcity[name]에 탈취 실패. <1>$date"; + } elseif($city[supply] == 0 && $mynation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $destcity[name]에 탈취 실패. <1>$date"; + } elseif($destcity[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:공백지입니다. $destcity[name]에 탈취 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]*5) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $destcity[name]에 탈취 실패. <1>$date"; + } elseif($general[rice] < $admin[develcost]*5) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. $destcity[name]에 탈취 실패. <1>$date"; + } elseif($general[nation] == $destcity[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국입니다. $destcity[name]에 탈취 실패. <1>$date"; + } elseif($dip[state] >= 7) { + $log[count($log)] = "●{$admin[month]}월:불가침국입니다. $destcity[name]에 탈취 실패. <1>$date"; + } else { + $query = "select power,weap from general where city='$destination' and nation='$destcity[nation]' order by power desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $powergen = MYDB_fetch_array($result); + + $ratio = round((($general[power]+getWeapEff($general[weap]) - $powergen[power]-getWeapEff($powergen[weap])) / $_firing - ($destcity[secu]/$destcity[secu2])/5 + $_basefiring)*100); + $ratio2 = rand() % 100; + + if($general[item] == 5) { + // 이추 사용 + $ratio += 10; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] == 6) { + // 향낭 사용 + $ratio += 20; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] >= 21 && $general[item] <= 22) { + // 육도, 삼략 사용 + $ratio += 20; + } + + // 특기보정 : 신산, 귀모 + if($general[special2] == 41) { $ratio += 10; } + if($general[special] == 31) { $ratio += 20; } + + // 국가보정 + if($mynation[type] == 9) { $ratio += 10; } + + // 거리보정 + $ratio /= $dist[$destination]; + + if($ratio > $ratio2) { + $alllog[count($alllog)] = "●{$admin[month]}월:$destcity[name]에서 금과 쌀을 도둑맞았습니다."; + $log[count($log)] = "●{$admin[month]}월:$destcity[name]에 탈취가 성공했습니다. <1>$date"; + + // 탈취 최대 400 * 8 + $gold = (rand() % $_firingpower + $_firingbase) * $destcity[level]; + $rice = (rand() % $_firingpower + $_firingbase) * $destcity[level]; + + $nation[gold] -= $gold; + $nation[rice] -= $rice; + if($nation[gold] < $_basegold) { $gold += ($nation[gold] - $_basegold); $nation[gold] = $_basegold; } + if($nation[rice] < $_baserice) { $rice += ($nation[rice] - $_baserice); $nation[rice] = $_baserice; } + $query = "update nation set gold='$nation[gold]',rice='$nation[rice]' where nation='$destcity[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set state=34 where city='$destination'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set firenum=firenum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 본국으로 회수, 재야이면 본인이 소유 + if($general[nation] != 0) { + $query = "select gold,rice from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + $nation[gold] += $gold; + $nation[rice] += $rice; + $query = "update nation set gold='$nation[gold]',rice='$nation[rice]' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $general[gold] += $gold; + $general[rice] += $rice; + $query = "update general set gold='$general[gold]',rice='$general[rice]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + $log[count($log)] = "●금$gold 쌀$rice을 획득했습니다."; + +// TrickInjury($connect, $destination); + $exp = rand() % 100 + 201; + $ded = rand() % 70 + 141; + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name]에 탈취가 실패했습니다. <1>$date"; + $exp = rand() % 100 + 1; + $ded = rand() % 70 + 1; + } + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $general[power2]++; + $general[gold] -= $admin[develcost]*5; + $general[rice] -= $admin[develcost]*5; + $query = "update general set resturn='SUCCESS',gold='$general[gold]',rice='$general[rice]',power2='$general[power2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_34($connect, &$general) { + global $_firing, $_basefiring, $_firingpower; + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $dist = distance($connect, $general[city], 5); + $command = DecodeCommand($general[turn0]); + $destination = $command[1]; + + $query = "select name,nation,def,wall,secu,secu2 from city where city='$destination'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $mynation = MYDB_fetch_array($result); + + $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); + + $query = "select state from diplomacy where me='$general[nation]' and you='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + if(!$destcity) { + $log[count($log)] = "●{$admin[month]}월:없는 도시입니다. 파괴 실패. <1>$date"; + } elseif($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $destcity[name]에 파괴 실패. <1>$date"; + } elseif($general[nation] != $city[nation] && $mynation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $destcity[name]에 파괴 실패. <1>$date"; + } elseif($city[supply] == 0 && $mynation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $destcity[name]에 파괴 실패. <1>$date"; + } elseif($destcity[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:공백지입니다. $destcity[name]에 파괴 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]*5) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $destcity[name]에 파괴 실패. <1>$date"; + } elseif($general[rice] < $admin[develcost]*5) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. $destcity[name]에 파괴 실패. <1>$date"; + } elseif($general[nation] == $destcity[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국입니다. $destcity[name]에 파괴 실패. <1>$date"; + } elseif($dip[state] >= 7) { + $log[count($log)] = "●{$admin[month]}월:불가침국입니다. $destcity[name]에 파괴 실패. <1>$date"; + } else { + $query = "select power,weap from general where city='$destination' and nation='$destcity[nation]' order by power desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $powergen = MYDB_fetch_array($result); + + $ratio = round((($general[power]+getWeapEff($general[weap]) - $powergen[power]-getWeapEff($powergen[weap])) / $_firing - ($destcity[secu]/$destcity[secu2])/5 + $_basefiring)*100); + $ratio2 = rand() % 100; + + if($general[item] == 5) { + // 이추 사용 + $ratio += 10; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] == 6) { + // 향낭 사용 + $ratio += 20; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] >= 21 && $general[item] <= 22) { + // 육도, 삼략 사용 + $ratio += 20; + } + + // 특기보정 : 신산, 귀모 + if($general[special2] == 41) { $ratio += 10; } + if($general[special] == 31) { $ratio += 20; } + + // 국가보정 + if($mynation[type] == 9) { $ratio += 10; } + + // 거리보정 + $ratio /= $dist[$destination]; + + if($ratio > $ratio2) { + $alllog[count($alllog)] = "●{$admin[month]}월:누군가가 $destcity[name]의 성벽을 허물었습니다."; + $log[count($log)] = "●{$admin[month]}월:$destcity[name]에 파괴가 성공했습니다. <1>$date"; + + // 파괴 + $destcity[def] -= rand() % $_firingpower + $_firingbase; + $destcity[wall] -= rand() % $_firingpower + $_firingbase; + if($destcity[def] < 100) { $destcity[def] = 100; } + if($destcity[wall] < 100) { $destcity[wall] = 100; } + $query = "update city set state=34,def='$destcity[def]',wall='$destcity[wall]' where city='$destination'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set firenum=firenum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + TrickInjury($connect, $destination); + $exp = rand() % 100 + 201; + $ded = rand() % 70 + 141; + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name]에 파괴가 실패했습니다. <1>$date"; + $exp = rand() % 100 + 1; + $ded = rand() % 70 + 1; + } + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $general[power2]++; + $general[gold] -= $admin[develcost]*5; + $general[rice] -= $admin[develcost]*5; + $query = "update general set resturn='SUCCESS',gold='$general[gold]',rice='$general[rice]',power2='$general[power2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_35($connect, &$general) { + global $_firing, $_basefiring, $_firingpower; + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $dist = distance($connect, $general[city], 5); + $command = DecodeCommand($general[turn0]); + $destination = $command[1]; + + $query = "select name,nation,rate,secu,secu2 from city where city='$destination'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $mynation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $mynation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $mynation[level]; + } else { + $lbonus = 0; + } + + $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); + + $query = "select state from diplomacy where me='$general[nation]' and you='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + if(!$destcity) { + $log[count($log)] = "●{$admin[month]}월:없는 도시입니다. 선동 실패. <1>$date"; + } elseif($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $destcity[name]에 선동 실패. <1>$date"; + } elseif($general[nation] != $city[nation] && $mynation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $destcity[name]에 선동 실패. <1>$date"; + } elseif($city[supply] == 0 && $mynation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $destcity[name]에 선동 실패. <1>$date"; + } elseif($destcity[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:공백지입니다. $destcity[name]에 선동 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]*5) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $destcity[name]에 선동 실패. <1>$date"; + } elseif($general[rice] < $admin[develcost]*5) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. $destcity[name]에 선동 실패. <1>$date"; + } elseif($general[nation] == $destcity[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국입니다. $destcity[name]에 선동 실패. <1>$date"; + } elseif($dip[state] >= 7) { + $log[count($log)] = "●{$admin[month]}월:불가침국입니다. $destcity[name]에 선동 실패. <1>$date"; + } else { + $query = "select ROUND(leader*(100-injury)/100)+horse as sum,horse from general where city='$destination' and nation='$destcity[nation]' order by sum desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + + $ratio = round(((floor($general[leader] * (100 - $general[injury])/100)+getHorseEff($general[horse])+$lbonus - ($gen[sum]-$gen[horse]+getHorseEff($gen[horse]))) / $_firing - ($destcity[secu]/$destcity[secu2])/5 + $_basefiring)*100); + $ratio2 = rand() % 100; + + if($general[item] == 5) { + // 이추 사용 + $ratio += 10; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] == 6) { + // 향낭 사용 + $ratio += 20; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] >= 21 && $general[item] <= 22) { + // 육도, 삼략 사용 + $ratio += 20; + } + + // 특기보정 : 신산, 귀모 + if($general[special2] == 41) { $ratio += 10; } + if($general[special] == 31) { $ratio += 20; } + + // 국가보정 + if($mynation[type] == 9) { $ratio += 10; } + + // 거리보정 + $ratio /= $dist[$destination]; + + if($ratio > $ratio2) { + $alllog[count($alllog)] = "●{$admin[month]}월:$destcity[name]의 백성들이 동요하고 있습니다."; + $log[count($log)] = "●{$admin[month]}월:$destcity[name]에 선동이 성공했습니다. <1>$date"; + + // 선동 최대 10 + $destcity[secu] -= rand() % round($_firingpower/2) + $_firingbase; + $destcity[rate] -= rand() % round($_firingpower/50) + $_firingbase/50; + if($destcity[secu] < 0) { $destcity[secu] = 0; } + if($destcity[rate] < 0) { $destcity[rate] = 0; } + $query = "update city set state=32,rate='$destcity[rate]',secu='$destcity[secu]' where city='$destination'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set firenum=firenum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + TrickInjury($connect, $destination); + $exp = rand() % 100 + 201; + $ded = rand() % 70 + 141; + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name]에 선동이 실패했습니다. <1>$date"; + $exp = rand() % 100 + 1; + $ded = rand() % 70 + 1; + } + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $general[leader2]++; + $general[gold] -= $admin[develcost]*5; + $general[rice] -= $admin[develcost]*5; + $query = "update general set resturn='SUCCESS',gold='$general[gold]',rice='$general[rice]',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_36($connect, &$general) { + global $_firing, $_basefiring, $_firingpower; + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $dist = distance($connect, $general[city], 5); + $command = DecodeCommand($general[turn0]); + $destination = $command[1]; + + $query = "select * from city where city='$destination'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $query = "select level,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $mynation = MYDB_fetch_array($result); + + if($general[level] == 12) { + $lbonus = $mynation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $mynation[level]; + } else { + $lbonus = 0; + } + + $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); + + $query = "select state from diplomacy where me='$general[nation]' and you='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + if(!$destcity) { + $log[count($log)] = "●{$admin[month]}월:없는 도시입니다. 기습 실패. <1>$date"; + } elseif($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. $destcity[name]에 기습 실패. <1>$date"; + } elseif($general[nation] != $city[nation] && $mynation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $destcity[name]에 기습 실패. <1>$date"; + } elseif($city[supply] == 0 && $mynation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $destcity[name]에 기습 실패. <1>$date"; + } elseif($destcity[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:공백지입니다. $destcity[name]에 기습 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]*5) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. $destcity[name]에 기습 실패. <1>$date"; + } elseif($general[rice] < $admin[develcost]*5) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. $destcity[name]에 기습 실패. <1>$date"; + } elseif($general[nation] == $destcity[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국입니다. $destcity[name]에 기습 실패. <1>$date"; + } elseif($dip[state] >= 7) { + $log[count($log)] = "●{$admin[month]}월:불가침국입니다. $destcity[name]에 기습 실패. <1>$date"; + } else { + $query = "select ROUND((leader+intel+power)*(100-injury)/100)+weap+horse+book as sum,weap,horse,book from general where city='$destination' and nation='$destcity[nation]' order by sum desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + + $ratio = round(((floor(($general[leader]+$general[intel]+$general[power]) * (100 - $general[injury])/100)+getWeapEff($general[weap])+getHorseEff($general[horse])+$lbonus+getBookEff($general[book]) - ($gen[sum]-$gen[weap]-$gen[horse]-$gen[book]+getWeapEff($gen[weap])+getHorseEff($gen[horse])+getBookEff($gen[book]))) / $_firing - ($destcity[secu]/$destcity[secu2])/5 + $_basefiring)*100); + $ratio2 = rand() % 100; + + if($general[item] == 5) { + // 이추 사용 + $ratio += 10; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] == 6) { + // 향낭 사용 + $ratio += 20; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] >= 21 && $general[item] <= 22) { + // 육도, 삼략 사용 + $ratio += 20; + } + + // 특기보정 : 신산, 귀모 + if($general[special2] == 41) { $ratio += 10; } + if($general[special] == 31) { $ratio += 20; } + + // 국가보정 + if($mynation[type] == 9) { $ratio += 10; } + + // 거리보정 + $ratio /= $dist[$destination]; + + if($ratio > $ratio2) { + $alllog[count($alllog)] = "●{$admin[month]}월:$destcity[name](이)가 누군가에게 공격 받았습니다."; + $log[count($log)] = "●{$admin[month]}월:$destcity[name]에 기습이 성공했습니다. <1>$date"; + + // 기습 + $destcity[agri] -= rand() % round($_firingpower/2) + $_firingbase; + $destcity[comm] -= rand() % round($_firingpower/2) + $_firingbase; + $destcity[secu] -= rand() % round($_firingpower/4) + $_firingbase; + $destcity[def] -= rand() % round($_firingpower/2) + $_firingbase; + $destcity[wall] -= rand() % round($_firingpower/2) + $_firingbase; + $destcity[rate] -= rand() % round($_firingpower/50) + $_firingbase/50; + if($destcity[agri] < 0) { $destcity[agri] = 0; } + if($destcity[comm] < 0) { $destcity[comm] = 0; } + if($destcity[secu] < 0) { $destcity[secu] = 0; } + if($destcity[def] < 0) { $destcity[def] = 0; } + if($destcity[wall] < 0) { $destcity[wall] = 0; } + if($destcity[rate] < 0) { $destcity[rate] = 0; } + $query = "update city set state=32,agri='$destcity[agri]',comm='$destcity[comm]',secu='$destcity[secu]',def='$destcity[def]',wall='$destcity[wall]',rate='$destcity[rate]' where city='$destination'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set firenum=firenum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + TrickInjury($connect, $destination); + $exp = rand() % 100 + 201; + $ded = rand() % 70 + 141; + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name]에 기습이 실패했습니다. <1>$date"; + $exp = rand() % 100 + 1; + $ded = rand() % 70 + 1; + } + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $general[leader2]++; + $general[intel2]++; + $general[power2]++; + $general[gold] -= $admin[develcost]*5; + $general[rice] -= $admin[develcost]*5; + $query = "update general set resturn='SUCCESS',gold='$general[gold]',rice='$general[rice]',leader2='$general[leader2]',intel2='$general[intel2]',power2='$general[power2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_41($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $ratio = rand() % 100; + $exp = $general[crew] / 400; + $crewexp = $general[crew] * $general[train] * $general[atmos] / 20 / 10000; + // 랜덤치 + $exp = round($exp * (80 + rand() % 41)/100); // 80 ~ 120% + $crewexp = round($crewexp * (80 + rand() % 41)/100); // 80 ~ 120% + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ratio = CharCritical($ratio, $general[personal]); + + if($general[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 단련 실패. <1>$date"; + } elseif($general[gold] < $admin[develcost]) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. 단련 실패. <1>$date"; + } elseif($general[rice] < $admin[develcost]) { + $log[count($log)] = "●{$admin[month]}월:군량이 모자랍니다. 단련 실패. <1>$date"; + } elseif($general[train] < 40) { + $log[count($log)] = "●{$admin[month]}월:훈련이 너무 낮습니다. 단련 실패. <1>$date"; + } elseif($general[atmos] < 40) { + $log[count($log)] = "●{$admin[month]}월:사기가 너무 낮습니다. 단련 실패. <1>$date"; + } elseif($crewexp == 0) { + $log[count($log)] = "●{$admin[month]}월:병사가 모자랍니다. 단련 실패. <1>$date"; + } else { + $type = floor($general[crewtype] / 10) * 10; + switch($type) { + case 0: $crewstr = '보병'; break; + case 1: $crewstr = '궁병'; break; + case 2: $crewstr = '기병'; break; + case 3: $crewstr = '귀병'; break; + case 4: $crewstr = '차병'; break; + } + + if($ratio < 33) { + // 숙련도 증가 + addGenDex($connect, $general[no], $general[crewtype], $crewexp); + $log[count($log)] = "●{$admin[month]}월:$crewstr 숙련도 향상이 지지부진했습니다. <1>$date"; + } elseif($ratio < 66) { + $exp = $exp * 2; + // 숙련도 증가 + addGenDex($connect, $general[no], $general[crewtype], $crewexp * 2); + $log[count($log)] = "●{$admin[month]}월:$crewstr 숙련도가 향상되었습니다. <1>$date"; + } else { + $exp = $exp * 3; + // 숙련도 증가 + addGenDex($connect, $general[no], $general[crewtype], $crewexp * 3); + $log[count($log)] = "●{$admin[month]}월:$crewstr 숙련도가 일취월장했습니다. <1>$date"; + } + + // 경험치 상승 // 명성 상승 + $query = "update general set resturn='SUCCESS',gold=gold-'$admin[develcost]',rice=rice-'$admin[develcost]',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + pushGenLog($general, $log); +} + +function process_42($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $type = rand() % 27 + 1; + $exp = 30; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $exp2 = $exp * 2; + + switch($type) { + case 1: + $log[count($log)] = "●{$admin[month]}월:지나가는 행인에게서 금을 300 받았습니다. <1>$date"; + // 자금 상승 // 명성 상승 + $query = "update general set resturn='SUCCESS',gold=gold+300,experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 2: + $log[count($log)] = "●{$admin[month]}월:지나가는 행인에게서 쌀을 300 받았습니다. <1>$date"; + // 군량 상승 // 명성 상승 + $query = "update general set resturn='SUCCESS',rice=rice+300,experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 3: + $log[count($log)] = "●{$admin[month]}월:어느 명사와 설전을 벌여 멋지게 이겼습니다. <1>$date"; + // 경험치 상승 // 명성 상승 + $general[intel2] += 2; + $query = "update general set resturn='SUCCESS',intel2='$general[intel2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 4: + $log[count($log)] = "●{$admin[month]}월:명사와 설전을 벌였으나 망신만 당했습니다. <1>$date"; + // 명성 상승 + $query = "update general set resturn='SUCCESS',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 5: + $log[count($log)] = "●{$admin[month]}월:동네 장사와 힘겨루기를 하여 멋지게 이겼습니다. <1>$date"; + // 경험치 상승 // 명성 상승 + $general[power2] += 2; + $query = "update general set resturn='SUCCESS',power2='$general[power2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 6: + $log[count($log)] = "●{$admin[month]}월:동네 장사와 힘겨루기를 했지만 망신만 당했습니다. <1>$date"; + // 명성 상승 + $query = "update general set resturn='SUCCESS',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 7: + $log[count($log)] = "●{$admin[month]}월:산적과 싸워 금 300을 빼앗았습니다. <1>$date"; + // 자금 상승 // 경험치 상승 // 명성 상승 + $general[power2] += 2; + $query = "update general set resturn='SUCCESS',gold=gold+300,power2='$general[power2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 8: + $log[count($log)] = "●{$admin[month]}월:산적을 만나 금 200을 빼앗겼습니다. <1>$date"; + $general[gold] -= 200; + if($general[gold] <= 0) { $general[gold] = 0; } + // 자금 하락 // 경험 상승 + $query = "update general set resturn='SUCCESS',gold='$general[gold]',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 9: + $log[count($log)] = "●{$admin[month]}월:호랑이를 잡아 고기 300을 얻었습니다. <1>$date"; + // 군량 상승 // 경험치 상승 + $general[power2] += 2; + $query = "update general set resturn='SUCCESS',rice=rice+300,power2='$general[power2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 10: + $log[count($log)] = "●{$admin[month]}월:호랑이에게 물려 다쳤습니다. <1>$date"; + // 경험치 하락 // 명성 상승 + $injury = rand() % 10 + 10; + $general[power2]--; + $query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='$general[power2]',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 11: + $log[count($log)] = "●{$admin[month]}월:곰을 잡아 고기 300을 얻었습니다. <1>$date"; + // 군량 상승 // 경험치 상승 // 명성 상승 + $general[power2] += 2; + $query = "update general set resturn='SUCCESS',rice=rice+300,power2='$general[power2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 12: + $log[count($log)] = "●{$admin[month]}월:곰에게 할퀴어 다쳤습니다. <1>$date"; + // 경험치 하락 // 명성 상승 + $injury = rand() % 10 + 10; + $general[power2]--; + $query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='$general[power2]',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 13: + $log[count($log)] = "●{$admin[month]}월:주점에서 사람들과 어울려 술을 마셨습니다. <1>$date"; + // 명성 상승 + $query = "update general set resturn='SUCCESS',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 14: + $log[count($log)] = "●{$admin[month]}월:위기에 빠진 사람을 구해주었습니다. <1>$date"; + // 명성 상승 + $query = "update general set resturn='SUCCESS',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 15: + $log[count($log)] = "●{$admin[month]}월:위기에 빠진 사람을 구해주다가 다쳤습니다. <1>$date"; + // 경험치 하락 // 명성 상승 + $injury = rand() % 10 + 10; + $general[power2]--; + $query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='$general[power2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 16: + $log[count($log)] = "●{$admin[month]}월:돈을 빌려주었다가 이자 300을 받았습니다. <1>$date"; + // 경험치 상승 // 명성 상승 + $general[intel2]++; + $query = "update general set resturn='SUCCESS',gold=gold+300,intel2='$general[intel2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 17: + $log[count($log)] = "●{$admin[month]}월:돈을 200 빌려주었다가 떼어먹혔습니다. <1>$date"; + $general[gold] -= 200; + if($general[gold] <= 0) { $general[gold] = 0; } + // 명성 상승 + $query = "update general set resturn='SUCCESS',gold='$general[gold]',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 18: + $log[count($log)] = "●{$admin[month]}월:쌀을 빌려주었다가 이자 300을 받았습니다. <1>$date"; + // 경험치 상승 // 명성 상승 + $general[intel2]++; + $query = "update general set resturn='SUCCESS',rice=rice+300,intel2='$general[intel2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 19: + $log[count($log)] = "●{$admin[month]}월:쌀을 200 빌려주었다가 떼어먹혔습니다. <1>$date"; + $general[rice] -= 200; + if($general[rice] <= 0) { $general[rice] = 0; } + // 명성 상승 + $query = "update general set resturn='SUCCESS',rice='$general[rice]',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 20: + $log[count($log)] = "●{$admin[month]}월:거리에서 글 모르는 아이들을 모아 글을 가르쳤습니다. <1>$date"; + // 경험치 상승 // 명성 상승 + $general[intel2] += 2; + $query = "update general set resturn='SUCCESS',intel2='$general[intel2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 21: + $log[count($log)] = "●{$admin[month]}월:백성들에게 현인의 가르침을 설파했습니다. <1>$date"; + // 경험치 상승 // 명성 상승 + $general[leader2] += 2; + $query = "update general set resturn='SUCCESS',leader2='$general[leader2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 22: + $log[count($log)] = "●{$admin[month]}월:어느 집의 무너진 울타리를 고쳐주었습니다. <1>$date"; + // 경험치 상승 // 명성 상승 + $general[power2] += 2; + $query = "update general set resturn='SUCCESS',power2='$general[power2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 23: + $log[count($log)] = "●{$admin[month]}월:어느 집의 도망친 가축을 되찾아 주었습니다. <1>$date"; + // 경험치 상승 // 명성 상승 + $general[leader2] += 2; + $query = "update general set resturn='SUCCESS',leader2='$general[leader2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 24: + $log[count($log)] = "●{$admin[month]}월:호랑이에게 물려 크게 다쳤습니다. <1>$date"; + // 경험치 하락 // 명성 상승 + $injury = rand() % 30 + 20; + $general[power2]--; + $query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='$general[power2]',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 25: + $log[count($log)] = "●{$admin[month]}월:곰에게 할퀴어 크게 다쳤습니다. <1>$date"; + // 경험치 하락 // 명성 상승 + $injury = rand() % 30 + 20; + $general[power2]--; + $query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='$general[power2]',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 26: + $log[count($log)] = "●{$admin[month]}월:위기에 빠진 사람을 구하다가 죽을뻔 했습니다. <1>$date"; + // 경험치 하락 // 명성 상승 + $injury = rand() % 50 + 30; + $general[power2]--; + $query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='$general[power2]',experience=experience+'$exp2' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + default: + $log[count($log)] = "●{$admin[month]}월:아무일도 일어나지 않았습니다. <1>$date"; + // 명성 상승 + $query = "update general set resturn='SUCCESS',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + } + + $log = checkAbility($connect, $general, $log); + pushGenLog($general, $log); +} + +function process_43($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $command = DecodeCommand($general[turn0]); + $what = $command[3]; + $who = $command[2]; + $amount = $command[1]; + $amount *= 100; // 100~10000까지 + + if($amount > 10000) { $amount = 10000; } + if($amount < 100) { $amount = 100; } + if($what == 1) { $dtype = "금"; } + elseif($what == 2) { $dtype = "쌀"; } + else { $what = 2; $dtype = "쌀"; } + + $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); + + $query = "select no,name,nation,gold,rice from general where no='$who'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen = MYDB_fetch_array($result); + + if($what == 1 && $general[gold] < $amount) { $amount = $general[gold]; } + if($what == 2 && $general[rice] < $amount) { $amount = $general[rice]; } + + if(!$gen) { + $log[count($log)] = "●{$admin[month]}월:없는 장수입니다. 증여 실패. <1>$date"; + } elseif($what == 1 && $general[gold] <= 0) { + $log[count($log)] = "●{$admin[month]}월:자금이 없습니다. 증여 실패. <1>$date"; + } elseif($what == 2 && $general[rice] <= 0) { + $log[count($log)] = "●{$admin[month]}월:군량이 없습니다. 증여 실패. <1>$date"; + } elseif($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야는 불가능합니다. 증여 실패. <1>$date"; + } elseif($general[nation] != $city[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 증여 실패. <1>$date"; + } elseif($general[nation] != $gen[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국 장수가 아닙니다. 증여 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 증여 실패. <1>$date"; + } else { + $genlog[count($genlog)] = "●{$admin[month]}월:$general[name]에게서 $dtype $amount을 증여 받았습니다."; + $log[count($log)] = "●{$admin[month]}월:$gen[name]에게 $dtype $amount을 증여했습니다. <1>$date"; + + if($what == 1) { + $gen[gold] += $amount; + $query = "update general set gold='$gen[gold]' where no='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $general[gold] -= $amount; + $query = "update general set gold='$general[gold]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($what == 2) { + $gen[rice] += $amount; + $query = "update general set rice='$gen[rice]' where no='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $general[rice] -= $amount; + $query = "update general set rice='$general[rice]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + $exp = 70; + $ded = 100; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 경험치 상승 // 공헌도, 명성 상승 + $general[leader2]++; + $query = "update general set resturn='SUCCESS',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); + pushGenLog($gen, $genlog); +} + +function process_44($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select name,gold,rice from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $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); + + $command = DecodeCommand($general[turn0]); + $what = $command[2]; + $amount = $command[1]; + $amount *= 100; // 100~10000까지 + + if($amount > 10000) { $amount = 10000; } + if($amount < 100) { $amount = 100; } + if($what == 1) { + $dtype = "금"; + if($general[gold] < $amount) { $amount = $general[gold]; } + } elseif($what == 2) { + $dtype = "쌀"; + if($general[rice] < $amount) { $amount = $general[rice]; } + } else { + $what = 2; + $dtype = "쌀"; + if($general[rice] < $amount) { $amount = $general[rice]; } + } + + if($general[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 헌납 실패. <1>$date"; + } elseif($what == 1 && $general[gold] <= 0) { + $log[count($log)] = "●{$admin[month]}월:자금이 없습니다. 헌납 실패. <1>$date"; + } elseif($what == 2 && $general[rice] <= 0) { + $log[count($log)] = "●{$admin[month]}월:군량이 없습니다. 헌납 실패. <1>$date"; + } elseif($general[nation] != $city[nation] && $mynation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 증여 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 증여 실패. <1>$date"; + } else { +// $alllog[count($alllog)] = "●{$admin[month]}월:$nation[name]에서 장수들이 재산을 헌납 하고 있습니다."; + $log[count($log)] = "●{$admin[month]}월: $dtype $amount을 헌납했습니다. <1>$date"; + + if($what == 1) { + $general[gold] -= $amount; + $query = "update general set gold='$general[gold]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $nation[gold] += $amount; + $query = "update nation set gold='$nation[gold]' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($what == 2) { + $general[rice] -= $amount; + $query = "update general set rice='$general[rice]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $nation[rice] += $amount; + $query = "update nation set rice='$nation[rice]' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + $exp = 70; + $ded = 100; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 경험치 상승 // 공헌도, 명성 상승 + $general[leader2]++; + $query = "update general set resturn='SUCCESS',leader2='$general[leader2]',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + } + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_45($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select name,chemi from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($general[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야입니다. 하야 실패. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3) { + $log[count($log)] = "●{$admin[month]}월:초반제한중 하야는 불가능합니다. 하야 실패. <1>$date"; + } elseif($general[level] == 12) { + $log[count($log)] = "●{$admin[month]}월:군주입니다. 하야 실패. <1>$date"; + } else { + $exp = 100; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $query = "select no from diplomacy where me='$general[nation]' and state>='3' and state<='4'"; + $dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipcount1 = MYDB_num_rows($dipresult); + + $query = "select no from diplomacy where me='$general[nation]' and state>='5' and state<='6'"; + $dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipcount2 = MYDB_num_rows($dipresult); + + $gold = 0; + $rice = 0; + // 금쌀1000이상은 남김 + if($general[gold] > 1000) { + $gold = $general[gold] - 1000; + $general[gold] = 1000; + } + if($general[rice] > 1000) { + $rice = $general[rice] - 1000; + $general[rice] = 1000; + } + + if($dipcount1 > 0) { + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 통합에 반대하며 $nation[name](을)를 떠났습니다."; + $log[count($log)] = "●{$admin[month]}월:통합에 반대하며 $nation[name]에서 떠났습니다. <1>$date"; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:통합에 반대하며 $nation[name](을)를 떠남"); + + // 국적 바꾸고 등급 재야로 + $query = "update general set resturn='SUCCESS',belong=0,nation=0,level=0,makelimit='12',gold='$general[gold]',rice='$general[rice]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } elseif($dipcount2 > 0) { + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 합병에 반대하며 $nation[name](을)를 떠났습니다."; + $log[count($log)] = "●{$admin[month]}월:합병에 반대하며 $nation[name]에서 떠났습니다. <1>$date"; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:합병에 반대하며 $nation[name](을)를 떠남"); + + // 국적 바꾸고 등급 재야로 + $query = "update general set resturn='SUCCESS',belong=0,nation=0,level=0,makelimit='12',gold='$general[gold]',rice='$general[rice]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $nation[name]에서 하야했습니다."; + $log[count($log)] = "●{$admin[month]}월:$nation[name]에서 하야했습니다. <1>$date"; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$nation[name]에서 하야"); + + // 국적 바꾸고 등급 재야로 // 명성/공헌 N*10% 감소 + $query = "update general set resturn='SUCCESS',belong=0,betray=betray+1,nation=0,level=0,experience=experience*(1-0.1*betray),dedication=dedication*(1-0.1*betray),makelimit='12',gold='$general[gold]',rice='$general[rice]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + //도시의 태수, 군사, 시중직도 초기화 + $query = "update city set gen1='0' where gen1='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen2='0' where gen2='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen3='0' where gen3='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select no from troop where troop='$general[troop]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $troop = MYDB_fetch_array($result); + + //부대장일 경우 + if($troop[no] == $general[no]) { + // 모두 탈퇴 + $query = "update general set troop='0' where troop='$general[troop]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 부대 삭제 + $query = "delete from troop where troop='$general[troop]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update general set troop='0' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + //국가 기술력 그대로 + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $gennum = $gencount; + if($gencount < 10) $gencount = 10; + + $nation[chemi] -= 1; + if($nation[chemi] < 0) { $nation[chemi] = 0; } + + $query = "update nation set totaltech=tech*'$gencount',gennum='$gennum',chemi='$nation[chemi]',gold=gold+'$gold',rice=rice+'$rice' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_46($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select * from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + $query = "select nation from nation where name='$general[makenation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($result); + + $command = DecodeCommand($general[turn0]); + $color = $command[1]; + $type = $command[2]; // 1 ~ 13 + + $colors = GetNationColors(); + if($color >= count($colors)) { $color = 0; } + $color = $colors[$color]; + + if($type < 1) { $type = 9; } + elseif($type > 13) { $type = 9; } + + if($gencount < 2) { + $log[count($log)] = "●{$admin[month]}월:수하 장수가 부족합니다. 건국 실패. <1>$date"; + } elseif($admin[year] >= $admin[startyear]+2) { + $log[count($log)] = "●{$admin[month]}월:건국 기간이 지났습니다. 건국 실패. <1>$date"; + } elseif($city[nation] != 0) { + $log[count($log)] = "●{$admin[month]}월:공백지가 아닙니다. 건국 실패. <1>$date"; + } elseif($nationcount > 0) { + $log[count($log)] = "●{$admin[month]}월:존재하는 국가명입니다. 건국 실패. <1>$date"; + } elseif($general[makelimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:재야가 된지 12시간이 지나야 합니다. 건국 실패. <1>$date"; + } elseif($general[level] != 12) { + $log[count($log)] = "●{$admin[month]}월:군주가 아닙니다. 건국 실패. <1>$date"; + } elseif($city[level] != 5 && $city[level] != 6) { + $log[count($log)] = "●{$admin[month]}월:중, 소 도시에서만 가능합니다. 건국 실패. <1>$date"; + } else { + $query = "update nation set name='$general[makenation]',color='$color',level=1,type='$type',capital='$general[city]' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select nation,name,history from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + // 현 도시 소속지로 + $query = "update city set nation='$nation[nation]',conflict='',conflict2='' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[count($log)] = "●{$admin[month]}월:$nation[name](을)를 건국하였습니다. <1>$date"; + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $city[name]에 국가를 건설하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【건국】".getNationType($type)." $nation[name](이)가 새로이 등장하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$nation[name](을)를 건국"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $nation[name](을)를 건국"); + + $exp = 1000; + $ded = 1000; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 명성 상승 + $query = "update general set resturn='SUCCESS',dedication=dedication+'$ded', experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = uniqueItem($connect, $general, $log, 3); + } + + pushHistory($connect, $history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_47($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select name,level from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + //현재 외교 진행중(평시, 불가침만 제외)일때 + $query = "select state from diplomacy where me='$general[nation]' and state!='2' and state!='7'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipcount = MYDB_num_rows($result); + + + if($general[level] != 12) { + $log[count($log)] = "●{$admin[month]}월:군주가 아닙니다. <1>$date"; + } elseif($admin[year] < $admin[startyear]+3) { + $log[count($log)] = "●{$admin[month]}월:초반제한중에는 방랑이 불가능합니다. 방랑 실패."; + } elseif($dipcount != 0) { + $log[count($log)] = "●{$admin[month]}월:방랑할 수 없는 외교상태입니다. 방랑 실패."; + } elseif($nation[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:이미 방랑군입니다. 방랑 실패."; + } else { + $log[count($log)] = "●{$admin[month]}월:영토를 버리고 방랑의 길을 떠납니다. <1>$date"; + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 방랑의 길을 떠납니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$nation[name](을)를 버리고 방랑"); + + $history[count($history)] = "●$admin[year]년 $admin[month]월:【방랑】$general[name]은(는) 방랑의 길을 떠납니다."; + + //분쟁기록 모두 지움 + DeleteConflict($connect, $general[nation]); + // 국명, 색깔 바꿈 국가 레벨 0, 성향리셋, 기술0 + $query = "update nation set name='$general[name]',color='330000',level='0',type='0',tech='0',totaltech='0',capital='0' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 본인 빼고 건국/임관제한 + $query = "update general set makelimit='12' where no!='$general[no]' and nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 건국/임관제한 + $query = "update general set resturn='SUCCESS',makelimit='12' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 관직장수 일반으로 + $query = "update general set level=1 where nation='$general[nation]' and level <= 11"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 전 도시 공백지로 + $query = "update city set nation='0',front='0',gen1='0',gen2='0',gen3='0',conflict='',conflict2='' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 외교 리셋 + $query = "update diplomacy set state='2',term='0' where me='$general[nation]' or you='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + pushHistory($connect, $history); + } + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_48($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $city = getCity($connect, $general[city]); + + $command = DecodeCommand($general[turn0]); + $type = $command[1]; + + if($type < 100) { $isweap = 0; } + elseif($type < 200) { $type -= 100; $isweap = 1; } + elseif($type < 300) { $type -= 200; $isweap = 2; } + elseif($type < 400) { $type -= 300; $isweap = 3; } + else { $type = 7; } + + if($isweap == 3) { $cost = getItemCost2($type); } + else { $cost = getItemCost($type); } + + //특기 보정 : 거상 + if($general[special] == 30 && $type != 0) { $cost *= 0.5; } + + if($city[trade] == 0 && $general[special] != 30) { + $log[count($log)] = "●{$admin[month]}월:도시에 상인이 없습니다. 장비매매 실패. <1>$date"; + } elseif($city[secu]/1000 < $type) { + $log[count($log)] = "●{$admin[month]}월:이 도시에서는 구할 수 없었습니다. 구입 실패. <1>$date"; + } elseif($type > 6 || $type < 0) { + $log[count($log)] = "●{$admin[month]}월:구입할 수 있는 물건이 아닙니다. 구입 실패. <1>$date"; + } elseif($general[gold] < $cost && $type != 0) { + $log[count($log)] = "●{$admin[month]}월:자금이 모자랍니다. 구입 실패. <1>$date"; + } elseif($general[weap] == 0 && $isweap == 0 && $type == 0) { + $log[count($log)] = "●{$admin[month]}월:무기가 없습니다. 판매 실패. <1>$date"; + } elseif($general[book] == 0 && $isweap == 1 && $type == 0) { + $log[count($log)] = "●{$admin[month]}월:서적이 없습니다. 판매 실패. <1>$date"; + } elseif($general[horse] == 0 && $isweap == 2 && $type == 0) { + $log[count($log)] = "●{$admin[month]}월:명마가 없습니다. 판매 실패. <1>$date"; + } elseif($general[item] == 0 && $isweap == 3 && $type == 0) { + $log[count($log)] = "●{$admin[month]}월:도구가 없습니다. 판매 실패. <1>$date"; + } else { + if($isweap == 0) { + if($type != 0) { + $log[count($log)] = "●{$admin[month]}월:".getWeapName($type)."(을)를 구입했습니다. <1>$date"; + $query = "update general set resturn='SUCCESS',weap='$type',gold=gold-'$cost' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $cost = round(getItemCost($general[weap]) / 2, 0); + $log[count($log)] = "●{$admin[month]}월:".getWeapName($general[weap])."(을)를 판매했습니다. <1>$date"; + $query = "update general set resturn='SUCCESS',weap='0',gold=gold+'$cost' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } elseif($isweap == 1) { + if($type != 0) { + $log[count($log)] = "●{$admin[month]}월:".getBookName($type)."(을)를 구입했습니다. <1>$date"; + $query = "update general set resturn='SUCCESS',book='$type',gold=gold-'$cost' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $cost = round(getItemCost($general[book]) / 2, 0); + $log[count($log)] = "●{$admin[month]}월:".getBookName($general[book])."(을)를 판매했습니다. <1>$date"; + $query = "update general set resturn='SUCCESS',book='0',gold=gold+'$cost' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } elseif($isweap == 2) { + if($type != 0) { + $log[count($log)] = "●{$admin[month]}월:".getHorseName($type)."(을)를 구입했습니다. <1>$date"; + $query = "update general set resturn='SUCCESS',horse='$type',gold=gold-'$cost' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $cost = round(getItemCost($general[horse]) / 2, 0); + $log[count($log)] = "●{$admin[month]}월:".getHorseName($general[horse])."(을)를 판매했습니다. <1>$date"; + $query = "update general set resturn='SUCCESS',horse='0',gold=gold+'$cost' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } elseif($isweap == 3) { + if($type != 0) { + $log[count($log)] = "●{$admin[month]}월:".getItemName($type)."(을)를 구입했습니다. <1>$date"; + $query = "update general set resturn='SUCCESS',item='$type',gold=gold-'$cost' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $cost = round(getItemCost2($general[item]) / 2, 0); + $log[count($log)] = "●{$admin[month]}월:".getItemName($general[item])."(을)를 판매했습니다. <1>$date"; + $query = "update general set resturn='SUCCESS',item='0',gold=gold+'$cost' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + } + + $exp = 10; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 명성 상승 + $query = "update general set experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + pushGenLog($general, $log); +} + +function process_49($connect, &$general) { + global $_taxrate; + + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select level from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $city = getCity($connect, $general[city]); + + $command = DecodeCommand($general[turn0]); + $type = $command[2]; + $amount = $command[1]; + $amount *= 100; + + if($type != 1 && $type != 2) { $type = 1; } + if($amount < 100) { $amount = 100; } + elseif($amount > 10000) { $amount = 10000; } + + if($city[trade] == 0 && ($general[special] == 30 || $general[npc] >= 2)) { + $city[trade] = 100; + } + + // 거상 f배 이득시 금 계산 + // a : 쌀, b : 물가, f : 배수, c : 금 + // (0.7 ~1.3) : c = a((1+f)b-f) + // (0.99~1.01) : c = a((1-f)b+f) + if($type == 1) { + $dtype = "군량 판매"; + if($general[rice] < $amount) { $amount = $general[rice]; } + $cost = $amount * $city[trade] / 100; + //특기 보정 : 거상 + if($general[special] == 30 && $city[trade] > 100) { $cost = $amount * (6 * $city[trade]/100 - 5); } // 이익인 경우 5배 이득 + if($general[special] == 30 && $city[trade] < 100) { $cost = $amount * (0.2 * $city[trade]/100 + 0.8); } // 손해인 경우 1/5배 손해 + $tax = $cost * $_taxrate; + $cost = $cost - $tax; + } elseif($type == 2) { + $dtype = "군량 구입"; + $cost = $amount * $city[trade] / 100; + //특기 보정 : 거상 + if($general[special] == 30 && $city[trade] < 100) { $cost = $amount * (6 * $city[trade]/100 - 5); } // 이익인 경우 5배 이득 + if($general[special] == 30 && $city[trade] > 100) { $cost = $amount * (0.2 * $city[trade]/100 + 0.8); } // 손해인 경우 1/5배 손해 + $tax = $cost * $_taxrate; + $cost = $cost + $tax; + if($general[gold] < $cost) { + $cost = $general[gold]; + $tax = $cost * $_taxrate; + $amount = ($cost-$tax) * 100 / $city[trade]; + //특기 보정 : 거상 + if($general[special] == 30 && $city[trade] < 100) { $amount = ($cost-$tax) / (6 * $city[trade]/100 - 5); } // 이익인 경우 5배 이득 + if($general[special] == 30 && $city[trade] > 100) { $amount = ($cost-$tax) / (0.2 * $city[trade]/100 + 0.8); } // 손해인 경우 1/5배 손해 + } + } + + $cost = round($cost); + $amount = round($amount); + $tax = round($tax); + + if($city[trade] == 0 && $general[special] != 30 && $general[npc] < 2) { + $log[count($log)] = "●{$admin[month]}월:도시에 상인이 없습니다. $dtype 실패. <1>$date"; + } elseif($general[nation] != $city[nation] && $nation[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. $dtype 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. $dtype 실패. <1>$date"; + } elseif($type == 1 && $general[rice] <= 0) { + $log[count($log)] = "●{$admin[month]}월:군량이 없습니다. $dtype 실패. <1>$date"; + } elseif($type == 2 && $general[gold] <= 0) { + $log[count($log)] = "●{$admin[month]}월:자금이 없습니다. $dtype 실패. <1>$date"; + } else { + // 판매 + if($type == 1) { + $log[count($log)] = "●{$admin[month]}월:군량 $amount을 팔아 자금 $cost을 얻었습니다. <1>$date"; + // 군량 감소 + $query = "update general set rice=rice-{$amount} where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 자금 증가 + $query = "update general set gold=gold+{$cost} where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 구입 + } elseif($type == 2) { + $log[count($log)] = "●{$admin[month]}월:군량 $amount을 사서 자금 $cost을 썼습니다. <1>$date"; + // 군량 증가 + $query = "update general set rice=rice+{$amount} where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 자금 감소 + $query = "update general set gold=gold-{$cost} where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + // 세금 국고로 + $query = "update nation set gold=gold+'$tax' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $exp = 30; + $ded = 50; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 공헌도, 명성 상승 + $query = "update general set resturn='SUCCESS',dedication=dedication+'$ded', experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 경험치 상승 + switch(rand()%3) { + case 0: + $general[leader2]++; + $query = "update general set leader2='$general[leader2]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 1: + $general[power2]++; + $query = "update general set power2='$general[power2]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 2: + $general[intel2]++; + $query = "update general set intel2='$general[intel2]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + } + + $log = checkAbility($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_50($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $log[count($log)] = "●{$admin[month]}월:건강 회복을 위해 요양합니다. <1>$date"; + // 경험치 상승 // 공헌도, 명성 상승 + $exp = 10; + $ded = 7; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + $query = "update general set resturn='SUCCESS',injury='0',dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + pushGenLog($general, $log); +} + +function process_51($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select name,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select nation,name,dip0,dip0_type,dip0_who,dip0_when,dip1,dip1_type,dip1_who,dip1_when,dip2,dip2_type,dip2_who,dip2_when,dip3,dip3_type,dip3_who,dip3_when,dip4,dip4_type,dip4_who,dip4_when from nation where nation='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $younation = MYDB_fetch_array($result); + + if($younation[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:멸망한 국가입니다. 권고 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 권고 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 권고 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 권고 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$younation[name]으로 항복 권고 서신을 보냈습니다.<1>$date"; + $exp = 5; + $ded = 5; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 상대에게 발송 + //먼저 삭제된 칸 중 가장 오래된 칸 찾음 + $deleted = 4; + for($i=0; $i < 5; $i++) { + if($younation["dip{$i}"] == "") { $deleted = $i; } + } + //기존 메세지 한칸씩 뒤로 미룸 + for($i=$deleted-1; $i >=0; $i--) { + moveMsg($connect, "nation", "dip", $i+1, $younatin["dip{$i}"], $younation["dip{$i}_type"], $younation["dip{$i}_who"], $younation["dip{$i}_when"], "nation", $younation[nation]); + } + //권고 서신시 장수번호/상대국 번호 + $me = $general[no] * 10000 + $younation[nation]; + $date = date('Y-m-d H:i:s'); + $query = "update nation set dip0='{$nation[name]}의 항복 권고 서신',dip0_type='4',dip0_who='$me',dip0_when='$date' where nation='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +// $log = checkAbility($connect, $general, $log); + } + + pushGenLog($general, $log); +} + +function process_52($connect, &$general) { + global $_basegold, $_baserice; + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,level,gold,rice,surlimit,history,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $mynation = MYDB_fetch_array($result); + + $command = DecodeCommand($mynation["l{$general[level]}turn0"]); + $rice = $command[3]; + $gold = $command[2]; + $which = $command[1]; + $rice *= 1000; + $gold *= 1000; + $limit = $mynation[level] * 10000; + + if($gold < 0) { $gold = 0; } + if($rice < 0) { $rice = 0; } + + $query = "select nation,name,gold,rice,surlimit,history from nation where nation='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $younation = MYDB_fetch_array($result); + + if($gold > $mynation[gold]-$_basegold) { $gold = $mynation[gold] - $_basegold; } + if($rice > $mynation[rice]-$_baserice) { $rice = $mynation[rice] - $_baserice; } + + if($younation[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:멸망한 국가입니다. 원조 실패. <1>$date"; + } elseif($gold == 0 && $rice == 0) { + $log[count($log)] = "●{$admin[month]}월:보낼 물자가 부족합니다. 원조 실패. <1>$date"; + } elseif($gold < 0 || $rice < 0) { + $log[count($log)] = "●{$admin[month]}월:보낼 물자가 부족합니다. 원조 실패. <1>$date"; + } elseif($gold > $limit || $rice > $limit) { + $log[count($log)] = "●{$admin[month]}월:작위 제한량 이상은 보낼 수 없습니다. 원조 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 원조 실패. <1>$date"; + } elseif($mynation[surlimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:외교제한중입니다. 원조 실패. <1>$date"; + } elseif($younation[surlimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:상대국이 외교제한중입니다. 원조 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 원조 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 원조 실패. <1>$date"; + } else { + // 본국 자원 감소 + $query = "update nation set gold=gold-'$gold',rice=rice-'$rice',surlimit=surlimit+12 where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 상대국 자원 증가 + $query = "update nation set gold=gold+'$gold',rice=rice+'$rice' where nation='$which'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //아국 수뇌부에게 로그 전달 + $query = "select no,name,nation from general where nation='$general[nation]' and level>='9'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + for($i=0; $i < $gencount; $i++) { + $gen = MYDB_fetch_array($result); + $genlog[0] = "$younation[name](으)로 금$gold 쌀$rice을 지원했습니다."; + pushGenLog($gen, $genlog); + } + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$younation[name](으)로 금$gold 쌀$rice을 지원"); + $mynation = addNationHistory($connect, $mynation, "●{$admin[year]}년 {$admin[month]}월:$younation[name](으)로 금$gold 쌀$rice을 지원"); + $younation = addNationHistory($connect, $younation, "●{$admin[year]}년 {$admin[month]}월:$mynation[name](으)로부터 금$gold 쌀$rice을 지원 받음"); + + //상대국 수뇌부에게 로그 전달 + $query = "select no,name,nation from general where nation='$which' and level>='9'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + for($i=0; $i < $gencount; $i++) { + $gen = MYDB_fetch_array($result); + $genlog[0] = "$mynation[name]에서 금$gold 쌀$rice을 원조 했습니다."; + pushGenLog($gen, $genlog); + } + + $history[count($history)] = "●$admin[year]년 $admin[month]월:【원조】$mynation[name]에서 $younation[name](으)로 물자를 지원합니다."; + $log[count($log)] = "●{$admin[month]}월:$younation[name](으)로 물자를 지원합니다. <1>$date"; + + $exp = 5; + $ded = 5; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 경험치 상승 // 공헌도, 명성 상승 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + +// $log = checkAbility($connect, $general, $log); + } + pushHistory($connect, $history); + pushGenLog($general, $log); +} + +function process_53($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select name,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select nation,name,dip0,dip0_type,dip0_who,dip0_when,dip1,dip1_type,dip1_who,dip1_when,dip2,dip2_type,dip2_who,dip2_when,dip3,dip3_type,dip3_who,dip3_when,dip4,dip4_type,dip4_who,dip4_when from nation where nation='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $younation = MYDB_fetch_array($result); + + if($younation[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:멸망한 국가입니다. 제의 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 제의 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 제의 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 제의 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$younation[name](으)로 통합 제의 서신을 보냈습니다.<1>$date"; + $exp = 5; + $ded = 5; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 상대에게 발송 + //먼저 삭제된 칸 중 가장 오래된 칸 찾음 + $deleted = 4; + for($i=0; $i < 5; $i++) { + if($younation["dip{$i}"] == "") { $deleted = $i; } + } + //기존 메세지 한칸씩 뒤로 미룸 + for($i=$deleted-1; $i >=0; $i--) { + moveMsg($connect, "nation", "dip", $i+1, $younatin["dip{$i}"], $younation["dip{$i}_type"], $younation["dip{$i}_who"], $younation["dip{$i}_when"], "nation", $younation[nation]); + } + //권고 서신시 장수번호/상대국 번호 + $me = $general[no] * 10000 + $younation[nation]; + $date = date('Y-m-d H:i:s'); + $query = "update nation set dip0='{$nation[name]}의 통합 제의 서신',dip0_type='5',dip0_who='$me',dip0_when='$date' where nation='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +// $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); +} + +function process_54($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $command = DecodeCommand($general[turn0]); + $who = $command[1]; + + $query = "select no,name,nation,history from general where no='$who'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nextruler = MYDB_fetch_array($result); + + $query = "select nation,name,history from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + //현재 외교 진행중(통합제의중)일때 + $query = "select state from diplomacy where me='$general[nation]' and state='4'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipcount = MYDB_num_rows($result); + + if($nextruler[name] == "") { + $log[count($log)] = "●{$admin[month]}월:잘못된 장수입니다. 선양 실패. <1>$date"; + } elseif($general[level] != 12) { + $log[count($log)] = "●{$admin[month]}월:군주가 아닙니다. 선양 실패. <1>$date"; + } elseif($nextruler[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:잘못된 장수입니다. 선양 실패. <1>$date"; + } elseif($dipcount != 0) { + $log[count($log)] = "●{$admin[month]}월:현재 통합 진행중입니다. 선양 실패."; + } else { + //군주 교체 + $query = "update general set level='12' where no='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 태수,군사,시중이었다면 해제 + $query = "update city set gen1='0' where gen1='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen2='0' where gen2='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen3='0' where gen3='$who'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set resturn='SUCCESS',level='1',experience=experience*0.7 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $history[count($history)] = "●$admin[year]년 $admin[month]월:【선양】$general[name](이)가 $nation[name]의 군주 자리를 $nextruler[name]에게 선양했습니다."; + $log[count($log)] = "●{$admin[month]}월:$nextruler[name]에게 군주의 자리를 물려줍니다. <1>$date"; + $youlog[count($youlog)] = "●{$admin[month]}월:$general[name]에게서 군주의 자리를 물려받습니다."; + + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$nation[name]의 군주자리를 $nextruler[name]에게 선양"); + $nextruler = addHistory($connect, $nextruler, "●$admin[year]년 $admin[month]월:$nation[name]의 군주자리를 물려 받음"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $nextruler[name]에게 선양"); + } + pushGenLog($general, $log); + pushGenLog($nextruler, $youlog); + pushHistory($connect, $history); +} + +function process_55($connect, &$general) { + global $_baserice; + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select name 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 from nation where name='$general[name]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($result); + + if($nationcount > 0) { $makename = _String::SubStr("$nationcount".$general[name], 0, 6); } + else { $makename = $general[name]; } + + if($general[level] != 0) { + $log[count($log)] = "●{$admin[month]}월:재야가 아닙니다. 거병 실패. <1>$date"; + } elseif($admin[year] >= $admin[startyear]+2) { + $log[count($log)] = "●{$admin[month]}월:거병 기간이 지났습니다. 거병 실패. <1>$date"; + } elseif($general[makelimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:재야가 된지 12시간이 지나야 합니다. 거병 실패. <1>$date"; + } else { + $query = "insert into nation (name, color, gold, rice, rate, bill, tricklimit, surlimit, type, gennum) values ('$makename', '330000', '0', '$_baserice', '20' ,'100', '36', '72', '0', '1')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select nation,name,history from nation where name='$makename'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $exp = 100; + $ded = 100; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 명성 상승 + // 군주로 + // 현 국가 소속으로 + $query = "update general set resturn='SUCCESS',belong=1,level=12,nation='$nation[nation]',dedication=dedication+'$ded', experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[count($log)] = "●{$admin[month]}월:거병에 성공하였습니다. <1>$date"; + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $city[name]에서 거병하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【거병】$general[name](이)가 세력을 결성하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$city[name]에서 거병"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $city[name]에서 거병"); + + // 외교테이블 추가 + $query = "select nation from nation where nation!='$nation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nationcount = MYDB_num_rows($result); + + for($i=0; $i < $nationcount; $i++) { + $younation = MYDB_fetch_array($result); + $query = "insert into diplomacy (me, you, state, term) values ('$nation[nation]', '$younation[nation]', '2', '0')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "insert into diplomacy (me, you, state, term) values ('$younation[nation]', '$nation[nation]', '2', '0')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + pushHistory($connect, $history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_56($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select name from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select city from city where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($result); + + if($general[level] != 12) { + $log[count($log)] = "●{$admin[month]}월:군주가 아닙니다. <1>$date"; + } elseif($citycount != 0) { + $log[count($log)] = "●{$admin[month]}월:방랑군이 아닙니다. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:세력을 해산했습니다. <1>$date"; + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 세력을 해산했습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$nation[name](을)를 해산"); + + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + + // 수동 해산인 국가 페널티, 자금, 군량 + if($genCount > 1) { + $query = "update general set resturn='SUCCESS' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set gold=1000 where nation='$general[nation]' and gold>1000"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set rice=1000 where nation='$general[nation]' and rice>1000"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + //분쟁기록 모두 지움 + DeleteConflict($connect, $general[nation]); + deleteNation($connect, $general); + } + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_57($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month,killturn from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select nation,name,history from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $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); + + $query = "select npc,no,name,killturn,history from general where nation='$general[nation]' and level='12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $ruler = MYDB_fetch_array($result); + + if($general[level] == 0) { + $log[count($log)] = "●{$admin[month]}월:재야 입니다. 모반 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부 이상만 가능합니다. 모반 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 모반 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 모반 실패. <1>$date"; + } elseif($general[level] == 12) { + $log[count($log)] = "●{$admin[month]}월:이미 군주 입니다. 모반 실패. <1>$date"; + } elseif($ruler[killturn] >= $admin[killturn]) { + $log[count($log)] = "●{$admin[month]}월:군주가 활동중입니다. 모반 실패. <1>$date"; + } elseif($ruler[npc] >= 2) { + $log[count($log)] = "●{$admin[month]}월:군주가 NPC입니다. 모반 실패. <1>$date"; + } else { + //군주 교체 + $query = "update general set resturn='SUCCESS',level='12' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 태수,군사,시중이었다면 해제 + $query = "update city set gen1='0' where gen1='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen2='0' where gen2='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update city set gen3='0' where gen3='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set level='1',experience=experience*0.7 where no='$ruler[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log[count($log)] = "●{$admin[month]}월:모반에 성공했습니다. <1>$date"; + $youlog[count($youlog)] = "●{$admin[month]}월:$general[name]에게서 군주의 자리를 뺏겼습니다."; + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 모반에 성공했습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【모반】$general[name](이)가 $nation[name]의 군주 자리를 찬탈했습니다."; + + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:모반으로 $nation[name]의 군주자리를 찬탈"); + $ruler = addHistory($connect, $ruler, "●$admin[year]년 $admin[month]월:$general[name]의 모반으로 인해 $nation[name]의 군주자리를 박탈당함"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $ruler[name]에게서 군주자리를 찬탈"); + } + pushGenLog($general, $log); + pushGenLog($ruler, $youlog); + pushAllLog($alllog); + pushHistory($connect, $history); +} + +function process_61($connect, &$general) { + global $_basegold, $_baserice; + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost,turnterm from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select gold,rice,name,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $when = $command[2]; + $which = $command[1]; + + if($when < 1) { $when = 1; } + elseif($when > 20) { $when = 20; } + + $query = "select nation,name,dip0,dip0_type,dip0_who,dip0_when,dip1,dip1_type,dip1_who,dip1_when,dip2,dip2_type,dip2_who,dip2_when,dip3,dip3_type,dip3_who,dip3_when,dip4,dip4_type,dip4_who,dip4_when from nation where nation='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $younation = MYDB_fetch_array($result); + + if($younation[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:멸망한 국가입니다. 제의 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 제의 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 제의 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 제의 실패. <1>$date"; +// } elseif($nation[gold]-$_basegold < $admin[develcost] || $nation[rice]-$_baserice < $admin[develcost]) { +// $log[count($log)] = "●{$admin[month]}월:증정할 물자가 부족합니다. 제의 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$younation[name]으로 불가침 제의 서신을 보냈습니다.<1>$date"; + $exp = 5; + $ded = 5; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 상대에게 발송 + //먼저 삭제된 칸 중 가장 오래된 칸 찾음 + $deleted = 4; + for($i=0; $i < 5; $i++) { + if($younation["dip{$i}"] == "") { $deleted = $i; } + } + //기존 메세지 한칸씩 뒤로 미룸 + for($i=$deleted-1; $i >=0; $i--) { + moveMsg($connect, "nation", "dip", $i+1, $younatin["dip{$i}"], $younation["dip{$i}_type"], $younation["dip{$i}_who"], $younation["dip{$i}_when"], "nation", $younation[nation]); + } + //권고 서신시 장수번호/상대국 번호 + $me = $general[no] * 10000 + $younation[nation]; + $type = $when * 100 + 6; + $date = date('Y-m-d H:i:s'); + $query = "update nation set dip0='{$nation[name]}의 {$when}년 불가침 제의 서신',dip0_type='$type',dip0_who='$me',dip0_when='$date' where nation='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 3턴후 + $date = addTurn($date, $admin[turnterm]); + $date = addTurn($date, $admin[turnterm]); + $date = addTurn($date, $admin[turnterm]); + //조건 표시기한 설정 + $query = "update diplomacy set showing='{$date}' where me='$general[nation]' and you='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // $admin[develcost]*10씩 차감 +// $amount = $admin[develcost]; +// $query = "update nation set gold=gold-'$amount',rice=rice-'$amount' where nation='$general[nation]'"; +// MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +// $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); +} + +function process_62($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,history,l{$general[level]}turn0,color from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select nation,name,color,history from nation where nation='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $younation = MYDB_fetch_array($result); + + $query = "select * from general where nation='$younation[nation]' and level='12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $king = MYDB_fetch_array($result); + + //아국과의 관계 + $query = "select state from diplomacy where me='$nation[nation]' and you='$younation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + //대상국이 외교 진행중(합병수락중,통합수락중)일때 + $query = "select state from diplomacy where me='$younation[nation]' and (state='3' or state='5')"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipcount = MYDB_num_rows($result); + + if($younation[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:멸망한 국가입니다. 선포 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 선포 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 선포 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 선포 실패. <1>$date"; + } elseif($dip[state] == 0) { + $log[count($log)] = "●{$admin[month]}월:아국과 이미 교전중입니다. 선포 실패. <1>$date"; + } elseif($dip[state] == 1) { + $log[count($log)] = "●{$admin[month]}월:아국과 이미 선포중입니다. 선포 실패. <1>$date"; + } elseif($dip[state] == 7) { + $log[count($log)] = "●{$admin[month]}월:아국과 불가침중입니다. 선포 실패. <1>$date"; + } elseif($dipcount != 0) { + $log[count($log)] = "●{$admin[month]}월:상대국이 외교 진행중입니다. 선포 실패. <1>$date"; + } elseif(!isClose($connect, $nation[nation], $younation[nation])) { + $log[count($log)] = "●{$admin[month]}월:인접하지 않았습니다. 선포 실패. <1>$date"; + } elseif($admin['year'] <= $admin['startyear']) { + $log[count($log)] = "●{$admin[month]}월:초반제한 해제 2년전부터 가능합니다. 선포 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$younation[name]으로 선전 포고 했습니다.<1>$date"; + $exp = 5; + $ded = 5; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $younation[name]선전 포고 하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【선포】$nation[name](이)가 $younation[name]에 선전 포고 하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$younation[name]에 선전 포고"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $younation[name]에 선전 포고"); + $younation = addNationHistory($connect, $younation, "●$admin[year]년 $admin[month]월:$nation[name]$general[name](이)가 아국에 선전 포고"); + + //외교 변경 + $query = "update diplomacy set state='1',term='24' where me='$nation[nation]' and you='$younation[nation]'"; + MYDB_query($query, $connect) or Error("ally ".MYDB_error($connect),""); + $query = "update diplomacy set state='1',term='24' where me='$younation[nation]' and you='$nation[nation]'"; + MYDB_query($query, $connect) or Error("ally ".MYDB_error($connect),""); + + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //국메로 저장 + $msg = "【외교】$admin[year]년 $admin[month]월:$younation[name]에 선전포고"; + $youmsg = "【외교】$admin[year]년 $admin[month]월:$nation[name]에서 선전포고"; + + PushMsg(2, $nation[nation], $general[picture], $general[imgsvr], "{$general[name]}:{$nation[name]}▶", $nation[color], $younation[name], $younation[color], $msg); + PushMsg(3, $younation[nation], $general[picture], $general[imgsvr], "{$general[name]}:{$nation[name]}▶", $nation[color], $younation[name], $younation[color], $youmsg); + } + + pushHistory($connect, $history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_63($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select name,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select nation,name,dip0,dip0_type,dip0_who,dip0_when,dip1,dip1_type,dip1_who,dip1_when,dip2,dip2_type,dip2_who,dip2_when,dip3,dip3_type,dip3_who,dip3_when,dip4,dip4_type,dip4_who,dip4_when from nation where nation='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $younation = MYDB_fetch_array($result); + + if($younation[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:멸망한 국가입니다. 제의 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 제의 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 제의 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 제의 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$younation[name]으로 종전 제의 서신을 보냈습니다. <1>$date"; + $exp = 5; + $ded = 5; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 상대에게 발송 + //먼저 삭제된 칸 중 가장 오래된 칸 찾음 + $deleted = 4; + for($i=0; $i < 5; $i++) { + if($younation["dip{$i}"] == "") { $deleted = $i; } + } + //기존 메세지 한칸씩 뒤로 미룸 + for($i=$deleted-1; $i >=0; $i--) { + moveMsg($connect, "nation", "dip", $i+1, $younatin["dip{$i}"], $younation["dip{$i}_type"], $younation["dip{$i}_who"], $younation["dip{$i}_when"], "nation", $younation[nation]); + } + //권고 서신시 장수번호/상대국 번호 + $me = $general[no] * 10000 + $younation[nation]; + $date = date('Y-m-d H:i:s'); + $query = "update nation set dip0='{$nation[name]}의 종전 제의 서신',dip0_type='7',dip0_who='$me',dip0_when='$date' where nation='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +// $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); +} + +function process_64($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select name,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select nation,name,dip0,dip0_type,dip0_who,dip0_when,dip1,dip1_type,dip1_who,dip1_when,dip2,dip2_type,dip2_who,dip2_when,dip3,dip3_type,dip3_who,dip3_when,dip4,dip4_type,dip4_who,dip4_when from nation where nation='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $younation = MYDB_fetch_array($result); + + if($younation[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:멸망한 국가입니다. 제의 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 제의 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 제의 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 제의 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$younation[name]으로 파기 제의 서신을 보냈습니다. <1>$date"; + $exp = 5; + $ded = 5; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 상대에게 발송 + //먼저 삭제된 칸 중 가장 오래된 칸 찾음 + $deleted = 4; + for($i=0; $i < 5; $i++) { + if($younation["dip{$i}"] == "") { $deleted = $i; } + } + //기존 메세지 한칸씩 뒤로 미룸 + for($i=$deleted-1; $i >=0; $i--) { + moveMsg($connect, "nation", "dip", $i+1, $younatin["dip{$i}"], $younation["dip{$i}_type"], $younation["dip{$i}_who"], $younation["dip{$i}_when"], "nation", $younation[nation]); + } + //권고 서신시 장수번호/상대국 번호 + $me = $general[no] * 10000 + $younation[nation]; + $date = date('Y-m-d H:i:s'); + $query = "update nation set dip0='{$nation[name]}의 불가침 파기 서신',dip0_type='8',dip0_who='$me',dip0_when='$date' where nation='$younation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +// $log = checkAbility($connect, $general, $log); + } + pushGenLog($general, $log); +} + +function process_65($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select city from city where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($result); + + $query = "select nation,capital,name,surlimit,history,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select city,name,nation,pop,gen1,gen2,gen3 from city where city='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + //아국이 외교중(교전, 선포, 합병, 통합 // 즉 !통상, !불가침)일때 + $query = "select state from diplomacy where me='$nation[nation]' and (state!='2' and state!='7')"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipcount = MYDB_num_rows($result); + + if($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 초토화 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 초토화 실패. <1>$date"; + } elseif($nation[capital] == $destcity[city]) { + $log[count($log)] = "●{$admin[month]}월:수도입니다. 초토화 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 초토화 실패. <1>$date"; + } elseif($destcity[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국 영토가 아닙니다. 초토화 실패. <1>$date"; + } elseif($citycount <= 4) { + $log[count($log)] = "●{$admin[month]}월:더이상 물러날 수 없습니다. 초토화 실패. <1>$date"; + } elseif($dipcount != 0) { + $log[count($log)] = "●{$admin[month]}월:평시에만 가능합니다. 초토화 실패. <1>$date"; + } elseif($nation[surlimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:제한 턴이 있습니다. 초토화 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name](을)를 초토화했습니다. <1>$date"; + $exp = 5; + $ded = 5; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $destcity[name]초토화를 명령하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【초토화】$nation[name](이)가 $destcity[name](을)를 초토화하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$destcity[name]초토화를 명령"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $destcity[name]초토화를 명령"); + + //외교제한 24 + $amount = round($destcity[pop] * 0.1); + $query = "update nation set surlimit='24',gold=gold+'$amount',rice=rice+'$amount' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //직위해제 + $query = "update general set level=1 where no='$destcity[gen1]' or no='$destcity[gen2]' or no='$destcity[gen3]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //성 공백지로 + $query = "update city set pop=pop*0.1,rate=50,agri=agri*0.1,comm=comm*0.1,secu=secu*0.1,nation='0',front='0',gen1='0',gen2='0',gen3='0',conflict='',conflict2='' where city='$destcity[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //전장수 10% 삭감 + $query = "update general set experience=experience*0.9,dedication=dedication*0.9 where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + pushHistory($connect, $history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_66($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,gold,rice,surlimit,history,l{$general[level]}term,l{$general[level]}turn0,capital,capset from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select city,name,nation from city where city='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $dist = distance($connect, $nation[capital], 1); + $amount = $admin[develcost] * 10; + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 66) { + $term = floor($code/100) + 1; + $code = $term * 100 + 66; + } else { + $term = 1; + $code = 100 + 66; + } + + if($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 천도 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 천도 실패. <1>$date"; + } elseif($city[supply] == 0) { + $log[count($log)] = "●{$admin[month]}월:고립된 도시입니다. 천도 실패. <1>$date"; + } elseif($destcity[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국 영토가 아닙니다. 천도 실패. <1>$date"; + } elseif($dist[$destcity[city]] != 1) { + $log[count($log)] = "●{$admin[month]}월:인접도시가 아닙니다. 천도 실패. <1>$date"; + } elseif($nation[capset] == 1) { + $log[count($log)] = "●{$admin[month]}월:다음 분기에 가능합니다. 천도 실패. <1>$date"; + } elseif($nation[gold]-$_basegold < $amount || $nation[rice]-$_baserice < $amount) { + $log[count($log)] = "●{$admin[month]}월:물자가 부족합니다. 천도 실패. <1>$date"; + } elseif($term < 3) { + $log[count($log)] = "●{$admin[month]}월:천도중... ({$term}/3) <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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name](으)로 천도했습니다. <1>$date"; + $exp = 15; + $ded = 15; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $destcity[name](으)로 천도를 명령하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【천도】$nation[name](이)가 $destcity[name](으)로 천도하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$destcity[name](으)로 천도 명령"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $destcity[name](으)로 천도 명령"); + + //수도 변경 + $query = "update nation set l{$general[level]}term='0',capital='$destcity[city]',capset='1',gold=gold-'$amount',rice=rice-'$amount' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + pushHistory($connect, $history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_67($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,gold,rice,surlimit,history,l{$general[level]}term,l{$general[level]}turn0,capital,capset from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $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); + + $amount = $admin[develcost] * 500 + 60000; // 7만~13만 + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 67) { + $term = floor($code/100) + 1; + $code = $term * 100 + 67; + } else { + $term = 1; + $code = 100 + 67; + } + + if($nation[capital] != $general[city]) { + $log[count($log)] = "●{$admin[month]}월:수도에서 실행해야 합니다. 증축 실패. <1>$date"; + } elseif($nation[capital] != $destcity[city]) { + $log[count($log)] = "●{$admin[month]}월:수도만 가능합니다. 증축 실패. <1>$date"; + } elseif($destcity[level] <= 3) { + $log[count($log)] = "●{$admin[month]}월:수진, 진, 관문은 불가능합니다. 증축 실패. <1>$date"; + } elseif($destcity[level] >= 8) { + $log[count($log)] = "●{$admin[month]}월:더이상 증축할 수 없습니다. 증축 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 증축 실패. <1>$date"; + } elseif($nation[capset] == 1) { + $log[count($log)] = "●{$admin[month]}월:다음 분기에 가능합니다. 증축 실패. <1>$date"; + } elseif($nation[gold]-$_basegold < $amount || $nation[rice]-$_baserice < $amount) { + $log[count($log)] = "●{$admin[month]}월:물자가 부족합니다. 증축 실패. <1>$date"; + } elseif($term < 6) { + $log[count($log)] = "●{$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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name](을)를 증축했습니다. <1>$date"; + $exp = 5 * 6; + $ded = 5 * 6; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $destcity[name](을)를 증축하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【증축】$nation[name](이)가 $destcity[name](을)를 증축하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$destcity[name](을)를 증축"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $destcity[name](을)를 증축"); + + //물자 감소 + $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),""); + + //수도 증축 + $query = "update city set upgrading=upgrading+1,level=level+1,pop2=pop2+100000,agri2=agri2+2000,comm2=comm2+2000,def2=def2+2000,wall2=wall2+2000,secu2=secu2+2000 where city='$destcity[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + pushHistory($connect, $history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_68($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,gold,rice,surlimit,history,l{$general[level]}term,l{$general[level]}turn0,capital,capset from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select city,name,nation,level,pop,agri,comm,def,wall,secu,upgrading from city where city='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $amount = $admin[develcost] * 500 + 30000; // 4만~10만 + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 68) { + $term = floor($code/100) + 1; + $code = $term * 100 + 68; + } else { + $term = 1; + $code = 100 + 68; + } + + if($nation[capital] != $general[city]) { + $log[count($log)] = "●{$admin[month]}월:수도에서 실행해야 합니다. 감축 실패. <1>$date"; + } elseif($nation[capital] != $destcity[city]) { + $log[count($log)] = "●{$admin[month]}월:수도만 가능합니다. 감축 실패. <1>$date"; + } elseif($destcity[level] <= 3) { + $log[count($log)] = "●{$admin[month]}월:수진, 진, 관문은 불가능합니다. 감축 실패. <1>$date"; + } elseif($destcity[level] <= 6) { + $log[count($log)] = "●{$admin[month]}월:더이상 감축할 수 없습니다. 감축 실패. <1>$date"; + } elseif($destcity[upgrading] <= 0) { + $log[count($log)] = "●{$admin[month]}월:증축된 도시가 아닙니다. 감축 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 감축 실패. <1>$date"; + } elseif($nation[capset] == 1) { + $log[count($log)] = "●{$admin[month]}월:다음 분기에 가능합니다. 감축 실패. <1>$date"; +// } elseif($nation[gold]-$_basegold < $amount || $nation[rice]-$_baserice < $amount) { +// $log[count($log)] = "●{$admin[month]}월:물자가 부족합니다. 감축 실패. <1>$date"; + } elseif($term < 6) { + $log[count($log)] = "●{$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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:$destcity[name](을)를 감축했습니다. <1>$date"; + $exp = 5 * 6; + $ded = 5 * 6; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $destcity[name](을)를 감축하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【감축】$nation[name](이)가 $destcity[name](을)를 감축하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$destcity[name](을)를 감축"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $destcity[name](을)를 감축"); + + //물자 증가 + $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),""); + + $pop = $destcity[pop] - 100000; + $agri = $destcity[agri] - 2000; + $comm = $destcity[comm] - 2000; + $def = $destcity[def] - 2000; + $wall = $destcity[wall] - 2000; + $secu = $destcity[secu] - 2000; + if($pop < 30000) { $pop = 30000; } + if($agri < 0) { $agri = 0; } + if($comm < 0) { $comm = 0; } + if($def < 0) { $def = 0; } + if($wall < 0) { $wall = 0; } + if($secu < 0) { $secu = 0; } + //수도 감축 + $query = "update city set upgrading=upgrading-1,level=level-1,pop2=pop2-100000,agri2=agri2-2000,comm2=comm2-2000,def2=def2-2000,wall2=wall2-2000,secu2=secu2-2000,pop='$pop',agri='$agri',comm='$comm',def='$def',wall='$wall',secu='$secu' where city='$destcity[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + pushHistory($connect, $history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_71($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,type,tricklimit,history,l{$general[level]}term,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select no from diplomacy where me='$general[nation]' and state=0"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipCount = MYDB_num_rows($result); + + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + if($genCount < 10) { $genCount = 10; } + + //$term2 = round($genCount / 10); + //if($term2 == 0) { $term2 = 1; } + $term2 = 3; + $term3 = round(sqrt($genCount*8)*10); + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 71) { + $term = floor($code/100) + 1; + $code = $term * 100 + 71; + } else { + $term = 1; + $code = 100 + 71; + } + + if($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 필사즉생 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 필사즉생 실패. <1>$date"; + } elseif($dipCount == 0) { + $log[count($log)] = "●{$admin[month]}월:전쟁중이 아닙니다. 필사즉생 실패. <1>$date"; + } elseif($nation[tricklimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:전략기한이 남았습니다. 필사즉생 실패. <1>$date"; + } elseif($term < $term2) { + $log[count($log)] = "●{$admin[month]}월:필사즉생 수행중... ({$term}/{$term2}) <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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:필사즉생 발동! <1>$date"; + $exp = 5 * $term2; + $ded = 5 * $term2; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $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); + $alllog[0] = "$general[name](이)가 필사즉생(을)를 발동하였습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + +// $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 필사즉생(을)를 발동하였습니다."; +// $history[count($history)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 필사즉생(을)를 발동하였습니다."; + $tricklog[count($tricklog)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 필사즉생(을)를 발동하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:필사즉생(을)를 발동"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 필사즉생(을)를 발동"); + + //전장수 훈사100 + $query = "update general set atmos=100,train=100 where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 국가보정 + if($nation[type] == 11) { $term3 = round($term3 / 2); } + if($nation[type] == 12) { $term3 = $term3 * 2; } + + //전략기한 + $query = "update nation set tricklimit={$term3} where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + +// pushHistory($connect, $history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_72($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,type,tricklimit,history,l{$general[level]}term,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select city,name,nation from city where city='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $query = "select no from diplomacy where me='$general[nation]' and state=0"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipCount = MYDB_num_rows($result); + + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + if($genCount < 10) { $genCount = 10; } + + //$term2 = round($genCount / 20); + //if($term2 == 0) { $term2 = 1; } + $term2 = 1; + $term3 = round(sqrt($genCount*4)*10); + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 72) { + $term = floor($code/100) + 1; + $code = $term * 100 + 72; + } else { + $term = 1; + $code = 100 + 72; + } + + if($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 백성동원 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 백성동원 실패. <1>$date"; + } elseif($dipCount == 0) { + $log[count($log)] = "●{$admin[month]}월:전쟁중이 아닙니다. 백성동원 실패. <1>$date"; + } elseif($nation[tricklimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:전략기한이 남았습니다. 백성동원 실패. <1>$date"; + } elseif($destcity[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국 도시만 가능합니다. 백성동원 실패. <1>$date"; + } elseif($term < $term2) { + $log[count($log)] = "●{$admin[month]}월:백성동원 수행중... ({$term}/{$term2}) <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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:백성동원 발동! <1>$date"; + $exp = 5 * $term2; + $ded = 5 * $term2; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $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); + $alllog[0] = "$general[name](이)가 $destcity[name]백성동원(을)를 발동하였습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + +// $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $destcity[name]백성동원(을)를 발동하였습니다."; +// $history[count($history)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destcity[name]백성동원(을)를 발동하였습니다."; + $tricklog[count($tricklog)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destcity[name]백성동원(을)를 발동하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$destcity[name]백성동원(을)를 발동"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $destcity[name]백성동원(을)를 발동"); + + //도시 성수 80% + $query = "update city set def=def2*0.8,wall=wall2*0.8 where city='$destcity[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 국가보정 + if($nation[type] == 11) { $term3 = round($term3 / 2); } + if($nation[type] == 12) { $term3 = $term3 * 2; } + + //전략기한 + $query = "update nation set tricklimit={$term3} where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + +// pushHistory($connect, $history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_73($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,type,tricklimit,history,l{$general[level]}term,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select city,name,nation from city where city='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $query = "select nation,name,history from nation where nation='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destnation = MYDB_fetch_array($result); + + $query = "select state from diplomacy where me='$general[nation]' and you='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + if($genCount < 10) { $genCount = 10; } + + //$term2 = round($genCount / 20); + //if($term2 == 0) { $term2 = 1; } + $term2 = 3; + $term3 = round(sqrt($genCount*4)*10); + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 73) { + $term = floor($code/100) + 1; + $code = $term * 100 + 73; + } else { + $term = 1; + $code = 100 + 73; + } + + if($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 수몰 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 수몰 실패. <1>$date"; + } elseif($destcity[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:공백지입니다. 수몰 실패. <1>$date"; + } elseif($destcity[nation] == $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:대상도시가 아국입니다. 수몰 실패. <1>$date"; + } elseif($dip[state] > 0) { + $log[count($log)] = "●{$admin[month]}월:전쟁중인 상대국에만 가능합니다. 수몰 실패. <1>$date"; + } elseif($nation[tricklimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:전략기한이 남았습니다. 수몰 실패. <1>$date"; + } elseif($term < $term2) { + $log[count($log)] = "●{$admin[month]}월:수몰 수행중... ({$term}/{$term2}) <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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:수몰 발동! <1>$date"; + $exp = 5 * $term2; + $ded = 5 * $term2; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $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); + $alllog[0] = "$general[name](이)가 $destcity[name]수몰(을)를 발동하였습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + + $query = "select no,name from general where nation='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cnt = MYDB_num_rows($result); + $alllog[0] = "$destcity[name]수몰이 발동되었습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + +// $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $destcity[name]수몰(을)를 발동하였습니다."; +// $history[count($history)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destcity[name]수몰(을)를 발동하였습니다."; + $tricklog[count($tricklog)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destcity[name]수몰(을)를 발동하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$destcity[name]수몰(을)를 발동"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $destnation[name]$destcity[name]수몰(을)를 발동"); + $destnation = addNationHistory($connect, $destnation, "●$admin[year]년 $admin[month]월:$nation[name]$general[name](이)가 아국의 $destcity[name]수몰(을)를 발동"); + + //도시 성수 80% 감소 + $query = "update city set def=def*0.2,wall=wall*0.2 where city='$destcity[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 국가보정 + if($nation[type] == 11) { $term3 = round($term3 / 2); } + if($nation[type] == 12) { $term3 = $term3 * 2; } + + //전략기한 + $query = "update nation set tricklimit={$term3} where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + +// pushHistory($connect, $history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_74($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,type,tricklimit,history,l{$general[level]}term,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select city,name,nation from city where city='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destcity = MYDB_fetch_array($result); + + $query = "select nation,name,history from nation where nation='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destnation = MYDB_fetch_array($result); + + $query = "select state from diplomacy where me='$general[nation]' and you='$destcity[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + if($genCount < 10) { $genCount = 10; } + + //$term2 = round($genCount / 20); + //if($term2 == 0) { $term2 = 1; } + $term2 = 2; + $term3 = round(sqrt($genCount*4)*10); + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 74) { + $term = floor($code/100) + 1; + $code = $term * 100 + 74; + } else { + $term = 1; + $code = 100 + 74; + } + + if($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 허보 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 허보 실패. <1>$date"; + } elseif($destcity[nation] == 0) { + $log[count($log)] = "●{$admin[month]}월:공백지입니다. 허보 실패. <1>$date"; + } elseif($destcity[nation] == $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:대상도시가 아국입니다. 허보 실패. <1>$date"; + } elseif($dip[state] > 1) { + $log[count($log)] = "●{$admin[month]}월:선포,전쟁중인 상대국에만 가능합니다. 허보 실패. <1>$date"; + } elseif($nation[tricklimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:전략기한이 남았습니다. 허보 실패. <1>$date"; + } elseif($term < $term2) { + $log[count($log)] = "●{$admin[month]}월:허보 수행중... ({$term}/{$term2}) <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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:허보 발동! <1>$date"; + $exp = 5 * $term2; + $ded = 5 * $term2; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $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); + $alllog[0] = "$general[name](이)가 $destcity[name]허보(을)를 발동하였습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + +// $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $destcity[name]허보(을)를 발동하였습니다."; +// $history[count($history)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destcity[name]허보(을)를 발동하였습니다."; + $tricklog[count($tricklog)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destcity[name]허보(을)를 발동하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$destcity[name]허보(을)를 발동"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $destnation[name]$destcity[name]허보(을)를 발동"); + $destnation = addNationHistory($connect, $destnation, "●$admin[year]년 $admin[month]월:$nation[name]$general[name](이)가 아국의 $destcity[name]허보(을)를 발동"); + + //상대국 도시 전부 검색 + $query = "select city from city where nation='$destcity[nation]' and supply=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityCount = MYDB_num_rows($result); + for($i=0; $i < $cityCount; $i++) { + $dCity = MYDB_fetch_array($result); + $citys[$i] = $dCity[city]; + } + //상대국 유저 랜덤 배치 + $query = "select no,name from general where nation='$destcity[nation]' and city='$destcity[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + $opplog[0] = "●상대국의 허보에 당했다! <1>$date"; + for($i=0; $i < $count; $i++) { + $gen = MYDB_fetch_array($result); + $selCity = $citys[rand() % $cityCount]; + //현재도시이면 한번 다시 랜덤추첨 + if($selCity == $destcity[city]) { $selCity = $citys[rand() % $cityCount]; } + + $query = "update general set city={$selCity} where no='$gen[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + pushGenLog($gen, $opplog); + } + + // 국가보정 + if($nation[type] == 11) { $term3 = round($term3 / 2); } + if($nation[type] == 12) { $term3 = $term3 * 2; } + + //전략기한 + $query = "update nation set tricklimit={$term3} where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + +// pushHistory($connect, $history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_75($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,type,tricklimit,history,l{$general[level]}term,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select nation,name,history from nation where nation='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destnation = MYDB_fetch_array($result); + + $query = "select state from diplomacy where me='$general[nation]' and you='$destnation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + if($genCount < 10) { $genCount = 10; } + + //$term2 = round($genCount / 40); + //if($term2 == 0) { $term2 = 1; } + $term2 = 3; + $term3 = round(sqrt($genCount*2)*10); + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 75) { + $term = floor($code/100) + 1; + $code = $term * 100 + 75; + } else { + $term = 1; + $code = 100 + 75; + } + + if(!$destnation) { + $log[count($log)] = "●{$admin[month]}월:없는 국가입니다. 피장파장 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 피장파장 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 피장파장 실패. <1>$date"; + } elseif($dip[state] > 1) { + $log[count($log)] = "●{$admin[month]}월:선포,전쟁중인 상대국에만 가능합니다. 피장파장 실패. <1>$date"; + } elseif($nation[tricklimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:전략기한이 남았습니다. 피장파장 실패. <1>$date"; + } elseif($term < $term2) { + $log[count($log)] = "●{$admin[month]}월:피장파장 수행중... ({$term}/{$term2}) <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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:피장파장 발동! <1>$date"; + $exp = 5 * $term2; + $ded = 5 * $term2; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $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); + $alllog[0] = "$general[name](이)가 $destnation[name]피장파장(을)를 발동하였습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + + $query = "select no,name from general where nation='$destnation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cnt = MYDB_num_rows($result); + $alllog[0] = "●아국에 피장파장이 발동되었습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + +// $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $destnation[name]피장파장(을)를 발동하였습니다."; +// $history[count($history)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destnation[name]피장파장(을)를 발동하였습니다."; + $tricklog[count($tricklog)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destnation[name]피장파장(을)를 발동하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$destnation[name]피장파장(을)를 발동"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $destnation[name]피장파장(을)를 발동"); + $destnation = addNationHistory($connect, $destnation, "●$admin[year]년 $admin[month]월:$nation[name]$general[name](이)가 아국에 피장파장(을)를 발동"); + + //전략기한+60 + $query = "update nation set tricklimit=tricklimit+60 where nation='$destnation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 국가보정 + if($nation[type] == 11) { $term3 = round($term3 / 2); } + if($nation[type] == 12) { $term3 = $term3 * 2; } + + //전략기한, 최소72 + if($term3 < 72) { $term3 = 72; } + $query = "update nation set tricklimit={$term3} where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + +// pushHistory($connect, $history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_76($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select startyear,year,month,develcost,npccount,turnterm from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,type,tricklimit,history,l{$general[level]}term,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + if($genCount < 10) { $genCount = 10; } + + //$term2 = round($genCount / 10); + //if($term2 == 0) { $term2 = 1; } + $term2 = 3; + $term3 = round(sqrt($genCount*10)*10); + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 76) { + $term = floor($code/100) + 1; + $code = $term * 100 + 76; + } else { + $term = 1; + $code = 100 + 76; + } + + if($admin[year] < $admin[startyear]+3) { + $log[count($log)] = "●{$admin[month]}월:현재 초반 제한중입니다. 의병모집 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 의병모집 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 의병모집 실패. <1>$date"; + } elseif($nation[tricklimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:전략기한이 남았습니다. 의병모집 실패. <1>$date"; + } elseif($term < $term2) { + $log[count($log)] = "●{$admin[month]}월:의병모집 수행중... ({$term}/{$term2}) <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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:의병모집 발동! <1>$date"; + $exp = 5 * $term2; + $ded = 5 * $term2; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $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); + $alllog[0] = "$general[name](이)가 의병모집(을)를 발동하였습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + +// $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 의병모집(을)를 발동하였습니다."; +// $history[count($history)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 의병모집(을)를 발동하였습니다."; + $tricklog[count($tricklog)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 의병모집(을)를 발동하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:의병모집(을)를 발동"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 의병모집(을)를 발동"); + + $query = "select avg(gennum) as gennum from nation"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $avgNation = MYDB_fetch_array($result); + $gencount = 5 + round($avgNation[gennum] / 10); + + $query = "select avg(age) as age, max(leader+power+intel) as lpi, avg(dedication) as ded,avg(experience) as exp, avg(dex0) as dex0, avg(dex10) as dex10, avg(dex20) as dex20, avg(dex30) as dex30, avg(dex40) as dex40 from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $avgGen = MYDB_fetch_array($result); + + //의병추가 + $npc = 4; + $npcid = $admin[npccount]; + for($i=0; $i < $gencount; $i++) { + // 무장 40%, 지장 40%, 무지장 20% + $type = rand() % 10; + switch($type) { + case 0: case 1: case 2: case 3: + $leader = 65 + rand()%11; + $intel = 10 + rand()%6; + $power = 150 - $leader - $intel; + break; + case 4: case 5: case 6: case 7: + $leader = 65 + rand()%11; + $power = 10 + rand()%6; + $intel = 150 - $leader - $power; + break; + case 8: case 9: + $leader = 10 + rand()%6; + $power = 65 + rand()%11; + $intel = 150 - $leader - $power; + break; + } + // 국내 최고능치 기준으로 랜덤성 스케일링 + if($avgGen[lpi] > 210) { + $leader = round($leader * $avgGen[lpi] / 150 * (60+rand()%31)/100); + $power = round($power * $avgGen[lpi] / 150 * (60+rand()%31)/100); + $intel = round($intel * $avgGen[lpi] / 150 * (60+rand()%31)/100); + } elseif($avgGen[lpi] > 180) { + $leader = round($leader * $avgGen[lpi] / 150 * (75+rand()%21)/100); + $power = round($power * $avgGen[lpi] / 150 * (75+rand()%21)/100); + $intel = round($intel * $avgGen[lpi] / 150 * (75+rand()%21)/100); + } else { + $leader = round($leader * $avgGen[lpi] / 150 * (90+rand()%11)/100); + $power = round($power * $avgGen[lpi] / 150 * (90+rand()%11)/100); + $intel = round($intel * $avgGen[lpi] / 150 * (90+rand()%11)/100); + } + $over1 = 0; + $over2 = 0; + $over3 = 0; + // 너무 높은 능치는 다른 능치로 분산 + if($leader > 90) { + $over1 = rand() % ($leader - 90) + 5; + $leader -= $over1; + } + if($power > 90) { + $over2 = rand() % ($power - 90) + 5; + $power -= $over2; + } + if($intel > 90) { + $over3 = rand() % ($intel - 90) + 5; + $intel -= $over3; + } + // 낮은 능치쪽으로 합산 + if($type == 0) { + $intel = $intel + $over1 + $over2 + $over3; + } else { + $power = $power + $over1 + $over2 + $over3; + } + // 너무 높은 능치는 제한 + if($leader > 95) { + $leader = 95; + } + if($power > 95) { + $power = 95; + } + if($intel > 95) { + $intel = 95; + } + + $npccount = 10000 + $npcid; + $npcmatch = rand() % 150 + 1; + $genid = "gen{$npccount}"; + $pw = md5("18071807"); + $name = "ⓖ의병장{$npcid}"; + $picture = 'default.jpg'; + $turntime = getRandTurn($admin[turnterm]); + $personal = rand() % 10; + $bornyear = $admin[year]; + $deadyear = $admin[year] + 3; + $killturn = 64 + rand()%7; + + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation, + city,leader,power,intel,experience,dedication, + level,gold,rice,crew,crewtype,train,atmos,tnmt, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit,bornyear,deadyear, + dex0, dex10, dex20, dex30, dex40 + ) values ( + '$npccount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','$nation[nation]', + '$general[city]','$leader','$power','$intel','$avgGen[exp]','$avgGen[ded]', + '1','100','100','0','0','0','0','0', + '0','0','0','$turntime','$killturn','$avgGen[age]','1','$personal','0','0','0','0','', + '0','$bornyear','$deadyear', + '$avgGen[dex0]','$avgGen[dex10]','$avgGen[dex20]','$avgGen[dex30]','$avgGen[dex40]' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); + + $npcid++; + } + //npccount + $query = "update game set npccount={$npcid} where no='1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //국가 기술력 그대로 + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $gennum = $gencount; + if($gencount < 10) $gencount = 10; + + // 국가보정 + if($nation[type] == 11) { $term3 = round($term3 / 2); } + if($nation[type] == 12) { $term3 = $term3 * 2; } + + //전략기한, 국가 기술력 그대로 + $query = "update nation set tricklimit={$term3},totaltech=tech*'$gencount',gennum='$gennum' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + +// pushHistory($connect, $history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_77($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,type,tricklimit,history,l{$general[level]}term,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select nation,name,history from nation where nation='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destnation = MYDB_fetch_array($result); + + $query = "select state,term from diplomacy where me='$general[nation]' and you='$destnation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + if($genCount < 10) { $genCount = 10; } + + $term2 = 1; + $term3 = round(sqrt($genCount*16)*10); + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 77) { + $term = floor($code/100) + 1; + $code = $term * 100 + 77; + } else { + $term = 1; + $code = 100 + 77; + } + + if(!$destnation) { + $log[count($log)] = "●{$admin[month]}월:없는 국가입니다. 이호경식 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 이호경식 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 이호경식 실패. <1>$date"; + } elseif($dip[state] > 1) { + $log[count($log)] = "●{$admin[month]}월:선포,전쟁중인 상대국에만 가능합니다. 이호경식 실패. <1>$date"; + } elseif($nation[tricklimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:전략기한이 남았습니다. 이호경식 실패. <1>$date"; + } elseif($term < $term2) { + $log[count($log)] = "●{$admin[month]}월:이호경식 수행중... ({$term}/{$term2}) <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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:이호경식 발동! <1>$date"; + $exp = 5 * $term2; + $ded = 5 * $term2; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $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); + $alllog[0] = "$general[name](이)가 $destnation[name]이호경식(을)를 발동하였습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + + $query = "select no,name from general where nation='$destnation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cnt = MYDB_num_rows($result); + $alllog[0] = "●아국에 이호경식이 발동되었습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + +// $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $destnation[name]이호경식(을)를 발동하였습니다."; +// $history[count($history)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destnation[name]이호경식(을)를 발동하였습니다."; + $tricklog[count($tricklog)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destnation[name]이호경식(을)를 발동하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$destnation[name]이호경식(을)를 발동"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $destnation[name]이호경식(을)를 발동"); + $destnation = addNationHistory($connect, $destnation, "●$admin[year]년 $admin[month]월:$nation[name]$general[name](이)가 아국에 이호경식(을)를 발동"); + + //선포+3개월 + if($dip[state] == 0) { + $query = "update diplomacy set state=1,term=3 where (me='$general[nation]' and you='$destnation[nation]') or (you='$general[nation]' and me='$destnation[nation]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update diplomacy set term=term+3 where (me='$general[nation]' and you='$destnation[nation]') or (you='$general[nation]' and me='$destnation[nation]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + // 국가보정 + if($nation[type] == 11) { $term3 = round($term3 / 2); } + if($nation[type] == 12) { $term3 = $term3 * 2; } + + //전략기한 + $query = "update nation set tricklimit={$term3} where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + +// pushHistory($connect, $history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_78($connect, &$general) { + global $_basegold, $_baserice; + + $date = substr($general[turntime],11,5); + + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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); + + $query = "select nation,name,type,tricklimit,history,l{$general[level]}term,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + + $query = "select nation,name,history from nation where nation='$which'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destnation = MYDB_fetch_array($result); + + $query = "select state,term from diplomacy where me='$general[nation]' and you='$destnation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dip = MYDB_fetch_array($result); + + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + if($genCount < 10) { $genCount = 10; } + + $term2 = 1; + $term3 = round(sqrt($genCount*16)*10); + + $code = $nation["l{$general[level]}term"]; + if($code%100 == 78) { + $term = floor($code/100) + 1; + $code = $term * 100 + 78; + } else { + $term = 1; + $code = 100 + 78; + } + + if(!$destnation) { + $log[count($log)] = "●{$admin[month]}월:없는 국가입니다. 급습 실패. <1>$date"; + } elseif($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 급습 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 급습 실패. <1>$date"; + } elseif($dip[state] != 1) { + $log[count($log)] = "●{$admin[month]}월:선포중인 상대국에만 가능합니다. 급습 실패. <1>$date"; + } elseif($dip[term] < 12) { + $log[count($log)] = "●{$admin[month]}월:선포 12개월 이상인 상대국에만 가능합니다. 급습 실패. <1>$date"; + } elseif($nation[tricklimit] > 0) { + $log[count($log)] = "●{$admin[month]}월:전략기한이 남았습니다. 급습 실패. <1>$date"; + } elseif($term < $term2) { + $log[count($log)] = "●{$admin[month]}월:급습 수행중... ({$term}/{$term2}) <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),""); + } else { + $log[count($log)] = "●{$admin[month]}월:급습 발동! <1>$date"; + $exp = 5 * $term2; + $ded = 5 * $term2; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $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); + $alllog[0] = "$general[name](이)가 $destnation[name]급습(을)를 발동하였습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + + $query = "select no,name from general where nation='$destnation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cnt = MYDB_num_rows($result); + $alllog[0] = "●아국에 급습이 발동되었습니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $alllog); + } + +// $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 $destnation[name]급습(을)를 발동하였습니다."; +// $history[count($history)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destnation[name]급습(을)를 발동하였습니다."; + $tricklog[count($tricklog)] = "●$admin[year]년 $admin[month]월:【전략】$nation[name](이)가 $destnation[name]급습(을)를 발동하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:$destnation[name]급습(을)를 발동"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 $destnation[name]급습(을)를 발동"); + $destnation = addNationHistory($connect, $destnation, "●$admin[year]년 $admin[month]월:$nation[name]$general[name](이)가 아국에 급습(을)를 발동"); + + //선포-3개월 + $query = "update diplomacy set term=term-3 where (me='$general[nation]' and you='$destnation[nation]') or (you='$general[nation]' and me='$destnation[nation]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 국가보정 + if($nation[type] == 11) { $term3 = round($term3 / 2); } + if($nation[type] == 12) { $term3 = $term3 * 2; } + + //전략기한 + $query = "update nation set tricklimit={$term3} where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + +// pushHistory($connect, $history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_81($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $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,colset,name,type,tricklimit,history,l{$general[level]}term,l{$general[level]}turn0 from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $command = DecodeCommand($nation["l{$general[level]}turn0"]); + $which = $command[1]; + $colors = GetNationColors(); + if($which >= count($colors)) { $which = 0; } + $color = $colors[$which]; + + if($city[nation] != $general[nation]) { + $log[count($log)] = "●{$admin[month]}월:아국이 아닙니다. 국기변경 실패. <1>$date"; + } elseif($general[level] < 5) { + $log[count($log)] = "●{$admin[month]}월:수뇌부가 아닙니다. 국기변경 실패. <1>$date"; + } elseif($nation[colset] <= 0) { + $log[count($log)] = "●{$admin[month]}월:더이상 변경이 불가능합니다. 국기변경 실패. <1>$date"; + } else { + $log[count($log)] = "●{$admin[month]}월:국기를 변경합니다. <1>$date"; + $exp = 10; + $ded = 10; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + $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[0] = "$general[name](이)가 국기를 변경합니다."; + for($i=0; $i < $cnt; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $genlog); + } + + $alllog[count($alllog)] = "●{$admin[month]}월:$general[name](이)가 국기를 변경하였습니다."; + $history[count($history)] = "●$admin[year]년 $admin[month]월:【국기변경】$nation[name](이)가 국기를 변경하였습니다."; + $general = addHistory($connect, $general, "●$admin[year]년 $admin[month]월:국기를 변경"); + $nation = addNationHistory($connect, $nation, "●$admin[year]년 $admin[month]월:$general[name](이)가 국기를 변경"); + + //국기변경 + $query = "update nation set color='$color',colset=colset-1 where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //경험치, 공헌치 + $query = "update general set dedication=dedication+'$ded',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + pushHistory($connect, $history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_99($connect, &$general) { + $date = substr($general[turntime],11,5); + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $log[count($log)] = "●{$admin[month]}월:아직 구현되지 않았습니다. <1>$date"; + + $exp = 100; + + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + $ded = CharDedication($ded, $general[personal]); + + // 명성 상승 + $query = "update general set experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + pushGenLog($general, $log); +} + +?> diff --git a/twe_close/func_string.php b/twe_close/func_string.php new file mode 100644 index 00000000..6c8c0c27 --- /dev/null +++ b/twe_close/func_string.php @@ -0,0 +1,304 @@ += 22) { $str = "{$str}"; } + + return $str; +} + +function unfont($str) { + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("", "", $str); + return $str; +} + +function SQ2DQ($str) { + return str_replace("'", "'", $str); +} + +function Tag2Code($str) { +// return htmlspecialchars(nl2br(str_replace(" ", " ", $str))); +// $str = str_replace("&", "&", $str); + $str = str_replace("'", "'", $str); + $str = str_replace("\"", """, $str); + $str = str_replace("<", "<", $str); + $str = str_replace(">", ">", $str); +// $str = str_replace(" ", " ", $str); +// return htmlspecialchars(nl2br($str)); + return nl2br($str); +} + +function BadTag2Code($str) { + $str = str_replace("= 0xf0) { + $len++; + $i += 4; + } elseif($code >= 0xe0) { + $len++; + $i += 3; + } elseif($code >= 0xc2) { + $len++; + $i += 2; + } else { + $len++; + $i += 1; + } + } + return $len; + } + + public static function SubStr($str, $s, $l=1000) { + $count = strlen($str); + $startByte = 0; $isSet = 0; + $endByte = $count; + $len = 0; + for($i=0; $i < $count; ) { + $code = ord($str[$i]); + + if($isSet == 0 && $len >= $s) { + $startByte = $i; $isSet = 1; + } + if($isSet == 1 && $len-$s >= $l) { + $endByte = $i; + break; + } + + if($code >= 0xf0) { + $len++; + $i += 4; + } elseif($code >= 0xe0) { + $len++; + $i += 3; + } elseif($code >= 0xc2) { + $len++; + $i += 2; + } else { + $len++; + $i += 1; + } + } + $str = substr($str, $startByte, $endByte-$startByte); + return $str; + } + + public static function SubStrForWidth($str, $s, $w) { + $count = strlen($str); + $startByte = 0; $isSet = 0; + $endByte = $count; $last = 0; + $len = 0; + $width = 0; + for($i=0; $i < $count; ) { + $code = ord($str[$i]); + + if($isSet == 0 && $len >= $s) { + $startByte = $i; $isSet = 1; + $width = 0; + } + if($isSet == 1 && $width == $w) { + $endByte = $i; + break; + } + if($isSet == 1 && $width > $w) { + $endByte = $i - $last; + break; + } + + if($code >= 0xf0) { + $len++; + $width += 2; + $last = 4; + $i += 4; + } elseif($code >= 0xe0) { + $len++; + $width += 2; + $last = 3; + $i += 3; + } elseif($code >= 0xc2) { + $len++; + $width += 2; + $last = 2; + $i += 2; + } else { + $len++; + $width += 1; + $last = 1; + $i += 1; + } + } + $str = substr($str, $startByte, $endByte-$startByte); + return $str; + } + + public static function CutStrForWidth($str, $s, $w, $ch='..') { + $isCut = 0; + $count = strlen($str); + $startByte = 0; $isSet = 0; + $endByte = $count; $last = 0; + $len = 0; + $width = 0; + for($i=0; $i < $count; ) { + $code = ord($str[$i]); + + if($isSet == 0 && $len >= $s) { + $startByte = $i; $isSet = 1; + $width = 0; + } + if($isSet == 1 && $width >= $w) { + $endByte = $i - $last; + $isCut = 1; + break; + } + + if($code >= 0xf0) { + $len++; + $width += 2; + $last = 4; + $i += 4; + } elseif($code >= 0xe0) { + $len++; + $width += 2; + $last = 3; + $i += 3; + } elseif($code >= 0xc2) { + $len++; + $width += 2; + $last = 2; + $i += 2; + } else { + $len++; + $width += 1; + $last = 1; + $i += 1; + } + } + if($isCut != 0) { + $str = substr($str, $startByte, $endByte-$startByte) . $ch; + } + return $str; + } + + //중간정렬 + function Fill($str, $maxsize, $ch) { + $size = strlen($str); + + $count = ($maxsize - $size) / 2; + + for($i=0; $i < $count; $i++) { + $string = $string.$ch; + } + $string = $string.$str; + for($i=0; $i < $count; $i++) { + $string = $string.$ch; + } + return $string; + } + + //우측정렬 + function Fill2($str, $maxsize, $ch='0') { + $size = strlen($str); + + $count = ($maxsize - $size); + + for($i=0; $i < $count; $i++) { + $string = $string.$ch; + } + $string = $string.$str; + + return $string; + } + + public static function EscapeTag($str) { + $str = htmlspecialchars($str); + $str = str_replace("\r\n", "
", $str); + $str = str_replace("\n", "
", $str); +// return nl2br(htmlspecialchars($str)); +// return htmlspecialchars($str); + return $str; + } + + public static function NoSpecialCharacter($str) { + $str = str_replace(" ", "", $str); + $str = str_replace("\"", "", $str); + $str = str_replace("'", "", $str); + $str = str_replace("ⓝ", "", $str); + $str = str_replace("ⓜ", "", $str); + $str = str_replace("ⓖ", "", $str); + $str = str_replace("\\", "", $str); + $str = str_replace("/", "", $str); + $str = str_replace("`", "", $str); + $str = str_replace("-", "", $str); + $str = str_replace("=", "", $str); + $str = str_replace("[", "", $str); + $str = str_replace("]", "", $str); + $str = str_replace(";", "", $str); + $str = str_replace(",", "", $str); + $str = str_replace(".", "", $str); + $str = str_replace("~", "", $str); + $str = str_replace("!", "", $str); + $str = str_replace("@", "", $str); + $str = str_replace("#", "", $str); + $str = str_replace("$", "", $str); + $str = str_replace("%", "", $str); + $str = str_replace("^", "", $str); + $str = str_replace("&", "", $str); + $str = str_replace("*", "", $str); + $str = str_replace("(", "", $str); + $str = str_replace(")", "", $str); + $str = str_replace("_", "", $str); + $str = str_replace("+", "", $str); + $str = str_replace("|", "", $str); + $str = str_replace("{", "", $str); + $str = str_replace("}", "", $str); + $str = str_replace(":", "", $str); + $str = str_replace("", "", $str); + $str = str_replace("<", "", $str); + $str = str_replace(">", "", $str); + $str = str_replace("?", "", $str); + $str = str_replace(" ", "", $str); + return $str; + } +} + +?> diff --git a/twe_close/func_tournament.php b/twe_close/func_tournament.php new file mode 100644 index 00000000..569fc988 --- /dev/null +++ b/twe_close/func_tournament.php @@ -0,0 +1,991 @@ += 0) { + switch($admin[tnmt_auto]) { + case 1: $unit = 720; break; + case 2: $unit = 420; break; + case 3: $unit = 180; break; + case 4: $unit = 60; break; + case 5: $unit = 30; break; + case 6: $unit = 15; break; + case 7: $unit = 5; break; + } + + //업데이트 횟수 + $iter = floor($admin[offset] / $unit) + 1; + + for($i=0; $i < $iter; $i++) { + switch($tnmt) { + case 1: //신청 마감 + fillLowGenAll($connect); + $tnmt = 2; $phase = 0; + break; + case 2: //예선중 + qualify($connect, $type, $tnmt, $phase); $phase++; + if($phase >= 56) { $tnmt = 3; $phase = 0; } + break; + case 3: //추첨중 + selectionAll($connect, $type, $tnmt, $phase); $phase+=8; + if($phase >= 32) { $tnmt = 4; $phase = 0; } + break; + case 4: //본선중 + finallySingle($connect, $type, $tnmt, $phase); $phase++; + if($phase >= 6) { $tnmt = 5; $phase = 0; } + break; + case 5: //배정중 + final16set($connect); + $tnmt = 6; $phase = 0; + break; + case 6: //베팅중 + $tnmt = 7; $phase = 0; + break; + case 7: //16강중 + finalFight($connect, $type, $tnmt, $phase, 16); $phase++; + if($phase >= 8) { $tnmt = 8; $phase = 0; } + break; + case 8: //8강중 + finalFight($connect, $type, $tnmt, $phase, 8); $phase++; + if($phase >= 4) { $tnmt = 9; $phase = 0; } + break; + case 9: //4강중 + finalFight($connect, $type, $tnmt, $phase, 4); $phase++; + if($phase >= 2) { $tnmt = 10; $phase = 0; } + break; + case 10: //결승중 + finalFight($connect, $type, $tnmt, $phase, 2); + $tnmt = 0; $phase = 0; + setGift($connect, $type, $tnmt, $phase); + $i = $iter; + break; + } + + //베팅은 무조건 60페이즈후 진행(최대 1시간) + if($tnmt == 6) { + $betTerm = $unit * 60; + if($betTerm > 3600) { $betTerm = 3600; } + //처리 초 더한 날짜 + $dt = date("Y-m-d H:i:s", strtotime($admin[tnmt_time]) + $unit * $i + $betTerm); + $query = "update game set tournament='$tnmt',phase='$phase',tnmt_time='$dt' where no=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + return; + } + + if($admin[tnmt_auto] == 1) { + //처리 초 더한 날짜 + $dt = date("Y-m-d H:i:s", strtotime($admin[tnmt_time]) + $unit * $i); + $hr = substr($dt, 11, 2); + //지정시간대 넘어가면 중단 20~24시 + if($hr < 20) { + $dt = substr($dt, 0, 11)."20:00:00"; + $query = "update game set tournament='$tnmt',phase='$phase',tnmt_time='$dt' where no=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + return; + } + } + } + + $second = $unit * $iter; + $query = "update game set tournament='$tnmt',phase='$phase',tnmt_time=DATE_ADD(tnmt_time, INTERVAL {$second} SECOND) where no=1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function getTournamentTerm($connect) { + $query = "select tnmt_auto from game where no=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + switch($admin[tnmt_auto]) { + case 1: $str = "경기당 12분"; break; + case 2: $str = "경기당 7분"; break; + case 3: $str = "경기당 3분"; break; + case 4: $str = "경기당 1분"; break; + case 5: $str = "경기당 30초"; break; + case 6: $str = "경기당 15초"; break; + case 7: $str = "경기당 5초"; break; + } + return $str; +} + +function getTournamentTime($connect) { + $query = "select tournament,tnmt_time from game where no=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $tnmt = $admin[tournament]; + $dt = substr($admin[tnmt_time], 11, 5); + switch($tnmt) { + case 1: $tnmt = "개막시간 {$dt}"; break; + case 2: $tnmt = "다음경기 {$dt}"; break; + case 3: $tnmt = "다음추첨 {$dt}"; break; + case 4: $tnmt = "다음경기 {$dt}"; break; + case 5: $tnmt = "16강배정 {$dt}"; break; + case 6: $tnmt = "베팅마감 {$dt}"; break; + case 7: case 8: case 9: case 10: + $tnmt = "다음경기 {$dt}"; break; + default: $tnmt = ""; break; + } + return $tnmt; +} + +function getTournament($tnmt) { + switch($tnmt) { + case 0: $tnmt = "경기 없음"; break; + case 1: $tnmt = "참가 모집중"; break; + case 2: $tnmt = "예선 진행중"; break; + case 3: $tnmt = "본선 추첨중"; break; + case 4: $tnmt = "본선 진행중"; break; + case 5: $tnmt = "16강 배정중"; break; + case 6: $tnmt = "베팅 진행중"; break; + case 7: $tnmt = "16강 진행중"; break; + case 8: $tnmt = "8강 진행중"; break; + case 9: $tnmt = "4강 진행중"; break; + case 10: $tnmt = "결승 진행중"; break; + } + return $tnmt; +} + +function printRow($k, $npc, $name, $abil, $game, $win, $draw, $lose, $gd, $gl, $prmt) { + if($prmt > 0) { $name = "".$name.""; } + elseif($npc >= 2) { $name = "".$name.""; } + elseif($npc == 1) { $name = "".$name.""; } + echo "$k$name$abil$game$win$draw$lose$gd$gl"; +} + +function printFightLog($group) { + $fp = @fopen("logs/fight{$group}.txt", "r"); + $file = @fread($fp, 3000); + @fclose($fp); + $log = explode("\r\n", $file); + $str = ""; + for($i=0; $i < count($log); $i++) { $str .= ConvertLog($log[$i], 1)."
"; } + return substr($str, 0, -4); +} + +function pushFightLog($group, $log) { + $fp = fopen("logs/fight{$group}.txt", "w"); + $size = count($log); + for($i=0; $i < $size; $i++) { + fwrite($fp, $log[$i]."\r\n"); + } + fclose($fp); +} + +function printFighting($tournament, $phase) { + $code = $tournament * 100 + $phase; + if($code == 0) { + echo ""; + echo " "; + echo " "; + echo " "; + echo "".printFightLog(50).""; + echo " "; + echo " "; + echo " "; + echo " "; + echo ""; + } elseif($code <= 300) { + echo ""; + for($i=0; $i < 8; $i++) { + echo "".printFightLog($i).""; + } + echo ""; + } elseif($code < 400) { + } elseif($code <= 500) { + echo ""; + for($i=10; $i < 18; $i++) { + echo "".printFightLog($i).""; + } + echo ""; + } elseif($code < 700) { + } elseif($code <= 800) { + echo ""; + for($i=20; $i < 28; $i++) { + echo "".printFightLog($i).""; + } + echo ""; + } elseif($code <= 900) { + echo ""; + for($i=30; $i < 34; $i++) { + echo " "; + echo "".printFightLog($i).""; + } + echo ""; + } elseif($code <= 1000) { + echo ""; + for($i=40; $i < 42; $i++) { + echo " "; + echo " "; + echo "".printFightLog($i).""; + echo " "; + } + echo ""; + } +} + +function startTournament($connect, $auto, $type) { + for($i=0; $i < 8; $i++) { + @unlink("logs/fight{$i}.txt"); + @unlink("logs/fight1{$i}.txt"); + @unlink("logs/fight2{$i}.txt"); + @unlink("logs/fight3{$i}.txt"); + @unlink("logs/fight4{$i}.txt"); + @unlink("logs/fight5{$i}.txt"); + } + + switch($auto) { + case 1: $unit = 60; break; + case 2: $unit = 60; break; + case 3: $unit = 60; break; + case 4: $unit = 60; break; + case 5: $unit = 30; break; + case 6: $unit = 15; break; + case 7: $unit = 5; break; + default:$unit = 60; break; + } + + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "update game set tnmt_auto='$auto',tnmt_time=DATE_ADD(now(), INTERVAL {$unit} MINUTE),tournament=1,tnmt_type='$type',phase=0,bet0=0,bet1=0,bet2=0,bet3=0,bet4=0,bet5=0,bet6=0,bet7=0,bet8=0,bet9=0,bet10=0,bet11=0,bet12=0,bet13=0,bet14=0,bet15=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set tournament=0,bet0=0,bet1=0,bet2=0,bet3=0,bet4=0,bet5=0,bet6=0,bet7=0,bet8=0,bet9=0,bet10=0,bet11=0,bet12=0,bet13=0,bet14=0,bet15=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "truncate tournament"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + switch($type) { + case 0: $history[0] = "◆{$admin['year']}년 {$admin['month']}월: 전력전 대회가 개최됩니다! 천하의 영웅들을 모집하고 있습니다!"; break; + case 1: $history[0] = "◆{$admin['year']}년 {$admin['month']}월: 통솔전 대회가 개최됩니다! 천하의 명사들을 모집하고 있습니다!"; break; + case 2: $history[0] = "◆{$admin['year']}년 {$admin['month']}월: 일기토 대회가 개최됩니다! 천하의 용사들을 모집하고 있습니다!"; break; + case 3: $history[0] = "◆{$admin['year']}년 {$admin['month']}월: 설전 대회가 개최됩니다! 천하의 책사들을 모집하고 있습니다!"; break; + } + pushHistory($connect, $history); +} + +function fillLowGenAll($connect) { + $query = "select develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $general[no] = 0; + $general[name] = "무명장수"; + $general[npc] = 2; + $general[leader] = 10; + $general[power] = 10; + $general[intel] = 10; + $general[explevel] = 10; + + for($i=0; $i < 8; $i++) { + $query = "select grp from tournament where grp='$i'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $grpCount[$i] = MYDB_num_rows($result); + } + + //자동신청하고, 돈 있고, 아직 참가 안한 장수 + $query = "select no,npc,name,leader,power,intel,explevel from general where tnmt='1' and tournament='0' and gold>='$admin[develcost]' order by rand() limit 0,64"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $genCount = MYDB_num_rows($result); + + $valid = 1; + while($valid == 1) { + $valid = 0; + //조마다 돌아가며 + for($i=0; $i < 8; $i++) { + //비었으면 채우기 + if($grpCount[$i] < 8) { + //자동신청 장수 있으면 채우기 + if($genCount > 0) { + $genCount--; + $gen = MYDB_fetch_array($result); + $query = "update general set gold=gold-'$admin[develcost]',tournament='1' where no='$gen[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "insert into tournament (no, npc, name, ldr, pwr, itl, lvl, grp, grp_no) values ('$gen[no]', '$gen[npc]', '$gen[name]', '$gen[leader]', '$gen[power]', '$gen[intel]', '$gen[explevel]', '$i', '$grpCount[$i]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //자동신청 장수 없으면 무명장수 + } else { + $query = "insert into tournament (no, npc, name, ldr, pwr, itl, lvl, grp, grp_no) values ('$general[no]', '$general[npc]', '$general[name]', '$general[leader]', '$general[power]', '$general[intel]', '$general[explevel]', '$i', '$grpCount[$i]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + $grpCount[$i]++; + } + //덜 찼으면 루프 다시 + if($grpCount[$i] < 8) { + $valid = 1; + } + } + } + + $query = "update game set tournament=2, phase=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +//0 경기없음 +//1 모집중 +//2 예선중 28페이즈 +//3 본선추첨중 +//4 본선중 6페이즈 +//5 16강 배정중 +//6 베팅 +//6 16강 +//7 8강 +//8 4강 +//9 결승 +function getTwo($tournament, $phase) { + switch($tournament) { + case 2: + //예선 + switch($phase%28) { + case 0: $cand[0] = 0; $cand[1] = 1; break; case 1: $cand[0] = 2; $cand[1] = 3; break; case 2: $cand[0] = 4; $cand[1] = 5; break; case 3: $cand[0] = 6; $cand[1] = 7; break; + case 4: $cand[0] = 0; $cand[1] = 2; break; case 5: $cand[0] = 1; $cand[1] = 3; break; case 6: $cand[0] = 4; $cand[1] = 6; break; case 7: $cand[0] = 5; $cand[1] = 7; break; + case 8: $cand[0] = 0; $cand[1] = 3; break; case 9: $cand[0] = 1; $cand[1] = 6; break; case 10: $cand[0] = 2; $cand[1] = 5; break; case 11: $cand[0] = 4; $cand[1] = 7; break; + case 12: $cand[0] = 0; $cand[1] = 4; break; case 13: $cand[0] = 1; $cand[1] = 5; break; case 14: $cand[0] = 2; $cand[1] = 6; break; case 15: $cand[0] = 3; $cand[1] = 7; break; + case 16: $cand[0] = 0; $cand[1] = 5; break; case 17: $cand[0] = 1; $cand[1] = 4; break; case 18: $cand[0] = 2; $cand[1] = 7; break; case 19: $cand[0] = 3; $cand[1] = 6; break; + case 20: $cand[0] = 0; $cand[1] = 6; break; case 21: $cand[0] = 1; $cand[1] = 7; break; case 22: $cand[0] = 2; $cand[1] = 4; break; case 23: $cand[0] = 3; $cand[1] = 5; break; + case 24: $cand[0] = 0; $cand[1] = 7; break; case 25: $cand[0] = 1; $cand[1] = 2; break; case 26: $cand[0] = 3; $cand[1] = 4; break; case 27: $cand[0] = 5; $cand[1] = 6; break; + } + if($phase >= 28) { + $temp = $cand[0]; + $cand[0] = $cand[1]; + $cand[1] = $temp; + } + break; + case 4: + //본선 + switch($phase%6) { + case 0: $cand[0] = 0; $cand[1] = 1; break; case 1: $cand[0] = 2; $cand[1] = 3; break; + case 2: $cand[0] = 0; $cand[1] = 2; break; case 3: $cand[0] = 1; $cand[1] = 3; break; + case 4: $cand[0] = 0; $cand[1] = 3; break; case 5: $cand[0] = 1; $cand[1] = 2; break; + } + break; + } + return $cand; +} + +function qualify($connect, $tnmt_type, $tnmt, $phase) { + $cand = getTwo($tnmt, $phase); + + //각 그룹 페이즈 실행 + for($i=0; $i < 8; $i++) { + fight($connect, $tnmt_type, $tnmt, $phase, $i, $cand[0], $cand[1], 0); + } + if($phase < 55) { + $query = "update game set phase=phase+1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update game set tournament=3, phase=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + for($i=0; $i < 8; $i++) { + $query = "select grp,grp_no,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$i' order by gd desc, gl desc, seq limit 0,4"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + for($k=1; $k <= 4; $k++) { + $gen = MYDB_fetch_array($result); + $query = "update tournament set prmt='$k' where grp='$gen[grp]' and grp_no='$gen[grp_no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + } +} + +function qualifyAll($connect, $tnmt_type, $tnmt, $phase) { + $start = $phase; + $end = $phase - ($phase % 4) + 4; + for($i=$start; $i < $end; $i++) { + qualify($connect, $tnmt_type, $tnmt, $i); + } +} + +function selection($connect, $tnmt_type, $tnmt, $phase) { + //시드1 배정 + if($phase < 8) { + $grp = $phase + 10; $grp_no = 0; + $query = "select * from tournament where prmt=1 order by rand() limit 0,1"; + //시드2 배정 + } elseif($phase < 16) { + $grp = $phase - 8 + 10; $grp_no = 1; + $query = "select * from tournament where prmt=2 order by rand() limit 0,1"; + } elseif($phase < 24) { + $grp = $phase - 16 + 10; $grp_no = 2; + $query = "select * from tournament where prmt>2 order by rand() limit 0,1"; + } else { + $grp = $phase - 24 + 10; $grp_no = 3; + $query = "select * from tournament where prmt>2 order by rand() limit 0,1"; + } + //해당 시드에서 랜덤 선택 + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + //본선에 추가 + $query = "insert into tournament (no, npc, name, ldr, pwr, itl, lvl, grp, grp_no, h, w, b) values ('$general[no]', '$general[npc]', '$general[name]', '$general[ldr]', '$general[pwr]', '$general[itl]', '$general[lvl]', '$grp', '$grp_no', '$general[h]', '$general[w]', '$general[b]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //시드 삭제 + $query = "update tournament set prmt=0 where grp='$general[grp]' and grp_no='$general[grp_no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + if($phase < 31) { + $query = "update game set phase=phase+1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update game set tournament=4, phase=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function selectionAll($connect, $tnmt_type, $tnmt, $phase) { + $start = $phase; + $end = $phase - ($phase % 8) + 8; + for($i=$start; $i < $end; $i++) { + selection($connect, $tnmt_type, $tnmt, $i); + } +} + +function finallySingle($connect, $tnmt_type, $tnmt, $phase) { + $cand = getTwo($tnmt, $phase); + + //각 그룹 페이즈 실행 + for($i=10; $i < 18; $i++) { + fight($connect, $tnmt_type, $tnmt, $phase, $i, $cand[0], $cand[1], 0); + } + if($phase < 5) { + $query = "update game set phase=phase+1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + $query = "update game set tournament=5, phase=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + for($i=10; $i < 18; $i++) { + $query = "select grp,grp_no,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$i' order by gd desc, gl desc, seq limit 0,2"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + for($k=1; $k <= 2; $k++) { + $gen = MYDB_fetch_array($result); + $query = "update tournament set prmt='$k' where grp='$gen[grp]' and grp_no='$gen[grp_no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + } +} + +function finallyAll($connect, $tnmt_type, $tnmt, $phase) { + $start = $phase; + $end = $phase - ($phase % 2) + 2; + for($i=$start; $i < $end; $i++) { + finallySingle($connect, $tnmt_type, $tnmt, $i); + } +} + +function final16set($connect) { + //1조1-5조2, 2조1-6조2, 3조1-7조2, 4조1-8조2, 5조1-1조2, 6조1-2조2, 7조1-3조2, 8조1-4조2 + $grp = Array(10, 14, 11, 15, 12, 16, 13, 17, 14, 10, 15, 11, 16, 12, 17, 13); + $prmt = Array( 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2); + for($i=0; $i < 16; $i++) { + $query = "select * from tournament where grp='$grp[$i]' and prmt='$prmt[$i]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + //16강에 추가 + $newGrp = 20 + floor($i / 2); + $newGrp_no = $i % 2; + $query = "insert into tournament (no, npc, name, ldr, pwr, itl, lvl, grp, grp_no, h, w, b) values ('$general[no]', '$general[npc]', '$general[name]', '$general[ldr]', '$general[pwr]', '$general[itl]', '$general[lvl]', '$newGrp', '$newGrp_no', '$general[h]', '$general[w]', '$general[b]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + $query = "update tournament set prmt=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "update game set tournament=6, phase=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +function finalFight($connect, $tnmt_type, $tnmt, $phase, $type) { + switch($type) { + case 16: $offset = 20; $turn = 7; $next = 7; break; + case 8: $offset = 30; $turn = 3; $next = 8; break; + case 4: $offset = 40; $turn = 1; $next = 9; break; + case 2: $offset = 50; $turn = 0; $next = 0; break; + } + + $grp = $phase + $offset; + fight($connect, $tnmt_type, $tnmt, $phase, $grp, 0, 1, 1); + + $query = "update game set phase=phase+1"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select * from tournament where grp='$grp' and win>0 and (grp_no=0 or grp_no=1)"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + //x강에 추가 + $newGrp = floor($phase / 2) + $offset + 10; + $newGrp_no = $phase % 2; + $query = "insert into tournament (no, npc, name, ldr, pwr, itl, lvl, grp, grp_no, h, w, b) values ('$general[no]', '$general[npc]', '$general[name]', '$general[ldr]', '$general[pwr]', '$general[itl]', '$general[lvl]', '$newGrp', '$newGrp_no', '$general[h]', '$general[w]', '$general[b]')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + if($phase >= $turn) { + $query = "update game set tournament='$next', phase=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +} + +function setGift($connect, $tnmt_type, $tnmt, $phase) { + $query = "select year,month,develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + switch($tnmt_type) { + case 0: $tp = "전력전"; $tp2 = "tt"; break; + case 1: $tp = "통솔전"; $tp2 = "tl"; break; + case 2: $tp = "일기토"; $tp2 = "tp"; break; + case 3: $tp = "설전"; $tp2 = "ti"; break; + } + + //16강자 명성 돈 + $cost = $admin[develcost]; + $query = "select no,name from tournament where grp>=20 and grp<30"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $general = MYDB_fetch_array($result); + $query = "update general set experience=experience+25,gold=gold+'$cost',{$tp2}g={$tp2}g+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //포상 장수 이름, 금액 + $genNo[$i] = $general[no]; + $genName[$i] = $general[name]; + $genGold[$general[no]] = $cost; + $genCall[$general[no]] = "16강 진출"; + } + //8강자 명성 돈 + $cost = $admin[develcost] * 2; + $query = "select no from tournament where grp>=30 and grp<40"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $general = MYDB_fetch_array($result); + $query = "update general set experience=experience+50,gold=gold+'$cost',{$tp2}g={$tp2}g+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //포상 장수 이름, 금액 + $genGold[$general[no]] += $cost; + $genCall[$general[no]] = "8강 진출"; + } + //4강자 명성 돈 + $cost = $admin[develcost] * 3; + $query = "select no from tournament where grp>=40 and grp<50"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $general = MYDB_fetch_array($result); + $query = "update general set experience=experience+75,gold=gold+'$cost',{$tp2}g={$tp2}g+2 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //포상 장수 이름, 금액 + $genGold[$general[no]] += $cost; + $genCall[$general[no]] = "4강 진출"; + } + //결승자 명성 돈 + $cost = $admin[develcost] * 6; + $query = "select no from tournament where grp>=50 and grp<60"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $general = MYDB_fetch_array($result); + $query = "update general set experience=experience+150,gold=gold+'$cost',{$tp2}g={$tp2}g+2 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //포상 장수 이름, 금액 + $genGold[$general[no]] += $cost; + $genCall[$general[no]] = "준우승으"; + } + //우승자 명성 돈 + $cost = $admin[develcost] * 8; + $query = "select no from tournament where grp>=60"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $general = MYDB_fetch_array($result); + $query = "update general set experience=experience+200,gold=gold+'$cost',{$tp2}g={$tp2}g+3,{$tp2}p={$tp2}p+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //포상 장수 이름, 금액 + $genGold[$general[no]] += $cost; + $genCall[$general[no]] = "우승으"; + } + //우승자 이름 + $query = "select no,name from tournament where grp=60"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + //준우승자 이름 + $query = "select no,name from tournament where grp=50 and lose=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general2 = MYDB_fetch_array($result); + + //자동진행 끝 + $query = "update game set tnmt_auto=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //장수열전 기록 + $query = "select no,history from general where no={$general[no]}"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen1 = MYDB_fetch_array($result); + $query = "select no,history from general where no={$general2[no]}"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen2 = MYDB_fetch_array($result); + $gen1 = addHistory($connect, $gen1, "●{$admin[year]}년 {$admin[month]}월:{$tp} 대회에서 우승"); + $gen2 = addHistory($connect, $gen2, "●{$admin[year]}년 {$admin[month]}월:{$tp} 대회에서 준우승"); + + $cost = $admin[develcost] * 20; + $cost2 = $admin[develcost] * 12; + $history[0] = "◆{$admin['year']}년 {$admin['month']}월: {$tp} 대회에서 {$general[name]}(이)가 우승, {$general2[name]}(이)가 준우승을 차지하여 천하에 이름을 떨칩니다!"; + $history[1] = "◆{$admin['year']}년 {$admin['month']}월: {$tp} 대회의 우승자에게는 {$cost}, 준우승자에겐 {$cost2}의 상금과 약간의 명성이 주어집니다!"; + pushHistory($connect, $history); + + for($i=0; $i < count($genNo); $i++) { + $general[no] = $genNo[$i]; + $general[name] = $genName[$i]; + $log[0] = "{$tp} 대회의 {$genCall[$genNo[$i]]}로 {$genGold[$genNo[$i]]}의 상금, 약간의 명성 획득!"; + pushGenLog($general, $log); + } + + //우승자 번호 + $query = "select no from tournament where grp=60"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + //16강 목록에서 검색 + $query = "select grp,grp_no from tournament where grp>=20 and grp<30 and no='$general[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + $no = ($general[grp] - 20) * 2 + $general[grp_no]; + + $query = "select bet{$no},bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 as bet from game where no=1"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + $bet = @round($admin[bet] / $admin["bet{$no}"], 2); + + //당첨칸에 베팅한 사람들만 + $query = "select no,name,gold,bet{$no} as bet from general where bet{$no}>0"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $gen = MYDB_fetch_array($result); + $gold = round($gen[bet] * $bet); + //금 지급 + $query = "update general set gold=gold+'$gold',betwingold=betwingold+'$gold',betwin=betwin+1 where no='$gen[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //로그 + $log[0] = "{$tp} 대회의 베팅 당첨으로 {$gold}의 금 획득!"; + pushGenLog($gen, $log); + } +} + +function setRefund($connect) { + $query = "select develcost from game where no='1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + //16강자 명성 돈 + $cost = $admin[develcost]; + $query = "select no from tournament where grp<10"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $general = MYDB_fetch_array($result); + $query = "update general set gold=gold+'$cost' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + + //자동진행 끝 + $query = "update game set tnmt_auto=0"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //베팅금 환수 + $query = "update general set gold=gold+bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +} + +//10차이 1.1, 50 차이 1.17, 100차이 1.2 +function getLog($lvl1, $lvl2) { + if($lvl1 >= $lvl2) { + $ratio = 1 + log(1+$lvl1-$lvl2, 10) / 10; + } else { + $ratio = 1 - log(1+$lvl2-$lvl1, 10) / 10; + } + return $ratio; +} + +//0 : 승무패, 1 : 승패 +function fight($connect, $tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) { + $query = "select *,(ldr+pwr+itl)*7/15 as tot,h,w,b from tournament where grp='$group' and grp_no='$g1'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen1 = MYDB_fetch_array($result); + + $query = "select *,(ldr+pwr+itl)*7/15 as tot,h,w,b from tournament where grp='$group' and grp_no='$g2'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen2 = MYDB_fetch_array($result); + + if($type == 0) { $turn = 10; } + else { $turn = 100; } + + if($tnmt_type == 0) { $tp = "tot"; $tp2 = "tt"; } + elseif($tnmt_type == 1) { $tp = "ldr"; $tp2 = "tl"; } + elseif($tnmt_type == 2) { $tp = "pwr"; $tp2 = "tp"; } + elseif($tnmt_type == 3) { $tp = "itl"; $tp2 = "ti"; } + + $e1 = $energy1 = round($gen1[$tp] * getLog($gen1[lvl], $gen2[lvl]) * 10); + $e2 = $energy2 = round($gen2[$tp] * getLog($gen1[lvl], $gen2[lvl]) * 10); + + //아이템 로그 + if($gen1[h] > 6 && ($tnmt_type == 0 || $tnmt_type == 1)) { + switch(rand()%4) { + case 0: $log[count($log)] = "{$gen1[name]}의 ".getHorseName($gen1[h])."(이)가 포효합니다!"; break; + case 1: $log[count($log)] = "{$gen1[name]}의 ".getHorseName($gen1[h])."(이)가 그 위용을 뽐냅니다!"; break; + case 2: $log[count($log)] = "{$gen1[name]}(이)가 ".getHorseName($gen1[h])."(을)를 타고 있습니다!"; break; + case 3: $log[count($log)] = "{$gen1[name]}의 ".getHorseName($gen1[h])."(이)가 갈기를 휘날립니다!"; break; + } + } + if($gen1[w] > 6 && ($tnmt_type == 0 || $tnmt_type == 2)) { + switch(rand()%4) { + case 0: $log[count($log)] = "{$gen1[name]}의 ".getWeapName($gen1[w])."(이)가 번뜩입니다!"; break; + case 1: $log[count($log)] = "{$gen1[name]}의 ".getWeapName($gen1[w])."(이)가 푸르게 빛납니다!"; break; + case 2: $log[count($log)] = "{$gen1[name]}의 ".getWeapName($gen1[w])."에서 살기가 느껴집니다!"; break; + case 3: $log[count($log)] = "{$gen1[name]}의 손에는 ".getWeapName($gen1[w])."(이)가 쥐어져 있습니다!"; break; + } + } + if($gen1[b] > 6 && ($tnmt_type == 0 || $tnmt_type == 3)) { + switch(rand()%4) { + case 0: $log[count($log)] = "{$gen1[name]}(이)가 ".getBookName($gen1[b])."(을)를 펼쳐듭니다!"; break; + case 1: $log[count($log)] = "{$gen1[name]}(이)가 ".getBookName($gen1[b])."(을)를 품에서 꺼냅니다!"; break; + case 2: $log[count($log)] = "{$gen1[name]}(이)가 ".getBookName($gen1[b])."(을)를 들고 있습니다!"; break; + case 3: $log[count($log)] = "{$gen1[name]}의 손에는 ".getBookName($gen1[b])."(이)가 쥐어져 있습니다!"; break; + } + } + if($gen2[h] > 6 && ($tnmt_type == 0 || $tnmt_type == 1)) { + switch(rand()%4) { + case 0: $log[count($log)] = "{$gen2[name]}의 ".getHorseName($gen2[h])."(이)가 포효합니다!"; break; + case 1: $log[count($log)] = "{$gen2[name]}의 ".getHorseName($gen2[h])."(이)가 그 위용을 뽐냅니다!"; break; + case 2: $log[count($log)] = "{$gen2[name]}(이)가 ".getHorseName($gen2[h])."(을)를 타고 있습니다!"; break; + case 3: $log[count($log)] = "{$gen2[name]}의 ".getHorseName($gen2[h])."(이)가 갈기를 휘날립니다!"; break; + } + } + if($gen2[w] > 6 && ($tnmt_type == 0 || $tnmt_type == 2)) { + switch(rand()%4) { + case 0: $log[count($log)] = "{$gen2[name]}의 ".getWeapName($gen2[w])."(이)가 번뜩입니다!"; break; + case 1: $log[count($log)] = "{$gen2[name]}의 ".getWeapName($gen2[w])."(이)가 푸르게 빛납니다!"; break; + case 2: $log[count($log)] = "{$gen2[name]}의 ".getWeapName($gen2[w])."에서 살기가 느껴집니다!"; break; + case 3: $log[count($log)] = "{$gen2[name]}의 손에는 ".getWeapName($gen2[w])."(이)가 쥐어져 있습니다!"; break; + } + } + if($gen2[b] > 6 && ($tnmt_type == 0 || $tnmt_type == 3)) { + switch(rand()%4) { + case 0: $log[count($log)] = "{$gen2[name]}(이)가 ".getBookName($gen2[b])."(을)를 펼쳐듭니다!"; break; + case 1: $log[count($log)] = "{$gen2[name]}(이)가 ".getBookName($gen2[b])."(을)를 품에서 꺼냅니다!"; break; + case 2: $log[count($log)] = "{$gen2[name]}(이)가 ".getBookName($gen2[b])."(을)를 들고 있습니다!"; break; + case 3: $log[count($log)] = "{$gen2[name]}의 손에는 ".getBookName($gen2[b])."(이)가 쥐어져 있습니다!"; break; + } + } + + $log[count($log)] = "{$gen1[name]} ({$energy1}) vs ({$energy2}) {$gen2[name]}"; + + $gd1 = 0; $gd2 = 0; + $phase = 0; $sel = 2; + while($phase < $turn) { + $phase++; + //평타 + $damage1 = round($gen2[$tp] * (rand() % 21 + 90) / 130); // 90~110% + $damage2 = round($gen1[$tp] * (rand() % 21 + 90) / 130); // 90~110% + //보너스타 + $ratio = rand() % 100; + if($gen1[$tp] >= $ratio) { $damage2 += round($gen1[$tp] * (rand() % 41 + 10) / 130); } // 10~50 + $ratio = rand() % 100; + if($gen2[$tp] >= $ratio) { $damage1 += round($gen2[$tp] * (rand() % 41 + 10) / 130); } // 10~50 + $critical1 = 0; $critical2 = 0; + //막판 분노 + $ratio = rand() % 300; + if($e1 / 5 > $energy1 && $damage1 > $damage2 && $gen1[$tp] >= $ratio) { + $damage2 *= round((rand() % 301 + 200) / 100); // 200 ~ 500% + $critical1 = 1; + if ($tnmt_type == 0) { switch(rand()%2) { case 0: $str = "전력"; break; case 1: $str = "집중"; break; } } + elseif($tnmt_type == 1) { switch(rand()%2) { case 0: $str = "봉시진"; break; case 1: $str = "어린진"; break; } } + elseif($tnmt_type == 2) { switch(rand()%2) { case 0: $str = "삼단"; break; case 1: $str = "나선"; break; } } + elseif($tnmt_type == 3) { switch(rand()%2) { case 0: $str = "독설"; break; case 1: $str = "논파"; break; } } + $log[count($log)] = "{$gen1[name]}의 분노의 {$str} 공격!"; + } + $ratio = rand() % 300; + if($e2 / 5 > $energy2 && $damage2 > $damage1 && $gen2[$tp] >= $ratio) { + $damage1 *= round((rand() % 301 + 200) / 100); // 200 ~ 500% + $critical2 = 1; + if($tnmt_type == 0) { switch(rand()%2) { case 0: $str = "전력"; break; case 1: $str = "집중"; break; } } + elseif($tnmt_type == 1) { switch(rand()%2) { case 0: $str = "봉시진"; break; case 1: $str = "어린진"; break; } } + elseif($tnmt_type == 2) { switch(rand()%2) { case 0: $str = "삼단"; break; case 1: $str = "나선"; break; } } + elseif($tnmt_type == 3) { switch(rand()%2) { case 0: $str = "독설"; break; case 1: $str = "논파"; break; } } + $log[count($log)] = "{$gen2[name]}의 분노의 {$str} 공격!"; + } + //1합 승부 + if($phase == 1) { + $ratio = rand() % 400; + if($gen1[$tp]*0.9 > $gen2[$tp] && $gen1[$tp] >= $ratio) { + $damage1 = 0; $damage2 = $e2; + if ($tnmt_type == 0) { $log[count($log)] = "{$gen1[name]}의 압도!"; } + elseif($tnmt_type == 1) { $log[count($log)] = "{$gen1[name]}의 팔문금쇄진!"; } + elseif($tnmt_type == 2) { $log[count($log)] = "{$gen1[name]}의 일격 필살!"; } + elseif($tnmt_type == 3) { $log[count($log)] = "{$gen1[name]}의 모독 욕설!"; } + } + if($gen2[$tp]*0.9 > $gen1[$tp] && $gen2[$tp] >= $ratio) { + $damage2 = 0; $damage1 = $e1; + if ($tnmt_type == 0) { $log[count($log)] = "{$gen2[name]}의 압도!"; } + elseif($tnmt_type == 1) { $log[count($log)] = "{$gen2[name]}의 팔문금쇄진!"; } + elseif($tnmt_type == 2) { $log[count($log)] = "{$gen2[name]}의 일격 필살!"; } + elseif($tnmt_type == 3) { $log[count($log)] = "{$gen2[name]}의 모독 욕설!"; } + } + } else { + $ratio = rand() % 1000; + if($critical1 == 0 && $gen1[$tp] >= $ratio) { + $damage2 *= round((rand() % 151 + 150) / 100); // 150 ~ 300% + $critical1 = 1; + if ($tnmt_type == 0) { switch(rand()%6) { case 0: $str = "참격"; break; case 1: $str = "집중"; break; case 2: $str = "역공"; break; case 3: $str = "반격"; break; case 4: $str = "선제"; break; case 5: $str = "도발"; break; } } + elseif($tnmt_type == 1) { switch(rand()%6) { case 0: $str = "추행진"; break; case 1: $str = "학익진"; break; case 2: $str = "장사진"; break; case 3: $str = "형액진"; break; case 4: $str = "기형진"; break; case 5: $str = "구행진"; break; } } + elseif($tnmt_type == 2) { switch(rand()%6) { case 0: $str = "기합"; break; case 1: $str = "기염"; break; case 2: $str = "반격"; break; case 3: $str = "역공"; break; case 4: $str = "삼단"; break; case 5: $str = "나선"; break; } } + elseif($tnmt_type == 3) { switch(rand()%6) { case 0: $str = "논파"; break; case 1: $str = "항변"; break; case 2: $str = "반론"; break; case 3: $str = "반박"; break; case 4: $str = "도발"; break; case 5: $str = "면박"; break; } } + $log[count($log)] = "{$gen1[name]}의 {$str}!"; + } + $ratio = rand() % 1000; + if($critical2 == 0 && $gen2[$tp] >= $ratio) { + $damage1 *= round((rand() % 151 + 150) / 100); // 150 ~ 300% + $critical2 = 1; + if ($tnmt_type == 0) { switch(rand()%6) { case 0: $str = "참격"; break; case 1: $str = "집중"; break; case 2: $str = "역공"; break; case 3: $str = "반격"; break; case 4: $str = "선제"; break; case 5: $str = "도발"; break; } } + elseif($tnmt_type == 1) { switch(rand()%6) { case 0: $str = "추행진"; break; case 1: $str = "학익진"; break; case 2: $str = "장사진"; break; case 3: $str = "형액진"; break; case 4: $str = "기형진"; break; case 5: $str = "구행진"; break; } } + elseif($tnmt_type == 2) { switch(rand()%6) { case 0: $str = "기합"; break; case 1: $str = "기염"; break; case 2: $str = "반격"; break; case 3: $str = "역공"; break; case 4: $str = "삼단"; break; case 5: $str = "나선"; break; } } + elseif($tnmt_type == 3) { switch(rand()%6) { case 0: $str = "논파"; break; case 1: $str = "항변"; break; case 2: $str = "반론"; break; case 3: $str = "반박"; break; case 4: $str = "도발"; break; case 5: $str = "면박"; break; } } + $log[count($log)] = "{$gen2[name]}의 {$str}!"; + } + } + + $energy1 -= $damage1; + $energy2 -= $damage2; + $tDamage1 = $damage1; $tDamage2 = $damage2; + $tEnergy1 = $energy1; $tEnergy2 = $energy2; + if($energy1 <= 0 && $energy2 <= 0) { + $r1 = $tEnergy1 / $tDamage1; + $r2 = $tEnergy2 / $tDamage2; + + if($r1 > $r2) { + $offset = round($tEnergy2*$tDamage1/$tDamage2); + $damage1 += $offset; $energy1 -= $offset; + $damage2 += $tEnergy2; $energy2 = 0; + } else { + $offset = round($tEnergy1*$tDamage2/$tDamage1); + $damage2 += $offset; $energy2 -= $offset; + $damage1 += $tEnergy1; $energy1 = 0; + } + } elseif($energy1 * $energy2 <= 0) { + if($energy2 < 0) { + $offset = round($tEnergy2*$tDamage1/$tDamage2); + $damage1 += $offset; $energy1 -= $offset; + $damage2 += $tEnergy2; $energy2 = 0; + } + if($energy1 < 0) { + $offset = round($tEnergy1*$tDamage2/$tDamage1); + $damage2 += $offset; $energy2 -= $offset; + $damage1 += $tEnergy1; $energy1 = 0; + } + } + $gd1 += $damage1; $gd2 += $damage2; + $energy1 = round($energy1); $energy2 = round($energy2); + $damage1 = round($damage1); $damage2 = round($damage2); + + $log[count($log)] = "● "._String::Fill2($phase, 2, "0")."合 : "._String::Fill2($energy1, 3, "0")." (-"._String::Fill2($damage1, 3, "0").") vs (-"._String::Fill2($damage2, 3, "0").") "._String::Fill2($energy2, 3, "0").""; + + if($energy1 <= 0 && $energy2 <= 0) { + if($type == 0) { $sel = 2; break; } + else { + $energy1 = round($e1 / 2); $energy2 = round($e2 / 2); + $log[count($log)] = "재대결!"; + } + } + if($energy1 <= 0) { $sel = 1; break; } + if($energy2 <= 0) { $sel = 0; break; } + } + + $query = "select {$tp2}g as gl from general where no='$gen1[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general1 = MYDB_fetch_array($result); + + $query = "select {$tp2}g as gl from general where no='$gen2[no]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $general2 = MYDB_fetch_array($result); + + switch($sel) { + case 0: + $log[count($log)] = "{$gen1[name]} 승리!"; + + $gl = round(($gd2 - $gd1) / 50); + $query = "update tournament set win=win+1,gl=gl+'$gl' where grp='$group' and grp_no='$g1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update tournament set lose=lose+1,gl=gl-'$gl' where grp='$group' and grp_no='$g2'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + if($general1[gl] > $general2[gl]) { $gl1 = "+1"; $gl2 = "+0"; } + elseif($general1[gl] == $general2[gl]) { $gl1 = "+2"; $gl2 = "-1"; } + else { $gl1 = "+3"; $gl2 = "-2"; } + + $query = "update general set {$tp2}w={$tp2}w+1,{$tp2}g={$tp2}g{$gl1} where no='$gen1[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set {$tp2}l={$tp2}l+1,{$tp2}g={$tp2}g{$gl2} where no='$gen2[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 1: + $log[count($log)] = "{$gen2[name]} 승리!"; + + $gl = round(($gd1 - $gd2) / 50); + $query = "update tournament set win=win+1,gl=gl+'$gl' where grp='$group' and grp_no='$g2'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update tournament set lose=lose+1,gl=gl-'$gl' where grp='$group' and grp_no='$g1'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + if($general2[gl] > $general1[gl]) { $gl2 = "+1"; $gl1 = "+0"; } + elseif($general2[gl] == $general1[gl]) { $gl2 = "+2"; $gl1 = "-1"; } + else { $gl2 = "+3"; $gl1 = "-2"; } + + $query = "update general set {$tp2}l={$tp2}l+1,{$tp2}g={$tp2}g{$gl1} where no='$gen1[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set {$tp2}w={$tp2}w+1,{$tp2}g={$tp2}g{$gl2} where no='$gen2[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + case 2: + $log[count($log)] = "● 무승부!"; + + $query = "update tournament set draw=draw+1 where grp='$group' and (grp_no='$g1' or grp_no='$g2')"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + if($general1[gl] > $general2[gl]) { $gl2 = "-1"; $gl1 = "+1"; } + elseif($general1[gl] == $general2[gl]) { $gl2 = "+0"; $gl1 = "+0"; } + else { $gl2 = "+1"; $gl1 = "-1"; } + + $query = "update general set {$tp2}d={$tp2}d+1,{$tp2}g={$tp2}g{$gl1} where no='$gen1[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set {$tp2}d={$tp2}d+1,{$tp2}g={$tp2}g{$gl2} where no='$gen2[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + } + + if(($tnmt == 2 && $phs < 55) || ($tnmt == 4 && $phs < 5)) { + $cand = getTwo($tnmt, $phs+1); + + $query = "select name from tournament where grp='$group' and grp_no='$cand[0]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen1 = MYDB_fetch_array($result); + + $query = "select name from tournament where grp='$group' and grp_no='$cand[1]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gen2 = MYDB_fetch_array($result); + + $log[count($log)] = "--------------- 다음경기 ---------------
{$gen1[name]} vs {$gen2[name]}"; + } + + pushFightLog($group, $log); +} diff --git a/twe_close/gen.xlsx b/twe_close/gen.xlsx new file mode 100644 index 00000000..fffcc37d Binary files /dev/null and b/twe_close/gen.xlsx differ diff --git a/twe_close/genDatabase.txt b/twe_close/genDatabase.txt new file mode 100644 index 00000000..53d935c9 --- /dev/null +++ b/twe_close/genDatabase.txt @@ -0,0 +1,684 @@ +상성 이름 사진 국가 도시 통 무 지 급 출생 사망 꿈 특기 + 1, "소제1",1001, 0, "낙양", 20, 11, 48, 0, 168, 190, "유지", "-"); $gencount++; + 1, "헌제",1002, 0, "낙양", 17, 13, 61, 0, 170, 250, "안전", "-", "한 왕조는 이대로 끝나는 것인가..."); $gencount++; +999, "사마휘",1003, 0, "양양", 71, 11, 96, 0, 173, 234, "은둔", "신산", "좋지, 좋아~"); $gencount++; +999, "우길",1004, 0, "업", 17, 13, 83, 0, 131, 200, "은둔", "신산"); $gencount++; +999, "화타",1005, 0, "낙양", 53, 25, 70, 0, 151, 220, "은둔", "의술", "아픈 사람들은 모두 내게 오시오. 껄껄껄."); $gencount++; +999, "길평",1006, 0, "허창", 27, 15, 72, 0, 158, 200, "은둔", "의술"); $gencount++; + + 29, "가규",1007, 0, "낙양", 55, 55, 74, 0, 177, 231, "재간", "-"); $gencount++; +136, "가범",1008, 0, "낙양", 58, 48, 73, 0, 202, 237, "유지", "-"); $gencount++; + 49, "가비능",1009, 0, "낙양", 58, 83, 32, 0, 172, 235, "정복", "-"); $gencount++; + 31, "가충",1010, 0, "낙양", 50, 25, 87, 0, 217, 282, "출세", "-"); $gencount++; + 20, "가후",1011, 0, "낙양", 69, 30, 94, 0, 147, 223, "할거", "귀병"); $gencount++; + 73, "간옹",1012, 0, "낙양", 31, 33, 70, 0, 164, 225, "안전", "경작"); $gencount++; +129, "감녕",1013, 0, "낙양", 78, 95, 71, 0, 174, 222, "출세", "무쌍"); $gencount++; +127, "감택",1014, 0, "낙양", 62, 44, 79, 0, 182, 243, "유지", "-"); $gencount++; + 60, "강단",1015, 0, "낙양", 41, 73, 43, 0, 168, 230, "재간", "-"); $gencount++; + 73, "강유",1016, 0, "낙양", 95, 90, 94, 0, 202, 264, "왕좌", "집중"); $gencount++; +102, "고간",1017, 0, "낙양", 60, 57, 51, 0, 168, 206, "유지", "-"); $gencount++; + 27, "고람",1018, 0, "낙양", 72, 67, 59, 0, 159, 201, "출세", "기병"); $gencount++; + 69, "고상",1019, 0, "낙양", 41, 40, 38, 0, 194, 252, "재간", "-"); $gencount++; +144, "고순",1020, 0, "낙양", 79, 82, 65, 0, 162, 198, "의협", "기병"); $gencount++; + 7, "고승",1021, 0, "낙양", 42, 73, 24, 0, 145, 185, "출세", "-"); $gencount++; +120, "고옹",1022, 0, "낙양", 57, 21, 79, 0, 168, 243, "출세", "-"); $gencount++; + 63, "고정",1023, 0, "낙양", 67, 65, 55, 0, 190, 251, "정복", "-"); $gencount++; + 53, "고패",1024, 0, "낙양", 53, 56, 28, 0, 170, 212, "유지", "-"); $gencount++; + 74, "공도",1025, 0, "낙양", 26, 73, 19, 0, 164, 200, "재간", "-"); $gencount++; +142, "공손강",1026, 0, "낙양", 64, 72, 61, 0, 172, 210, "정복", "-"); $gencount++; +142, "공손공",1027, 0, "낙양", 68, 41, 75, 0, 174, 238, "정복", "-"); $gencount++; +142, "공손도",1028, 0, "낙양", 62, 72, 41, 0, 154, 204, "정복", "기병"); $gencount++; + 65, "공손범",1029, 0, "낙양", 61, 67, 61, 0, 158, 199, "출세", "-"); $gencount++; + 65, "공손속",1030, 0, "낙양", 60, 76, 41, 0, 176, 199, "정복", "-"); $gencount++; + 10, "공손연",1031, 0, "낙양", 74, 79, 64, 0, 205, 238, "패권", "돌격"); $gencount++; + 65, "공손월",1032, 0, "낙양", 47, 63, 46, 0, 160, 192, "정복", "-"); $gencount++; + 65, "공손찬",1033, 0, "낙양", 61, 87, 67, 0, 152, 199, "패권", "기병"); $gencount++; + 43, "공융",1034, 0, "낙양", 63, 48, 85, 0, 153, 208, "왕좌", "경작"); $gencount++; + 35, "공주",1035, 0, "낙양", 64, 35, 78, 0, 151, 194, "재간", "-"); $gencount++; + 83, "공지",1036, 0, "낙양", 57, 54, 64, 0, 178, 242, "대의", "-"); $gencount++; + 26, "곽가",1037, 0, "낙양", 47, 23, 99, 0, 170, 207, "패권", "귀모"); $gencount++; +111, "곽도",1038, 0, "낙양", 63, 67, 81, 0, 155, 205, "재간", "-"); $gencount++; + 2, "곽사",1039, 0, "낙양", 58, 67, 31, 0, 146, 197, "패권", "-"); $gencount++; + 80, "곽유지",1040, 0, "낙양", 37, 22, 71, 0, 190, 259, "재간", "상재"); $gencount++; + 67, "곽익",1041, 0, "낙양", 67, 60, 67, 0, 207, 270, "재간", "-"); $gencount++; + 67, "곽준",1042, 0, "낙양", 76, 69, 73, 0, 178, 217, "출세", "-"); $gencount++; + 27, "곽혁",1043, 0, "낙양", 40, 29, 80, 0, 187, 228, "안전", "-"); $gencount++; + 20, "곽회",1044, 0, "낙양", 77, 75, 71, 0, 187, 255, "정복", "-"); $gencount++; + 39, "관구검",1045, 0, "낙양", 72, 68, 77, 0, 202, 255, "대의", "-"); $gencount++; + 76, "관색",1046, 0, "낙양", 69, 85, 67, 0, 200, 239, "의협", "징병"); $gencount++; + 76, "관우",1047, 0, "낙양", 96, 98, 80, 0, 162, 219, "의협", "위압"); $gencount++; + 76, "관이",1048, 0, "낙양", 48, 60, 58, 0, 219, 263, "안전", "-"); $gencount++; + 76, "관통",1049, 0, "낙양", 49, 63, 60, 0, 218, 259, "대의", "-"); $gencount++; + 76, "관평",1050, 0, "낙양", 77, 80, 70, 0, 186, 219, "의협", "보병"); $gencount++; + 7, "관해",1051, 0, "낙양", 66, 90, 35, 0, 160, 193, "출세", "-"); $gencount++; + 76, "관흥",1052, 0, "낙양", 69, 84, 72, 0, 199, 234, "의협", "돌격"); $gencount++; + 40, "괴량",1053, 0, "낙양", 41, 28, 81, 0, 155, 204, "안전", "신중"); $gencount++; + 40, "괴월",1054, 0, "낙양", 26, 30, 84, 0, 157, 214, "유지", "귀병"); $gencount++; + 98, "교모",1055, 0, "낙양", 59, 58, 61, 0, 150, 191, "안전", "-"); $gencount++; + 98, "교현",1056, 0, "낙양", 50, 18, 60, 0, 158, 210, "재간", "-"); $gencount++; + 6, "구역거",1057, 0, "낙양", 51, 72, 49, 0, 152, 193, "안전", "-"); $gencount++; + 80, "극정",1058, 0, "낙양", 38, 25, 75, 0, 208, 278, "유지", "-"); $gencount++; + 46, "금선",1059, 0, "낙양", 55, 49, 36, 0, 155, 208, "할거", "-"); $gencount++; + 62, "금환삼결",1060, 0, "낙양", 46, 76, 17, 0, 192, 225, "출세", "-"); $gencount++; +141, "기령",1061, 0, "낙양", 76, 81, 33, 0, 155, 199, "대의", "무쌍"); $gencount++; +122, "낙통",1062, 0, "낙양", 57, 44, 69, 0, 193, 228, "유지", "-"); $gencount++; +124, "노숙1",1063, 0, "낙양", 90, 42, 94, 0, 172, 217, "왕좌", "상재"); $gencount++; + 75, "노식",1064, 0, "낙양", 91, 54, 80, 0, 139, 192, "왕좌", "징병"); $gencount++; + 59, "뇌동",1065, 0, "낙양", 70, 77, 45, 0, 172, 218, "출세", "궁병"); $gencount++; +142, "뇌박",1066, 0, "낙양", 54, 54, 33, 0, 157, 206, "유지", "-"); $gencount++; +127, "능조",1067, 0, "낙양", 67, 80, 44, 0, 165, 203, "재간", "공성"); $gencount++; +127, "능통",1068, 0, "낙양", 71, 78, 58, 0, 189, 237, "의협", "궁병"); $gencount++; + 64, "단경",1069, 0, "낙양", 68, 61, 68, 0, 156, 199, "정복", "-"); $gencount++; +132, "담웅",1070, 0, "낙양", 52, 77, 19, 0, 188, 221, "출세", "-"); $gencount++; + 99, "답둔",1071, 0, "낙양", 59, 71, 31, 0, 158, 207, "유지", "-"); $gencount++; +132, "당자",1072, 0, "낙양", 59, 56, 45, 0, 196, 265, "안전", "-"); $gencount++; + 60, "대래동주",1073, 0, "낙양", 40, 65, 24, 0, 195, 249, "안전", "-"); $gencount++; + 82, "도겸",1074, 0, "낙양", 51, 32, 61, 0, 132, 194, "할거", "인덕"); $gencount++; +120, "도준",1075, 0, "낙양", 64, 57, 50, 0, 238, 285, "안전", "-"); $gencount++; + 73, "동궐",1076, 0, "낙양", 66, 50, 76, 0, 204, 271, "대의", "-"); $gencount++; + 62, "동다나",1077, 0, "낙양", 51, 71, 27, 0, 189, 225, "유지", "-"); $gencount++; + 2, "동민",1078, 0, "낙양", 52, 65, 49, 0, 149, 192, "안전", "-"); $gencount++; + 21, "동소",1079, 0, "낙양", 46, 46, 62, 0, 156, 236, "패권", "-"); $gencount++; +127, "동습",1080, 0, "낙양", 53, 64, 32, 0, 169, 215, "출세", "-"); $gencount++; + 89, "동승",1081, 0, "낙양", 75, 66, 65, 0, 154, 200, "왕좌", "-"); $gencount++; + 78, "동윤",1082, 0, "낙양", 64, 26, 78, 0, 192, 246, "왕좌", "-"); $gencount++; + 2, "동탁",1083, 0, "낙양", 87, 91, 54, 0, 139, 192, "패권", "기병"); $gencount++; + 66, "동화",1084, 0, "낙양", 48, 64, 53, 0, 168, 219, "대의", "-"); $gencount++; + 32, "두예",1085, 0, "낙양", 88, 80, 84, 0, 222, 284, "정복", "-"); $gencount++; + 7, "등무",1086, 0, "낙양", 43, 74, 19, 0, 147, 185, "정복", "-"); $gencount++; + 41, "등애",1087, 0, "낙양", 94, 82, 92, 0, 197, 264, "패권", "신산"); $gencount++; +116, "등윤",1088, 0, "낙양", 34, 42, 68, 0, 194, 256, "안전", "-"); $gencount++; + 73, "등지",1089, 0, "낙양", 74, 51, 80, 0, 182, 251, "할거", "경작"); $gencount++; + 41, "등충",1090, 0, "낙양", 60, 82, 55, 0, 230, 264, "출세", "-"); $gencount++; + 54, "등현",1091, 0, "낙양", 65, 59, 61, 0, 188, 248, "출세", "-"); $gencount++; + 29, "마균",1092, 0, "낙양", 33, 38, 80, 0, 200, 259, "안전", "-"); $gencount++; + 71, "마대",1093, 0, "낙양", 77, 79, 49, 0, 183, 246, "대의", "기병"); $gencount++; + 70, "마등",1094, 0, "낙양", 80, 87, 56, 0, 149, 211, "왕좌", "기병"); $gencount++; + 80, "마속",1095, 0, "낙양", 73, 64, 82, 0, 190, 228, "패권", "집중"); $gencount++; + 77, "마량",1096, 0, "낙양", 57, 25, 87, 0, 187, 225, "왕좌", "-"); $gencount++; + 48, "마완",1097, 0, "낙양", 49, 64, 26, 0, 170, 211, "안전", "기병"); $gencount++; + 19, "마준",1098, 0, "낙양", 45, 63, 62, 0, 196, 260, "안전", "-"); $gencount++; + 71, "마철",1099, 0, "낙양", 71, 60, 31, 0, 179, 211, "대의", "기병"); $gencount++; + 70, "마초",1100, 0, "낙양", 78, 97, 40, 0, 176, 226, "대의", "기병"); $gencount++; +131, "마충1",1101, 0, "낙양", 67, 62, 51, 0, 186, 222, "재간", "-"); $gencount++; + 69, "마충2",1102, 0, "낙양", 61, 68, 51, 0, 187, 249, "출세", "-"); $gencount++; + 71, "마휴",1103, 0, "낙양", 71, 60, 32, 0, 178, 211, "대의", "기병"); $gencount++; +116, "만총",1104, 0, "낙양", 79, 40, 78, 0, 170, 242, "할거", "신중"); $gencount++; + 51, "망아장",1105, 0, "낙양", 29, 64, 20, 0, 191, 225, "출세", "-"); $gencount++; + 44, "맹달",1106, 0, "낙양", 70, 66, 72, 0, 172, 228, "할거", "귀병"); $gencount++; + 60, "맹우",1107, 0, "낙양", 63, 79, 26, 0, 190, 251, "정복", "-"); $gencount++; + 60, "맹획",1108, 0, "낙양", 78, 92, 50, 0, 186, 245, "왕좌", "격노"); $gencount++; + 29, "모개",1109, 0, "낙양", 46, 56, 56, 0, 161, 216, "대의", "-"); $gencount++; + 51, "목록대왕",1110, 0, "낙양", 58, 71, 65, 0, 184, 225, "재간", "척사"); $gencount++; + 96, "목순",1111, 0, "낙양", 17, 21, 68, 0, 157, 191, "왕좌", "-"); $gencount++; + 43, "무안국",1112, 0, "낙양", 51, 73, 18, 0, 156, 191, "재간", "-"); $gencount++; + 28, "문빙",1113, 0, "낙양", 70, 77, 43, 0, 178, 237, "유지", "-"); $gencount++; + 38, "문앙",1114, 0, "낙양", 71, 91, 46, 0, 222, 285, "대의", "-"); $gencount++; +102, "문추",1115, 0, "낙양", 72, 94, 25, 0, 161, 200, "출세", "무쌍"); $gencount++; + 38, "문흠",1116, 0, "낙양", 76, 77, 43, 0, 200, 258, "대의", "-"); $gencount++; + 49, "미당대왕",1117, 0, "낙양", 64, 75, 32, 0, 202, 260, "유지", "-"); $gencount++; +108, "미방",1118, 0, "낙양", 58, 65, 37, 0, 169, 222, "패권", "징병"); $gencount++; + 77, "미축",1119, 0, "낙양", 26, 30, 65, 0, 165, 220, "왕좌", "상재"); $gencount++; + 94, "반봉",1120, 0, "낙양", 61, 75, 17, 0, 155, 191, "출세", "-"); $gencount++; + 44, "반준",1121, 0, "낙양", 41, 21, 67, 0, 174, 239, "안전", "-"); $gencount++; + 65, "방덕",1122, 0, "낙양", 76, 90, 67, 0, 170, 219, "의협", "기병"); $gencount++; + 73, "방통",1123, 0, "낙양", 86, 41, 97, 0, 179, 214, "패권", "반계"); $gencount++; + 65, "방회",1124, 0, "낙양", 25, 33, 59, 0, 205, 272, "안전", "-"); $gencount++; + 68, "배원소",1125, 0, "낙양", 45, 69, 33, 0, 169, 200, "재간", "-"); $gencount++; + 78, "번건",1126, 0, "낙양", 28, 31, 68, 0, 205, 270, "대의", "-"); $gencount++; +149, "번주",1127, 0, "낙양", 67, 77, 21, 0, 149, 192, "할거", "-"); $gencount++; + 72, "법정",1128, 0, "낙양", 81, 29, 93, 0, 176, 220, "패권", "신산"); $gencount++; + 8, "변희",1129, 0, "낙양", 65, 65, 27, 0, 169, 200, "안전", "-"); $gencount++; +121, "보질",1130, 0, "낙양", 58, 28, 77, 0, 177, 247, "유지", "-"); $gencount++; +113, "복양흥",1131, 0, "낙양", 58, 51, 71, 0, 224, 264, "유지", "-"); $gencount++; +110, "봉기",1132, 0, "낙양", 68, 52, 80, 0, 153, 202, "패권", "집중"); $gencount++; + 74, "부동",1133, 0, "낙양", 58, 69, 69, 0, 183, 222, "대의", "-"); $gencount++; +108, "부사인",1134, 0, "낙양", 54, 59, 51, 0, 182, 222, "출세", "-"); $gencount++; + 38, "부손",1135, 0, "낙양", 24, 43, 68, 0, 162, 230, "안전", "-"); $gencount++; + 74, "부첨",1136, 0, "낙양", 61, 74, 45, 0, 216, 263, "대의", "-"); $gencount++; + 66, "비시",1137, 0, "낙양", 18, 36, 61, 0, 176, 240, "재간", "-"); $gencount++; +141, "비연",1138, 0, "낙양", 66, 65, 53, 0, 196, 238, "출세", "-"); $gencount++; + 77, "비위",1139, 0, "낙양", 72, 26, 73, 0, 193, 253, "대의", "-"); $gencount++; +144, "사광",1140, 0, "낙양", 57, 49, 66, 0, 175, 235, "안전", "-"); $gencount++; + 71, "사마가",1141, 0, "낙양", 61, 85, 18, 0, 167, 222, "정복", "돌격"); $gencount++; + 20, "사마랑",1142, 0, "낙양", 25, 32, 63, 0, 171, 217, "대의", "-"); $gencount++; + 24, "사마망",1143, 0, "낙양", 71, 61, 65, 0, 205, 271, "정복", "-"); $gencount++; + 24, "사마부",1144, 0, "낙양", 55, 31, 73, 0, 180, 272, "대의", "-"); $gencount++; + 31, "사마사",1145, 0, "낙양", 87, 64, 91, 0, 208, 255, "정복", "-"); $gencount++; + 31, "사마소",1146, 0, "낙양", 93, 63, 84, 0, 211, 265, "정복", "-"); $gencount++; + 31, "사마염",1147, 0, "낙양", 92, 78, 72, 0, 236, 290, "패권", "-"); $gencount++; + 30, "사마유",1148, 0, "낙양", 62, 45, 79, 0, 248, 283, "왕좌", "-"); $gencount++; + 31, "사마의",1149, 0, "낙양", 98, 67, 98, 0, 179, 251, "패권", "반계"); $gencount++; +139, "사섭",1150, 0, "낙양", 63, 61, 71, 0, 137, 226, "안전", "-"); $gencount++; +139, "사일",1151, 0, "낙양", 59, 44, 68, 0, 153, 230, "유지", "-"); $gencount++; +132, "사정",1152, 0, "낙양", 67, 71, 20, 0, 178, 221, "안전", "-"); $gencount++; +146, "사지",1153, 0, "낙양", 61, 49, 70, 0, 163, 227, "안전", "-"); $gencount++; +144, "사휘",1154, 0, "낙양", 67, 71, 61, 0, 165, 227, "유지", "-"); $gencount++; + 35, "서막",1155, 0, "낙양", 56, 41, 72, 0, 171, 249, "유지", "-"); $gencount++; + 76, "서서",1156, 0, "낙양", 90, 70, 96, 0, 178, 232, "의협", "귀병"); $gencount++; +124, "서성",1157, 0, "낙양", 83, 76, 83, 0, 177, 234, "대의", "-"); $gencount++; +142, "서영",1158, 0, "낙양", 47, 63, 33, 0, 147, 191, "안전", "-"); $gencount++; + 23, "서질",1159, 0, "낙양", 55, 73, 34, 0, 207, 253, "재간", "-"); $gencount++; + 23, "서황",1160, 0, "낙양", 79, 89, 68, 0, 165, 228, "의협", "필살"); $gencount++; + 32, "석포",1161, 0, "낙양", 71, 63, 59, 0, 214, 272, "정복", "-"); $gencount++; +131, "설영",1162, 0, "낙양", 46, 23, 64, 0, 223, 282, "유지", "-"); $gencount++; +128, "설종",1163, 0, "낙양", 27, 33, 67, 0, 187, 243, "유지", "-"); $gencount++; + 69, "성의",1164, 0, "낙양", 45, 64, 22, 0, 168, 211, "재간", "-"); $gencount++; +129, "소비",1165, 0, "낙양", 67, 63, 49, 0, 172, 221, "대의", "-"); $gencount++; + 76, "손건",1166, 0, "낙양", 42, 33, 73, 0, 165, 215, "대의", "거상"); $gencount++; +125, "손견",1167, 0, "낙양", 96, 95, 76, 0, 156, 192, "왕좌", "무쌍"); $gencount++; +126, "손광",1168, 0, "낙양", 63, 54, 58, 0, 186, 207, "유지", "-"); $gencount++; +125, "손권",1169, 0, "낙양", 90, 77, 83, 0, 182, 252, "할거", "수비"); $gencount++; +126, "손랑",1170, 0, "낙양", 27, 54, 28, 0, 187, 226, "안전", "-"); $gencount++; +126, "손등",1171, 0, "낙양", 52, 39, 77, 0, 209, 241, "할거", "-"); $gencount++; +125, "손량",1172, 0, "낙양", 24, 23, 79, 0, 243, 260, "할거", "-"); $gencount++; + 20, "손례",1173, 0, "낙양", 64, 64, 69, 0, 180, 250, "안전", "-"); $gencount++; +124, "손소",1174, 0, "낙양", 76, 80, 68, 0, 188, 241, "정복", "-"); $gencount++; +130, "손수",1175, 0, "낙양", 67, 57, 59, 0, 235, 299, "안전", "-"); $gencount++; +126, "손유",1176, 0, "낙양", 77, 60, 67, 0, 177, 215, "정복", "-"); $gencount++; +122, "손이",1177, 0, "낙양", 57, 62, 57, 0, 223, 272, "안전", "-"); $gencount++; +126, "손정",1178, 0, "낙양", 59, 56, 62, 0, 160, 206, "유지", "-"); $gencount++; +115, "손준",1179, 0, "낙양", 59, 69, 51, 0, 219, 256, "정복", "-"); $gencount++; + 7, "손중",1180, 0, "낙양", 53, 63, 24, 0, 154, 185, "안전", "-"); $gencount++; +125, "손책",1181, 0, "낙양", 96, 96, 78, 0, 175, 200, "패권", "필살"); $gencount++; +115, "손침",1182, 0, "낙양", 49, 71, 40, 0, 231, 258, "패권", "-"); $gencount++; +114, "손호",1183, 0, "낙양", 20, 78, 67, 0, 242, 284, "패권", "-"); $gencount++; +126, "손화",1184, 0, "낙양", 35, 25, 71, 0, 224, 253, "왕좌", "-"); $gencount++; +127, "손환",1185, 0, "낙양", 79, 65, 70, 0, 197, 228, "정복", "-"); $gencount++; +126, "손휴",1186, 0, "낙양", 63, 43, 64, 0, 235, 264, "정복", "-"); $gencount++; +117, "손흠",1187, 0, "낙양", 66, 63, 33, 0, 235, 280, "정복", "-"); $gencount++; +147, "송헌",1188, 0, "낙양", 42, 63, 41, 0, 157, 200, "안전", "-"); $gencount++; + 95, "순우경",1189, 0, "낙양", 72, 67, 60, 0, 146, 200, "할거", "-"); $gencount++; + 22, "순욱1",1190, 0, "낙양", 54, 29, 97, 0, 163, 212, "왕좌", "집중"); $gencount++; + 22, "순유",1191, 0, "낙양", 73, 41, 90, 0, 157, 214, "대의", "신중"); $gencount++; + 29, "신비",1192, 0, "낙양", 47, 28, 74, 0, 171, 240, "재간", "-"); $gencount++; + 37, "신의",1193, 0, "낙양", 55, 61, 51, 0, 190, 252, "출세", "-"); $gencount++; + 37, "신탐",1194, 0, "낙양", 56, 58, 57, 0, 188, 254, "출세", "-"); $gencount++; + 85, "신평",1195, 0, "낙양", 68, 51, 75, 0, 165, 204, "왕좌", "-"); $gencount++; +102, "심배",1196, 0, "낙양", 75, 66, 68, 0, 156, 204, "패권", "귀병"); $gencount++; +126, "심영",1197, 0, "낙양", 53, 72, 51, 0, 235, 280, "재간", "-"); $gencount++; + 47, "아하소과",1198, 0, "낙양", 53, 75, 15, 0, 204, 253, "안전", "척사"); $gencount++; + 62, "아회남",1199, 0, "낙양", 50, 74, 30, 0, 190, 225, "출세", "척사"); $gencount++; + 23, "악진",1200, 0, "낙양", 73, 67, 56, 0, 159, 218, "대의", "돌격"); $gencount++; + 23, "악침",1201, 0, "낙양", 45, 52, 33, 0, 196, 257, "대의", "-"); $gencount++; + 63, "악환",1202, 0, "낙양", 54, 82, 55, 0, 196, 251, "재간", "-"); $gencount++; +102, "안량",1203, 0, "낙양", 73, 93, 36, 0, 160, 200, "출세", "위압"); $gencount++; + 14, "양백",1204, 0, "낙양", 55, 54, 53, 0, 171, 214, "안전", "-"); $gencount++; + 92, "양봉1",1205, 0, "낙양", 57, 64, 36, 0, 153, 197, "유지", "-"); $gencount++; + 91, "양봉2",1206, 0, "낙양", 62, 78, 61, 0, 191, 252, "정복", "-"); $gencount++; + 13, "양송",1207, 0, "낙양", 15, 35, 34, 0, 167, 215, "안전", "-"); $gencount++; + 43, "양수",1208, 0, "낙양", 18, 31, 91, 0, 175, 219, "재간", "귀병"); $gencount++; + 61, "양의",1209, 0, "낙양", 67, 56, 71, 0, 190, 235, "유지", "-"); $gencount++; +141, "양조1",1210, 0, "낙양", 68, 54, 60, 0, 202, 256, "출세", "-"); $gencount++; + 9, "양추1",1211, 0, "낙양", 51, 67, 16, 0, 159, 199, "정복", "-"); $gencount++; + 31, "양호",1212, 0, "낙양", 91, 69, 80, 0, 221, 278, "패권", "-"); $gencount++; + 53, "양회",1213, 0, "낙양", 60, 67, 40, 0, 167, 212, "출세", "-"); $gencount++; +141, "양흥",1214, 0, "낙양", 52, 68, 17, 0, 169, 211, "안전", "-"); $gencount++; + 6, "어부라",1215, 0, "낙양", 78, 80, 61, 0, 150, 195, "정복", "-"); $gencount++; + 64, "엄강",1216, 0, "낙양", 57, 65, 44, 0, 163, 192, "재간", "-"); $gencount++; + 10, "엄백호",1217, 0, "낙양", 48, 68, 30, 0, 150, 197, "할거", "-"); $gencount++; + 10, "엄여",1218, 0, "낙양", 35, 66, 24, 0, 153, 197, "할거", "-"); $gencount++; + 69, "엄안",1219, 0, "낙양", 72, 84, 67, 0, 151, 222, "왕좌", "-"); $gencount++; + 7, "엄정",1220, 0, "낙양", 31, 68, 49, 0, 151, 189, "출세", "-"); $gencount++; +121, "엄준",1221, 0, "낙양", 44, 24, 71, 0, 169, 246, "재간", "-"); $gencount++; + 71, "여개",1222, 0, "낙양", 51, 42, 67, 0, 194, 227, "유지", "-"); $gencount++; + 29, "여건",1223, 0, "낙양", 44, 68, 29, 0, 173, 238, "출세", "-"); $gencount++; +107, "여광",1224, 0, "낙양", 60, 67, 27, 0, 162, 207, "유지", "-"); $gencount++; +124, "여몽",1225, 0, "낙양", 92, 78, 93, 0, 178, 219, "패권", "궁병"); $gencount++; +123, "여범",1226, 0, "낙양", 43, 34, 71, 0, 169, 228, "할거", "-"); $gencount++; +107, "여상",1227, 0, "낙양", 62, 68, 26, 0, 164, 207, "유지", "-"); $gencount++; +105, "여위황",1228, 0, "낙양", 42, 62, 38, 0, 159, 200, "정복", "-"); $gencount++; +145, "여포",1229, 0, "낙양", 74,100, 29, 0, 156, 198, "패권", "돌격"); $gencount++; + 50, "염우",1230, 0, "낙양", 58, 51, 18, 0, 209, 264, "출세", "-"); $gencount++; + 40, "염유",1231, 0, "낙양", 59, 75, 51, 0, 168, 227, "출세", "-"); $gencount++; + 18, "염포",1232, 0, "낙양", 33, 35, 77, 0, 163, 231, "유지", "-"); $gencount++; + 40, "예형",1233, 0, "낙양", 77, 31, 95, 0, 173, 209, "은둔", "통찰"); $gencount++; +133, "오강",1234, 0, "낙양", 47, 37, 61, 0, 216, 275, "안전", "-"); $gencount++; + 59, "오란",1235, 0, "낙양", 67, 75, 42, 0, 170, 218, "재간", "-"); $gencount++; + 72, "오반",1236, 0, "낙양", 70, 66, 45, 0, 171, 234, "재간", "-"); $gencount++; +128, "오언",1237, 0, "낙양", 71, 60, 52, 0, 235, 297, "재간", "-"); $gencount++; +126, "오연",1238, 0, "낙양", 36, 70, 31, 0, 234, 280, "정복", "-"); $gencount++; + 69, "오의",1239, 0, "낙양", 75, 72, 74, 0, 165, 237, "유지", "-"); $gencount++; + 19, "오질",1240, 0, "낙양", 43, 37, 69, 0, 177, 230, "출세", "-"); $gencount++; + 51, "올돌골",1241, 0, "낙양", 77, 92, 15, 0, 186, 225, "출세", "척사"); $gencount++; + 52, "옹개",1242, 0, "낙양", 58, 67, 51, 0, 188, 225, "안전", "-"); $gencount++; + 20, "왕경",1243, 0, "낙양", 55, 47, 65, 0, 206, 260, "재간", "-"); $gencount++; + 97, "왕광",1244, 0, "낙양", 72, 67, 54, 0, 150, 190, "유지", "-"); $gencount++; + 30, "왕기1",1245, 0, "낙양", 76, 62, 70, 0, 190, 261, "유지", "-"); $gencount++; + 34, "왕랑",1246, 0, "낙양", 49, 29, 51, 0, 162, 228, "할거", "-"); $gencount++; + 57, "왕루",1247, 0, "낙양", 40, 28, 76, 0, 173, 211, "유지", "-"); $gencount++; + 76, "왕보",1248, 0, "낙양", 47, 34, 75, 0, 171, 219, "대의", "-"); $gencount++; + 86, "왕수",1249, 0, "낙양", 34, 34, 67, 0, 168, 218, "재간", "-"); $gencount++; + 26, "왕쌍",1250, 0, "낙양", 58, 89, 15, 0, 195, 228, "정복", "보병"); $gencount++; + 46, "왕위",1251, 0, "낙양", 59, 60, 68, 0, 163, 208, "안전", "-"); $gencount++; + 92, "왕윤",1252, 0, "낙양", 16, 18, 77, 0, 137, 192, "왕좌", "-"); $gencount++; + 40, "왕융",1253, 0, "낙양", 62, 41, 77, 0, 234, 305, "재간", "-"); $gencount++; + 32, "왕준",1254, 0, "낙양", 81, 83, 76, 0, 206, 285, "대의", "-"); $gencount++; + 30, "왕찬",1255, 0, "낙양", 28, 28, 78, 0, 177, 217, "안전", "-"); $gencount++; + 33, "왕창",1256, 0, "낙양", 74, 57, 52, 0, 188, 259, "정복", "-"); $gencount++; + 69, "왕평",1257, 0, "낙양", 77, 76, 71, 0, 192, 248, "재간", "-"); $gencount++; + 71, "왕항",1258, 0, "낙양", 51, 43, 60, 0, 184, 254, "대의", "-"); $gencount++; + 33, "왕혼",1259, 0, "낙양", 69, 32, 59, 0, 223, 297, "정복", "-"); $gencount++; + 71, "요립",1260, 0, "낙양", 65, 41, 84, 0, 181, 250, "출세", "-"); $gencount++; + 74, "요화",1261, 0, "낙양", 67, 58, 60, 0, 170, 264, "의협", "-"); $gencount++; + 22, "우금1",1262, 0, "낙양", 80, 74, 71, 0, 159, 221, "정복", "-"); $gencount++; + 27, "우금2",1263, 0, "낙양", 63, 77, 37, 0, 173, 226, "대의", "-"); $gencount++; +122, "우번",1264, 0, "낙양", 23, 42, 73, 0, 164, 233, "유지", "-"); $gencount++; +126, "우전",1265, 0, "낙양", 63, 55, 41, 0, 204, 258, "안전", "-"); $gencount++; + 86, "원담",1266, 0, "낙양", 67, 59, 55, 0, 173, 205, "왕좌", "-"); $gencount++; +101, "원상",1267, 0, "낙양", 54, 72, 68, 0, 179, 207, "패권", "-"); $gencount++; +101, "원소",1268, 0, "낙양", 85, 67, 76, 0, 154, 202, "패권", "위압"); $gencount++; +140, "원술",1269, 0, "낙양", 77, 59, 71, 0, 155, 199, "패권", "축성"); $gencount++; +140, "원윤",1270, 0, "낙양", 41, 34, 60, 0, 163, 199, "패권", "-"); $gencount++; +101, "원희",1271, 0, "낙양", 69, 57, 72, 0, 176, 207, "할거", "-"); $gencount++; +131, "위소",1272, 0, "낙양", 39, 24, 82, 0, 204, 273, "재간", "-"); $gencount++; +147, "위속",1273, 0, "낙양", 57, 59, 41, 0, 156, 200, "안전", "-"); $gencount++; + 81, "위연",1274, 0, "낙양", 78, 94, 62, 0, 175, 234, "패권", "보병"); $gencount++; + 96, "위유",1275, 0, "낙양", 53, 69, 71, 0, 151, 193, "재간", "-"); $gencount++; + 76, "유기",1276, 0, "낙양", 57, 19, 73, 0, 174, 209, "왕좌", "-"); $gencount++; + 36, "유대",1277, 0, "낙양", 61, 57, 62, 0, 147, 202, "재간", "-"); $gencount++; +134, "유도",1278, 0, "낙양", 35, 33, 68, 0, 168, 214, "재간", "-"); $gencount++; + 46, "유벽",1279, 0, "낙양", 63, 71, 23, 0, 168, 210, "출세", "-"); $gencount++; + 75, "유봉",1280, 0, "낙양", 60, 65, 62, 0, 188, 220, "출세", "-"); $gencount++; + 75, "유비",1281, 0, "낙양", 85, 75, 70, 0, 161, 223, "왕좌", "인덕"); $gencount++; + 75, "유선1",1282, 0, "낙양", 24, 17, 21, 0, 207, 271, "대의", "-"); $gencount++; + 55, "유순",1283, 0, "낙양", 67, 61, 54, 0, 184, 239, "출세", "-"); $gencount++; + 75, "유심",1284, 0, "낙양", 63, 46, 70, 0, 238, 263, "왕좌", "-"); $gencount++; +129, "유약",1285, 0, "낙양", 67, 63, 61, 0, 206, 260, "유지", "-"); $gencount++; + 55, "유언",1286, 0, "낙양", 60, 40, 74, 0, 132, 194, "할거", "-"); $gencount++; + 27, "유엽",1287, 0, "낙양", 40, 29, 79, 0, 176, 235, "유지", "-"); $gencount++; + 11, "유요",1288, 0, "낙양", 23, 22, 48, 0, 156, 195, "안전", "발명"); $gencount++; + 96, "유우",1289, 0, "낙양", 68, 34, 72, 0, 145, 193, "왕좌", "-"); $gencount++; + 55, "유장",1290, 0, "낙양", 38, 31, 63, 0, 162, 219, "할거", "수비"); $gencount++; + 45, "유종",1291, 0, "낙양", 22, 26, 61, 0, 191, 208, "할거", "-"); $gencount++; + 56, "유파",1292, 0, "낙양", 47, 32, 70, 0, 186, 222, "대의", "-"); $gencount++; + 45, "유표1",1293, 0, "낙양", 71, 57, 71, 0, 142, 208, "할거", "-"); $gencount++; + 27, "유표2",1294, 0, "낙양", 76, 55, 71, 0, 173, 229, "안전", "-"); $gencount++; +134, "유현",1295, 0, "낙양", 32, 56, 55, 0, 188, 252, "안전", "-"); $gencount++; +122, "육개",1296, 0, "낙양", 66, 30, 72, 0, 198, 269, "재간", "-"); $gencount++; +122, "육손",1297, 0, "낙양", 98, 68, 98, 0, 183, 245, "왕좌", "귀병"); $gencount++; +121, "육적",1298, 0, "낙양", 44, 29, 73, 0, 187, 219, "안전", "-"); $gencount++; +122, "육항",1299, 0, "낙양", 95, 69, 94, 0, 226, 274, "왕좌", "-"); $gencount++; + 38, "윤대목",1300, 0, "낙양", 62, 49, 69, 0, 211, 270, "재간", "-"); $gencount++; + 80, "윤묵",1301, 0, "낙양", 19, 28, 73, 0, 183, 239, "대의", "-"); $gencount++; + 72, "윤상",1302, 0, "낙양", 30, 32, 42, 0, 194, 260, "대의", "-"); $gencount++; +136, "윤직",1303, 0, "낙양", 44, 58, 63, 0, 197, 237, "재간", "-"); $gencount++; + 2, "이각",1304, 0, "낙양", 56, 77, 43, 0, 148, 198, "패권", "-"); $gencount++; +146, "이숙",1305, 0, "낙양", 27, 45, 67, 0, 156, 192, "재간", "-"); $gencount++; + 71, "이엄",1306, 0, "낙양", 80, 84, 81, 0, 172, 234, "패권", "-"); $gencount++; + 2, "이유",1307, 0, "낙양", 64, 22, 90, 0, 150, 192, "패권", "귀모"); $gencount++; +132, "이이",1308, 0, "낙양", 55, 75, 20, 0, 187, 222, "정복", "-"); $gencount++; + 77, "이적",1309, 0, "낙양", 55, 27, 77, 0, 162, 226, "할거", "-"); $gencount++; + 22, "이전",1310, 0, "낙양", 75, 68, 82, 0, 174, 216, "왕좌", "-"); $gencount++; + 71, "이풍1",1311, 0, "낙양", 59, 56, 62, 0, 206, 260, "재간", "-"); $gencount++; + 66, "이회",1312, 0, "낙양", 67, 50, 79, 0, 175, 231, "유지", "-"); $gencount++; +114, "잠혼",1313, 0, "낙양", 15, 16, 44, 0, 239, 280, "할거", "-"); $gencount++; + 7, "장각",1314, 0, "낙양", 93, 25, 93, 0, 140, 185, "패권", "환술"); $gencount++; + 34, "장간",1315, 0, "낙양", 19, 20, 70, 0, 175, 239, "재간", "-"); $gencount++; + 7, "장개",1316, 0, "낙양", 48, 69, 19, 0, 155, 202, "안전", "-"); $gencount++; +122, "장굉",1317, 0, "낙양", 25, 21, 85, 0, 153, 212, "왕좌", "-"); $gencount++; + 7, "장량",1318, 0, "낙양", 68, 81, 68, 0, 153, 185, "정복", "환술"); $gencount++; + 15, "장로",1319, 0, "낙양", 76, 44, 80, 0, 163, 237, "유지", "축성"); $gencount++; + 23, "장료",1320, 0, "낙양", 89, 93, 83, 0, 169, 222, "의협", "견고"); $gencount++; + 7, "장보",1321, 0, "낙양", 78, 81, 76, 0, 148, 185, "패권", "환술"); $gencount++; + 76, "장비",1322, 0, "낙양", 79, 99, 48, 0, 167, 221, "의협", "무쌍"); $gencount++; + 62, "장서",1323, 0, "낙양", 44, 48, 35, 0, 225, 290, "출세", "-"); $gencount++; +120, "장소1",1324, 0, "낙양", 42, 24, 91, 0, 156, 236, "안전", "-"); $gencount++; + 78, "장소2",1325, 0, "낙양", 51, 44, 71, 0, 202, 264, "재간", "-"); $gencount++; + 72, "장송",1326, 0, "낙양", 49, 28, 93, 0, 170, 212, "할거", "통찰"); $gencount++; +148, "장수",1327, 0, "낙양", 71, 72, 69, 0, 154, 207, "할거", "-"); $gencount++; +145, "장양1",1328, 0, "낙양", 62, 66, 65, 0, 150, 199, "출세", "-"); $gencount++; + 8, "장연",1329, 0, "낙양", 78, 66, 47, 0, 153, 210, "안전", "-"); $gencount++; + 11, "장영",1330, 0, "낙양", 55, 65, 40, 0, 154, 195, "재간", "-"); $gencount++; +118, "장온",1331, 0, "낙양", 21, 30, 69, 0, 193, 231, "할거", "-"); $gencount++; + 78, "장완",1332, 0, "낙양", 70, 55, 86, 0, 188, 246, "할거", "상재"); $gencount++; + 15, "장위",1333, 0, "낙양", 65, 70, 29, 0, 172, 215, "대의", "-"); $gencount++; + 36, "장윤",1334, 0, "낙양", 67, 59, 60, 0, 163, 208, "정복", "-"); $gencount++; +104, "장의거",1335, 0, "낙양", 68, 59, 34, 0, 159, 205, "대의", "-"); $gencount++; + 68, "장익",1336, 0, "낙양", 75, 68, 63, 0, 188, 264, "유지", "-"); $gencount++; + 56, "장임",1337, 0, "낙양", 83, 82, 74, 0, 169, 214, "대의", "견고"); $gencount++; +148, "장제1",1338, 0, "낙양", 70, 65, 59, 0, 144, 196, "할거", "-"); $gencount++; + 32, "장제2",1339, 0, "낙양", 30, 33, 84, 0, 188, 249, "유지", "-"); $gencount++; +126, "장제3",1340, 0, "낙양", 74, 49, 61, 0, 236, 280, "할거", "-"); $gencount++; + 17, "장패",1341, 0, "낙양", 44, 78, 43, 0, 165, 231, "할거", "-"); $gencount++; + 76, "장포1",1342, 0, "낙양", 69, 85, 49, 0, 198, 229, "재간", "징병"); $gencount++; +113, "장포2",1343, 0, "낙양", 63, 66, 51, 0, 225, 264, "유지", "-"); $gencount++; + 27, "장합",1344, 0, "낙양", 83, 91, 63, 0, 167, 231, "출세", "궁병"); $gencount++; + 23, "장호",1345, 0, "낙양", 56, 62, 54, 0, 195, 240, "정복", "-"); $gencount++; + 31, "장화",1346, 0, "낙양", 49, 24, 86, 0, 232, 300, "유지", "-"); $gencount++; + 48, "장횡",1347, 0, "낙양", 53, 67, 25, 0, 178, 211, "재간", "-"); $gencount++; +141, "장훈",1348, 0, "낙양", 67, 61, 60, 0, 156, 206, "안전", "-"); $gencount++; +120, "장휴",1349, 0, "낙양", 42, 35, 70, 0, 204, 244, "재간", "-"); $gencount++; +126, "장흠",1350, 0, "낙양", 64, 66, 67, 0, 168, 219, "대의", "저격"); $gencount++; + 96, "저수",1351, 0, "낙양", 82, 54, 88, 0, 156, 201, "할거", "반계"); $gencount++; +130, "전단",1352, 0, "낙양", 64, 73, 61, 0, 204, 261, "출세", "-"); $gencount++; + 42, "전속",1353, 0, "낙양", 66, 57, 49, 0, 218, 272, "안전", "-"); $gencount++; + 26, "전위1",1354, 0, "낙양", 61, 96, 34, 0, 160, 197, "의협", "필살"); $gencount++; +130, "전위2",1355, 0, "낙양", 74, 69, 62, 0, 230, 274, "출세", "-"); $gencount++; +128, "전종",1356, 0, "낙양", 79, 77, 74, 0, 183, 249, "패권", "-"); $gencount++; + 42, "전주",1357, 0, "낙양", 69, 67, 51, 0, 169, 214, "의협", "-"); $gencount++; + 96, "전풍",1358, 0, "낙양", 81, 41, 96, 0, 162, 200, "왕좌", "-"); $gencount++; + 24, "정무",1359, 0, "낙양", 54, 38, 74, 0, 201, 265, "출세", "-"); $gencount++; +119, "정병",1360, 0, "낙양", 22, 25, 67, 0, 172, 226, "유지", "-"); $gencount++; +126, "정보",1361, 0, "낙양", 81, 64, 76, 0, 151, 216, "패권", "-"); $gencount++; +123, "정봉1",1362, 0, "낙양", 70, 77, 64, 0, 190, 271, "패권", "-"); $gencount++; + 24, "정욱",1363, 0, "낙양", 80, 39, 90, 0, 141, 220, "패권", "신중"); $gencount++; + 88, "정원",1364, 0, "낙양", 64, 77, 58, 0, 137, 190, "왕좌", "기병"); $gencount++; + 7, "정원지",1365, 0, "낙양", 41, 74, 38, 0, 145, 185, "출세", "-"); $gencount++; + 69, "정은",1366, 0, "낙양", 53, 62, 26, 0, 169, 211, "재간", "-"); $gencount++; +121, "제갈각",1367, 0, "낙양", 61, 53, 92, 0, 203, 253, "왕좌", "-"); $gencount++; + 76, "제갈균",1368, 0, "낙양", 59, 45, 74, 0, 185, 252, "안전", "상재"); $gencount++; +121, "제갈근",1369, 0, "낙양", 60, 42, 88, 0, 174, 241, "왕좌", "경작"); $gencount++; + 76, "제갈량",1370, 0, "낙양", 97, 55,100, 0, 181, 234, "왕좌", "집중"); $gencount++; + 76, "제갈상",1371, 0, "낙양", 52, 75, 71, 0, 246, 263, "대의", "-"); $gencount++; +135, "제갈정",1372, 0, "낙양", 56, 57, 54, 0, 241, 300, "안전", "-"); $gencount++; + 76, "제갈첨",1373, 0, "낙양", 73, 52, 76, 0, 227, 263, "대의", "-"); $gencount++; +135, "제갈탄",1374, 0, "낙양", 79, 79, 73, 0, 206, 258, "패권", "-"); $gencount++; + 76, "조광",1375, 0, "낙양", 65, 67, 54, 0, 210, 263, "재간", "-"); $gencount++; + 74, "조루",1376, 0, "낙양", 49, 37, 60, 0, 183, 219, "대의", "-"); $gencount++; + 24, "조모",1377, 0, "낙양", 53, 32, 30, 0, 241, 260, "할거", "-"); $gencount++; +127, "조무",1378, 0, "낙양", 71, 68, 71, 0, 155, 191, "의협", "-"); $gencount++; + 26, "조방",1379, 0, "낙양", 50, 20, 31, 0, 232, 274, "정복", "-"); $gencount++; + 83, "조범",1380, 0, "낙양", 58, 40, 63, 0, 168, 218, "유지", "-"); $gencount++; + 26, "조비",1381, 0, "낙양", 72, 69, 75, 0, 187, 226, "패권", "징병"); $gencount++; + 19, "조상",1382, 0, "낙양", 68, 62, 31, 0, 207, 249, "패권", "-"); $gencount++; +147, "조성",1383, 0, "낙양", 44, 69, 51, 0, 163, 198, "안전", "-"); $gencount++; + 26, "조순",1384, 0, "낙양", 66, 57, 72, 0, 170, 210, "정복", "-"); $gencount++; + 25, "조식",1385, 0, "낙양", 19, 19, 90, 0, 192, 232, "왕좌", "귀모"); $gencount++; + 25, "조앙",1386, 0, "낙양", 44, 65, 62, 0, 175, 197, "왕좌", "-"); $gencount++; + 25, "조예",1387, 0, "낙양", 57, 55, 82, 0, 205, 239, "정복", "-"); $gencount++; + 26, "조우",1388, 0, "낙양", 67, 55, 67, 0, 199, 260, "대의", "-"); $gencount++; + 76, "조운",1389, 0, "낙양", 95, 98, 87, 0, 168, 229, "왕좌", "무쌍"); $gencount++; + 25, "조웅",1390, 0, "낙양", 59, 27, 44, 0, 194, 220, "안전", "-"); $gencount++; + 26, "조인",1391, 0, "낙양", 74, 79, 62, 0, 168, 223, "패권", "보병"); $gencount++; + 25, "조조",1392, 0, "낙양",100, 80, 95, 0, 155, 220, "패권", "반계"); $gencount++; + 26, "조진",1393, 0, "낙양", 82, 67, 65, 0, 185, 231, "정복", "-"); $gencount++; + 25, "조창",1394, 0, "낙양", 75, 88, 37, 0, 190, 223, "정복", "돌격"); $gencount++; + 76, "조통",1395, 0, "낙양", 65, 64, 55, 0, 209, 260, "재간", "-"); $gencount++; + 84, "조표",1396, 0, "낙양", 34, 70, 16, 0, 151, 196, "안전", "-"); $gencount++; + 7, "조홍1",1397, 0, "낙양", 52, 66, 42, 0, 156, 185, "유지", "-"); $gencount++; + 24, "조홍2",1398, 0, "낙양", 72, 69, 44, 0, 169, 232, "패권", "-"); $gencount++; + 26, "조환",1399, 0, "낙양", 34, 24, 42, 0, 246, 302, "정복", "-"); $gencount++; + 19, "조훈",1400, 0, "낙양", 67, 63, 30, 0, 212, 249, "출세", "-"); $gencount++; + 26, "조휴",1401, 0, "낙양", 75, 71, 70, 0, 174, 228, "패권", "-"); $gencount++; + 19, "조희",1402, 0, "낙양", 64, 57, 71, 0, 210, 249, "대의", "-"); $gencount++; + 22, "종요",1403, 0, "낙양", 16, 20, 74, 0, 151, 230, "유지", "-"); $gencount++; + 20, "종회",1404, 0, "낙양", 84, 58, 93, 0, 225, 264, "패권", "-"); $gencount++; +128, "주거",1405, 0, "낙양", 73, 71, 72, 0, 190, 246, "유지", "-"); $gencount++; +118, "주방",1406, 0, "낙양", 56, 36, 76, 0, 200, 240, "할거", "-"); $gencount++; +126, "주연",1407, 0, "낙양", 73, 72, 51, 0, 182, 249, "할거", "-"); $gencount++; +126, "주유",1408, 0, "낙양", 97, 73, 97, 0, 175, 210, "패권", "신산"); $gencount++; +128, "주이",1409, 0, "낙양", 61, 55, 61, 0, 201, 257, "안전", "-"); $gencount++; + 88, "주준",1410, 0, "낙양", 82, 75, 65, 0, 149, 195, "왕좌", "-"); $gencount++; + 32, "주지",1411, 0, "낙양", 52, 77, 47, 0, 233, 295, "안전", "-"); $gencount++; + 76, "주창",1412, 0, "낙양", 42, 79, 30, 0, 164, 219, "의협", "궁병"); $gencount++; +126, "주치",1413, 0, "낙양", 58, 55, 56, 0, 156, 224, "안전", "-"); $gencount++; + 41, "주태1",1414, 0, "낙양", 62, 55, 61, 0, 207, 261, "안전", "-"); $gencount++; +126, "주태2",1415, 0, "낙양", 74, 88, 60, 0, 171, 225, "정복", "필살"); $gencount++; +128, "주환",1416, 0, "낙양", 84, 86, 74, 0, 177, 238, "정복", "-"); $gencount++; + 29, "진건",1417, 0, "낙양", 62, 70, 62, 0, 214, 292, "정복", "-"); $gencount++; + 29, "진교",1418, 0, "낙양", 21, 25, 67, 0, 175, 237, "유지", "-"); $gencount++; + 28, "진군",1419, 0, "낙양", 60, 38, 87, 0, 167, 235, "대의", "-"); $gencount++; +143, "진궁",1420, 0, "낙양", 77, 51, 90, 0, 154, 198, "할거", "신중"); $gencount++; + 79, "진규",1421, 0, "낙양", 22, 19, 71, 0, 132, 206, "할거", "-"); $gencount++; + 72, "진도",1422, 0, "낙양", 71, 85, 70, 0, 171, 237, "대의", "-"); $gencount++; + 79, "진등",1423, 0, "낙양", 64, 62, 71, 0, 169, 207, "할거", "-"); $gencount++; + 37, "진림",1424, 0, "낙양", 50, 28, 82, 0, 160, 217, "재간", "-"); $gencount++; +124, "진무",1425, 0, "낙양", 62, 74, 59, 0, 176, 215, "재간", "-"); $gencount++; + 66, "진복",1426, 0, "낙양", 36, 27, 76, 0, 160, 226, "재간", "-"); $gencount++; + 50, "진수",1427, 0, "낙양", 25, 29, 83, 0, 233, 297, "대의", "-"); $gencount++; + 81, "진식",1428, 0, "낙양", 47, 68, 52, 0, 191, 230, "출세", "-"); $gencount++; + 79, "진진",1429, 0, "낙양", 58, 38, 64, 0, 170, 235, "재간", "-"); $gencount++; + 28, "진태",1430, 0, "낙양", 79, 76, 70, 0, 210, 260, "대의", "-"); $gencount++; + 11, "진횡",1431, 0, "낙양", 38, 58, 47, 0, 161, 195, "출세", "-"); $gencount++; + 21, "차주",1432, 0, "낙양", 55, 66, 62, 0, 164, 199, "안전", "-"); $gencount++; + 11, "착융",1433, 0, "낙양", 62, 59, 21, 0, 161, 194, "출세", "-"); $gencount++; + 36, "채모",1434, 0, "낙양", 79, 69, 68, 0, 155, 208, "정복", "궁병"); $gencount++; + 36, "채중",1435, 0, "낙양", 58, 43, 55, 0, 168, 208, "출세", "-"); $gencount++; + 36, "채화",1436, 0, "낙양", 56, 47, 49, 0, 166, 208, "안전", "-"); $gencount++; + 66, "초주",1437, 0, "낙양", 22, 26, 81, 0, 201, 270, "대의", "-"); $gencount++; + 20, "최염",1438, 0, "낙양", 43, 54, 67, 0, 162, 216, "대의", "-"); $gencount++; + 60, "축융",1439, 0, "낙양", 59, 87, 25, 0, 193, 246, "정복", "척사"); $gencount++; + 60, "타사대왕",1440, 0, "낙양", 61, 72, 67, 0, 186, 225, "출세", "척사"); $gencount++; +124, "태사자",1441, 0, "낙양", 71, 97, 65, 0, 166, 209, "대의", "무쌍"); $gencount++; +124, "태사향",1442, 0, "낙양", 51, 69, 50, 0, 189, 246, "재간", "-"); $gencount++; + 12, "포륭",1443, 0, "낙양", 53, 74, 20, 0, 174, 208, "안전", "-"); $gencount++; + 74, "풍습",1444, 0, "낙양", 36, 64, 44, 0, 182, 222, "재간", "-"); $gencount++; + 7, "하의",1445, 0, "낙양", 49, 68, 25, 0, 161, 195, "출세", "-"); $gencount++; +121, "하제",1446, 0, "낙양", 74, 73, 64, 0, 171, 227, "재간", "-"); $gencount++; + 90, "하진",1447, 0, "낙양", 49, 69, 37, 0, 135, 189, "왕좌", "-"); $gencount++; + 24, "하후덕",1448, 0, "낙양", 67, 64, 39, 0, 178, 218, "출세", "-"); $gencount++; + 26, "하후돈",1449, 0, "낙양", 88, 92, 71, 0, 156, 220, "의협", "돌격"); $gencount++; + 19, "하후무",1450, 0, "낙양", 38, 33, 37, 0, 201, 259, "안전", "-"); $gencount++; + 24, "하후상",1451, 0, "낙양", 67, 62, 71, 0, 181, 225, "출세", "-"); $gencount++; + 26, "하후연",1452, 0, "낙양", 79, 90, 58, 0, 162, 219, "패권", "궁병"); $gencount++; + 26, "하후위",1453, 0, "낙양", 73, 76, 71, 0, 204, 254, "정복", "-"); $gencount++; + 26, "하후은",1454, 0, "낙양", 49, 51, 39, 0, 180, 208, "안전", "-"); $gencount++; + 23, "하후패",1455, 0, "낙양", 78, 88, 69, 0, 202, 262, "대의", "-"); $gencount++; + 20, "하후현",1456, 0, "낙양", 57, 23, 75, 0, 208, 254, "유지", "-"); $gencount++; + 26, "하후혜",1457, 0, "낙양", 76, 66, 78, 0, 206, 242, "정복", "-"); $gencount++; + 26, "하후화",1458, 0, "낙양", 77, 61, 80, 0, 207, 265, "정복", "-"); $gencount++; + 22, "학소",1459, 0, "낙양", 89, 81, 86, 0, 185, 229, "대의", "견고"); $gencount++; +126, "한당",1460, 0, "낙양", 68, 67, 64, 0, 156, 225, "할거", "-"); $gencount++; + 93, "한복",1461, 0, "낙양", 66, 59, 42, 0, 149, 191, "안전", "-"); $gencount++; + 8, "한섬",1462, 0, "낙양", 39, 62, 35, 0, 159, 196, "출세", "-"); $gencount++; + 48, "한수",1463, 0, "낙양", 66, 76, 77, 0, 142, 215, "대의", "기병"); $gencount++; + 40, "한숭",1464, 0, "낙양", 21, 25, 70, 0, 154, 210, "재간", "-"); $gencount++; + 7, "한충",1465, 0, "낙양", 41, 66, 29, 0, 151, 185, "안전", "-"); $gencount++; + 9, "한현",1466, 0, "낙양", 43, 61, 20, 0, 163, 208, "유지", "-"); $gencount++; + 27, "한호",1467, 0, "낙양", 60, 73, 45, 0, 164, 218, "유지", "-"); $gencount++; + 79, "향랑",1468, 0, "낙양", 51, 21, 77, 0, 167, 247, "대의", "-"); $gencount++; + 79, "향총",1469, 0, "낙양", 76, 42, 73, 0, 195, 240, "왕좌", "-"); $gencount++; +139, "허공",1470, 0, "낙양", 65, 63, 59, 0, 155, 200, "유지", "-"); $gencount++; + 21, "허유",1471, 0, "낙양", 47, 47, 57, 0, 155, 204, "재간", "-"); $gencount++; + 23, "허의",1472, 0, "낙양", 31, 74, 47, 0, 213, 263, "출세", "-"); $gencount++; + 26, "허저",1473, 0, "낙양", 57, 98, 27, 0, 169, 226, "정복", "무쌍"); $gencount++; + 87, "허정",1474, 0, "낙양", 18, 29, 74, 0, 152, 222, "재간", "-"); $gencount++; + 12, "형도영",1475, 0, "낙양", 49, 78, 23, 0, 174, 208, "출세", "-"); $gencount++; +148, "호거아",1476, 0, "낙양", 35, 76, 61, 0, 164, 206, "안전", "-"); $gencount++; + 76, "호반",1477, 0, "낙양", 61, 58, 46, 0, 179, 233, "재간", "-"); $gencount++; + 20, "호분",1478, 0, "낙양", 71, 60, 61, 0, 222, 288, "할거", "-"); $gencount++; + 27, "호주천",1479, 0, "낙양", 77, 75, 65, 0, 169, 230, "정복", "-"); $gencount++; + 20, "호준",1480, 0, "낙양", 67, 60, 46, 0, 200, 256, "재간", "-"); $gencount++; + 2, "화웅",1481, 0, "낙양", 68, 88, 24, 0, 155, 191, "출세", "돌격"); $gencount++; +131, "화핵",1482, 0, "낙양", 37, 27, 75, 0, 217, 278, "안전", "-"); $gencount++; + 10, "화흠",1483, 0, "낙양", 18, 43, 75, 0, 157, 231, "출세", "-"); $gencount++; + 21, "환범",1484, 0, "낙양", 20, 25, 81, 0, 199, 249, "유지", "-"); $gencount++; +127, "황개",1485, 0, "낙양", 78, 85, 69, 0, 154, 218, "왕좌", "징병"); $gencount++; + 56, "황권",1486, 0, "낙양", 76, 46, 77, 0, 167, 240, "대의", "-"); $gencount++; + 41, "황란",1487, 0, "낙양", 29, 70, 25, 0, 200, 264, "재간", "-"); $gencount++; + 88, "황보숭",1488, 0, "낙양", 83, 63, 73, 0, 132, 195, "왕좌", "-"); $gencount++; + 72, "황충",1489, 0, "낙양", 84, 94, 67, 0, 148, 222, "왕좌", "궁병"); $gencount++; + 50, "황호",1490, 0, "낙양", 15, 17, 48, 0, 226, 263, "안전", "-"); $gencount++; +147, "후성",1491, 0, "낙양", 56, 62, 33, 0, 158, 199, "정복", "-"); $gencount++; + + + + +123, "가화",1492, 0, "낙양", 50, 66, 40, 0, 176, 224, "-", "-"); $gencount++; +999, "건석",1493, 0, "낙양", 21, 12, 61, 0, 155, 189, "-", "-"); $gencount++; +999, "견씨",1494, 0, "낙양", 35, 24, 58, 0, 182, 221, "-", "-"); $gencount++; + 40, "견홍",1495, 0, "낙양", 76, 72, 66, 0, 224, 272, "-", "-"); $gencount++; +120, "고담",1496, 0, "낙양", 33, 21, 69, 0, 203, 244, "-", "-"); $gencount++; +101, "고유",1497, 0, "낙양", 56, 44, 73, 0, 174, 263, "-", "-"); $gencount++; +132, "곽마",1498, 0, "낙양", 68, 71, 49, 0, 239, 280, "-", "-"); $gencount++; + 39, "관구수",1499, 0, "낙양", 58, 63, 35, 0, 206, 265, "-", "-"); $gencount++; + 39, "관구전",1500, 0, "낙양", 63, 58, 68, 0, 224, 255, "-", "-"); $gencount++; +999, "관로",1501, 0, "낙양", 62, 21, 75, 0, 191, 256, "-", "-"); $gencount++; + 65, "관정",1502, 0, "낙양", 35, 50, 73, 0, 158, 199, "-", "-"); $gencount++; +137, "교수",1503, 0, "낙양", 67, 69, 39, 0, 143, 195, "-", "-"); $gencount++; + 33, "구건",1504, 0, "낙양", 43, 56, 69, 0, 239, 272, "-", "-"); $gencount++; + 41, "구본",1505, 0, "낙양", 52, 41, 70, 0, 232, 269, "-", "-"); $gencount++; + 12, "구성",1506, 0, "낙양", 56, 71, 31, 0, 157, 187, "-", "-"); $gencount++; + 21, "국연",1507, 0, "낙양", 52, 21, 71, 0, 160, 219, "-", "-"); $gencount++; + 99, "국의",1508, 0, "낙양", 83, 79, 50, 0, 146, 191, "-", "-"); $gencount++; + 34, "금의",1509, 0, "낙양", 18, 40, 63, 0, 177, 218, "-", "-"); $gencount++; + 76, "나헌",1510, 0, "낙양", 86, 67, 75, 0, 218, 270, "-", "-"); $gencount++; +999, "남두",1511, 0, "낙양", 35, 25, 54, 0, 130, 200, "-", "-"); $gencount++; + 54, "냉포",1512, 0, "낙양", 70, 82, 69, 0, 176, 214, "-", "-"); $gencount++; +124, "노숙2",1513, 0, "낙양", 70, 55, 76, 0, 208, 274, "-", "-"); $gencount++; + 42, "누규",1514, 0, "낙양", 54, 19, 88, 0, 143, 212, "-", "-"); $gencount++; + 6, "누반",1515, 0, "낙양", 65, 76, 39, 0, 178, 207, "-", "-"); $gencount++; +130, "누현",1516, 0, "낙양", 23, 20, 68, 0, 223, 275, "-", "-"); $gencount++; + 40, "당균",1517, 0, "낙양", 33, 19, 81, 0, 229, 264, "-", "-"); $gencount++; + 32, "당빈",1518, 0, "낙양", 70, 74, 62, 0, 235, 294, "-", "-"); $gencount++; +999, "대교",1519, 0, "낙양", 42, 10, 54, 0, 177, 235, "-", "-"); $gencount++; + 28, "대릉",1520, 0, "낙양", 64, 75, 45, 0, 199, 258, "-", "-"); $gencount++; +129, "동조",1521, 0, "낙양", 16, 15, 51, 0, 221, 281, "-", "-"); $gencount++; +114, "등수",1522, 0, "낙양", 35, 20, 44, 0, 228, 288, "-", "-"); $gencount++; + 50, "마막",1523, 0, "낙양", 22, 17, 5, 0, 221, 265, "-", "-"); $gencount++; +116, "만욱",1524, 0, "낙양", 20, 18, 66, 0, 240, 272, "-", "-"); $gencount++; +120, "맹종",1525, 0, "낙양", 48, 48, 67, 0, 216, 271, "-", "-"); $gencount++; + 38, "문호",1526, 0, "낙양", 65, 74, 45, 0, 227, 279, "-", "-"); $gencount++; +999, "미씨",1527, 0, "낙양", 59, 15, 68, 0, 176, 208, "-", "-"); $gencount++; + 39, "반림",1528, 0, "낙양", 66, 79, 8, 0, 168, 225, "-", "-"); $gencount++; +129, "반장",1529, 0, "낙양", 77, 78, 69, 0, 177, 222, "-", "-"); $gencount++; + 94, "방열",1530, 0, "낙양", 58, 82, 28, 0, 153, 190, "-", "-"); $gencount++; + 55, "방희",1531, 0, "낙양", 59, 38, 69, 0, 153, 218, "-", "-"); $gencount++; + 30, "배수",1532, 0, "낙양", 10, 11, 77, 0, 223, 271, "-", "-"); $gencount++; + 8, "번능",1533, 0, "낙양", 70, 61, 47, 0, 158, 194, "-", "-"); $gencount++; +999, "번씨",1534, 0, "낙양", 32, 17, 45, 0, 176, 220, "-", "-"); $gencount++; + 49, "보도근",1535, 0, "낙양", 64, 73, 50, 0, 170, 233, "-", "-"); $gencount++; +129, "보천",1536, 0, "낙양", 68, 60, 72, 0, 222, 272, "-", "-"); $gencount++; +121, "보협",1537, 0, "낙양", 73, 53, 75, 0, 216, 264, "-", "-"); $gencount++; + 28, "부하",1538, 0, "낙양", 44, 36, 85, 0, 209, 255, "-", "-"); $gencount++; + 26, "비요",1539, 0, "낙양", 70, 65, 73, 0, 192, 228, "-", "-"); $gencount++; + 31, "사마주",1540, 0, "낙양", 63, 53, 62, 0, 227, 283, "-", "-"); $gencount++; + 41, "사찬",1541, 0, "낙양", 61, 71, 54, 0, 215, 264, "-", "-"); $gencount++; +128, "설후",1542, 0, "낙양", 16, 14, 71, 0, 221, 271, "-", "-"); $gencount++; + 36, "성공영",1543, 0, "낙양", 73, 58, 80, 0, 172, 220, "-", "-"); $gencount++; +126, "성만",1544, 0, "낙양", 61, 69, 66, 0, 225, 276, "-", "-"); $gencount++; +999, "소교",1545, 0, "낙양", 57, 23, 66, 0, 178, 218, "-", "-"); $gencount++; + 46, "소유",1546, 0, "낙양", 51, 61, 48, 0, 164, 210, "-", "-"); $gencount++; + 31, "소제2",1547, 0, "낙양", 22, 16, 78, 0, 224, 268, "-", "-"); $gencount++; +126, "손교",1548, 0, "낙양", 77, 60, 69, 0, 181, 219, "-", "-"); $gencount++; +116, "손기",1549, 0, "낙양", 62, 65, 52, 0, 227, 276, "-", "-"); $gencount++; +999, "손상향",1550, 0, "낙양", 72, 62, 42, 0, 193, 244, "-", "-"); $gencount++; +125, "손익",1551, 0, "낙양", 69, 75, 26, 0, 184, 204, "-", "-"); $gencount++; +125, "손진",1552, 0, "낙양", 64, 71, 48, 0, 234, 280, "-", "-"); $gencount++; +123, "송겸",1553, 0, "낙양", 61, 48, 44, 0, 175, 215, "-", "-"); $gencount++; + 85, "순심",1554, 0, "낙양", 20, 21, 79, 0, 164, 208, "-", "-"); $gencount++; + 31, "순욱2",1555, 0, "낙양", 10, 16, 77, 0, 225, 289, "-", "-"); $gencount++; + 31, "순의",1556, 0, "낙양", 16, 11, 73, 0, 207, 281, "-", "-"); $gencount++; +129, "시삭",1557, 0, "낙양", 36, 66, 44, 0, 226, 268, "-", "-"); $gencount++; + 29, "신창",1558, 0, "낙양", 51, 29, 46, 0, 210, 272, "-", "-"); $gencount++; +999, "악신",1559, 0, "낙양", 53, 12, 46, 0, 175, 228, "-", "-"); $gencount++; +138, "악취",1560, 0, "낙양", 56, 68, 58, 0, 157, 195, "-", "-"); $gencount++; +138, "양강",1561, 0, "낙양", 62, 70, 42, 0, 160, 199, "-", "-"); $gencount++; + 21, "양부",1562, 0, "낙양", 68, 55, 85, 0, 178, 239, "-", "-"); $gencount++; + 72, "양서",1563, 0, "낙양", 56, 62, 66, 0, 198, 260, "-", "-"); $gencount++; + 34, "양습",1564, 0, "낙양", 67, 49, 73, 0, 168, 230, "-", "-"); $gencount++; + 16, "양앙",1565, 0, "낙양", 65, 70, 39, 0, 172, 215, "-", "-"); $gencount++; + 17, "양임",1566, 0, "낙양", 71, 78, 56, 0, 170, 215, "-", "-"); $gencount++; + 32, "양제",1567, 0, "낙양", 69, 63, 71, 0, 226, 291, "-", "-"); $gencount++; + 33, "양조2",1568, 0, "낙양", 65, 61, 67, 0, 223, 286, "-", "-"); $gencount++; + 48, "양추2",1569, 0, "낙양", 66, 67, 61, 0, 172, 238, "-", "-"); $gencount++; +140, "양홍",1570, 0, "낙양", 19, 17, 76, 0, 152, 199, "-", "-"); $gencount++; + 31, "양혼",1571, 0, "낙양", 60, 67, 63, 0, 220, 278, "-", "-"); $gencount++; +123, "여거",1572, 0, "낙양", 71, 58, 69, 0, 196, 256, "-", "-"); $gencount++; +130, "여대",1573, 0, "낙양", 83, 72, 70, 0, 161, 256, "-", "-"); $gencount++; +136, "염상",1574, 0, "낙양", 29, 27, 69, 0, 158, 199, "-", "-"); $gencount++; + 36, "염행",1575, 0, "낙양", 70, 86, 38, 0, 159, 222, "-", "-"); $gencount++; + 73, "영수",1576, 0, "낙양", 69, 70, 74, 0, 234, 264, "-", "-"); $gencount++; + 39, "오거",1577, 0, "낙양", 49, 63, 32, 0, 151, 211, "-", "-"); $gencount++; +126, "오경",1578, 0, "낙양", 73, 60, 57, 0, 159, 203, "-", "-"); $gencount++; +999, "오국태",1579, 0, "낙양", 31, 11, 60, 0, 161, 222, "-", "-"); $gencount++; +126, "오찬",1580, 0, "낙양", 69, 41, 78, 0, 181, 245, "-", "-"); $gencount++; + 23, "온회",1581, 0, "낙양", 42, 40, 78, 0, 178, 222, "-", "-"); $gencount++; + 21, "왕기2",1582, 0, "낙양", 70, 66, 63, 0, 217, 281, "-", "-"); $gencount++; + 32, "왕도",1583, 0, "낙양", 48, 44, 70, 0, 210, 269, "-", "-"); $gencount++; +123, "왕돈",1584, 0, "낙양", 60, 65, 41, 0, 198, 256, "-", "-"); $gencount++; + 34, "왕릉",1585, 0, "낙양", 73, 60, 71, 0, 172, 251, "-", "-"); $gencount++; + 63, "왕문",1586, 0, "낙양", 64, 67, 32, 0, 162, 205, "-", "-"); $gencount++; + 32, "왕상",1587, 0, "낙양", 25, 19, 65, 0, 180, 268, "-", "-"); $gencount++; + 34, "왕숙",1588, 0, "낙양", 35, 21, 80, 0, 195, 256, "-", "-"); $gencount++; + 33, "왕업",1589, 0, "낙양", 32, 6, 46, 0, 220, 280, "-", "-"); $gencount++; + 35, "왕충",1590, 0, "낙양", 42, 58, 21, 0, 152, 214, "-", "-"); $gencount++; + 1, "우보",1591, 0, "낙양", 43, 63, 12, 0, 159, 192, "-", "-"); $gencount++; +122, "우사",1592, 0, "낙양", 70, 33, 79, 0, 217, 273, "-", "-"); $gencount++; +138, "원요",1593, 0, "낙양", 44, 42, 45, 0, 177, 206, "-", "-"); $gencount++; + 95, "원유",1594, 0, "낙양", 57, 38, 73, 0, 150, 193, "-", "-"); $gencount++; + 31, "위관",1595, 0, "낙양", 69, 45, 81, 0, 220, 291, "-", "-"); $gencount++; +129, "위막",1596, 0, "낙양", 58, 62, 60, 0, 221, 268, "-", "-"); $gencount++; + 55, "유괴",1597, 0, "낙양", 75, 72, 66, 0, 165, 214, "-", "-"); $gencount++; +129, "유략",1598, 0, "낙양", 72, 68, 59, 0, 206, 260, "-", "-"); $gencount++; + 45, "유반",1599, 0, "낙양", 74, 79, 48, 0, 168, 210, "-", "-"); $gencount++; + 29, "유복",1600, 0, "낙양", 54, 50, 73, 0, 164, 208, "-", "-"); $gencount++; + 78, "유선2",1601, 0, "낙양", 9, 21, 39, 0, 224, 264, "-", "-"); $gencount++; +139, "유섭",1602, 0, "낙양", 62, 79, 26, 0, 158, 190, "-", "-"); $gencount++; + 28, "유소",1603, 0, "낙양", 66, 51, 73, 0, 195, 264, "-", "-"); $gencount++; +128, "유승",1604, 0, "낙양", 46, 69, 29, 0, 215, 258, "-", "-"); $gencount++; +129, "유찬",1605, 0, "낙양", 74, 75, 66, 0, 172, 255, "-", "-"); $gencount++; +129, "유평",1606, 0, "낙양", 65, 70, 67, 0, 218, 272, "-", "-"); $gencount++; +138, "유훈",1607, 0, "낙양", 51, 64, 50, 0, 163, 216, "-", "-"); $gencount++; + 48, "이감",1608, 0, "낙양", 59, 67, 33, 0, 176, 211, "-", "-"); $gencount++; + 19, "이승",1609, 0, "낙양", 13, 26, 32, 0, 201, 249, "-", "-"); $gencount++; + 22, "이통",1610, 0, "낙양", 75, 84, 52, 0, 168, 211, "-", "-"); $gencount++; +138, "이풍2",1611, 0, "낙양", 72, 77, 50, 0, 158, 199, "-", "-"); $gencount++; + 20, "이풍3",1612, 0, "낙양", 23, 25, 71, 0, 204, 254, "-", "-"); $gencount++; + 29, "장구",1613, 0, "낙양", 69, 71, 47, 0, 201, 263, "-", "-"); $gencount++; + 21, "장기",1614, 0, "낙양", 77, 35, 79, 0, 170, 223, "-", "-"); $gencount++; + 74, "장남",1615, 0, "낙양", 71, 64, 38, 0, 187, 222, "-", "-"); $gencount++; +100, "장막",1616, 0, "낙양", 53, 52, 70, 0, 155, 195, "-", "-"); $gencount++; + 7, "장만성",1617, 0, "낙양", 73, 83, 47, 0, 143, 184, "-", "-"); $gencount++; +135, "장반",1618, 0, "낙양", 56, 73, 66, 0, 227, 282, "-", "-"); $gencount++; + 78, "장빈",1619, 0, "낙양", 30, 28, 67, 0, 216, 263, "-", "-"); $gencount++; +124, "장승",1620, 0, "낙양", 75, 68, 75, 0, 178, 244, "-", "-"); $gencount++; +999, "장양2",1621, 0, "낙양", 58, 50, 47, 0, 130, 184, "-", "-"); $gencount++; + 68, "장억",1622, 0, "낙양", 82, 80, 54, 0, 190, 254, "-", "-"); $gencount++; + 75, "장준",1623, 0, "낙양", 65, 67, 66, 0, 224, 263, "-", "-"); $gencount++; + 20, "장집",1624, 0, "낙양", 31, 27, 74, 0, 196, 254, "-", "-"); $gencount++; + 39, "장특",1625, 0, "낙양", 71, 53, 74, 0, 209, 265, "-", "-"); $gencount++; + 96, "저곡",1626, 0, "낙양", 57, 53, 67, 0, 184, 204, "-", "-"); $gencount++; +128, "전기",1627, 0, "낙양", 51, 69, 55, 0, 231, 258, "-", "-"); $gencount++; + 23, "전만",1628, 0, "낙양", 52, 74, 38, 0, 181, 235, "-", "-"); $gencount++; +128, "전상",1629, 0, "낙양", 5, 6, 11, 0, 208, 258, "-", "-"); $gencount++; +130, "전역",1630, 0, "낙양", 60, 62, 37, 0, 212, 265, "-", "-"); $gencount++; + 75, "전예",1631, 0, "낙양", 80, 62, 83, 0, 171, 252, "-", "-"); $gencount++; + 64, "전해",1632, 0, "낙양", 71, 63, 57, 0, 154, 199, "-", "-"); $gencount++; +123, "정봉2",1633, 0, "낙양", 67, 68, 52, 0, 198, 266, "-", "-"); $gencount++; + 22, "정의",1634, 0, "낙양", 17, 3, 66, 0, 184, 220, "-", "-"); $gencount++; + 81, "제갈교",1635, 0, "낙양", 55, 17, 77, 0, 204, 228, "-", "-"); $gencount++; + 40, "제갈서",1636, 0, "낙양", 45, 43, 27, 0, 218, 286, "-", "-"); $gencount++; + 25, "조충",1637, 0, "낙양", 14, 7, 80, 0, 196, 208, "-", "-"); $gencount++; +121, "종리목",1638, 0, "낙양", 84, 68, 75, 0, 214, 269, "-", "-"); $gencount++; + 22, "종육",1639, 0, "낙양", 27, 11, 71, 0, 223, 263, "-", "-"); $gencount++; +122, "좌혁",1640, 0, "낙양", 60, 66, 51, 0, 232, 280, "-", "-"); $gencount++; + 36, "주령",1641, 0, "낙양", 77, 70, 69, 0, 170, 236, "-", "-"); $gencount++; +115, "주앙",1642, 0, "낙양", 75, 64, 64, 0, 162, 195, "-", "-"); $gencount++; + 52, "주포",1643, 0, "낙양", 59, 72, 12, 0, 191, 225, "-", "-"); $gencount++; + 11, "주흔",1644, 0, "낙양", 67, 53, 77, 0, 159, 196, "-", "-"); $gencount++; +140, "진기",1645, 0, "낙양", 58, 67, 46, 0, 165, 198, "-", "-"); $gencount++; +142, "진란",1646, 0, "낙양", 65, 70, 43, 0, 157, 204, "-", "-"); $gencount++; + 25, "진랑",1647, 0, "낙양", 57, 70, 38, 0, 192, 234, "-", "-"); $gencount++; + 12, "진응",1648, 0, "낙양", 62, 69, 49, 0, 172, 208, "-", "-"); $gencount++; +124, "진표",1649, 0, "낙양", 62, 49, 74, 0, 204, 237, "-", "-"); $gencount++; +999, "채염",1650, 0, "낙양", 40, 22, 64, 0, 168, 237, "-", "-"); $gencount++; +999, "초선",1651, 0, "낙양", 66, 15, 72, 0, 176, 211, "-", "-"); $gencount++; +135, "초이",1652, 0, "낙양", 54, 65, 55, 0, 219, 266, "-", "-"); $gencount++; + 65, "추단",1653, 0, "낙양", 63, 71, 36, 0, 148, 193, "-", "-"); $gencount++; +999, "추씨",1654, 0, "낙양", 36, 13, 54, 0, 165, 225, "-", "-"); $gencount++; + 71, "추정",1655, 0, "낙양", 67, 65, 66, 0, 144, 193, "-", "-"); $gencount++; +145, "파재",1656, 0, "낙양", 69, 75, 52, 0, 145, 184, "-", "-"); $gencount++; + 22, "포신",1657, 0, "낙양", 78, 60, 83, 0, 152, 192, "-", "-"); $gencount++; +114, "하식",1658, 0, "낙양", 18, 38, 29, 0, 230, 284, "-", "-"); $gencount++; + 36, "하안",1659, 0, "낙양", 6, 27, 72, 0, 190, 249, "-", "-"); $gencount++; +999, "하후씨",1660, 0, "낙양", 29, 16, 47, 0, 186, 249, "-", "-"); $gencount++; + 5, "학맹",1661, 0, "낙양", 57, 66, 41, 0, 156, 197, "-", "-"); $gencount++; + 98, "한거자",1662, 0, "낙양", 53, 59, 30, 0, 158, 200, "-", "-"); $gencount++; + 19, "한덕",1663, 0, "낙양", 62, 79, 24, 0, 171, 228, "-", "-"); $gencount++; +140, "한윤",1664, 0, "낙양", 27, 24, 68, 0, 155, 197, "-", "-"); $gencount++; +999, "허소",1665, 0, "낙양", 53, 27, 60, 0, 150, 195, "-", "-"); $gencount++; + 30, "호열",1666, 0, "낙양", 77, 69, 76, 0, 225, 272, "-", "-"); $gencount++; + 76, "호제",1667, 0, "낙양", 58, 42, 68, 0, 207, 264, "-", "-"); $gencount++; +149, "호진",1668, 0, "낙양", 65, 77, 13, 0, 146, 190, "-", "-"); $gencount++; + 29, "호질",1669, 0, "낙양", 73, 50, 75, 0, 192, 250, "-", "-"); $gencount++; + 7, "환계",1670, 0, "낙양", 12, 25, 67, 0, 156, 221, "-", "-"); $gencount++; + 56, "황숭",1671, 0, "낙양", 68, 64, 74, 0, 208, 263, "-", "-"); $gencount++; +999, "황승언",1672, 0, "낙양", 68, 17, 81, 0, 165, 222, "-", "-"); $gencount++; +999, "황월영",1673, 0, "낙양", 58, 14, 75, 0, 186, 235, "-", "-"); $gencount++; + 45, "황조",1674, 0, "낙양", 74, 65, 57, 0, 148, 208, "-", "-"); $gencount++; + 48, "후선",1675, 0, "낙양", 56, 66, 35, 0, 175, 228, "-", "-"); $gencount++; + 8, "휴고",1676, 0, "낙양", 61, 72, 40, 0, 151, 199, "-", "-"); $gencount++; + 98, "휴원진",1677, 0, "낙양", 53, 63, 38, 0, 155, 200, "-", "-"); $gencount++; + 22, "희지재",1678, 0, "낙양", 24, 5, 86, 0, 157, 194, "-", "-"); $gencount++; diff --git a/twe_close/index.php b/twe_close/index.php new file mode 100644 index 00000000..3e8e5e49 --- /dev/null +++ b/twe_close/index.php @@ -0,0 +1,9 @@ + + +삼국지 모의전투 유기체서버 + + + + + + diff --git a/twe_close/install.php b/twe_close/install.php new file mode 100644 index 00000000..8deff41b --- /dev/null +++ b/twe_close/install.php @@ -0,0 +1,91 @@ +
재설치하려면 해당 파일을 지우세요"); + + @chmod(".",0707); +?> + + + + + + + +


+
+
+ + + + + + + + + + + +
/inst_top.gif>
+
+ /inst_step1.gif> + +
+ 위의 라이센스를 모두 읽었으며 동의합니다 +

+ /inst_step1-2.gif>


+현재 707로 퍼미션이 되어 있지 않습니다. 텔넷이나 FTP에서 퍼미션을 조정하세요. +
+
+
+ + + + + + +
+ +
+ "; +} else { + echo " +

+ + + + + + +
+ +
+ "; +} +?> +
+
+ + + diff --git a/twe_close/install1.php b/twe_close/install1.php new file mode 100644 index 00000000..12e49135 --- /dev/null +++ b/twe_close/install1.php @@ -0,0 +1,85 @@ +
재설치하려면 해당 파일을 지우세요"); +?> + + + + + + + + + +


+
+ + + + + + + + + + +
/inst_top.gif>
+
+ /inst_step2.gif> +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Host NameMySQL DB의 호스트네임을 입력하세요.
SQL User IDMySQL계정의 ID를 입력하세요
PasswordMysql DB의 패스워드를 입력하세요
DB NameMysql DB의 Name을 입력하세요


/inst_b_2.gif border=0 align=absmiddle>
+
+
+ + + diff --git a/twe_close/install2.php b/twe_close/install2.php new file mode 100644 index 00000000..2a8bbcfb --- /dev/null +++ b/twe_close/install2.php @@ -0,0 +1,122 @@ + + + + + + + + +


+
+ + + + + + + +
/inst_top.gif>
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ /inst_step3.gif> +
TurnTerm  + 0:120분, 1:60분, 2:30분, 3:20분, 4:10분, 5:5분, 6:2분, 7:1분 +
TurnTerm  + 0:무동기, 1:13시 시작으로 동기 +
시나리오 + +
가상상성 + 0:사실상성, 1:가상상성 +
확장장수 + 0:비확장, 1:확장장수등장 +
NPC유저 + 0:불가능, 1:가능 +
이미지  + 0:없음, 1:전콘, 2:병종, 3:엔장 +
시나리오 종류 + 역사모드
+ 0 : 180년 공백지
+ 1 : 184년 황건적의 난
+ 2 : 190년 반동탁연합
+ 3 : 194년 군웅할거
+ 4 : 196년 황제는 허도로
+ 5 : 200년 관도대전
+ 6 : 202년 원가의 분열
+ 7 : 207년 적벽대전
+ 8 : 213년 익주 공방전
+ 9 : 219년 삼국정립
+ 10 : 225년 칠종칠금
+ 11 : 228년 출사표
+ IF모드
+ 12 : 191년 백마장군의 위세
+ + 가상모드
+ 20 : 180년 영웅 난무
+ 21 : 180년 영웅 집결
+ 22 : 179년 훼신 집결
+ 23 : 180년 영웅 시대
+ 24 : 180년 결사항전
+ 25 : 180년 영웅독존
+ 26 : 180년 무풍지대
+ 27 : 180년 가요대잔치
+ 28 : 180년 확산성 밀리언 아서
+


+ /inst_b_3.gif border=0 align=absmiddle> +
+ + + diff --git a/twe_close/install2_ok.php b/twe_close/install2_ok.php new file mode 100644 index 00000000..9c83711c --- /dev/null +++ b/twe_close/install2_ok.php @@ -0,0 +1,348 @@ +웹 IRC
: http://barosl.com/webirc/흠냐
폭력적/선정적인 전콘/전메는 블럭/삭제 대상이 될 수 있습니다.', + 500, 300, 55, 120, 100, 100, + '$turntime', '$starttime', '$turnterm', '$killturn', + 5, '$startyear', '$scenario', '$img', '$npcmode', '$extend', '$fiction', + + 100, 150, 7, 10, 9, 9, -- 보병 + 100, 200, 7, 10, 10, 11, -- 청주병(중원) + 150, 150, 7, 10, 11, 10, -- 수병(오월) + 100, 150, 7, 20, 10, 10, -- 자객병(저) + 150, 200, 7, 10, 12, 12, -- 근위병(낙양) + 100, 250, 7, 5, 13, 10, -- 등갑병(남중) + + 100, 100, 7, 20, 10, 10, -- 궁병 + 100, 100, 8, 30, 11, 12, -- 궁기병(동이) + 150, 100, 8, 20, 12, 11, -- 연노병(서촉) + 150, 150, 7, 20, 13, 13, -- 강궁병(양양) + 200, 100, 7, 20, 13, 13, -- 석궁병(건업) + + 150, 100, 7, 5, 11, 11, -- 기병 + 200, 100, 7, 5, 12, 13, -- 백마병(하북) + 150, 150, 7, 5, 13, 12, -- 중장기병(서북) + 200, 100, 8, 5, 13, 11, -- 돌격기병(흉노) + 100, 200, 7, 5, 11, 13, -- 철기병(강) + 150, 100, 8, 15, 12, 12, -- 수렵기병(산월) + 250, 200, 6, 0, 16, 16, -- 맹수병(남만) + 200, 150, 7, 5, 14, 14, -- 호표기병(허창) + + 80, 80, 7, 5, 9, 9, -- 귀병 + 80, 80, 7, 20, 10, 10, -- 신귀병(초) + 80, 130, 7, 5, 9, 11, -- 백귀병(오환) + 130, 80, 7, 5, 11, 9, -- 흑귀병(왜) + 130, 130, 7, 0, 12, 12, -- 악귀병(장안) + 60, 60, 7, 10, 8, 8, -- 남귀병 + 110, 110, 7, 0, 13, 10, -- 황귀병(낙양) + 80, 130, 7, 15, 11, 12, -- 천귀병(성도) + 130, 80, 7, 15, 12, 11, -- 마귀병(업) + + 100, 100, 6, 0, 15, 5, -- 정란 + 150, 100, 6, 0, 20, 5, -- 충차 + 200, 100, 6, 0, 25, 5, -- 벽력거(업) + 50, 200, 5, 0, 30, 5 -- 목우(성도) + )", + $connect +) or Error(__LINE__.MYDB_error($connect),""); + +// 도시정보 입력 +// 이름 규모 인구 농업 상업 치안 수비 성벽 지역 경로 +insertCity($connect, "업", 8, 620500, 12500, 11300, 10000, 11700, 12200, 1, "9|18|70|78|80"); // 1 : 업 +insertCity($connect, "허창", 8, 587600, 12100, 12400, 10000, 11700, 12500, 2, "10|19|38|71|74|80"); // 2 : 허창 +insertCity($connect, "낙양", 8, 835700, 11700, 12000, 10000, 12100, 12400, 2, "70|71|72|74"); // 3 : 낙양 +insertCity($connect, "장안", 8, 592300, 11600, 12300, 10000, 12000, 11800, 3, "41|73|86"); // 4 : 장안 +insertCity($connect, "성도", 8, 652500, 12300, 12500, 10000, 12500, 12300, 4, "26|27|87"); // 5 : 성도 +insertCity($connect, "양양", 8, 583700, 12000, 12600, 10000, 11500, 11700, 6, "51|89"); // 6 : 양양 +insertCity($connect, "건업", 8, 638600, 11600, 12300, 10000, 11500, 11900, 7, "31|82|83"); // 7 : 건업 + +insertCity($connect, "북평", 7, 486200, 10200, 9500, 8000, 10300, 9900, 1, "77|90"); // 8 : 북평 +insertCity($connect, "남피", 7, 503200, 9900, 10100, 8000, 10100, 10500, 1, "1|36|77"); // 9 : 남피 +insertCity($connect, "완", 7, 472400, 10300, 10000, 8000, 10100, 9900, 2, "2|20|51|71"); // 10 : 완 +insertCity($connect, "수춘", 7, 514300, 9900, 9600, 8000, 9900, 9500, 2, "12|20|38|82"); // 11 : 수춘 +insertCity($connect, "서주", 7, 485300, 10100, 9800, 8000, 10200, 9700, 2, "11|21|38|39"); // 12 : 서주 +insertCity($connect, "강릉", 7, 485000, 10500, 9600, 8000, 9500, 9600, 6, "14|53|88|89"); // 13 : 강릉 +insertCity($connect, "장사", 7, 471000, 9700, 9900, 8000, 10000, 10500, 6, "13|15|30|53|54"); // 14 : 장사 +insertCity($connect, "시상", 7, 525200, 9800, 10000, 10000, 9900, 9600, 7, "14|56|58|91|92"); // 15 : 시상 +insertCity($connect, "위례", 7, 492600, 10000, 9300, 8000, 9800, 10300, 8, "32|33|34|60|79"); // 16 : 위례 + +insertCity($connect, "계", 6, 388500, 7500, 8000, 6000, 7800, 8100, 1, "35|77"); // 17 : 계 +insertCity($connect, "복양", 6, 418500, 8000, 8300, 6000, 8200, 8000, 2, "1|19|78|81"); // 18 : 복양 +insertCity($connect, "진류", 6, 395700, 8200, 8000, 6000, 8000, 8300, 2, "2|18|74|80|81"); // 19 : 진류 +insertCity($connect, "여남", 6, 383100, 7700, 8100, 6000, 8400, 7700, 2, "10|11|38"); // 20 : 여남 +insertCity($connect, "하비", 6, 427800, 8500, 8300, 6000, 8200, 7800, 2, "12|83"); // 21 : 하비 +insertCity($connect, "서량", 6, 387400, 7700, 7900, 6000, 8300, 8000, 3, "40|63|64"); // 22 : 서량 +insertCity($connect, "하내", 6, 373600, 7700, 8100, 6000, 8100, 8000, 3, "35|42|65|70"); // 23 : 하내 +insertCity($connect, "한중", 6, 402700, 7700, 8400, 6000, 8000, 8500, 4, "25|75|86"); // 24 : 한중 +insertCity($connect, "상용", 6, 368700, 7800, 7600, 6000, 7700, 8100, 4, "24|51"); // 25 : 상용 +insertCity($connect, "덕양", 6, 380300, 8100, 8400, 6000, 7900, 7700, 4, "5|27|44|45"); // 26 : 덕양 +insertCity($connect, "강주", 6, 412600, 7900, 8000, 6000, 8400, 8100, 4, "5|26|45|46|47"); // 27 : 강주 +insertCity($connect, "건녕", 6, 376500, 8200, 8000, 6000, 8600, 8100, 5, "46|48|49"); // 28 : 건녕 +insertCity($connect, "남해", 6, 380300, 8200, 7600, 6000, 8000, 8100, 5, "50|55|59|67"); // 29 : 남해 +insertCity($connect, "계양", 6, 395500, 8300, 8000, 6000, 8100, 7700, 6, "14|54|55"); // 30 : 계양 +insertCity($connect, "오", 6, 435500, 7700, 8100, 6000, 7700, 7600, 7, "7|57|92|93"); // 31 : 오 +insertCity($connect, "평양", 6, 398200, 7800, 8000, 6000, 8300, 7800, 8, "16|61"); // 32 : 평양 +insertCity($connect, "사비", 6, 415700, 7700, 7900, 6000, 7800, 8000, 8, "16|34|93"); // 33 : 사비 +insertCity($connect, "계림", 6, 391100, 8000, 7400, 6000, 8100, 7800, 8, "16|33|62|93"); // 34 : 계림 + +insertCity($connect, "진양", 5, 307400, 5600, 5900, 4000, 6400, 5900, 1, "17|23|70"); // 35 : 진양 +insertCity($connect, "평원", 5, 307400, 6200, 6500, 4000, 6100, 6300, 1, "9|37|78"); // 36 : 평원 +insertCity($connect, "북해", 5, 314600, 5500, 6300, 4000, 6300, 5800, 1, "36|39|79"); // 37 : 북해 +insertCity($connect, "초", 5, 328600, 6000, 6200, 4000, 6200, 5700, 2, "2|11|12|20|81"); // 38 : 초 +insertCity($connect, "패", 5, 287700, 6400, 5800, 4000, 5800, 5900, 2, "12|37|81"); // 39 : 패 +insertCity($connect, "천수", 5, 298500, 5900, 6400, 4000, 6000, 5800, 3, "22|41|64|84"); // 40 : 천수 +insertCity($connect, "안정", 5, 276400, 5700, 5900, 4000, 5700, 6200, 3, "4|40|85"); // 41 : 안정 +insertCity($connect, "홍농", 5, 274800, 5700, 6300, 4000, 5800, 6300, 3, "23|72|73"); // 42 : 홍농 +insertCity($connect, "하변", 5, 278500, 5800, 6200, 4000, 6000, 5600, 4, "76|85"); // 43 : 하변 +insertCity($connect, "자동", 5, 287000, 5700, 5500, 4000, 6000, 5800, 4, "26|75|76|87"); // 44 : 자동 +insertCity($connect, "영안", 5, 315300, 6200, 5900, 4000, 5800, 5900, 4, "26|27|88"); // 45 : 영안 +insertCity($connect, "귀양", 5, 274600, 5800, 6100, 4000, 6100, 5800, 5, "27|28|47"); // 46 : 귀양 +insertCity($connect, "주시", 5, 282800, 6000, 5900, 4000, 5800, 6300, 5, "27|46|48"); // 47 : 주시 +insertCity($connect, "운남", 5, 325800, 6200, 6000, 4000, 6400, 6100, 5, "28|47|66"); // 48 : 운남 +insertCity($connect, "남영", 5, 285300, 5900, 6200, 4000, 5800, 5700, 5, "28|54|66"); // 49 : 남영 +insertCity($connect, "교지", 5, 319500, 5800, 5900, 4000, 5800, 5900, 5, "29|66"); // 50 : 교지 +insertCity($connect, "신야", 5, 278600, 6000, 6200, 4000, 5800, 5500, 6, "6|10|25"); // 51 : 신야 +insertCity($connect, "강하", 5, 307400, 5500, 5600, 4000, 5700, 6000, 6, "89|91"); // 52 : 강하 +insertCity($connect, "무릉", 5, 319600, 5800, 6300, 4000, 6300, 5800, 6, "13|14|54"); // 53 : 무릉 +insertCity($connect, "영릉", 5, 284900, 6200, 5800, 4000, 6200, 6200, 6, "14|30|49|53"); // 54 : 영릉 +insertCity($connect, "상동", 5, 276700, 5800, 5900, 4000, 6200, 5800, 6, "29|30|58"); // 55 : 상동 +insertCity($connect, "여강", 5, 290500, 5600, 5800, 4000, 6000, 5500, 7, "15|82|91|92"); // 56 : 여강 +insertCity($connect, "회계", 5, 300500, 6400, 5900, 4000, 6200, 6400, 7, "31|67"); // 57 : 회계 +insertCity($connect, "고창", 5, 280200, 5700, 6200, 4000, 5800, 6300, 7, "15|55|67"); // 58 : 고창 +insertCity($connect, "대", 5, 325600, 6000, 6200, 4000, 5700, 6000, 7, "29|67|94"); // 59 : 대 +insertCity($connect, "안평", 5, 293700, 6300, 5900, 4000, 5900, 6300, 8, "16|61|79|90"); // 60 : 안평 +insertCity($connect, "졸본", 5, 293900, 5500, 5900, 4000, 6000, 5800, 8, "32|60|68"); // 61 : 졸본 +insertCity($connect, "이도", 5, 317400, 5800, 6100, 4000, 5800, 5600, 8, "34|69|93"); // 62 : 이도 + +insertCity($connect, "강", 4, 209500, 4000, 4200, 2000, 4300, 4000, 3, "22|84"); // 63 : 강 +insertCity($connect, "저", 4, 195700, 4000, 4200, 2000, 4300, 4200, 3, "22|40|85"); // 64 : 저 +insertCity($connect, "흉노", 4, 206400, 4000, 4100, 2000, 4000, 3800, 3, "23|84"); // 65 : 흉노 +insertCity($connect, "남만", 4, 237800, 4000, 4200, 2000, 4300, 4500, 5, "48|49|50"); // 66 : 남만 +insertCity($connect, "산월", 4, 227500, 4000, 3700, 2000, 4300, 3800, 7, "29|57|58|59"); // 67 : 산월 +insertCity($connect, "오환", 4, 215300, 4200, 3700, 2000, 4300, 4000, 8, "61|90"); // 68 : 오환 +insertCity($connect, "왜", 4, 206500, 3900, 3700, 2000, 4300, 4100, 8, "62|94"); // 69 : 왜 + +insertCity($connect, "호관", 3, 88700, 1900, 1800, 2000, 9500, 9600, 1, "1|3|23|35"); // 70 : 호관 +insertCity($connect, "호로", 3, 111200, 2200, 2100, 2000, 10300, 9800, 2, "2|3|10"); // 71 : 호로 +insertCity($connect, "사곡", 3, 100800, 2100, 1900, 2000, 9900, 10100, 3, "3|42"); // 72 : 사곡 +insertCity($connect, "함곡", 3, 108100, 2000, 2200, 2000, 10100, 10200, 3, "4|42"); // 73 : 함곡 +insertCity($connect, "사수", 3, 95800, 1700, 1900, 2000, 9500, 9600, 2, "2|3|19|80"); // 74 : 사수 +insertCity($connect, "양평", 3, 86800, 1900, 1900, 2000, 9700, 9600, 4, "24|44|86"); // 75 : 양평 +insertCity($connect, "가맹", 3, 85500, 1700, 1800, 2000, 9600, 9500, 4, "43|44"); // 76 : 가맹 + +insertCity($connect, "역경", 2, 98500, 1800, 1900, 2000, 3900, 4100, 1, "8|9|17"); // 77 : 역경 +insertCity($connect, "계교", 2, 101200, 2100, 1900, 2000, 4000, 4200, 1, "1|18|36"); // 78 : 계교 +insertCity($connect, "동황", 2, 99200, 1900, 2100, 2000, 3800, 4000, 1, "16|37|60"); // 79 : 동황 +insertCity($connect, "관도", 2, 112300, 2200, 2000, 2000, 4200, 4300, 2, "1|2|19|74"); // 80 : 관도 +insertCity($connect, "정도", 2, 108500, 2100, 2100, 2000, 4100, 3800, 2, "18|19|38|39"); // 81 : 정도 +insertCity($connect, "합비", 2, 99800, 2000, 1900, 2000, 3900, 4100, 2, "7|11|56"); // 82 : 합비 +insertCity($connect, "광릉", 2, 100100, 2000, 2100, 2000, 4100, 4000, 2, "7|21"); // 83 : 광릉 +insertCity($connect, "적도", 2, 95200, 1800, 1700, 2000, 3800, 3700, 3, "40|63|65"); // 84 : 적도 +insertCity($connect, "가정", 2, 93100, 1700, 1700, 2000, 3600, 3800, 3, "41|43|64"); // 85 : 가정 +insertCity($connect, "기산", 2, 100500, 1900, 1800, 2000, 4100, 4000, 4, "4|24|75"); // 86 : 기산 +insertCity($connect, "면죽", 3, 109300, 2200, 2100, 2000, 10800, 9900, 4, "5|44"); // 87 : 면죽 +insertCity($connect, "이릉", 2, 96800, 1800, 1900, 2000, 3900, 4100, 6, "13|45"); // 88 : 이릉 +insertCity($connect, "장판", 2, 103200, 2100, 2000, 2000, 4000, 3700, 6, "6|13|52|91"); // 89 : 장판 +insertCity($connect, "백랑", 2, 105200, 2200, 1900, 2000, 3800, 4200, 8, "8|60|68"); // 90 : 백랑 + +insertCity($connect, "적벽", 1, 111700, 2300, 2100, 2000, 4200, 4100, 7, "15|52|56|89"); // 91 : 적벽 +insertCity($connect, "파양", 1, 103700, 2000, 2200, 2000, 3800, 3800, 7, "15|31|56"); // 92 : 파양 +insertCity($connect, "탐라", 1, 113000, 2200, 2100, 2000, 4300, 4100, 8, "31|33|34|62"); // 93 : 탐라 +insertCity($connect, "유구", 1, 92100, 1700, 1800, 2000, 3700, 3700, 8, "59|69"); // 94 : 유구 + +switch($scenario) { + case 0: echo ""; break; + case 1: echo ""; break; + case 2: echo ""; break; + case 3: echo ""; break; + case 4: echo ""; break; + case 5: echo ""; break; + case 6: echo ""; break; + case 7: echo ""; break; + case 8: echo ""; break; + case 9: echo ""; break; + case 10: echo ""; break; + case 11: echo ""; break; + + case 12: echo ""; break; + + case 20: echo ""; break; + case 21: echo ""; break; + case 22: echo ""; break; + case 23: echo ""; break; + case 24: echo ""; break; + case 25: echo ""; break; + case 26: echo ""; break; + case 27: echo ""; break; + case 28: echo ""; break; + default: echo ""; break; +} + +function insertCity($connect, $name, $level, $pop2, $agri2, $comm2, $secu2, $def2, $wall2, $region, $path) { + switch($level) { + case 1: $pop = 5000; $agri = 100; $comm = 100; $secu = 100; $def = 500; $wall = 500; break; + case 2: $pop = 5000; $agri = 100; $comm = 100; $secu = 100; $def = 500; $wall = 500; break; + case 3: $pop = 10000; $agri = 100; $comm = 100; $secu = 100; $def = 1000; $wall = 1000; break; + case 4: $pop = 50000; $agri = 1000; $comm = 1000; $secu = 1000; $def = 1000; $wall = 1000; break; + case 5: $pop = 100000; $agri = 1000; $comm = 1000; $secu = 1000; $def = 2000; $wall = 2000; break; + case 6: $pop = 100000; $agri = 1000; $comm = 1000; $secu = 1000; $def = 3000; $wall = 3000; break; + case 7: $pop = 150000; $agri = 1000; $comm = 1000; $secu = 1000; $def = 4000; $wall = 4000; break; + case 8: $pop = 150000; $agri = 1000; $comm = 1000; $secu = 1000; $def = 5000; $wall = 5000; break; + } + + @MYDB_query(" + insert into city ( + name, level, path, pop, pop2, agri, agri2, comm, comm2, secu, secu2, rate, + trade, def, def2, wall, wall2, gen1, gen2, gen3, region + ) values ( + '$name', '$level', '$path', '$pop', '$pop2', '$agri', '$agri2', '$comm', '$comm2', '$secu', '$secu2', 50, + 100, '$def', '$def2', '$wall', '$wall2', 0, 0, 0, '$region' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); +} + +?> diff --git a/twe_close/install3_ok.php b/twe_close/install3_ok.php new file mode 100644 index 00000000..3d4f74b0 --- /dev/null +++ b/twe_close/install3_ok.php @@ -0,0 +1,10 @@ +location.replace('index.php');"; +?> diff --git a/twe_close/install_ok.php b/twe_close/install_ok.php new file mode 100644 index 00000000..3d0326c3 --- /dev/null +++ b/twe_close/install_ok.php @@ -0,0 +1,97 @@ +
재설치하려면 해당 파일을 지우세요"); + +// 호스트네임, 아이디, DB네임, 비밀번호의 공백여부 검사 +if(isBlank($hostname)) Error("HostName을 입력하세요",""); +if(isBlank($user_id)) Error("User ID 를 입력하세요",""); +if(isBlank($dbname)) Error("DB NAME을 입력하세요",""); + +// DB에 커넥트 하고 DB NAME으로 select DB +$connect = MYDB_connect($hostname,$user_id,$password) or Error("MySQL-DB Connect
Error!!!",""); +if(MYDB_error($connect)) Error(__LINE__.MYDB_error($connect),""); +MYDB_select_db($dbname, $connect) or Error("MySQL-DB Select
Error!!!",""); + +delInDir("logs"); +delInDir("data/session"); +@unlink("data/connected.php"); + +// 관리자 테이블 삭제 +if(isTable($connect, "game", $dbname)) @MYDB_query("drop table game", $connect) or Error("drop ".MYDB_error($connect),""); +// 락 테이블 삭제 +if(isTable($connect, "plock", $dbname)) @MYDB_query("drop table plock", $connect) or Error("drop ".MYDB_error($connect),""); +// 장수 테이블 삭제 +if(isTable($connect, "general", $dbname)) @MYDB_query("drop table general", $connect) or Error("drop ".MYDB_error($connect),""); +// 국가 테이블 삭제 +if(isTable($connect, "nation", $dbname)) @MYDB_query("drop table nation", $connect) or Error("drop ".MYDB_error($connect),""); +// 도시 테이블 삭제 +if(isTable($connect, "city", $dbname)) @MYDB_query("drop table city", $connect) or Error("drop ".MYDB_error($connect),""); +// 부대 테이블 삭제 +if(isTable($connect, "troop", $dbname)) @MYDB_query("drop table troop", $connect) or Error("drop ".MYDB_error($connect),""); +// 토큰 테이블 삭제 +if(isTable($connect, "token",$dbname)) @MYDB_query("drop table token", $connect) or Error(__LINE__.MYDB_error($connect),""); +// 외교 테이블 삭제 +if(isTable($connect, "diplomacy", $dbname)) @MYDB_query("drop table diplomacy", $connect) or Error("drop ".MYDB_error($connect),""); +// 토너먼트 테이블 삭제 +if(isTable($connect, "tournament", $dbname)) @MYDB_query("drop table tournament", $connect) or Error("drop ".MYDB_error($connect),""); +// 거래 테이블 삭제 +if(isTable($connect, "auction", $dbname)) @MYDB_query("drop table auction", $connect) or Error("drop ".MYDB_error($connect),""); +// 통계 테이블 삭제 +if(isTable($connect, "statistic",$dbname)) @MYDB_query("drop table statistic", $connect) or Error("drop ".MYDB_error($connect),""); +// 연감 테이블 삭제 +if(isTable($connect, "history",$dbname)) @MYDB_query("drop table history", $connect) or Error("drop ".MYDB_error($connect),""); + +// 관리자 테이블 생성 +if(!isTable($connect, "game", $dbname)) @MYDB_query($game_schema, $connect) or Error("create game ".MYDB_error($connect),""); +// 락 테이블 생성 +if(!isTable($connect, "plock", $dbname)) @MYDB_query($plock_schema, $connect) or Error("create plock ".MYDB_error($connect),""); +// 장수 테이블 생성 +if(!isTable($connect, "general", $dbname)) @MYDB_query($general_schema, $connect) or Error("create general ".MYDB_error($connect),""); +// 국가 테이블 생성 +if(!isTable($connect, "nation", $dbname)) @MYDB_query($nation_schema, $connect) or Error("create nation ".MYDB_error($connect),""); +// 도시 테이블 생성 +if(!isTable($connect, "city", $dbname)) @MYDB_query($city_schema, $connect) or Error("create city ".MYDB_error($connect),""); +// 부대 테이블 생성 +if(!isTable($connect, "troop", $dbname)) @MYDB_query($troop_schema, $connect) or Error("create troop ".MYDB_error($connect),""); +// 토큰 테이블 생성 +if(!isTable($connect, "token",$dbname)) @MYDB_query($token_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 외교 테이블 생성 +if(!isTable($connect, "diplomacy", $dbname)) @MYDB_query($diplomacy_schema, $connect) or Error("create diplomacy ".MYDB_error($connect),""); +// 전당 테이블 생성 +if(!isTable($connect, "hall", $dbname)) { + MYDB_query($hall_schema, $connect) or Error("create hall ".MYDB_error($connect),""); + for($i=0; $i < 21; $i++) { + for($j=0; $j < 10; $j++) { + MYDB_query("insert into hall (type, rank) values ({$i}, {$j})", $connect); + } + } +} + +// 왕조 테이블 생성 +if(!isTable($connect, "emperior",$dbname)) @MYDB_query($emperior_schema, $connect) or Error("create emperior ".MYDB_error($connect),""); +// 토너먼트 테이블 생성 +if(!isTable($connect, "tournament",$dbname)) @MYDB_query($tournament_schema, $connect) or Error("create tournament ".MYDB_error($connect),""); +// 거래 테이블 생성 +if(!isTable($connect, "auction",$dbname)) @MYDB_query($auction_schema, $connect) or Error("create auction ".MYDB_error($connect),""); +// 통계 테이블 생성 +if(!isTable($connect, "statistic",$dbname)) @MYDB_query($statistic_schema, $connect) or Error("create statistic ".MYDB_error($connect),""); +// 연감 테이블 생성 +if(!isTable($connect, "history",$dbname)) @MYDB_query($history_schema, $connect) or Error("create history ".MYDB_error($connect),""); + +// 파일로 DB 정보 저장 +$file=@fopen("d_setting/set.php","w") or Error("set.php 파일 생성 실패

디렉토리의 퍼미션을 707로 주십시요",""); +@fwrite($file,"\n") or Error("set.php 파일 생성 실패

디렉토리의 퍼미션을 707로 주십시요",""); +@fclose($file); +@mkdir("data",0707); +@chmod("data",0707); +@chmod("d_setting/set.php",0707); + +$temp=MYDB_fetch_array(MYDB_query("select count(*) from general where level = '1'", $connect)); + +MYDB_close($connect); + +echo ""; +?> diff --git a/twe_close/join.php b/twe_close/join.php new file mode 100644 index 00000000..f6462cbc --- /dev/null +++ b/twe_close/join.php @@ -0,0 +1,246 @@ +history.go(-1);"; + exit(1); +} + +$connect = dbConn(); + +$abil = abilityRand(); + +//토큰 테이블에서 정보확인 +$query = "select id from token where id='{$id}'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$token = MYDB_fetch_array($result); + +if(!$token) { + //능력치 토큰 생성 + $query = " + insert into token ( + id, leader, power, intel + ) values ( + '{$id}', {$abil['leader']}, {$abil['power']}, {$abil['intel']} + )"; + $result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +} else { + $query = "update token set leader={$abil['leader']},power={$abil['power']},intel={$abil['intel']} where id='{$id}'"; + MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); +} + +?> + + + +장수생성 + + + + + + + + + +
장 수 생 성
+ + +
+= $admin[maxgeneral]) { + echo ""; + echo ""; + exit(); +} +?> + + + +"; + } else { + echo " + "; + } +} +?> +
임관 권유 메세지
$nation[name]-
$nation[name]$nation[scoutmsg]
+ +
+ + + + + + + + + + += 1 && $member[grade] >= 1 && $member[picture] != "") { + $imageTemp = GetImageURL($member[imgsvr]); + echo " + + + + + + "; +} +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
장수 생성
장수명 + >(6글자 이내) +
전콘 사용 여부 + + + 사용 +
+ 계정관리에서 자신만을 표현할 수 있는 아이콘을 업로드 해보세요! +
성격 + ※보정은 도움말 참고 +
통솔
무력
지력
능력치 조정 + + + + +
+ 모든 능력치는 ( 10 <= 능력치 <= 75 ) 사이로 잡으셔야 합니다.
+ 그 외의 능력치는 가입되지 않습니다.
+
+ 능력치의 총합은 150입니다. 가입후 0~10의 능력치 보너스를 받게 됩니다.
+ 임의의 도시에서 재야로 시작하며 건국과 임관은 게임 내에서 실행합니다. +
+
+ + + +
+ + diff --git a/twe_close/join_post.php b/twe_close/join_post.php new file mode 100644 index 00000000..52384fb3 --- /dev/null +++ b/twe_close/join_post.php @@ -0,0 +1,275 @@ +history.go(-1);"; + exit(1); +} + +$date = date('Y-m-d H:i:s'); +//등록정보 +$query = "update MEMBER set reg_num=reg_num+1,reg_date='$date' where no='$member[no]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + +$connect = dbConn(); + +########## 동일 정보 존재여부 확인. ########## + +$query = "select year,month,scenario,maxgeneral,turnterm,genius,img from game where no='1'"; +$result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); + +$query = "select no from general where npc<2"; +$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +$gencount = MYDB_num_rows($result); + +$query = "select no from general where user_id='$member[id]'"; +$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +$id_num = MYDB_num_rows($result); + +$query = "select no from general where name='$name'"; +$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +$name_num = MYDB_num_rows($result); + +$query = "select * from token where id='$member[id]'"; +$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +$token_num = MYDB_num_rows($result); + +if($token_num == 1) { + $token = MYDB_fetch_array($result); + $leader = $token['leader']; + $power = $token['power']; + $intel = $token['intel']; +} else { + $leader = 0; + $power = 0; + $intel = 0; +} + +if($id_num) { + echo(""); + exit; +} elseif($name_num) { + echo(""); + exit; +} elseif($token_num != 1) { + echo(""); + exit; +} elseif($admin[maxgeneral] <= $gencount) { + echo(""); + exit; +} elseif($id == "") { + echo(""); + exit; +} elseif(_String::GetStrLen($name) < 1) { + echo(""); + exit; +} elseif($name == "") { + echo(""); + exit; +} elseif(_String::GetStrLen($name) > 6) { + echo(""); + exit; +} elseif($leader + $power + $intel > 150) { + echo(""); + exit; +} elseif($leader > 75 || $leader < 10 || $power > 75 || $power < 10 || $intel > 75 || $intel < 10) { + echo(""); + exit; +} elseif($character < 0 || $character > 11) { + echo(""); + exit; +} else { + $ratio = rand() % 100; + // 현재 1% + if($ratio == 50 && $admin[genius] > 0) { + $genius = 1; + + $query = "update game set genius=genius-1 where no='1'"; + MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + } else { + $genius = 0; + } + + //중, 소 공백지 개수 + $query = "select city from city where level>=5 and level<=6 and nation=0"; + $result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + $citycount = MYDB_num_rows($result); + + // 공백지에서만 태어나게 + if($citycount > 0) { + $query = "select city from city where level>=5 and level<=6 and nation=0 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + } else { + $query = "select city from city where level>=5 and level<=6 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + } + $city = $city[city]; + + $total = rand() % 6; + $pleader = rand() % 100; + $ppower = rand() % 100; + $pintel = rand() % 100; + $rate = $pleader + $ppower + $pintel; + $pleader = floor($pleader / $rate * $total + 0.5); + $ppower = floor($ppower / $rate * $total + 0.5); + $pintel = floor($pintel / $rate * $total + 0.5); + + $leader = $leader + $pleader; + $power = $power + $ppower; + $intel = $intel + $pintel; + + $age = 20 + ($pleader + $ppower + $pintel) * 2 + (rand() % 2); + // 아직 남았고 천재등록상태이면 특기 부여 + if($genius == 1) { + $specage2 = $age; + $special2 = getSpecial2($connect, $leader, $power, $intel); + } else { + $specage2 = round((80 - $age)/3) + $age; + $special2 = 0; + } + //내특 + $specage = round((80 - $age)/12) + $age; + $special = 0; + + if($admin[scenario] > 0) { + $specage2 = $age + 3; + $specage = $age + 3; + } + + $turntime = getRandTurn($admin[turnterm]); + + $lastconnect = date('Y-m-d H:i:s'); + if($lastconnect >= $turntime) { + $turntime = addTurn($turntime, $admin[turnterm]); + } + + //특회 전콘 + if($admin[img] >= 1 && $member[grade] >= 1 && $member[picture] != "" && $pic == 1) { + $face = $member[picture]; + $imgsvr = $member[imgsvr]; + } else { + $face = "default.jpg"; + $imgsvr = 0; + } + //특회 + $userlevel = $member[grade]; + + //성격 랜덤시 + if($character == 11) $character = rand()%10; + //상성 랜덤 + $npcmatch = rand()%150 + 1; + + ########## 회원정보 테이블에 입력값을 등록한다. ########## + $query = " + insert into general ( + user_id, password, name, picture, imgsvr, nation, city, troop, npcmatch, + leader, power, intel, experience, dedication, gold, rice, crew, train, atmos, + userlevel, level, turntime, killturn, lastconnect, makelimit, age, startage, personal, specage, special, specage2, special2 + ) values ( + '$id', '$pwTemp', '$name', '$face', '$imgsvr', '0', '$city', '0', '$npcmatch', + '$leader', '$power', '$intel', '0', '0', '1000', '1000', '0', '0', '0', + '$userlevel', '0', '$turntime', '6', '$lastconnect', '0', '$age', '$age', '$character', '$specage', '$special', '$specage2', '$special2' + )"; + $result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select no,name,history from general where user_id='$id'"; + $result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + if($me[name] == "") { + $r = rand() % 999 + 1; + $me[name] = '장수-'.$r; + + $query = "update general set name='$me[name]' where user_id='$id'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + $cityname = getCity($connect, $city, "name"); + if($genius == 1) { + $log[0] = "●{$admin[month]}월:$cityname[name]에서 $me[name](이)라는 기재가 천하에 이름을 알립니다."; + $log[1] = "●{$admin[month]}월:".getGenSpecial($special2)." 특기를 가진 천재의 등장으로 온 천하가 떠들썩합니다."; + + $history[0] = "●$admin[year]년 $admin[month]월:【천재】$cityname[name]에 천재가 등장했습니다."; + pushHistory($connect, $history); + } else { + $log[0] = "●{$admin[month]}월:$cityname[name]에서 $me[name](이)라는 호걸이 천하에 이름을 알립니다."; + } + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:$me[name], $cityname[name]에서 큰 뜻을 품다."); + $mylog[count($mylog)] = "●삼국지 모의전투 PHP의 세계에 오신 것을 환영합니다 ^o^"; + $mylog[count($mylog)] = "●처음 하시는 경우에는 도움말을 참고하시고,"; + $mylog[count($mylog)] = "●문의사항이 있으시면 게시판에 글을 남겨주시면 되겠네요~"; + $mylog[count($mylog)] = "●부디 즐거운 삼모전 되시길 바랍니다 ^^"; + $mylog[count($mylog)] = "●통솔 $pleader 무력 $ppower 지력 $pintel 의 보너스를 받으셨습니다."; + $mylog[count($mylog)] = "●연령은 $age세로 시작합니다."; + if($genius == 1) { + $mylog[count($mylog)] = "●축하합니다! 천재로 태어나 처음부터 ".getGenSpecial($special2)." 특기를 가지게 됩니다!"; + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:".getGenSpecial($special2)." 특기를 가진 천재로 탄생."); + } + pushGenLog($me, $mylog); + pushAllLog($log); + + $adminLog[0] = "가입 : {$name} // {$me[name]} // {$id} // ".getenv("REMOTE_ADDR"); + pushAdminLog($connect, $adminLog); + + MYDB_close($connect); + + echo(""); + echo(""); +} + +?> diff --git a/twe_close/join_post.php.orig b/twe_close/join_post.php.orig new file mode 100644 index 00000000..ed10c24b --- /dev/null +++ b/twe_close/join_post.php.orig @@ -0,0 +1,275 @@ +history.go(-1);"; + exit(1); +} + +$date = date('Y-m-d H:i:s'); +//등록정보 +$query = "update MEMBER set reg_num=reg_num+1,reg_date='$date' where no='$member[no]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + +$connect = dbConn(); + +########## 동일 정보 존재여부 확인. ########## + +$query = "select year,month,scenario,maxgeneral,turnterm,genius,img from game where no='1'"; +$result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); + +$query = "select no from general where npc<2"; +$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +$gencount = MYDB_num_rows($result); + +$query = "select no from general where user_id='$member[id]'"; +$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +$id_num = MYDB_num_rows($result); + +$query = "select no from general where name='$name'"; +$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +$name_num = MYDB_num_rows($result); + +$query = "select * from token where id='$member[id]'"; +$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +$token_num = MYDB_num_rows($result); + +if($token_num == 1) { + $token = MYDB_fetch_array($result); + $leader = $token['leader']; + $power = $token['power']; + $intel = $token['intel']; +} else { + $leader = 0; + $power = 0; + $intel = 0; +} + +if($id_num) { + echo(""); + exit; +} elseif($name_num) { + echo(""); + exit; +} elseif($token_num != 1) { + echo(""); + exit; +} elseif($admin[maxgeneral] <= $gencount) { + echo(""); + exit; +} elseif($id == "") { + echo(""); + exit; +} elseif(_String::GetStrLen($name) < 1) { + echo(""); + exit; +} elseif($name == "") { + echo(""); + exit; +} elseif(_String::GetStrLen($name) > 6) { + echo(""); + exit; +} elseif($leader + $power + $intel > 150) { + echo(""); + exit; +} elseif($leader > 75 || $leader < 10 || $power > 75 || $power < 10 || $intel > 75 || $intel < 10) { + echo(""); + exit; +} elseif($character < 0 || $character > 11) { + echo(""); + exit; +} else { + $ratio = rand() % 100; + // 현재 1% + if($ratio == 50 && $admin[genius] > 0) { + $genius = 1; + + $query = "update game set genius=genius-1 where no='1'"; + MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + } else { + $genius = 0; + } + + //중, 소 공백지 개수 + $query = "select city from city where level>=5 and level<=6 and nation=0"; + $result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + $citycount = MYDB_num_rows($result); + + // 공백지에서만 태어나게 + if($citycount > 0) { + $query = "select city from city where level>=5 and level<=6 and nation=0 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + } else { + $query = "select city from city where level>=5 and level<=6 order by rand() limit 0,1"; + $result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + $city = MYDB_fetch_array($result); + } + $city = $city[city]; + + $total = rand() % 6; + $pleader = rand() % 100; + $ppower = rand() % 100; + $pintel = rand() % 100; + $rate = $pleader + $ppower + $pintel; + $pleader = floor($pleader / $rate * $total + 0.5); + $ppower = floor($ppower / $rate * $total + 0.5); + $pintel = floor($pintel / $rate * $total + 0.5); + + $leader = $leader + $pleader; + $power = $power + $ppower; + $intel = $intel + $pintel; + + $age = 20 + ($pleader + $ppower + $pintel) * 2 + (rand() % 2); + // 아직 남았고 천재등록상태이면 특기 부여 + if($genius == 1) { + $specage2 = $age; + $special2 = getSpecial2($connect, $leader, $power, $intel); + } else { + $specage2 = round((80 - $age)/3) + $age; + $special2 = 0; + } + //내특 + $specage = round((80 - $age)/12) + $age; + $special = 0; + + if($admin[scenario] > 0) { + $specage2 = $age + 3; + $specage = $age + 3; + } + + $turntime = getRandTurn($admin[turnterm]); + + $lastconnect = date('Y-m-d H:i:s'); + if($lastconnect >= $turntime) { + $turntime = addTurn($turntime, $admin[turnterm]); + } + + //특회 전콘 + if($admin[img] >= 1 && $member[grade] >= 1 && $member[picture] != "" && $pic == 1) { + $face = $member[picture]; + $imgsvr = $member[imgsvr]; + } else { + $face = "default.jpg"; + $imgsvr = 0; + } + //특회 + $userlevel = $member[grade]; + + //성격 랜덤시 + if($character == 11) $character = rand()%10; + //상성 랜덤 + $npcmatch = rand()%150 + 1; + + ########## 회원정보 테이블에 입력값을 등록한다. ########## + $query = " + insert into general ( + user_id, password, name, picture, imgsvr, nation, city, troop, npcmatch, + leader, power, intel, experience, dedication, gold, rice, crew, train, atmos, + userlevel, level, turntime, killturn, lastconnect, makelimit, age, startage, personal, specage, special, specage2, special2 + ) values ( + '$id', '$pwTemp', '$name', '$face', '$imgsvr', '0', '$city', '0', '$npcmatch', + '$leader', '$power', '$intel', '0', '0', '1000', '1000', '0', '0', '0', + '$userlevel', '0', '$turntime', '6', '$lastconnect', '0', '$age', '$age', '$character', '$specage', '$special', '$specage2', '$special2' + )"; + $result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select no,name,history from general where user_id='$id'"; + $result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + if($me[name] == "") { + $r = rand() % 999 + 1; + $me[name] = '장수-'.$r; + + $query = "update general set name='$me[name]' where user_id='$id'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + $cityname = getCity($connect, $city, "name"); + if($genius == 1) { + $log[0] = "●{$admin[month]}월:$cityname[name]에서 $me[name](이)라는 기재가 천하에 이름을 알립니다."; + $log[1] = "●{$admin[month]}월:".getGenSpecial($special2)." 특기를 가진 천재의 등장으로 온 천하가 떠들썩합니다."; + + $history[0] = "●$admin[year]년 $admin[month]월:【천재】$cityname[name]에 천재가 등장했습니다."; + pushHistory($connect, $history); + } else { + $log[0] = "●{$admin[month]}월:$cityname[name]에서 $me[name](이)라는 호걸이 천하에 이름을 알립니다."; + } + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:$me[name], $cityname[name]에서 큰 뜻을 품다."); + $mylog[count($mylog)] = "●삼국지 모의전투 PHP의 세계에 오신 것을 환영합니다 ^o^"; + $mylog[count($mylog)] = "●처음 하시는 경우에는 도움말을 참고하시고,"; + $mylog[count($mylog)] = "●문의사항이 있으시면 게시판에 글을 남겨주시면 되겠네요~"; + $mylog[count($mylog)] = "●부디 즐거운 삼모전 되시길 바랍니다 ^^"; + $mylog[count($mylog)] = "●통솔 $pleader 무력 $ppower 지력 $pintel 의 보너스를 받으셨습니다."; + $mylog[count($mylog)] = "●연령은 $age세로 시작합니다."; + if($genius == 1) { + $mylog[count($mylog)] = "●축하합니다! 천재로 태어나 처음부터 ".getGenSpecial($special2)." 특기를 가지게 됩니다!"; + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:".getGenSpecial($special2)." 특기를 가진 천재로 탄생."); + } + pushGenLog($me, $mylog); + pushAllLog($log); + + $adminLog[0] = "가입 : {$name} // {$me[name]} // {$id} // ".getenv("REMOTE_ADDR"); + pushAdminLog($connect, $adminLog); + + MYDB_close($connect); + + echo(""); + echo(""); +} + +?> diff --git a/twe_close/join_token.php b/twe_close/join_token.php new file mode 100644 index 00000000..87042ec3 --- /dev/null +++ b/twe_close/join_token.php @@ -0,0 +1,58 @@ + \ No newline at end of file diff --git a/twe_close/jquery-1.11.0.min.js b/twe_close/jquery-1.11.0.min.js new file mode 100644 index 00000000..73f33fb3 --- /dev/null +++ b/twe_close/jquery-1.11.0.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f +}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="
a",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/\s*$/g,sb={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:l.htmlSerialize?[0,"",""]:[1,"X
","
"]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?""!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n(" + + + + + + + + + + + + + + +
+ 0?"cyan":"white";?>> Ctrl, Shift, 드래그로 복수선택 가능     반복&수정 + ;color:white;width:50;font-size:13; value='반복' onclick='refreshing(2,0)'>;color:white;width:80;font-size:13; value='▼미루기' onclick='refreshing(2,1)'>;color:white;width:80;font-size:13; value='▲당기기' onclick='refreshing(2,2)'> +
+ + ;color:white;width:110;font-size:13; value='실 행' onclick='refreshing(3,form2)'>;color:white;width:110;font-size:13; value='갱 신' onclick='refreshing(0,0)'>;color:white;width:160;font-size:13; value='로그아웃' onclick=location.replace('logout_process.php')>
+
+ + + + + + +
+ + + + + + + + + + + +
장수 동향개인 기록
중원 정세
+ + + + + + + +
+
+ + + ;color:white;font-size:13;width:100px; value='서신전달&갱신' onclick='refreshing(4,message)'> +
내용 없이 '서신전달&갱신'을 누르면 메세지창이 갱신됩니다. +
+
+ +
+ + + +
+ + + + + diff --git a/twe_close/map.php b/twe_close/map.php new file mode 100644 index 00000000..af42f272 --- /dev/null +++ b/twe_close/map.php @@ -0,0 +1,435 @@ + + +지 도 생 략
+(개인설정 또는 과부하로 인한 서버의 긴급모드) +
+ +"; + exit(); +} +$connect=dbConn(); +// +?> + + + +지도 + + + + + + + + + + + +"; + $ad = "background={$images}/ad.gif"; + $season = "background={$images}/{$season}.gif"; + $rtitle = ""; + } else { + $ltitle = " "; + $ad = ""; + $season = ""; + $rtitle = "" ";"; + } + echo " + + + + + + + + + + + +
{$ltitle} {$admin[year]}年 {$admin[month]}月{$rtitle}
+
"; + + $query = "select nation,name,color,capital from nation"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=1; $i <= $count; $i++) { + $nation = MYDB_fetch_array($result); + $nationcolor[$nation[nation]] = $nation[color]; + $nationname[$nation[nation]] = $nation[name]; + $nationCapital[$nation[nation]] = $nation[capital]; + } + + if($type == 0) { + // 운영자의 경우 다 볼 수 있음 + if($me[userlevel] >= 5) { + for($i=1; $i <= $allcount; $i++) { + $valid[$i] = 1; + } + } elseif($me[level] == 0) { + // 재야는 내 도시만 + $query = "select city,name,nation from city where city='$me[city]'"; + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityvalid = MYDB_fetch_array($cityresult); + $valid[$cityvalid[city]] = 1; + } else { + // 아국 도시 + $query = "select city,name from city where nation='$me[nation]'"; + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($cityresult); + for($i=0; $i < $citycount; $i++) { + $cityvalid = MYDB_fetch_array($cityresult); + $valid[$cityvalid[city]] = 1; + } + // 아국 장수가 있는 타국 도시들 선택 + $query = "select distinct A.city,B.name,B.nation from general A,city B where A.city=B.city and A.nation='$me[nation]' and B.nation!='$me[nation]'"; + $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($cityresult); + for($i=0; $i < $citycount; $i++) { + $cityvalid = MYDB_fetch_array($cityresult); + $valid[$cityvalid[city]] = 1; + } + // 첩보된 도시 + $citys = explode("|", $myNation[spy]); + for($i=0; $i < count($citys); $i++) { + $valid[floor($citys[$i]/10)] = 1; + } + } + } + + $x = array( +// 업 허창 낙양 장안 성도 양양 건업 북평 남피 완 수춘 서주 강릉 장사 시상 위례 + 345, 330, 275, 145, 25, 255, 505, 465, 395, 270, 395, 440, 245, 255, 360, 620, +// 계 복양 진류 여남 하비 서량 하내 한중 상용 덕양 강주 건녕 남해 계양 오 평양 + 365, 410, 365, 330, 480, 25, 230, 135, 185, 85, 70, 80, 245, 230, 510, 590, +// 사비 계림 진양 평원 북해 초 패 천수 안정 홍농 하변 자동 영안 귀양 주시 운남 + 605, 655, 295, 440, 470, 365, 430, 70, 95, 210, 45, 75, 115, 90, 30, 30, +// 남영 교지 신야 강하 무릉 영릉 상동 여강 회계 고창 대 안평 졸본 이도 강 저 + 135, 130, 250, 315, 195, 190, 210, 380, 480, 350, 450, 530, 570, 680, 95, 25, +// 흉노 남만 산월 오환 왜 호관 호로 사곡 함곡 사수 양평 가맹 역경 계교 동황 관도 + 180, 80, 425, 610, 680, 285, 285, 240, 180, 310, 90, 45, 410, 405, 515, 340, +// 정도 합비 광릉 적도 가정 기산 면죽 이릉 장판 백랑 적벽 파양 탐라 유구 + 400, 435, 490, 130, 40, 110, 35, 215, 280, 530, 330, 430, 605, 625 + ); + + $y = array( +// 업 허창 낙양 장안 성도 양양 건업 북평 남피 완 수춘 서주 강릉 장사 시상 위례 + 130, 215, 180, 165, 290, 290, 305, 65, 95, 235, 270, 250, 335, 375, 360, 145, +// 계 복양 진류 여남 하비 서량 하내 한중 상용 덕양 강주 건녕 남해 계양 오 평양 + 35, 170, 185, 260, 235, 50, 150, 205, 225, 275, 310, 400, 480, 400, 345, 100, +// 사비 계림 진양 평원 북해 초 패 천수 안정 홍농 하변 자동 영안 귀양 주시 운남 + 205, 200, 60, 115, 155, 230, 220, 105, 145, 175, 190, 245, 295, 360, 345, 415, +// 남영 교지 신야 강하 무릉 영릉 상동 여강 회계 고창 대 안평 졸본 이도 강 저 + 405, 480, 260, 295, 355, 395, 435, 315, 395, 405, 480, 80, 65, 260, 35, 120, +// 흉노 남만 산월 오환 왜 호관 호로 사곡 함곡 사수 양평 가맹 역경 계교 동황 관도 + 95, 455, 430, 20, 320, 140, 205, 175, 175, 185, 220, 225, 65, 135, 145, 165, +// 정도 합비 광릉 적도 가정 기산 면죽 이릉 장판 백랑 적벽 파양 탐라 유구 + 210, 285, 275, 75, 160, 180, 255, 295, 315, 30, 325, 350, 260, 435 + ); + + $query = "select name,level,nation,city,state,region,supply from city"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + for($i=0; $i < $allcount; $i++) { + $city = MYDB_fetch_array($result); + $name = $city[name]; + $nation = $nationname[$city[nation]]; + $color = $nationcolor[$city[nation]]; + $capital = $nationCapital[$city[nation]]; + $level = $city[level]; + $state = $city[state]; + $region = $city[region]; + + if($me[city] == $city[city]) { $myCity = 1; } + else { $myCity = 0; } + + if($capital == $city[city]) { $cap = 1; } + else { $cap = 0; } + + city($graphic, $brouserIE, + $type, $name, $nation, $color, $level, $region, $i+1, $valid[$i+1], $x[$i], $y[$i], + $state, $myCity, $city[supply], $cap); + } + + echo " +
+
+"; +} + +function city($graphic, $brouser, $type, $name, $nation, $color, $level, $region, $city, $valid, $x, $y, $state, $mycity, $supply, $capital) { + global $images; + + if($graphic == 0) { + switch($level) { + case 1: $width = 16; $height = 15; break; + case 2: $width = 20; $height = 14; break; + case 3: $width = 14; $height = 14; break; + case 4: $width = 20; $height = 15; break; + case 5: $width = 24; $height = 16; break; + case 6: $width = 26; $height = 18; break; + case 7: $width = 28; $height = 20; break; + case 8: $width = 32; $height = 24; break; + } + } else { + switch($level) { + case 1: $width = 12; $height = 12; break; + case 2: $width = 12; $height = 12; break; + case 3: $width = 14; $height = 14; break; + case 4: $width = 16; $height = 14; break; + case 5: $width = 18; $height = 16; break; + case 6: $width = 20; $height = 16; break; + case 7: $width = 22; $height = 18; break; + case 8: $width = 24; $height = 18; break; + } + } + $x -= floor($width / 2); + $y -= floor($height / 2); + + $backwidth = floor($width * 3.0); $backheight = floor($height * 3.0); + + $backx = $x - floor(($backwidth - $width)/2); + $backy = $y - floor(($backheight - $height)/2); + $fx = $x + $width - 6; + $fy = $y - 3; + $cx = $x + $width - 4; + $cy = $y - 2; + $ex = $x - 5; + $ey = $y; + + // 0 명령화면의 지도(본국 장수 있는 도시 링크), + // 1 전쟁,이동,계략시 지도(전도시 클릭되게), + // 2 사령부 태수임명(본국만 클릭되게) + + // 0인 경우 현재도시 링크 생성 + if($type == 0 && $valid == 1) { echo "
"; } + //메인화면 + if($graphic == 0) { + if($type == 0 && $valid == 1) { + $tag = "input type=image"; + $tail = "><{$tag} {$mid} {$tail}>
"; + //재난표시 + if($state > 0) { + $mid2 = "src={$images}/event{$state}.gif style=width:15;height:15; onmousemove='showLayer(this,\"".getCityLevel($region, $level)."$name\",\"$nation\", event)' onmouseout='hideLayer()'"; + echo "
<{$tag} {$mid2} {$tail}>
"; + } + } else { + //메인화면 + if($type == 0 && $valid == 1) { + $tail = " onclick='form{$city}.submit()'>
"; + //재난표시 + if($state > 0) { + if($state < 10) { $color3 = "blue"; } + elseif($state < 40) { $color3 = "orange"; } + elseif($state < 50) { $color3 = "red"; } + $mid2 = "width:10;height:10;background-color:{$color3}; onmousemove='showLayer(this,\"".getCityLevel($region, $level)."$name\",\"$nation\", event)' onmouseout='hideLayer()'"; + echo "
"; + } + } + //공백지 아니면 + if($color != "") { + if($graphic == 0) { + //배경국가색 + if($brouser == 1) { + echo "
"; + } else { + echo " +
+ +
"; + } + //깃발표시 + if($supply == 1) { $mid3 = "src={$images}/f{$color}.gif style=width:12;height:12; onmousemove='showLayer(this,\"".getCityLevel($region, $level)."$name\",\"$nation\", event)' onmouseout='hideLayer()'"; } + else { $mid3 = "src={$images}/d{$color}.gif style=width:12;height:12; onmousemove='showLayer(this,\"".getCityLevel($region, $level)."$name\",\"$nation\", event)' onmouseout='hideLayer()'"; } + echo "
<{$tag} {$mid3} {$tail}>
"; + //수도표시 + if($capital == 1) { + $mid4 = "src={$images}/event51.gif style=width:10;height:10; onmousemove='showLayer(this,\"".getCityLevel($region, $level)."$name\",\"$nation\", event)' onmouseout='hideLayer()'"; + echo "
<{$tag} {$mid4} {$tail}>
"; + } + } else { + //수도표시 + if($capital == 1) { + echo "
"; + } + } + } + // 0인 경우 현재도시 링크 생성했던거 종료 + if($type == 0 && $valid == 1) { + echo ""; + } + + // 내 도시인 경우 빨간 네모 그리기 + if($mycity == 1) { + $width += 8; + $height += 8; + $x -= 4; + $y -= 4; + + echo " +
+ + +
+
"; + } +} + +function getCityLevel($region, $level) { + switch($region) { + case 1: $str = "【하북|"; break; + case 2: $str = "【중원|"; break; + case 3: $str = "【서북|"; break; + case 4: $str = "【서촉|"; break; + case 5: $str = "【남중|"; break; + case 6: $str = "【 초|"; break; + case 7: $str = "【오월|"; break; + case 8: $str = "【동이|"; break; + } + + switch($level) { + case 1: $str .= "수】"; break; + case 2: $str .= "진】"; break; + case 3: $str .= "관】"; break; + case 4: $str .= "이】"; break; + case 5: $str .= "소】"; break; + case 6: $str .= "중】"; break; + case 7: $str .= "대】"; break; + case 8: $str .= "특】"; break; + } + + return $str; +} + +?> diff --git a/twe_close/map_history.php b/twe_close/map_history.php new file mode 100644 index 00000000..8f612467 --- /dev/null +++ b/twe_close/map_history.php @@ -0,0 +1,34 @@ +', "'", $map); +$map = str_replace('<_dquot_>', '"', $map); + +echo $map; +?> diff --git a/twe_close/msglist.php b/twe_close/msglist.php new file mode 100644 index 00000000..98fa26a3 --- /dev/null +++ b/twe_close/msglist.php @@ -0,0 +1,43 @@ + + + + +메시지리스트 + + + + + + + + + + + + +
+ 전체 메세지(최고75자)
+ +
+ 개인 메세지(최고75자)
+ +
+ + 국가 메세지(최고75자)
+ +
+ + + diff --git a/twe_close/mysql_opt.txt b/twe_close/mysql_opt.txt new file mode 100644 index 00000000..bf51dd0f --- /dev/null +++ b/twe_close/mysql_opt.txt @@ -0,0 +1,53 @@ +로그활성화 +show variables like '%log%'; + +ALTER TABLE mysql.general_log +ADD COLUMN seq BIGINT UNSIGNED NOT NULL AUTO_INCREMENT AFTER argument, +ADD PRIMARY KEY(seq), +ENGINE=MYISAM; + +set global expire_logs_days=7; +set global log_output='TABLE'; +set global general_log=1; + +select count(*) from mysql.general_log; +select * from mysql.general_log limit 100; + +set global general_log=0; +truncate mysql.general_log; + + +캐시들 +show variables like '%cache%'; +show status like '%cache%'; +show variables like '%key%'; +show status like '%key%'; + +key_buffer_size 줄이자. 현16M -> 8M이하 +myisam_sort_buffer_size 줄이자. 현8M -> 2M + +innodb 설정 +기존 Antelope 포맷은 가변컬럼의 767바이트까지만 저장하고 나머지는 offset하여 외부에 저장한다. +그런데 innodb는 1개 행이 최대 8KB만 저장 가능하므로 가변컬럼이 11개 이상인 경우는 오류 위험이 있다. +(MyISAM은 64KB) +Barracuda 포맷에 Dynamic 또는 Compressed를 사용하면 포인터 20바이트만 저장하고 실데이터는 외부에 저장한다. + +[mysqld] +innodb_file_format=barracuda +innodb_file_per_table=1 + + +innodb 최적화 +innodb_buffer_pool_size: 체섭 테이블 최대 5M정도. 인덱스 포함해도 32M면 충분? +innodb_flush_method: 기본값대로. O_DIRECT는 메모리가 커서 캐시 2중 필요 없을때만. +innodb_file_per_table: 테이블마다 독립파일로 저장 +innodb_flush_log_at_trx_commit: 기본1(커밋마다), 0(로그찰때만), 추천2(1초마다) +innodb_log_file_size: 현 5M, 많이 키워도 될듯 +innodb_log_buffer_size: 기본 8M 적당 +innodb_thread_concurrency: 코어개수 2배 정도 + +sync_binlog=0 이미 꺼져있음 + +ib_logfile0, ib_logfile1은 로그사이즈 바꾸면 재시작이 안되므로 지우고 다시 해야함 + +alter table table_name engine=innodb row_format=dynamic diff --git a/twe_close/new_lib.php b/twe_close/new_lib.php new file mode 100644 index 00000000..02f1b34c --- /dev/null +++ b/twe_close/new_lib.php @@ -0,0 +1,12 @@ + + + +NPC로그인 + + + + + + + + + + +
삼국지 모의전투 PHP (유기체서버)
+
+ + + + + + + + + + + + + + + + +
ID
비밀번호
-
+
+
+ + + diff --git a/twe_close/npc_login_process.php b/twe_close/npc_login_process.php new file mode 100644 index 00000000..3dd7c0e5 --- /dev/null +++ b/twe_close/npc_login_process.php @@ -0,0 +1,76 @@ +location.replace('index.php');"; +} elseif(!$me) { + MessageBox("아이디나 암호가 올바르지 않습니다!!!"); + echo ""; +} else { + switch($me[block]) { + case 1: + MessageBox("비매너 발언으로 인해, 발언권이 제한됩니다."); break; + case 2: + MessageBox("현재 블럭된 계정입니다. 턴 실행이 제한됩니다."); + MessageBox("절대 1계정만 사용하십시오! $me[killturn]시간 후 재등록 가능합니다."); break; + case 3: + MessageBox("현재 블럭된 계정입니다. 발언권과 턴 실행이 제한됩니다."); + MessageBox("절대 1계정만 사용하십시오! $me[killturn]시간 후 재등록 가능합니다."); break; + } + + $_SESSION[p_id] = $id; + $_SESSION[p_name] = $me[name]; + $_SESSION[p_nation] = $me[nation]; + $_SESSION[p_time] = time(); + + $date = date('Y-m-d H:i:s'); + + $query="update general set logcnt=logcnt+1,ip='$_SESSION[p_ip]',lastconnect='$date',conmsg='$conmsg' where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + echo ""; + + $date2 = substr($date, 0, 10); + $fp = fopen("logs/_{$date2}-login.txt", "a"); + $msg = _String::Fill2($date,20," ")._String::Fill2($id,13," ")._String::Fill2($me[name],13," ")._String::Fill2($_SESSION[p_ip],16," "); + fwrite($fp, $msg."\r\n"); + fclose($fp); +} + +function DeleteSession() { + $session_path = "data/session"; // 세션이저장된 디렉토리 + if(!$dir=@opendir($session_path)) echo "디렉토리를 열지못했습니다."; + + while($file=@readdir($dir)) { + if(!strstr($file,'sess_')) continue; + if(strpos($file,'sess_')!=0) continue; + if (!$atime=@fileatime("$session_path/$file")) continue; + if (time() > $atime + 86400) { // 10대시 지난시간을 초로 계산해서 적어주시면 됩니다. + // $return = (@unlink("$session_path/$file")); + @unlink("$session_path/$file"); + } + } + closedir($dir); +} + +MYDB_close($connect); +?> diff --git a/twe_close/phpinfo.php b/twe_close/phpinfo.php new file mode 100644 index 00000000..cf608608 --- /dev/null +++ b/twe_close/phpinfo.php @@ -0,0 +1,3 @@ + diff --git a/twe_close/preprocessing.php b/twe_close/preprocessing.php new file mode 100644 index 00000000..bcd7780b --- /dev/null +++ b/twe_close/preprocessing.php @@ -0,0 +1,124 @@ += 2) { echo ""; exit(); } + +$count = sizeof($turn); +for($i=0; $i < $count; $i++) { + if($turn[$i] == 100 || $turn[$i] == 99 || $turn[$i] == 98) { + } elseif($turn[$i] >= 0 && $turn[$i] <= 23) { + } else { + unset($turn); + $turn[0] = 100; + break; + } +} + +if($turn[0] == 100) { + unset($turn); + for($i=0; $i < 24; $i++) $turn[$i] = $i; +} elseif($turn[0] == 99) { + unset($turn); + for($i=0, $j=0; $i < 24; $i+=2, $j++) $turn[$j] = $i; +} elseif($turn[0] == 98) { + unset($turn); + for($i=1, $j=0; $i < 24; $i+=2, $j++) $turn[$j] = $i; +} + +switch($commandtype) { + case 0: command_Single($connect, $turn, 0); break; //휴식 + case 1: command_Single($connect, $turn, 1); break; //농업 + case 2: command_Single($connect, $turn, 2); break; //상업 + case 3: command_Single($connect, $turn, 3); break; //기술 + case 4: command_Single($connect, $turn, 4); break; //선정 + case 5: command_Single($connect, $turn, 5); break; //수비 + case 6: command_Single($connect, $turn, 6); break; //성벽 + case 7: command_Single($connect, $turn, 7); break; //정착 장려 + case 8: command_Single($connect, $turn, 8); break; //치안 강화 + case 9: command_Single($connect, $turn, 9); break; //자금 조달 + +// case 11: command_11($connect, $turn, 11); break; //징병 +// case 12: command_12($connect, $turn, 12); break; //모병 + case 13: command_Single($connect, $turn, 13); break; //훈련 + case 14: command_Single($connect, $turn, 14); break; //사기진작 + case 15: command_Single($connect, $turn, 0); break; //전투태세 +// case 16: command_16($connect, $turn, 16); break; //전쟁 + case 17: command_Single($connect, $turn, 17); break; //소집해제 + +// case 21: command_21($connect, $turn, 21); break; //이동 +// case 22: command_22($connect, $turn, 22); break; //등용 +// case 23: command_23($connect, $turn, 23); break; //포상 +// case 24: command_24($connect, $turn, 24); break; //몰수 +// case 25: command_25($connect, $turn, 25); break; //임관 + case 26: command_Single($connect, $turn, 26); break; //집합 +// case 27: command_27($connect, $turn, 27); break; //발령 + case 28: command_Single($connect, $turn, 28); break; //귀환 + case 29: command_Single($connect, $turn, 29); break; //인재탐색 +// case 30: command_30($connect, $turn, 30); break; //강행 + +// case 31: command_31($connect, $turn, 31); break; //첩보 +// case 32: command_32($connect, $turn, 32); break; //화계 +// case 33: command_33($connect, $turn, 33); break; //탈취 +// case 34: command_34($connect, $turn, 34); break; //파괴 +// case 35: command_35($connect, $turn, 35); break; //선동 +// case 36: command_36($connect, $turn, 36); break; //기습 + + case 41: command_Single($connect, $turn, 41); break; //단련 + case 42: command_Single($connect, $turn, 42); break; //견문 +// case 43: command_43($connect, $turn, 43); break; //증여 +// case 44: command_44($connect, $turn, 44); break; //헌납 + case 45: command_Single($connect, $turn, 45); break; //하야 +// case 46: command_46($connect, $turn, 46); break; //건국 + case 47: command_Single($connect, $turn, 47); break; //방랑 +// case 48: command_48($connect, $turn, 48); break; //장비구입 +// case 49: command_49($connect, $turn, 49); break; //군량매매 + case 50: command_Single($connect, $turn, 50); break; //요양 + +// case 51: command_51($connect, $turn, 51); break; //항복권고 +// case 52: command_52($connect, $turn, 52); break; //원조 +// case 53: command_53($connect, $turn, 53); break; //통합제의 +// case 54: command_54($connect, $turn, 54); break; //선양 + case 55: command_Single($connect, $turn, 55); break; //거병 + case 56: command_Single($connect, $turn, 56); break; //해산 + case 57: command_Single($connect, $turn, 57); break; //모반 시도 + +// case 61: command_61($connect, $turn, 61); break; //불가침 +// case 62: command_62($connect, $turn, 62); break; //선포 +// case 63: command_63($connect, $turn, 63); break; //종전 +// case 64: command_64($connect, $turn, 64); break; //파기 +// case 65: command_65($connect, $turn, 65); break; //초토화 +// case 66: command_66($connect, $turn, 66); break; //천도 +// case 67: command_67($connect, $turn, 67); break; //증축 +// case 68: command_68($connect, $turn, 68); break; //감축 + + case 71: command_Chief($connect, $turn, 71); break; //필사즉생 +// case 72: command_72($connect, $turn, 72); break; //백성동원 +// case 73: command_73($connect, $turn, 73); break; //수몰 +// case 74: command_74($connect, $turn, 74); break; //허보 +// case 75: command_75($connect, $turn, 75); break; //피장파장 + case 76: command_Chief($connect, $turn, 76); break; //의병모집 +// case 77: command_77($connect, $turn, 77); break; //이호경식 +// case 78: command_78($connect, $turn, 78); break; //급습 + +// case 81: command_81($connect, $turn, 81); break; //국기변경 + +// case 99: command_99($connect, $turn); break; //수뇌부 후식 + default: command_Other($connect, $turn, $commandtype); break; +} + +?> + diff --git a/twe_close/proc.php b/twe_close/proc.php new file mode 100644 index 00000000..d1e4003d --- /dev/null +++ b/twe_close/proc.php @@ -0,0 +1,8 @@ + diff --git a/twe_close/proc.sh b/twe_close/proc.sh new file mode 100644 index 00000000..b9dd9084 --- /dev/null +++ b/twe_close/proc.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +while [ 1 ] +do + + php -c /etc/php.ini -f ./proc.php + sleep 60 + +done + diff --git a/twe_close/process_war.php b/twe_close/process_war.php new file mode 100644 index 00000000..6fba7ba9 --- /dev/null +++ b/twe_close/process_war.php @@ -0,0 +1,1848 @@ +".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] >= 14 && $general[item] <= 16) { + //의적주, 두강주, 보령압주 사용 + $genAtmos += 5; + } elseif($general[item] >= 19 && $general[item] <= 20) { + //춘화첩, 초선화 사용 + $genAtmos += 7; + } + $genTrain = 0; + if($general[item] == 4) { + //청주 사용 + $genTrain += 3; + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[item] >= 12 && $general[item] <= 13) { + //과실주, 이강주 사용 + $genTrain += 5; + } elseif($general[item] >= 17 && $general[item] <= 18) { + //철벽서, 단결도 사용 + $genTrain += 7; + } + + // 우선 스케일링 + $city[def] *= 10; + $city[wall] *= 10; + + $query = "select level from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $originCity = MYDB_fetch_array($result); + + $query = "select nation,level,name,history,capital,tech,type from nation where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select nation,level,name,history,rice,capital,tech,type from nation where nation='$city[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destnation = MYDB_fetch_array($result); + + //장수수 구함 + $query = "select no from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + if($gencount < 10) $gencount = 10; + //장수수 구함 + $query = "select no from general where nation='$destnation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $destgencount = MYDB_num_rows($result); + if($destgencount < 10) $destgencount = 10; + + $genAtmosBonus = 0; $genTrainBonus = 0; + $oppAtmosBonus = 0; $oppTrainBonus = 0; + //공격자 수도보정 + if($nation[capital] == $general[city]) { $genAtmosBonus += 5; } + //방어자 수도보정 + //if($destnation[capital] == $city[city]) { $oppTrainBonus += 5; } + //관,진,수진 보정 + if($city[level] == 1) { $oppTrainBonus += 5; } // 방어도시가 수진이면 방어자 방어보정 + if($originCity[level] == 2) { $genAtmosBonus += 5; } // 출병도시가 진이면 공격자 공격보정 + if($city[level] == 3) { $oppTrainBonus += 5; } // 방어도시가 관이면 방어자 방어보정 + + $alllog[count($alllog)] = "●{$game[month]}월:$nation[name]$general[name](이)가 $city[name](으)로 진격합니다."; + $log[count($log)] = "●{$game[month]}월:$city[name](으)로 진격합니다. <1>$date"; +// $history[count($history)] = "●{$game[year]}년 {$game[month]}월:【전투】$nation[name](이)가 $destnation[name]$city[name](으)로 진격합니다."; + + // 목표 도시내에 목표 국가 소속 장수 중, 병사가 있는 능력치합+병사수 순으로 훈,사 60, 80 이상 + $query = "select no,name,turntime,personal,special2,crew,crewtype,atmos,train,intel,intel2,book,power,power2,weap,injury,leader,leader2,horse,item,explevel,level,rice,leader+power+intel+weap+horse+book+crew/100 as sum,dex0,dex10,dex20,dex30,dex40 from general where city='$city[city]' and nation='$city[nation]' and nation!=0 and crew>'0' and rice>round(crew/100) and ((train>=60 and atmos>=60 and mode=1) or (train>=80 and atmos>=80 and mode=2)) order by sum desc"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $opposecount = MYDB_num_rows($result); + + $exp = 0; //병사 소진 시킨 만큼 + $opexp = 0; + $exp2 = 1; //능력경험치 + $phase = 0; + while($phase < $warphase) { + // 장수가 없어서 도시 공격하려했으나 병량없을시 + if($opposecount == 0 && $destnation[nation] > 0 && $destnation[rice] <= 0 && $city[supply] == 1) { + $general[train] += 1; //훈련 상승 + if($general[train] > $_maximumtrain) { $general[train] = $_maximumtrain; } + $query = "update general set recwar='$general[turntime]',train='$general[train]',warnum=warnum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $alllog[count($alllog)] = "●{$game[month]}월:병량 부족으로 $city[name]의 수비병들이 패퇴합니다."; + $history[count($history)] = "●{$game[year]}년 {$game[month]}월:【패퇴】$destnation[name](이)가 병량 부족으로 $city[name](을)를 뺏기고 말았습니다."; + pushGenLog($general, $log); + pushAllLog($alllog); + pushHistory($connect, $history); + unset($log); + unset($alllog); + unset($history); + + //패퇴시 병량보충 + $destnation[rice] += 500; + $query = "update nation set rice='$destnation[rice]' where nation='$destnation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //내정 피폐 + $query = "update city set agri=agri*0.5,comm=comm*0.5,secu=secu*0.5 where city='$city[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $city = addConflict($connect, $city, $general[nation], 1); + + ConquerCity($connect, $game, $general, $city, $nation, $destnation); + break; + // 장수가 없어서 도시 공격 + } elseif($opposecount == 0) { + $alllog[count($alllog)] = "●{$game[month]}월:$general[name](이)가 ".getTypename($general[crewtype])."(으)로 성벽을 공격합니다."; + $log[count($log)] = "●".getTypename($general[crewtype])."(으)로 성벽을 공격합니다."; + + $general[train] += 1; //훈련 상승 + if($general[train] > $_maximumtrain) { $general[train] = $_maximumtrain; } + $query = "update general set recwar='$general[turntime]',train='$general[train]',warnum=warnum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $mykillnum = 0; $mydeathnum = 0; + while($phase < $warphase) { + $phase++; + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + $myAtt = getAtt($game, $general, $nation[tech], $lbonus); + $myDef = getDef($game, $general, $nation[tech]); + $cityAtt = getCityAtt($city); + $cityDef = getCityDef($city); + + // 감소할 병사 수 + $cityCrew = $_armperphase + $myAtt - $cityDef; + $myCrew = $_armperphase + $cityAtt - $myDef; + if($cityCrew <= 0) { $cityCrew = rand() % 90 + 10; } + if($myCrew <= 0) { $myCrew = rand() % 90 + 10; } + + //훈련 사기따라 + $myCrew = getCrew($myCrew, $game[city_rate]+$oppAtmosBonus, CharTrain($general[train]+$genTrain+$genTrainBonus, $general[personal])); + $cityCrew = getCrew($cityCrew, CharAtmos($general[atmos]+$genAtmos+$genAtmosBonus, $general[personal]), $game[city_rate]+$oppTrainBonus); + //숙련도 따라 + $genDexAtt = getGenDex($general, $general[crewtype]); + $genDexDef = getGenDex($general, 40); + $cityCrew *= getDexLog($genDexAtt, ($game[city_rate]-60)*7200); + $myCrew *= getDexLog(($game[city_rate]-60)*7200, $genDexDef); + + $avoid = 1; + // 병종간 특성 + if(floor($general[crewtype]/10) == 3) { // 귀병 + $int = round($general[intel] * (100-$general[injury])/100) + getBookEff($general[book]); + if($general[crewtype] == 30) { + $ratio2 = $int * 5; // 0~500 즉 50% + } elseif($general[crewtype] == 31) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 32) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 33) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 34) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 35) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($general[crewtype] == 36) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($general[crewtype] == 37) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 38) { + $ratio2 = $int * 6; // 0~600 즉 60% + } + + // 특기보정 : 신산 + if($general[special2] == 41) { $ratio2 += 200; } + + $ratio = rand() % 1000; // 0~999 + if($ratio <= $ratio2) { + $ratio = rand() % 100; // 0~99 + // 특기보정 : 귀병, 신산, 환술, 신중 + if($general[special2] == 40) { $ratio += 20; } + if($general[special2] == 41) { $ratio += 20; } + if($general[special2] == 42) { $ratio += 10; } + if($general[special2] == 44) { $ratio += 100; } + if($ratio >= 30) { + // 특기보정 : 환술, 집중 + if($general[special2] == 42) { $cityCrew *= 1.3; } + if($general[special2] == 43) { $cityCrew *= 1.5; } + $type = rand() % 3; + switch($type) { + case 0: + $batlog[count($batlog)] = "급습을 성공했다!"; + $cityCrew *= 1.2; + break; + case 1: + $batlog[count($batlog)] = "위보를 성공했다!"; + $cityCrew *= 1.4; + break; + case 2: + $batlog[count($batlog)] = "혼란을 성공했다!"; + $cityCrew *= 1.6; + break; + } + } else { + $type = rand() % 3; + switch($type) { + case 0: + $batlog[count($batlog)] = "급습을 실패했다!"; + $cityCrew /= 1.2; $myCrew *= 1.2; + break; + case 1: + $batlog[count($batlog)] = "위보를 실패했다!"; + $cityCrew /= 1.4; $myCrew *= 1.4; + break; + case 2: + $batlog[count($batlog)] = "혼란을 실패했다!"; + $cityCrew /= 1.6; $myCrew *= 1.6; + break; + } + } + } + } elseif($general[crewtype] == 40) { // 정란 + $cityCrew = $cityCrew * 1.5; + } elseif($general[crewtype] == 41) { // 충차 + $cityCrew = $cityCrew * 2.0; + } elseif($general[crewtype] == 42) { // 벽력거 + $cityCrew = $cityCrew * 1.5; + } + //군주 공격 보정 10% + if($general[level] == 12) { + $cityCrew = $cityCrew * 1.10; + //참모, 장군 공격 보정 5% + } elseif($general[level] == 11 || $general[level] == 10 || $general[level] == 8 || $general[level] == 6) { + $cityCrew = $cityCrew * 1.05; + } + //레벨 보정 + $cityCrew = $cityCrew * (100 + $general[explevel]/6)/100; + + // 특기보정 : 공성, 기병, 돌격, 무쌍, 보병, 견고, 의술(청낭서,태평청령) + if($general[special2] == 53) { $cityCrew *= 2.00; } + if($general[special2] == 52) { $cityCrew *= 1.20; } + if($general[special2] == 60) { $cityCrew *= 1.10; } + if($general[special2] == 61) { $cityCrew *= 1.10; } + if($general[special2] == 50) { $myCrew *= 0.90; } + if($general[special2] == 62) { $myCrew *= 0.90; } + $ratio = rand() % 100; // 0 ~ 99 + if(($general[special2] == 73 || $general[item] == 23 || $general[item] == 24) && $ratio > 80 && $avoid == 1) { + $batlog[count($batlog)] = "치료했다!"; + $myCrew /= 1.5; // 66%만 소모 + $avoid = 0; + } + + //크리 + $rd = rand() % 100; // 0 ~ 99 + $ratio = CriticalRatio2($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book])); + // 특기보정 : 무쌍, 필살 + if($general[special2] == 61) { $ratio += 10; } + if($general[special2] == 71) { $ratio += 20; } + if($ratio >= $rd && $avoid == 1) { + $batlog[count($batlog)] = "필살공격!"; + $cityCrew = CriticalScore2($cityCrew); + $avoid = 0; + } + //회피 + $ratio = rand() % 100; // 0 ~ 99 + $ratio2 = getRate($game, $general[crewtype], "avd"); //회피율 + //특기보정 : 궁병 + if($general[special2] == 51) { $ratio2 += 20; } + //도구 보정 : 둔갑천서, 태평요술 + if($general[item] == 26 || $general[item] == 25) { $ratio2 += 20; } + if($ratio < $ratio2 && $avoid == 1) { + $batlog[count($batlog)] = "회피했다!"; + $myCrew /= 10; // 10%만 소모 + $avoid = 0; + } + + //랜타추가 + $cityCrew *= (rand() % 21 + 90)/100; // 90~110% + $myCrew *= (rand() % 21 + 90)/100; // 90~110% + + //특기보정 : 위압 + if($general[special2] == 63 && $phase == 1 && $general[crew] >= 1000 && $general[atmos] >= 90 && $general[train] >= 90) { + $batlog[count($batlog)] = "●상대에게 위압을 줬다!"; + $myCrew = 0; + } + + $general[crew] -= round($myCrew); + $city[def] -= round($cityCrew); + $city[wall] -= round($cityCrew); + + $tempMyCrew = $myCrew; $tempCityCrew = $cityCrew; + $tempGeneralCrew = $general[crew]; $tempCityDef = $city[def]; + + if($city[wall] <= 0) { $city[wall] = 0; } + + if($general[crew] <= 0 && $city[def] <= 0) { + $r1 = $tempGeneralCrew / $tempMyCrew; + $r2 = $tempCityDef / $tempCityCrew; + + if($r1 > $r2) { + $offset = round($tempCityDef*$tempMyCrew/$tempCityCrew); + $myCrew += $offset; + $general[crew] -= $offset; + $cityCrew += $tempCityDef; + $city[def] = 0; + } else { + $offset = round($tempGeneralCrew*$tempCityCrew/$tempMyCrew); + $cityCrew += $offset; + $city[def] -= $offset; + $myCrew += $tempGeneralCrew; + $general[crew] = 0; + } + } elseif($general[crew] * $city[def] <= 0) { + if($city[def] < 0) { + $offset = round($tempCityDef*$tempMyCrew/$tempCityCrew); + $myCrew += $offset; + $general[crew] -= $offset; + $cityCrew += $tempCityDef; + $city[def] = 0; + } + if($general[crew] < 0) { + $offset = round($tempGeneralCrew*$tempCityCrew/$tempMyCrew); + $cityCrew += $offset; + $city[def] -= $offset; + $myCrew += $tempGeneralCrew; + $general[crew] = 0; + } + } + + $exp += $cityCrew; + $opexp += $myCrew; + $general[crew] = round($general[crew]); + $cityCrew = round($cityCrew); + $myCrew = round($myCrew); + $batlog[count($batlog)] = "● $phase : 【$general[name]】 $general[crew] (-$myCrew) VS $city[def] (-$cityCrew) 【$city[name]】"; + + $mykillnum += $cityCrew; $mydeathnum += $myCrew; + + // 중간 쌀 체크 + $myRice = round($exp / 50); + // 성격 보정 + $myRice = CharExperience($myRice, $general[personal]); + // 쌀 소모 + $myRice = ($myRice * 5 * getCrewtypeRice($game, $general[crewtype], $nation[tech])); + // 결과 쌀 + $myRice = $general[rice] - $myRice; + + if($myRice <= round($general[crew]/100)) { break; } + + if($city[def] <= 0) { break; } + if($general[crew] <= 0) { break; } + } + $res = "성 <1>"._String::SubStr(getTypename($general[crewtype]), 0, 2)."【$general[name]】 $general[crew] (-$mydeathnum) VS $city[def] (-$mykillnum) 【$city[name]】<1>성벽"; + $log[count($log)] = "◆".$res; + $batlog[count($batlog)] = "◆".$res; + $batres[count($batres)] = "◆{$game[year]}년 {$game[month]}월: ".$res; + $deadAmount[att] = $deadAmount[att] + $mydeathnum; + $deadAmount[def] = $deadAmount[def] + $mykillnum; + + // 도시쌀 소모 계산 + $opexp = round($opexp / 50 * 0.8); + $rice = round($opexp * 5 * getCrewtypeRice($game, 0, 0) * ($game[city_rate]/100 - 0.2)); + $destnation[rice] -= $rice; + if($destnation[rice] < 0) { $destnation[rice] = 0; } + $query = "update nation set rice='$destnation[rice]' where nation='$destnation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $adminLog[0] = "성벽 쌀 소모 : $rice"; + pushAdminLog($connect, $adminLog); + + //원래대로 스케일링 + $city[def] = round($city[def] / 10); + $city[wall] = round($city[wall] / 10); + //내정 감소 + $dec = round($cityCrew / 10); + $city[agri] -= $dec; + $city[comm] -= $dec; + $city[secu] -= $dec; + if($city[agri] < 0) { $city[agri] = 0; } + if($city[comm] < 0) { $city[comm] = 0; } + if($city[secu] < 0) { $city[secu] = 0; } + // 병사수 변경 + $query = "update general set crew='$general[crew]',killcrew=killcrew+'$mykillnum',deathcrew=deathcrew+'$mydeathnum' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 숙련도 증가 + addGenDex($connect, $general[no], $general[crewtype], $mykillnum); + addGenDex($connect, $general[no], 40, $mydeathnum); + // 죽은수 기술로 누적 + $num = round($mydeathnum * 0.01); + // 국가보정 + if($nation[type] == 3 || $nation[type] == 13) { $num *= 1.1; } + if($nation[type] == 5 || $nation[type] == 6 || $nation[type] == 7 || $nation[type] == 8 || $nation[type] == 12) { $num *= 0.9; } + // 부드러운 기술 제한 + if(TechLimit($game[startyear], $game[year], $nation[tech])) { $num = floor($num/4); } + $query = "update nation set totaltech=totaltech+'$num',tech=totaltech/'$gencount' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 죽은수 기술로 누적 + $num = round($mykillnum * 0.01); + // 국가보정 + if($destnation[type] == 3 || $destnation[type] == 13) { $num *= 1.1; } + if($destnation[type] == 5 || $destnation[type] == 6 || $destnation[type] == 7 || $destnation[type] == 8 || $destnation[type] == 12) { $num *= 0.9; } + // 부드러운 기술 제한 + if(TechLimit($game[startyear], $game[year], $destnation[tech])) { $num = floor($num/4); } + $query = "update nation set totaltech=totaltech+'$num',tech=totaltech/'$destgencount' where nation='$destnation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //양국 평균 기술가격 + //$techRatio = (getTechCost($nation[tech]) + getTechCost($destnation[tech])) / 2; + $techRatio = 1.0; + // 죽은수 도시 재정으로 누적 60% + $num = round(($mykillnum+$mydeathnum) * 0.6 * $techRatio); + // 국가보정 + if($destnation[type] == 1) { $num *= 1.1; } + if($destnation[type] == 9 || $destnation[type] == 10) { $num *= 0.9; } + $query = "update city set dead=dead+'$num',def='$city[def]',wall='$city[wall]',agri='$city[agri]',comm='$city[comm]',secu='$city[secu]' where city='$city[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 죽은수 도시 재정으로 누적 40% + $num = round(($mykillnum+$mydeathnum) * 0.4 * $techRatio); + // 국가보정 + if($nation[type] == 1) { $num *= 1.1; } + if($nation[type] == 9 || $nation[type] == 10) { $num *= 0.9; } + $query = "update city set dead=dead+'$num' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //분쟁현황에 추가 + $city = addConflict($connect, $city, $general[nation], $mykillnum); + + // 병사 소진시 성 함락 + if($city[def] <= 0) { + $exp += 1000; + $exp2++; + + pushGenLog($general, $log); + pushBatLog($general, $batlog); + pushBatRes($general, $batres); + pushAllLog($alllog); + pushHistory($connect, $history); + unset($log); + unset($batlog); + unset($batres); + unset($alllog); + unset($history); + + ConquerCity($connect, $game, $general, $city, $nation, $destnation); + break; + // 공격 장수 병사 소진시 실패 처리 + } elseif($general[crew] <= 0) { + $alllog[count($alllog)] = "●{$game[month]}월:$general[name]의 ".getTypename($general[crewtype])."(이)가 퇴각했습니다."; + $log[count($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[count($alllog)] = "●{$game[month]}월:$general[name]의 ".getTypename($general[crewtype])."(이)가 퇴각했습니다."; + $log[count($log)] = "●군량 부족으로 퇴각합니다."; + + $query = "update general set deathnum=deathnum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; + } + // 장수 대결 + } else { + $oppose = MYDB_fetch_array($result); + $alllog[count($alllog)] = "●{$game[month]}월:$general[name]의 ".getTypename($general[crewtype])."(와)과 $oppose[name]의 ".getTypename($oppose[crewtype])."(이)가 대결합니다."; + $log[count($log)] = "●".getTypename($general[crewtype])."(으)로 $oppose[name]의 ".getTypename($oppose[crewtype])."(을)를 공격합니다."; + $opplog[count($opplog)] = "●".getTypename($oppose[crewtype])."(으)로 $general[name]의 ".getTypename($general[crewtype])."(을)를 수비합니다."; + + $oppAtmos = 0; + if($oppose[item] == 3) { + //탁주 사용 + $oppAtmos += 3; + $query = "update general set item=0 where no='$oppose[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $opplog[count($opplog)] = "".getItemName($oppose[item])."(을)를 사용!"; + $oppose[item] = 0; + } elseif($oppose[item] >= 14 && $oppose[item] <= 16) { + //의적주, 두강주, 보령압주 사용 + $oppAtmos += 5; + } elseif($oppose[item] >= 19 && $oppose[item] <= 20) { + //춘화첩, 초선화 사용 + $oppAtmos += 7; + } + $oppTrain = 0; + if($oppose[item] == 4) { + //청주 사용 + $oppTrain += 3; + $query = "update general set item=0 where no='$oppose[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $opplog[count($opplog)] = "".getItemName($oppose[item])."(을)를 사용!"; + $oppose[item] = 0; + } elseif($oppose[item] >= 12 && $oppose[item] <= 13) { + //과실주, 이강주 사용 + $oppTrain += 5; + } elseif($oppose[item] >= 17 && $oppose[item] <= 18) { + //철벽서, 단결도 사용 + $oppTrain += 7; + } + + $general[train] += 1; //훈련 상승 + if($general[train] > $_maximumtrain) { $general[train] = $_maximumtrain; } + $oppose[train] += 1; //훈련 상승 + if($oppose[train] > $_maximumtrain) { $oppose[train] = $_maximumtrain; } + + $query = "update general set recwar='$general[turntime]',train='$general[train]',warnum=warnum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set recwar='$general[turntime]',train='$oppose[train]',warnum=warnum+1 where no='$oppose[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $ratio = rand() % 100; + //특기보정 : 저격(수극), 활무기저격 + if(($general[special2] == 70 && $ratio <= 33) || ($general[item] == 2 && $ratio <= 20) || (($general[weap] == 10 || $general[weap] == 14 || $general[weap] == 18 || $general[weap] == 22) && $ratio <= 20)) { + //수극 사용 + if($general[item] == 2) { + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $log[count($log)] = "".getItemName($general[item])."(을)를 사용!"; + $general[item] = 0; + } elseif($general[weap] == 10 || $general[weap] == 14 || $general[weap] == 18 || $general[weap] == 22) { +// $log[count($log)] = "".getWeapName($general[weap])."(을)를 사용!"; + } + $log[count($log)] = "●상대를 저격했다!"; + $batlog[count($batlog)] = "●상대를 저격했다!"; + $opplog[count($opplog)] = "●상대에게 저격당했다!"; + $oppbatlog[count($oppbatlog)] = "●상대에게 저격당했다!"; + // 부상 + $oppose[injury] += rand() % 41 + 20; // 20 ~ 60 + if($oppose[injury] > 80) { $oppose[injury] = 80; } + } else if($general[item] == 2 && $ratio <= 40) { + $query = "update general set item=0 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $batlog[count($batlog)] = "".getItemName($general[item])."(이)가 빗나갑니다!"; + $general[item] = 0; + } + $ratio = rand() % 100; + //특기보정 : 저격(수극), 활무기저격 + if(($oppose[special2] == 70 && $ratio <= 33) || ($oppose[item] == 2 && $ratio <= 20) || (($oppose[weap] == 10 || $oppose[weap] == 14 || $oppose[weap] == 18 || $oppose[weap] == 22) && $ratio <= 20)) { + //수극 사용 + if($oppose[item] == 2) { + $query = "update general set item=0 where no='$oppose[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $opplog[count($opplog)] = "".getItemName($oppose[item])."(을)를 사용!"; + $oppose[item] = 0; + } elseif($oppose[weap] == 10 || $oppose[weap] == 14 || $oppose[weap] == 18 || $oppose[weap] == 22) { +// $opplog[count($opplog)] = "".getWeapName($oppose[weap])."(을)를 사용!"; + } + $oppbatlog[count($oppbatlog)] = "●상대를 저격했다!"; + $opplog[count($opplog)] = "●상대를 저격했다!"; + $batlog[count($batlog)] = "●상대에게 저격당했다!"; + $log[count($log)] = "●상대에게 저격당했다!"; + // 부상 + $general[injury] += rand() % 41 + 20; // 20 ~ 60 + if($general[injury] > 80) { $general[injury] = 80; } + } else if($oppose[item] == 2 && $ratio <= 40) { + $query = "update general set item=0 where no='$oppose[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $oppbatlog[count($oppbatlog)] = "".getItemName($oppose[item])."(이)가 빗나갑니다!"; + $oppose[item] = 0; + } + + $mykillnum = 0; $mydeathnum = 0; + $opkillnum = 0; $opdeathnum = 0; + while($phase < $warphase) { + $phase++; + + if($general[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($general[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + $myAtt = getAtt($game, $general, $nation[tech], $lbonus); + $myDef = getDef($game, $general, $nation[tech]); + + if($oppose[level] == 12) { + $opplbonus = $destnation[level] * 2; + } elseif($oppose[level] >= 5) { + $opplbonus = $destnation[level]; + } else { + $opplbonus = 0; + } + $opAtt = getAtt($game, $oppose, $destnation[tech], $opplbonus); + $opDef = getDef($game, $oppose, $destnation[tech]); + // 감소할 병사 수 + $myCrew = $_armperphase + $opAtt - $myDef; + $opCrew = $_armperphase + $myAtt - $opDef; + if($myCrew <= 0) { $myCrew = rand() % 90 + 10; } + if($opCrew <= 0) { $opCrew = rand() % 90 + 10; } + //훈련 사기따라 + $myCrew = getCrew($myCrew, CharAtmos($oppose[atmos]+$oppAtmos+$oppAtmosBonus, $oppose[personal]), CharTrain($general[train]+$genTrain+$genTrainBonus, $general[personal])); + $opCrew = getCrew($opCrew, CharAtmos($general[atmos]+$genAtmos+$genAtmosBonus, $general[personal]), CharTrain($oppose[train]+$oppTrain+$oppTrainBonus, $oppose[personal])); + //숙련도 따라 + $genDexAtt = getGenDex($general, $general[crewtype]); + $genDexDef = getGenDex($general, $oppose[crewtype]); + $oppDexAtt = getGenDex($oppose, $oppose[crewtype]); + $oppDexDef = getGenDex($oppose, $general[crewtype]); + $opCrew *= getDexLog($genDexAtt, $oppDexDef); + $myCrew *= getDexLog($oppDexAtt, $genDexDef); + + $myAvoid = 1; + $opAvoid = 1; + // 병종간 특성 + if(floor($general[crewtype]/10) == 3) { // 귀병 + $int = round($general[intel] * (100-$general[injury])/100) + getBookEff($general[book]); + if($general[crewtype] == 30) { + $ratio2 = $int * 5; // 0~500 즉 50% + } elseif($general[crewtype] == 31) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 32) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 33) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 34) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 35) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($general[crewtype] == 36) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($general[crewtype] == 37) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($general[crewtype] == 38) { + $ratio2 = $int * 6; // 0~600 즉 60% + } + + // 특기보정 : 신산 + if($general[special2] == 41) { $ratio2 += 200; } + + $ratio = rand() % 1000; // 0~999 + if($ratio <= $ratio2) { + $ratio = rand() % 100; + // 특기보정 : 귀병, 신산, 환술, 신중 + if($general[special2] == 40) { $ratio += 20; } + if($general[special2] == 41) { $ratio += 20; } + if($general[special2] == 42) { $ratio += 10; } + if($general[special2] == 44) { $ratio += 100; } + if($ratio >= 30) { + // 특기보정 : 환술, 집중 + if($general[special2] == 42) { $opCrew *= 1.3; } + if($general[special2] == 43) { $opCrew *= 1.5; } + $type = rand() % 5; // 0~4 + switch($type) { + case 0: + $ratio = rand() % 100; + // 특기보정 : 반계 + if($oppose[special2] == 45 && $ratio > 70) { + $batlog[count($batlog)] = "위보를 역으로 당했다!"; + $oppbatlog[count($oppbatlog)] = "반계로 상대의 위보를 되돌렸다!"; + $myCrew *= 1.2; + } else { + $batlog[count($batlog)] = "위보를 성공했다!"; + $oppbatlog[count($oppbatlog)] = "위보에 당했다!"; + $opCrew *= 1.2; + } + break; + case 1: + $ratio = rand() % 100; + // 특기보정 : 반계 + if($oppose[special2] == 45 && $ratio > 70) { + $batlog[count($batlog)] = "매복을 역으로 당했다!"; + $oppbatlog[count($oppbatlog)] = "반계로 상대의 매복을 되돌렸다!"; + $myCrew *= 1.4; + } else { + $batlog[count($batlog)] = "매복을 성공했다!"; + $oppbatlog[count($oppbatlog)] = "매복에 당했다!"; + $opCrew *= 1.4; + } + break; + case 2: + $ratio = rand() % 100; + // 특기보정 : 반계 + if($oppose[special2] == 45 && $ratio > 70) { + $batlog[count($batlog)] = "반목을 역으로 당했다!"; + $oppbatlog[count($oppbatlog)] = "반계로 상대의 반목을 되돌렸다!"; + $myCrew *= 1.6; + } else { + $batlog[count($batlog)] = "반목을 성공했다!"; + $oppbatlog[count($oppbatlog)] = "반목에 당했다!"; + $opCrew *= 1.6; + // 특기보정 : 반계 + if($general[special2] == 45) { $opCrew *= 2; } + } + break; + case 3: + $ratio = rand() % 100; + // 특기보정 : 반계 + if($oppose[special2] == 45 && $ratio > 70) { + $batlog[count($batlog)] = "화계를 역으로 당했다!"; + $oppbatlog[count($oppbatlog)] = "반계로 상대의 화계를 되돌렸다!"; + $myCrew *= 1.8; + } else { + $batlog[count($batlog)] = "화계를 성공했다!"; + $oppbatlog[count($oppbatlog)] = "화계에 당했다!"; + $opCrew *= 1.8; + } + break; + case 4: + $ratio = rand() % 100; + // 특기보정 : 반계 + if($oppose[special2] == 45 && $ratio > 70) { + $batlog[count($batlog)] = "혼란을 역으로 당했다!"; + $oppbatlog[count($oppbatlog)] = "반계로 상대의 혼란을 되돌렸다!"; + $myCrew *= 2.0; + } else { + $batlog[count($batlog)] = "혼란을 성공했다!"; + $oppbatlog[count($oppbatlog)] = "혼란에 당했다!"; + $opCrew *= 2.0; + } + break; + } + } else { + $type = rand() % 5; // 0~4 + switch($type) { + case 0: + $batlog[count($batlog)] = "위보를 실패했다!"; + $oppbatlog[count($oppbatlog)] = "위보를 간파했다!"; + $opCrew /= 1.1; $myCrew *= 1.1; + break; + case 1: + $batlog[count($batlog)] = "매복을 실패했다!"; + $oppbatlog[count($oppbatlog)] = "매복을 간파했다!"; + $opCrew /= 1.2; $myCrew *= 1.2; + break; + case 2: + $batlog[count($batlog)] = "반목을 실패했다!"; + $oppbatlog[count($oppbatlog)] = "반목을 간파했다!"; + $opCrew /= 1.3; $myCrew *= 1.3; + break; + case 3: + $batlog[count($batlog)] = "화계를 실패했다!"; + $oppbatlog[count($oppbatlog)] = "화계를 간파했다!"; + $opCrew /= 1.4; $myCrew *= 1.4; + break; + case 4: + $batlog[count($batlog)] = "혼란을 실패했다!"; + $oppbatlog[count($oppbatlog)] = "혼란을 간파했다!"; + $opCrew /= 1.5; $myCrew *= 1.5; + break; + } + } + } + } + + // 상대 장수 병종간 특성 + if(floor($oppose[crewtype]/10) == 3) { // 귀병 + $int = round($oppose[intel] * (100-$oppose[injury])/100) + getBookEff($oppose[book]); + if($oppose[crewtype] == 30) { + $ratio2 = $int * 5; // 0~500 즉 50% + } elseif($oppose[crewtype] == 31) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($oppose[crewtype] == 32) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($oppose[crewtype] == 33) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($oppose[crewtype] == 34) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($oppose[crewtype] == 35) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($oppose[crewtype] == 36) { + $ratio2 = $int * 8; // 0~800 즉 80% + } elseif($oppose[crewtype] == 37) { + $ratio2 = $int * 6; // 0~600 즉 60% + } elseif($oppose[crewtype] == 38) { + $ratio2 = $int * 6; // 0~600 즉 60% + } + + // 특기보정 : 신산 + if($oppose[special2] == 41) { $ratio2 += 200; } + + $ratio = rand() % 1000; // 0~999 + if($ratio <= $ratio2) { + $ratio = rand() % 100; + // 특기보정 : 귀병, 신산, 환술, 신중 + if($oppose[special2] == 40) { $ratio += 20; } + if($oppose[special2] == 41) { $ratio += 20; } + if($oppose[special2] == 42) { $ratio += 10; } + if($oppose[special2] == 44) { $ratio += 100; } + if($ratio >= 30) { + // 특기보정 : 환술, 집중 + if($oppose[special2] == 42) { $myCrew *= 1.3; } + if($oppose[special2] == 43) { $myCrew *= 1.5; } + $type = rand() % 5; // 0~4 + switch($type) { + case 0: + $ratio = rand() % 100; + // 특기보정 : 반계 + if($general[special2] == 45 && $ratio > 70) { + $oppbatlog[count($oppbatlog)] = "위보를 역으로 당했다!"; + $batlog[count($batlog)] = "반계로 상대의 위보를 되돌렸다!"; + $opCrew *= 1.2; + } else { + $oppbatlog[count($oppbatlog)] = "위보를 성공했다!"; + $batlog[count($batlog)] = "위보에 당했다!"; + $myCrew *= 1.2; + } + break; + case 1: + $ratio = rand() % 100; + // 특기보정 : 반계 + if($general[special2] == 45 && $ratio > 70) { + $oppbatlog[count($oppbatlog)] = "매복을 역으로 당했다!"; + $batlog[count($batlog)] = "반계로 상대의 매복을 되돌렸다!"; + $opCrew *= 1.4; + } else { + $oppbatlog[count($oppbatlog)] = "매복을 성공했다!"; + $batlog[count($batlog)] = "매복에 당했다!"; + $myCrew *= 1.4; + } + break; + case 2: + $ratio = rand() % 100; + // 특기보정 : 반계 + if($general[special2] == 45 && $ratio > 70) { + $oppbatlog[count($oppbatlog)] = "반목을 역으로 당했다!"; + $batlog[count($batlog)] = "반계로 상대의 반목을 되돌렸다!"; + $opCrew *= 1.6; + } else { + $oppbatlog[count($oppbatlog)] = "반목을 성공했다!"; + $batlog[count($batlog)] = "반목에 당했다!"; + $myCrew *= 1.6; + // 특기보정 : 반계 + if($oppose[special2] == 45) { $myCrew *= 2; } + } + break; + case 3: + $ratio = rand() % 100; + // 특기보정 : 반계 + if($general[special2] == 45 && $ratio > 70) { + $oppbatlog[count($oppbatlog)] = "화계를 역으로 당했다!"; + $batlog[count($batlog)] = "반계로 상대의 화계을 되돌렸다!"; + $opCrew *= 1.8; + } else { + $oppbatlog[count($oppbatlog)] = "화계를 성공했다!"; + $batlog[count($batlog)] = "화계에 당했다!"; + $myCrew *= 1.8; + } + break; + case 4: + $ratio = rand() % 100; + // 특기보정 : 반계 + if($general[special2] == 45 && $ratio > 70) { + $oppbatlog[count($oppbatlog)] = "혼란을 역으로 당했다!"; + $batlog[count($batlog)] = "반계로 상대의 혼란을 되돌렸다!"; + $opCrew *= 2.0; + } else { + $oppbatlog[count($oppbatlog)] = "혼란을 성공했다!"; + $batlog[count($batlog)] = "혼란에 당했다!"; + $myCrew *= 2.0; + } + break; + } + } else { + $type = rand() % 5; // 0~4 + switch($type) { + case 0: + $oppbatlog[count($oppbatlog)] = "위보를 실패했다!"; + $batlog[count($batlog)] = "위보를 간파했다!"; + $myCrew /= 1.1; $opCrew *= 1.1; + break; + case 1: + $oppbatlog[count($oppbatlog)] = "매복을 실패했다!"; + $batlog[count($batlog)] = "매복을 간파했다!"; + $myCrew /= 1.2; $opCrew *= 1.2; + break; + case 2: + $oppbatlog[count($oppbatlog)] = "반목을 실패했다!"; + $batlog[count($batlog)] = "반목을 간파했다!"; + $myCrew /= 1.3; $opCrew *= 1.3; + break; + case 3: + $oppbatlog[count($oppbatlog)] = "화계를 실패했다!"; + $batlog[count($batlog)] = "화계를 간파했다!"; + $myCrew /= 1.4; $opCrew *= 1.4; + break; + case 4: + $oppbatlog[count($oppbatlog)] = "혼란을 실패했다!"; + $batlog[count($batlog)] = "혼란을 간파했다!"; + $myCrew /= 1.5; $opCrew *= 1.5; + break; + } + } + } + } + + // 특기보정: 돌격 + if($oppose[crewtype] == 43 && $general[special2] != 60) { // 목우 + $r = 0; + $r += $oppose[atmos] + $oppAtmos + $oppAtmosBonus; + $r += $oppose[train] + $oppTrain + $oppTrainBonus; + $ratio = rand() % 400; // 최대 50% 저지 + if($ratio < $r && $opAvoid == 1) { + $batlog[count($batlog)] = "저지당했다!"; + $oppbatlog[count($oppbatlog)] = "●상대를 저지했다!"; + $opAvoid = 0; + continue; + } + } + + // my 입장 상성 + // 보병계열 > 궁병계열 + if(floor($general[crewtype]/10) == 0 && floor($oppose[crewtype]/10) == 1) { + $myCrew *= 0.8; + $opCrew *= 1.2; + } + // 궁병계열 > 기병계열 + if(floor($general[crewtype]/10) == 1 && floor($oppose[crewtype]/10) == 2) { + $myCrew *= 0.8; + $opCrew *= 1.2; + } + // 기병계열 > 보병계열 + if(floor($general[crewtype]/10) == 2 && floor($oppose[crewtype]/10) == 0) { + $myCrew *= 0.8; + $opCrew *= 1.2; + } + // 차병계열 + if(floor($general[crewtype]/10) == 4) { + $myCrew *= 1.2; + $opCrew *= 0.8; + } + + // op 입장 상성 + // 보병계열 > 궁병계열 + if(floor($oppose[crewtype]/10) == 0 && floor($general[crewtype]/10) == 1) { + $opCrew *= 0.8; + $myCrew *= 1.2; + } + // 궁병계열 > 기병계열 + if(floor($oppose[crewtype]/10) == 1 && floor($general[crewtype]/10) == 2) { + $opCrew *= 0.8; + $myCrew *= 1.2; + } + // 기병계열 > 보병계열 + if(floor($oppose[crewtype]/10) == 2 && floor($general[crewtype]/10) == 0) { + $opCrew *= 0.8; + $myCrew *= 1.2; + } + // 차병계열 + if(floor($oppose[crewtype]/10) == 4) { + $opCrew *= 1.2; + $myCrew *= 0.8; + } + + //군주 공격 보정 10% + if($general[level] == 12) { + $opCrew = $opCrew * 1.10; + //참모, 장군 공격 보정 5% + } elseif($general[level] == 11 || $general[level] == 10 || $general[level] == 8 || $general[level] == 6) { + $opCrew = $opCrew * 1.05; + } + + //상대장수 관직 보정 + //군주 방어 보정 10% + if($oppose[level] == 12) { + $opCrew = $opCrew * 0.90; + //참모, 모사 방어 보정 5% + } elseif($oppose[level] == 11 || $oppose[level] == 9 || $oppose[level] == 7 || $oppose[level] == 5) { + $opCrew = $opCrew * 0.95; + } elseif($oppose[level] == 4 && $oppose[no] == $city[gen1]) { // 태수 보정 + $opCrew = $opCrew * 0.95; + } elseif($oppose[level] == 3 && $oppose[no] == $city[gen2]) { // 군사 보정 + $opCrew = $opCrew * 0.95; + } elseif($oppose[level] == 2 && $oppose[no] == $city[gen3]) { // 시중 보정 + $opCrew = $opCrew * 0.95; + } + + //레벨 보정 + $myCrew = $myCrew * ((100 - $general[explevel]/3)/100); + $opCrew = $opCrew / ((100 - $general[explevel]/3)/100); + $myCrew = $myCrew / ((100 - $oppose[explevel]/3)/100); + $opCrew = $opCrew * ((100 - $oppose[explevel]/3)/100); + + // 특기보정 : 기병, 돌격, 무쌍, 보병, 견고, 척사, 의술(청낭서, 태평청령) + if($general[special2] == 52) { $opCrew *= 1.20; } + if($general[special2] == 60) { $opCrew *= 1.10; } + if($general[special2] == 61) { $opCrew *= 1.10; } + if($general[special2] == 50) { $myCrew *= 0.90; } + if($general[special2] == 62) { $myCrew *= 0.90; } + if($general[special2] == 75) { + if($oppose[crewtype] != 0 && $oppose[crewtype] != 10 && $oppose[crewtype] != 20 && + $oppose[crewtype] != 30 && $oppose[crewtype] != 40 && $oppose[crewtype] != 41) + { + $opCrew *= 1.1; $myCrew *= 0.9; + } + } + $ratio = rand() % 100; // 0 ~ 99 + if(($general[special2] == 73 || $general[item] == 23 || $general[item] == 24) && $ratio > 80 && $myAvoid == 1) { + $batlog[count($batlog)] = "치료했다!"; + $myCrew /= 1.5; // 66%만 소모 + $myAvoid = 0; + } + + // 상대 특기보정 : 기병, 무쌍, 보병, 견고, 척사, 의술(청낭서, 태평청령) + if($oppose[special2] == 52) { $myCrew *= 1.10; } + if($oppose[special2] == 61) { $myCrew *= 1.10; } + if($oppose[special2] == 50) { $opCrew *= 0.80; } + if($oppose[special2] == 62) { $myCrew *= 1.10; } + if($oppose[special2] == 75) { + if($general[crewtype] != 0 && $general[crewtype] != 10 && $general[crewtype] != 20 && + $general[crewtype] != 30 && $general[crewtype] != 40 && $general[crewtype] != 41) + { + $myCrew *= 1.1; $opCrew *= 0.9; + } + } + $ratio = rand() % 100; // 0 ~ 99 + if(($oppose[special2] == 73 || $oppose[item] == 23 || $oppose[item] == 24) && $ratio > 80 && $opAvoid == 1) { + $oppbatlog[count($oppbatlog)] = "치료했다!"; + $opCrew /= 1.5; // 66%만 소모 + $opAvoid = 0; + } + + //크리 + $rd = rand() % 100; // 0 ~ 99 + $ratio = CriticalRatio2($general[leader]+getHorseEff($general[horse])+$lbonus, $general[power]+getWeapEff($general[weap]), $general[intel]+getBookEff($general[book])); + // 특기보정 : 무쌍, 필살 + if($general[special2] == 61) { $ratio += 10; } + if($general[special2] == 71) { $ratio += 20; } + if($ratio >= $rd && $myAvoid == 1) { + $batlog[count($batlog)] = "필살공격!"; + $oppbatlog[count($oppbatlog)] = "●상대의 필살공격!"; + $opCrew = CriticalScore2($opCrew); + $myAvoid = 0; + + // 특기보정 : 격노 + if($oppose[special2] == 74) { + if(rand() % 100 < 50) { + $batlog[count($batlog)] = "●필살 공격에 상대가 격노했다!"; + $oppbatlog[count($oppbatlog)] = "●상대의 필살 공격에 격노했다!"; + $myCrew = CriticalScore2($myCrew); + $opAvoid = 0; + } + } + } + //크리 + $rd = rand() % 100; // 0 ~ 99 + $ratio = CriticalRatio2($oppose[leader]+getHorseEff($oppose[horse])+$opplbonus, $oppose[power]+getWeapEff($oppose[weap]), $oppose[intel]+getBookEff($oppose[book])); + // 특기보정 : 필살 + if($oppose[special2] == 71) { $ratio += 20; } + if($ratio >= $rd && $opAvoid == 1) { + $oppbatlog[count($oppbatlog)] = "필살공격!"; + $batlog[count($batlog)] = "●상대의 필살공격!"; + $myCrew = CriticalScore2($myCrew); + $opAvoid = 0; + + // 특기보정 : 격노 + if($general[special2] == 74) { + if(rand() % 100 < 33) { + $oppbatlog[count($oppbatlog)] = "●필살 공격에 상대가 진노했다!"; + $batlog[count($batlog)] = "●상대의 필살 공격에 진노했다!"; + $opCrew = CriticalScore2($opCrew); + $myAvoid = 0; + $warphase++; + } elseif(rand() % 100 < 33) { + $oppbatlog[count($oppbatlog)] = "●필살 공격에 상대가 격노했다!"; + $batlog[count($batlog)] = "●상대의 필살 공격에 격노했다!"; + $opCrew = CriticalScore2($opCrew); + $myAvoid = 0; + } + } + } + + //회피 + $ratio = rand() % 100; // 0 ~ 99 + $ratio2 = getRate($game, $general[crewtype], "avd"); //회피율 + //특기보정 : 돌격, 궁병 + if($oppose[special2] == 60) { $ratio2 -= 100; } + if($general[special2] == 51) { $ratio2 += 20; } + //도구 보정 : 둔갑천서, 태평요술 + if($general[item] == 26 || $general[item] == 25) { $ratio2 += 20; } + if($ratio < $ratio2 && $myAvoid == 1) { + // 특기보정 : 격노 + if($oppose[special2] == 74 && rand() % 100 < 50) { + $batlog[count($batlog)] = "●회피 시도에 상대가 격노했다!"; + $oppbatlog[count($oppbatlog)] = "●상대의 회피 시도에 격노했다!"; + $myCrew = CriticalScore2($myCrew); + $opAvoid = 0; + } else { + $batlog[count($batlog)] = "회피했다!"; + $oppbatlog[count($oppbatlog)] = "●상대가 회피했다!"; + $myCrew /= 10; // 10%만 소모 + $myAvoid = 0; + } + } + //회피 + $ratio = rand() % 100; // 0 ~ 99 + $ratio2 = getRate($game, $oppose[crewtype], "avd"); //회피율 + // 특기보정 : 돌격, 궁병 + if($general[special2] == 60) { $ratio2 -= 100; } + if($oppose[special2] == 51) { $ratio2 += 20; } + //도구 보정 : 둔갑천서, 태평요술 + if($oppose[item] == 26 || $oppose[item] == 25) { $ratio2 += 20; } + if($ratio < $ratio2 && $opAvoid == 1) { + // 특기보정 : 격노 + if($general[special2] == 74 && rand() % 100 < 33) { + $oppbatlog[count($oppbatlog)] = "●회피 시도에 상대가 진노했다!"; + $batlog[count($batlog)] = "●상대의 회피 시도에 진노했다!"; + $opCrew = CriticalScore2($opCrew); + $myAvoid = 0; + $warphase++; + } elseif($general[special2] == 74 && rand() % 100 < 33) { + $oppbatlog[count($oppbatlog)] = "●회피 시도에 상대가 격노했다!"; + $batlog[count($batlog)] = "●상대의 회피 시도에 격노했다!"; + $opCrew = CriticalScore2($opCrew); + $myAvoid = 0; + } else { + $oppbatlog[count($oppbatlog)] = "회피했다!"; + $batlog[count($batlog)] = "●상대가 회피했다!"; + $opCrew /= 10; // 10%만 소모 + $opAvoid = 0; + } + } + + //랜타추가 + $opCrew *= (rand() % 21 + 90)/100; // 90~110% + $myCrew *= (rand() % 21 + 90)/100; // 90~110% + + //특기보정 : 위압 + if($general[special2] == 63 && $phase == 1 && $general[crew] >= 1000 && $general[atmos] >= 90 && $general[train] >= 90) { + $batlog[count($batlog)] = "●상대에게 위압을 줬다!"; + $oppbatlog[count($oppbatlog)] = "●상대에게 위압받았다!"; + $myCrew = 0; + } + //특기보정: 위압 + if($oppose[special2] == 63 && $phase == 1 && $oppose[crew] >= 1000 && $oppose[atmos] >= 90 && $oppose[train] >= 90) { + $batlog[count($batlog)] = "●상대에게 위압받았다!"; + $oppbatlog[count($oppbatlog)] = "●상대에게 위압을 줬다!"; + $opCrew = 0; + } + + $general[crew] -= round($myCrew); + $oppose[crew] -= round($opCrew); + $tempMyCrew = $myCrew; $tempOpCrew = $opCrew; + $tempGeneralCrew = $general[crew]; $tempOpposeCrew = $oppose[crew]; + if($general[crew] <= 0 && $oppose[crew] <= 0) { + $r1 = $tempGeneralCrew / $tempMyCrew; + $r2 = $tempOpposeCrew / $tempOpCrew; + + if($r1 > $r2) { + $offset = round($tempOpposeCrew*$tempMyCrew/$tempOpCrew); + $myCrew += $offset; + $general[crew] -= $offset; + $opCrew += $tempOpposeCrew; + $oppose[crew] = 0; + } else { + $offset = round($tempGeneralCrew*$tempOpCrew/$tempMyCrew); + $opCrew += $offset; + $oppose[crew] -= $offset; + $myCrew += $tempGeneralCrew; + $general[crew] = 0; + } + } elseif($general[crew] * $oppose[crew] <= 0) { + if($oppose[crew] < 0) { + $offset = round($tempOpposeCrew*$tempMyCrew/$tempOpCrew); + $myCrew += $offset; + $general[crew] -= $offset; + $opCrew += $tempOpposeCrew; + $oppose[crew] = 0; + } + if($general[crew] < 0) { + $offset = round($tempGeneralCrew*$tempOpCrew/$tempMyCrew); + $opCrew += $offset; + $oppose[crew] -= $offset; + $myCrew += $tempGeneralCrew; + $general[crew] = 0; + } + } + + $exp += $opCrew; + $opexp += $myCrew; + $general[crew] = round($general[crew]); + $oppose[crew] = round($oppose[crew]); + $myCrew = round($myCrew); + $opCrew = round($opCrew); + $batlog[count($batlog)] = "● $phase : 【$general[name]】 $general[crew] (-$myCrew) VS $oppose[crew] (-$opCrew) 【$oppose[name]】"; + $oppbatlog[count($oppbatlog)] = "● $phase : 【$oppose[name]】 $oppose[crew] (-$opCrew) VS $general[crew] (-$myCrew) 【$general[name]】"; + + $mykillnum += $opCrew; $mydeathnum += $myCrew; + $opkillnum += $myCrew; $opdeathnum += $opCrew; + + // 중간 쌀 체크 + $myRice = round($exp / 50); + // 성격 보정 + $myRice = CharExperience($myRice, $general[personal]); + // 쌀 소모 + $myRice = ($myRice * 5 * getCrewtypeRice($game, $general[crewtype], $nation[tech])); + // 결과 쌀 + $myRice = $general[rice] - $myRice; + + // 중간 쌀 체크 + $opRice = round($opexp / 50 * 0.8); + // 성격 보정 + $opRice = CharExperience($opRice, $oppose[personal]); + // 쌀 소모 + $opRice = ($opRice * 5 * getCrewtypeRice($game, $oppose[crewtype], $destnation[tech])); + // 결과 쌀 + $opRice = $oppose[rice] - $opRice; + + if($opRice <= round($oppose[crew]/100)) { break; } + if($myRice <= round($general[crew]/100)) { break; } + + if($oppose[crew] <= 0) { break; } + if($general[crew] <= 0) { break; } + } + $res = "공 <1>"._String::SubStr(getTypename($general[crewtype]), 0, 2)."【$general[name]】 $general[crew] (-$mydeathnum) VS $oppose[crew] (-$opdeathnum) 【$oppose[name]】<1>"._String::SubStr(getTypename($oppose[crewtype]), 0, 2).""; + $log[count($log)] = "◆".$res; + $batlog[count($batlog)] = "◆".$res; + $batres[count($batres)] = "◆{$game[year]}년 {$game[month]}월: ".$res; + $oppres = "수 <1>"._String::SubStr(getTypename($oppose[crewtype]), 0, 2)."【$oppose[name]】 $oppose[crew] (-$opdeathnum) VS $general[crew] (-$mydeathnum) 【$general[name]】<1>"._String::SubStr(getTypename($general[crewtype]), 0, 2).""; + $opplog[count($opplog)] = "◆".$oppres; + $oppbatlog[count($oppbatlog)] = "◆".$oppres; + $oppbatres[count($oppbatres)] = "◆{$game[year]}년 {$game[month]}월: ".$oppres; + + $deadAmount[att] = $deadAmount[att] + $mydeathnum; + $deadAmount[def] = $deadAmount[def] + $opdeathnum; + + // 상대장수 부상 + $ratio = rand() % 100; + if($ratio >= 95) { + $opplog[count($opplog)] = "●전투중 부상당했다!"; + $oppose[injury] += rand() % 71 + 10; // 10 ~ 80 + if($oppose[injury] > 80) { $oppose[injury] = 80; } + } + // 병사수 변경 + $query = "update general set injury='$oppose[injury]',crew='$oppose[crew]',killcrew=killcrew+'$opkillnum',deathcrew=deathcrew+'$opdeathnum' where no='$oppose[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 숙련도 증가 + addGenDex($connect, $oppose[no], $oppose[crewtype], $opkillnum * 0.9); + addGenDex($connect, $oppose[no], $general[crewtype], $opdeathnum * 0.9); + // 죽은수 기술로 누적 + $num = round($mydeathnum * 0.01); + // 국가보정 + if($nation[type] == 3 || $nation[type] == 13) { $num *= 1.1; } + if($nation[type] == 5 || $nation[type] == 6 || $nation[type] == 7 || $nation[type] == 8 || $nation[type] == 12) { $num *= 0.9; } + // 부드러운 기술 제한 + if(TechLimit($game[startyear], $game[year], $nation[tech])) { $num = floor($num/4); } + $query = "update nation set totaltech=totaltech+'$num',tech=totaltech/'$gencount' where nation='$nation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 장수 부상 + $ratio = rand() % 100; + if($ratio >= 95) { + $log[count($log)] = "●전투중 부상당했다!"; + $general[injury] += rand() % 71 + 10; // 10 ~ 80 + if($general[injury] > 80) { $general[injury] = 80; } + } + // 병사수 변경 + $query = "update general set injury='$general[injury]',crew='$general[crew]',killcrew=killcrew+'$mykillnum',deathcrew=deathcrew+'$mydeathnum' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 숙련도 증가 + addGenDex($connect, $general[no], $general[crewtype], $mykillnum); + addGenDex($connect, $general[no], $oppose[crewtype], $mydeathnum); + // 죽은수 기술로 누적 + $num = round($opdeathnum * 0.01); + // 국가보정 + if($destnation[type] == 3 || $destnation[type] == 13) { $num *= 1.1; } + if($destnation[type] == 5 || $destnation[type] == 6 || $destnation[type] == 7 || $destnation[type] == 8 || $destnation[type] == 12) { $num *= 0.9; } + // 부드러운 기술 제한 + if(TechLimit($game[startyear], $game[year], $destnation[tech])) { $num = floor($num/4); } + $query = "update nation set totaltech=totaltech+'$num',tech=totaltech/'$destgencount' where nation='$destnation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //양국 평균 기술가격 + //$techRatio = (getTechCost($nation[tech]) + getTechCost($destnation[tech])) / 2; + $techRatio = 1.0; + // 죽은수 도시 재정으로 누적 60% + $num = round(($mykillnum+$mydeathnum) * 0.6 * $techRatio); + // 국가보정 + if($destnation[type] == 1) { $num *= 1.1; } + if($destnation[type] == 9 || $destnation[type] == 10) { $num *= 0.9; } + $query = "update city set dead=dead+'$num' where city='$city[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 죽은수 도시 재정으로 누적 40% + $num = round(($mykillnum+$mydeathnum) * 0.4 * $techRatio); + // 국가보정 + if($nation[type] == 1) { $num *= 1.1; } + if($nation[type] == 9 || $nation[type] == 10) { $num *= 0.9; } + $query = "update city set dead=dead+'$num' where city='$general[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 상대 병사 소진이나 쌀 소진시 다음 장수 + if($oppose[crew] <= 0 || ($opRice <= round($oppose[crew]/100) && $general[crew] > 0)) { + if($opRice <= round($oppose[crew]/100)) { + $alllog[count($alllog)] = "●{$game[month]}월:$oppose[name]의 ".getTypename($oppose[crewtype])."(이)가 패퇴했습니다."; + $log[count($log)] = "$oppose[name]의 ".getTypename($oppose[crewtype])."(이)가 패퇴했습니다."; + $opplog[count($opplog)] = "●군량 부족으로 패퇴합니다."; + } else { + $alllog[count($alllog)] = "●{$game[month]}월:$oppose[name]의 ".getTypename($oppose[crewtype])."(이)가 전멸했습니다."; + $log[count($log)] = "$oppose[name]의 ".getTypename($oppose[crewtype])."(이)가 전멸했습니다."; + $opplog[count($opplog)] = "●전멸했습니다."; + } + $opposecount--; + + $general[atmos] *= 1.1; //사기 증가 + if($general[atmos] > $_maximumatmos) { $general[atmos] = $_maximumatmos; } + + $query = "update general set atmos='$general[atmos]',killnum=killnum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $exp2++; + // 상대장수 경험 등등 증가 + $opexp = round($opexp / 50 * 0.8); + // 성격 보정 + $opexp = CharExperience($opexp, $oppose[personal]); + // 쌀 소모 + $oppose[rice] -= ($opexp * 5 * getCrewtypeRice($game, $oppose[crewtype], $destnation[tech])); + if($oppose[rice] < 0) { $oppose[rice] = 0; } + + $query = "update general set deathnum=deathnum+1,rice='$oppose[rice]',experience=experience+'$opexp',dedication=dedication+'$opexp' where no='$oppose[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $opexp = 0; + + pushGenLog($oppose, $opplog); + pushBatLog($oppose, $oppbatlog); + pushBatRes($oppose, $oppbatres); + unset($opplog); + unset($oppbatlog); + unset($oppbatres); + // 공격 장수 병사 소진이나 쌀 소진시 실패 처리 + } elseif($general[crew] <= 0 || $myRice <= round($general[crew]/100)) { + if($myRice <= round($general[crew]/100)) { + $alllog[count($alllog)] = "●{$game[month]}월:$general[name]의 ".getTypename($general[crewtype])."(이)가 퇴각했습니다."; + $log[count($log)] = "●군량 부족으로 퇴각합니다."; + $opplog[count($opplog)] = "$general[name]의 ".getTypename($general[crewtype])."(이)가 퇴각했습니다."; + } else { + $alllog[count($alllog)] = "●{$game[month]}월:$general[name]의 ".getTypename($general[crewtype])."(이)가 퇴각했습니다."; + $log[count($log)] = "●퇴각했습니다."; + $opplog[count($opplog)] = "$general[name]의 ".getTypename($general[crewtype])."(이)가 퇴각했습니다."; + } + + // 경험치 상승 + if(floor($oppose[crewtype]/10) == 3) { // 귀병 + $oppose[intel2]++; + } elseif(floor($oppose[crewtype]/10) == 4) { // 차병 + $oppose[leader2]++; + } else { + $oppose[power2]++; + } + + $oppose[atmos] *= 1.1; //사기 증가 + if($oppose[atmos] > $_maximumatmos) { $oppose[atmos] = $_maximumatmos; } + + // 상대장수 경험 등등 증가 + $opexp = round($opexp / 50 * 0.8); + // 성격 보정 + $opexp = CharExperience($opexp, $oppose[personal]); + // 쌀 소모 + $oppose[rice] -= ($opexp * 5 * getCrewtypeRice($game, $oppose[crewtype], $destnation[tech])); + if($oppose[rice] < 0) { $oppose[rice] = 0; } + + $query = "update general set rice='$oppose[rice]',leader2='$oppose[leader2]',power2='$oppose[power2]',intel2='$oppose[intel2]',atmos='$oppose[atmos]',experience=experience+'$opexp',dedication=dedication+'$opexp',killnum=killnum+1 where no='$oppose[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set deathnum=deathnum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $opexp = 0; + + $opplog = checkAbility($connect, $oppose, $opplog); + pushGenLog($oppose, $opplog); + pushBatLog($oppose, $oppbatlog); + pushBatRes($oppose, $oppbatres); + unset($opplog); + unset($oppbatlog); + unset($oppbatres); +// $alllog[count($alllog)] = "●{$game[month]}월:$general[name](이)가 }$city[name] 공략에 실패했습니다. <1>$date"; +// $log[count($log)] = "$city[name] 공략에 실패했습니다. <1>$date"; + break; + } else { + // 무승부일때 로그 남김 + pushGenLog($oppose, $opplog); + pushBatLog($oppose, $oppbatlog); + pushBatRes($oppose, $oppbatres); + unset($opplog); + unset($oppbatlog); + unset($oppbatres); + } + } + } + + // 상대장수 경험 등등 증가(페이즈 초과시) + $opexp = round($opexp / 50 * 0.8); + // 성격 보정 + $opexp = CharExperience($opexp, $oppose[personal]); + // 쌀 소모 + $oppose[rice] -= ($opexp * 5 * getCrewtypeRice($game, $oppose[crewtype], $destnation[tech])); + if($oppose[rice] < 0) { $oppose[rice] = 0; } + + $query = "update general set rice='$oppose[rice]',experience=experience+'$opexp',dedication=dedication+'$opexp' where no='$oppose[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 경험치 상승 + if(floor($general[crewtype]/10) == 3) { // 귀병 + $general[intel2] += $exp2; + } elseif(floor($general[crewtype]/10) == 4) { // 차병 + $general[leader2] += $exp2; + } else { + $general[power2] += $exp2; + } + $query = "update general set leader2='$general[leader2]',power2='$general[power2]',intel2='$general[intel2]' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + // 공헌, 명성 상승 + $exp = round($exp / 50); + // 성격 보정 + $exp = CharExperience($exp, $general[personal]); + // 쌀 소모 + $general[rice] -= ($exp * 5 * getCrewtypeRice($game, $general[crewtype], $nation[tech])); + if($general[rice] < 0) { $general[rice] = 0; } + + $query = "update general set rice='$general[rice]',dedication=dedication+'$exp',experience=experience+'$exp' where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + $log = checkAbility($connect, $general, $log); + pushGenLog($general, $log); + pushBatLog($general, $batlog); + pushBatRes($general, $batres); + pushAllLog($alllog); + pushHistory($connect, $history); + + return $deadAmount; +} + +function CriticalRatio2($leader, $power, $intel) { + // 707010장수 9% 706515장수 17% 706020장수 25% xx50xx장수 57% + if($leader <= $power && $leader <= $intel) { // 통솔이 제일 낮은경우 + $ratio = sqrt($leader/($leader+$power+$intel))*150 - 30; + } elseif($power < $leader && $power <= $intel) { // 무력이 제일 낮은경우 + $ratio = sqrt($power /($leader+$power+$intel))*150 - 30; + } elseif($intel < $leader && $intel < $power) { // 지력이 제일 낮은경우 + $ratio = sqrt($intel /($leader+$power+$intel))*150 - 30; + } + + if($ratio > 50) $ratio = 50; + return $ratio; +} + +function CriticalScore2($score) { + $score = round($score * (rand()%8 + 13)/10); // 1.3~2.0 + return $score; +} + +//0 0 : 100 100 이면 최고 무한대 차이 +//30 30 : 100 100 이면 최고 3.3배 차이 +//60 60 : 100 100 이면 최고 1.6배 차이 +function getCrew($crew, $youatmos, $mytrain) { + $ratio = $youatmos / $mytrain; + $crew = $crew * $ratio; + + return $crew; +} + +function getCrewtypeRice($game, $crewtype, $tech) { + if(!$crewtype) { $crewtype = 0; } + $cost = $game["ric{$crewtype}"] / 10; + return $cost * getTechCost($tech); +} + +////////////////////////////////////////////////////////////// +// 표준 공 / 수 반환 수치는 약 0이 되게 (100~550) +////////////////////////////////////////////////////////////// + +function getAtt($game, $general, $tech, $lbonus) { + $att = getRate($game, $general[crewtype], "att") + getTechAbil($tech); + + if(floor($general[crewtype]/10) == 3) { // 귀병 지100% + $ratio = (floor($general[intel]*(100-$general[injury])/100)+getBookEff($general[book]))*2 - 40; + } elseif(floor($general[crewtype]/10) == 4) { // 차병 통100% + $ratio = (floor($general[leader]*(100-$general[injury])/100)+getHorseEff($general[horse])+$lbonus)*2 - 40; + } else { + $ratio = (floor($general[power]*(100-$general[injury])/100)+getWeapEff($general[weap]))*2 - 40; //10일때 -20, 70일때 100, 100일때 160 + } + if($ratio < 10) { $ratio = 10; } + if($ratio > 100) { $ratio = 50 + $ratio/2; } // 100보다 큰 경우는 상승률 1/2 + $att = $att * $ratio / 100; + + return $att; +} + +function getDef($game, $general, $tech) { + $def = getRate($game, $general[crewtype], "def") + getTechAbil($tech); + + $crew = ($general[crew] / (7000 / 30)) + 70; // 5000명일때 91점 7000명일때 100점 10000명일때 113점 + $def = $def * $crew / 100; + + return $def; +} + +function getCityAtt($city) { + $att = ($city[def]*0.1 + $city[wall]*0.9) / 500 + 200; //50000일때 300점 100000일때 400점 + return $att; +} + +function getCityDef($city) { + $def = ($city[def]*0.1 + $city[wall]*0.9) / 500 + 200; + return $def; +} + +function getRate($game, $type, $dtype) { + $t = "{$dtype}{$type}"; + return $game[$t]; +} + +function addConflict($connect, $city, $nationnum, $mykillnum) { + $query = "select year,month from game where no='1'"; + $result = MYDB_query($query, $connect) or Error("addConflict ".MYDB_error($connect),""); + $game = MYDB_fetch_array($result); + + if($city[conflict] == "") { + unset($nationlist); + unset($killnum); + } else { + $nationlist = explode("|", $city[conflict]); + $killnum = explode("|", $city[conflict2]); + } + + for($i=0; $i < count($nationlist); $i++) { + if($nationlist[$i] == $nationnum) break; + } + if($i != 0 && $i == count($nationlist)) { // 두번째 나라부터 분쟁 가담 메시지 출력 + $query = "select name from nation where nation='$nationnum'"; + $result = MYDB_query($query, $connect) or Error("addConflict ".MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $history[count($history)] = "●{$game[year]}년 {$game[month]}월:【분쟁】$nation[name](이)가 $city[name] 공략에 가담하여 분쟁이 발생하고 있습니다."; + pushHistory($connect, $history); + } + + $nationlist[$i] = $nationnum; + if($i == 0 || $city[def] == 0) { // 선타, 막타 보너스 + $killnum[$i] += round($mykillnum * 1.05); + } else { + $killnum[$i] += $mykillnum; + } + $city[conflict] = implode("|", $nationlist); + $city[conflict2] = implode("|", $killnum); + + $query = "update city set conflict='$city[conflict]',conflict2='$city[conflict2]' where city='$city[city]'"; + MYDB_query($query, $connect) or Error("addConflict ".MYDB_error($connect),""); + + return $city; +} + +function DeleteConflict($connect, $nation) { + $query = "select city,conflict,conflict2 from city where conflict!=''"; + $result = MYDB_query($query, $connect) or Error("addConflict ".MYDB_error($connect),""); + $cityNum = MYDB_num_rows($result); + + $nation = "$nation"; + for($k=0; $k < $cityNum; $k++) { + $city = MYDB_fetch_array($result); + + if(strpos($city[conflict], $nation)) { + $nationlist = explode("|", $city[conflict]); + $killnum = explode("|", $city[conflict2]); + + $count = count($nationlist); + for($i=0; $i < $count; $i++) { + if($nationlist[$i] == $nation) { + unset($nationlist[$i]); + unset($killnum[$i]); + break; + } + } + $conflict = implode("|", $nationlist); + $conflict2 = implode("|", $killnum); + + $query = "update city set conflict='$conflict',conflict2='$conflict2' where city='$city[city]'"; + MYDB_query($query, $connect) or Error("addConflict ".MYDB_error($connect),""); + } + } +} + +function getConquerNation($connect, $city) { + $nationlist = explode("|", $city[conflict]); + $killnum = explode("|", $city[conflict2]); + + $max = 0; + for($i=0; $i < count($nationlist); $i++) { + if($max <= $killnum[$i]) { + $max = $killnum[$i]; + $index = $i; + } + } + return $nationlist[$index]; +} + +function ConquerCity($connect, $game, $general, $city, $nation, $destnation) { + global $_armperphase, $_maximumatmos, $_basegold, $_baserice; + + if($destnation[nation] > 0) { + $destnationName = "$destnation[name]의"; + } else { + $destnationName = "공백지인"; + } + + $alllog[count($alllog)] = "●{$game[month]}월:$general[name](이)가 $city[name] 공략에 성공했습니다."; + $log[count($log)] = "$city[name] 공략에 성공했습니다."; + $history[count($history)] = "●{$game[year]}년 {$game[month]}월:【지배】$nation[name](이)가 $city[name](을)를 지배했습니다."; + $general = addHistory($connect, $general, "●{$game[year]}년 {$game[month]}월:$city[name](을)를 함락시킴"); + $nation = addNationHistory($connect, $nation, "●{$game[year]}년 {$game[month]}월:$general[name](이)가 {$destnationName} $city[name](을)를 점령"); + $destnation = addNationHistory($connect, $destnation, "●{$game[year]}년 {$game[month]}월:$nation[name]$general[name]에 의해 $city[name](이)가 함락"); + + $query = "select city from city where nation='$city[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $citycount = MYDB_num_rows($result); + + // 국가 멸망시 + if($citycount == 1 && $city[nation] != 0) { + $query = "select nation,name,history,tech,type from nation where nation='$nation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + $query = "select nation,name,gold,rice from nation where nation='$city[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $losenation = MYDB_fetch_array($result); + + $history[count($history)] = "●{$game[year]}년 {$game[month]}월:【멸망】$losenation[name](이)가 멸망하였습니다."; + $nation = addNationHistory($connect, $nation, "●{$game[year]}년 {$game[month]}월:$losenation[name](을)를 정복"); + + $query = "select no from general where nation='$general[nation]' and level='12'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $ruler = MYDB_fetch_array($result); + + //다굴치는 나라들 전방설정을 위해 미리 얻어옴 + $query = "select you from diplomacy where me='$losenation[nation]' and state<2"; + $dipResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $dipCount = MYDB_num_rows($dipResult); + + $loseGeneralGold = 0; + $loseGeneralRice = 0; + //멸망국 장수들 역사 기록 및 로그 전달 + $query = "select no,name,nation,npc,gold,rice,history,msgindex from general where nation='$city[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $genlog[0] = "$losenation[name](이)가 멸망했습니다."; + for($i=0; $i < $gencount; $i++) { + $gen = MYDB_fetch_array($result); + + $loseGold = floor($gen[gold] * (rand()%30+20)/100.0); + $loseRice = floor($gen[rice] * (rand()%30+20)/100.0); + $genlog[1] = "●도주하며 금$loseGold 쌀$loseRice을 분실했습니다."; + + $query = "update general set gold=gold-{$loseGold},rice=rice-{$loseRice} where no={$gen[no]}"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + pushGenLog($gen, $genlog); + + $gen = addHistory($connect, $gen, "●{$game[year]}년 {$game[month]}월:$losenation[name](이)가 멸망"); + + $loseGeneralGold += $loseGold; + $loseGeneralRice += $loseRice; + + //모두 등용장 발부 + if($nation[name] == "강족" || $nation[name] == "저족" || $nation[name] == "흉노족" + || $nation[name] == "남만족" || $nation[name] == "산월족" || $nation[name] == "오환족" + || $nation[name] == "왜족") { + //등용장 미발부 + } elseif(rand() % 100 < 50) { + ScoutMsg($connect, $ruler[no], $nation[name], $gen[no], $gen[msgindex]); + } + + //NPC인 경우 10% 확률로 임관(엔장, 인재, 의병) + if($gen[npc] >= 2 && $gen[npc] <= 4 && rand() % 100 < 10) { + $commissionCommand = EncodeCommand(0, 0, $nation[nation], 25); //임관 + $query = "update general set turn0='$commissionCommand' where no={$gen[no]}"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + unset($genlog[1]); + + // 승전국 보상 + $losenation[gold] -= $_basegold; + $losenation[rice] -= $_baserice; + if($losenation[gold] < 0) { $losenation[gold] = 0; } + if($losenation[rice] < 0) { $losenation[rice] = 0; } + + $losenation[gold] += $loseGeneralGold; + $losenation[rice] += $loseGeneralRice; + + $losenation[gold] = floor($losenation[gold] / 2); + $losenation[rice] = floor($losenation[gold] / 2); + + // 기본량 제외 금쌀50% + 장수들 분실 금쌀50% 흡수 + $query = "update nation set gold=gold+'$losenation[gold]',rice=rice+'$losenation[rice]' where nation='$general[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + + //아국 수뇌부에게 로그 전달 + $query = "select no,name,nation from general where nation='$general[nation]' and level>='9'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $genlog[0] = "$losenation[name] 정복으로 금$losenation[gold] 쌀$losenation[rice]을 획득했습니다."; + for($i=0; $i < $gencount; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $genlog); + } + + //분쟁기록 모두 지움 + DeleteConflict($connect, $city[nation]); + // 전 장수 공헌 명성치 깎음 + $query = "update general set dedication=dedication*0.5,experience=experience*0.9 where nation='$city[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 전 도시 공백지로 + $query = "update city set nation='0',gen1='0',gen2='0',gen3='0',conflict='',conflict2='',term=0 where nation='$city[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 전 장수 소속 무소속으로, 재야로, 부대 탈퇴 + $query = "update general set nation='0',belong='0',level='0',troop='0' where nation='$city[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 부대도 삭제 + $query = "delete from troop where nation='$city[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 외교 삭제 + $query = "delete from diplomacy where me='$city[nation]' or you='$city[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 국가 삭제 + $query = "delete from nation where nation='$city[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + // 아까 얻어온 다굴국들 전방설정 + for($i=0; $i < $dipCount; $i++) { + $dip = MYDB_fetch_array($dipResult); + //전방설정 + SetNationFront($connect, $dip[you]); + } + // 멸망이 아니면 + } else { + // 태수,군사,시중은 일반으로... + $query = "update general set level='1' where no='$city[gen1]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set level='1' where no='$city[gen2]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $query = "update general set level='1' where no='$city[gen3]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //수도였으면 긴급 천도 + if($destnation[capital] == $city[city]) { + $dist = distance($connect, $city[city]); + + $query = "select city,name,pop from city where nation='$destnation[nation]' and city!='$city[city]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $cityCount = MYDB_num_rows($result); + $minDist = 99; $minCity = 0; $minCityPop = 0; + for($i=0; $i < $cityCount; $i++) { + $nextCap = MYDB_fetch_array($result); + if($minDist > $dist[$nextCap[city]]) { + $minDist = $dist[$nextCap[city]]; + $minCity = $nextCap[city]; + $minCityPop = $nextCap[pop]; + $minCityName = $nextCap[name]; + } elseif($minDist == $dist[$nextCap[city]] && $minCityPop < $nextCap[pop]) { + $minDist = $dist[$nextCap[city]]; + $minCity = $nextCap[city]; + $minCityPop = $nextCap[pop]; + $minCityName = $nextCap[name]; + } + } + + $history[count($history)] = "●{$game[year]}년 {$game[month]}월:【긴급천도】$destnation[name](이)가 수도가 함락되어 $minCityName으로 긴급천도하였습니다."; + + //아국 수뇌부에게 로그 전달 + $query = "select no,name,nation from general where nation='$destnation[nation]' and level>='5'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + $genlog[0] = "●수도가 함락되어 $minCityName으로 긴급천도합니다."; + for($i=0; $i < $gencount; $i++) { + $gen = MYDB_fetch_array($result); + pushGenLog($gen, $genlog); + } + //천도 + $query = "update nation set capital='$minCity',gold=gold*0.5,rice=rice*0.5 where nation='$destnation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //보급도시로 만듬 + $query = "update city set supply=1 where city='$minCity'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //수뇌부 이동 + $query = "update general set city='$minCity' where nation='$destnation[nation]' and level>='5'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //장수 사기 감소 + $query = "update general set atmos=atmos*0.8 where nation='$destnation[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + + $general[atmos] *= 1.1; //사기 증가 + if($general[atmos] > $_maximumatmos) { $general[atmos] = $_maximumatmos; } + + $conquerNation = getConquerNation($connect, $city); + + if($conquerNation == $general[nation]) { + // 이동 및 사기 변경 + $query = "update general set city='$city[city]',atmos='$general[atmos]',killnum=killnum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + if($city[level] > 3) { + // 도시 소속 변경, 태수,군사,시중 초기화 + $query = "update city set supply=1,conflict='',term=0,conflict2='',agri=agri*0.7,comm=comm*0.7,secu=secu*0.7,def=1000,wall=1000,nation='$general[nation]',gen1=0,gen2=0,gen3=0 where city='$city[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + // 도시 소속 변경, 태수,군사,시중 초기화 + $query = "update city set supply=1,conflict='',term=0,conflict2='',agri=agri*0.7,comm=comm*0.7,secu=secu*0.7,def=def2/2,wall=wall2/2,nation='$general[nation]',gen1=0,gen2=0,gen3=0 where city='$city[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + //전방설정 + SetNationFront($connect, $nation[nation]); + SetNationFront($connect, $destnation[nation]); + } else { + $query = "select name,nation,history from nation where nation='$conquerNation'"; + $conquerResult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $conquerNationArray = MYDB_fetch_array($conquerResult); + + $history[count($history)] = "●{$game[year]}년 {$game[month]}월:【분쟁협상】$conquerNationArray[name](이)가 영토분쟁에서 우위를 점하여 $city[name](을)를 양도받았습니다."; + $nation = addNationHistory($connect, $nation, "●{$game[year]}년 {$game[month]}월:$city[name](을)를 $conquerNationArray[name]양도"); + $conquerNationArray = addNationHistory($connect, $conquerNationArray, "●{$game[year]}년 {$game[month]}월:$nation[name]에서 $city[name](을)를 양도 받음"); + // 이동X 및 사기 변경 + $query = "update general set atmos='$general[atmos]',killnum=killnum+1 where no='$general[no]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + if($city[level] > 3) { + // 도시 소속 변경, 태수,군사,시중 초기화 + $query = "update city set supply=1,conflict='',term=0,conflict2='',agri=agri*0.7,comm=comm*0.7,secu=secu*0.7,def=1000,wall=1000,nation='$conquerNation',gen1=0,gen2=0,gen3=0 where city='$city[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } else { + // 도시 소속 변경, 태수,군사,시중 초기화 + $query = "update city set supply=1,conflict='',term=0,conflict2='',agri=agri*0.7,comm=comm*0.7,secu=secu*0.7,def=def2/2,wall=wall2/2,nation='$conquerNation',gen1=0,gen2=0,gen3=0 where city='$city[city]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + //전방설정 + SetNationFront($connect, $destnation[nation]); + SetNationFront($connect, $conquerNation); + } + + pushGenLog($general, $log); + pushAllLog($alllog); + pushHistory($connect, $history); +} + +?> diff --git a/twe_close/processing.php b/twe_close/processing.php new file mode 100644 index 00000000..e5949299 --- /dev/null +++ b/twe_close/processing.php @@ -0,0 +1,3129 @@ += 0 || $turn[$i] <= 23) { + } else { + unset($turn); + $turn[0] = 100; + break; + } +} + +if($turn[0] == 100) { + unset($turn); + for($i=0; $i < 24; $i++) $turn[$i] = $i; +} elseif($turn[0] == 99) { + unset($turn); + for($i=0, $j=0; $i < 24; $i+=2, $j++) $turn[$j] = $i; +} elseif($turn[0] == 98) { + unset($turn); + for($i=1, $j=0; $i < 24; $i+=2, $j++) $turn[$j] = $i; +} + +switch($commandtype) { + case 0: command_Single($connect, $turn, 0); break; //휴식 + case 1: command_Single($connect, $turn, 1); break; //농업 + case 2: command_Single($connect, $turn, 2); break; //상업 + case 3: command_Single($connect, $turn, 3); break; //기술 + case 4: command_Single($connect, $turn, 4); break; //선정 + case 5: command_Single($connect, $turn, 5); break; //수비 + case 6: command_Single($connect, $turn, 6); break; //성벽 + case 7: command_Single($connect, $turn, 7); break; //정착 장려 + case 8: command_Single($connect, $turn, 8); break; //치안 강화 + case 9: command_Single($connect, $turn, 9); break; //자금 조달 + + case 11: command_11($connect, $turn, 11); break; //징병 + case 12: command_12($connect, $turn, 12); break; //모병 + case 13: command_Single($connect, $turn, 13); break; //훈련 + case 14: command_Single($connect, $turn, 14); break; //사기진작 + case 15: command_Single($connect, $turn, 0); break; //전투태세 + case 16: command_16($connect, $turn, 16); break; //전쟁 + case 17: command_Single($connect, $turn, 17); break; //소집해제 + + case 21: command_21($connect, $turn, 21); break; //이동 + case 22: command_22($connect, $turn, 22); break; //등용 + case 23: command_23($connect, $turn, 23); break; //포상 + case 24: command_24($connect, $turn, 24); break; //몰수 + case 25: command_25($connect, $turn, 25); break; //임관 + case 26: command_Single($connect, $turn, 26); break; //집합 + case 27: command_27($connect, $turn, 27); break; //발령 + case 28: command_Single($connect, $turn, 28); break; //귀환 + case 29: command_Single($connect, $turn, 29); break; //인재탐색 + case 30: command_30($connect, $turn, 30); break; //강행 + + case 31: command_31($connect, $turn, 31); break; //첩보 + case 32: command_32($connect, $turn, 32); break; //화계 + case 33: command_33($connect, $turn, 33); break; //탈취 + case 34: command_34($connect, $turn, 34); break; //파괴 + case 35: command_35($connect, $turn, 35); break; //선동 + case 36: command_36($connect, $turn, 36); break; //기습 + + case 41: command_Single($connect, $turn, 41); break; //단련 + case 42: command_Single($connect, $turn, 42); break; //견문 + case 43: command_43($connect, $turn, 43); break; //증여 + case 44: command_44($connect, $turn, 44); break; //헌납 + case 45: command_Single($connect, $turn, 45); break; //하야 + case 46: command_46($connect, $turn, 46); break; //건국 + case 47: command_Single($connect, $turn, 47); break; //방랑 + case 48: command_48($connect, $turn, 48); break; //장비구입 + case 49: command_49($connect, $turn, 49); break; //군량매매 + case 50: command_Single($connect, $turn, 50); break; //요양 + + case 51: command_51($connect, $turn, 51); break; //항복권고 + case 52: command_52($connect, $turn, 52); break; //원조 + case 53: command_53($connect, $turn, 53); break; //통합제의 + case 54: command_54($connect, $turn, 54); break; //선양 + case 55: command_Single($connect, $turn, 55); break; //거병 + case 56: command_Single($connect, $turn, 56); break; //해산 + case 57: command_Single($connect, $turn, 57); break; //모반 시도 + + case 61: command_61($connect, $turn, 61); break; //불가침 + case 62: command_62($connect, $turn, 62); break; //선포 + case 63: command_63($connect, $turn, 63); break; //종전 + case 64: command_64($connect, $turn, 64); break; //파기 + case 65: command_65($connect, $turn, 65); break; //초토화 + case 66: command_66($connect, $turn, 66); break; //천도 + case 67: command_67($connect, $turn, 67); break; //증축 + case 68: command_68($connect, $turn, 68); break; //감축 + case 71: command_Chief($connect, $turn, 71); break; //필사즉생 + case 72: command_72($connect, $turn, 72); break; //백성동원 + case 73: command_73($connect, $turn, 73); break; //수몰 + case 74: command_74($connect, $turn, 74); break; //허보 + case 75: command_75($connect, $turn, 75); break; //피장파장 + case 76: command_Chief($connect, $turn, 76); break; //의병모집 + case 77: command_77($connect, $turn, 77); break; //이호경식 + case 78: command_78($connect, $turn, 78); break; //급습 + case 81: command_81($connect, $turn, 81); break; //국기변경 + case 99: command_99($connect, $turn); break; //수뇌부 휴식 +} + +function starter($name, $type=0) { + global $_basecolor2, $_basecolor4; + global $images; + echo " + + +$name + + +"; +require('analytics.php'); +echo " + + + + + +
$name
+"; + if($type == 1) CoreBackButton(); + else backButton(); +} + +function ender($type=0) { + if($type == 1) CoreBackButton(); + else backButton(); + banner(); + echo " +
"; + + PrintElapsedTime(); + + echo " + + +"; +} + +function command_99($connect, $turn) { + $query = "select nation,level from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + if($me[level] >= 5) { + $command = EncodeCommand(0, 0, 0, 99); + + for($i=0; $i < sizeof($turn); $i++) { + $query = "update nation set l{$me[level]}turn{$turn[$i]}='{$command}' where nation='$me[nation]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } + } + echo ""; +} + +function GetExplain() { + $explain[0] = "표준적인 보병입니다.
보병은 방어특화입니다."; + $explain[1] = "저렴하고 튼튼합니다.
중원지역 소유시 가능."; + $explain[2] = "저렴하고 강력합니다.
오월지역 소유시 가능."; + $explain[3] = "은밀하고 날쌥니다.
저 소유시 가능."; + $explain[4] = "최강의 보병입니다.
낙양 소유시 가능."; + $explain[5] = "등갑을 두른 보병입니다.
남중지역 소유시 가능."; + + $explain[10] = "표준적인 궁병입니다.
궁병은 회피특화입니다."; + $explain[11] = "말을 타고 잘 피합니다.
동이지역 소유시 가능."; + $explain[12] = "화살을 연사합니다.
서촉지역 소유시 가능."; + $explain[13] = "강건한 궁병입니다.
양양 소유시 가능."; + $explain[14] = "강력한 화살을 쏩니다.
건업 소유시 가능."; + + $explain[20] = "표준적인 기병입니다.
기병은 공격특화입니다."; + $explain[21] = "백마의 위용을 보여줍니다.
하북지역 소유시 가능."; + $explain[22] = "갑주를 두른 기병입니다.
서북지역 소유시 가능."; + $explain[23] = "저돌적으로 공격합니다.
흉노 소유시 가능."; + $explain[24] = "철갑을 두른 기병입니다.
강 소유시 가능."; + $explain[25] = "날쎄고 빠른 기병입니다.
산월 소유시 가능."; + $explain[26] = "어느 누구보다 강력합니다.
남만 소유시 가능."; + $explain[27] = "정예 기병입니다.
허창 소유시 가능."; + + $explain[30] = "계략을 사용하는 병종입니다.
귀병은 계략특화입니다."; + $explain[31] = "신출귀몰한 귀병입니다.
초지역 소유시 가능."; + $explain[32] = "저렴하고 튼튼합니다.
오환 소유시 가능."; + $explain[33] = "저렴하고 강력합니다.
왜 소유시 가능."; + $explain[34] = "백병전에도 능숙합니다.
장안 소유시 가능."; + $explain[35] = "전투를 포기하고 계략에 몰두합니다.
귀병은 계략특화입니다."; + $explain[36] = "고도로 훈련된 귀병입니다.
낙양 소유시 가능."; + $explain[37] = "갑주를 두른 귀병입니다.
성도 소유시 가능."; + $explain[38] = "날카로운 무기를 가진 귀병입니다.
업 소유시 가능."; + + $explain[40] = "높은 구조물 위에서 공격합니다.
차병은 공성특화입니다."; + $explain[41] = "엄청난 위력으로 성벽을 부수어버립니다.
차병은 공성특화입니다."; + $explain[42] = "상대에게 돌덩이를 날립니다.
업 소유시 가능."; + $explain[43] = "상대를 저지하는 특수병기입니다.
성도 소유시 가능."; + + return $explain; +} + +function command_11($connect, $turn, $command) { + global $_basecolor, $_basecolor2, $images, $image; + starter("징병"); + $query = "select * from game where no='1'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select no,nation,level,personal,special2,level,city,crew,horse,injury,leader,crewtype,gold from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + //현재 도시 + $query = "select city,region from city where city='$me[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $curCity = MYDB_fetch_array($result); + + $query = "select level,tech from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error("process53 ".MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($me[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($me[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + $explain = GetExplain(); + + if($admin[year] < $admin[startyear]+3) { + //그 국가에서 그 병종 가능한지 + $valid[0] = 1; $color[0] = $_basecolor2; + $valid[10] = 1; $color[10] = $_basecolor2; + $valid[20] = 1; $color[20] = $_basecolor2; + $valid[30] = 1; $color[30] = $_basecolor2; + $valid[40] = 1; $color[40] = "red"; // 정란 + $valid[41] = 1; $color[41] = "red"; // 충차 + } else { + // 아국 도시 구분 + $query = "select city,level,region from city where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $citycount = MYDB_num_rows($result); + + for($i=0; $i < $citycount; $i++) { + $city = MYDB_fetch_array($result); + // 기술 1000 이상부터 지역병 + if($nation[tech] >= 1000) { + $myregion[$city[region]] = 1; + } + // 기술 2000 이상부터 이민족병 + if($city[level] == 4 && $nation[tech] >= 2000) { + $mycity[$city[city]] = 1; + } + // 기술 3000 이상부터 특수병 + if($city[level] == 8 && $nation[tech] >= 3000) { + $mycity[$city[city]] = 1; + } + } + + //그 국가에서 그 병종 가능한지 + $valid[0] = 1; $color[0] = $_basecolor2; + $valid[1] = $myregion[2]; $color[1] = "limegreen"; // 청주병(중원) + $valid[2] = $myregion[7]; $color[2] = "limegreen"; // 수병(오월) + $valid[3] = $mycity[64]; $color[3] = "limegreen"; // 자객병(저) + $valid[4] = $mycity[3]; $color[4] = "limegreen"; // 근위병(낙양) + $valid[5] = $myregion[5]; $color[5] = "limegreen"; // 등갑병(남중) + $valid[10] = 1; $color[10] = $_basecolor2; + $valid[11] = $myregion[8]; $color[11] = "limegreen"; // 궁기병(동이) + $valid[12] = $myregion[4]; $color[12] = "limegreen"; // 연노병(서촉) + $valid[13] = $mycity[6]; $color[13] = "limegreen"; // 강궁병(양양) + $valid[14] = $mycity[7]; $color[14] = "limegreen"; // 석궁병(건업) + $valid[20] = 1; $color[20] = $_basecolor2; + $valid[21] = $myregion[1]; $color[21] = "limegreen"; // 백마병(하북) + $valid[22] = $myregion[3]; $color[22] = "limegreen"; // 중장기병(서북) + $valid[23] = $mycity[65]; $color[23] = "limegreen"; // 돌격기병(흉노) + $valid[24] = $mycity[63]; $color[24] = "limegreen"; // 철기병(강) + $valid[25] = $mycity[67]; $color[25] = "limegreen"; // 수렵기병(산월) + $valid[26] = $mycity[66]; $color[26] = "limegreen"; // 맹수병(남만) + $valid[27] = $mycity[2]; $color[27] = "limegreen"; // 호표기병(허창) + $valid[30] = 1; $color[30] = $_basecolor2; + $valid[31] = $myregion[6]; $color[31] = "limegreen"; // 신귀병(초) + $valid[32] = $mycity[68]; $color[32] = "limegreen"; // 백귀병(오환) + $valid[33] = $mycity[69]; $color[33] = "limegreen"; // 흑귀병(왜) + $valid[34] = $mycity[4]; $color[34] = "limegreen"; // 악귀병(장안) + $valid[35] = 1; $color[35] = $_basecolor2;// 남귀병 + $valid[36] = $mycity[3]; $color[36] = "limegreen"; // 황귀병(낙양) + $valid[37] = $mycity[5]; $color[37] = "limegreen"; // 천귀병(성도) + $valid[38] = $mycity[1]; $color[38] = "limegreen"; // 마귀병(업) + $valid[40] = 1; $color[40] = $_basecolor2;// 정란 + $valid[41] = 1; $color[41] = $_basecolor2;// 충차 + $valid[42] = $mycity[1]; $color[42] = "limegreen"; // 벽력거(업) + $valid[43] = $mycity[5]; $color[43] = "limegreen"; // 목우(성도) + + // 남귀병은 기술1등급부터 + if($nation[tech] < 1000) { + $valid[35] = 0; + } + // 충차는 기술1등급부터 + if($nation[tech] < 1000) { + $valid[41] = 0; + } + } + + $leader = floor($me[leader] * (100 - $me[injury])/100) + getHorseEff($me[horse]) + $lbonus; + $crew = $leader - round($me[crew]/100); + $abil = getTechAbil($nation[tech]); + $cost = getTechCost($nation[tech]); + echo " +병사를 모집합니다. 훈련과 사기치는 낮지만 가격이 저렴합니다.
+가능한 수보다 많게 입력하면 가능한 최대 병사를 모집합니다.
+이미 병사가 있는 경우 추가징병되며, 병종이 다를경우는 기존의 병사는 소집해제됩니다.
+현재 징병 가능한 병종은 녹색으로 표시되며,
+현재 징병 가능한 특수병종은 초록색으로 표시됩니다.
+ + + + + + + + + + + + + + + + + "; + + echo " + "; + + for($i=0; $i <= 5; $i++) { + if($valid[$i] == 1) { + $ric = $admin["ric{$i}"] * $cost; + $cst = $admin["cst{$i}"] * $cost; + //성격 보정 + $cst = CharCost($cst, $me[personal]); + //특기 보정 : 보병, 징병 + if($me[special2] == 50) { $cst *= 0.9; } + if($me[special2] == 72) { $cst *= 0.5; } + $att = $admin["att{$i}"] + $abil; + $def = $admin["def{$i}"] + $abil; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $ric = round($ric); + $cst = round($cst); + $l = $color[$i]; + $weapImage = "{$images}/weap{$i}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; } + echo " + + + + + + + + + + + + + + "; + } + } + + echo " + "; + + for($i=10; $i <= 14; $i++) { + if($valid[$i] == 1) { + $ric = $admin["ric{$i}"] * $cost; + $cst = $admin["cst{$i}"] * $cost; + //성격 보정 + $cst = CharCost($cst, $me[personal]); + //특기 보정 : 궁병, 징병 + if($me[special2] == 51) { $cst *= 0.9; } + if($me[special2] == 72) { $cst *= 0.5; } + $att = $admin["att{$i}"] + $abil; + $def = $admin["def{$i}"] + $abil; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $ric = round($ric); + $cst = round($cst); + $l = $color[$i]; + $weapImage = "{$images}/weap{$i}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; } + echo " + + + + + + + + + + + + + + "; + } + } + + echo " + "; + + for($i=20; $i <= 27; $i++) { + if($valid[$i] == 1) { + $ric = $admin["ric{$i}"] * $cost; + $cst = $admin["cst{$i}"] * $cost; + //성격 보정 + $cst = CharCost($cst, $me[personal]); + //특기 보정 : 기병, 징병 + if($me[special2] == 52) { $cst *= 0.9; } + if($me[special2] == 72) { $cst *= 0.5; } + $att = $admin["att{$i}"] + $abil; + $def = $admin["def{$i}"] + $abil; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $ric = round($ric); + $cst = round($cst); + $l = $color[$i]; + $weapImage = "{$images}/weap{$i}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; } + echo " + + + + + + + + + + + + + + "; + } + } + + echo " + "; + + for($i=30; $i <= 38; $i++) { + if($valid[$i] == 1) { + $ric = $admin["ric{$i}"] * $cost; + $cst = $admin["cst{$i}"] * $cost; + //성격 보정 + $cst = CharCost($cst, $me[personal]); + //특기 보정 : 귀병, 징병 + if($me[special2] == 40) { $cst *= 0.9; } + if($me[special2] == 72) { $cst *= 0.5; } + $att = $admin["att{$i}"] + $abil; + $def = $admin["def{$i}"] + $abil; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $ric = round($ric); + $cst = round($cst); + $l = $color[$i]; + $weapImage = "{$images}/weap{$i}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; } + echo " + + + + + + + + + + + + + + "; + } + } + + echo " + "; + + for($i=40; $i <= 43; $i++) { + if($valid[$i] == 1) { + $ric = $admin["ric{$i}"] * $cost; + $cst = $admin["cst{$i}"] * $cost; + //성격 보정 + $cst = CharCost($cst, $me[personal]); + //특기 보정 : 공성, 징병 + if($me[special2] == 53) { $cst *= 0.9; } + if($me[special2] == 72) { $cst *= 0.5; } + $att = $admin["att{$i}"] + $abil; + $def = $admin["def{$i}"] + $abil; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $ric = round($ric); + $cst = round($cst); + $l = $color[$i]; + $weapImage = "{$images}/weap{$i}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; } + echo " + + + + + + + + + + + + + + "; + } + } + + echo " +
+ 현재 기술력 : + 현재 통솔 : + 현재 병종 : + 현재 병사 : + 현재 자금 : +
사진병종공격방어기동회피군량가격병사수특징
보병 계열
".getTypename($i)."{$att}{$def}{$spd}{$avd}{$ric}{$cst}
+ 00명
+ + + "; + + for($j=0; $j < sizeof($turn); $j++) { + echo " + "; + } + echo " +
$explain[$i]
궁병 계열
".getTypename($i)."{$att}{$def}{$spd}{$avd}{$ric}{$cst}
+ 00명
+ + + "; + + for($j=0; $j < sizeof($turn); $j++) { + echo " + "; + } + echo " +
$explain[$i]
기병 계열
".getTypename($i)."{$att}{$def}{$spd}{$avd}{$ric}{$cst}
+ 00명
+ + + "; + + for($j=0; $j < sizeof($turn); $j++) { + echo " + "; + } + echo " +
$explain[$i]
귀병 계열
".getTypename($i)."{$att}{$def}{$spd}{$avd}{$ric}{$cst}
+ 00명
+ + + "; + + for($j=0; $j < sizeof($turn); $j++) { + echo " + "; + } + echo " +
$explain[$i]
차 계열
".getTypename($i)."{$att}{$def}{$spd}{$avd}{$ric}{$cst}
+ 00명
+ + + "; + + for($j=0; $j < sizeof($turn); $j++) { + echo " + "; + } + echo " +
$explain[$i]
"; + + ender(); +} + +function command_12($connect, $turn, $command) { + global $_basecolor, $_basecolor2, $images, $image; + starter("모병"); + $query = "select * from game where no='1'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select no,nation,personal,special2,level,city,crew,horse,injury,leader,crewtype,gold from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("command_12 ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + //현재 도시 + $query = "select city,region from city where city='$me[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $curCity = MYDB_fetch_array($result); + + $query = "select level,tech from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error("process53 ".MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + + if($me[level] == 12) { + $lbonus = $nation[level] * 2; + } elseif($me[level] >= 5) { + $lbonus = $nation[level]; + } else { + $lbonus = 0; + } + + $explain = GetExplain(); + + if($admin[year] < $admin[startyear]+3) { + //그 국가에서 그 병종 가능한지 + $valid[0] = 1; $color[0] = $_basecolor2; + $valid[10] = 1; $color[10] = $_basecolor2; + $valid[20] = 1; $color[20] = $_basecolor2; + $valid[30] = 1; $color[30] = $_basecolor2; + $valid[40] = 1; $color[40] = "red"; // 정란 + $valid[41] = 1; $color[41] = "red"; // 충차 + } else { + // 아국 도시 구분 + $query = "select city,level,region from city where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $citycount = MYDB_num_rows($result); + + for($i=0; $i < $citycount; $i++) { + $city = MYDB_fetch_array($result); + // 기술 1000 이상부터 지역병 + if($nation[tech] >= 1000) { + $myregion[$city[region]] = 1; + } + // 기술 2000 이상부터 이민족병 + if($city[level] == 4 && $nation[tech] >= 2000) { + $mycity[$city[city]] = 1; + } + // 기술 3000 이상부터 특수병 + if($city[level] == 8 && $nation[tech] >= 3000) { + $mycity[$city[city]] = 1; + } + } + + //그 국가에서 그 병종 가능한지 + $valid[0] = 1; $color[0] = $_basecolor2; + $valid[1] = $myregion[2]; $color[1] = "limegreen"; // 청주병(중원) + $valid[2] = $myregion[7]; $color[2] = "limegreen"; // 수병(오월) + $valid[3] = $mycity[64]; $color[3] = "limegreen"; // 자객병(저) + $valid[4] = $mycity[3]; $color[4] = "limegreen"; // 근위병(낙양) + $valid[5] = $myregion[5]; $color[5] = "limegreen"; // 등갑병(남중) + $valid[10] = 1; $color[10] = $_basecolor2; + $valid[11] = $myregion[8]; $color[11] = "limegreen"; // 궁기병(동이) + $valid[12] = $myregion[4]; $color[12] = "limegreen"; // 연노병(서촉) + $valid[13] = $mycity[6]; $color[13] = "limegreen"; // 강궁병(양양) + $valid[14] = $mycity[7]; $color[14] = "limegreen"; // 석궁병(건업) + $valid[20] = 1; $color[20] = $_basecolor2; + $valid[21] = $myregion[1]; $color[21] = "limegreen"; // 백마병(하북) + $valid[22] = $myregion[3]; $color[22] = "limegreen"; // 중장기병(서북) + $valid[23] = $mycity[65]; $color[23] = "limegreen"; // 돌격기병(흉노) + $valid[24] = $mycity[63]; $color[24] = "limegreen"; // 철기병(강) + $valid[25] = $mycity[67]; $color[25] = "limegreen"; // 수렵기병(산월) + $valid[26] = $mycity[66]; $color[26] = "limegreen"; // 맹수병(남만) + $valid[27] = $mycity[2]; $color[27] = "limegreen"; // 호표기병(허창) + $valid[30] = 1; $color[30] = $_basecolor2; + $valid[31] = $myregion[6]; $color[31] = "limegreen"; // 신귀병(초) + $valid[32] = $mycity[68]; $color[32] = "limegreen"; // 백귀병(오환) + $valid[33] = $mycity[69]; $color[33] = "limegreen"; // 흑귀병(왜) + $valid[34] = $mycity[4]; $color[34] = "limegreen"; // 악귀병(장안) + $valid[35] = 1; $color[35] = $_basecolor2;// 남귀병 + $valid[36] = $mycity[3]; $color[36] = "limegreen"; // 황귀병(낙양) + $valid[37] = $mycity[5]; $color[37] = "limegreen"; // 천귀병(성도) + $valid[38] = $mycity[1]; $color[38] = "limegreen"; // 마귀병(업) + $valid[40] = 1; $color[40] = $_basecolor2;// 정란 + $valid[41] = 1; $color[41] = $_basecolor2;// 충차 + $valid[42] = $mycity[1]; $color[42] = "limegreen"; // 벽력거(업) + $valid[43] = $mycity[5]; $color[43] = "limegreen"; // 목우(성도) + + // 남귀병은 기술1등급부터 + if($nation[tech] < 1000) { + $valid[35] = 0; + } + // 충차는 기술1등급부터 + if($nation[tech] < 1000) { + $valid[41] = 0; + } + } + + $leader = floor($me[leader] * (100 - $me[injury])/100) + getHorseEff($me[horse]) + $lbonus; + $crew = $leader - round($me[crew]/100); + $abil = getTechAbil($nation[tech]); + $cost = getTechCost($nation[tech]); + echo " +병사를 모집합니다. 훈련과 사기치는 높지만 자금이 많이 듭니다.
+가능한 수보다 많게 입력하면 가능한 최대 병사를 모집합니다.
+이미 병사가 있는 경우 추가징병되며, 병종이 다를경우는 기존의 병사는 소집해제됩니다.
+현재 모병 가능한 병종은 녹색으로 표시되며,
+현재 모병 가능한 특수병종은 초록색으로 표시됩니다.
+ + + + + + + + + + + + + + + + + + "; + + echo " + "; + + for($i=0; $i <= 5; $i++) { + if($valid[$i] == 1) { + $ric = $admin["ric{$i}"] * $cost; + $cst = $admin["cst{$i}"] * $cost; + //성격 보정 + $cst = CharCost($cst, $me[personal]); + //특기 보정 : 보병, 징병 + if($me[special2] == 50) { $cst *= 0.9; } + if($me[special2] == 72) { $cst *= 0.5; } + $att = $admin["att{$i}"] + $abil; + $def = $admin["def{$i}"] + $abil; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $ric = round($ric); + $cst = round($cst); + $l = $color[$i]; + $weapImage = "{$images}/weap{$i}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; } + echo " + + + + + + + + + + + + + + "; + } + } + + echo " + "; + + for($i=10; $i <= 14; $i++) { + if($valid[$i] == 1) { + $ric = $admin["ric{$i}"] * $cost; + $cst = $admin["cst{$i}"] * $cost; + //성격 보정 + $cst = CharCost($cst, $me[personal]); + //특기 보정 : 궁병, 징병 + if($me[special2] == 51) { $cst *= 0.9; } + if($me[special2] == 72) { $cst *= 0.5; } + $att = $admin["att{$i}"] + $abil; + $def = $admin["def{$i}"] + $abil; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $ric = round($ric); + $cst = round($cst); + $l = $color[$i]; + $weapImage = "{$images}/weap{$i}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; } + echo " + + + + + + + + + + + + + + "; + } + } + + echo " + "; + + for($i=20; $i <= 27; $i++) { + if($valid[$i] == 1) { + $ric = $admin["ric{$i}"] * $cost; + $cst = $admin["cst{$i}"] * $cost; + //성격 보정 + $cst = CharCost($cst, $me[personal]); + //특기 보정 : 기병, 징병 + if($me[special2] == 52) { $cst *= 0.9; } + if($me[special2] == 72) { $cst *= 0.5; } + $att = $admin["att{$i}"] + $abil; + $def = $admin["def{$i}"] + $abil; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $ric = round($ric); + $cst = round($cst); + $l = $color[$i]; + $weapImage = "{$images}/weap{$i}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; } + echo " + + + + + + + + + + + + + + "; + } + } + + echo " + "; + + for($i=30; $i <= 38; $i++) { + if($valid[$i] == 1) { + $ric = $admin["ric{$i}"] * $cost; + $cst = $admin["cst{$i}"] * $cost; + //성격 보정 + $cst = CharCost($cst, $me[personal]); + //특기 보정 : 귀병, 징병 + if($me[special2] == 40) { $cst *= 0.9; } + if($me[special2] == 72) { $cst *= 0.5; } + $att = $admin["att{$i}"] + $abil; + $def = $admin["def{$i}"] + $abil; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $ric = round($ric); + $cst = round($cst); + $l = $color[$i]; + $weapImage = "{$images}/weap{$i}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; } + echo " + + + + + + + + + + + + + + "; + } + } + + echo " + "; + + for($i=40; $i <= 43; $i++) { + if($valid[$i] == 1) { + $ric = $admin["ric{$i}"] * $cost; + $cst = $admin["cst{$i}"] * $cost; + //성격 보정 + $cst = CharCost($cst, $me[personal]); + //특기 보정 : 공성, 징병 + if($me[special2] == 53) { $cst *= 0.9; } + if($me[special2] == 72) { $cst *= 0.5; } + $att = $admin["att{$i}"] + $abil; + $def = $admin["def{$i}"] + $abil; + $spd = $admin["spd{$i}"]; + $avd = $admin["avd{$i}"]; + $ric = round($ric); + $cst = round($cst); + $l = $color[$i]; + $weapImage = "{$images}/weap{$i}.jpg"; + if($admin[img] < 2) { $weapImage = "{$image}/default.jpg"; } + echo " + + + + + + + + + + + + + + "; + } + } + + echo " +
모병은 가격 2배의 자금이 소요됩니다.
+ 현재 기술력 : + 현재 통솔 : + 현재 병종 : + 현재 병사 : + 현재 자금 : +
사진병종공격방어기동회피군량가격병사수특징
보병 계열
".getTypename($i)."{$att}{$def}{$spd}{$avd}{$ric}{$cst}
+ 00명
+ + + "; + + for($j=0; $j < sizeof($turn); $j++) { + echo " + "; + } + echo " +
$explain[$i]
궁병 계열
".getTypename($i)."{$att}{$def}{$spd}{$avd}{$ric}{$cst}
+ 00명
+ + + "; + + for($j=0; $j < sizeof($turn); $j++) { + echo " + "; + } + echo " +
$explain[$i]
기병 계열
".getTypename($i)."{$att}{$def}{$spd}{$avd}{$ric}{$cst}
+ 00명
+ + + "; + + for($j=0; $j < sizeof($turn); $j++) { + echo " + "; + } + echo " +
$explain[$i]
귀병 계열
".getTypename($i)."{$att}{$def}{$spd}{$avd}{$ric}{$cst}
+ 00명
+ + + "; + + for($j=0; $j < sizeof($turn); $j++) { + echo " + "; + } + echo " +
$explain[$i]
차 계열
".getTypename($i)."{$att}{$def}{$spd}{$avd}{$ric}{$cst}
+ 00명
+ + + "; + + for($j=0; $j < sizeof($turn); $j++) { + echo " + "; + } + echo " +
$explain[$i]
"; + + ender(); +} + +function command_15($connect, $turn, $command) { + starter("재편성"); + $query = "select no,nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + $me = $general[no]; + + $query = "select no,name from general where nation='$general[nation]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + echo " +자신의 병사를 다른 장수에게 보냅니다. +
+ +00명 + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_16($connect, $turn, $command) { + starter("출병"); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select city,name from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + + echo " +
+선택된 도시로 침공을 합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+$currentcity[name] => + + +"; + + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + printCitysName($connect, $currentcity[city], 1); + + ender(); +} + +function command_21($connect, $turn, $command) { + starter("이동"); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select city,name from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + + echo " +
+선택된 도시로 이동합니다.
+인접 도시로만 이동이 가능합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+$currentcity[name] => + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + printCitysName($connect, $currentcity[city], 1); + + ender(); +} + +function command_22($connect, $turn, $command) { + starter("등용"); + + $query = "select nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + echo " +재야나 타국의 장수를 등용합니다.
+서신은 개인 메세지로 전달됩니다.
+등용할 장수를 목록에서 선택하세요.
+
+ + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + ender(); +} + +function command_23($connect, $turn, $command) { + starter("포상", 1); + $query = "select no,nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select no,name,level,npc from general where nation='$general[nation]' and no!='$general[no]' order by npc,binary(name)"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + echo " +국고로 장수에게 자금이나 군량을 지급합니다.
+
+ + + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(1); +} + +function command_24($connect, $turn, $command) { + starter("몰수", 1); + $query = "select no,nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select no,name,level,npc from general where nation='$general[nation]' and no!='$general[no]' order by npc,binary(name)"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + echo " +장수의 자금이나 군량을 몰수합니다.
+몰수한것은 국가재산으로 귀속됩니다.
+
+ + + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(1); +} + +function command_25($connect, $turn, $command) { + global $_basecolor2, $_basecolor4, $images; + + starter("임관"); + + $query = "select startyear,year from game where no='1'"; + $result = MYDB_query($query, $connect) or Error("command_46 ".MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $query = "select no,nations from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("command_27 ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select nation,name,color,scout,scoutmsg,tricklimit,gennum from nation order by gennum"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $count = MYDB_num_rows($result); + + echo " +국가에 임관합니다.
+이미 임관/등용되었던 국가는 다시 임관할 수 없습니다.
+바로 군주의 위치로 이동합니다.
+임관할 국가를 목록에서 선택하세요.
+!!!는 방랑군을 포함한 랜덤임관입니다. 유니크를 기대하신다면!
+???는 방랑군을 제외한 랜덤임관입니다. 유니크 혜택은 없습니다.
+임관 금지이거나 초기 제한중인 국가는 붉은색 배경으로 표시됩니다.
+900px x 200px 넘는 높이를 점유할 시 통보없이 제한될 수 있습니다.
+
+ + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+ + +{$scoutStr} +
임관 권유 메세지
"; + + ender(); +} + +function command_27($connect, $turn, $command) { + starter("발령", 1); + + $query = "select no,nation,level from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("command_27 ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select no,name,level,npc from general where nation='$me[nation]' and no!='$me[no]' order by npc,binary(name)"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + echo " +
+선택된 도시로 아국 장수를 발령합니다.
+아국 도시로만 발령이 가능합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+ + => + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(1); +} + +function command_30($connect, $turn, $command) { + starter("강행"); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select city,name from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + + echo " +
+선택된 도시로 강행합니다.
+최대 3칸내 도시로만 강행이 가능합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+$currentcity[name] => + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " +"; +} + +echo " +
+"; + +printCitysName($connect, $currentcity[city], 1); +printCitysName($connect, $currentcity[city], 2); +printCitysName($connect, $currentcity[city], 3); + +ender(); +} + +function command_31($connect, $turn, $command) { + starter("첩보"); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select city,name from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + + echo " +
+선택된 도시에 첩보를 실행합니다.
+인접도시일 경우 많은 정보를 얻을 수 있습니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+$currentcity[name] => + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + echo " +모든 도시가 가능하지만 많은 정보를 얻을 수 있는
+"; + + printCitysName($connect, $currentcity[city], 1); + printCitysName($connect, $currentcity[city], 2); + + ender(); +} + +function command_32($connect, $turn, $command) { + starter("화계"); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select city,name from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + + echo " +
+선택된 도시에 화계를 실행합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+$currentcity[name] => + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + printCitysName($connect, $currentcity[city], 1); + printCitysName($connect, $currentcity[city], 2); + + ender(); +} + +function command_33($connect, $turn, $command) { + starter("탈취"); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select city,name from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + + echo " +
+선택된 도시에 탈취를 실행합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+$currentcity[name] => + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + printCitysName($connect, $currentcity[city], 1); + printCitysName($connect, $currentcity[city], 2); + + ender(); +} + +function command_34($connect, $turn, $command) { + starter("파괴"); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select city,name from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + + echo " +
+선택된 도시에 파괴를 실행합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+$currentcity[name] => + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + printCitysName($connect, $currentcity[city], 1); + printCitysName($connect, $currentcity[city], 2); + + ender(); +} + +function command_35($connect, $turn, $command) { + starter("선동"); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select city,name from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + + echo " +
+선택된 도시에 선동을 실행합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+$currentcity[name] => + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + printCitysName($connect, $currentcity[city], 1); + printCitysName($connect, $currentcity[city], 2); + + ender(); +} + +function command_36($connect, $turn, $command) { + starter("기습"); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select city,name from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + + echo " +
+선택된 도시에 기습을 실행합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+$currentcity[name] => + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + printCitysName($connect, $currentcity[city], 1); + printCitysName($connect, $currentcity[city], 2); + + ender(); +} + +function command_43($connect, $turn, $command) { + starter("증여"); + $query = "select no,nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select no,name,level,npc from general where nation='$general[nation]' and no!='$general[no]' order by npc,binary(name)"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + echo " +자신의 자금이나 군량을 다른 장수에게 증여합니다.
+장수를 선택하세요.
+
+ + + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_44($connect, $turn, $command) { + starter("헌납"); + + echo " +자신의 자금이나 군량을 국가 재산으로 헌납합니다.
+
+ + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_46($connect, $turn, $command) { + starter("건국"); + + $query = "select maxnation from game where no='1'"; + $result = MYDB_query($query, $connect) or Error("command_46 ".MYDB_error($connect),""); + $admin = MYDB_fetch_array($result); + + $color = GetNationColors(); + + $query = "select color from nation where level>0"; + $result = MYDB_query($query, $connect) or Error("command_46 ".MYDB_error($connect),""); + $nationcount = MYDB_num_rows($result); + + for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($result); + $nationcolor[$i] = $nation[color]; + } + $validCount = count($color); + //등록된 색깔 가려내기 + for($i=0; $i < count($color); $i++) { + $valid[$i] = 1; + for($j=0; $j < $nationcount; $j++) { + if($color[$i] == $nationcolor[$j]) { + $valid[$i] = 0; + $validCount--; + } + } + } + //색깔이 다 쓰였으면 그냥 모두 허용 + if($validCount <= 0) { + for($i=0; $i < count($color); $i++) { + $valid[$i] = 1; + } + } + + if($nationcount < $admin[maxnation]) { + echo " +현재 도시에서 나라를 세웁니다. 중, 소도시에서만 가능합니다.
+ +- 법 가 : 금수입↑ 치안↑ 인구↓ 민심↓
+- 유 가 : 내정↑ 민심↑ 쌀수입↓
+- 병 가 : 기술↑ 수성↑ 인구↓ 민심↓
+- 덕 가 : 치안↑인구↑ 민심↑ 쌀수입↓ 수성↓
+- 묵 가 : 수성↑ 기술↓
+- 도 가 : 인구↑ 기술↓ 치안↓
+- 태 평 도 : 인구↑ 민심↑ 기술↓ 수성↓
+- 오 두 미 도 : 쌀수입↑ 인구↑ 기술↓ 수성↓ 내정↓
+- 도 적 : 계략↑ 금수입↓ 치안↓ 민심↓
+- 불 가 : 민심↑ 수성↑ 금수입↓
+- 종 횡 가 : 전략↑ 수성↑ 금수입↓ 내정↓
+- 음 양 가 : 내정↑ 인구↑ 기술↓ 전략↓
+- 명 가 : 기술↑ 인구↑ 쌀수입↓ 수성↓
+ +
+국명 : +색깔 : +성향 : + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " +"; + } + + echo " +
"; + } else { + echo " +더 이상 건국은 불가능합니다.
"; + } + ender(); +} + +function command_48($connect, $turn, $command) { + starter("장비 매매"); + + $query = "select no,city,gold from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("command_48 ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + $city = getCity($connect, $me[city], "secu"); + + for($i=1; $i <= 6; $i++) { + if($city[secu] >= $i*1000) { + $color[$i] = "white"; + } else { + $color[$i] = "red"; + } + } + + echo " +장비를 구입하거나 매각합니다.
+현재 구입 불가능한 것은 붉은색으로 표시됩니다.
+현재 도시 치안 : $city[secu]    현재 자금 : $me[gold]
+
+장비 : + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_49($connect, $turn, $command) { + starter("군량매매"); + + echo " +자신의 군량을 사거나 팝니다.
+
+ + + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_51($connect, $turn, $command) { + starter("항복 권고", 1); + + $query = "select nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select nation,power from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $myNation = MYDB_fetch_array($result); + + echo " +타국에게 항복을 권고합니다.
+서신은 개인 메세지로 전달됩니다.
+권고할 국가를 목록에서 선택하세요.
+합병이 불가능한 국가는 붉은 배경으로 표시됩니다.
+
+ + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+제한 조건
+- 인접 국가
+- 양국 모두 외교제한 기간 없음
+- 제의한 국가가 항복하는 국가보다 국력 3배 초과
+"; + ender(1); +} + +function command_52($connect, $turn, $command) { + starter("원조", 1); + + $query = "select nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select nation,level from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $mynation = MYDB_fetch_array($result); + + echo " +타국에게 원조합니다.
+작위별로 금액 제한이 있습니다.
+ 호족: 1만
+ 군벌: 2만
+주자사: 3만
+ 주목: 4만
+  공: 5만
+  왕: 6만
+ 황제: 7만
+원조할 국가를 목록에서 선택하세요.
+
+ 대상 국가 +국고 +병량 + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + ender(1); +} + +function command_53($connect, $turn, $command) { + starter("통합제의", 1); + + $query = "select no,nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("command_53 ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $query = "select round(avg(power)) as power,round(avg(gennum)) as gennum from nation where level>=1"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $avgNation = MYDB_fetch_array($result); + + $query = "select round(std(power)) as power,round(std(gennum)) as gennum from nation where level>=1"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $stdNation = MYDB_fetch_array($result); + + $query = "select nation,power,gennum from nation where nation='$me[nation]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $myNation = MYDB_fetch_array($result); + + echo " +세력이 비슷한 국가에 통합 제의를 합니다. 제의한 국가 위주로 통합됩니다.
+서신은 개인 메세지로 전달됩니다.
+제의할 국가를 목록에서 선택하세요.
+통합이 불가능한 국가는 붉은 배경으로 표시됩니다.
+
+대상국 : + 통합국명 : + + "; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+제한 조건
+- 인접 국가
+- 양국 모두 외교제한 없음
+- 양국 국력의 합이 평균+표준편차(현재 {$cond1}) 이하
+- 양국 장수수의 합이 평균+표준편차(현재 {$cond2}) 이하
+"; + ender(1); +} + +function command_54($connect, $turn, $command) { + starter("선양"); + $query = "select no,nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select no,name,level from general where nation='$general[nation]' and no!='$general[no]' order by npc,binary(name)"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $gencount = MYDB_num_rows($result); + + echo " +군주의 자리를 다른 장수에게 물려줍니다.
+장수를 선택하세요.
+
+ + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_61($connect, $turn, $command) { + starter("불가침", 1); + + $query = "select nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + echo " +타국에게 불가침을 제의합니다.
+제의할 국가를 목록에서 선택하세요.
+배경색은 현재 제의가 불가능한 국가는 붉은색, 현재 불가침중인 국가는 푸른색으로 표시됩니다.
+비고는 불가침시 세부 조건등을 지정하는 곳입니다.(최대 45자) ※유저 편의를 위한 것일뿐 시스템적으로 보장하지는 않습니다.
+
+ 대상 국가 +기간 +년
+비고 : + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + ender(1); +} + +function command_62($connect, $turn, $command) { + starter("선전포고", 1); + + $query = "select nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + echo " +타국에게 선전 포고합니다.
+선전 포고할 국가를 목록에서 선택하세요.
+고립되지 않은 아국 도시에서 인접한 국가에 선포 가능합니다.
+초반제한 해제 2년전부터 선포가 가능합니다. (체섭기준 181년 1월부터 가능)
+배경색은 현재 선포가 불가능한 국가는 붉은색, 현재 불가침중(역시 불가)인 국가는 푸른색으로 표시됩니다.
+
+ 대상 국가 + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + ender(1); +} + +function command_63($connect, $turn, $command) { + starter("종전", 1); + + $query = "select nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + echo " +전쟁중인 국가에 종전을 제의합니다.
+제의할 국가를 목록에서 선택하세요.
+배경색은 현재 제의가 불가능한 국가는 붉은색으로 표시됩니다.
+
+ 대상 국가 + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + ender(1); +} + +function command_64($connect, $turn, $command) { + starter("파기", 1); + + $query = "select nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + echo " +불가침중인 국가에 조약 파기를 제의합니다.
+제의할 국가를 목록에서 선택하세요.
+배경색은 현재 제의가 불가능한 국가는 붉은색, 현재 불가침중(제의 가능)인 국가는 푸른색으로 표시됩니다.
+
+ 대상 국가 + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + ender(1); +} + +function command_65($connect, $turn, $command) { + starter("초토화", 1); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select name,path from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + +echo " +
+선택된 도시를 초토화 시킵니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+ + +"; + + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_66($connect, $turn, $command) { + starter("천도", 1); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select name,path from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + +echo " +
+선택된 도시로 천도합니다.
+현재 수도에서 인접한 도시만 가능합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+ + +"; + + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_67($connect, $turn, $command) { + starter("증축", 1); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select name,path from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + +echo " +
+선택된 도시를 증축합니다.
+현재 수도만 가능합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+ + +"; + + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_68($connect, $turn, $command) { + starter("감축", 1); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select name,path from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + +echo " +
+선택된 도시를 감축합니다.
+현재 수도만 가능합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+ + +"; + + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_72($connect, $turn, $command) { + starter("백성동원", 1); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select name,path from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + +echo " +
+선택된 도시에 백성동원을 발동합니다.
+아국 도시만 가능합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+ + +"; + + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_73($connect, $turn, $command) { + starter("수몰", 1); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select name,path from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + +echo " +
+선택된 도시에 수몰을 발동합니다.
+전쟁중인 상대국 도시만 가능합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+ + +"; + + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_74($connect, $turn, $command) { + starter("허보", 1); + $query = "select city from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $general = MYDB_fetch_array($result); + + $query = "select name,path from city where city='$general[city]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $currentcity = MYDB_fetch_array($result); + +echo " +
+선택된 도시에 허보를 발동합니다.
+선포, 전쟁중인 상대국 도시만 가능합니다.
+목록을 선택하거나 도시를 클릭하세요.
+
+ + +"; + + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + + ender(); +} + +function command_75($connect, $turn, $command) { + starter("피장파장", 1); + + $query = "select nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + echo " +선택된 국가에 피장파장을 발동합니다.
+선포, 전쟁중인 상대국에만 가능합니다.
+상대 국가를 목록에서 선택하세요.
+배경색은 현재 피장파장 불가능 국가는 붉은색으로 표시됩니다.
+
+ 대상 국가 + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + ender(1); +} + +function command_77($connect, $turn, $command) { + starter("이호경식", 1); + + $query = "select nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + echo " +선택된 국가에 이호경식을 발동합니다.
+선포, 전쟁중인 상대국에만 가능합니다.
+상대 국가를 목록에서 선택하세요.
+배경색은 현재 이호경식 불가능 국가는 붉은색으로 표시됩니다.
+
+ 대상 국가 + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + ender(1); +} + +function command_78($connect, $turn, $command) { + starter("급습", 1); + + $query = "select nation from general where user_id='$_SESSION[p_id]'"; + $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + echo " +선택된 국가에 급습을 발동합니다.
+선포, 전쟁중인 상대국에만 가능합니다.
+상대 국가를 목록에서 선택하세요.
+배경색은 현재 급습 불가능 국가는 붉은색으로 표시됩니다.
+
+ 대상 국가 + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + ender(1); +} + +function command_81($connect, $turn, $command) { + starter("국기변경", 1); + + $color = GetNationColors(); + + $query = "select color from nation where level>0"; + $result = MYDB_query($query, $connect) or Error("command_46 ".MYDB_error($connect),""); + $nationcount = MYDB_num_rows($result); + + for($i=0; $i < $nationcount; $i++) { + $nation = MYDB_fetch_array($result); + $nationcolor[$i] = $nation[color]; + } + $validCount = count($color); + //등록된 색깔 가려내기 + for($i=0; $i < count($color); $i++) { + $valid[$i] = 1; + for($j=0; $j < $nationcount; $j++) { + if($color[$i] == $nationcolor[$j]) { + $valid[$i] = 0; + $validCount--; + } + } + } + //색깔이 다 쓰였으면 그냥 모두 허용 + if($validCount <= 0) { + for($i=0; $i < count($color); $i++) { + $valid[$i] = 1; + } + } + + echo " +국기를 변경합니다. 단 1회 가능합니다.
+
+색깔 : + +"; + for($i=0; $i < sizeof($turn); $i++) { + echo " + "; + } + + echo " +
+"; + ender(1); +} +?> + diff --git a/twe_close/queue.php b/twe_close/queue.php new file mode 100644 index 00000000..05800144 --- /dev/null +++ b/twe_close/queue.php @@ -0,0 +1,41 @@ +capacity = $capacity; + $this->size = 0; + $this->head = 0; + $this->tail = 0; + } + + function getSize() { + return $this->size; + } + + function clear() { + $this->size = 0; + $this->head = 0; + $this->tail = 0; + } + + function push($value) { + if($this->size >= $this->capacity) return; + $this->arr[$this->tail] = $value; + $this->tail = ($this->tail + 1) % $this->capacity; + $this->size++; + } + + function pop() { + if($this->size <= 0) return null; + $value = $this->arr[$this->head]; + $this->head = ($this->head + 1) % $this->capacity; + $this->size--; + return $value; + } +} +?> diff --git a/twe_close/reset.php b/twe_close/reset.php new file mode 100644 index 00000000..07c170b3 --- /dev/null +++ b/twe_close/reset.php @@ -0,0 +1,81 @@ +Error!!!",""); +if(MYDB_error($connect)) Error(__LINE__.MYDB_error($connect),""); +MYDB_select_db($dbname, $connect ) or Error("MySQL-DB Select
Error!!!",""); + +delInDir("logs"); +delInDir("data/session"); +@unlink("data/connected.php"); + +// 관리자 테이블 삭제 +if(isTable($connect, "game",$dbname)) @MYDB_query("drop table game", $connect) or Error(__LINE__.MYDB_error($connect),""); +// 장수 테이블 삭제 +if(isTable($connect, "gen",$dbname)) @MYDB_query("drop table general", $connect) or Error(__LINE__.MYDB_error($connect),""); +// 국가 테이블 삭제 +if(isTable($connect, "nation",$dbname)) @MYDB_query("drop table nation", $connect) or Error(__LINE__.MYDB_error($connect),""); +// 도시 테이블 삭제 +if(isTable($connect, "city",$dbname)) @MYDB_query("drop table city", $connect) or Error(__LINE__.MYDB_error($connect),""); +// 부대 테이블 삭제 +if(isTable($connect, "troop",$dbname)) @MYDB_query("drop table troop", $connect) or Error(__LINE__.MYDB_error($connect),""); +// 토큰 테이블 삭제 +if(isTable($connect, "token",$dbname)) @MYDB_query("drop table token", $connect) or Error(__LINE__.MYDB_error($connect),""); +// 외교 테이블 삭제 +if(isTable($connect, "diplomacy",$dbname)) @MYDB_query("drop table diplomacy", $connect) or Error(__LINE__.MYDB_error($connect),""); +// 토너먼트 테이블 삭제 +if(isTable($connect, "tournament",$dbname)) @MYDB_query("drop table tournament", $connect) or Error(__LINE__.MYDB_error($connect),""); +// 거래 테이블 삭제 +if(isTable($connect, "auction",$dbname)) @MYDB_query("drop table auction", $connect) or Error("drop ".MYDB_error($connect),""); +// 통계 테이블 삭제 +if(isTable($connect, "statistic",$dbname)) @MYDB_query("drop table statistic", $connect) or Error("drop ".MYDB_error($connect),""); +// 연감 테이블 삭제 +if(isTable($connect, "history",$dbname)) @MYDB_query("drop table history", $connect) or Error("drop ".MYDB_error($connect),""); + +// 관리자 테이블 생성 +if(!isTable($connect, "game",$dbname)) @MYDB_query($game_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 장수 테이블 생성 +if(!isTable($connect, "gen",$dbname)) @MYDB_query($general_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 국가 테이블 생성 +if(!isTable($connect, "nation",$dbname)) @MYDB_query($nation_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 도시 테이블 생성 +if(!isTable($connect, "city",$dbname)) @MYDB_query($city_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 부대 테이블 생성 +if(!isTable($connect, "troop",$dbname)) @MYDB_query($troop_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 토큰 테이블 생성 +if(!isTable($connect, "token",$dbname)) @MYDB_query($token_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 외교 테이블 생성 +if(!isTable($connect, "diplomacy",$dbname)) @MYDB_query($diplomacy_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 전당 테이블 생성 +if(!isTable($connect, "hall",$dbname)) @MYDB_query($hall_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 토너먼트 테이블 생성 +if(!isTable($connect, "tournament",$dbname)) @MYDB_query($tournament_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 거래 테이블 생성 +if(!isTable($connect, "auction",$dbname)) @MYDB_query($auction_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 통계 테이블 생성 +if(!isTable($connect, "statistic",$dbname)) @MYDB_query($statistic_schema, $connect) or Error(__LINE__.MYDB_error($connect),""); +// 연감 테이블 생성 +if(!isTable($connect, "history",$dbname)) @MYDB_query($history_schema, $connect) or Error("create history ".MYDB_error($connect),""); + +// 파일로 DB 정보 저장 +$file=@fopen("d_setting/set.php","w") or Error("set.php 파일 생성 실패

디렉토리의 퍼미션을 707로 주십시요",""); +@fwrite($file,"\n") or Error("set.php 파일 생성 실패

디렉토리의 퍼미션을 707로 주십시요",""); +@fclose($file); +@mkdir("data",0707); +@chmod("data",0707); +@chmod("d_setting/set.php",0707); + +$temp=MYDB_fetch_array(MYDB_query("select count(*) from general where level = '1'", $connect)); + +MYDB_close($connect); + +echo ""; +?> diff --git a/twe_close/scenario_1.php b/twe_close/scenario_1.php new file mode 100644 index 00000000..d62efaf9 --- /dev/null +++ b/twe_close/scenario_1.php @@ -0,0 +1,795 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●184년 1월:【역사모드1】황건적의 난"; +$history[count($history)] = "●184년 1월:【황건적】전국 각지에서 황건적이 들고 일어서고 있습니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_10.php b/twe_close/scenario_10.php new file mode 100644 index 00000000..b6ba094e --- /dev/null +++ b/twe_close/scenario_10.php @@ -0,0 +1,901 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●225년 1월:【역사모드10】칠종칠금"; +$history[count($history)] = "●225년 1월:【이벤트】조조는 조비에게 후사를 부탁합니다."; +$history[count($history)] = "●225년 1월:【이벤트】손권은 국력을 비축하며 웅크리고 있습니다."; +$history[count($history)] = "●225년 1월:【이벤트】남만맹획은 유선에게 반기를 듭니다!"; +$history[count($history)] = "●225년 1월:【이벤트】제갈량은 남만을 정벌하기 위해 출정합니다!"; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_11.php b/twe_close/scenario_11.php new file mode 100644 index 00000000..47ef5b88 --- /dev/null +++ b/twe_close/scenario_11.php @@ -0,0 +1,900 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●228년 1월:【역사모드11】출사표"; +$history[count($history)] = "●228년 1월:【이벤트】손권은 국력을 비축하며 웅크리고 있습니다."; +$history[count($history)] = "●228년 1월:【이벤트】제갈량은 출사표를 내고 북벌에 나섭니다!"; +$history[count($history)] = "●228년 1월:【이벤트】조예는 이에 맞서 사마의를 보냅니다!"; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_12.php b/twe_close/scenario_12.php new file mode 100644 index 00000000..89d6ff15 --- /dev/null +++ b/twe_close/scenario_12.php @@ -0,0 +1,1184 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●191년 1월:【IF모드1】백마장군의 위세"; +$history[count($history)] = "●191년 1월:【시나리오】동탁은 장안으로 후퇴합니다!"; +$history[count($history)] = "●191년 1월:【시나리오】낙양손견과 결탁한 원술이 차지합니다!"; +$history[count($history)] = "●191년 1월:【시나리오】기주에는 조조와 의기투합한 원소가 힘을 비축합니다!"; +$history[count($history)] = "●191년 1월:【시나리오】병주에는 유비가 합세한 공손찬이 위용을 뽐냅니다!"; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_2.php b/twe_close/scenario_2.php new file mode 100644 index 00000000..32fc1329 --- /dev/null +++ b/twe_close/scenario_2.php @@ -0,0 +1,1714 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●190년 1월:【역사모드2】반동탁연합 결성"; +$history[count($history)] = "●190년 1월:【연합】조조의 주도하에 전국 각지의 세력들이 동탁 타도를 외치며 연합을 결성했습니다."; +$history[count($history)] = "●190년 1월:【연합】진류에서 조조가 반동탁연합 격문을 썼습니다."; +$history[count($history)] = "●190년 1월:【연합】남피원소가 맹주로 추대되었습니다."; +$history[count($history)] = "●190년 1월:【연합】원술이 연합에 참가했습니다."; +$history[count($history)] = "●190년 1월:【연합】장사손견이 연합에 참가했습니다."; +$history[count($history)] = "●190년 1월:【연합】하비도겸이 연합에 참가했습니다."; +$history[count($history)] = "●190년 1월:【연합】북평공손찬이 연합에 참가했습니다."; +$history[count($history)] = "●190년 1월:【연합】서량마등이 연합에 참가했습니다."; +$history[count($history)] = "●190년 1월:【연합】한복이 연합에 참가했습니다."; +$history[count($history)] = "●190년 1월:【연합】복양유대가 연합에 참가했습니다."; +$history[count($history)] = "●190년 1월:【연합】하내장양이 연합에 참가했습니다."; +$history[count($history)] = "●190년 1월:【연합】평원유비가 연합에 참가했습니다."; +$history[count($history)] = "●190년 1월:【연합】북해공융이 연합에 참가했습니다."; +$history[count($history)] = "●190년 1월:【연합】공주가 연합에 참가했습니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_20.php b/twe_close/scenario_20.php new file mode 100644 index 00000000..d23ac02d --- /dev/null +++ b/twe_close/scenario_20.php @@ -0,0 +1,749 @@ +●180년 1월:【가상모드1】영웅 난무"; +$history[count($history)] = "●180년 1월:【이벤트】당대의 대표 세력들이 등장합니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_21.php b/twe_close/scenario_21.php new file mode 100644 index 00000000..117867cb --- /dev/null +++ b/twe_close/scenario_21.php @@ -0,0 +1,777 @@ +●180년 1월:【가상모드1】영웅 집결"; +$history[count($history)] = "●180년 1월:【이벤트】당대의 대표 세력들이 등장합니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_22.php b/twe_close/scenario_22.php new file mode 100644 index 00000000..0243103b --- /dev/null +++ b/twe_close/scenario_22.php @@ -0,0 +1,197 @@ +ㅁ< ♡"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "사푸", 59, 33, 63,"안전","상재", "이게 다 사푸때문이다."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "살수묵랑", 69, 85, 13,"정복","무쌍", "남자라믄 고저 근성 열혈이라요!!!"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "성야", 77, 62, 19,"출세","집중", "훼야 훼야"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "소마", 73, 22, 69,"대의","신중", "오늘 항가해요 (.. *)"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "소용녀", 64, 22, 84,"대의","신중", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "소지로", 70, 71, 20,"의협","무쌍", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "수", 41, 16, 68,"안전","견고", "흠... 그럼 어쩔수 없이 흉노로 가야겠군요..."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "슈이쯔", 75, 76, 18,"패권","격노", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "스노곰", 70, 75, 10,"안전","궁병", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "시그리", 81, 63, 14,"왕좌","징병", "어이쿠야 월척이다. 보람 있구나~"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "심심해", 60, 85, 11,"의협","무쌍", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "실바누스", 83, 61, 15,"대의","신산", "살려주셍쇼ㅠ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "아시루스", 56, 27, 75,"패권","집중", "왼손은 거들뿐..."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "얀웬리", 66, 17, 82,"재간","반계", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "여휘", 67, 20, 70,"재간","공성", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "에드워드", 68, 70, 12,"안전","인덕", "훼드훼드에염"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "에레니아", 70, 19, 63,"정복","척사", "에레냐에염 ㅇㅅㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount,"온몸이근육", 58, 81, 10,"패권","징병", "불끈!"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "유기체", 70, 21, 75,"출세","환술", "5분 후에 리셋합니다. ㄳ ㅇ_ㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "윤석민", 73, 20, 66,"패권","집중", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "율", 68, 10, 78,"패권","반계", "율!"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount,"이노베이션", 83, 65, 14,"패권","돌격", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "임사영", 75, 75, 18,"출세","필살", "평민왔셈 ㅇㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "자소유", 77, 70, 19,"대의","기병", "ㅇ_ㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "장군보", 67, 82, 21,"의협","견고", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "장수명", 66, 62, 18,"유지","견고", "장수명에 장수명을 입력한 장수명입니다."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "장수왕", 77, 34, 43,"왕좌","위압", "장수왕섭 다음주 오픈해요. 기대해주셍."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "장임", 50, 70, 75,"출세","저격", "훼력짱임."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "장자", 66, 27, 80,"할거","신산", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "제로스", 71, 79, 24,"패권","필살", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "제이토", 76, 72, 14,"정복","보병", "훼이토 ㅇㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "조용", 58, 62, 45,"할거","궁병", "조용..."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "중달", 70, 73, 15,"대의","귀모", "내가 바로 그 훼달임."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "지장", 58, 84, 21,"정복","무쌍", "췌퉤훼섭 모두 가리지 않는 훼력 ㅇㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "지천영", 65, 84, 11,"왕좌","위압", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "카이사르", 74, 75, 16,"정복","돌격", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "카이토", 63, 15, 78,"유지","집중", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "캐양민", 67, 18, 71,"패권","반계", "캐양민임...ㅠㅠ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "쿄타로", 75, 21, 66,"정복","신산", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount,"크리스티앙", 60, 83, 16,"유지","견고", "끌턍 꿀사턍 꾸린스탈 ㅇㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "통키", 79, 68, 14,"대의","통찰", "불꽃슛~"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "철혈대신", 72, 14, 85,"안전","견고", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount,"초절정미녀", 68, 19, 81,"출세","환술", "<- 초미녀임 ㅇㅇ;"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "페르난도", 68, 69, 21,"대의","징병", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "펠퍼틴", 58, 29, 61,"안전","의술", "짝퉁 화타가 바로 나!"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "하누리", 55, 22, 85,"패권","귀병", "하루 종일 누르리!"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "하리", 80, 63, 12,"왕좌","위압", "열전 쓰고 있는중..."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "하오마루", 65, 85, 12,"정복","위압", "사무라이 쇼다운 막판왕 깨고 왔음."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount,"하후연묘재", 65, 15, 67,"유지","반계", "묘섭 베타서버 운영중입니다. 많이 찾아주세욤~"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "환선", 60, 76, 24,"패권","돌격", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "황월영", 72, 10, 68,"대의","인덕", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "허기", 64, 12, 77,"출세","거상", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "형왔다", 64, 72, 27,"의협","기병", "형왔다~"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "헹이", 75, 16, 73,"의협","환술", "다 헹궈버리겠다~ ㅇ<-<"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "효주곰", 54, 32, 77,"유지","경작", "순수한 효주곰이에여 >_<"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "후랴", 56, 79, 20,"의협","기병", "후랴 후랴~"); $gencount++; + +//////////////////////////장수 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●179년 1월:【가상모드2】훼신 집결"; +$history[count($history)] = "●179년 1월:【이벤트】삼모전 역대 훼신들이 등장합니다."; +pushHistory($connect, $history); + +echo ""; + +function RegGeneral2($connect,$turnterm,$gencount,$name,$leader,$power,$intel,$personal,$special,$msg="") { + $name = "ⓝ".$name; + $genid = "gen{$gencount}"; + $turntime = getRandTurn($turnterm); + $personal = CharCall($personal); + $special = SpecCall($special); + if($special >= 40) { $special2 = $special; $special = 0; } + else { $special2 = 0; } + $city = rand()%61 + 1; + $age = 15; + $specage = $age; + $specage2 = $age; + $killturn = 9999; + $experience = $age * 100; + $dedication = $age * 100; + $npc = 2; + $npcmatch = rand()%150 + 1; + $picture = 'default.jpg'; + $pw = md5("18071807"); + //장수 + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation,city, + leader,power,intel,experience,dedication, + level,gold,rice,crew,crewtype,train,atmos, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit + ) values ( + '$gencount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','0', + '$city','$leader','$power','$intel','$experience','$dedication', + '0','1000','1000','0','0','0','0', + '0','0','0','$turntime','$killturn','$age','1', + '$personal','$special','$specage','$special2','$specage2','$msg', + '0' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); + //방랑군 + if(rand()%20 == 0) { + @MYDB_query(" + insert into nation ( + name,color,gold,rice,bill,rate,scout,war,tricklimit,surlimit, + scoutmsg,level + ) values ( + '$name','330000','1000','1000','100','15','0','0','24','72', + '훼신NPC국','0' + )", $connect + ) or Error(__LINE__.MYDB_error($connect),""); + + $query = "select nation from nation where name='$name'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $nation = MYDB_fetch_array($result); + // 군주로 // 현 국가 소속으로 + $query = "update general set belong=1,level=12,nation='$nation[nation]' where user_id='$genid'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + //외교 추가 + $query = "select nation from nation where nation!='$nation[nation]'"; + $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + $count = MYDB_num_rows($result); + for($i=0; $i < $count; $i++) { + $you = MYDB_fetch_array($result); + @MYDB_query(" + insert into diplomacy ( + me, you, state, term + ) values ( + '$nation[nation]', '$you[nation]', '2', '0' + )", $connect + ) or Error(__LINE__.MYDB_error($connect),""); + @MYDB_query(" + insert into diplomacy ( + me, you, state, term + ) values ( + '$you[nation]', '$nation[nation]', '2', '0' + )", $connect + ) or Error(__LINE__.MYDB_error($connect),""); + } + } +} + +?> diff --git a/twe_close/scenario_23.php b/twe_close/scenario_23.php new file mode 100644 index 00000000..b4804c15 --- /dev/null +++ b/twe_close/scenario_23.php @@ -0,0 +1,753 @@ +●180년 1월:【가상모드3】영웅 시대"; +$history[count($history)] = "●180년 1월:【이벤트】출연 가능한 모든 장수들이 재야로 등장하는 가상 시나리오."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_24.php b/twe_close/scenario_24.php new file mode 100644 index 00000000..5053015c --- /dev/null +++ b/twe_close/scenario_24.php @@ -0,0 +1,328 @@ +ㅁ< ♡"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "사푸", 59, 33, 63,"안전","상재", "이게 다 사푸때문이다."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "살수묵랑", 69, 85, 13,"정복","무쌍", "남자라믄 고저 근성 열혈이라요!!!"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "성야", 77, 62, 19,"출세","집중", "훼야 훼야"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "소마", 73, 22, 69,"대의","신중", "오늘 항가해요 (.. *)"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "소용녀", 64, 22, 84,"대의","신중", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "소지로", 70, 71, 20,"의협","무쌍", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "수", 41, 16, 68,"안전","견고", "흠... 그럼 어쩔수 없이 흉노로 가야겠군요..."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "슈이쯔", 75, 76, 18,"패권","격노", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "스노곰", 70, 75, 10,"안전","궁병", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "시그리", 81, 63, 14,"왕좌","징병", "어이쿠야 월척이다. 보람 있구나~"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "심심해", 60, 85, 11,"의협","무쌍", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "실바누스", 83, 61, 15,"대의","신산", "살려주셍쇼ㅠ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "아시루스", 56, 27, 75,"패권","집중", "왼손은 거들뿐..."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "얀웬리", 66, 17, 82,"재간","반계", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "여휘", 67, 20, 70,"재간","공성", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "에드워드", 68, 70, 12,"안전","인덕", "훼드훼드에염"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "에레니아", 70, 19, 63,"정복","척사", "에레냐에염 ㅇㅅㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount,"온몸이근육", 58, 81, 10,"패권","징병", "불끈!"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "유기체", 70, 21, 75,"출세","환술", "5분 후에 리셋합니다. ㄳ ㅇ_ㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "윤석민", 73, 20, 66,"패권","집중", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "율", 68, 10, 78,"패권","반계", "율!"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount,"이노베이션", 83, 65, 14,"패권","돌격", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "임사영", 75, 75, 18,"출세","필살", "평민왔셈 ㅇㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "자소유", 77, 70, 19,"대의","기병", "ㅇ_ㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "장군보", 67, 82, 21,"의협","견고", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "장수명", 66, 62, 18,"유지","견고", "장수명에 장수명을 입력한 장수명입니다."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "장수왕", 77, 34, 43,"왕좌","위압", "장수왕섭 다음주 오픈해요. 기대해주셍."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "장임", 50, 70, 75,"출세","저격", "훼력짱임."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "장자", 66, 27, 80,"할거","신산", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "제로스", 71, 79, 24,"패권","필살", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "제이토", 76, 72, 14,"정복","보병", "훼이토 ㅇㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "조용", 58, 62, 45,"할거","궁병", "조용..."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "중달", 70, 73, 15,"대의","귀모", "내가 바로 그 훼달임."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "지장", 58, 84, 21,"정복","무쌍", "췌퉤훼섭 모두 가리지 않는 훼력 ㅇㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "지천영", 65, 84, 11,"왕좌","위압", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "카이사르", 74, 75, 16,"정복","돌격", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "카이토", 63, 15, 78,"유지","집중", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "캐양민", 67, 18, 71,"패권","반계", "캐양민임...ㅠㅠ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "쿄타로", 75, 21, 66,"정복","신산", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount,"크리스티앙", 60, 83, 16,"유지","견고", "끌턍 꿀사턍 꾸린스탈 ㅇㅇ"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "통키", 79, 68, 14,"대의","통찰", "불꽃슛~"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "철혈대신", 72, 14, 85,"안전","견고", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount,"초절정미녀", 68, 19, 81,"출세","환술", "<- 초미녀임 ㅇㅇ;"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "페르난도", 68, 69, 21,"대의","징병", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "펠퍼틴", 58, 29, 61,"안전","의술", "짝퉁 화타가 바로 나!"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "하누리", 55, 22, 85,"패권","귀병", "하루 종일 누르리!"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "하리", 80, 63, 12,"왕좌","위압", "열전 쓰고 있는중..."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "하오마루", 65, 85, 12,"정복","위압", "사무라이 쇼다운 막판왕 깨고 왔음."); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount,"하후연묘재", 65, 15, 67,"유지","반계", "묘섭 베타서버 운영중입니다. 많이 찾아주세욤~"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "환선", 60, 76, 24,"패권","돌격", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "황월영", 72, 10, 68,"대의","인덕", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "허기", 64, 12, 77,"출세","거상", ""); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "형왔다", 64, 72, 27,"의협","기병", "형왔다~"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "헹이", 75, 16, 73,"의협","환술", "다 헹궈버리겠다~ ㅇ<-<"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "효주곰", 54, 32, 77,"유지","경작", "순수한 효주곰이에여 >_<"); $gencount++; +RegGeneral2($connect,$admin[turnterm],$gencount, "후랴", 56, 79, 20,"의협","기병", "후랴 후랴~"); $gencount++; + +//군주임명 +$no = rand() % 79 + 2; +$query = "update general set level=12 where no='$no'"; +MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); + +RegGeneral3($connect,$admin[turnterm],$gencount, 2,12,"오랑캐대왕", 95, 95, 95,"패권","돌격", "오랑캐들이여 일어서라!"); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount, 2,11, "오환대왕", 85, 55, 85,"패권","환술", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount, 2,10, "저대왕", 75, 75, 45,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount, 2, 9, "흉노대왕", 65, 50, 50,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount, 2, 8, "남만대왕", 45, 15, 45,"패권","환술", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount, 2, 7, "산월대왕", 45, 15, 45,"패권","환술", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount, 2, 6, "왜대왕", 45, 15, 45,"패권","환술", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount, 2, 5, "강대왕", 45, 45, 15,"패권","돌격", ""); $gencount++; + +RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1, "북적대왕", 45, 45, 15,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1, "서융대왕", 45, 15, 45,"패권","돌격", ""); $gencount++; +RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1, "동이대왕", 45, 45, 15,"패권","돌격", ""); $gencount++; + +for($k=0; $k <= 99; $k++) { + if(rand()%2) { $l = rand()%10 + 10; $p = rand()%10 + 15; $i = rand()%10 + 10; } + else { $l = rand()%10 + 10; $p = rand()%10 + 10; $i = rand()%10 + 15; } + RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1,"북적장수{$k}", $l, $p, $i,"패권","", ""); $gencount++; +} + +for($k=0; $k <= 99; $k++) { + if(rand()%2) { $l = rand()%10 + 10; $p = rand()%10 + 15; $i = rand()%10 + 10; } + else { $l = rand()%10 + 10; $p = rand()%10 + 10; $i = rand()%10 + 15; } + RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1,"서융장수{$k}", $l, $p, $i,"패권","", ""); $gencount++; +} + +for($k=0; $k <= 99; $k++) { + if(rand()%2) { $l = rand()%10 + 10; $p = rand()%10 + 15; $i = rand()%10 + 10; } + else { $l = rand()%10 + 10; $p = rand()%10 + 10; $i = rand()%10 + 15; } + RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1,"동이장수{$k}", $l, $p, $i,"패권","", ""); $gencount++; +} + +for($k=0; $k <= 99; $k++) { + if(rand()%2) { $l = rand()%10 + 10; $p = rand()%10 + 15; $i = rand()%10 + 10; } + else { $l = rand()%10 + 10; $p = rand()%10 + 10; $i = rand()%10 + 15; } + RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1,"강장수{$k}", $l, $p, $i,"패권","", ""); $gencount++; +} + +for($k=0; $k <= 99; $k++) { + if(rand()%2) { $l = rand()%10 + 10; $p = rand()%10 + 15; $i = rand()%10 + 10; } + else { $l = rand()%10 + 10; $p = rand()%10 + 10; $i = rand()%10 + 15; } + RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1,"저장수{$k}", $l, $p, $i,"패권","", ""); $gencount++; +} + +for($k=0; $k <= 99; $k++) { + if(rand()%2) { $l = rand()%10 + 10; $p = rand()%10 + 15; $i = rand()%10 + 10; } + else { $l = rand()%10 + 10; $p = rand()%10 + 10; $i = rand()%10 + 15; } + RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1,"흉노장수{$k}", $l, $p, $i,"패권","", ""); $gencount++; +} + +for($k=0; $k <= 99; $k++) { + if(rand()%2) { $l = rand()%10 + 10; $p = rand()%10 + 15; $i = rand()%10 + 10; } + else { $l = rand()%10 + 10; $p = rand()%10 + 10; $i = rand()%10 + 15; } + RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1,"오환장수{$k}", $l, $p, $i,"패권","", ""); $gencount++; +} + +for($k=0; $k <= 99; $k++) { + if(rand()%2) { $l = rand()%10 + 10; $p = rand()%10 + 15; $i = rand()%10 + 10; } + else { $l = rand()%10 + 10; $p = rand()%10 + 10; $i = rand()%10 + 15; } + RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1,"남만장수{$k}", $l, $p, $i,"패권","", ""); $gencount++; +} + +for($k=0; $k <= 99; $k++) { + if(rand()%2) { $l = rand()%10 + 10; $p = rand()%10 + 15; $i = rand()%10 + 10; } + else { $l = rand()%10 + 10; $p = rand()%10 + 10; $i = rand()%10 + 15; } + RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1,"산월장수{$k}", $l, $p, $i,"패권","", ""); $gencount++; +} + +for($k=0; $k <= 99; $k++) { + if(rand()%2) { $l = rand()%10 + 10; $p = rand()%10 + 15; $i = rand()%10 + 10; } + else { $l = rand()%10 + 10; $p = rand()%10 + 10; $i = rand()%10 + 15; } + RegGeneral3($connect,$admin[turnterm],$gencount, 2, 1,"왜장수{$k}", $l, $p, $i,"패권","", ""); $gencount++; +} + +//////////////////////////장수 끝/////////////////////////////////////////////// + +//////////////////////////도시 소속///////////////////////////////////////////// +RegCity($connect, 1, "업", 1); +RegCity($connect, 2, "양양", 1); + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●180년 1월:【가상모드4】결사항전"; +$history[count($history)] = "●180년 1월:【이벤트】오랑캐에 맞서 버텨내야 합니다!"; +pushHistory($connect, $history); + +echo ""; + +function RegGeneral2($connect,$turnterm,$gencount,$name,$leader,$power,$intel,$personal,$special,$msg="") { + $name = "ⓝ".$name; + $genid = "gen{$gencount}"; + $turntime = getRandTurn($turnterm); + $personal = CharCall($personal); + $special = SpecCall($special); + if($special >= 40) { $special2 = $special; $special = 0; } + else { $special2 = 0; } + $city = rand()%61 + 1; + $age = 15; + $specage = $age; + $specage2 = $age; + $killturn = 9999; + $experience = $age * 100; + $dedication = $age * 100; + $npc = 2; + $npcmatch = rand()%150 + 1; + $picture = 'default.jpg'; + $pw = md5("18071807"); + //장수 + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation,level,city, + leader,power,intel,experience,dedication, + gold,rice,crew,crewtype,train,atmos, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit + ) values ( + '$gencount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','1','1','$city', + '$leader','$power','$intel','$experience','$dedication', + '2000','2000','0','0','0','0', + '0','0','0','$turntime','$killturn','$age','1', + '$personal','$special','$specage','$special2','$specage2','$msg', + '0' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); +} + +function RegGeneral3($connect,$turnterm,$gencount,$nation,$level,$name,$leader,$power,$intel,$personal,$special,$msg="") { + $name = "ⓝ".$name; + $genid = "npc{$gencount}"; + $turntime = getRandTurn($turnterm); + $personal = CharCall($personal); + $special = SpecCall($special); + if($special >= 40) { $special2 = $special; $special = 0; } + else { $special2 = 0; } + $city = rand()%61 + 1; + $age = 15; + $specage = $age+1; + $specage2 = $age+1; + $killturn = 9999; + $experience = $age * 100; + $dedication = $age * 100; + $npc = 2; + $npcmatch = 999; + $picture = 'default.jpg'; + $pw = md5("18071807"); + //장수 + @MYDB_query(" + insert into general ( + npcid,npc,npc_org,npcmatch,user_id,password,name,picture,nation,city, + leader,power,intel,experience,dedication, + level,gold,rice,crew,crewtype,train,atmos, + weap,book,horse,turntime,killturn,age,belong,personal,special,specage,special2,specage2,npcmsg, + makelimit + ) values ( + '$gencount','$npc','$npc','$npcmatch','$genid','$pw','$name','$picture','$nation','$city', + '$leader','$power','$intel','$experience','$dedication', + '$level','2000','2000','0','0','0','0', + '0','0','0','$turntime','$killturn','$age','1', + '$personal','$special','$specage','$special2','$specage2','$msg', + '0' + )", + $connect + ) or Error(__LINE__.MYDB_error($connect),""); +} + +?> diff --git a/twe_close/scenario_25.php b/twe_close/scenario_25.php new file mode 100644 index 00000000..88ac73e7 --- /dev/null +++ b/twe_close/scenario_25.php @@ -0,0 +1,319 @@ +●180년 1월:【가상모드5】영웅독존"; +$history[count($history)] = "●180년 1월:【이벤트】진정한 영웅들만이 재야로 등장하는 가상 시나리오."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_26.php b/twe_close/scenario_26.php new file mode 100644 index 00000000..271f7876 --- /dev/null +++ b/twe_close/scenario_26.php @@ -0,0 +1,316 @@ +●180년 1월:【가상모드6】무풍지대"; +$history[count($history)] = "●180년 1월:【이벤트】영웅은 없다! 오직 내가 영웅일 뿐이다!"; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_27.php b/twe_close/scenario_27.php new file mode 100644 index 00000000..4e66d967 --- /dev/null +++ b/twe_close/scenario_27.php @@ -0,0 +1,594 @@ +●180년 1월:【가상모드7】가요대잔치"; +$history[count($history)] = "●180년 1월:【이벤트】올해의 가요대상은!"; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_28.php b/twe_close/scenario_28.php new file mode 100644 index 00000000..9ceca2d3 --- /dev/null +++ b/twe_close/scenario_28.php @@ -0,0 +1,423 @@ +●180년 1월:【가상모드8】확산성 밀리언 아서"; +$history[count($history)] = "●180년 1월:【이벤트】삼모전에 확밀아가 빙의됩니다!"; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_3.php b/twe_close/scenario_3.php new file mode 100644 index 00000000..a8c77239 --- /dev/null +++ b/twe_close/scenario_3.php @@ -0,0 +1,1755 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●194년 1월:【역사모드3】군웅할거"; +$history[count($history)] = "●194년 1월:【이벤트】연주조조가 부친의 복수를 빌미로 서주 토벌에 나섭니다."; +$history[count($history)] = "●194년 1월:【이벤트】평원유비가 원군에 나섭니다."; +$history[count($history)] = "●194년 1월:【이벤트】여포가 진궁의 계책으로 진류를 확보했습니다."; +$history[count($history)] = "●194년 1월:【이벤트】조조가 근거지 재탈환을 위해 급히 물러납니다."; +$history[count($history)] = "●194년 1월:【이벤트】유비는 도겸의 권유로 소패에 머뭅니다."; +$history[count($history)] = "●194년 1월:【이벤트】한편 하북에서 원소와 공손찬이 자웅을 겨루려 합니다."; +$history[count($history)] = "●194년 1월:【이벤트】강동에서는 손책이 웅크리고 있습니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_4.php b/twe_close/scenario_4.php new file mode 100644 index 00000000..8658a05c --- /dev/null +++ b/twe_close/scenario_4.php @@ -0,0 +1,1292 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●196년 1월:【역사모드4】황제는 허도로"; +$history[count($history)] = "●196년 1월:【이벤트】황제가 이각에게서 탈출하여 낙양으로 향합니다."; +$history[count($history)] = "●196년 1월:【이벤트】황제는 폐허가 된 낙양의 수비를 위해 몇 군벌들에게 서신을 띄웁니다.."; +$history[count($history)] = "●196년 1월:【이벤트】기주원소는 세력 다지기에 바쁩니다."; +$history[count($history)] = "●196년 1월:【이벤트】연주조조가 병력을 출동하여 낙양을 점거합니다."; +$history[count($history)] = "●196년 1월:【이벤트】조조는 황제를 강압적으로 허창으로 이주시킵니다."; + +$history[count($history)] = "●196년 1월:【이벤트】여포는 패주하여 유비에 몸을 맡깁니다."; +$history[count($history)] = "●196년 1월:【이벤트】유비는 여포에게 소패를 내어줍니다."; +$history[count($history)] = "●196년 1월:【이벤트】동오손책은 소패왕의 이름을 떨칩니다."; +$history[count($history)] = "●196년 1월:【이벤트】회남원술은 황제가 될 기회를 노리고 있습니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_5.php b/twe_close/scenario_5.php new file mode 100644 index 00000000..450bfc4c --- /dev/null +++ b/twe_close/scenario_5.php @@ -0,0 +1,998 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●200년 1월:【역사모드5】관도대전"; +$history[count($history)] = "●200년 1월:【이벤트】조조에게 패한 유비는 원소에게 의지하기 위해 방랑하고 있습니다."; +$history[count($history)] = "●200년 1월:【이벤트】관우는 조조에게 투항합니다."; +$history[count($history)] = "●200년 1월:【이벤트】원소와 조조는 사활을 건 한판 승부를 준비하고 있습니다."; +$history[count($history)] = "●200년 1월:【이벤트】관도에는 전운이 감돌고 있습니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_6.php b/twe_close/scenario_6.php new file mode 100644 index 00000000..a4d83d3f --- /dev/null +++ b/twe_close/scenario_6.php @@ -0,0 +1,1044 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●202년 1월:【역사모드6】원가의 분열"; +$history[count($history)] = "●202년 1월:【이벤트】원소는 후계자로 셋째 아들 원상을 선택합니다."; +$history[count($history)] = "●202년 1월:【이벤트】맏아들 원담은 이에 반발하여 조조와 결탁하여 할거를 노립니다."; +$history[count($history)] = "●202년 1월:【이벤트】조조는 원담을 이용하여 원소의 잔당을 물리치기 위한 진군을 시작합니다."; +$history[count($history)] = "●202년 1월:【이벤트】남쪽으로 피신한 유비는 유표에게 의지해 신야에 머무릅니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_7.php b/twe_close/scenario_7.php new file mode 100644 index 00000000..c56de9aa --- /dev/null +++ b/twe_close/scenario_7.php @@ -0,0 +1,1096 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●207년 1월:【역사모드7】적벽대전"; +$history[count($history)] = "●207년 1월:【이벤트】하후돈을 패주시킨 서서는 계책에 빠져 조조에게 귀순합니다."; +$history[count($history)] = "●207년 1월:【이벤트】서서의 천거로 유비는 제갈량을 삼고초려의 예로 영입합니다."; +$history[count($history)] = "●207년 1월:【이벤트】원씨 가문을 무너뜨린 조조는 강남 정벌을 위해 대군을 이끌고 남하합니다."; +$history[count($history)] = "●207년 1월:【이벤트】손권은 유비와 불가침을 맺고 조조의 대군에 맞서기로 결심합니다."; +$history[count($history)] = "●207년 1월:【이벤트】대군을 몰고 온 조조, 이에 맞서는 손권과 유비. 적벽은 피로 물들려 하고 있습니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_8.php b/twe_close/scenario_8.php new file mode 100644 index 00000000..b02d6e0d --- /dev/null +++ b/twe_close/scenario_8.php @@ -0,0 +1,948 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●213년 1월:【역사모드8】익주 공방전"; +$history[count($history)] = "●213년 1월:【이벤트】마등을 섬멸시킨 조조는 익주로 눈을 돌립니다."; +$history[count($history)] = "●213년 1월:【이벤트】도망친 마초는 한중장로에게 의지합니다."; +$history[count($history)] = "●213년 1월:【이벤트】유장은 장로에 맞서기 위해 유비에게 도움을 청합니다."; +$history[count($history)] = "●213년 1월:【이벤트】일이 여의치 않은 유비는 등을 돌려 익주를 차지하려합니다."; +$history[count($history)] = "●213년 1월:【이벤트】형주에 일었던 피바람은 익주에서 다시 불어오고 있습니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/scenario_9.php b/twe_close/scenario_9.php new file mode 100644 index 00000000..5e49bddc --- /dev/null +++ b/twe_close/scenario_9.php @@ -0,0 +1,872 @@ +0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$query = "update city set pop=pop2*0.7,agri=agri2*0.7,comm=comm2*0.7,secu=secu2*0.7,rate=80 where nation=0"; +MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +//전방설정 +$query = "select nation from nation"; +$result = MYDB_query($query, $connect) or Error("scenario_194A ".MYDB_error($connect),""); +$count = MYDB_num_rows($result); +for($i=0; $i < $count; $i++) { + $nation = MYDB_fetch_array($result); + SetNationFront($connect, $nation[nation]); +} + +//////////////////////////도시 끝/////////////////////////////////////////////// + +//////////////////////////이벤트/////////////////////////////////////////////// +$history[count($history)] = "●219년 1월:【역사모드9】삼국정립"; +$history[count($history)] = "●219년 1월:【이벤트】한중을 빼앗긴 조조는 허창으로 퇴각합니다."; +$history[count($history)] = "●219년 1월:【이벤트】동오손권은 형주를 되찾기 위해 호시탐탐 노리고 있습니다."; +$history[count($history)] = "●219년 1월:【이벤트】한중왕에 오른 유비군의 기세는 하늘을 찌를 듯 합니다!"; +$history[count($history)] = "●219년 1월:【이벤트】위, 오, 촉의 본격적인 삼국시대가 되었습니다."; +pushHistory($connect, $history); + +echo ""; + +?> diff --git a/twe_close/schema.php b/twe_close/schema.php new file mode 100644 index 00000000..9479dc2a --- /dev/null +++ b/twe_close/schema.php @@ -0,0 +1,621 @@ + + diff --git a/twe_close/schema.sql.orig b/twe_close/schema.sql.orig new file mode 100644 index 00000000..1654fc77 --- /dev/null +++ b/twe_close/schema.sql.orig @@ -0,0 +1,621 @@ + + diff --git a/twe_close/select_npc.php b/twe_close/select_npc.php new file mode 100644 index 00000000..4935099e --- /dev/null +++ b/twe_close/select_npc.php @@ -0,0 +1,149 @@ +history.go(-1);"; + exit(1); +} + +$connect = dbConn(); +?> + + + +NPC선택 + + + + + + + + +
장 수 선 택
+ + +
+alert('잘못된 접근입니다!');"; + echo ""; + exit(); +} + +$query = "select no from general where npc<2"; +$result = MYDB_query($query, $connect) or Error("join ".MYDB_error($connect),""); +$gencount = MYDB_num_rows($result); + +if($gencount >= $admin[maxgeneral]) { + echo ""; + echo ""; + exit(); +} +?> + + + +"; + } else { + echo " + "; + } +} +?> +
임관 권유 메세지
$nation[name]-
$nation[name]$nation[scoutmsg]
+ +
+ + + + + + += 3) { +?> + + + + + + + + + + + + + + +
장수 선택
장수/1001.jpg border=0 name=picture width=64 height=64>
+ +
+ 컴퓨터가 조작중이던 NPC장수를 조종하게 됩니다.
+ 80시간동안 휴식을 취하면 다시 컴퓨터가 조종하게 되고 장수의 소유권을 잃습니다. +
+
+ + + +
+ + + diff --git a/twe_close/select_npc_post.php b/twe_close/select_npc_post.php new file mode 100644 index 00000000..9de8fccc --- /dev/null +++ b/twe_close/select_npc_post.php @@ -0,0 +1,127 @@ +history.go(-1);"; + exit(1); +} + +$date = date('Y-m-d H:i:s'); +//등록정보 +$query = "update MEMBER set reg_num=reg_num+1,reg_date='$date' where no='$member[no]'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + +$connect = dbConn(); + +$npcid = "gen{$face}"; +$query = "select no,npc,level from general where user_id='$npcid'"; +$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$npc = MYDB_fetch_array($result); + +########## 동일 정보 존재여부 확인. ########## + +$query = "select year,month,maxgeneral,turnterm,genius,npcmode from game where no='1'"; +$result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); +$admin = MYDB_fetch_array($result); + +$query = "select no from general where npc<2"; +$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +$gencount = MYDB_num_rows($result); + +$query = "select no from general where user_id='$member[id]'"; +$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); +$id_num = MYDB_num_rows($result); + +if($admin[npcmode] != 1) { + echo ""; + echo ""; + exit(); +} elseif($id_num) { + echo(""); + exit; +} elseif($admin[maxgeneral] <= $gencount) { + echo(""); + exit; +} elseif($npc[npc] < 2) { + echo(""); + exit; +} elseif($npc[npc] != 2) { + echo(""); + exit; +/* +} elseif($npc[level] >= 5) { + echo(""); + exit; +*/ +} else { + //특회 + $userlevel = $member[grade]; + + $query = " + update general set + user_id='{$id}', + password='{$pwTemp}', + name2='{$member[name]}', + conmsg='', + npc=1, + killturn=6, + skin=1, + mode=2, + map=0, + userlevel='{$userlevel}' + where user_id='{$npcid}' + "; + MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + + $query = "select no,name,history from general where user_id='$id'"; + $result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); + $me = MYDB_fetch_array($result); + + $log[0] = "●{$admin[month]}월:$me[name]의 육체에 $member[name](이)가 빙의됩니다!"; + $me = addHistory($connect, $me, "●$admin[year]년 $admin[month]월:$me[name]의 육체에 $member[name](이)가 빙의되다."); + pushGenLog($me, $mylog); + pushAllLog($log); + + $adminLog[0] = "가입 : {$me[name]} // {$id} // ".getenv("REMOTE_ADDR"); + pushAdminLog($connect, $adminLog); + + MYDB_close($connect); + + echo(""); + echo(""); + echo(""); +} + +?> diff --git a/twe_close/selection.php b/twe_close/selection.php new file mode 100644 index 00000000..32db0e7c --- /dev/null +++ b/twe_close/selection.php @@ -0,0 +1,35 @@ +history.go(-1);"; + exit(1); +} + +if($btn == "장수생성") { + $site = "join.php"; +} elseif($btn == "장수선택") { + $site = "select_npc.php"; +} +?> + +
method=post> + + +
+a + + diff --git a/twe_close/start.php b/twe_close/start.php new file mode 100644 index 00000000..54dd5924 --- /dev/null +++ b/twe_close/start.php @@ -0,0 +1,3 @@ + + + diff --git a/twe_close/stylesheet.php b/twe_close/stylesheet.php new file mode 100644 index 00000000..96a11ee5 --- /dev/null +++ b/twe_close/stylesheet.php @@ -0,0 +1,86 @@ + + +body { color:; background-color:; border-width:1; border-color:gray; } +table { font-family:'맑은 고딕'; line-height:110%; } +font { font-family:'맑은 고딕'; line-height:110%; } +input { font-family:'맑은 고딕'; line-height:110%; height:20px } +select { font-family:'굴림'; line-height:100%; } +#bg0 { } +#bg1 { } +#bg2 { } diff --git a/twe_close/templates/.htaccess b/twe_close/templates/.htaccess new file mode 100644 index 00000000..698196ae --- /dev/null +++ b/twe_close/templates/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/twe_close/turn.php b/twe_close/turn.php new file mode 100644 index 00000000..8b475519 --- /dev/null +++ b/twe_close/turn.php @@ -0,0 +1,90 @@ += 2) { echo ""; exit(); } + +switch($type) { +case 0: +/* + for($i=0; $i < $sel; $i++) { + $k = $i + $sel; + $query = "update general set "; + while(1) { + $query .= "turn{$k}=turn{$i}"; + $k += $sel; + if($k >= 24) break; + $query .= ","; + } + $query .= " where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + } +*/ + $query = "update general set "; + for($i=0; $i < $sel; $i++) { + $k = $i + $sel; + while(1) { + $query .= "turn{$k}=turn{$i}"; + $k += $sel; + if($i < $sel-1 || $k < 24) { $query .= ","; } + if($k >= 24) break; + } + } + $query .= " where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; +case 1: + $i = 23 - $sel; + $k = 23; + $query = "update general set "; + while(1) { + $query .= "turn{$k}=turn{$i},"; + $i--; $k--; + if($i < 0) break; + } + while(1) { + $query .= "turn{$k}=0"; + $k--; + if($k < 0) break; + $query .= ","; + } + $query .= " where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; +case 2: + $i = 0; + $k = $sel; + $query = "update general set "; + while(1) { + $query .= "turn{$i}=turn{$k},"; + $i++; $k++; + if($k >= 24) break; + } + while(1) { + $query .= "turn{$i}=0"; + $i++; + if($i >= 24) break; + $query .= ","; + } + $query .= " where user_id='$_SESSION[p_id]'"; + MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); + break; +} + +echo ""; + +?> + diff --git a/twe_close/turn_pop_core.php b/twe_close/turn_pop_core.php new file mode 100644 index 00000000..d40de774 --- /dev/null +++ b/twe_close/turn_pop_core.php @@ -0,0 +1,17 @@ +location.replace('b_chiefcenter.php');"; + +?> + diff --git a/twe_close/turn_push_core.php b/twe_close/turn_push_core.php new file mode 100644 index 00000000..b680cd17 --- /dev/null +++ b/twe_close/turn_push_core.php @@ -0,0 +1,17 @@ +location.replace('b_chiefcenter.php');"; + +?> +