Skip to content

Server Status And Online Players For Hauthd

Featured Replies

This PHP is for Hint's hAuthD (http://www.hauthd.org)

Enjoy.

<?php 
class ServerStatus 
{ 
   private $ip, $port, $interval, $timeout; 

   public function __construct($ip = '127.0.0.1', $port = 2106, $interval = 30, $timeout = 1) 
   { 
      $this->ip = $ip; 
      $this->port = $port; 
      $this->interval = $interval; 
      $this->timeout = $timeout; 
   } 

   public function GetStatusFromAuth() 
   { 
      $status = array(); 
      $f = @fsockopen($this->ip, $this->port, $errno, $errstr, $this->timeout); 
      if ($f) 
      { 
         do 
         { 
            $sec = floor($this->timeout); 
            $msec = ($this->timeout - $sec) * 1000; 
            socket_set_timeout($f, $sec, $msec); 

            $buf = fread($f, 2); 
            if (strlen($buf) != 2) break; 
            $a = unpack('vsize', $buf); 
            $size = $a['size'] - 2; 
            if ($size < 1) break; 

            $buf = fread($f, $size); 
            if (strlen($buf) != $size) break; 

            fwrite($f, "\x03\x00\xFE", 3); 

            $buf = fread($f, 2); 
            if (strlen($buf) != 2) break; 
            $a = unpack('vsize', $buf); 
            $size = $a['size'] - 2; 
            if ($size < 1) break; 

            $buf = fread($f, $size); 
            if (strlen($buf) != $size) break; 

            if (ord($buf[0]) != 0xFE) break; 
            if (strlen($buf) < 3) break; 
            $amount = ord($buf[1]) + ord($buf[2]) * 256; 
            $buf = substr($buf, 3); 
            if (strlen($buf) != $amount * 4) break; 
            $a = unpack('v' . ($amount * 2), $buf); 
            for ($i = 0; $i < $amount; $i++) $status[$a[$i * 2 + 1]] = $a[$i * 2 + 2]; 
         } 
         while (false); 
         fclose ($f); 
      } 
      return $status; 
   } 

   public function GetStatus() 
   { 
      $fn = dirname(__FILE__) . '/status.txt'; 
      $status = array(); 
      fclose(fopen($fn, 'a+b')); 
      $f = @fopen($fn, 'r+b'); 
      if ($f) 
      { 
         flock($f, LOCK_EX); 
         $cache = unserialize(fread($f, 1024)); 
         $status = @$cache['status']; 
         $time = @$cache['time']; 
         if (!IsSet($status) || !IsSet($time)) 
         { 
            $status = array(); 
            $time = 0; 
         } 
         if (time() - $time > $this->interval) 
         { 
            $new = $this->GetStatusFromAuth(); 
            foreach ($status as $id => $value) 
            { 
               $c = &$status[$id]; 
               $c['on'] = false; 
               $c['cur'] = 0; 
            } 
            foreach ($new as $id => $value) 
            { 
               if (!IsSet($status[$id])) $status[$id] = array('on' => false, 'cur' => 0, 'max' => 0); 
               $c = &$status[$id]; 
               $c['on'] = true; 
               $c['cur'] = $new[$id]; 
               if ($c['cur'] > $c['max']) $c['max'] = $c['cur']; 
            } 
            $cache = array('status' => $status, 'time' => time()); 
            $s = serialize($cache); 
            rewind($f); 
            ftruncate($f, 0); 
            fwrite($f, $s, strlen($s)); 
         } 
         fclose($f); 
      } 
      return $status; 
   } 

   public function GetText($id, $online, $offline) 
   { 
      $status = $this->GetStatus(); 
      if (IsSet($status[$id])) $c = &$status[$id]; else $c = array('on' => false, 'cur' => 0, 'max' => 0); 
      $res = str_replace(array('%c', '%m'), array($c['cur'], $c['max']), $c['on'] ? $online : $offline); 
      return $res; 
   } 
} 

$status = new ServerStatus('127.0.0.1'); 
$online = 'Status: <b><font color="#00AA00">ONLINE</font></b> | Players: <b>%c</b> | Record: <b>%m</b>'; 
$offline = 'Status: <b><font color="#FF0000">OFFLINE</font></b> | Players: <b>%c</b> | Record: <b>%m</b>'; 
echo $status->GetText(1, $online, $offline); //1 - ServerID 
?> 

  • 1 year later...

and it is possible to make this script cheat online?

  • Author

and it is possible to make this script cheat online?

What do you mean by cheat online ? You mean fake the online amount of people ?

 

Sighed you have script for online players?

 

  • Author

Sighed you have script for online players?

That scripts does both things. But it requires to use hAuthD.

What do you mean by cheat online ? You mean fake the online amount of people ?yes, can I do that would including online was multiplied 5 times for example

yes, can I do that would including online was multiplied 5 times for example?

 

Go inside hAuthD.ini

[Online]
Multiplier = 1,0
UserCount = 5
Interval = 30

thank you

  • 1 month later...

working on localhost but when I copy it to webpage ftp it shows offline 0 player, what do I need to do?

working on localhost but when I copy it to webpage ftp it shows offline 0 player, what do I need to do?

make sure your web host has mssql extenstion and you added the right ip/user/pas.

make sure your web host has mssql extenstion and you added the right ip/user/pas.

 

And this, sometimes will be a problem as we already know :D

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.