Exemple #1
0
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;
}
Exemple #2
0
         $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());
                 }
Exemple #3
0
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;
}
Exemple #4
0
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";
}
Exemple #5
0
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;
}
Exemple #6
0
     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] . "&nbsp;" . $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"