Jump to content
  • 0

pomoc SAMP server status


Arthom

Dotaz

Ahojte, neviem či tu PHP ešte žije, ale nevedel som, koho sa mám spýtať :) Proste robil som si menší SAMP ServerStatus v PHP (áno ja) a nechce mi fungovať no, urobil som si to trošku inak než som chcel aby som to mohol testovať. Takže tu som vybral náhodný server z fakaheda.eu, ktorý je pre SAMP (nie som doma a tu na ntb nemám sampko ani nič) www.samp.x-house.cz/status/status.php?ip=81.0.217.177&port=27393

 

iba to načítava a načítava a nič ... prikladám aj kód zo status.php:

<?php
$ip = $_GET['ip'];
$port = $_GET['port'];
if (!isset($ip)) $ip = '127.0.0.1';
if (!isset($port)) $port = '7777';
$fp = fsockopen('udp://'.$ip, $port, $errno, $errstr);
if (!$fp) {
echo '<img src=./status/images/offline.png />';
echo 'Server je <span color=red>OFFLINE</span>';
echo '0 / 0';
echo '...';
} else {
$packet = 'SAMP';
$packet .= chr(strtok($ip, '.'));
$packet .= chr(strtok('.'));
$packet .= chr(strtok('.'));
$packet .= chr(strtok('.'));
$packet .= chr($port >> 8 & 0xFF);
fwrite($fp, $packet.'i');
fread($fp, 11);

$hraci	 = ord(fread($fp, 2));
$max_hraci = ord(fread($fp, 2));
$strlen = ord(fread($fp, 4));
$hostname = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$mapname = fread($fp, $strlen);

echo '<img src=./status/images/online.png />';
echo $hostname;
echo $hraci.'/'.$max_hraci;
echo $mapname;
fclose($fp);
}
?>

 

a toto mi vypíše keď nejak sa to skončí:

Warning: fread() [function.fread]: Length parameter must be greater than 0 in /data/web/virtuals/42116/virtual/www/subdom/samp/status/status.php on line 27
Warning: fread() [function.fread]: Length parameter must be greater than 0 in /data/web/virtuals/42116/virtual/www/subdom/samp/status/status.php on line 29
0/0

 

zabudol som ešte riadky:

26 = $strlen = ord(fread($fp, 4));
27 = $hostname = fread($fp, $strlen);
28 = $strlen = ord(fread($fp, 4));
29 = $mapname = fread($fp, $strlen);

 

Ak by ste mi vedeli pomôcť, tak som vám vdačný :33 ďakujem predbežne za pomoc :d

Link to comment
Share on other sites

2 odpovědí na tuto otázku

Recommended Posts

  • 0

jsem našel status na svem hdd

mam to takhle

 

<?php
$ip = $_GET["ip"];
$port = $_GET["port"];
 $fp = fsockopen('udp://' . $ip, $port);

 if (!$fp) 
 {
   echo"<tr><td>IP Adresa Serveru</td><td>$ip</td><tr>";
   echo"<tr><td>Status Serveru</td><td>OFF-Line</td><tr>";
   fclose($fp);
 }
 else
 {
   $packet = 'SAMP';
 $packet .= chr(strtok($ip, '.'));
 $packet .= chr(strtok('.'));
 $packet .= chr(strtok('.'));
 $packet .= chr(strtok('.'));
 $packet .= chr($port & 0xFF);
 $packet .= chr($port >> 8 & 0xFF);
 fwrite($fp, $packet.'i');
 fread($fp, 11);

  stream_set_blocking($fp, TRUE);
   stream_set_timeout($fp,0.5);
   $info = stream_get_meta_data($fp);

   $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);
  $strlen	    = ord(fread($fp, 4));
  $gamemode	  = @fread($fp, $strlen);
  $strlen	    = ord(fread($fp, 4));
  $mapname	   = @fread($fp, $strlen);

  if(!$hostname)
   {
   echo"<tr><td>IP Adresa Serveru</td><td>$ip</td><tr>";
   echo"<tr><td>Status Serveru</td><td>OFF-Line</td><tr>";
  }
   else
   {
   echo"Jméno Serveru</td><td>$hostname";
   echo"IP Adresa</td><td>$ip:$port";
   echo"Hrací Mod</td><td>$gamemode";
   echo"Online Hracu</td><td>$plr_count/$max_plrs";
   echo"Nazev Mapy</td><td>$mapname";
  fclose($fp);
   }
 }
?>

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...