Hallo!
Ich habe mir selbst ein Script erstellt, indem ein Khaak-Shiff erstellt wird. Es soll nun ein ausgewähltes Schiff angreifen.
Ich habe es so gemacht:
$I = set attack target to $player
$ATTACK = set command COMMAND_ATTACK_TARGET
doch leider greift das schiff nicht an, sondern fliegt einfach irgendwo hin
Wie kann ich ein bestimmtes Schiff angreifen lassen?
Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum
-
- Posts: 22
- Joined: Thu, 19. May 05, 14:15
-
- Posts: 2027
- Joined: Sun, 6. Apr 03, 18:57
Hm, erstmal würd ich ne andere Befehlszeile nehmen. "set command" ist nur für kosmetische Zwecke da. Im Menü Fly Commands find sich ein Kommando, das da lautet:
START <RefObj> command <Object Command>: arg1=<Value>,arg2=<Value>,arg3=<Value>,arg4=<Value>
RefObj ist das Schiff, das später den Befehl ausführen soll. Je nachdem welche Variable du für das erstellen deines Schiffes benutzt hast, musst du diese auch verwenden. In diesem Beispiel muss RefObj also $ship sein:
$ship = create ship: type=blablala....
Und dann müssten nach dem Kommando noch ein paar Argumente freistehen. Das erste Argument kann man durch eine Variable oder Obejkt ersetzen. Dies wird dann das Schiff sein, das angegriffen wird, hier: $target. Für ATTACK_TARGET wird nur ein Argument benötigt, also den Rest durch "null" ersetzen.
So sollte das aussehen:
START = $ship > command COMMAND_ATTACK_TARGET: arg1=$target,arg2=null,arg3=null,arg4=null
Jetzt nur noch eine Zeile oder ein Argument, die die Variable $target bestimmt und Skript ausführen. Fertig!
START <RefObj> command <Object Command>: arg1=<Value>,arg2=<Value>,arg3=<Value>,arg4=<Value>
RefObj ist das Schiff, das später den Befehl ausführen soll. Je nachdem welche Variable du für das erstellen deines Schiffes benutzt hast, musst du diese auch verwenden. In diesem Beispiel muss RefObj also $ship sein:
$ship = create ship: type=blablala....
Und dann müssten nach dem Kommando noch ein paar Argumente freistehen. Das erste Argument kann man durch eine Variable oder Obejkt ersetzen. Dies wird dann das Schiff sein, das angegriffen wird, hier: $target. Für ATTACK_TARGET wird nur ein Argument benötigt, also den Rest durch "null" ersetzen.
So sollte das aussehen:
START = $ship > command COMMAND_ATTACK_TARGET: arg1=$target,arg2=null,arg3=null,arg4=null
Jetzt nur noch eine Zeile oder ein Argument, die die Variable $target bestimmt und Skript ausführen. Fertig!

-
- Posts: 22
- Joined: Thu, 19. May 05, 14:15
hmm geht doch noch nicht.
das script sieht ungefähr so aus:
$target = Var Shipt/station
$Player = Var Shipt/station
$x = $player -> get x position
$y = $player -> get y position
$z = $player -> get z position
$sektor = $player -> get sektor
$y = $y + 2000
$z = $z + 2000
$khaak1 = craete ship owner=khaak type=...
$khaak1 = add default items to ship
START = $khaak1 command COMMAND_ATTACK_TARGET arg1=$target,arg2=null,arg3=null,arg4=null
Wo liegt da der Fehler?
das script sieht ungefähr so aus:
$target = Var Shipt/station
$Player = Var Shipt/station
$x = $player -> get x position
$y = $player -> get y position
$z = $player -> get z position
$sektor = $player -> get sektor
$y = $y + 2000
$z = $z + 2000
$khaak1 = craete ship owner=khaak type=...
$khaak1 = add default items to ship
START = $khaak1 command COMMAND_ATTACK_TARGET arg1=$target,arg2=null,arg3=null,arg4=null
Wo liegt da der Fehler?
-
- Posts: 2027
- Joined: Sun, 6. Apr 03, 18:57
Hab nochmal nachgeguckt, es gibt COMMAND_ATTACK, das für das standartmäßige Angreifen benutzt wird. Allerdings gibts da noch COMMAND_ATTACK_TARGET. Dies wird bei "Greife mein Ziel an", also das Ziel im Fadenkreuz vom Spieler wird beim Angriff priorisiert. Es ist mir auch schon passiert, dass ich beide verwechselt habe.
Ersetzte COMMAND_ATTACK_TARGET durch COMMAND_ATTACK.
Profit!
Ersetzte COMMAND_ATTACK_TARGET durch COMMAND_ATTACK.
Profit!
