Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Lesenswerte Artikel, Anleitungen und Diskussionen
teklab
Posts: 17
Joined: 2004-05-04 08:37

Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by teklab » 2005-09-15 11:45

Hallo,

ich hab gegoogelt und gesucht aber ich werde nicht schlau...
Wie kann ich mir bei CS und CSS Server anzeigen lassen, welche
Map läuft und so weiter? Das müsste doch irgendwie raus zu
bekommen sein oder?


Mein WI:

Es wird auf EINEM Webserver installiert und verwaltet verschiedene Gameserver
auf verschiedenen Rootservern.

Hier paar Bilder http://www.clansathome.de/cah.rar

Kundenbereich.
1. Kunde kann aktuelle Rechnungen einsehen

2. Kunde kann alle möglichen Gameservertypen zumindest Starten und Stoppen
bei CS und CSS Server kann zusätzlich die Map gewählt, ein Passwort
gesetzt, die Server.cfg geändert und geupdatet werden.

3. Kunde kann verschiedene Gameserver auf verschiedenen Rootservern haben
sie werden alle im Interface angezeigt. Obtional kann man aber auch Gameswitch
einschalten, so das der Kunde wenn er den CS Server Startet gleichzeitig z.B.
seinen CSS abschaltet (noch im bau)


Adminbereich
1. Kunde wird einfach über den Adminbereich angelegt

2. Wenn Rechnungen online sind kann der Admin eine Massenmail
an alle verschicken z.B. alle zum 11. oder 21. eines Monats

3. Admin kann Slot, Port und IP ändern und auch, wenn Kunde
mehrere Gameserver hat einen abschalten, dass dieser bei dem Kunden
nicht gelistet wird.

4. Admin kann Kunden blockieren. Hat ein Kunde nicht gezahlt kann man
ihn blockieren so das er zwar ins Webinterface kommt aber nur
das Kontaktformular nutzen kann und seine Rechnungen einsehen kann.

5. ....

overtop
Posts: 15
Joined: 2003-03-05 08:22
Location: NRW

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by overtop » 2005-09-15 14:37

Tach

dazu hätte ich wiederum ein kleines skript

muss ein bissel auf meiner platte suchen aber bis heute abend hab ichs

Ganz einfach einzubinden -> Zeigt an Map / Spieler / und Serverrules


bis denne

overtop
Posts: 15
Joined: 2003-03-05 08:22
Location: NRW

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by overtop » 2005-09-15 14:48

naja ging ja schnell

Code: Select all


für die ausgabe:

<? 
require("anfrage.php"); 

$csinfo=new CounterStrike; 

$serveradr="XXX.XXX.XXX.XXX";
$serverport="27015";
$status=$csinfo->getServerInfo($serveradr,$serverport,1000); 
$status=$csinfo->getServerRules($HTTP_GET_VARS["serveradr"],$HTTP_GET_VARS["serverport"],1000); 
$status=$csinfo->getServerPlayers($HTTP_GET_VARS["serveradr"],$HTTP_GET_VARS["serverport"],1000); 
?>


<div align="center">
<HR> 
<?=$csinfo->m_servervars["servername"]?><BR>
Server IP : <?=$csinfo->m_servervars["serveraddress"] ?>
 <BR>
 <HR>
<U><B>MOMENTANE MAP </B></U>
<BR> <BR>
<?=$csinfo->m_servervars["mapname"]?><BR>  <BR>
<img border="0" src="maps/<?=$csinfo->m_servervars["mapname"]?>.gif" width="289" height="219"> 
<BR>
<U><B>Player </B></U><?=$csinfo->m_servervars["currentplayers"]?> / <?=$csinfo->m_servervars["maxplayers"]?>
<BR>
<HR>
<? 
require("counterstrike1.php"); 
$csinfo=new CounterStrike; 

$serveradr1="XXX.XXX.XXX.XXX";
$serverport1="27015";
$status=$csinfo->getServerInfo($serveradr1,$serverport1,1000); 
$status=$csinfo->getServerRules($HTTP_GET_VARS["serveradr1"],$HTTP_GET_VARS["serverport1"],1000); 
$status=$csinfo->getServerPlayers($HTTP_GET_VARS["serveradr1"],$HTTP_GET_VARS["serverport1"],1000);?> 
<div align="center"> 
<?=$csinfo->m_servervars["servername"]?><BR>
Server IP : <?=$csinfo->m_servervars["serveraddress"]?>
<BR>
<HR>
<U><B>MOMENTANE MAP </B></U>
<BR> <BR>
<?=$csinfo->m_servervars["mapname"]?><BR>  <BR>
<img border="0" src="maps/<?=$csinfo->m_servervars["mapname"]?>.gif" width="289" height="219"> 
<BR>
<U><B>Player </B></U><?=$csinfo->m_servervars["currentplayers"]?> / <?=$csinfo->m_servervars["maxplayers"]?

und die abfrage

abfrage.php

Code: Select all

<?
// **********************************************************************************************
// Class CounterStrike
// Author : Henrik Schack Jensen (henrik@schack.dk)
// 
// Changelog:
// Version 1.01        03/11/2001     Removed ASP style tags
//                                                         Removed usort warning
//                                                        Fixed error on empty server    
// Version 1.00        03/05/2001 Initial (& a bit messy ) release
// 
// A utilityclass (PHP4 only) to do serverstatus-queries against Halflife/Counterstrike servers
//
// The following functions are available:
// 
// Function getServerInfo(serveraddress,serverport)
// Get info about servername,serveraddress,mapname,currentplayers & maxplayers.
//
// Function getServerPlayers(serveraddress,serverport)
// Get info about players currently playing on the server.
// Players are sortet by frags.
//    
// Function getServerRules(serveraddress,serverport)
// Get info about serverrules/settings.
//
// All results are returned in membervariables:
//
//
// Demosource is available at http://www.gameserver.dk/
// **********************************************************************************************
// 
// Function used to sort players by frags
// Needs to be defined globally in order for usort to call it
//     

function fragsort1 ($a, $b) {   
    if ($a["frags"] == $b["frags"]) return 0;
    if ($a["frags"] > $b["frags"]) {
        return -1;
    } else {
        return 1;
    }
}    


Class CounterStrike1 {
    var $m_playerinfo        ="";        // Info about players
    var $m_servervars        ="";        // Info about the server current map, players etc
    var $m_serverrules  ="";        // Serverrules
    
    //
    // 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,$serveraddress1,$portnumber1,$waittime) {
        $serverdata        ="";
        $serverdatalen=0;
        
        if ($waittime< 500) $waittime= 500;
        if ($waittime>2000) $waittime=2000;
        $waittime=doubleval($waittime/1000.0);

            
        if (!$cssocket=fsockopen("udp://".$serveraddress1,$portnumber1,$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 $serverdata1;        
    }
    
    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("%2dh",$time/3600);
        } 
        $time%=3600;
        $playtime=$playtime.sprintf("%2dm",$time/60);    
        $time%=60;
        $playtime=$playtime.sprintf("%2ds",$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) {
        $cmd="xFFxFFxFFxFFrulesx00";        
        $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) {
        $cmd="xFFxFFxFFxFFinfox00";        
        $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                
        $serverdata1=substr($serverdata,5);
        $this->m_servervars["serveraddress1"]    =$this->getnextstring($serverdata);
        $this->m_servervars["servername1"]            =$this->getnextstring($serverdata);
        $this->m_servervars["mapname1"]                =$this->getnextstring($serverdata);
        $this->m_servervars["game1"]                        =$this->getnextstring($serverdata);
        $this->m_servervars["gamename1"]                =$this->getnextstring($serverdata);
        $this->m_servervars["currentplayers1"]    =$this->getnextbytevalue($serverdata);
        $this->m_servervars["maxplayers1"]            =$this->getnextbytevalue($serverdata);    
        return true;
}    


    // **********************************************************************
    // Get Playerinfo
    // Read information about the players into m_playerinfo
    // Name,frags,playtime
    // Return true if successful
    // **********************************************************************
    function getServerPlayers($serveraddress1,$portnumber1,$waittime) {
        // Servercommand
        $cmd="xFFxFFxFFxFFplayersx00";
        $serverdata=$this->getServerData($cmd,$serveraddress1,$portnumber1,$waittime);
        
        // Check length of returned data, if < 5 something went wrong
        if (strlen($serverdata1)<5) return false;
        
        // Check number of players to read data for
        $players=ord($serverdata1[5]);
        
         // Strip OOB data and other stuff
        $serverdata=substr($serverdata1,7);
        for ($i=1;$i<=$players;$i++) {
            $playername                            =htmlspecialchars($this->getnextstring($serverdata1));
            $frags                                    =$this->getnextfragvalue($serverdata1);
            $playtime                                =$this->getnextplaytime($serverdata1);
            $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;
    }
}
?>

HF && denk an mich ;)

teklab
Posts: 17
Joined: 2004-05-04 08:37

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by teklab » 2005-09-15 14:56

Ok ich dankä ;)

ich werd es denn mal ausprobieren und anpassen.

teklab
Posts: 17
Joined: 2004-05-04 08:37

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by teklab » 2005-09-15 19:02

SO es geht nicht ;)

Auch wenn ich einige Fehler ausgemerzt hab es geht irgendwie trotzdem nicht.

Er meckert rum das CounterStrike1.php nicht gefunden wurde,
obwohl ich mir sicher bin das Class new Counterstrike1 bedeutet,
dass eine CounterStrike1 angelegt wird wie in Java.

Naja egal ich versuchs weiter...

ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by ffl » 2005-09-16 13:57

Wer lesen kann ist wie immer im Vorteil:

require("counterstrike1.php");
$csinfo=new CounterStrike;

hmmmmm wie heißt die datei im require?

scnr

overtop
Posts: 15
Joined: 2003-03-05 08:22
Location: NRW

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by overtop » 2005-09-16 16:19

die 2 datei also anfrage.php sollte auch counterstrike1.php heißen wie im require drinsteht :oops: war mein fehler

teklab
Posts: 17
Joined: 2004-05-04 08:37

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by teklab » 2005-09-16 20:51

Ja war mir auch klar ;) geht aber trotzdem nicht, naja egal biete meinen Leute eben hlstats an da braucht man das nicht auch noch im Webinterface *G*


Aber danke :)

ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by ffl » 2005-09-16 22:07

Gib nur schnell auf.

Ich hab mit dem Ding vor Längerem auch mal rumprobiert und es hat ohne Probleme funktioniert.

Lies doch einfach mal den Code den du produziert hast und kuck vielleicht auch mal dahin:

Code: Select all

// Demosource is available at http://www.gameserver.dk/ 
Wer lesen kann... :?

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by twisterchen » 2005-09-20 08:48

Hallo,
ich muss schon sagen,mich wundert das ganze hier schon ein bischen da versucht man der Community ein kostenloses Webinterface zur verfügung zu stellen.
Was passiert, da wird vom Admin der Thread einfach gelöscht ohne Kommentar oder irgend eine Erklährung warum.
Da schreiben ein paar Leute "Microsoft wird damit nicht einverstanden sein " dann frägt man wo das steht das man die nicht verwenden darf, dann wird der Thread halt einfach gelöscht denn das ist ja die einfachste Art eine Thema zu beenden wenn man nicht mehr weiter weis.
Aber egal alleine die Antworten ( kein persönlicher Angriff ) der einzelnen User zeigt mir, dass es nur Wichtigtuer sind die keine Ahnung haben, ich bin zwar auch kein Super Profi aber wenn ich keine Ahnung habe halt ich die Klappe.

Aber sowas hier hilft den Usern leider nicht weiter dann sollte mann lieber nichts schreiben.
FFL wrote:Gib nur schnell auf.
Ich hab mit dem Ding vor Längerem auch mal rumprobiert und es hat ohne Probleme funktioniert.
Ich habe meinen Autoführerschein auch schon vor 25 Jahren gemacht und heute kann ichs auch noch.
Das heißt aber nicht das, dass Auto noch funktioniert nach 25 Jahren.
FFL wrote: Lies doch einfach mal den Code den du produziert hast und kuck vielleicht auch mal dahin:

Code: Select all

// Demosource is available at http://www.gameserver.dk/ 
Wer lesen kann... :?
Da hilft lesen nicht viel wenn man nicht darauf hinweißt, dass Valve ja den Querycode geändert hat.
Ich frage mich warum man da überhaupt ein Forum betreibt das Usern helfen soll. !!! :?:
(das soll nicht heißen, dass mann Usern fertige Scripte zur Verfügung stellt.)

Aber nun zu deinem Problem teklab
auf http://www.cs-expert.de zu finden
Ich habe das folgendermaßen gelöst.

Code: Select all


server1class.inc

<?php
# www.cs-expert.de 
$jahr					=date("Y");					// unwichtig, aber stehen lassen :P //
$datum 				=date("j.M.Y"); 	// Bitte nichts verändern //
$zeit					=date("H:i:s");			// Bitte nichts verändern //
    
    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  ="";                // Serverrules

        //
        // 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));
                //
                $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("%2dh",$time/3600);
                }
                $time%=3600;
                $playtime=$playtime.sprintf("%2dm",$time/60);
                $time%=60;
                $playtime=$playtime.sprintf("%2ds",$time);
                $data=substr($data,5);
                return $playtime;
        }

        // **********************************************************************
        // getServerRules
        // Return true if successful
        // **********************************************************************
        function getServerRules($serveraddress,$portnumber,$waittime) {
                #$cmd="xFFxFFxFFxFFx56";
                $cmd="xFFxFFxFFxFFx56A2S_Rules";
                $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
        // Return true if successful
        // **********************************************************************
        function getServerInfo($serveraddress,$portnumber,$waittime) {
                #$cmd="xFFxFFxFFxFFx54x53x6Fx75x72x63x65x20x45x6Ex67x69x6Ex65x20x51x75x65x72x79x00";
                $cmd="xFFxFFxFFxFFx54A2S_Info";
                $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,5);
                $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);
                return true;
}


        // **********************************************************************
        // Get Playerinfo
        // Return true if successful
        // **********************************************************************
        function getServerPlayers($serveraddress,$portnumber,$waittime) {
                // Servercommand
                #$cmd="xFFxFFxFFxFFx55";
                $cmd="xFFxFFxFFxFFx55A2S_Players";
                $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
                $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;
        }
}
?>
dann in der Anzeige:

Code: Select all

include("server1class.inc");
    $serveradr ="$server1ip";
    $serverport="$server1port";
    $csinfo=new CounterStrike;
    $status=$csinfo->getServerInfo($serveradr,$serverport,1000);
    
$mapname            = $csinfo->m_servervars["mapname"];
$serveripadresse    = $csinfo->m_servervars["serveraddress"];
$game               = $csinfo->m_servervars["game"];
$gamename           = $csinfo->m_servervars["gamename"];
$currentplayers     = $csinfo->m_servervars["currentplayers"];
$maxplayers         = $csinfo->m_servervars["maxplayers"];
$servername         = $csinfo->m_servervars["servername"];
#-------------------------------------------------------
#Playersanzeige

$statuss=$csinfo->getServerPlayers($serveradr,$serverport,1000);
if (is_array($csinfo->m_playerinfo)) {
while (list(,$player) = each ($csinfo->m_playerinfo)) {
echo"<tr>
<td width="171" height="21" align="center"><font size="2" face="Verdana">$player[name]</font></td>
<td width="54" height="21" align="center"><font size="2" face="Verdana" color="#FF0000">$player[frags]</font></td>
<td width="72" height="21" align="center"><font size="2" face="Verdana">$player[time]</font></td>
</tr>";
}
} else {
echo"<tr>
<td colspan="3" align="center"><font size="2" face="Verdana">Keine Spieler auf dem Server</font></td>
</tr>";
}
jetzt must du nur beachten, das in der server.cfg (Cs Server) folgender befehl enthalten ist.

Code: Select all

sv_enableoldqueries 1
So sollte es nicht geklappt haben melde dich einfach nochmal !!


Twisterchen

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by captaincrunch » 2005-09-20 09:37

Vorab schon mal sorry für das komplette OT:

Dein Vorhaben in allen Ehren, aber wenn ich (deine Antworten aus dem anderen Thread und) sowas hier
ich muss schon sagen,mich wundert das ganze hier schon ein bischen da versucht man der Community ein kostenloses Webinterface zur verfügung zu stellen.
Was passiert, da wird vom Admin der Thread einfach gelöscht ohne Kommentar oder irgend eine Erklährung warum.
Da schreiben ein paar Leute "Microsoft wird damit nicht einverstanden sein " dann frägt man wo das steht das man die nicht verwenden darf, dann wird der Thread halt einfach gelöscht denn das ist ja die einfachste Art eine Thema zu beenden wenn man nicht mehr weiter weis.
Aber egal alleine die Antworten ( kein persönlicher Angriff ) der einzelnen User zeigt mir, dass es nur Wichtigtuer sind die keine Ahnung haben, ich bin zwar auch kein Super Profi aber wenn ich keine Ahnung habe halt ich die Klappe.
lese, platz mir schlicht und ergreifend der Arsch.

1. Du verstößt mit deinem Produkt gegen geltendes Recht, piepegal ob's was kostet oder nicht.
2. Du biegst dir deine Realität dahingehend zurecht, dass du nichts "Unrechtes" tust.
3. Du hast unsere Nutzungsbedingungen anscheinend großzügig überlesen.

Solltest du dich jetzt immer noch über irgend etwas wundern, kannst du mich gerne direkt per PN anschreiben, aber bitte erst nachdem du die passenden Stellen im Urherberrecht und unsere Nutzungsbedingungen gelesen hast.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by twisterchen » 2005-09-20 10:08

Hallo CaptainCrunch
Du verstößt mit deinem Produkt gegen geltendes Recht, piepegal ob's was kostet oder nicht.
Vielleicht könntest du mir freundlicherweise einen Hinweis geben wo das steht.
Du biegst dir deine Realität dahingehend zurecht, dass du nichts "Unrechtes" tust.
Hmm hier frage ich mich was du eigentlich meinst.
Du hast unsere Nutzungsbedingungen anscheinend großzügig überlesen.
Nein habe ich nicht sowas nehme ich eigentlich immer ernst, schon aus dem Grund womit du eigentlich ja auch Recht hast. (geltende Rechte)

Vielleicht könntest "du" ja mal suchen wo steht das genau diese Icons nicht verwendet werden dürfen.
Ich sag nur !! Es gibt auch Software mit Icon Sammlungen die mann kaufen kann.

Gruss
Twisterchen

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by captaincrunch » 2005-09-20 10:20

Vielleicht könntest du mir freundlicherweise einen Hinweis geben wo das steht.
Wie dir bereits mehrfach gesagt wurde: im Urheberrecht. Darüber hinaus in den Lizenzbedingungen der von dir "verwendeten" Software (auch wenn du sie gekauft hast).
Nein habe ich nicht sowas nehme ich eigentlich immer ernst, schon aus dem Grund womit du eigentlich ja auch Recht hast. (geltende Rechte)
OK, dann hast du anscheinend 99% des Inhalts nichts verstanden.

Alles Weitere bitte per PN, aber noch einmal: erst nachdem du dich (endlich einmal) über deine rechtliche Lage in dem Punkt informiert hast (s.o.).
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

User avatar
Joe User
Project Manager
Project Manager
Posts: 11578
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by Joe User » 2005-09-20 10:45

Twisterchen wrote:Vielleicht könntest du mir freundlicherweise einen Hinweis geben wo das steht.
Dort, wo es bereits seit Jahren steht: http://www.microsoft.com/mscorp/permission/default.mspx
Microsoft does not allow the use of our icons in advertising, in books and other printed matter, on clothing or other promotional items, in online and Internet locations, in software applications, in television programs, commercials, movies, or on videotape, as they are NOT to be used as "artwork" or design elements.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by twisterchen » 2005-09-20 18:11

Hallo Joe User

Also als erstes jetzt ich will mich hier mit euch natürlich nicht Streiten habe auch deinem Kollegen schon eine PN geschickt nur hier mal Folgendes

Du hast aber einen entscheiden Punkt vergessen auf der Seite
In addition, Microsoft makes certain icons available for copying and reuse by others via the terms of the end-user license agreement (EULA) of a software development tool such as Microsoft Visual Studio or Microsoft Visual Basic. (Find more information on How to Buy Microsoft Developer Products.) If you have already licensed a Microsoft development tool such as Visual Studio, we encourage you to look to the redistributable section of the EULA for more information about the Microsoft properties that are made available for redistribution by licensees.
Des weiteren steht in dem Lizensvertrag bei der Installation den ich akzeptieren MUSS ( und sonst Akzeptier ich ja keinen ) steht nicht dafon drinnen das ich die Icons von Microsoft nicht verwenden dürfte.
http://download.microsoft.com/documents ... 435010.pdf


Oder siehst du das anders ?

nur mal so ich finde diese Diskusion jetzt recht interesant und bitte um Weiterführung ohne irgend einen Hintergedanken nur mal so zum Spass wass dabei überhaupt an Information sich austauscht.


Gruss Twisterchen

User avatar
Joe User
Project Manager
Project Manager
Posts: 11578
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by Joe User » 2005-09-20 18:23

Wenn die Nutzung der Icons nicht explizit per EULA gestattet ist, ist sie illegal. Du kannst Dich diesbezüglich auch direkt an Microsoft wenden, wenn Du uns nicht glaubst. Verwende freie Icons und verweise auf die Quelle, dadurch ersparst Du Dir eine teure Einführung in das Urheberrecht.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by twisterchen » 2005-09-20 18:41

Du hast mir nur noch nicht beantwortet was mit dem ist hier
In addition, Microsoft makes certain icons available for copying and reuse by others via the terms of the end-user license agreement (EULA) of a software development tool such as Microsoft Visual Studio or Microsoft Visual Basic. (Find more information on How to Buy Microsoft Developer Products.) If you have already licensed a Microsoft development tool such as Visual Studio, we encourage you to look to the redistributable section of the EULA for more information about the Microsoft properties that are made available for redistribution by licensees.
Wenn ich dass so lese ist die Verwendung von Icons durch den erwerb einer solchen Licens gesattet.

Gruss
Twisterchen

User avatar
Joe User
Project Manager
Project Manager
Posts: 11578
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Webinterface für Gameserver fast fertig ?nur wie mach ich....?

Post by Joe User » 2005-09-20 18:46

In addition, Microsoft makes certain icons available for copying and reuse by others via the terms of the end-user license agreement (EULA) of a software development tool such as Microsoft Visual Studio or Microsoft Visual Basic. (Find more information on How to Buy Microsoft Developer Products.) If you have already licensed a Microsoft development tool such as Visual Studio, we encourage you to look to the redistributable section of the EULA for more information about the Microsoft properties that are made available for redistribution by licensees.
Ich habe Dir die entscheidenden Parts mal hervorgehoben.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.