ilch Forum » Ilch Clan 1.1 » Allgemein » Script Problem!!!WICHTIG!!!

Geschlossen
  1. #1
    User Pic
    Thunderhawk Mitglied
    Registriert seit
    07.08.2005
    Beiträge
    13
    Beitragswertungen
    0 Beitragspunkte
    Hallo Leute,
    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
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Also man müsste erstmal wissen was daran nicht geht bzw. irgend wie einen server haben an dem man das testen kan!

    mfg
    SLJ
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Thunderhawk Mitglied
    Registriert seit
    07.08.2005
    Beiträge
    13
    Beitragswertungen
    0 Beitragspunkte
    Bekomme immer diesen fehler

    Warning: opendir(images/etmap): failed to open dir: No such file or directory in /home/www/web568/html/include/boxes/navbox.etstatus.php on line 32

    Warning: readdir(): supplied argument is not a valid Directory resource in /home/www/web568/html/include/boxes/navbox.etstatus.php on line 33

    Warning: closedir(): supplied argument is not a valid Directory resource in /home/www/web568/html/include/boxes/navbox.etstatus.php on line 38

    Fatal error: Call to undefined function: cutstring() in /home/www/web568/html/include/boxes/navbox.etstatus.php on line 169

    was kann es sein das es nicht geht. traurig
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Panicsheep Hall Of Fame
    Registriert seit
    24.08.2004
    Beiträge
    10.192
    Beitragswertungen
    16 Beitragspunkte
    Was hast du als Pfad bei "$et_imagedir" eingetragen?

    Der Pfad muss ab der index.php angegeben werden

    Wenn der Ordner mit dem restlichen Script also im selben Ordner ist wie die index.php vom ilchscript dann sollte der Pfad

    serverscript/images/etmap sein


    Anderenfalls kann die Box den Pfad nicht finden und gibt somit nur die Fehlermeldung aus
    Omnia bona erunt
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Thunderhawk Mitglied
    Registriert seit
    07.08.2005
    Beiträge
    13
    Beitragswertungen
    0 Beitragspunkte
    Man hat es so gemacht wie es in der Anleitung steht.
    Hab alles in /html/include/ hoch geladen.

    Benutze Webspace von www.gateway-2hosting.de und dort gehen alle Script.

    Wie kann ich es anders machen, da ich nicht viel von Php
    aus kenne nur von Html kenn ich mich soweit aus.

    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten