From 9c7fddfb0da2369204dd6afd7584729059e49ed1 Mon Sep 17 00:00:00 2001 From: hide_d Date: Sat, 2 May 2020 17:29:20 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AA=85=EC=A0=84=20=EC=82=B4=EC=83=81?= =?UTF-8?q?=EB=A5=A0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/func.php | 2 +- hwe/func_process_chief.php | 707 ------------------------------------- 2 files changed, 1 insertion(+), 708 deletions(-) delete mode 100644 hwe/func_process_chief.php diff --git a/hwe/func.php b/hwe/func.php index a88eb99e..f6721462 100644 --- a/hwe/func.php +++ b/hwe/func.php @@ -1345,7 +1345,7 @@ function CheckHall($no) { $calcVar['tirate'] = $tiw/$ti; $calcVar['betrate'] = $betWinGold/$betGold; $calcVar['winrate'] = $win/$war; - $calcVar['killrate'] = $kill/($kill+$death); + $calcVar['killrate'] = $kill/$death; if($generalObj instanceof DummyGeneral){ return; diff --git a/hwe/func_process_chief.php b/hwe/func_process_chief.php deleted file mode 100644 index d364af7b..00000000 --- a/hwe/func_process_chief.php +++ /dev/null @@ -1,707 +0,0 @@ -getValuesAsArray(['year','month','turnterm']); - - if($general['officer_level'] < 5 || $general['nation']==0) { - pushGenLog($general, ["●{$month}월:수뇌부가 아닙니다. 권고 실패. <1>$date"]); - return; - } - - $supply = $db->queryFirstField('SELECT supply FROM city WHERE city=%i AND nation=%i', $general['city'], $general['nation']); - $myTurn = $db->queryFirstField('SELECT %b FROM nation WHERE nation=%i', "l{$general['officer_level']}turn0", $general['nation']); - - $command = DecodeCommand($myTurn); - $which = $command[1]; - - $srcNation = getNationStaticInfo($general['nation']); - $destNation = getNationStaticInfo($which); - - if($destNation['nation'] == 0) { - pushGenLog($general, ["●{$month}월:멸망한 국가입니다. 권고 실패. <1>$date"]); - return; - } - - if($supply === null) { - pushGenLog($general, ["●{$month}월:아국이 아닙니다. 권고 실패. <1>$date"]); - return; - } - - if($supply === 0) { - pushGenLog($general, ["●{$month}월:고립된 도시입니다. 권고 실패. <1>$date"]); - return; - } - - // 상대에게 발송 - $src = new MessageTarget( - $general['no'], - $general['name'], - $srcNation['nation'], - $srcNation['name'], - $srcNation['color'], - GetImageURL($general['imgsvr'], $general['picture']) - ); - - $dest = new MessageTarget( - 0, - '', - $destNation['nation'], - $destNation['name'], - $destNation['color'] - ); - - $now = new \DateTime($date); - $validUntil = new \DateTime($date); - $validMinutes = max(30, $turnterm*3); - $validUntil->add(new \DateInterval("PT{$validMinutes}M")); - - $msg = new DiplomaticMessage( - Message::MSGTYPE_DIPLOMACY, - $src, - $dest, - "{$srcNation['name']}의 항복 권고 서신", - $now, - $validUntil, - ['action'=>DiplomaticMessage::TYPE_SURRENDER] - ); - $msg->send(); - - pushGenLog($general, ["●{$month}월:{$destNation['name']}으로 항복 권고 서신을 보냈습니다.<1>$date"]); -} - -function process_53(&$general) { - $db = DB::db(); - $gameStor = KVStorage::getStorage($db, 'game_env'); - $date = substr($general['turntime'],11,5); - list($year, $month, $turnterm) = $gameStor->getValuesAsArray(['year','month','turnterm']); - - if($general['officer_level'] < 5 || $general['nation']==0) { - pushGenLog($general, ["●{$month}월:수뇌부가 아닙니다. 제의 실패. <1>$date"]); - return; - } - - $supply = $db->queryFirstField('SELECT supply FROM city WHERE city=%i AND nation=%i', $general['city'], $general['nation']); - $myTurn = $db->queryFirstField('SELECT %b FROM nation WHERE nation=%i', "l{$general['officer_level']}turn0", $general['nation']); - - $command = DecodeCommand($myTurn); - $which = $command[1]; - - $srcNation = getNationStaticInfo($general['nation']); - $destNation = getNationStaticInfo($which); - - if($destNation['nation'] == 0) { - pushGenLog($general, ["●{$month}월:멸망한 국가입니다. 제의 실패. <1>$date"]); - return; - } - - if($supply === null) { - pushGenLog($general, ["●{$month}월:아국이 아닙니다. 제의 실패. <1>$date"]); - return; - } - - if($supply === 0) { - pushGenLog($general, ["●{$month}월:고립된 도시입니다. 제의 실패. <1>$date"]); - return; - } - - // 상대에게 발송 - $src = new MessageTarget( - $general['no'], - $general['name'], - $srcNation['nation'], - $srcNation['name'], - $srcNation['color'], - GetImageURL($general['imgsvr'], $general['picture']) - ); - - $dest = new MessageTarget( - 0, - '', - $destNation['nation'], - $destNation['name'], - $destNation['color'] - ); - - $now = new \DateTime($date); - $validUntil = new \DateTime($date); - $validMinutes = max(30, $turnterm*3); - $validUntil->add(new \DateInterval("PT{$validMinutes}M")); - - $msg = new DiplomaticMessage( - Message::MSGTYPE_DIPLOMACY, - $src, - $dest, - "{$srcNation['name']}의 통합 제의 서신", - $now, - $validUntil, - ['action'=>DiplomaticMessage::TYPE_MERGE] - ); - $msg->send(); - - $josaRo = JosaUtil::pick($destNation['name'], '로'); - pushGenLog($general, ["●{$month}월:{$destNation['name']}{$josaRo} 통합 제의 서신을 보냈습니다.<1>$date"]); -} - -function process_63(&$general) { - $db = DB::db(); - $gameStor = KVStorage::getStorage($db, 'game_env'); - $date = substr($general['turntime'],11,5); - list($year, $month, $turnterm) = $gameStor->getValuesAsArray(['year','month','turnterm']); - - if($general['officer_level'] < 5 || $general['nation']==0) { - pushGenLog($general, ["●{$month}월:수뇌부가 아닙니다. 제의 실패. <1>$date"]); - return; - } - - $supply = $db->queryFirstField('SELECT supply FROM city WHERE city=%i AND nation=%i', $general['city'], $general['nation']); - $myTurn = $db->queryFirstField('SELECT %b FROM nation WHERE nation=%i', "l{$general['officer_level']}turn0", $general['nation']); - - $command = DecodeCommand($myTurn); - $which = $command[1]; - - $srcNation = getNationStaticInfo($general['nation']); - $destNation = getNationStaticInfo($which); - - if($destNation['nation'] == 0) { - pushGenLog($general, ["●{$month}월:멸망한 국가입니다. 제의 실패. <1>$date"]); - return; - } - - if($supply === null) { - pushGenLog($general, ["●{$month}월:아국이 아닙니다. 제의 실패. <1>$date"]); - return; - } - - if($supply === 0) { - pushGenLog($general, ["●{$month}월:고립된 도시입니다. 제의 실패. <1>$date"]); - return; - } - - // 상대에게 발송 - $src = new MessageTarget( - $general['no'], - $general['name'], - $srcNation['nation'], - $srcNation['name'], - $srcNation['color'], - GetImageURL($general['imgsvr'], $general['picture']) - ); - - $dest = new MessageTarget( - 0, - '', - $destNation['nation'], - $destNation['name'], - $destNation['color'] - ); - - $now = new \DateTime($date); - $validUntil = new \DateTime($date); - $validMinutes = max(30, $turnterm*3); - $validUntil->add(new \DateInterval("PT{$validMinutes}M")); - - $msg = new DiplomaticMessage( - Message::MSGTYPE_DIPLOMACY, - $src, - $dest, - "{$srcNation['name']}의 종전 제의 서신", - $now, - $validUntil, - ['action'=>DiplomaticMessage::TYPE_STOP_WAR] - ); - $msg->send(); - - pushGenLog($general, ["●{$month}월:{$destNation['name']}으로 종전 제의 서신을 보냈습니다. <1>$date"]); -} - -function process_64(&$general) { - $db = DB::db(); - $gameStor = KVStorage::getStorage($db, 'game_env'); - $date = substr($general['turntime'],11,5); - list($year, $month, $turnterm) = $gameStor->getValuesAsArray(['year','month','turnterm']); - - if($general['officer_level'] < 5 || $general['nation']==0) { - pushGenLog($general, ["●{$month}월:수뇌부가 아닙니다. 제의 실패. <1>$date"]); - return; - } - - $supply = $db->queryFirstField('SELECT supply FROM city WHERE city=%i AND nation=%i', $general['city'], $general['nation']); - $myTurn = $db->queryFirstField('SELECT %b FROM nation WHERE nation=%i', "l{$general['officer_level']}turn0", $general['nation']); - - $command = DecodeCommand($myTurn); - $which = $command[1]; - - $srcNation = getNationStaticInfo($general['nation']); - $destNation = getNationStaticInfo($which); - - if($destNation['nation'] == 0) { - pushGenLog($general, ["●{$month}월:멸망한 국가입니다. 제의 실패. <1>$date"]); - return; - } - - if($supply === null) { - pushGenLog($general, ["●{$month}월:아국이 아닙니다. 제의 실패. <1>$date"]); - return; - } - - if($supply === 0) { - pushGenLog($general, ["●{$month}월:고립된 도시입니다. 제의 실패. <1>$date"]); - return; - } - - // 상대에게 발송 - $src = new MessageTarget( - $general['no'], - $general['name'], - $srcNation['nation'], - $srcNation['name'], - $srcNation['color'], - GetImageURL($general['imgsvr'], $general['picture']) - ); - - $dest = new MessageTarget( - 0, - '', - $destNation['nation'], - $destNation['name'], - $destNation['color'] - ); - - $now = new \DateTime($date); - $validUntil = new \DateTime($date); - $validMinutes = max(30, $turnterm*3); - $validUntil->add(new \DateInterval("PT{$validMinutes}M")); - - $msg = new DiplomaticMessage( - Message::MSGTYPE_DIPLOMACY, - $src, - $dest, - "{$srcNation['name']}의 불가침 파기 제의 서신", - $now, - $validUntil, - ['action'=>DiplomaticMessage::TYPE_CANCEL_NA] - ); - $msg->send(); - - $josaRo = JosaUtil::pick($destNation['name'], '로'); - pushGenLog($general, ["●{$month}월:{$destNation['name']}{$josaRo} 불가침 파기 제의 서신을 보냈습니다.<1>$date"]); -} - -function process_65(&$general) { - $db = DB::db(); - $gameStor = KVStorage::getStorage($db, 'game_env'); - $connect=$db->get(); - - $log = []; - $alllog = []; - $history = []; - $date = substr($general['turntime'],11,5); - - $admin = $gameStor->getValues(['year','month']); - - $query = "select nation,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['officer_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['officer_level']}turn0"]); - $which = $command[1]; - - $query = "select city,name,nation,pop,officer4,officer3,officer2 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[] = "●{$admin['month']}월:아국이 아닙니다. 초토화 실패. <1>$date"; - } elseif($general['officer_level'] < 5) { - $log[] = "●{$admin['month']}월:수뇌부가 아닙니다. 초토화 실패. <1>$date"; - } elseif($nation['capital'] == $destcity['city']) { - $log[] = "●{$admin['month']}월:수도입니다. 초토화 실패. <1>$date"; - } elseif($city['supply'] == 0) { - $log[] = "●{$admin['month']}월:고립된 도시입니다. 초토화 실패. <1>$date"; - } elseif($destcity['nation'] != $general['nation']) { - $log[] = "●{$admin['month']}월:아국 영토가 아닙니다. 초토화 실패. <1>$date"; - } elseif($citycount <= 4) { - $log[] = "●{$admin['month']}월:더이상 물러날 수 없습니다. 초토화 실패. <1>$date"; - } elseif($dipcount != 0) { - $log[] = "●{$admin['month']}월:평시에만 가능합니다. 초토화 실패. <1>$date"; - } elseif($nation['surlimit'] > 0) { - $log[] = "●{$admin['month']}월:제한 턴이 있습니다. 초토화 실패. <1>$date"; - } else { - $josaUl = JosaUtil::pick($destcity['name'], '을'); - $log[] = "●{$admin['month']}월:{$destcity['name']}{$josaUl} 초토화했습니다. <1>$date"; - - $josaYi = JosaUtil::pick($general['name'], '이'); - $josaYiNation = JosaUtil::pick($nation['name'], '이'); - - $alllog[] = "●{$admin['month']}월:{$general['name']}{$josaYi} {$destcity['name']}초토화를 명령하였습니다."; - $history[] = "●{$admin['year']}년 {$admin['month']}월:【초토화】{$nation['name']}{$josaYiNation} {$destcity['name']}{$josaUl} 초토화하였습니다."; - pushGeneralHistory($general['no'], ["●{$admin['year']}년 {$admin['month']}월:{$destcity['name']}초토화를 명령"]); - pushNationHistory($nation['nation'], ["●{$admin['year']}년 {$admin['month']}월:{$general['name']}{$josaYi} {$destcity['name']}초토화를 명령"]); - - //외교제한 24 - $amount = Util::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 officer_level=1 where no='{$destcity['officer4']}' or no='{$destcity['officer3']}' or no='{$destcity['officer2']}'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - - //성 공백지로 - $query = "update city set pop=pop*0.1,trust=50,agri=agri*0.1,comm=comm*0.1,secu=secu*0.1,nation='0',front='0',officer4='0',officer3='0',officer2='0',conflict='{}' where city='{$destcity['city']}'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - - //전장수 10% 삭감 - //experience를 General로 - $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),""); - } - - pushWorldHistory($history, $admin['year'], $admin['month']); - pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']); - pushGenLog($general, $log); -} - -function process_77(&$general) { - $db = DB::db(); - $gameStor = KVStorage::getStorage($db, 'game_env'); - $connect=$db->get(); - - $log = []; - $alllog = []; - $history = []; - $sabotagelog = []; - - $date = substr($general['turntime'],11,5); - - $admin = $gameStor->getValues(['year','month','develcost']); - - $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,gennum,name,type,strategic_cmd_limit,l{$general['officer_level']}term,l{$general['officer_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['officer_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); - - $genCount = Util::valueFit($nation['gennum'], GameConst::$initialNationGenLimit); - - $term2 = 1; - $term3 = Util::round(sqrt($genCount*16)*10); - - $code = $nation["l{$general['officer_level']}term"]; - if($code%100 == 77) { - $term = intdiv($code, 100) + 1; - $code = $term * 100 + 77; - } else { - $term = 1; - $code = 100 + 77; - } - - if(!$destnation) { - $log[] = "●{$admin['month']}월:없는 국가입니다. 이호경식 실패. <1>$date"; - } elseif($city['nation'] != $general['nation']) { - $log[] = "●{$admin['month']}월:아국이 아닙니다. 이호경식 실패. <1>$date"; - } elseif($general['officer_level'] < 5) { - $log[] = "●{$admin['month']}월:수뇌부가 아닙니다. 이호경식 실패. <1>$date"; - } elseif($dip['state'] > 1) { - $log[] = "●{$admin['month']}월:선포,전쟁중인 상대국에만 가능합니다. 이호경식 실패. <1>$date"; - } elseif($nation['strategic_cmd_limit'] > 0) { - $log[] = "●{$admin['month']}월:전략기한이 남았습니다. 이호경식 실패. <1>$date"; - } elseif($term < $term2) { - $log[] = "●{$admin['month']}월:이호경식 수행중... ({$term}/{$term2}) <1>$date"; - - $query = "update nation set l{$general['officer_level']}term={$code} where nation='{$general['nation']}'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - } else { - $log[] = "●{$admin['month']}월:이호경식 발동! <1>$date"; - $exp = 5 * $term2; - $ded = 5 * $term2; - - // 성격 보정 - $exp = CharExperience($exp, $general['personal']); - $ded = CharDedication($ded, $general['personal']); - - $josaYi = JosaUtil::pick($general['name'], '이'); - $josaYiNation = JosaUtil::pick($nation['name'], '이'); - - $query = "select no,name from general where nation='{$general['nation']}' and no!='{$general['no']}'"; - $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - $cnt = MYDB_num_rows($result); - $alllog[0] = "{$general['name']}{$josaYi} {$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[] = "●{$admin['month']}월:{$general['name']}{$josaYi} {$destnation['name']}이호경식을 발동하였습니다."; -// $history[] = "●{$admin['year']}년 {$admin['month']}월:【전략】{$nation['name']}{$josaYiNation} {$destnation['name']}이호경식을 발동하였습니다."; - $sabotagelog[] = "●{$admin['year']}년 {$admin['month']}월:【전략】{$nation['name']}{$josaYiNation} {$destnation['name']}이호경식을 발동하였습니다."; - pushGeneralHistory($general['no'], ["●{$admin['year']}년 {$admin['month']}월:{$destnation['name']}이호경식을 발동"]); - pushNationHistory($nation['nation'], "●{$admin['year']}년 {$admin['month']}월:{$general['name']}{$josaYi} {$destnation['name']}이호경식을 발동"); - pushNationHistory($destnation, "●{$admin['year']}년 {$admin['month']}월:{$nation['name']}{$general['name']}{$josaYi} 아국에 이호경식을 발동"); - - //선포+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 = Util::round($term3 / 2); } - if($nation['type'] == 12) { $term3 = $term3 * 2; } - - //전략기한 - $query = "update nation set strategic_cmd_limit={$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),""); - } - -// pushWorldHistory($history, $admin['year'], $admin['month']); -// pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']); - pushSabotageLog($sabotagelog); - pushGenLog($general, $log); -} - -function process_78(&$general) { - $db = DB::db(); - $gameStor = KVStorage::getStorage($db, 'game_env'); - $connect=$db->get(); - - $log = []; - $alllog = []; - $history = []; - $sabotagelog = []; - - $date = substr($general['turntime'],11,5); - - $admin = $gameStor->getValues(['year','month','develcost']); - - $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,gennum,name,type,strategic_cmd_limit,l{$general['officer_level']}term,l{$general['officer_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['officer_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); - - $genCount = Util::valueFit($nation['gennum'], GameConst::$initialNationGenLimit); - - $term2 = 1; - $term3 = Util::round(sqrt($genCount*16)*10); - - $code = $nation["l{$general['officer_level']}term"]; - if($code%100 == 78) { - $term = intdiv($code, 100) + 1; - $code = $term * 100 + 78; - } else { - $term = 1; - $code = 100 + 78; - } - - if(!$destnation) { - $log[] = "●{$admin['month']}월:없는 국가입니다. 급습 실패. <1>$date"; - } elseif($city['nation'] != $general['nation']) { - $log[] = "●{$admin['month']}월:아국이 아닙니다. 급습 실패. <1>$date"; - } elseif($general['officer_level'] < 5) { - $log[] = "●{$admin['month']}월:수뇌부가 아닙니다. 급습 실패. <1>$date"; - } elseif($dip['state'] != 1) { - $log[] = "●{$admin['month']}월:선포중인 상대국에만 가능합니다. 급습 실패. <1>$date"; - } elseif($dip['term'] < 12) { - $log[] = "●{$admin['month']}월:선포 12개월 이상인 상대국에만 가능합니다. 급습 실패. <1>$date"; - } elseif($nation['strategic_cmd_limit'] > 0) { - $log[] = "●{$admin['month']}월:전략기한이 남았습니다. 급습 실패. <1>$date"; - } elseif($term < $term2) { - $log[] = "●{$admin['month']}월:급습 수행중... ({$term}/{$term2}) <1>$date"; - - $query = "update nation set l{$general['officer_level']}term={$code} where nation='{$general['nation']}'"; - MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - } else { - $log[] = "●{$admin['month']}월:급습 발동! <1>$date"; - $exp = 5 * $term2; - $ded = 5 * $term2; - - // 성격 보정 - $exp = CharExperience($exp, $general['personal']); - $ded = CharDedication($ded, $general['personal']); - - $josaYi = JosaUtil::pick($general['name'], '이'); - $josaYiNation = JosaUtil::pick($nation['name'], '이'); - - $query = "select no,name from general where nation='{$general['nation']}' and no!='{$general['no']}'"; - $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - $cnt = MYDB_num_rows($result); - $alllog[0] = "{$general['name']}{$josaYi} {$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[] = "●{$admin['month']}월:{$general['name']}{$josaYi} {$destnation['name']}급습을 발동하였습니다."; -// $history[] = "●{$admin['year']}년 {$admin['month']}월:【전략】{$nation['name']}{$josaYiNation} {$destnation['name']}급습을 발동하였습니다."; - $sabotagelog[] = "●{$admin['year']}년 {$admin['month']}월:【전략】{$nation['name']}{$josaYiNation} {$destnation['name']}급습을 발동하였습니다."; - pushGeneralHistory($general, "●{$admin['year']}년 {$admin['month']}월:{$destnation['name']}급습을 발동"); - pushNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}{$josaYi} {$destnation['name']}급습을 발동"); - pushNationHistory($destnation, "●{$admin['year']}년 {$admin['month']}월:{$nation['name']}{$general['name']}{$josaYi} 아국에 급습을 발동"); - - //선포-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 = Util::round($term3 / 2); } - if($nation['type'] == 12) { $term3 = $term3 * 2; } - - //전략기한 - $query = "update nation set strategic_cmd_limit={$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),""); - } - -// pushWorldHistory($history, $admin['year'], $admin['month']); -// pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']); - pushSabotageLog($sabotagelog); - pushGenLog($general, $log); -} - -function process_81(&$general) { - $db = DB::db(); - $gameStor = KVStorage::getStorage($db, 'game_env'); - $connect=$db->get(); - - $log = []; - $alllog = []; - $history = []; - - $date = substr($general['turntime'],11,5); - - $admin = $gameStor->getValues(['year','month']); - - $query = "select nation from city where city='{$general['city']}'"; - $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - $city = MYDB_fetch_array($result); - - $query = "select nation,can_change_flag,name,type,strategic_cmd_limit,l{$general['officer_level']}term,l{$general['officer_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['officer_level']}turn0"]); - $which = $command[1]; - $colors = GetNationColors(); - if($which >= count($colors)) { $which = 0; } - $color = $colors[$which]; - - if($city['nation'] != $general['nation']) { - $log[] = "●{$admin['month']}월:아국이 아닙니다. 국기변경 실패. <1>$date"; - } elseif($general['officer_level'] < 5) { - $log[] = "●{$admin['month']}월:수뇌부가 아닙니다. 국기변경 실패. <1>$date"; - } elseif($nation['can_change_flag'] <= 0) { - $log[] = "●{$admin['month']}월:더이상 변경이 불가능합니다. 국기변경 실패. <1>$date"; - } else { - $log[] = "●{$admin['month']}월:국기를 변경합니다. <1>$date"; - $exp = 10; - $ded = 10; - - // 성격 보정 - $exp = CharExperience($exp, $general['personal']); - $ded = CharDedication($ded, $general['personal']); - - $josaYi = JosaUtil::pick($general['name'], '이'); - $josaYiNation = JosaUtil::pick($nation['name'], '이'); - - $query = "select no,name from general where nation='{$general['nation']}' and no!='{$general['no']}'"; - $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - $cnt = MYDB_num_rows($result); - $genlog = ["{$general['name']}{$josaYi} 국기를 변경합니다."]; - for($i=0; $i < $cnt; $i++) { - $gen = MYDB_fetch_array($result); - pushGenLog($gen, $genlog); - } - - $alllog[] = "●{$admin['month']}월:{$general['name']}{$josaYi} 국기를 변경하였습니다."; - $history[] = "●{$admin['year']}년 {$admin['month']}월:【국기변경】{$nation['name']}{$josaYiNation} 국기를 변경하였습니다."; - pushGeneralHistory($general, "●{$admin['year']}년 {$admin['month']}월:국기를 변경"); - pushNationHistory($nation, "●{$admin['year']}년 {$admin['month']}월:{$general['name']}{$josaYi} 국기를 변경"); - - //국기변경 - $query = "update nation set color='$color',can_change_flag=can_change_flag-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(); - } - - pushWorldHistory($history, $admin['year'], $admin['month']); - pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']); - pushGenLog($general, $log); -}