"; unset($lines[$last_line]); // REMOVE TIMESTAMP unset($data_cache); foreach ($lines as $line_number=>$line) { $data_cache[$line_number] = unserialize($line); } } else { //-----------------------------------------------------------------------------------------------------------+ if ($lgsl_random > 0) { unset($data_cache); unset($data_counter); unset($random_file); // GENERATES A RANDOM FILE LIST USING SERVERS FROM THE REAL FILE LIST $lines = file($lgsl_path."lgsl_servers.txt"); // GOES THROUGH LIST REMOVING ANY BLANK LINES SO THEY ARE NOT PICKED $data_counter = 0; unset($data_cache); unset($random_file); foreach ($lines as $line) { if (!trim($line)) { continue; } // SKIP BLANK LINES $data_counter += 1; $data_cache[$data_counter] = $line; } // MAKE SURE NUMBER OF SERVERS TO PICK IS NOT HIGHER THAN THE NUMBER AVAILABLE if ($lgsl_random > count($data_cache)) { $lgsl_random = count($data_cache); } // PICK OUT RANDOM SERVERS WHILE MAKING SURE THAT NO SERVER IS REPEATED TWICE while (count($random_file) < $lgsl_random) { $random = rand(1, count($data_cache)); if (!$random_file[$random]) { $part = explode(":", $data_cache[$random]); $random_file[$random] = trim($part[0]).":".trim($part[1]).":".trim($part[2]).":on"; } } } //-----------------------------------------------------------------------------------------------------------+ // echo "DEBUG: This information was LIVE

"; ignore_user_abort(true); // FINISH WRITING CACHE EVEN IF THE CLIENTS BROWSER IS CLOSED if ($lgsl_random > 0) { $lines = $random_file; // USE RANDOM FILE LIST GENERATED ABOVE } else { $lines = file($lgsl_path."lgsl_servers.txt"); // USE THE REAL FILE LIST } $data_counter = 0; unset($data_cache); foreach ($lines as $line) { if (!trim($line)) { continue; } // SKIP BLANK LINES $part = explode(":", $line); $server_ip = trim($part[0]); // TRIM REMOVES $server_port = trim($part[1]); // ACCIDENTAL SPACES $server_type = trim($part[2]); // AND NEWLINE CHARACTERS $server_module = trim($part[3]); // AND NEWLINE CHARACTERS // if ($server_module != "on") { continue; } // SKIP NON MODULES - DISBALED FOR TILE ADDON $data = lgsl_query($server_ip, $server_port, $server_type, "info"); $data[mapname] = preg_replace("/[^A-Za-z0-9 \_\-]/", "_", strtolower($data[mapname])); // CONVERT FOR FILE $data[gamemod] = preg_replace("/[^A-Za-z0-9 \_\-]/", "_", strtolower($data[gamemod])); // AND FOLDER USAGE $data_counter += 1; $data_cache[$data_counter] = $data; } $fh = fopen($lgsl_path."lgsl_cache.dat","w"); // CHANGED FOR TILE ADDON foreach($data_cache as $line) { $line = serialize($line)."\r\n"; fwrite($fh,$line); } fwrite($fh, time()); fclose($fh); ignore_user_abort(false); } //-----------------------------------------------------------------------------------------------------------+ if (count($data_cache) == 0) { echo "no servers with :on set"; exit; } // STOP IF THE MODULE LIST IS EMPTY //-----------------------------------------------------------------------------------------------------------+ $tile_counter = 0; // TILE ADDON echo ""; // TILE ADDON //-----------------------------------------------------------------------------------------------------------+ foreach($data_cache as $data) { //-----------------------------------------------------------------------------------------------------------+ if ($lgsl_hide_offline && !$data[status]) { continue; } if ($lgsl_hide_empty && $data[status] && $data[players] == 0) { continue; } if ($lgsl_hide_full && $data[status] && $data[players] == $data[maxplayers]) { continue; } //-----------------------------------------------------------------------------------------------------------+ if (!$data[status]) { $lgsl_image_map = $lgsl_path."images/status/noresponse.jpg"; $data[hostname] = "Unknown"; $data[mapname] = "unknown"; } else { $lgsl_image_map = $lgsl_path."images/maps/$data[gametype]/$data[gamemod]/$data[mapname].jpg"; if (!file_exists($lgsl_image_map)) { $lgsl_image_map = $lgsl_path."images/status/noimage.jpg"; } } $lgsl_image_map = str_replace(" ", "%20", $lgsl_image_map); // CHANGE SPACES FOR A VALID URL //-----------------------------------------------------------------------------------------------------------+ if (!$data[password]) { $lgsl_image_pass = $lgsl_path."images/status/nopassword.gif"; } else { $lgsl_image_pass = $lgsl_path."images/status/password.gif"; } //-----------------------------------------------------------------------------------------------------------+ if (strlen($data[hostname]) > $lgsl_hostname_length) { if ($lgsl_hostname_shorten == 1) { $data[hostname] = substr($data[hostname], 0, $lgsl_hostname_length - 3) . "..."; // KEEP LEFT } else if ($lgsl_hostname_shorten == 2) { $data[hostname] = "..." . substr($data[hostname], - $lgsl_hostname_length); // KEEP RIGHT } } $data[hostname] = htmlentities($data[hostname], ENT_QUOTES); // CHANGE SYMBOLS INTO ENTITIES //-----------------------------------------------------------------------------------------------------------+ if ($lgsl_hostname_to_ip) { $data[ip] = gethostbyname($data[ip]); } // CONVERT HOSTNAME TO IP $lgsl_launch = lgsl_get("launch", $data[ip], $data[port], $data[gametype]); // GET SOFTWARE LAUNCH LINK //-----------------------------------------------------------------------------------------------------------+ // TILE ADDON if ($tile_counter == 4) // TILE ADDON { // TILE ADDON $tile_counter = 0; // TILE ADDON echo ""; // TILE ADDON } // TILE ADDON // TILE ADDON $tile_counter += 1; // TILE ADDON //-----------------------------------------------------------------------------------------------------------+ echo ""; // TILE ADDON } echo "
"; // TILE ADDON echo "
$data[hostname]
$data[ip]:$data[port]
$data[mapname]
PLAYERS: $data[players]/$data[maxplayers]

"; echo "
"; // TILE ADDON //-----------------------------------------------------------------------------------------------------------+ ?>