anoance Posted August 26, 2010 Report Share Posted August 26, 2010 (edited) 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 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 August 26, 2010 by anoance Link to comment Share on other sites More sharing options...
aaE Posted August 27, 2010 Report Share Posted August 27, 2010 ņē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, $ { 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 More sharing options...
anoance Posted August 28, 2010 Author Report Share Posted August 28, 2010 Paldies, laikam iztikšu bez playeriem, jo apnika čakarēties, tos kurus atradu - galīgi garām .. Varat slēgt ciet - Paldies. .. Link to comment Share on other sites More sharing options...
ANALGINS Posted August 28, 2010 Report Share Posted August 28, 2010 tu acim redzot nesuda nemekleji, jo man sanaca salikt kopa uber forshu monitoru, tiesa gan ar pluginu bet kam tas interese! Link to comment Share on other sites More sharing options...
Recommended Posts