Fliegende Ware einsammeln durch Scripteditor-befehl

Hier ist der ideale Ort um über Scripts und Mods für X²: Die Bedrohung zu diskutieren.

Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators

User avatar
The Corrupted one
Posts: 25
Joined: Fri, 16. Jul 10, 18:49

Fliegende Ware einsammeln durch Scripteditor-befehl

Post by The Corrupted one » Thu, 29. Jul 10, 15:37

Hallo alle,

ich muss wohl schon wieder eure Hilfe in Anspruch nehmen.

Also: ich hatte vor, als Teil eines Scriptes, ein Schiff via Scripteditor einen zuvor durch "find flying ware" gefundenen Frachtcontainer einsammel zu lassen. Zu diesem Zweck habe ich einen Testscript geschrieben (und mithillfe des Internet-Explores den unumkehrbar getarnten Script tatsächlich gefunden und geöffnet (und dabei bemerkt, dass es eine "followhip.cat" gibt xD)).
Code:

Code: Select all

001   $mt =  get maintype of ware Energiezellen
002   $st =  get subtype of ware Energiezellen
003   $fly =  create flying ware: maintype=$mt subtype=$st count=20 sector=Heimat des Lichts x=200 y=2000 z=20000 selfdestruct=1000
004   $ship =  create ship: type=Piraten Schiff owner=Player addto=Heimat des Lichts x=2000 y=2000 z=20000
005   
006 @ START [THIS] -> call script 'ZZZzInstalAllImportantWare' :  ShipOfDestination=$ship
007   $fw =  find flying ware: sector=Heimat des Lichts maintype=$mt subtype=$st flags=[Find.Nearest] refobj=$ship maxdist=5000 maxnum=20, refpos=null
008   
009   if $fw == null
010    send incoming message 'null' to player: display it=[TRUE]
011    $nac = sprintf: pageid=1784 textid=1, $fw, null, null, null, null
012    send incoming message $nac to player: display it=[TRUE]
013   else
014    send incoming message 'else' to player: display it=[TRUE]
015    $x = $fw -> get x position
016    $y = $fw -> get y position
017    $nac = sprintf: pageid=1784 textid=6, $fw, $x, $y, null, null
018    send incoming message $nac to player: display it=[TRUE]
019   end
020   return null
021 @ = $ship -> move to ware object $fw for collecting: timeout=10000000 ms
022   = $ship -> catch ware object $fw
023   return null
Ja, der mag jetzt ein wenig unübersichtlich herüberkommen, ganz ohne Kommentare etc etc, ich hab ihn eben nur "auf die schnelle" zusammengebastelt.

Die "send incoming message"-Befehle sind, um mich zu vergewissern, dass auch tatsächlich ein Container gefunden wurde. der sprintf-befehl war die erste Mögichkeit, die mir einfiehl, um Variablen als Nachricht übermitteln zu können.

Nun genaueres zu meinem Problem:
Wenn ich diesen Script ausführe, sammelt er die Ware nämlich nicht ein. Er steht nur da rum - und macht garnichts. Die Nachrichten dagegen zeigen an, dass er sehr wohl den Container gefunden hat, und auch die Koordinaten sind darin richtig angezeigt.

Hoffe hier kann mich jemand aufklären ;)

User avatar
Chris Gi
Posts: 960
Joined: Wed, 20. Sep 06, 09:57
x3tc

Post by Chris Gi » Thu, 29. Jul 10, 16:11

Zeile 20 beendet das Script, bevor irgendwie das Schiff zu der Ware fliegen kann.

Ich würde außerdem das Einsammeln gar nicht selbst machen, sondern das bereits vorhandene Script !move.collectware nutzen. Dann muss man sich nicht mehr so viel Gedanken machen darüber, ob die Ware noch existiert usw.
--------------------------------

[ external image ]

User avatar
The Corrupted one
Posts: 25
Joined: Fri, 16. Jul 10, 18:49

Post by The Corrupted one » Thu, 29. Jul 10, 16:24

thanks a lot :)

mann, sowas fällt einem nicht auf.....gott....daran hab ich jetzt 2 Tage gesessen.... naja, danke xDD

Return to “X²: Die Bedrohung - Scripts und Modding”