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
Scripte extern beenden
Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum
-
- Posts: 115
- Joined: Tue, 25. Apr 06, 12:40
Re: Scripte extern beenden
Hallo,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
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
-
- Posts: 385
- Joined: Sun, 8. Feb 04, 16:41
Re: Scripte extern beenden
Hallöchen Manfred
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.
Tschüssi
Ralf
ManfredP[/quote]
So hab ich mir bisher auch geholfen, nur muß man dafür eben immer in den Script Editor - eben das wollte ich verhindern.Vorne, wo man in den Editor rein kommt, steht auch so'n ganzer Haufen Krempel wie Script Debugging oder Reinit Script Caches. Da kann ...
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...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.
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.
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 ?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üssi
Ralf
ManfredP[/quote]