Construction Set Nachträgliche Erweiterung der esm-Abhängigkeit.

Lyali

Abenteurer
Hallo zusammen,

mir ist es jetzt schon öfters passiert, dass ich ein Plugin zuerst nur mit der Morrowind- und Bloodmoonabhängigkeit erstellt habe und dann z.B. beim Scripten feststellen musste, dass ich eine Funktion oder Variable (z.B. Dayspassed als globale Variable) brauche, die im "älteren" Tribunal enthalten ist, aber nicht im "neueren" Bloodmoon. Ich habe dann die Tribunalabhängigkeit ergänzt, indem ich im CS die Plugin-esp mit der Tribunal.esm gemeinsam geladen und abgespeichert habe. Allerdings zerschisse ich mir dabei anscheinend öfters Scriptfunktionen (z.B. OnActivate).
Meine Frage: Gibt es eine sichere Möglichkeit, fehlende esm-Abhängigkeiten zu ergänzen, ohne mir die esp-Datei zu zerschießen?
 
DaysPassed kannst Du auch ohne Tribunal bzw. nur mit Bloodmoon verwenden. Einfach die Variable als global short erstellen aber keinen Wert zuweisen, auch nicht 0.

OnActivate ist eine tricky function die man nicht mit if-blocks umklammern kann, z.b. dies hier
Code:
begin myTestScr

If ( Player-> GetItemCount Gold_001 >= 1000 )
  If ( OnActivate )
    ; das funktioniert nicht !
    ; es wird ausgeführt, 
    ; egal ob der Spieler mehr oder weniger als 1000 Draken hat
  Endif
Endif

end
Abhilfe gibts über eine lokale short z.B.
Code:
begin myTestScr

short angeklickt

set angeklickt to OnActivate

If ( Player-> GetItemCount Gold_001 >= 1000 )
  If ( angeklickt )
    ; so geht's  
  Endif
Endif

end

An doors ist OnActivate/Activate mit Vorsicht zu verwenden. Man muss wissen das eine Teleport-Tür die ein OnActivate im Script trägt den Cellchanged-event "verschluckt" - es ist also nicht feststellbar ob der Spieler die Zelle wechselt wenn er es über eine bescriptete door tut.

Es gibt in Schare's Download-Sektion ein Dependecy Tool Kit für Morrowind womit man manuell Abhängigkeiten hinzufügen, entfernen oder auch eine esm zur esp machen kann und umgekehrt. Erfordert java runtime environment (jre)

Allerdings mag das TES-CS auf diese Weise erstellte esm's nicht. Erstelle esm's mit dem CS selbst. Dazu in der Morrowind.ini (im MW-Hauptverzeichnis) die Sektion [WhoCanMerge] suchen (ziemlich weit unten, ich glaub nach den Level-Up-Texten) und das Wörtchen "acheng" gegen Deinen Windows-Benutzerkontennamen austauschen. Es können auch mehrere Benutzer eingesetzt werden, z.B.
Code:
'...
[WhoCanMerge]
Lyali=1
Otto=1
Anna=1
'...

danach hat das CS im File-Load-Fenster einen extra-Button "Merge to Master".
ACHTUNG-GEFÄHRLICH!
Dabei wird/werden die esp(s) zu esm(s) umgewandelt und ist/sind nachher weg. Daher zuvor immer Backup der esp(s) machen.
 
Zuletzt bearbeitet:
@ReneMiner: Das Tool Kit werde ich dann bei Gelegenheit mal ausprobieren. Das aufgetretene Problem war nicht, dass die Skripte nicht funktioniert haben, weil sie Fehler hatten (habe das gleiche Skript in eine andere esp mit Copy und Paste kopiert und es funzte wunderbar). Die eigentliche Funktion ging schlicht nicht mehr (und das auch nur bei Skripten, die nach der Erweiterung erstellt wurden). Seltsam, seltsam :?.