function get_auto_build_resource_field_id($result) { $level_all = get_resource_fields_level($result); $res = get_res_info($result); unset($res[4], $res[5], $res[6], $res[7]); asort($res); // print_r($res); foreach ($res as $type => $num) { $level_type = $level_all[$type]; asort($level_type); //print_r($level_type); list($id, $level) = each($level_type); if ($level >= 10) { continue; } return $id; } echo "all resource fields level 10.\n"; return false; }
$result = switch_village($village); build($village, $result, $newbie); } transfer_to_village($village, $auto_transfer); } else { if ($village > 0) { $result = switch_village($village); } $attack_time_left = detect_attack($result); if ($attack_time_left > 900) { $next_check_time = min($next_check_time, $attack_time_left - 900); } $oasis_attack_time_left = detect_oasis_attack($result); update_check_time($result); build($village, $result, $newbie); list($wood, $brick, $iron, $crop, $warehouse_capacity, , , $granary_capacity) = get_res_info($result); if ($village == $main_village) { detect_message($result, $account, $message, $user, $server); if ($attack_time_left >= 0 && $beacon == 0) { $sql = "update accounts set beacon = 1 where id = {$account}"; if (!mysql_query($sql)) { die(mysql_error()); } $title = "{$server},{$user},{$attack_time_left}"; attack_mail($title); } else { if ($attack_time_left < 0 && $beacon == 1) { $sql = "update accounts set beacon = 0 where id = {$account}"; if (!mysql_query($sql)) { die(mysql_error()); }
function sell($m1, $rid1, $m2, $rid2, $free = 2, $reserve = 0) { global $server; $url = "http://{$server}/build.php?gid=17&t=2"; echo $url; $ch = my_curl_init(); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); curl_close($ch); // get current resource $curr_res = get_res_info($result); if ($curr_res[$rid1 - 1] < $m1) { echo "No enough resource to sell.\n"; return false; } if ($curr_res[$rid1 - 1] < $reserve) { echo "Resource too few.\n"; return false; } // get free merchants // <p class="f10">���l�F 19/20</p><p><input type="image" $ret = preg_match('/<p class="f10">\\S+ ([0-9]+)\\/[0-9]+<\\/p><p><input type="image"/', $result, $matches); if (!$ret) { echo "FAILED : get free merchants.\n"; return false; } $free_m = $matches[1]; echo "Free merchants : {$free_m} \n"; if ($free_m <= $free) { echo "No enough free merchants.\n"; return false; } // <input type="hidden" name="id" value="27"> $ret = preg_match('/<input type="hidden" name="id" value="([0-9]+)">/', $result, $matches); if (!$ret) { die("get id failed."); } $id = $matches[1]; // <input type="hidden" name="a" value="113321"> $ret = preg_match('/<input type="hidden" name="a" value="([0-9]+)">/', $result, $matches); if (!$ret) { die("get a failed."); } $a = $matches[1]; //id=23&t=2&a=4&m1=1000&rid1=2&d2=2&m2=2000&rid2=4&s1.x=21&s1.y=7&s1=ok $postfields = "id={$id}&t=2&a={$a}&m1={$m1}&rid1={$rid1}&d2=2&m2={$m2}&rid2={$rid2}&s1.x=21&s1.y=7&s1=ok"; echo "{$postfields}\n"; $referer = $url; $url = "http://{$server}/build.php"; $ch = my_curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); curl_setopt($ch, CURLOPT_REFERER, $referer); $result = curl_exec($ch); curl_close($ch); return true; }
function transfer_crop_to_xy($village_from, $x, $y, $reserve = 0) { list($result, $carts, $amount_per_cart, $market_id) = get_transfer_page($village_from); if (!$result) { return false; } $curr_res = get_res_info($result); if ($curr_res[3] <= $reserve) { return false; } $total = $curr_res[3] - $reserve; $carts_needed = ceil($total / $amount_per_cart); if ($carts_needed == 0) { return; } if ($carts <= 0) { return; } $total = min($carts, $carts_needed) * $amount_per_cart; transfer_confirm($market_id, $x, $y, 0, 0, 0, $total); echo "Transfering 0 | 0 | 0 | {$total} to ({$x}|{$y})\n"; }
function get_auto_build_resource_field_id($result) { global $race; global $account; global $village; $level_all = get_resource_fields_level($result); $res = get_res_info($result); $warehouse_capacity = $res[4]; $granary_capacity = $res[7]; // roman don't auto build farm // if($race == "roman"){ // unset($res[3], $res[4], $res[5], $res[6], $res[7]); // }else{ unset($res[4], $res[5], $res[6], $res[7]); // } asort($res); // print_r($res); foreach ($res as $type => $num) { $level_type = $level_all[$type]; asort($level_type); //print_r($level_type); list($id, $level) = each($level_type); if ($level >= 10) { continue; } $min_capacity = array(800, 800, 1200, 1200, 1700, 5000, 6300, 7800, 9600, 14000); if ($min_capacity[$level] > $granary_capacity) { if ($granary_capacity > 800) { build_granary(); } else { create_granary(); } return false; } if ($min_capacity[$level] > $warehouse_capacity) { if ($warehouse_capacity == 800) { create_warehouse(); return false; } if ($dorf2_html = build_warehouse()) { if (!strstr($dorf2_html, 'id="map2"')) { echo "get_auto_build_resource_field_id failed: can not find map2.\n"; return false; } $dorf2_buildings = get_dorf2_building_level($dorf2_html); // no main building, try to build one if (!isset($dorf2_buildings['main_building'])) { $id = get_free_space($dorf2_html); if (!$id) { return false; } $id = $id + 18; $sql = "insert into `build`(account, village, id, gid) values({$account}, {$village}, {$id}, 15)"; if (!mysql_query($sql)) { die(mysql_error()); } } else { if ($dorf2_buildings['main_building'] < $level + 3) { $sql = "insert into `build`(account, village, id) values({$account}, {$village}, 26)"; if (!mysql_query($sql)) { die(mysql_error()); } } } return false; } } return $id; } echo "all resource fields level 10.\n"; build_when_all_resource_done(); return false; }
exec($cmd . " > /dev/null &"); sleep(2); } if ($village != 0) { $url = "http://{$server}/dorf1.php?newdid={$village}"; $referer = "http://{$server}/dorf1.php"; } else { $url = "http://{$server}/dorf1.php"; $referer = "http://{$server}/dorf1.php"; } $ch = my_curl_init(true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER, $referer); $result = curl_exec($ch); curl_close($ch); $resources = get_res_info($result); echo "{$resources['0']}/{$resources['4']}<br>"; echo "{$resources['1']}/{$resources['5']}<br>"; echo "{$resources['2']}/{$resources['6']}<br>"; echo "{$resources['3']}/{$resources['7']}<br><br>"; echo "建設中:<br><ul>"; // <td>鋼鐵鑄造廠 (等級 3)</td><td><span id=timer1>0:04:43</span> if (preg_match_all('/<td>([^<]+?)<\\/td><td><span id=timer1>(.+?)<\\/span>/', $result, $matches, PREG_SET_ORDER)) { foreach ($matches as $val) { echo "<li>" . $val[1] . " " . $val[2]; } } echo "</ul><br>\n"; // <area href="build.php?id=1" coords="101,33,28" shape="circle" title="伐木場 等級 0"> // <area href="build.php?id=1" // coords="101,33,28" shape="circle"