CreateScriptPlayer

Kategorie: Spieler
Ab Engineversion: 4.9.6.0 CR

Beschreibung

Initiiert den Beitritt eines Scriptspielers. Scriptspieler berhalten sich von der Scriptseite wie reguläre Spieler. Sie haben eine Stammcrew, ein Konto, Baupläne, Heimatbasismaterial, Verfeindungen, Teams, etc. Für diese Spieler wird jedoch regulär kein Sichtfenster geöffnet und sie lassen sich nicht von menschlichen Spielern steuern.
Scriptspieler können zum Beispiel verwendet werden, um KI-Gegner wie z.B. Bots in Hazard zu realisieren.

Syntax

bool CreateScriptPlayer (string szName, int dwClr, int idTeam, int dwFlags, id idExtraData);

Parameter

szName:
Name für den Scriptspieler. Muss angegeben werden.
dwClr:
Spielerfarbe
idTeam:
[opt] Team-ID. Wird 0 angegeben, so wird ein Team nach denselben Regeln ausgewählt wie bei einem normal beitretenden Spieler.
dwFlags:
[opt] Bitmaske aus folgenden Werten:
Bit Konstante Beschreibung
0 CSPF_FixedAttributes Wenn gesetzt, tritt der Spieler garantiert mit den in den Parameter angegebenen Namen und Farbe bei. Ansonsten werden die Attribute bei Kollisionen geändert.
1 CSPF_NoScenarioInit Wenn wahr, wird die Szenarieninitialisierung, also das Erzeugen von Heimatbasismaterial und Clonks, das Setzen der Baupläne nach Szenarienvorgaben, etc., nicht durchgeführt. Außerdem werden die globalen PreInitializePlayer- und InitializePlayer-Callbacks ans Szenarienscript und die Spielziel-, Regel- und Umweltobjekte nicht ausgeführt. Stattdessen wird ein InitializeScriptPlayer(Spielernummer, Team)-Callback als DefinitionCall (d.h. ohne this()-Objekt) auf der in idExtraData angegebenen Definition ausgeführt. Mit diesem Parameter lassen sich also spezialisierte Scriptspieler realisieren, die nicht gleichberechtigt mit menschlichen Spielern agieren.
2 CSPF_NoEliminationCheck Wenn gesetzt, wird der Spieler nicht automatisch eliminiert, wenn er keine Crew mehr hat.
3 CSPF_Invisible Wenn gesetzt, ist der Spieler nicht in Spielerlisten wie zum Beispiel in der Lobby und im Verfeindungsmenü sichtbar.
idExtraData:
[opt] ID, die durchgereicht und an den InitializePlayer-Aufruf weitergegeben wird. Durch Angabe einer ID lassen sich Scriptspieler-Typen unterscheiden. Beispielsweise könnte ein Szenario dynamisch Alien- oder Clonkgegner anbieten.

Anmerkung

Scriptspieler treten in Netzwerkspielen genau wie reguläre Spieler verzögert bei. Das bedeutet, dass nach dem Aufruf von CreateScriptPlayer nicht sofort der Spieler zur Verfügung steht.
Wenn ein Script beispielsweise einen KI-Spieler ereugen will, so sollte die tatsächliche KI-Initialisierung erst im entsprechenden InitializePlayer-Callback erfolgen, wobei mit GetPlayerType() geprüft werden kann, ob es sich um einen Scriptspieler handelt.
Wird der Spieler schon zu Beginn des Szenarios gebraucht - also zum Beispiel als Gegner in einer Mission - so sollte stattdessen ein Spieler in den SavePlayerInfos.txt angelegt werden.

Beispiel

Für Beispiele siehe Scriptspieler.
Siehe auch: GetPlayerType, Scriptspieler
Sven2, Dezember 2007