Create M2 mit Inva Befehlsfolge... Problem.

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

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

Painkiller
Posts: 1546
Joined: Wed, 6. Nov 02, 20:31
x2

Create M2 mit Inva Befehlsfolge... Problem.

Post by Painkiller »

Tach...

hab da ein kleines Prob mit dem erstellen von folgender Sache:

1. Erstelle M2
2. Gebe ihm Befehl Zielsektor zu invasieren.

... und das ganze mit mehr als 1 M2.

Sieht so aus:

Basisscript (welches aufgerufen wird):

....

nach eingehender Diskussion mit Merroc:

Ich habe keine Ahnung... wie mache ich das nun?
Deleted User

Post by Deleted User »

Und jetzt bitte nochmal auf verständlichem deutsch.
User avatar
odie forever
Posts: 2649
Joined: Thu, 29. Jul 04, 19:59
x3tc

Post by odie forever »

Hi

Er will mehrere M2 herbeisripten, diese in einen Sektor fliegen lassen, damit sie dort alles angreifen, was dem Volk dort gehört. :roll:

mfg Odie
Deleted User

Post by Deleted User »

Ahhhh, jetzt ja.

Wo ist das Problem?

Code: Select all

$i = <Anzahl>
while $i
 dec $i
 $ship=create ship: type=<M2> owner=Piraten addto=<Sektor> x=0 y=0 z=0
 $ship->add default items to ship
 START $ship->call script '!fight.invasion':the sector to invade=<Sektor>
end
Painkiller
Posts: 1546
Joined: Wed, 6. Nov 02, 20:31
x2

Post by Painkiller »

....

Tach...

Sorry, war gestern im Streß, aber Merroc hat sich dann noch mal darum gekümmert, und, falls das andere auch jemals brauchen, hier die Lösung:

Aufgabe:

Erstelle mehrere, verschiedene (also nix mit loop-Schleife ;) ) M2, laße diese in einen Sektor fliegen und dort den Befehl Invasion durchführen.

Wichtig: Es hat sich herausgestellt, daß ein Commando, welches mit "Start" gestartet wird, in diesem Fall ein dickes Problem gibt: Nachdem das 1. M2 erscheint und anfängt seinen Befehl auszuführen, ist Ende im Gelände. Auch eine Zerstörung dieses ersten M2 bringt keine Änderung.

Lösung:

Der Invasionsbefehl wird stattdessen so gestartet:

$ship3= start task 0 with script !ship.cmd.invasion.std and prio 0: arg1= Zielsektor arg2-5=NULL

Offenbar ist es hier notwendig, direkt einen Task auf jeweiligem Schiff auszuführen, eine Commando alleine geht nicht.

Man muß also auch den auszuführenden Befehl exakt seiner Hierachie einordnen, automatisch geht das nicht.

Ich habe das alles so getestet.

Und jetzt geht es.

mfg Painkiller
Deleted User

Post by Deleted User »

Schleife geht trotzdem indem man einfach ein Array verwendet. Sollen bei jedem aufruf unterschiedliche M2 auftauchen kommt noch ein Hilfsarray hinzu.
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

Painkiller wrote:$ship3= start task 0 with script !ship.cmd.invasion.std and prio 0: arg1= Zielsektor arg2-5=NULL
Schau dir dazu mal die ganzen AutoUpdate-Scripte der Bonuserweiterungen an. Das eigentliche Script startet ein globales Script und beendet sich anschließend. Das globale Script startet wieder das Script auf dem Objekt und beendet sich ebenfalls. Das könntest Du dir zunutze machen.

"add default items to ship" bringt doch bei jeder Anwendung verschiedene Ausrüstungsergebnisse. Also doch eine Schleife?

Gruß
Lucike
Image
Painkiller
Posts: 1546
Joined: Wed, 6. Nov 02, 20:31
x2

Post by Painkiller »

Ja, sicher kann ich eine Schleife verwenden, ne einfache Zählschleife im Controllscript (Jedes M2 wird in einem eigenen Script erzeugt, welches dann im Controllscript mit Schleifenfunktion aufgerufen wird).

Allerdings brauche ich keine Schleife, denn wenn ich von jedem Volk ein M2 erzeuge, daß einen Sektor angreift, dann tut es das denke ich.

Ja klar verwende ich das add default items to ship, ich will ja keine 5 gleichen Schiffe haben. Das sind ja KI Schiffe und nicht meine *g*.

Mein Problem lag eigentlich darin, daß es nicht möglich war, bei Verwendung des Start Commando-Befehls mehr als 1 M2 zu erzeugen. Das Script lief zwar weiter, aber es geschah nichts mehr.
Nein, es gab kein einfrieren und kein aufhängen des PC´s.

Ein Array ist nicht notwendig, da jedes Schiff im immer gleichen Sektor (Loomantrats Vermächtnis) (das kann ich somit festsetzen) erzeugt wird und dann einen jeweils zufällig gewählten Sektor invasiert.

Ich habe hier versucht, ein Situationsspezifisches Script möglichst kurz und ohne Schleifen zu programmieren. Wegen der CPu-Belastung... :wink:

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