#!/usr/bin/php -q getStatus()) as $line) { if (preg_match('/^players : ([0-9]+)/', $line, $m)) { $players = (int) $m[1]; } else if (preg_match('/^map\s*: ([^\s]+) at/', $line, $m)) { $map = $m[1]; } else if (preg_match('/^hostname\s*:\s*(.*?)\s*$/', $line, $m)) { $hostname = $m[1]; } } if (isset($hostname)) { $sql = 'UPDATE servers SET server_name = \'' . s($hostname) . '\' WHERE server_id = ' . $row['server_id']; mysql_query($sql); } if (!isset($players)) { echo "Could not determine the number of players. Skipping.\n"; continue; } else if ($players > 0) { echo "Players on the server; not interfering.\n"; continue; } $sql = 'SELECT map_name, SUM(TIMESTAMPDIFF(MINUTE, session_starttime, session_endtime)) AS time FROM maps NATURAL JOIN games NATURAL JOIN sessions GROUP BY map_name ORDER BY time DESC LIMIT 0,10'; $res = mysql_query($sql); $maps = array(); while ($row = mysql_fetch_assoc($res)) { if ($row['map_name'] == $map) { continue; } $maps[] = $row['map_name']; } echo "Currently $players players on map $map.\n"; $nextmap = $maps[rand(0, count($maps)-1)]; echo "Selected map $nextmap. Changing... "; $rcon->execute('changelevel ' . $nextmap); echo "Done\n\n"; } echo str_repeat('-', 80), "\n"; ?>