Originally Posted by [dp
Janson ]
but php works with sockets...sockets=>timeouts(sometimes) and i can't stand them xD And i can't find any GetServerRule in the search here there is just a setserverrule in YSF.... |
Originally Posted by [dp
Janson ]
okay...can you give me the code? would help me... |
function GetGTAServerStatus($image,$hostname=game_server_host,$port=game_server_port) { $realtimeout = ini_get("default_socket_timeout"); ini_set("default_socket_timeout","1"); if(!isset($image)) $image = 1; if(!isset($hostname)) $fp = fsockopen("udp://".game_server_host, game_server_port, $errno, $errstr); else if(isset($hostname) && !isset($port)) $fp = fsockopen("udp://".$hostname, 7777, $errno, $errstr); else if(isset($hostname) && isset($port)) $fp = fsockopen("udp://".$hostname, $port, $errno, $errstr); ini_set("default_socket_timeout",$realtimeout); if($fp) { $packet = 'SAMP'; $packet .= chr(strtok($hostname, '.')).chr(strtok('.')).chr(strtok('.')).chr(strtok('.')); $packet .= chr($port & 0xFF); $packet .= chr($port >> 8 & 0xFF); fwrite($fp, $packet.'i'); fread($fp, 11); $is_passworded = ord(fread($fp, 1)); $plr_count = ord(fread($fp, 2)); $max_plrs = ord(fread($fp, 2)); $strlen = ord(fread($fp, 4)); $hostname = fread($fp, $strlen); fclose($fp); if(strlen($hostname) > 0) { if($image) echo("<center><a href=\"status.php\"><img src=\"./images/serverup.png\" alt=\"The Game Server Is Up!\" border=\"0\"></a></center>"); return 1; } if(strlen($hostname) == 0) { if($image) echo("<center><img src=\"./images/serverdown.png\" alt=\"The Game Server Is Down!\"></center>"); return 0; } } if($image) echo("<center><img src=\"./images/serverdown.png\" alt=\"The Game Server Is Down!\"></center>"); return 0; }
define("game_server_host","Host"); define("game_server_port","Port");