Scripte extern beenden

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

Ralf Hansen
Posts: 385
Joined: Sun, 8. Feb 04, 16:41
x2

Scripte extern beenden

Post by Ralf Hansen »

Hallöchen

Ich möchte für meinen Gefahren MOD, mein Hauptprogram, welches in einer
Endlosschleife immer wieder aufgerufen wird, von einem Script aus beenden.

Hintergrung: Da die laufenden Scripte mit abgespeichert werden, ist es mir
nicht möglich (außer den Scripteditor zu aktivieren), ein neues (Upgedatetes)
Script zu starten - b.z.w. es ist möglich, aber das alte läuft parallel dazu weiter. Seit Version 3.23 startet sich das Hauptprogramm zwar immer neu, aber wenn man einen älteren Spielstand läd (und z.d. Zeitpunkt eine ältere Version hatte), wird eben immer diese alte Version des Hauptprogramms gestartet(weil noch kein Abbruch-Neustart) in der alten Version war.

Also, gibt es eine Möglichkeit, ein laufendes Script "abzuschiessen", um das aktuelle wieder zu starten? z.B. über ein Setup.xxx File beim laden.

Tschüssi

Ralf
ManfredP
Posts: 115
Joined: Tue, 25. Apr 06, 12:40

Re: Scripte extern beenden

Post by ManfredP »

Ralf Hansen wrote:Hallöchen

Ich möchte für meinen Gefahren MOD, mein Hauptprogram, welches in einer
Endlosschleife immer wieder aufgerufen wird, von einem Script aus beenden.

Hintergrung: Da die laufenden Scripte mit abgespeichert werden, ist es mir
nicht möglich (außer den Scripteditor zu aktivieren), ein neues (Upgedatetes)
Script zu starten - b.z.w. es ist möglich, aber das alte läuft parallel dazu weiter. Seit Version 3.23 startet sich das Hauptprogramm zwar immer neu, aber wenn man einen älteren Spielstand läd (und z.d. Zeitpunkt eine ältere Version hatte), wird eben immer diese alte Version des Hauptprogramms gestartet(weil noch kein Abbruch-Neustart) in der alten Version war.

Also, gibt es eine Möglichkeit, ein laufendes Script "abzuschiessen", um das aktuelle wieder zu starten? z.B. über ein Setup.xxx File beim laden.

Tschüssi

Ralf
Hallo,
so nicht, aber anders. Vorne, wo man in den Editor rein kommt, steht auch so'n ganzer Haufen Krempel wie Script Debugging oder Reinit Script Caches. Da kann man auch die Liste der global laufenden Scripts lesen und das Script mit der Del-Teste beenden. Aber Achtung: Die Liste springt manchmal rauf oder runter, wenn neue Scripts dazukommen oder sich welche (in den Zeilen darüber) beenden. Also aufpassen, sonst erwischt's das Falsche. Eine Abbruch-Kondition wie ein bestimmter Wert in einer globalen Variablen ist also immer die intelligentere Lösung -geht aber nur, wenn man gleich dran gedacht hat. Wenn das Script schon läuft und man hat den Abbruch vergessen, geht's nur so.

Das Alles gilt natürlich nur für Globale. Die Lokalen werden einfach durch ein anderes Kommando auf dem Schiff beendet. Sind sie als Task gestartet, braucht man ein Script unter dem gleichen Task (also gleiche Nummer).

Tschüß

ManfredP

Tschüß

ManfredP
Ralf Hansen
Posts: 385
Joined: Sun, 8. Feb 04, 16:41
x2

Re: Scripte extern beenden

Post by Ralf Hansen »

Hallöchen Manfred
Vorne, wo man in den Editor rein kommt, steht auch so'n ganzer Haufen Krempel wie Script Debugging oder Reinit Script Caches. Da kann ...
So hab ich mir bisher auch geholfen, nur muß man dafür eben immer in den Script Editor - eben das wollte ich verhindern.
manAbbruch-Kondition wie ein bestimmter Wert in einer globalen Variablen ist also immer die intelligentere Lösung -geht aber nur, wenn man gleich dran gedacht hat. Wenn das Script schon läuft und man hat den Abbruch vergessen, geht's nur so.
Genau das war mein Problem. Ich hab dann auch eine Globale Variable abgefragt, nur wird die ebenso abgespeichert, wenn sie einmal gesetzt wurde mit SET GLOBAL VARIABLE...
Ich hab mir jetzt so geholfen, das ich die Task PID abfrage, welche sich ja bei einem laufenden Skript dauernd ändert.
Im meinem Setup Program, welches beim Start ja immer gestartet wird, wird diese PID abgefragt, 10 sek. gewartet (das Hauptscript braucht ca. die hälfte an Zeit für einen durchgang, dann wird wieder die PID gesetzt), und die PID ein zweites mal abgefragt.
Läuft das Hauptprogram nicht, so ändert sich die mit SET GLOBAL VARIABLE Variable nicht und ich kann sicher sein, das das Hauptprogram nicht läuft - und starte es neu.

Am liebsten wäre mir gewesen, wenn ich einfach die laufenden Tast abfragen würde, aber dafür hab ich keinen Befehl gefunden.
Das Alles gilt natürlich nur für Globale. Die Lokalen werden einfach durch ein anderes Kommando auf dem Schiff beendet. Sind sie als Task gestartet, braucht man ein Script unter dem gleichen Task (also gleiche Nummer).
Wo ist eigentlich der Unterschied von Gobalen und lokalen Variablen ? Mit globalen Variablen funktioniert hier alles, bei lokalen bekomme ich keine vernünftigen Abfragen zustande... Wofür braucht man überhaupt lokale Variablen ?

Tschüssi

Ralf

ManfredP[/quote]

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