.| Autor | Beitrag |
|---|---|
|
000 18.03.2004, 16:01 Barney_Roxx |
ich habe da eine erweiterte cheat funktion. ich habe in der player.h in der CBasePlayer klasse eine variable vom type bool definiert. dann habe ich hald bei clientcommand eine else/if anweisung die dann die member funktion CBasePlayer :: Cheating() aufruft wo dann die variable auf true oder false gesetzt wird. wenn ich dann das command eingebe ist der cheat nur für mich verfügbar aber nicht für die spieler. mir ist eigentlich klar warum, da es ja in der clientcommand funktion ist, und somit ist es ja logisch das jeder, der das command eingibt, dieses cheat feature dann hat weil er die variable auf true oder false setzt. ich möchte es ja aber so, das nur ich dieses command schreiben muss, damit alle dann davon profitieren oder nicht. wie muss ich das machen damit für alle spieler nach eingabe des commands, die variable dann auf true oder false ist? die abfrage der bool variable, ob sie true oder false ist, geschieht in der player spawn funktion. -- |
|
Profil || Suche |
|
001 18.03.2004, 16:21 [RMen]OneStone |
georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/ |
|
Profil || Suche |
|
002 18.03.2004, 16:27 Killing Me Softly |
Die Frage ist, ob CBasePlayer wirklich der allerbeste Platz dafür ist, diese Cheat-Variable zu beherbergen. Mir würde spontan ein halbes duzent Klassen einfallen, die besser geeignet wären (CGameRules steht dabei an oberster Stelle). Damit du deinen Code jetzt nicht umschreiben musst könntest du die Variable static deklarieren ( static bool m_fMyCheat; ) was zur Folge hätte, das der Wert von m_fMyCheat bei allen Playern identisch ist (auch wenn sie erst später dem Spiel beitreten, was bei Einsteins Lösung nicht gegeben wäre). --Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt. |
|
Profil || Suche |
|
003 18.03.2004, 17:02 Barney_Roxx |
das mit static ist glaub die lösung, konnte es noch nicht testen... wieso muss bzw. kann die variable von jedem spieler initialisiert werden? ich dachte drum das wenn die variable mal auf true oder false gesetzt ist, so ist sie das dann auch. ich meine die ist ja nicht mehrmals vorhanden so das sie jedesmal wieder initialisiert werden muss/kann. versteht ihr was ich meine? ist das klassen-style? mit den features der klassen kenne ich mich eben noch nicht so gut aus. -- |
|
Profil || Suche |
|
004 18.03.2004, 17:24 Killing Me Softly |
Doch, sie ist sogesehen mehrmals vorhanden. Für jeden Spieler gibt es eine eigene Instanz von CBasePlayer. Bei 8 Spielern macht das 8 Objekte (oder Instanzen) vom Typ CBasePlayer. Jeder Spieler hat ne Waffe in der Hand, aber nicht jeder Spieler die gleiche und du würdest dich auch etwas wundern, wenn dein Health-Wert runtergeht, nur weil drei Killometer weiter weg ein anderer Spieler angeschossen wird (ok, der Health-Wert steht nicht direkt in CBasePlayer aber das Beispiel ist so schön anschaulich). -- Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt. |
|
Profil || Suche |

