From 6c92db524b3157334ef7547b5d3aaf08cbe0687c Mon Sep 17 00:00:00 2001 From: hide_d Date: Mon, 23 Jul 2018 01:28:34 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=A0=ED=8F=AC=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=EB=A5=BC=20=EC=A1=B0=EA=B8=88=EB=8D=94=20=EC=A7=81=EA=B4=80?= =?UTF-8?q?=EC=A0=81=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/func_npc.php | 59 +++++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/hwe/func_npc.php b/hwe/func_npc.php index a2f15f28..8058736a 100644 --- a/hwe/func_npc.php +++ b/hwe/func_npc.php @@ -445,37 +445,40 @@ function processAI($no) { } } else { //외교 평시에 선포 - if($dipState == 0 && $attackable == 0) { - //전방 체크 먼저 + + do{ + if($dipState != 0){ + break; + } + if($attackable != 0){ + break; + } + SetNationFront($nation['nation']); - $query = "select city from city where nation='{$general['nation']}' and front=1 limit 0,1"; - $result = MYDB_query($query, $connect) or Error("processAI02 ".MYDB_error($connect),""); - $frontCount = MYDB_num_rows($result); - //근접 공백지 없을때 - if($frontCount == 0) { - $query = "select (sum(pop/10)+sum(agri)+sum(comm)+sum(secu)+sum(def)+sum(wall))/(sum(pop2/10)+sum(agri2)+sum(comm2)+sum(secu2)+sum(def2)+sum(wall2))*100 as dev from city where nation='{$general['nation']}'"; - $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - $devRate = MYDB_fetch_array($result); - //내정이 80% 이상일때 - if($devRate['dev'] > 80) { - $query = "select nation from nation where level>0 order by rand()"; - $result = MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); - $nationCount = MYDB_num_rows($result); - for($i=0; $i < $nationCount; $i++) { - $youNation = MYDB_fetch_array($result); - - if(isNeighbor($general['nation'], $youNation['nation'])) { - $command = EncodeCommand(0, 0, $youNation['nation'], 62); - $query = "update nation set l12turn0='$command' where nation='{$general['nation']}'"; - MYDB_query($query, $connect) or Error("processAI09 ".MYDB_error($connect),""); - $rulerCommand = 1; - break; - } - } - } + $frontCount = $db->queryFirstField('SELECT count(city) FROM city WHERE nation=%i AND front=1', $general['nation']); + if($frontCount > 0){ + break; } - } + + $devRate = $db->queryFirstField('SELECT (sum(pop/10)+sum(agri)+sum(comm)+sum(secu)+sum(def)+sum(wall))/(sum(pop2/10)+sum(agri2)+sum(comm2)+sum(secu2)+sum(def2)+sum(wall2)) from city where nation=%i', $general['nation']); + if($devRate < 0.8){ + break; + } + + $nations = $db->queryFirstColumn('SELECT nation FROM nation WHERE level>0'); + shuffle($nations); + foreach($nations as $youNationID){ + if(!isNeighbor($general['nation'], $youNationID)){ + continue; + } + $command = EncodeCommand(0, 0, $youNationID, 62); + $db->update('nation', [ + 'l12turn0'=>$command + ], 'nation=%i', $general['nation']); + break; + } + }while(false); } }