AddCommand

Kategorie: Objekte / Commands
Ab Engineversion: 4.6.5.0 CP (erweitert ab 4.9.1.0 GWE) (erweitert ab 4.9.5.0 CE)

Beschreibung

Fügt ein Kommado in die Kommandoliste eines Objekts hinzu (an den Anfang, siehe auch AppendCommand). D.h. es wird ein Kommando hinzugefügt, welches das Objekt vor anderen vorher gegebenen Kommandos auszuführen hat (war vorher kein Kommando gesetzt, so entspricht AddCommand SetCommand)
Für Kommando-Beschreibungen siehe SetCommand

Syntax

bool AddCommand (object pObj, string szCommand, object pTarget, int iX, int iY, object pTarget2, int iInterval, any Data, int iRetries, int iBaseMode);

Parameter

pObj:
Objekt, dem das Kommando gegeben wird.
szCommand:
Kommandoname (als String). Siehe untere Tabelle
pTarget:
[opt] Zielobjekt für Aktion
iX:
[opt] X-Zielkoordinate
iY:
[opt] Y-Zielkoordinate
pTarget2:
[opt] zweites Zielobjekt
iInterval:
[opt] Zeit (in Ticks/Frames), bis das Kommando abgebrochen wird (es wird dann mit dem nachsten in der Kommandoliste fortgesetzt)
Data:
[opt] zusätzliche Daten zur Aktion
iRetries:
[opt] Anzahl der Wiederholungen (wenn das Kommando fehlschlägt), bis das Kommando abgebrochen wird.
iBaseMode:
[opt] Bestimmt, wie beim Fehlschlag des Commands verfahren wird.

iBaseMode Name Beschreibung Fehlschlagsmeldung und CallFailed-Aufrufe Nächster Befehl
0 C4CMD_SilentSub Stiller Unterbefehl Nur wenn dies der letzte Befehl ist Schlägt fehl
3 C4CMD_Sub Unterbefehl Wenn der nächste Befehl keine Wiederholungen mehr hat oder dies der letzte Befehl ist Schlägt fehl
2 C4CMD_SilentBase Stiller Basisbefehl Nie Schlägt nicht fehl
1 C4CMD_Base Basisbefehl Immer Schlägt nicht fehl

Anmerkung

Mit AddCommand hinzugefügte Befehle werden nicht an gesteuerte Fahrzeuge weitergeleitet (siehe VehicleControl)

Beispiel

Timer:
  var obj = FindObject(0, -20, -40, 40, 40, OCF_CrewMember();
  if(obj)
    if(GetComDir(obj) == COMD_Right())
      AddCommand(obj, "Jump");
  return();
Dieser Timer-Script bewirkt (aus einem Objekt aufgerufen, welches auf dem Boden liegt), dass jeder Clonk, der über das Objekt von links nach rechts hinübergeht, springt. Dazu wird erst ein Clonk (bzw. CrewMember) über dem Objekt gesucht. Wurde ein solcher gefunden, und läuft er im Moment nach rechts (ComDir), so wird dem Clonk das Kommando "Jump" hinzugefügt. Das besondere an dem Script ist, dass die alte Befehlskette nicht angetastet wird; der Clonk wird nachdem er gesprungen hat seine Befehlskette weiter verarbeiten.
Mithilfe dieses Script kann man einem Clonk z.B. beibringen, an einer bestimmten Stelle automatisch über einen Abgrund zu hüpfen.
Siehe auch: AppendCommand, FinishCommand, GetCommand, PlayerObjectCommand, SetCommand
PeterW, November 2001
Günther, Januar 2005