Ich habe ein problem mit dem Script von flori-times, es ist ein Enemy Territory Servertatus Navbox.
Habe alles hoch geladen und eine Box genohmen.
Oder liegt es am Script:
<? ###################################################################################################### ######################## EnemyTerritory-Stats Navbox V. 1.0 by flori-times.de ######################## ###################################################################################################### ########################################### Einstellungen ############################################ $et_serv_ip = ""; // IP-Adresse des Servers $et_serv_port = ""; // Port des Servers $et_serv_name = ""; // Name des Servers, zur Anzeige in der Navbox $et_serv_pass = ""; // Server-Passwort, zur Anzeige in der Navbox $et_hlsw = "1"; // HLSW-Links an/ausschalten (1=an | 2=aus) $et_imagedir = "images/etmap"; // Grafikverzeichnis, in dem die mappics liegen $et_namelength = "15"; // Anzahl der Zeichen im Spielernamen (Player-Anzeige) $et_imagewidth = "150"; // Breite der Map-Grafik, in Pixel oder Prozent $et_maplength = "15"; // Anzahl der Zeichen im Mapnamen ###################################################################################################### ################################## ab hier nichts mehr verändern!! ################################### ###################################################################################################### if(!function_exists(fragsort)){ function fragsort ($a, $b) { if ($a['frags'] == $b['frags']) return 0; if ($a['frags'] > $b['frags']) { return -1; } else { return 1; } } } if(!is_array($et_maps)){ $et_maps = array(); $a=opendir($et_imagedir); while ($getmap=readdir($a)) { unset($et_mapname); $et_mapname=explode(".",$getmap); $et_maps[]=$et_mapname[0]; } closedir($a); } if(!class_exists(EnemyTerritory)){ Class EnemyTerritory { var $m_playerinfo =""; // Info about players var $m_servervars =""; // Info about the server // // Get exact time, used for timeout counting // function timenow() { return doubleval(ereg_replace('^0.([0-9]*) ([0-9]*)$','\2.\1',microtime())); } // // Function to remove funny characters from playernames // function removefunchars($data) { $result=""; $skipnextchar=false; for ($i=0;$i<strlen($data);$i++) { if (!$skipnextchar) { $currentchar=ord(substr($data,$i,1)); if (($currentchar==27) || ($currentchar==94)) { $skipnextchar=true; } else { if (($currentchar>=32) && ($currentchar<=127)) $result=$result.chr($currentchar); if (($currentchar>=160) && ($currentchar<=255)) $result=$result.chr($currentchar-128); } } else { $skipnextchar=false; } } return $result; } // // 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 (!$codsocket=fsockopen("udp://".$serveraddress,$portnumber,$errnr)) { $this->errmsg="No connection"; return ""; } socket_set_blocking($codsocket,true); socket_set_timeout($codsocket,0,500000); fwrite($codsocket,$command,strlen($command)); // Mark $starttime=$this->timenow(); do { $serverdata.=fgetc($codsocket); $serverdatalen++; $socketstatus=socket_get_status($codsocket); if ($this->timenow()>($starttime+$waittime)) { $this->errmsg="Connection timed out"; fclose($codsocket); return ""; } } while ($socketstatus["unread_bytes"] ); fclose($codsocket); return $serverdata; } // ********************************************************************** // getServerStatus // Read rules/setup from the gameserver into m_servervars // Return true if successful // ********************************************************************** function getServerStatus($serveraddress,$portnumber,$timeout) { $cmd="xFFxFFxFFxFFgetstatusn"; $serverdata=$this->getServerData($cmd,$serveraddress,$portnumber,$timeout); if (strlen($serverdata)>20) { $serverdata=substr($serverdata,20); } else { return false; } $srvvars=substr($serverdata,0,strpos($serverdata,"n"))."\"; $players=substr($serverdata,strpos($serverdata,"n")+1); // Skip the last linefeed $players=substr($players,0,strlen($players)-1); // Split playerinfo and fill into array $playercount=0; if (strlen($players)) { $playercollection=explode("n",$players); while (list($key,$data) = each ($playercollection)) { eregi("^([-0-9]+) ([-0-9]+) "(.*)"",$data,$player); $this->m_playerinfo[$key]=array("frags"=>$player[1],"ping"=>$player[2],"name"=>$this->removefunchars($player[3])); $playercount++; } } // Fake servervar containing number of current players $this->m_servervars["sv_currentclients"]=$playercount; if ($playercount>0) usort($this->m_playerinfo,"fragsort"); // Split servervars and fill into array $name_tok = strtok ($srvvars,"\"); $val_tok = strtok ("\"); while (strlen($name_tok)) { $this->m_servervars[$name_tok]=$val_tok; $name_tok = strtok ("\"); $val_tok = strtok ("\"); } return true; } } } $etinfo=new EnemyTerritory; $status=$etinfo->getServerStatus($et_serv_ip,$et_serv_port,1500); if ($status) { //$et_serv_name = htmlentities($etinfo->m_servervars['sv_hostname']); $et_serverip = $etinfo->m_servervars['serveraddress']; $et_playercount = $etinfo->m_servervars['sv_currentclients']; $et_maxplayers = $etinfo->m_servervars['sv_maxclients']; $et_map = htmlentities($etinfo->m_servervars['mapname']); $et_map_cut = htmlentities(cutstring($etinfo->m_servervars['mapname'],$et_maplength)); $playerjscount++; if($et_playercount>0){ if (is_array($etinfo->m_playerinfo)) { while (list(,$player) = each ($etinfo->m_playerinfo)) { $playername = htmlentities($player['name']); $playername_cut = cutstring($player['name'],$et_namelength); $playping = "hat einen Ping von ".$player['ping']; $row = rowcolor($row); eval ("$et_playerlist.= "".getTemplate("navigation/etstatus/playerlist")."";"); unset($playername); unset($playteam); } } if($playerjscript!='1'){ $site_body.=" <script language="javascript" type="text/javascript"> <!-- function showtext(id) { if(document.getElementById) document.getElementById("ve_[" + id + "]").style.display = "inline"; if(document.getElementById) document.getElementById("da_[" + id + "]").style.display = "none"; if(document.getElementById) document.getElementById("nd_[" + id + "]").style.display = "inline"; } function hidetext(id) { if(document.getElementById) document.getElementById("ve_[" + id + "]").style.display = "none"; if(document.getElementById) document.getElementById("da_[" + id + "]").style.display = "inline"; if(document.getElementById) document.getElementById("nd_[" + id + "]").style.display = "none"; } --> </script> "; $playerjscript='1'; } eval ("$et_players.= "".getTemplate("navigation/etstatus/players")."";"); } if(in_array($et_map,$et_maps)){ $etimage= $et_map;} else { $etimage= "nopicture";} if($et_serv_pass!=''){ eval ("$et_serverpass.= "".getTemplate("navigation/etstatus/serverpass")."";"); } if($et_hlsw==1){ eval ("$et_mapimage.= "".getTemplate("navigation/etstatus/map_hlsw")."";"); if($et_serv_name!=''){ eval ("$et_servname.= "".getTemplate("navigation/etstatus/servername_hlsw")."";"); } } else{ eval ("$et_mapimage.= "".getTemplate("navigation/etstatus/map")."";"); if($et_serv_name!=''){ eval ("$et_servname.= "".getTemplate("navigation/etstatus/servername")."";"); } } eval ("$boxlinks[].= "".getTemplate("navigation/etstatus/status")."";"); } else { eval ("$boxlinks[].= "".getTemplate("navigation/etstatus/error")."";"); } unset($et_serv_ip); unset($et_serv_port); unset($et_serv_name); unset($et_serv_pass); unset($et_hlsw); unset($et_imagedir); unset($et_namelength); unset($et_imagewidth); unset($et_maplength); unset($etinfo); unset($status); unset($etimage); unset($et_serverip); unset($et_playercount); unset($et_maxplayers); unset($et_map); unset($et_map_cut); unset($et_playerlist); unset($et_players); unset($et_serverpass); unset($et_mapimage); unset($et_servname); ?>
Kann man es so ändern, das es auch für ilch geht?
Würde mich sehr freuen, wenn es mach bar ist.
Mfg
Thunderhawk
Edit: Ich habe das in code gepackt!
Zuletzt geändert von SLJ am 17.09.2005 - 00:52