Uninstaller bei (signierten) Skripten ?

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

User avatar
mf_lueders
Posts: 346
Joined: Tue, 17. Feb 04, 14:42
x2

Uninstaller bei (signierten) Skripten ?

Post by mf_lueders »

Hi Allerseits,

wenn ich mir den Gebrauch von lokalen und globalen Variablen in Skripten so anschaue, wird mir schon ein wenig mulmig.
Die werden zwar in der Regel gepflegt (z.B. hält die BPH das HomeBase-Array immer schön sauber), aber Artefakte können (und werden) wohl häufig übrigbleiben. Deshalb die Frage, ob es auch angedacht ist, irgendwann einmal Uninstaller für Skripte zu schreiben, die dafür sorgen, dass nur von einem Skript verwendete externe Variablen wieder glöscht bzw. auf Null gesetzt werden ?
Oder widerspricht dass - langfristig gesehen - den Integrationsbestrebungen für Skripte, siehe BPH & Route Patrol ?

Ich frage jetzt nicht nach den Problemen der technischen Umsetzung (die müsste ja z.B. für NoModified-Games mindestens einen freien Command Slot haben), sondern nur danach, ob sowas überhaupt mal angedacht ist...

Oder gibt es vielleicht schon einen "Destruktor" für Skripte (evtl. über Signale), den ich bis jetzt noch nicht gefunden habe...

CU, MF
:skull: :skull: :skull:
MurxxruM
Posts: 65
Joined: Wed, 21. Jul 04, 14:17
x2

Post by MurxxruM »

Wenn du Scriptdateien aus deinem X2 Scripts verzeichnest entfernst werden diese beim nächsten Start nicht mehr ausgeführt (wie denn auch sind ja nicht mehr da) und folglich werden die Variablen (sowie alle anderen Funktionen des Scripts) nichtmehr genutzt und sind auch nicht mehr vorhanden.
Eine Fehlerursache kann sein wenn du Scriptdateien löscht aber Schiffe noch den Befehlen von den Scripten folgen oder es versuchen. Also einfach das Script nicht mehr benutzen und dann löschen dann wird es keine Probleme geben. Probleme können auftauchen wenn zwei Scripte gleiche Namen haben aber es ist davon auszugehen das bei signierten Scripts solche Fehlerquellen überprüft werden.
User avatar
mf_lueders
Posts: 346
Joined: Tue, 17. Feb 04, 14:42
x2

Post by mf_lueders »

Hmm, klar die Lebensdauer der internen Variablen ist auf die Laufzeit des Skriptes beschränkt. Die liegen ja auch nur in dessen Namensraum.
ABER:

Die lokalen und globalen Variablen unterliegen da keiner Beschränkung (zumindest verstehe ich sie so) ausser der, das lokale Variablen am Objekt (eher Ding, wir sind bei den Skripten nicht in der OO-Welt) hängen. Wenn Ding kaputt, dann lokale Variable weg.
Und die möglichen Artefakte an lokalen bzw. globalen Variablen geben mir zu denken.

Wie man ein Skript sauber entfernt, weiss ich schon, habe ich gerade hinter mir. Momentan steht meine gesamte Wirtschaft still und hungert nach neuen Aufgaben.

CU, MF
:skull: :skull: :skull:
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Tja, gute Frage. Die signierten Scripte sind zumindest von Egosoft anerkannte Erweiterungen von X² und das deinstallieren soweit ich weiß nicht vorgesehen.

Ich denke mal darüber nach, wie man das lösen kann. :) (ohne das es für mich arbeit bedeutet :D )

Gruß ticaki
Zur Zeit nicht aktiv
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

ticaki wrote:Ich denke mal darüber nach, wie man das lösen kann. :) (ohne das es für mich arbeit bedeutet :D )
Ganz einfach, jedes signierte Script muss die Fähigkeit bekommen sich selbst zu entfernen, also eine Pflicht.

Was mich wirklich sehr stört, man kann Scripte unsauber beenden. Man kann bei Schiffen alle laufenden Scripte einfach mit dem Kommandobefehl [KEIN] abbrechen, ebenso bei den Slots der Stationen und der Schiffe. Das abgebrochene Script hat dann keine Möglichkeit mehr lokale und globale Variablen zu säubern bzw. zu löschen.

Schöne wäre es zur Abhilfe, wenn man laufende Scripte überprüfen könnte.

z.B.: <RetVar/IF> <RefObj> is script <Script Name>

Gruß
Lucike
Image
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Lucike FZ wrote:
ticaki wrote:Ich denke mal darüber nach, wie man das lösen kann. :) (ohne das es für mich arbeit bedeutet :D )
Ganz einfach, jedes signierte Script muss die Fähigkeit bekommen sich selbst zu entfernen, also eine Pflicht.
Jup, nur dann müsste ich die Signierregeln überarbeiten (ist doch auch arbeit :D )

Gruß ticaki

P.S. aber im Grunde hast du Recht. Ich bin mir nur noch nicht sicher in wieweit diese Scripte zu X² dazugehören... :gruebel:
Zur Zeit nicht aktiv
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

ticaki wrote:(ist doch auch arbeit :D )
Hey, Du bist hier Mod. Auf die faule Haut legen is nich. :D

Einfach daraus eine Scripterpflicht machen. Jeder Scripter muss ein Uninstallscript mitgeben, welches natürlich auch signiert werden muss. Dieses Script wird im Fall des Entfernens in das Script-Verzeichnis kopiert.

Gruß
Lucike
Image
User avatar
mf_lueders
Posts: 346
Joined: Tue, 17. Feb 04, 14:42
x2

Post by mf_lueders »

Lucike FZ wrote:Was mich wirklich sehr stört, man kann Scripte unsauber beenden. Man kann bei Schiffen alle laufenden Scripte einfach mit dem Kommandobefehl [KEIN] abbrechen, ebenso bei den Slots der Stationen und der Schiffe. Das abgebrochene Script hat dann keine Möglichkeit mehr lokale und globale Variablen zu säubern bzw. zu löschen.
Jupp, vor allen Dingen können Skripte zu jedem Zeitpunkt beendet werden und so u.U. auch inkonsistente Daten zurücklassen. <doziermodus aus>
Schöne wäre es zur Abhilfe, wenn man laufende Scripte überprüfen könnte.
z.B.: <RetVar/IF> <RefObj> is script <Script Name>
Oder ein Signal/Event, das an ein Skript gesendet wird, bevor es abgebrochen wird. Sowas ist im SE bzw. AL (scheint ja derselbe Interpreter zu sein) auch schon vorgesehen.

Allerdings sind das Wunschträume, die mit dem aktuellen SE nicht realisierbar sind, weiss ich auch.

Was aber wenig Arbeit machen würde, wäre eine Guideline, zu jedem setup. bzw. init. Skript auch ein remove. Skript zu schreiben, das die skriptspezifischen externen Variablen auch wieder löscht.
Ich meine, das die SupplySoft ST1 (?) sowas z.B. schon hat.

CU,MF

Edit: Mist, dass kommt davon, wenn man so langsam tippt, da wird man gleich von zwei Leuten überholt 8)
:skull: :skull: :skull:

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