CjKing 0 Odesláno: 29. Květen, 2009 Share Odesláno: 29. Květen, 2009 <?php echo ""; ?> <?php echo htmlentities($server["name"]); ?> <?php echo $server_ip.":".$server_port; ?> Mapa: <?php echo $server["map"]; ?> Hraje: <?php echo $server["activeplayers"] ?>/<?php echo $server["maxplayers"] ?> <?php for ($i = 1; $i <= $server["activeplayers"]; $i++) { if (isset($player[$i])) { ?> <?php echo $player[$i]["frag"]; ?> <?php echo htmlentities($player[$i]["name"]); ?> <?php } } ?> Link to comment Share on other sites More sharing options...
0 liskji00 0 Odesláno: 29. Květen, 2009 Share Odesláno: 29. Květen, 2009 :shock: co to je to ma byt jako Banner ty to delas pres co pres ++C Link to comment Share on other sites More sharing options...
0 癌癌癌 1 Odesláno: 29. Květen, 2009 Share Odesláno: 29. Květen, 2009 liskji omg když vubec neviš o co jde tak to neřeš ne?! toto muže byt brano taky jako spam.. to CjKing: Když už si to někde zkopčil ... je videt že PHP nerozumíš vůbec když ani nevíš co je to $proměná = GET['proměná'] aspoň tohle já vim Link to comment Share on other sites More sharing options...
0 CjKing 0 Odesláno: 29. Květen, 2009 Author Share Odesláno: 29. Květen, 2009 Mach dal som si tak $server_ip = $_GET['TU SOM SI DAL S PORTOM AJ]; ale teraz mi prislo ze to som mal dat bez portu a tu : $server_port = $_GET['port']; pridat port a mach diki az vystevlenie Link to comment Share on other sites More sharing options...
0 CjKing 0 Odesláno: 29. Květen, 2009 Author Share Odesláno: 29. Květen, 2009 sorry za dp ale rcon.lib.php on line 54 to je iny subor a ukazem cele : <?php // ************************************************************************ //PHPrcon - PHP script collection to remotely administrate and configure Halflife and HalflifeMod Servers through a webinterface //Copyright (C) 2002 Henrik Beige // //This library is free software; you can redistribute it and/or //modify it under the terms of the GNU Lesser General Public //License as published by the Free Software Foundation; either //version 2.1 of the License, or (at your option) any later version. // //This library is distributed in the hope that it will be useful, //but WITHOUT ANY WARRANTY; without even the implied warranty of //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU //Lesser General Public License for more details. // //You should have received a copy of the GNU Lesser General Public //License along with this library; if not, write to the Free Software //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // ************************************************************************ class Rcon { var $challenge_number; var $connected; var $server_ip; var $server_password; var $server_port; var $socket; //Constructor function Rcon() { $this->challenge_number = 0; $this->connected = true; $this->server_password = ""; $this->server_password = 27015; $this->server_password = ""; } //Open socket to gameserver function Connect($server_ip, $server_port, $server_password = "") { //store server data $this->server_ip = gethostbyname($server_ip); $this->server_port = $server_port; $this->server_password = $server_password; //open connection to gameserver $fp = fsockopen("udp://" . $this->server_ip, $this->server_port, $errno, $errstr, 10); stream_set_timeout($fp, 1); if ($fp) { $this->connected = true; } else { $this->connected = false; return false; } //store socket $this->socket = $fp; //return success return true; } //function Connect($server_ip, $server_port, $server_password = "") //Close socket to gameserver function Disconnect() { //close socket fclose($this->socket); $connected = false; } //function Disconnect() //Is there an open connection function IsConnected() { return $this->connected; } //function IsConnected() //Get detailed player info via rcon function ServerInfo() { //If there is no open connection return false if(!$this->connected) return $this->connected; //get server information $status = $this->RconCommand("status"); //If there is no open connection return false //If there is bad rcon password return "Bad rcon_password." if(!$status || trim($status) == "Bad rcon_password.") return $status; //format global server info $line = explode("\n", $status); $map = substr($line[3], strpos($line[3], ":") + 1); $players = trim(substr($line[4], strpos($line[4], ":") + 1)); $active = explode(" ", $players); $result["ip"] = trim(substr($line[2], strpos($line[2], ":") + 1)); $result["name"] = trim(substr($line[0], strpos($line[0], ":") + 1)); $result["map"] = trim(substr($map, 0, strpos($map, "at:"))); $result["mod"] = "Counterstrike " . trim(substr($line[1], strpos($line[1], ":") + 1)); $result["game"] = "Halflife"; $result["activeplayers"] = $active[0]; $result["maxplayers"] = substr($active[2], 1); //format player info for($i = 1; $i <= $result["activeplayers"]; $i++) { //get possible player line $tmp = $line[$i + 6]; //break if no more players are left if(substr_count($tmp, "#") <= 0) break; //name $begin = strpos($tmp, "\"") + 1; $end = strrpos($tmp, "\""); $result[$i]["name"] = substr($tmp, $begin, $end - $begin); $tmp = trim(substr($tmp, $end + 1)); //ID $end = strpos($tmp, " "); $result[$i]["id"] = substr($tmp, 0, $end); $tmp = trim(substr($tmp, $end)); //WonID $end = strpos($tmp, " "); $result[$i]["wonid"] = substr($tmp, 0, $end); $tmp = trim(substr($tmp, $end)); //Frag $end = strpos($tmp, " "); $result[$i]["frag"] = substr($tmp, 0, $end); $tmp = trim(substr($tmp, $end)); //Time $end = strpos($tmp, " "); $result[$i]["time"] = substr($tmp, 0, $end); $tmp = trim(substr($tmp, $end)); //Ping $end = strpos($tmp, " "); $result[$i]["ping"] = substr($tmp, 0, $end); $tmp = trim(substr($tmp, $end)); //Loss $tmp = trim(substr($tmp, $end)); //Adress $result[$i]["adress"] = $tmp; } //for($i = 1; $i < $result["activeplayers"]; $i++) //return formatted result return $result; } //function ServerInfo() //Get all maps in all directories function ServerMaps($pagenumber = 0) { //If there is no open connection return false if(!$this->connected) return $this->connected; //Get list of maps $maps = $this->RconCommand("maps *", $pagenumber); //If there is no open connection return false //If there is bad rcon password return "Bad rcon_password." if(!$maps || trim($maps) == "Bad rcon_password.") return $maps; //Split Maplist in rows $line = explode("\n", $maps); $count = sizeof($line) - 4; //format maps for($i = 0; $i <= $count; $i++) { $text = $line[$i]; //at directory output sorted map list if(strstr($text, "Dir:")) { //reset counter $mapcount = 0; //parse directory name $directory = strstr($text, " "); } //if(strstr($text, "Dir:")) else if(strstr($text, "(fs)")) { //parse mappath $mappath = strstr($text, " "); //parse mapname //if no "/" is included in the "maps * " result if(!($tmpmap = strrchr($mappath, "/"))) $tmpmap = $mappath; //parse mapname without suffix (.bsp) $result[$directory][$i] = substr($tmpmap, 1, strpos($tmpmap, ".") - 1); } //else if(strstr($text, "(fs)")) } //for($i = 1; $i <= $count; $i++) //return formatted result return $result; } //function ServerMaps() //Get server info via info protocoll function Info() { //If there is no open connection return false if(!$this->connected) return $this->connected; //send info command //$command = "\xff\xff\xff\xffinfo\x00"; //$command = "\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00"; $command = "\xFF\xFF\xFF\xFFTSource Engine Query\0\x00"; $buffer = $this->Communicate($command); //If no connection is open if(trim($buffer) == "") { // $this->connected = false; return false; } //build info array $buffer = explode("\x00", $buffer); $result["ip"] = $buffer[0]; $result["name"] = $buffer[1]; $result["map"] = $buffer[2]; $result["mod"] = $buffer[3]; $result["game"] = $buffer[4]; if (trim($buffer[5]) == "") { $result["activeplayers"] = "0"; $result["maxplayers"] = ord($buffer[6][0]); } else { $result["activeplayers"] = (strlen($buffer[5]) > 1)?ord($buffer[5][0]):"0"; $result["maxplayers"] = (strlen($buffer[5]) > 1)?ord($buffer[5][1]):"0"; } //return formatted result return $result; } //function Info() //Get players via info protocoll function Players() { //If there is no open connection return false if(!$this->connected) return $this->connected; //send players command $command = "\xFF\xFF\xFF\xFFU\x00"; $buffer = $this->Communicate($command); //If no connection is open if(trim($buffer) == "") { // second try with different command for the rest of the servers if($this->challenge_number == "") $this->getChallengeNumber(); $command = "\xff\xff\xff\xff\x55".$this->challenge_number; $buffer = $this->Communicate($command); if(trim($buffer) == "") { // $this->connected = false; return false; } } //get number of online players $buffer = substr($buffer, 1); //build players array for($i = 1; strlen($buffer) > 0; $i++) { //playername $tmp = strpos($buffer, "\x00"); $result[$i]["name"] = substr($buffer, 1, $tmp - 1); //frag count $result[$i]["frag"] = ord($buffer[$tmp + 1]) + (ord($buffer[$tmp + 2]) << 8) + (ord($buffer[$tmp + 3]) << 16) + (ord($buffer[$tmp + 4]) << 24); //online time $tmptime = @unpack('ftime', substr($buffer, $tmp + 5, 4)); $result[$i]["time"] = date('i:s', round($tmptime['time'], 0) + 82800); $buffer = substr($buffer, $tmp + 9); } //for($i = 1; $i <= $count; $i++) //return formatted result return $result; } //function Players() //Get server rules via info protocoll function ServerRules() { //If there is no open connection return false if(!$this->connected) return $this->connected; //build info command $command = "\xFF\xFF\xFF\xFFV\x00"; $buffer = $this->Communicate($command); //If no connection is open if(trim($buffer) == "") { // second try with different command for the rest of the servers if($this->challenge_number == "") $this->getChallengeNumber(); $command = "\xff\xff\xff\xff\x56".$this->challenge_number; $buffer = $this->Communicate($command); if(trim($buffer) == "") { // $this->connected = false; return false; } } //seperate rules $buffer = substr($buffer, 2); $buffer = explode("\x00", $buffer); $buffer_count = floor(sizeof($buffer) / 2); //build rules array for($i = 0; $i < $buffer_count; $i++) { $result[$buffer[2 * $i]] = $buffer[2 * $i + 1]; } //sort rules ksort($result); //return formatted result return $result; } //function ServerRules() //Execute rcon command on open socket $fp function RconCommand($command, $pagenumber = 0, $single = true) { //If there is no open connection return false if(!$this->connected) return $this->connected; //get challenge number if($this->challenge_number == "") { //send request of challenge number $challenge = "\xff\xff\xff\xffchallenge rcon\n"; $buffer = $this->Communicate($challenge); //If no connection is open if(trim($buffer) == "") { $this->connected = false; return false; } //get challenge number $buffer = explode(" ", $buffer); $this->challenge_number = trim($buffer[2]); } //build command $command = "\xff\xff\xff\xffrcon $this->challenge_number \"$this->server_password\" $command\n"; //get specified page $result = ""; $buffer = ""; while($pagenumber >= 0) { //send rcon command $buffer .= $this->Communicate($command); //get only one package if($single == true) $result = $buffer; //get more then one package and put them together else $result .= $buffer; //clear command for higher iterations $command = ""; $pagenumber--; } //while($pagenumber >= 0) //return unformatted result return trim($result); } //function RconCommand ($command) //Communication between PHPrcon and the Gameserver function Communicate($command) { //If there is no open connection return false if(!$this->connected) return $this->connected; //write command on socket if($command != "") fputs($this->socket, $command, strlen($command)); //get results from server $buffer = fread ($this->socket, 1); $status = socket_get_status($this->socket); if ($status["unread_bytes"] > 0) { $buffer .= fread($this->socket, $status["unread_bytes"]); } //If there is another package waiting if(substr($buffer, 0, 4) == "\xfe\xff\xff\xff") { //get results from server $buffer2 = @fread ($this->socket, 1); $status = socket_get_status($this->socket); $buffer2 .= @fread($this->socket, $status["unread_bytes"]); //If the second one came first if(strlen($buffer) > strlen($buffer2)) $buffer = substr($buffer, 14) . substr($buffer2, 9); else $buffer = substr($buffer2, 14) . substr($buffer, 9); } //In case there is only one package else $buffer = substr($buffer, 5); //return unformatted result return $buffer; } //function Communicate($buffer) // Get challenge number using A2S_SERVERQUERY_GETCHALLENGE for use with A2S_PLAYERS and A2S_RULES function getChallengeNumber() { //send request of challenge number $challenge = "\xff\xff\xff\xff\x57"; $buffer = $this->Communicate($challenge); //If no connection is open if(trim($buffer) == "") { $this->connected = false; return false; } $this->challenge_number = $buffer; } // function getChallengeNumber() } ?> a tento riadok : $fp = fsockopen("udp://" . $this->server_ip, $this->server_port, $errno, $errstr, 10); stream_set_timeout($fp, 1); Link to comment Share on other sites More sharing options...
Dotaz
CjKing 0
<?php echo "
<?php echo htmlentities($server["name"]); ?>
<?php
for ($i = 1; $i <= $server["activeplayers"]; $i++) {
if (isset($player[$i])) {
?>
<?php echo $player[$i]["frag"]; ?>
<?php echo htmlentities($player[$i]["name"]); ?>
<?php
}
}
?>
Link to comment
Share on other sites
4 odpovědí na tuto otázku
Recommended Posts