Ejemplo n.º 1
0
function ResearchNetwork($planetid, $id)
{
    global $db_prefix;
    $planet = GetPlanet($planetid);
    $player_id = $planet['owner_id'];
    $user = LoadUser($player_id);
    $ign = $user["r123"];
    $reslab = $planet["b31"];
    $labs = array();
    $labnum = 0;
    // Перечислить планеты игрока (луны и прочие спец-объекты не перечислять). Также пропускать планеты у которых нет ИЛ.
    $query = "SELECT * FROM " . $db_prefix . "planets WHERE owner_id = {$player_id} AND type < 10000 AND type > 0 AND b31 > 0";
    $result = dbquery($query);
    $pnum = dbrows($result);
    // Получить все доступные лабы, отсортированные по убыванию.
    while ($pnum--) {
        $p = dbarray($result);
        if ($p['planet_id'] == $planetid) {
            continue;
        }
        // Пропустить текущую планету.
        if (ResearchMeetRequirement($user, $p, $id)) {
            $labs[$labnum++] = $p["b31"];
        }
    }
    rsort($labs);
    //print_r ($labs ); echo "";
    // Присоединить +МИС доступных лабораторий.
    for ($i = 0; $i < $ign && $i < $labnum; $i++) {
        $reslab += $labs[$i];
    }
    //echo "$reslab <br>";
    return $reslab;
}
Ejemplo n.º 2
0
 }
 echo "<table align=top><tr><td style='background-color:transparent;'>  ";
 if ($GlobalUser['useskin']) {
     echo "<table width=\"530\">\n";
 } else {
     echo "<table width=\"468\">\n";
 }
 echo "          <tr> \n";
 echo "          <td class=l colspan=\"2\">Описание</td> \n";
 echo "          <td class=l><b>Кол-во</b></td> \n";
 echo "          </tr> \n\n";
 // Проверить есть ли лаборатория на планете.
 if ($aktplanet['b31']) {
     // Вывести список доступных исследований.
     foreach ($resmap as $i => $id) {
         if (!ResearchMeetRequirement($GlobalUser, $aktplanet, $id)) {
             continue;
         }
         $reslab = ResearchNetwork($aktplanet['planet_id'], $id);
         $level = $GlobalUser['r' . $id] + 1;
         echo "<tr>             ";
         if ($GlobalUser['useskin']) {
             echo "                <td class=l>\n";
             echo "    \t\t\t<a href=index.php?page=infos&session={$session}&gid={$id}>\n";
             echo "    \t\t\t<img border='0' src=\"" . UserSkin() . "gebaeude/{$id}.gif\" align='top' width='120' height='120'>\n";
             echo "    \t\t\t</a>\n";
             echo "    \t\t\t</td>\n";
             echo "        <td class=l >";
         } else {
             echo "        <td class=l colspan=2>";
         }
Ejemplo n.º 3
0
function CanResearch($user, $planet, $id, $lvl)
{
    global $db_prefix, $GlobalUni;
    $resmap = array(106, 108, 109, 110, 111, 113, 114, 115, 117, 118, 120, 121, 122, 123, 124, 199);
    if ($GlobalUni['freeze']) {
        return "Вселенная на паузе!";
    }
    // Исследование уже ведется?
    $result = GetResearchQueue($user['player_id']);
    $resq = dbarray($result);
    if ($resq) {
        return "Исследование уже ведется!";
    }
    // Исследовательская лаборатория усовершенствуется хоть на одной планете ?
    $query = "SELECT * FROM " . $db_prefix . "queue WHERE obj_id = 31 AND (type = 'Build' OR type = 'Demolish') AND owner_id = " . $user['player_id'];
    $result = dbquery($query);
    $busy = dbrows($result) > 0;
    if ($busy) {
        return "Исследовательская лаборатория усовершенствуется!";
    }
    $res = ResearchPrice($id, $lvl);
    $m = $res['m'];
    $k = $res['k'];
    $d = $res['d'];
    $e = $res['e'];
    // Не исследование
    if (!in_array($id, $resmap)) {
        return "Неверный ID!";
    } else {
        if ($user['vacation']) {
            return "В режиме отпуска (РО) исследование невозможно.";
        } else {
            if ($planet['owner_id'] != $user['player_id']) {
                return "Неправильная планета!";
            } else {
                if (!IsEnoughResources($planet, $m, $k, $d, $e)) {
                    return "У Вас недостаточно ресурсов!";
                } else {
                    if (!ResearchMeetRequirement($user, $planet, $id)) {
                        return "Необходимые требования не выполнены!";
                    }
                }
            }
        }
    }
    return "";
}