From a3791fa6fd91c4980137c0203e3cc400bad94b48 Mon Sep 17 00:00:00 2001 From: hide_d Date: Sun, 4 Mar 2018 00:56:04 +0900 Subject: [PATCH] =?UTF-8?q?func.php,=20func=5Frpcoess.php=EB=A5=BC=20?= =?UTF-8?q?=EC=9A=A9=EB=8F=84=EC=97=90=20=EB=94=B0=EB=9D=BC=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- twe/func.php | 448 +----- twe/func_command.php | 447 ++++++ twe/func_process.php | 2945 ------------------------------------ twe/func_process_chief.php | 2300 ++++++++++++++++++++++++++++ twe/func_process_trick.php | 655 ++++++++ 5 files changed, 3404 insertions(+), 3391 deletions(-) create mode 100644 twe/func_process_chief.php create mode 100644 twe/func_process_trick.php diff --git a/twe/func.php b/twe/func.php index f84e4cb6..8f712be4 100644 --- a/twe/func.php +++ b/twe/func.php @@ -4,6 +4,8 @@ require_once(__dir__.'/d_setting/conf.php'); require_once 'process_war.php'; require_once 'func_gamerule.php'; require_once 'func_process.php'; +require_once 'func_process_trick.php'; +require_once 'func_process_chief.php'; require_once 'func_npc.php'; require_once 'func_tournament.php'; require_once 'func_auction.php'; @@ -257,452 +259,6 @@ function getRandGenName() { } -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]; - - $nation = getNationStaticInfo($double); - - 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]; - - $nation = getNationStaticInfo($double); - - $str[$i] = "【{$nation['name']}】에게 항복 권고"; - break; - case 52: //원조 - $fourth = $command[3]; - $third = $command[2]; - $double = $command[1]; - - $nation = getNationStaticInfo($double); - - $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]; - - $nation = getNationStaticInfo($double); - - $str[$i] = "【{$nation['name']}】에 【{$general['makenation']}】(으)로 통합 제의"; - break; - case 61: //불가침제의 - $third = $command[2]; - $double = $command[1]; - - $nation = getNationStaticInfo($double); - - $str[$i] = "【{$nation['name']}】에 {$third}년 불가침 제의"; - break; - case 62: //선전 포고 - $double = $command[1]; - - $nation = getNationStaticInfo($double); - - $str[$i] = "【{$nation['name']}】에 선전 포고"; - break; - case 63: //종전 제의 - $double = $command[1]; - - $nation = getNationStaticInfo($double); - - $str[$i] = "【{$nation['name']}】에 종전 제의"; - break; - case 64: //파기 제의 - $double = $command[1]; - - $nation = getNationStaticInfo($double); - - $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]; - - $nation = getNationStaticInfo($double); - - $str[$i] = "【{$nation['name']}】에 피장파장"; - break; - case 76: //의병모집 - $str[$i] = "의병모집"; - break; - case 77: //이호경식 - $double = $command[1]; - - $nation = getNationStaticInfo($double); - - $str[$i] = "【{$nation['name']}】에 이호경식"; - break; - case 78: //급습 - $double = $command[1]; - - $nation = getNationStaticInfo($double); - - $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 cityInfo($connect) { global $_basecolor, $_basecolor2, $images; diff --git a/twe/func_command.php b/twe/func_command.php index e2f64559..fae885ac 100644 --- a/twe/func_command.php +++ b/twe/func_command.php @@ -1,6 +1,453 @@ = 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]; + + $nation = getNationStaticInfo($double); + + 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]; + + $nation = getNationStaticInfo($double); + + $str[$i] = "【{$nation['name']}】에게 항복 권고"; + break; + case 52: //원조 + $fourth = $command[3]; + $third = $command[2]; + $double = $command[1]; + + $nation = getNationStaticInfo($double); + + $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]; + + $nation = getNationStaticInfo($double); + + $str[$i] = "【{$nation['name']}】에 【{$general['makenation']}】(으)로 통합 제의"; + break; + case 61: //불가침제의 + $third = $command[2]; + $double = $command[1]; + + $nation = getNationStaticInfo($double); + + $str[$i] = "【{$nation['name']}】에 {$third}년 불가침 제의"; + break; + case 62: //선전 포고 + $double = $command[1]; + + $nation = getNationStaticInfo($double); + + $str[$i] = "【{$nation['name']}】에 선전 포고"; + break; + case 63: //종전 제의 + $double = $command[1]; + + $nation = getNationStaticInfo($double); + + $str[$i] = "【{$nation['name']}】에 종전 제의"; + break; + case 64: //파기 제의 + $double = $command[1]; + + $nation = getNationStaticInfo($double); + + $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]; + + $nation = getNationStaticInfo($double); + + $str[$i] = "【{$nation['name']}】에 피장파장"; + break; + case 76: //의병모집 + $str[$i] = "의병모집"; + break; + case 77: //이호경식 + $double = $command[1]; + + $nation = getNationStaticInfo($double); + + $str[$i] = "【{$nation['name']}】에 이호경식"; + break; + case 78: //급습 + $double = $command[1]; + + $nation = getNationStaticInfo($double); + + $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 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,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),""); diff --git a/twe/func_process.php b/twe/func_process.php index c9696e2b..ef082ae1 100644 --- a/twe/func_process.php +++ b/twe/func_process.php @@ -1424,206 +1424,7 @@ function process_22($connect, &$general) { pushGenLog($general, $log); } -function process_23($connect, &$general) { - $log = array(); - $alllog = array(); - $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']-GameConst::basegold < $amount) { $amount = $nation['gold'] - GameConst::basegold; } - } elseif($what == 2) { - $dtype = "쌀"; - if($nation['rice']-GameConst::baserice < $amount) { $amount = $nation['rice'] - GameConst::baserice; } - } else { - $what = 2; - $dtype = "쌀"; - if($nation['rice']-GameConst::baserice < $amount) { $amount = $nation['rice'] - GameConst::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) { - $log = array(); - $alllog = array(); - $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) { $log = array(); @@ -1800,77 +1601,6 @@ function process_26($connect, &$general) { pushGenLog($general, $log); } -function process_27($connect, &$general) { - $log = array(); - $alllog = array(); - $youlog = array(); - $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) { $log = array(); $alllog = array(); @@ -2369,658 +2099,6 @@ function process_31($connect, &$general) { pushGenLog($general, $log); } -function process_32($connect, &$general) { - $log = array(); - $alllog = array(); - 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); - - $nation = getNationStaticInfo($general['nation']); - - $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 leader,horse,power,weap,intel,book,injury 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(((getGeneralIntel($general, true, true, true, false) - getGeneralIntel($intelgen, true, true, true, false)) / $_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) { - $log = array(); - $alllog = array(); - global $_firing, $_basefiring, $_firingpower; - //탈취는 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); - - $mynation = getNationStaticInfo($general['nation']); - - $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 leader,horse,power,weap,intel,book,injury 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(((getGeneralPower($general, true, true, true, false) - getGeneralPower($powergen, true, true, true, false)) / $_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'] < GameConst::minNationalgold) { $gold += ($nation['gold'] - GameConst::minNationalgold); $nation['gold'] = GameConst::minNationalgold; } - if($nation['rice'] < GameConst::minNationalrice) { $rice += ($nation['rice'] - GameConst::minNationalrice); $nation['rice'] = GameConst::minNationalrice; } - $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) { - $log = array(); - $alllog = array(); - 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); - - $mynation = getNationStaticInfo($general['nation']); - - $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 leader,horse,power,weap,intel,book,injury 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(((getGeneralPower($general, true, true, true, false) - getGeneralPower($powergen, true, true, true, false)) / $_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) { - $log = array(); - $alllog = array(); - 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); - - $mynation = getNationStaticInfo($general['nation']); - - $lbonus = setLeadershipBonus($general, $mynation['level']); - - $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 leader,horse,power,weap,intel,book,injury 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(((getGeneralLeadership($general, true, true, true) - getGeneralLeadership($gen, true, true, true)) / $_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) { - $log = array(); - $alllog = array(); - 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); - - $mynation = getNationStaticInfo($general['nation']); - - $lbonus = setLeadershipBonus($general, $mynation['level']); - - $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); - - $generalStatAll = getGeneralLeadership($general, true, true, true) - + getGeneralPower($general, true, true, true) - + getGeneralIntel($general, true, true, true); - $ratio = round((($generalStatAll - ($gen['sum']+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) { $log = array(); $alllog = array(); @@ -3994,242 +3072,6 @@ function process_50($connect, &$general) { pushGenLog($general, $log); } -function process_51($connect, &$general) { - $log = array(); - $alllog = array(); - $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) { - $log = array(); - $alllog = array(); - $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,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 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']-GameConst::basegold) { $gold = $mynation['gold'] - GameConst::basegold; } - if($rice > $mynation['rice']-GameConst::baserice) { $rice = $mynation['rice'] - GameConst::basegold; } - - 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); - } - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$younation['name']}(으)로 금$gold 쌀$rice을 지원"); - addNationHistory($mynation, "●{$admin['year']}년 {$admin['month']}월:{$younation['name']}(으)로 금$gold 쌀$rice을 지원"); - addNationHistory($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($history); - pushGenLog($general, $log); -} - -function process_53($connect, &$general) { - $log = array(); - $alllog = array(); - $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) { $log = array(); $alllog = array(); @@ -4490,1793 +3332,6 @@ function process_57($connect, &$general) { pushHistory($history); } -function process_61($connect, &$general) { - $log = array(); - $alllog = array(); - $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"; - } 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) { - $log = array(); - $alllog = array(); - $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,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 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']}에 선전 포고 하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$younation['name']}에 선전 포고"); - addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$younation['name']}에 선전 포고"); - addNationHistory($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($history); - pushAllLog($alllog); - pushGenLog($general, $log); -} - -function process_63($connect, &$general) { - $log = array(); - $alllog = array(); - $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) { - $log = array(); - $alllog = array(); - $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) { - $log = array(); - $alllog = array(); - $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,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']}(을)를 초토화하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}초토화를 명령"); - addNationHistory($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($history); - pushAllLog($alllog); - pushGenLog($general, $log); -} - -function process_66($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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']-GameConst::basegold < $amount || $nation['rice']-GameConst::basegold < $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']}(으)로 천도하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}(으)로 천도 명령"); - addNationHistory($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),""); - - refreshNationStaticInfo(); - } - - pushHistory($history); - pushAllLog($alllog); - pushGenLog($general, $log); -} - -function process_67($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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']-GameConst::basegold < $amount || $nation['rice']-GameConst::basegold < $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']}(을)를 증축하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}(을)를 증축"); - addNationHistory($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($history); - pushAllLog($alllog); - pushGenLog($general, $log); -} - -function process_68($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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($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']}(을)를 감축하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}(을)를 감축"); - addNationHistory($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($history); - pushAllLog($alllog); - pushGenLog($general, $log); -} - -function process_71($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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']}(이)가 필사즉생(을)를 발동하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:필사즉생(을)를 발동"); - addNationHistory($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($history); -// pushAllLog($alllog); - pushTrickLog($connect, $tricklog); - pushGenLog($general, $log); -} - -function process_72($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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']}백성동원(을)를 발동하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}백성동원(을)를 발동"); - addNationHistory($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($history); -// pushAllLog($alllog); - pushTrickLog($connect, $tricklog); - pushGenLog($general, $log); -} - -function process_73($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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 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']}수몰(을)를 발동하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}수몰(을)를 발동"); - addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$destnation['name']}{$destcity['name']}수몰(을)를 발동"); - addNationHistory($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($history); -// pushAllLog($alllog); - pushTrickLog($connect, $tricklog); - pushGenLog($general, $log); -} - -function process_74($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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 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']}허보(을)를 발동하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}허보(을)를 발동"); - addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$destnation['name']}{$destcity['name']}허보(을)를 발동"); - addNationHistory($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($history); -// pushAllLog($alllog); - pushTrickLog($connect, $tricklog); - pushGenLog($general, $log); -} - -function process_75($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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 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']}피장파장(을)를 발동하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destnation['name']}피장파장(을)를 발동"); - addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$destnation['name']}피장파장(을)를 발동"); - addNationHistory($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($history); -// pushAllLog($alllog); - pushTrickLog($connect, $tricklog); - pushGenLog($general, $log); -} - -function process_76($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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']}(이)가 의병모집(을)를 발동하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:의병모집(을)를 발동"); - addNationHistory($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; - $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,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','$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($history); -// pushAllLog($alllog); - pushTrickLog($connect, $tricklog); - pushGenLog($general, $log); -} - -function process_77($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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 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']}이호경식(을)를 발동하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destnation['name']}이호경식(을)를 발동"); - addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$destnation['name']}이호경식(을)를 발동"); - addNationHistory($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($history); -// pushAllLog($alllog); - pushTrickLog($connect, $tricklog); - pushGenLog($general, $log); -} - -function process_78($connect, &$general) { - $log = array(); - $alllog = array(); - - $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,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 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']}급습(을)를 발동하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destnation['name']}급습(을)를 발동"); - addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$destnation['name']}급습(을)를 발동"); - addNationHistory($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($history); -// pushAllLog($alllog); - pushTrickLog($connect, $tricklog); - pushGenLog($general, $log); -} - -function process_81($connect, &$general) { - $log = array(); - $alllog = array(); - $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,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']}(이)가 국기를 변경하였습니다."; - addHistory($general, "●{$admin['year']}년 {$admin['month']}월:국기를 변경"); - addNationHistory($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),""); - - refreshNationStaticInfo(); - } - - pushHistory($history); - pushAllLog($alllog); - pushGenLog($general, $log); -} - function process_99($connect, &$general) { $log = array(); $alllog = array(); diff --git a/twe/func_process_chief.php b/twe/func_process_chief.php new file mode 100644 index 00000000..a2d8bf0b --- /dev/null +++ b/twe/func_process_chief.php @@ -0,0 +1,2300 @@ + 10000) { $amount = 10000; } + if($amount < 100) { $amount = 100; } + if($what == 1) { + $dtype = "금"; + if($nation['gold']-GameConst::basegold < $amount) { $amount = $nation['gold'] - GameConst::basegold; } + } elseif($what == 2) { + $dtype = "쌀"; + if($nation['rice']-GameConst::baserice < $amount) { $amount = $nation['rice'] - GameConst::baserice; } + } else { + $what = 2; + $dtype = "쌀"; + if($nation['rice']-GameConst::baserice < $amount) { $amount = $nation['rice'] - GameConst::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) { + $log = array(); + $alllog = array(); + $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_27($connect, &$general) { + $log = array(); + $alllog = array(); + $youlog = array(); + $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_51($connect, &$general) { + $log = array(); + $alllog = array(); + $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) { + $log = array(); + $alllog = array(); + $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,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 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']-GameConst::basegold) { $gold = $mynation['gold'] - GameConst::basegold; } + if($rice > $mynation['rice']-GameConst::baserice) { $rice = $mynation['rice'] - GameConst::basegold; } + + 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); + } + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$younation['name']}(으)로 금$gold 쌀$rice을 지원"); + addNationHistory($mynation, "●{$admin['year']}년 {$admin['month']}월:{$younation['name']}(으)로 금$gold 쌀$rice을 지원"); + addNationHistory($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($history); + pushGenLog($general, $log); +} + +function process_53($connect, &$general) { + $log = array(); + $alllog = array(); + $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_61($connect, &$general) { + $log = array(); + $alllog = array(); + $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"; + } 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) { + $log = array(); + $alllog = array(); + $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,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 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']}에 선전 포고 하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$younation['name']}에 선전 포고"); + addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$younation['name']}에 선전 포고"); + addNationHistory($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($history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_63($connect, &$general) { + $log = array(); + $alllog = array(); + $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) { + $log = array(); + $alllog = array(); + $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) { + $log = array(); + $alllog = array(); + $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,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']}(을)를 초토화하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}초토화를 명령"); + addNationHistory($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($history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_66($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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']-GameConst::basegold < $amount || $nation['rice']-GameConst::basegold < $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']}(으)로 천도하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}(으)로 천도 명령"); + addNationHistory($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),""); + + refreshNationStaticInfo(); + } + + pushHistory($history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_67($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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']-GameConst::basegold < $amount || $nation['rice']-GameConst::basegold < $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']}(을)를 증축하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}(을)를 증축"); + addNationHistory($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($history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_68($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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($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']}(을)를 감축하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}(을)를 감축"); + addNationHistory($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($history); + pushAllLog($alllog); + pushGenLog($general, $log); +} + +function process_71($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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']}(이)가 필사즉생(을)를 발동하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:필사즉생(을)를 발동"); + addNationHistory($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($history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_72($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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']}백성동원(을)를 발동하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}백성동원(을)를 발동"); + addNationHistory($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($history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_73($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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 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']}수몰(을)를 발동하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}수몰(을)를 발동"); + addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$destnation['name']}{$destcity['name']}수몰(을)를 발동"); + addNationHistory($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($history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_74($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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 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']}허보(을)를 발동하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}허보(을)를 발동"); + addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$destnation['name']}{$destcity['name']}허보(을)를 발동"); + addNationHistory($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($history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_75($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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 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']}피장파장(을)를 발동하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destnation['name']}피장파장(을)를 발동"); + addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$destnation['name']}피장파장(을)를 발동"); + addNationHistory($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($history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_76($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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']}(이)가 의병모집(을)를 발동하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:의병모집(을)를 발동"); + addNationHistory($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; + $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,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','$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($history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_77($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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 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']}이호경식(을)를 발동하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destnation['name']}이호경식(을)를 발동"); + addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$destnation['name']}이호경식(을)를 발동"); + addNationHistory($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($history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_78($connect, &$general) { + $log = array(); + $alllog = array(); + + $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,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 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']}급습(을)를 발동하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destnation['name']}급습(을)를 발동"); + addNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}(이)가 {$destnation['name']}급습(을)를 발동"); + addNationHistory($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($history); +// pushAllLog($alllog); + pushTrickLog($connect, $tricklog); + pushGenLog($general, $log); +} + +function process_81($connect, &$general) { + $log = array(); + $alllog = array(); + $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,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']}(이)가 국기를 변경하였습니다."; + addHistory($general, "●{$admin['year']}년 {$admin['month']}월:국기를 변경"); + addNationHistory($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),""); + + refreshNationStaticInfo(); + } + + pushHistory($history); + pushAllLog($alllog); + pushGenLog($general, $log); +} diff --git a/twe/func_process_trick.php b/twe/func_process_trick.php new file mode 100644 index 00000000..03a856d3 --- /dev/null +++ b/twe/func_process_trick.php @@ -0,0 +1,655 @@ +●{$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 leader,horse,power,weap,intel,book,injury 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(((getGeneralIntel($general, true, true, true, false) - getGeneralIntel($intelgen, true, true, true, false)) / $_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) { + $log = array(); + $alllog = array(); + global $_firing, $_basefiring, $_firingpower; + //탈취는 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); + + $mynation = getNationStaticInfo($general['nation']); + + $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 leader,horse,power,weap,intel,book,injury 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(((getGeneralPower($general, true, true, true, false) - getGeneralPower($powergen, true, true, true, false)) / $_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'] < GameConst::minNationalgold) { $gold += ($nation['gold'] - GameConst::minNationalgold); $nation['gold'] = GameConst::minNationalgold; } + if($nation['rice'] < GameConst::minNationalrice) { $rice += ($nation['rice'] - GameConst::minNationalrice); $nation['rice'] = GameConst::minNationalrice; } + $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) { + $log = array(); + $alllog = array(); + 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); + + $mynation = getNationStaticInfo($general['nation']); + + $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 leader,horse,power,weap,intel,book,injury 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(((getGeneralPower($general, true, true, true, false) - getGeneralPower($powergen, true, true, true, false)) / $_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) { + $log = array(); + $alllog = array(); + 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); + + $mynation = getNationStaticInfo($general['nation']); + + $lbonus = setLeadershipBonus($general, $mynation['level']); + + $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 leader,horse,power,weap,intel,book,injury 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(((getGeneralLeadership($general, true, true, true) - getGeneralLeadership($gen, true, true, true)) / $_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) { + return process_99($connect, $general); + $log = array(); + $alllog = array(); + 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); + + $mynation = getNationStaticInfo($general['nation']); + + $lbonus = setLeadershipBonus($general, $mynation['level']); + + $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); + + $generalStatAll = getGeneralLeadership($general, true, true, true) + + getGeneralPower($general, true, true, true) + + getGeneralIntel($general, true, true, true); + $ratio = round((($generalStatAll - ($gen['sum']+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); +}