function RecruitOfficer($player_id, $off, $seconds) { global $db_prefix; $query = "SELECT * FROM " . $db_prefix . "queue WHERE type = '" . $off . "' AND owner_id = {$player_id} LIMIT 1"; $result = dbquery($query); if (dbrows($result) == 0) { AddQueue($player_id, $off, 0, 0, 0, time(), $seconds, 0); } else { $queue = dbarray($result); $query = "UPDATE " . $db_prefix . "queue SET end = end + {$seconds} WHERE task_id = " . $queue['task_id']; dbquery($query); } }
function LaunchRockets($origin, $target, $seconds, $amount, $type) { global $db_prefix; $uni = LoadUniverse(); if ($uni['freeze']) { return; } if ($amount > $origin['d503']) { return; } // Нельзя запустить ракет больше чем имеется на планете $now = time(); $prio = 200 + 20; // Списать МПР с планеты. $origin['d503'] -= $amount; SetPlanetDefense($origin['planet_id'], $origin); // Добавить ракетную атаку. $fleet_obj = array(null, $origin['owner_id'], 0, 0, 0, 0, 0, 20, $origin['planet_id'], $target['planet_id'], $seconds, 0, $amount, $type, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); $fleet_id = AddDBRow($fleet_obj, 'fleet'); // Запись в лог $weeks = $now - 4 * (7 * 24 * 60 * 60); $query = "DELETE FROM " . $db_prefix . "fleetlogs WHERE start < {$weeks};"; dbquery($query); $fleetlog = array(null, $origin['owner_id'], $target['owner_id'], 0, 0, 0, 0, 0, 0, 0, 0, 20, $seconds, 0, $now, $now + $seconds, $origin['g'], $origin['s'], $origin['p'], $origin['type'], $target['g'], $target['s'], $target['p'], $target['type'], $amount, $type, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); AddDBRow($fleetlog, 'fleetlogs'); // Добавить задание в глобальную очередь событий. AddQueue($origin['owner_id'], "Fleet", $fleet_id, 0, 0, $now, $seconds, $prio); return $fleet_id; }
function BotBuildFleet($obj_id, $n) { global $db_prefix, $BotID, $BotNow, $GlobalUni; $user = LoadUser($BotID); $aktplanet = GetPlanet($user['aktplanet']); $text = AddShipyard($user['player_id'], $user['aktplanet'], $obj_id, $n, 0); if ($text === '') { $speed = $GlobalUni['speed']; $now = ShipyardLatestTime($aktplanet, $BotNow); $shipyard = $aktplanet["b21"]; $nanits = $aktplanet["b15"]; $seconds = ShipyardDuration($obj_id, $shipyard, $nanits, $speed); AddQueue($user['player_id'], "Shipyard", $aktplanet['planet_id'], $obj_id, $n, $now, $seconds); UpdatePlanetActivity($user['aktplanet'], $BotNow); return $seconds; } else { return 0; } }