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; }
} 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>"; }
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 ""; }