Mit den Trägern scheint alles iendlich in Ordnung zu sein.
Danke nochmal.
Jetzt taucht ein Problem in einem Script auf, und ich hab kein Plan woran der Fehler ligt. Eigentlich, es muss funktionieren, aber es tut es nicht.
Hier ist es:Zitat: begin SG_big_reload_right
short Status
; 0 - undefiniert
; 1 - ein grösseres SG ist drin
; 2 - GrossStein geladen
; 3 - GrossStein leer und bereut
; 4 - Reload initiated
; -1 - kein GrandStein ist drin
; -2 - zu viele Steine drin
short Total_SG
; wieviele Steine insgesamt drin
short Great_SG
; wieviele GrandSteine sind drin
short transported_soul
; SG_big_reload_left -> a_Soul
short BeDeleted
float DeleteTimer
SkipAnim
if ( SG_Status_great == -1 )
if ( BeDeleted < 1)
Set BeDeleted to 1
endif
if ( BeDeleted == 1 )
MessageBox "Right be deleted", "Ok"
Disable
Set BeDeleted to 2
Set DeleteTimer to 0
endif
if ( BeDeleted == 2 )
Set DeleteTimer to ( DeleteTimer + GetSecondsPassed )
if ( DeleteTimer < 5 )
return
else
SetDelete 1
endif
endif
endif
Set Total_SG to ((GetItemCount, "Misc_SoulGem_Petty") + (GetItemCount, "Misc_SoulGem_Lesser"))
Set Total_SG to (Total_SG + (GetItemCount, "Misc_SoulGem_Common"))
Set Total_SG to (Total_SG + (GetItemCount, "Misc_SoulGem_Greater"))
Set Total_SG to (Total_SG + (GetItemCount, "Misc_SoulGem_Grand"))
Set Total_SG to (Total_SG + (GetItemCount, "Misc_SoulGem_Azura"))
Set Great_SG to (GetItemCount, "Misc_SoulGem_Greater")
; STEP 1 Überprüfen ob genau 1 GrossStein und kein anderer mehr drin
if ( Total_SG > 1 )
Set Status to -2
elseif ( Total_SG < 1 )
Set Status to -1
elseif ( Great_SG != 1 )
Set Status to -1
else
if (Status < 1)
Set Status to 1
; MessageBox "GrossStein ist drin", "Ok"
endif
endif
; STEP 2 Prüffen ob Stein leer ist (od. nur eine schwache Seele hat)
if (Status == 1)
short s1
Set s1 to ((HasSoulGem "dagoth araynys") + (HasSoulGem "dagoth endus"))
Set s1 to (s1 + (HasSoulGem "dagoth gilvoth"))
;;;;
;;;; u.s.w. – 196 Zeilen insgesammt.
;;;;
Set s1 to (s1 + (HasSoulGem "bonelord_summon"))
if (s1 == 0)
MessageBox "Stein ist leer", "Ok"
Set Status to 3
else
MessageBox "Stein ist nicht leer", "Ok"
Set Status to 2
endif
endif
if ( Status > 2 )
if ( SG_Status_great < 2 )
Set SG_Status_great to ( SG_Status_great + 2 )
endif
else
if ( SG_Status_great > 1 )
Set SG_Status_great to ( SG_Status_great - 2 )
endif
endif
if ( Status == 3 )
if ( SG_Status_great == 4 )
Set Status to 4
MessageBox "Change Status to 4", "Ok"
endif
endif
if (Status == 4)
Set transported_soul to SG_transport_great
MessageBox "Die Seele Nr. %g", transported_soul, "Ok"
if (GetItemCount "Misc_SoulGem_Greater" == 1)
RemoveItem "Misc_SoulGem_Greater", 1
endif
Set Status to 2
if ( transported_soul == 1)
AddSoulGem "Dagoth_crew_1", Misc_SoulGem_Greater
elseif ( transported_soul == 2)
AddSoulGem "goblin_warchief00", Misc_SoulGem_Greater
;;;;
;;;; u.s.w
;;;;
elseif ( transported_soul == 19)
AddSoulGem "hunger", Misc_SoulGem_Greater
else
MessageBox "Fehler Beim Übertragen der Seele"
endif
endif
end SG_big_reload_right
Grüm markiertes - funltioniert einwandfrei.
Rot - kneift.
SG_Status_great - globale Variable, deren Werte von diesem und einem anderen Script gesetzt werden.
Das Problem ist, dass diese Variable tatsächlich den Wert 4 bekommt (überprüfft per "SV" - Befehl in Konsole), aber der Script sieht es nicht.
Falls jemand zufählig weiss, woran es liegen kann... 
__________________ Früher schrieb jeder Mann die Treiber für alle seine Geräte selbst.
Dieser Beitrag wurde von Declen am 06.09.2007, 15:47 Uhr editiert.
|