.| Autor | Beitrag |
|---|---|
|
000 11.01.2002, 23:51 Nicemice Moderator |
Um Teilmengen von Spielern zu erstellen, speichere ich die Pointer auf die einzelnen CBasePLayer in einer Liste. Der Code funktioniert auch wunderbar solange kein weiterer Spieler das Spiel betritt, doch falls einer das Spiel betritt, ergeben sich Ungereihmtheiten mit den Spielern ich schon in die Liste aufgenommen habe. Wenn ja, was soll ich dann anstatt dessen in der Liste speichern ? Den Entity Index ? Was ist für jedes Entity eintdeutig ? --www.d3opencoop.com - A Doom3 Cooperative Mod |
|
Profil || Suche |
|
001 12.01.2002, 10:20 thinktank |
Also ich würde end ENTINDEX nehmen, soweit ich weiß sind die Player praktischerweise sind die Indixes 1-32 die Player, somt kannste eine Schleife wie die hier ausm Hl-Code bauen : for ( i = 1; i <= gpGlobals->maxClients; i++ ) |
|
Profil || Suche |
|
002 12.01.2002, 12:45 Nicemice Moderator |
Also ändert sich der Entityindex während eines Spiels nicht ? www.d3opencoop.com - A Doom3 Cooperative Mod |
|
Profil || Suche |
|
003 12.01.2002, 13:36 Prefect |
Ja natürlich - alle Entities befinden sich in einem großen Array und werden nicht hin- und hergeschoben. Noch besser als ein entindex ist allerdings ein EHANDLE: Das ist eine Klasse, die praktisch einen (CBaseEntity *) enthält, sich aber automatisch auf 0 zurücksetzt, wenn die angezeigte Entity verschwindet. Wenn du nämlich nur den entindex speichern würdest könnte es sein, daß der betroffene Spieler das Spiel verläßt und direkt darauf ein neuer das Spiel betritt - mit dem gleichen entindex. Beim EHANDLE hast du dieses Problem nicht. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
004 12.01.2002, 13:44 Killing Me Softly |
Der Entityindex ist für jedes Entity während seiner Lebensdauer eindeutig und ändert sich nicht. Jedes Entity hat seinen eigenen Index und damit läßt sich jedes Entity anhand des Index eindeutig identifizieren. Und jetzt kommt ne klitzekleine Einschränkung: Wird ein Entity zerstört (Spieler verläßt das Game) so wird der Index frei und kann dann für ein anderes (neues) Entity benutzt werden (neuer Spieler betritt das Game).
Nein - nein - nein (nur um deine ursprünglichen Fragen zu beantworten). Ein Zeiger auf ein Objekt zeigt nicht plötzlich irgendwo anders hin, nur weil ein neues Objekt erzeugt wurde. Da wird auch nichts verschoben oder verrückt. Muss also an was anderem liegen. [Edit] Prefect war mal wieder schneller... --Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt. Dieser Beitrag wurde am 12.01.2002 um 13:46 von Killing Me Softly bearbeitet. |
|
Profil || Suche |
|
005 12.01.2002, 14:27 Nicemice Moderator |
so, ich habs nochmal getestet. Sobald ein neuer Spieler das Spiel betritt, ist der Zeiger auf einen Spieler(der vorher schon auf dem Server war) eine Anderer als vorher. Prefekt, gibts irgendwo ein Tutorial zu EHANDLES, das sagt mir nämlich gar nix. --www.d3opencoop.com - A Doom3 Cooperative Mod |
|
Profil || Suche |

