Seite 1 von 1

teamstatus abfragen

Verfasst: Fr 1. Aug 2008, 10:15
von |bTc|ClawFire
hi,

hat jemand ne ahung wie man den teamstatus, also in welchem team jemand ist (R, B, S) abfragt?

danke

Verfasst: Fr 1. Aug 2008, 13:03
von D4vid
ingame oder ausserhalb ingame einfach tab drücken das hilft zu sehen wer in welchem team ist xD anonsten hilft /players inner console x=axis l=allies s=spec ^^

Verfasst: Sa 2. Aug 2008, 10:35
von |bTc|ClawFire
meine durch ein externes script :wink:
ich kenne "getinfo" und "getstatus" doch keines von beiden gibt an in welchem team die spieler sich befinden

Verfasst: So 3. Aug 2008, 08:38
von |bTc|ClawFire
jemand ne ahnung?
z.b. bei spaltterladder sieht man das ja auch

Verfasst: So 3. Aug 2008, 12:00
von silver
|bTc|ClawFire hat geschrieben:jemand ne ahnung?
z.b. bei spaltterladder sieht man das ja auch
ich hab keine ahnung aber ich denke du musst den masterserver abfragen und der hat dann alle möglichen infos. weiß aber nicht wie das geht. hab das nie gemacht.

Verfasst: So 3. Aug 2008, 12:47
von |bTc|ClawFire
danke für die antwort, aber die masterserver wissen nur die IP der server, mehr leider nicht

Verfasst: Do 7. Aug 2008, 02:49
von WoodSTokk
'getstatus' liefert es dir.

ETmain und einige ältere Mods speichern die Liste in den Variablen 'Players_Axis' und 'Players_Allies'.
Die Listen enthalten die Position der Namen in der Playerliste.
Die Nummern sind durch Abstände getrennt, da man sonst '12' für Spieler 1 und 2 oder Spieler 12 halten könnte.

zB:
Server mit 8 Slots (2 davon privat)
Spielerliste: SpielerA SpielerB SpielerC SpielerD SpielerE Lagger
Players_Allies: 1 5
Players_Axis: 2 3

Das ergibt:
SpielerA und SpielerE sind Allies und SpielerB und SpielerC sind Axis.
Die Spieler mit dem Namen 'SpielerD' und 'Lagger' (4-ter und 6-ter in der Liste) werden nicht aufgeführt.
Entweder sind sie Zuschauer oder verbinden sich gerade.
Ob einer der Spieler auf einem privaten Slot spielt (und wenn ja, welcher?) kann man hier nicht ablesen.

Bunny hat mit ETpro die Variablen 'Players_Axis' und 'Players_Allies' durch die Variable 'P' ersetzt.
'P' steht für Player und beinhaltet für jeden Slot ein Zeichen.

Mögliche Zeichen:
'0' = Spieler auf diesem Slot verbindet sich gerade (connecting)
'1' = Spieler auf diesem Slot ist Axis
'2' = Spieler auf diesem Slot ist Allies
'3' = Spieler auf diesem Slot ist Zuschauer (Spectator)
'-' = Slot ist frei

Die dazugehörige Spielerliste musst du nur noch auf die Slots abbilden.

zB:
Server mit 8 Slots (2 davon privat)
Spielerliste: SpielerA SpielerB SpielerC SpielerD SpielerE Lagger
Variable-P: 2-11320

Daraus ergibt sich:

Slot 0 (privat): SpielerA Allies
Slot 1 (privat): frei
Slot 2 (public): SpielerB Axis
Slot 3 (public): SpielerC Axis
Slot 4 (public): SpielerD Spectator
Slot 5 (public): SpielerE Allies
Slot 6 (public): Lagger connecting
Slot 7 (public): frei

Den aufmerksamen Leser wird aufgefallen sein, daß die Variable 'P' im Beispiel nur 7 Zeichen enthält, obwohl der Server 8 Slots hat.
Dies ist kein Fehler. Sofern die restlichen Slots leer sind (also '-') werden sie einfach weggelassen.
Wenn du eine 'getstatus'-Abfrage an einen leeren Server richtest, fehlt die Variable 'P' komplett, da sie nur mit '-' gefüllt wäre.

Die Vorteile sind klar ersichtlich:
Man sieht gleich welche Slots tatsächlich belegt sind.
Ob, und wenn ja, welcher Spieler auf einem privaten Slot spielt.
Auch Zuschauer und Spieler die sich gerade verbinden werden aufgelistet.
Pro Slot wird nur ein Zeichen (Byte) übertragen, wodurch die Netzwerklast reduziert wird.

Die Variable 'P' wurde von allen Mods die noch aktiv entwickelt wurden und noch werden übernommen.

mfG WoodSTokk

PS: Was schreibst du den schönes?
Wenn du es in PHP schreibst, brauchst du das Rad nicht neu erfinden, das kannst du von mir haben.

Verfasst: Do 7. Aug 2008, 07:30
von MadGun
*Offtopic An*
..Und wiedereinmal frage ich mich, woher woodi du dein Wissen bzgl. et und rtcw beziehst ;) Wahnsinn, auf jede Frage ne Antwort wissen, großes Kompliment! ;)
*Offtopic Aus*

Verfasst: Do 7. Aug 2008, 09:05
von |bTc|ClawFire
super danke,

ich selber schreibe es leider nicht, sondern ein kollege von mir und der macht liebent gerne alles selber.
finde es auch gut so, weil nur so lernt man wirklich was dazu :wink:

werde ihm das aber sofort zeigen und anbieten

danke :wink:

Verfasst: Do 7. Aug 2008, 11:03
von mx.Bo0om?
*Offtopic nochmal an*

Woodstock hat wirklich eine Antwort auf alles ;)

*Offtopic direkt wieder aus*

^^

Verfasst: Fr 8. Aug 2008, 03:13
von WoodSTokk
Genug der Komplimente.

Das Wissen habe ich nur, weil ich mich selber damit vor 4 Jahren gespielt habe.
Damals hab ich (noch auf Windows) ein mIRC-Script zur Statusabfrage geschrieben.
Damit konnte ich im mIRC prüfen ob die MasterServer laufen, wieviele Server gerade registriert sind und den Status der GameServer abfragen.
Später habe ich das dann auch in PHP realisiert, aber da bekam ich selber schon Codeschnipsel.
Ich habe es nur aufbereitet und erweitert.
Das Ergebnis ist die Seite die man sieht, wenn man auf den Link in meiner Sig klickt.
Dem Script kann auch die IP und das Port von dem Server, den man befragen will, in der URI mitgeben.

Beispiele:
http://www.netplot.at/apes/server.php?i ... .213:27960
http://www.netplot.at/apes/server.php?i ... port=27960
http://www.netplot.at/apes/server.php?i ... 08.119.213

Wenn das Port dem Standard entspricht (27960), kann es auch weggelassen werden.
Wie man sieht, kann es auch mit RTCW-Servern umgehen.
Hatte da früher noch so einige Ideen, aber dazu bin ich dann nicht mehr gekommen.
Wer sich damit beschäftigen will, kann es jederzeit haben.

mfG WoodSTokk