Im Moment verstehe ich die Welt nicht mehr, nachdem ich gerade in der wohltuenden Phase war, wo ich das Gefühl kriegte, Papyrus beherrschen und alles hinkriegen zu können.
Habe zuerst ein Objekt-Script auf ein Quest-Script zugreifen lassen und das ging.
Dann brauchte ich noch eine Quest, und ging nach dem selben Schema vor und es ist, wie wenn ich nur Variabeln zurück kriegte, die nie initialisiert wären.
Beispiel 1: klappt alles.
Code:
Scriptname DRWEffectsControllerScript extEnds ObjectReference
DRWEffectsQuestScript Property EffectQuest Auto
Function X()
int selected = DRWEffectsMsgSaturation.Show(EffectQuest.EffectSetting(effectId) + 1)
EndFunction
Scriptname DRWEffectsQuestScript extends Quest Conditional
int Function EffectSetting(int effectId)
return fxTypes[effectId]
EndFunction
Script 2: Klappt nicht.
Code:
Scriptname DRWEffectsControllerScript extEnds ObjectReference
DRWEffectsQuestGoreScript Property EffectGoreQuest Auto
Function X()
int selected = DRWEffectsMsgGore.Show(EffectGoreQuest.GetGoreType() + 1, EffectGoreQuest.GetTreshold() * 100)
EndFunction
EffectGoreQuest.SetTreshold(EffectGoreQuest.GetTreshold() - 0.05)
Scriptname DRWEffectsQuestGoreScript extends Quest
float goreTreshold = 0.5
float Function GetTreshold()
return goreTreshold
EndFunction
Im Beispiel 2 geben sämtliche Rückgabewerte 0 oder 0.00000 zurück, was ja bei goreTreshold, das mit 0.5 initialisiert wird, gar nicht möglich sein kann. Ich schaffe es auch nicht, den Wert von Treshold updaten zu lassen.
Und wenn die Variable goreTreshold auf der Quest wirklich 0.0000 hätte und goreEnabled 0 wäre, dann wären die Blut-Effekte gar nicht sichtbar, aber das sind sie, das Script läuft völlig problemlos.
Was kann es sonst für einen Grund geben, das sowas passiert?