Sie sind nicht angemeldet.

HSFighter

Administrator

  • »HSFighter« ist der Autor dieses Themas

Beiträge: 1 517

Wohnort: Flensburg

Beruf: Industrieelektroniker

Rootserver vorhanden: Nein

  • Nachricht senden

1

Montag, 26. Mai 2008, 22:36

PHP HL² Server-Query Script

Dieses Tutorial findet ihr jetzt in unserer Wiki:

:arrow: http://sourceserver.info/wiki/tutorial/s…p_querry_script



-
Anti Cheat: www.smacbans.com
Kein direkter Support per PM (nur auf Anforderung)

2

Donnerstag, 5. August 2010, 20:07

Re: PHP HL² Server-Query Script

hi

leider funktioniert das script bei mir nicht

kein output , keine fehlermeldung , nur weisse seite welche ewig lädt......

hat es da änderungen beim update auf die orangebox gegeben ?

weiss jemand wo der fehler liegt ?


gruss

kopfnuss

HSFighter

Administrator

  • »HSFighter« ist der Autor dieses Themas

Beiträge: 1 517

Wohnort: Flensburg

Beruf: Industrieelektroniker

Rootserver vorhanden: Nein

  • Nachricht senden

3

Sonntag, 8. August 2010, 17:00

Re: PHP HL² Server-Query Script

So weit ich weis hat es bei dem update auf die Orangebox keine
gravierenden Änderungen gegeben die das Skript beeinflussen.

Bei mir läuft es ohne Probleme, auch mit der OB-Engine.

Link: http://www.server.hsfighter.net

MfG



-
Anti Cheat: www.smacbans.com
Kein direkter Support per PM (nur auf Anforderung)

4

Sonntag, 8. August 2010, 18:09

Re: PHP HL² Server-Query Script

hi

nach einiger recherche und ausprobieren habe ich (die) lösungen gefunden


1:
für server mit sv_master_legacy_mode 1 ( server wird NICHT im serverbrowser gelistet )

in der "serverstatus.php" den block :

Spoiler Spoiler

// $cvars = $verbindung->cvars();
// // Schleife um das Array aus zu lesen
// foreach($cvars as $key => $value) {
// // Prüfung des Key's.
// if ($key == 'amx_nextmap')$nextmap = $value;
// if ($key == 'cm_nextmap')$nextmap = $value;
// if ($key == 'am_nextmap')$nextmap = $value;
// if ($key == 'mp_nextmap')$nextmap = $value;
// if ($key == 'mani_nextmap')$nextmap = $value;
// // Anzeige aller Cvars!!!
// Echo ''.$key.' = '.$value.'<br>';
// }


auskommentieren ,
es werden dann keine cvars angezeigt , aber das script hängt nicht mehr in einer endlos schleife fest
( keine ahnung warum das script hängt , habe es noch nicht herausgefunden )


2:
für server mit sv_master_legacy_mode 0 ( server WIRD im serverbrowser gelistet )

in der "severstatus.class.php"

die zeile :

Quellcode

1
var $A2S_SERVERQUERY_GETCHALLENGE = "\x57"; // challenge


ändern zu :

Quellcode

1
var $A2S_SERVERQUERY_GETCHALLENGE = "\x55\xFF\xFF\xFF\xFF"; // challenge 


die "serverstatus.php" kann unverändert bleiben

es werden ALLE funktionen angezeigt , und der server wird auch im serverbrowser gelistet


für anzeige der plugins usw. in HLSW noch das sourcemod-plugin :
http://forums.alliedmods.net/showpost.php?p=1234560&postcount=17">http://forums.alliedmods.net/showpost.p ... stcount=17</a>

dann werden auch bei sv_master_legacy_mode 0 die plugins usw. in HLSW angezeigt


gruss

kopfnuss

darkbad

unregistriert

5

Freitag, 13. Januar 2012, 01:06

Hallo,

ich denke ich kann mich hier mal dranhängen. Und zwar habe ich genau das selbe Problem wie kopfnuss. Das Script lädt unendlich. Ich habe auch bereits den Tipp von kopfnuss getestet, ergab allerdings nur das gleiche.

Gibt es für das Script inzwischen ein Update? Bei HSFighter scheint es problemlos zu funktionieren.

MadMakz

Super Moderator

Beiträge: 1 878

Wohnort: ~#

Rootserver vorhanden: Ja

  • Nachricht senden

6

Freitag, 13. Januar 2012, 12:32

bei mir geht's, nur $A2S_SERVERQUERY_GETCHALLENGE wie oben beschrieben geändert.

zeile 86/87 sollten evtl. getauscht werden, sonnst wird fclose() nie getriggert, ansonnsten alles ok denke ich

edit: noch nen anderen server getestet, ich denke es fehlt die bzip2 unterstüzung bei langen queries (viele server variablen).

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »MadMakz« (13. Januar 2012, 17:36)


HSFighter

Administrator

  • »HSFighter« ist der Autor dieses Themas

Beiträge: 1 517

Wohnort: Flensburg

Beruf: Industrieelektroniker

Rootserver vorhanden: Nein

  • Nachricht senden

7

Freitag, 13. Januar 2012, 16:42

Das ist bei mir ganz untergegangen. :whistling:
Werde mir das am WE mal anschauen :D

Noch mal Danke für die Tips.



-
Anti Cheat: www.smacbans.com
Kein direkter Support per PM (nur auf Anforderung)

8

Samstag, 14. Januar 2012, 14:11

Hab noch einen Fehler bemerkt, der ziemlich fatal ist:

Wenn man einen Server Abfragen will, der entweder gar nicht existiert oder down ist, hängt das script gleich den ganzen apache2/Webserver auf.

Man müsste zuerst mal überprüfen, ob der Server überhaupt antwortet, sonst muss man jedes mal den Webserver restarten.

darkbad

unregistriert

9

Montag, 23. Januar 2012, 18:44

Hallo,

hast du inzwischen herausgefunden, woran es liegt?

HSFighter

Administrator

  • »HSFighter« ist der Autor dieses Themas

Beiträge: 1 517

Wohnort: Flensburg

Beruf: Industrieelektroniker

Rootserver vorhanden: Nein

  • Nachricht senden

10

Dienstag, 24. Januar 2012, 22:08

Ich habe das Tutorial im Wiki angepasst und habe auf meinem Server keine Probleme damit.

Muss dazu aber auch sagen:
Die Player werden bei mir nicht mehr über das PHP-Query Script angezeigt, sondern über die GameME API.
Das gewährleistet mir einen Erweiterten Funktionsumfang.

Bei dieser API Einstellung bin ich aber noch am Basteln und Probieren.

P.s.
Im Sourcebans-Script kommt auch eine HL2-Query-Class zum Einsatz.
Da könnte man ja mal schauen was anders gemacht wird ?!?


Leider habe ich imo. keine Zeit mich damit zu beschäftigen :-(


Hab noch einen Fehler bemerkt, der ziemlich fatal ist:

Wenn man einen Server Abfragen will, der entweder gar nicht existiert oder down ist, hängt das script gleich den ganzen apache2/Webserver auf.

Man müsste zuerst mal überprüfen, ob der Server überhaupt antwortet, sonst muss man jedes mal den Webserver restarten.


Dafür nutze ich auf meiner HP ein PHP-Socket Script:

PHP-Quelltext

1
2
3
4
5
6
7
$ip '85.131.139.27';
$port '27015';
if ($socket = @fsockopen($ip$port$errno$errstr"2")){
  // Online
}else{
  // Offline
}






-



-
Anti Cheat: www.smacbans.com
Kein direkter Support per PM (nur auf Anforderung)

darkbad

unregistriert

11

Dienstag, 24. Januar 2012, 22:43

Abgesehen von

PHP-Quelltext

1
WarningInvalid argument supplied for foreach() in serverstatus.php on line 71


geht es. Danke.

HSFighter

Administrator

  • »HSFighter« ist der Autor dieses Themas

Beiträge: 1 517

Wohnort: Flensburg

Beruf: Industrieelektroniker

Rootserver vorhanden: Nein

  • Nachricht senden

12

Dienstag, 24. Januar 2012, 23:21

Abgesehen von

PHP-Quelltext

1
WarningInvalid argument supplied for foreach() in serverstatus.php on line 71


geht es. Danke.

np :P
Dann zeige mal deine serverstatus.php



-
Anti Cheat: www.smacbans.com
Kein direkter Support per PM (nur auf Anforderung)

HSFighter

Administrator

  • »HSFighter« ist der Autor dieses Themas

Beiträge: 1 517

Wohnort: Flensburg

Beruf: Industrieelektroniker

Rootserver vorhanden: Nein

  • Nachricht senden

13

Donnerstag, 26. Januar 2012, 23:53

Ich habe da noch einen Fehler gefunden.
Wenn es denn ein Fehler ist?

Neuerdings bekomme ich bei der Auswertung der "A2S_PLAYER" Antwort immer ein "Zero" (NULL) für das "player index byte" zurück.
Ich habe folgendes im Valve Wiki gefunden:

Zitat

Warning:As of September 29, 2009, Left4Dead2 returns an index of zero for all players.

Ich habe aber einen CS:S Server!

Anbei der Doku-Abschnitt: https://developer.valvesoftware.com/wiki…ries#A2S_PLAYER

Jemand eine Idee?



-
Anti Cheat: www.smacbans.com
Kein direkter Support per PM (nur auf Anforderung)

HSFighter

Administrator

  • »HSFighter« ist der Autor dieses Themas

Beiträge: 1 517

Wohnort: Flensburg

Beruf: Industrieelektroniker

Rootserver vorhanden: Nein

  • Nachricht senden

14

Freitag, 2. November 2012, 01:49

Hallo zusammen,

da ich derzeit das Script für ein aktuelles Projekt verwende,
habe ich noch durch Zufall einen Fehler gefunden.

Die Funktionen:
  • einen int16-Wert (2 Bytes) vom Server holen
  • einen int32-Wert (4 Bytes) vom Server holen
  • einen float32-Wert (4 Bytes) vom Server holen
  • einen String vom Server holen
wurden angepasst!

Aus

Quellcode

1
$unpacked[int]
wurde

Quellcode

1
$unpacked["int"]


Die Variable "$str" wird jetzt vor der Schleife auf einen leeren Wert gesetzt.

Somit dürfte das Script jetzt stabil laufen.
Tut es bei mir jedenfalls ^^

Für Feedback wäre ich sehr dankbar :)

Gruß



-
Anti Cheat: www.smacbans.com
Kein direkter Support per PM (nur auf Anforderung)

SDKMaster

Anfänger

Beiträge: 1

Rootserver vorhanden: Nein

  • Nachricht senden

15

Mittwoch, 13. Februar 2013, 09:47

Hallo HSFighter

Hallo,

ich habe mir den HL2 Server-Query Script mal auf meinen FTP gezogen. Läuft eigentlich ganz gut nur wenn der Server mal Offline ist, lädt die Seite dauerhaft und es kommt ein Error wegen Überschreitung der Zeit.

"Fatal error: Maximum execution time of 30 seconds exceeded in \htdocs\serverstatus.class.php on line 75"

Ich habe zu diesen Script ein Online/Offline Status mit reingeschrieben, er funktioniert eigentlich wunderbar. nur kann ich nicht testen ob er auch Offline anzeigt, da die Seite nicht lädt wenn keine IP eingetragen ist oder der Server momentan down ist.

Dazu wollt ich noch eine Frage stellen und zwar, wie kann ich die Details wie: Maps, Bots etc auf einer neuen Seite anzeigen lassen? Hätte da jemand ein Code für mich?

Währe Nett wenn Ihr mir helfen könntet.

//edit: Ich will das ganze in ein ilch anzeigen lassen währe das möglich?

MfG

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »SDKMaster« (13. Februar 2013, 16:13)