Jump to content
GIGN Forum

Monitors.


Recommended Posts

Izpētīju visus topikus, kas ar monitoriem saistīti, bet neatradu.

Ja neskaita worm topiku, bet es tur neko diži nesapratu!

Man nepieciešams cs monitors, vienā failā, bez .amxx, mysql connecta.

Kas uzrāda plaierus un fragus - fragi nebūtu obligāti, reiz man tāds bija, bet tas bija sen un vairs nav taisnība :D

edit: atradu ko šādu taču neiet (Dull)

Varbūt zinat kas pa prob.

???<?
/*
  Autors: -BounTy^ & Lumix
*/
//iShark - All rights reserved.
$servername = "#1 Nav savienojuma";
$adrese = "dd2.pick.lv:27015";
$adrese_mapeem = "img/maps/"; 
$formats = ".jpg";
$width = "114";
$height = "60";
$navbildes = "noimage.jpg";
$offbilde = "offline.png";
//iShark - All rights reserved.


Class CounterStrikeX {
var $m_playerinfo  = "";  // Info about players
var $m_servervars  = "";  // Info about the server current map, players etc
var $m_serverrules = "";  // Server rules
var $m_challenge   = "";  // Server challenge number

//
// Get exact time, used for timeout counting
//
function timenow() {
  return doubleval(ereg_replace('^0\.([0-9]*) ([0-9]*)$','\\2.\\1',microtime()));
}

//
// Read raw data from server
//
function getServerData($command,$serveraddress,$portnumber,$waittime) {
  $serverdata    = "";
  $serverdatalen = 0;
  
  if ($waittime< 500) $waittime= 500;
  if ($waittime>2000) $waittime=2000;
  $waittime=doubleval($waittime/1000.0);

  if (!$cssocket = @fsockopen("udp://".$serveraddress,$portnumber,$errnr)) {
   $this->errmsg="No connection";
   return "";
  }

  socket_set_blocking($cssocket,true);
  socket_set_timeout($cssocket,0,500000);
  fwrite($cssocket,$command,strlen($command));
  // Mark
  $starttime=$this->timenow();
  do {
   $serverdata.=fgetc($cssocket);
   $serverdatalen++;
   $socketstatus=socket_get_status($cssocket);
   if ($this->timenow()>($starttime+$waittime)) {
    $this->errmsg = "Connection timed out";
    fclose($cssocket);
    return "";
   }
  } while ($socketstatus["unread_bytes"] );
  fclose($cssocket);
  return $serverdata;        
}

function getnextstring(&$data) {
  $temp="";
  $counter=0;
  while (ord($data[$counter++])!=0) $temp.=$data[$counter-1];
  $data=substr($data,strlen($temp)+1);
  return $temp;
}

function getnextbytevalue(&$data) {
  $temp=ord($data[0]);
   $data=substr($data,1);
   return $temp;
}

function getnextfragvalue(&$data) {
  $frags=ord($data[0])+(ord($data[1])<<8)+(ord($data[2])<<16)+(ord($data[3])<<24);
  if ($frags>=4294967294) $frags-=4294967296;
  $data=substr($data,4);
  return $frags;
}

function getnextplaytime(&$data) {
  $decnumber=ord($data[0])+(ord($data[1])<<8)+(ord($data[2])<<16)+(ord($data[3])<<24);
  $binnumber=base_convert($decnumber,10,2);
  while (strlen($binnumber) < 32) $binnumber="0".$binnumber;
  $exp=abs(base_convert(substr($binnumber,1,8),2,10))-127;
  if (substr($binnumber,0,1)=="1") $exp=0-$exp;
  $man=1;$manadd=0.5;
  for ($counter=9;$counter<32;$counter++) {
   if (substr($binnumber,$counter,1)=="1") $man+=$manadd;
   $manadd=$manadd/2;
  }
  $time=round(pow(2,$exp)*$man);
  $playtime="";
  if ($time>3600) {
   $playtime=sprintf("%2d:",$time/3600);
  } 
  $time%=3600;
  $playtime=$playtime.sprintf("%2d:",$time/60);    
  $time%=60;
  $playtime=$playtime.sprintf("%2d",$time);
  $data=substr($data,5);
  return $playtime;
}


// **********************************************************************
// getServerRules
// Read rules/setup from the gameserver into m_serverrules
// Return true if successful
// **********************************************************************
function getServerRules($serveraddress,$portnumber,$waittime) {
  // Get a challenge number
  if (!$this->getChallenge($serveraddress,$portnumber,$waittime)) return false;

  // Send a request for "rules" to the server
  $cmd        = "\xFF\xFF\xFF\xFFV" . $this->m_challenge;
  $serverdata = $this->getServerData($cmd,$serveraddress,$portnumber,$waittime);

  // Check length of returned data, if < 5 something went wrong
  if (strlen($serverdata)<5) return false;            
  // Figure out how many rules there are
  $rules=(ord($serverdata[5]))+(ord($serverdata[6])*256);
  if ($rules != 0) {
   // Strip OOB data                
   $serverdata = substr($serverdata,7);
   for ($i=1;$i<=$rules;$i++) {
    $rulename  = $this->getnextstring($serverdata);
    $rulevalue = $this->getnextstring($serverdata);
    $this->m_serverrules[$rulename]=$rulevalue;
   }
   return true;
  } else {
   return false;
  }
}    


// **********************************************************************
// getServerinfo
// Read information about the gameserver into m_servervars
// Serveraddress,servername,current map etc etc
// Return true if successful
// **********************************************************************
function getServerInfo($serveraddress,$portnumber,$waittime) {
  // Send a request for "info" to the server
  $cmd        = "\xFF\xFF\xFF\xFFTSource Engine Query\x00";
  $serverdata = $this->getServerData($cmd,$serveraddress,$portnumber,$waittime);

  // Check length of returned data, if < 5 something went wrong
  if (strlen($serverdata)<5) return false;      
  // Strip OOB data                
  $serverdata=substr($serverdata,6);
  $this->m_servervars["serveraddress"]  = $this->getnextstring($serverdata);
  $this->m_servervars["servername"]     = $this->getnextstring($serverdata);
  $this->m_servervars["mapname"]        = $this->getnextstring($serverdata);
  $this->m_servervars["game"]           = $this->getnextstring($serverdata);
  $this->m_servervars["gamename"]       = $this->getnextstring($serverdata);
  $this->m_servervars["currentplayers"] = $this->getnextbytevalue($serverdata);
  $this->m_servervars["maxplayers"]     = $this->getnextbytevalue($serverdata);    
  
  // Get a challenge number
  if (!$this->getChallenge($serveraddress,$portnumber,$waittime)) return false;

  // Send a request for "rules" to the server
  $cmd        = "\xFF\xFF\xFF\xFFU" . $this->m_challenge;
  $serverdata = $this->getServerData($cmd,$serveraddress,$portnumber,$waittime);
  
  // Check length of returned data, if < 5 something went wrong
  if (strlen($serverdata)<5) return false;

  // Check number of players to read data for
  $players = ord($serverdata[5]);
  
   // Strip OOB data and other stuff
  $serverdata = substr($serverdata,7);
  
  for ($i=1;$i<=$players;$i++) {
   $playername             = htmlspecialchars($this->getnextstring($serverdata));
   $frags                  = $this->getnextfragvalue($serverdata);
   $playtime               = $this->getnextplaytime($serverdata);
   $this->m_playerinfo[$i] = array("name"=>$playername,"frags"=>$frags,"time"=>$playtime);
  }
  // Sort players in fragorder
  if ($players>1) usort($this->m_playerinfo,"fragsort");
  return true;
}    


// **********************************************************************
// getChallenge
// Read a challenge number from the gameserver into m_challenge
// Return true if successful
// **********************************************************************
function getChallenge($serveraddress,$portnumber,$waittime) {
  $cmd        = "\xFF\xFF\xFF\xFFW";
  $serverdata = $this->getServerData($cmd,$serveraddress,$portnumber,$waittime);

  // Check length of returned data, if < 5 something went wrong
  if (strlen($serverdata)<5) return false;
  $this->m_challenge = substr($serverdata,5);
  return true;
}

}

    list($serverip, $serverport) = explode(":", $adrese);
    $csinfo=new CounterStrikeX;
    $status=$csinfo->getServerInfo($serverip,$serverport,1000);
    if($csinfo->m_servervars["gamename"] == "??") {
      $servers["servername"] = htmlentities($csinfo->m_servervars["serveraddress"]);
      $servers["gamename"] = $csinfo->m_servervars["game"];
      $servers["game"] = $csinfo->m_servervars["mapname"];
      $servers["mapname"] = $csinfo->m_servervars["servername"];
      $servers["currentplayers"] = $csinfo->m_servervars["currentplayers"];
      $servers["maxplayers"] = $csinfo->m_servervars["maxplayers"];
      $servers["type"] = "HL2";
       }
    //HL1
      else {
      $servers["servername"] = htmlentities($csinfo->m_servervars["servername"]);
      $servers["gamename"] = $csinfo->m_servervars["gamename"];
      $servers["game"] = $csinfo->m_servervars["game"];
      $servers["mapname"] = $csinfo->m_servervars["mapname"];
      $servers["currentplayers"] = $csinfo->m_servervars["currentplayers"];
      $servers["maxplayers"] = $csinfo->m_servervars["maxplayers"];
      $servers["type"] = "HL1";
      }
    $tag = $servers["currentplayers"];
    $max = $servers["maxplayers"];
    $mape = $servers["mapname"];

    
    $nosaukums = $servers["servername"];
    if (empty($mape)) {
    $nosaukums = $servername;}
    $statuss = $max-$tag;
    if (empty($mape)) {
    $statuss = "off"; }
    if ($statuss == "1") {
    $statuss = "viens br??vs slots";
    } else if ($statuss == "0") {
    $statuss = "nav br??vu slotu";
    } else if ($statuss == "off") {
    $statuss = "izsl??gts";
    } else {
    $statuss = "$statuss br??vi sloti";}
    
    $players = "<font style='color: green;'>$tag</font>/<font style='color: red;'>$max</font>";
    if (empty($mape)) {
    $players = "<font style='color: red;'>-/-</font>"; }
    
    $bildesfails = "".$adrese_mapeem."".$mape."".$formats."";
    if ( !file_exists($bildesfails) ) {
    $attels = $navbildes;
    }
    else {
    $bilde = $mape;
    $attels = "".$bilde."".$formats."";
    }
    if (empty($mape)) {
    $attels = $offbilde;
    }
    if (empty($mape)) {
    $mape = "Nav"; }
    
echo "<table cellspacing='0' cellpadding='0' border='0' style='margin: 0 auto;padding:0'>
<tbody><tr><td align='center' colspan='2'><img alt='' src='".$adrese_mapeem."".$attels."' class='img_border' style='border:1px solid #021A40;padding:1px;'/></td></tr><tr><td>Adrese:</td><td align='right'><strong>80.233.174.60:27015</strong></td></tr><tr><td>Statuss:</td><td align='right'>".$statuss."</td></tr><tr><td>Karte:</td><td align='right'>".$mape."</td></tr><tr><td>Speletaji:</td><td align='right'>".$players."</td></tr>";


for ($i=1;$i<=$playersn;$i++)
{
$n=ord(substr($st,0,1));
$st=substr($st,1);
$name=SubStr($st,0,StrPos($st,chr(0)));
$kills=ord(substr($st,StrPos($st,chr(0))+1,1));
if ($kills==255){$kills=-1;}
if ($kills==254){$kills=-2;}
if ($kills==253){$kills=-3;}
if ($kills==252){$kills=-4;}
$st=substr($st,StrPos($st,chr(0)));
$st=substr($st,9);
echo("<tr><td colspan=2><div style='float:left;width:105px;overflow:hidden;word-wrap:whitespace'>$name</div><div style='float:right'>($kills)</div></td></tr>");
};


  
  for ($i=1;$i<=$players;$i++) {
   $playername             = htmlspecialchars($this->getnextstring($serverdata));
   $frags                  = $this->getnextfragvalue($serverdata);
   $playtime               = $this->getnextplaytime($serverdata);
   $this->m_playerinfo[$i] = array("name"=>$playername,"frags"=>$frags,"time"=>$playtime);
   
   echo $this->m_playerinfo[$i];
   
  }
  // Sort players in fragorder
  if ($players>1) usort($this->m_playerinfo,"fragsort");



?></tbody></table>

Edited by anoance
Link to comment
Share on other sites

ņēm šito!

<div style="color:#000000">

<?php

error_reporting(0);

//servera adrese

$adrese = "csxg.sytes.net:27015";

//maps address

$maps = "http://revenge.lv/includes/monitors/maps/";

function fragsort ($a, $B) {

if ($a["frags"] == $b["frags"]) return 0;

if ($a["frags"] > $b["frags"]) {

return -1;

} else {

return 1;

}

}

Class CounterStrike {

var $m_playerinfo = ""; // Info about players

var $m_servervars = ""; // Info about the server current map, players etc

var $m_serverrules = ""; // Server rules

var $m_challenge = ""; // Server challenge number

//

// Get exact time, used for timeout counting

//

function timenow() {

return doubleval(ereg_replace('^0\.([0-9]*) ([0-9]*)$','\\2.\\1',microtime()));

}

//

// Read raw data from server

//

function getServerData($command,$serveraddress,$portnumber,$waittime) {

$serverdata = "";

$serverdatalen = 0;

if ($waittime< 500) $waittime= 500;

if ($waittime>2000) $waittime=2000;

$waittime=doubleval($waittime/1000.0);

if (!$cssocket = @fsockopen("udp://".$serveraddress,$portnumber,$errnr)) {

$this->errmsg="No connection";

return "";

}

socket_set_blocking($cssocket,true);

socket_set_timeout($cssocket,0,500000);

fwrite($cssocket,$command,strlen($command));

// Mark

$starttime=$this->timenow();

do {

$serverdata.=fgetc($cssocket);

$serverdatalen++;

$socketstatus=socket_get_status($cssocket);

if ($this->timenow()>($starttime+$waittime)) {

$this->errmsg = "Connection timed out";

fclose($cssocket);

return "";

}

} while ($socketstatus["unread_bytes"] );

fclose($cssocket);

return $serverdata;

}

function getnextstring(&$data) {

$temp="";

$counter=0;

while (ord($data[$counter++])!=0) $temp.=$data[$counter-1];

$data=substr($data,strlen($temp)+1);

return $temp;

}

function getnextbytevalue(&$data) {

$temp=ord($data[0]);

$data=substr($data,1);

return $temp;

}

function getnextfragvalue(&$data) {

$frags=ord($data[0])+(ord($data[1])<<8)+(ord($data[2])<<16)+(ord($data[3])<<24);

if ($frags>=4294967294) $frags-=4294967296;

$data=substr($data,4);

return $frags;

}

function getnextplaytime(&$data) {

$decnumber=ord($data[0])+(ord($data[1])<<8)+(ord($data[2])<<16)+(ord($data[3])<<24);

$binnumber=base_convert($decnumber,10,2);

while (strlen($binnumber) < 32) $binnumber="0".$binnumber;

$exp=abs(base_convert(substr($binnumber,1,8),2,10))-127;

if (substr($binnumber,0,1)=="1") $exp=0-$exp;

$man=1;$manadd=0.5;

for ($counter=9;$counter<32;$counter++) {

if (substr($binnumber,$counter,1)=="1") $man+=$manadd;

$manadd=$manadd/2;

}

$time=round(pow(2,$exp)*$man);

$playtime="";

if ($time>3600) {

$playtime=sprintf("%2d:",$time/3600);

}

$time%=3600;

$playtime=$playtime.sprintf("%2d:",$time/60);

$time%=60;

$playtime=$playtime.sprintf("%2d",$time);

$data=substr($data,5);

return $playtime;

}

// **********************************************************************

// getServerRules

// Read rules/setup from the gameserver into m_serverrules

// Return true if successful

// **********************************************************************

function getServerRules($serveraddress,$portnumber,$waittime) {

// Get a challenge number

if (!$this->getChallenge($serveraddress,$portnumber,$waittime)) return false;

// Send a request for "rules" to the server

$cmd = "\xFF\xFF\xFF\xFFV" . $this->m_challenge;

$serverdata = $this->getServerData($cmd,$serveraddress,$portnumber,$waittime);

// Check length of returned data, if < 5 something went wrong

if (strlen($serverdata)<5) return false;

// Figure out how many rules there are

$rules=(ord($serverdata[5]))+(ord($serverdata[6])*256);

if ($rules != 0) {

// Strip OOB data

$serverdata = substr($serverdata,7);

for ($i=1;$i<=$rules;$i++) {

$rulename = $this->getnextstring($serverdata);

$rulevalue = $this->getnextstring($serverdata);

$this->m_serverrules[$rulename]=$rulevalue;

}

return true;

} else {

return false;

}

}

// **********************************************************************

// getServerinfo

// Read information about the gameserver into m_servervars

// Serveraddress,servername,current map etc etc

// Return true if successful

// **********************************************************************

function getServerInfo($serveraddress,$portnumber,$waittime) {

// Send a request for "info" to the server

$cmd = "\xFF\xFF\xFF\xFFTSource Engine Query\x00";

$serverdata = $this->getServerData($cmd,$serveraddress,$portnumber,$waittime);

// Check length of returned data, if < 5 something went wrong

if (strlen($serverdata)<5) return false;

// Strip OOB data

$serverdata=substr($serverdata,6);

$this->m_servervars["serveraddress"] = $this->getnextstring($serverdata);

$this->m_servervars["servername"] = $this->getnextstring($serverdata);

$this->m_servervars["mapname"] = $this->getnextstring($serverdata);

$this->m_servervars["game"] = $this->getnextstring($serverdata);

$this->m_servervars["gamename"] = $this->getnextstring($serverdata);

$this->m_servervars["currentplayers"] = $this->getnextbytevalue($serverdata);

$this->m_servervars["maxplayers"] = $this->getnextbytevalue($serverdata);

// Get a challenge number

if (!$this->getChallenge($serveraddress,$portnumber,$waittime)) return false;

// Send a request for "rules" to the server

$cmd = "\xFF\xFF\xFF\xFFU" . $this->m_challenge;

$serverdata = $this->getServerData($cmd,$serveraddress,$portnumber,$waittime);

// Check length of returned data, if < 5 something went wrong

if (strlen($serverdata)<5) return false;

// Check number of players to read data for

$players = ord($serverdata[5]);

// Strip OOB data and other stuff

$serverdata = substr($serverdata,7);

for ($i=1;$i<=$players;$i++) {

$playername = htmlspecialchars($this->getnextstring($serverdata));

$frags = $this->getnextfragvalue($serverdata);

$playtime = $this->getnextplaytime($serverdata);

$this->m_playerinfo[$i] = array("name"=>$playername,"frags"=>$frags,"time"=>$playtime);

}

// Sort players in fragorder

if ($players>1) usort($this->m_playerinfo,"fragsort");

return true;

}

// **********************************************************************

// getChallenge

// Read a challenge number from the gameserver into m_challenge

// Return true if successful

// **********************************************************************

function getChallenge($serveraddress,$portnumber,$waittime) {

$cmd = "\xFF\xFF\xFF\xFFW";

$serverdata = $this->getServerData($cmd,$serveraddress,$portnumber,$waittime);

// Check length of returned data, if < 5 something went wrong

if (strlen($serverdata)<5) return false;

$this->m_challenge = substr($serverdata,5);

return true;

}

}

function applaunch($game) {

$game = str_replace("cstrike", "10", $game);

$game = str_replace("dod", "30", $game);

$game = str_replace("valve", "70", $game);

$game = str_replace("czero", "80", $game);

$game = str_replace("bshift", "130", $game);

$game = str_replace("dmc", "40", $game);

$game = str_replace("gearbox", "50", $game);

$game = str_replace("ricochet", "60", $game);

$game = str_replace("tfc", "20", $game);

$game = str_replace("czeror", "100", $game);

$game = str_replace("redorchestra", "1200", $game);

return $game;

}

function applaunch2($game) {

$game = str_replace("cstrike", "240", $game);

return $game;

}

function joinip($ip, $port, $game, $type) {

if($type == "HL1") {

$game = applaunch($game);

}

elseif($type == "HL2") {

$game = applaunch2($game);

}

return "<a href='steam: \"-applaunch ".$game."\" +connect ".$ip.":".$port."'>".$ip.":".$port."</a>";

}

function getMapImage($map) {

if (!file_exists("csslmore/".$map.".gif"))

{

$map = "images/kartes/nav.jpg";

}

return "<img border=\"1\" src=\"csslmore/".$map.".gif\">";

}

list($serverip, $serverport) = explode(":", $adrese);

$csinfo=new CounterStrike;

$status=$csinfo->getServerInfo($serverip,$serverport,1000);

if($csinfo->m_servervars["gamename"] == "р") {

$servers["servername"] = htmlentities($csinfo->m_servervars["serveraddress"]);

$servers["gamename"] = $csinfo->m_servervars["game"];

$servers["game"] = $csinfo->m_servervars["mapname"];

$servers["mapname"] = $csinfo->m_servervars["servername"];

$servers["currentplayers"] = $csinfo->m_servervars["currentplayers"];

$servers["maxplayers"] = $csinfo->m_servervars["maxplayers"];

$servers["type"] = "HL2";

}

//HL1

else {

$servers["servername"] = htmlentities($csinfo->m_servervars["servername"]);

$servers["gamename"] = $csinfo->m_servervars["gamename"];

$servers["game"] = $csinfo->m_servervars["game"];

$servers["mapname"] = $csinfo->m_servervars["mapname"];

$servers["currentplayers"] = $csinfo->m_servervars["currentplayers"];

$servers["maxplayers"] = $csinfo->m_servervars["maxplayers"];

$servers["type"] = "HL1";

}

$tag = $servers["currentplayers"];

$max = $servers["maxplayers"];

$nosaukums = $servers["servername"];

$mape = $servers["mapname"];

$statuss = $max-$tag;

if ($statuss == "1") {

$statuss = "Viens brīvs slots";

} else if ($statuss == "0") {

$statuss = "Nav brīvu slotu";

} else {

$statuss = "$statuss brīvi sloti";

}

$players = "<font color='green'>$tag</font>/<font color='red'>$max</font>";

if (empty($mape)) {

echo "<style>

table {

font-family:Tahoma, Geneva, sans-serif;

font-size: 11px;

}

.img_border {

width: 140px;

height: 74px;

font-size: 9px;

padding: 0px;

border: 1px solid #000000;

background-color: #ffffff;

}

</style>

<table border='0'>

<tr>

<td>Statuss:</td>

<td>Serveris offline</td>

</tr>

<tr>

<td>Adrese:</td>

<td>".$adrese."</td>

</tr>

<tr>

<td>Spēlētāji:</td>

<td><font color='green'>0</font>/<font color='red'>0</font></td>

</tr>

<tr>

<td>Karte:</td>

<td>Offline</td>

</tr>

<tr>

<td colspan='2' align='center'>

<span align='center' style='padding: 3px;background-color: #000000; none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255); -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px;'>Offline</span>

<br />

<img class='img_border' src='/bildes/kartes/no_image.jpg' alt='' />

</td>

</tr>

</table>";

}

else{

echo "

<style>

table {

font-family:Tahoma, Geneva, sans-serif;

font-size: 11px;

}

.img_border {

width: 140px;

height: 60px;

font-size: 9px;

padding: 0px;

border: 1px solid #000000;

background-color: #ffffff;

}

</style>

<table border='0'>

<td colspan='2' align='center'>

<a href='http://cs.wos.lv/?q=serv_info&unID=11308'><img src='http://revenge.lv/style/images/icon_wos.jpg'></a> <a href='http://www.gign.lv/server/38386'><img src='http://revenge.lv/style/images/icon_gign.jpg'></a>

<img class='img_border' src='$maps".$mape.".jpg' alt='' />

<tr>

<td>    Statuss:</td>

<td>".$statuss."</td>

</tr>

<tr>

<td>    Spēlētāji:</td>

<td>".$players."</td>

</tr>

<tr>

<td>    Karte:</td>

<td>".$mape."</td>

</td>

</tr>

</tr>

</table>";

}

?>

</div>

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...