Construction Set Dringend Hilfe! Script!

Hey,

Ich brauche dringend Hilfe. Irgendwie klappt bei der Mod gar nichts so, wie es sollte. Jetzt hab ich es geschafft es bis zum Endgegner einigermaßen hinzurichten aber der macht einfach GAR nichts, wie er es soll.... Was ist an dem Script falsch?

scn NFRothundEndfightScript

short health
short DoOnce
short QuestUpdate

begin GameMode

set health to Getav health

if ( Getbaseav Health * ( 81 / 100 )) <= health && ( Getbaseav health * ( 60 / 100 )) > health
; Was passiert, wenn das Leben unter 81% ist!
Cast NFRothundRevive NFSkeletonREF


elseif ( Getbaseav health * ( 51 / 100 )) <= health && ( Getbaseav health * ( 40 / 100 )) > health
; Was passiert, wenn das Leben unter 50% ist!
Cast NFRothundRevive NFBruiserREF02
endif
endif

if QuestUpdate == 0
if GetDead == 1
SetStage NFNightfallQuest 60
PlaySound NFRothundMonolog
PlaySound NFYannTiersen
set QuestUpdate to 1
set GameHour to 12
SetWeather Clear 1
GetWindSpeed 1.0
endif
endif

end



Und noch eines- Zwar verrate ich jetzt das "Geheimnis" meiner Mod, aber was solls, schließlich wollte ich die ursprünglich noch releasen -_-.

Das geht nicht, da crasht er:

scn NFNightfallScript

Short Check01
Short Check02
Short Check03
Short Check04
Short Check05
Short Check06
Short Check07
Short Check08
Short Check09
Short Check10


Begin GameMode

If Player.getCrimeGold <= 100
If NFNightfallCount == 1
If Check01 == 0
player.removeitem NFNightfallStaffLevel02 1
player.removeitem NFNightfallStaffLevel03 1
player.removeitem NFNightfallStaffLevel04 1
player.removeitem NFNightfallStaffLevel05 1
player.removeitem NFNightfallStaffLevel06 1
player.removeitem NFNightfallStaffLevel07 1
player.removeitem NFNightfallStaffLevel08 1
player.removeitem NFNightfallStaffLevel09 1
player.removeitem NFNightfallStaffLevel10 1
player.additem NFNightfallStaffLevel01 1
MessageBox "Nightfall beginnt langsam zu vibrieren und plötzlich ertönt ein lautes Krachen."
set Check01 to 1
set Check02 to 0
set Check03 to 0
set Check04 to 0
set Check05 to 0
set Check06 to 0
set Check07 to 0
set Check08 to 0
set Check09 to 0
set Check10 to 0
endif
endif
endif


If Player.getCrimeGold >= 400
If Player.getCrimeGold <= 699
If NFNightfallCount == 1
If Check02 == 0
player.removeitem NFNightfallStaffLevel01 1
player.removeitem NFNightfallStaffLevel03 1
player.removeitem NFNightfallStaffLevel04 1
player.removeitem NFNightfallStaffLevel05 1
player.removeitem NFNightfallStaffLevel06 1
player.removeitem NFNightfallStaffLevel07 1
player.removeitem NFNightfallStaffLevel08 1
player.removeitem NFNightfallStaffLevel09 1
player.removeitem NFNightfallStaffLevel10 1
player.additem NFNightfallStaffLevel02 1
MessageBox "Nightfall beginnt langsam zu vibrieren und plötzlich ertönt ein lautes Krachen."
set Check01 to 0
set Check02 to 1
set Check03 to 0
set Check04 to 0
set Check05 to 0
set Check06 to 0
set Check07 to 0
set Check08 to 0
set Check09 to 0
set Check10 to 0
endif
endif
endif
endif

If Player.getCrimeGold >= 1000
If Player.getCrimeGold <= 1899
If NFNightfallCount == 1
If Check03 == 0
player.removeitem NFNightfallStaffLevel01 1
player.removeitem NFNightfallStaffLevel02 1
player.removeitem NFNightfallStaffLevel04 1
player.removeitem NFNightfallStaffLevel05 1
player.removeitem NFNightfallStaffLevel06 1
player.removeitem NFNightfallStaffLevel07 1
player.removeitem NFNightfallStaffLevel08 1
player.removeitem NFNightfallStaffLevel09 1
player.removeitem NFNightfallStaffLevel10 1
player.additem NFNightfallStaffLevel03 1
MessageBox "Nightfall beginnt langsam zu vibrieren und plötzlich ertönt ein lautes Krachen."
set Check01 to 0
set Check02 to 0
set Check03 to 1
set Check04 to 0
set Check05 to 0
set Check06 to 0
set Check07 to 0
set Check08 to 0
set Check09 to 0
set Check10 to 0
endif
endif
endif
endif

If Player.getCrimeGold >= 1900
If Player.getCrimeGold <= 2499
If NFNightfallCount == 1
If Check04 == 0
player.removeitem NFNightfallStaffLevel01 1
player.removeitem NFNightfallStaffLevel02 1
player.removeitem NFNightfallStaffLevel03 1
player.removeitem NFNightfallStaffLevel05 1
player.removeitem NFNightfallStaffLevel06 1
player.removeitem NFNightfallStaffLevel07 1
player.removeitem NFNightfallStaffLevel08 1
player.removeitem NFNightfallStaffLevel09 1
player.removeitem NFNightfallStaffLevel10 1
player.additem NFNightfallStaffLevel04 1
MessageBox "Nightfall beginnt langsam zu vibrieren und plötzlich ertönt ein lautes Krachen."
set Check01 to 0
set Check02 to 0
set Check03 to 0
set Check04 to 1
set Check05 to 0
set Check06 to 0
set Check07 to 0
set Check08 to 0
set Check09 to 0
set Check10 to 0
endif
endif
endif
endif

If Player.getCrimeGold >= 2500
If Player.getCrimeGold <= 2999
If NFNightfallCount == 1
If Check05 == 0
player.removeitem NFNightfallStaffLevel02 1
player.removeitem NFNightfallStaffLevel03 1
player.removeitem NFNightfallStaffLevel04 1
player.removeitem NFNightfallStaffLevel01 1
player.removeitem NFNightfallStaffLevel06 1
player.removeitem NFNightfallStaffLevel07 1
player.removeitem NFNightfallStaffLevel08 1
player.removeitem NFNightfallStaffLevel09 1
player.removeitem NFNightfallStaffLevel10 1
player.additem NFNightfallStaffLevel05 1
MessageBox "Nightfall beginnt langsam zu vibrieren und plötzlich ertönt ein lautes Krachen."
set Check01 to 0
set Check02 to 0
set Check03 to 0
set Check04 to 0
set Check05 to 1
set Check06 to 0
set Check07 to 0
set Check08 to 0
set Check09 to 0
set Check10 to 0
endif
endif
endif
endif

If Player.getCrimeGold >= 3000
If Player.getCrimeGold <= 3799
If NFNightfallCount == 1
If Check06 == 0
player.removeitem NFNightfallStaffLevel02 1
player.removeitem NFNightfallStaffLevel03 1
player.removeitem NFNightfallStaffLevel04 1
player.removeitem NFNightfallStaffLevel05 1
player.removeitem NFNightfallStaffLevel01 1
player.removeitem NFNightfallStaffLevel07 1
player.removeitem NFNightfallStaffLevel08 1
player.removeitem NFNightfallStaffLevel09 1
player.removeitem NFNightfallStaffLevel10 1
player.additem NFNightfallStaffLevel06 1
MessageBox "Nightfall beginnt langsam zu vibrieren und plötzlich ertönt ein lautes Krachen."
set Check01 to 0
set Check02 to 0
set Check03 to 0
set Check04 to 0
set Check05 to 0
set Check06 to 1
set Check07 to 0
set Check08 to 0
set Check09 to 0
set Check10 to 0
endif
endif
endif
endif

If Player.getCrimeGold >= 3800
If Player.getCrimeGold <= 4399
If NFNightfallCount == 1
If Check07 == 0
player.removeitem NFNightfallStaffLevel02 1
player.removeitem NFNightfallStaffLevel03 1
player.removeitem NFNightfallStaffLevel04 1
player.removeitem NFNightfallStaffLevel05 1
player.removeitem NFNightfallStaffLevel06 1
player.removeitem NFNightfallStaffLevel01 1
player.removeitem NFNightfallStaffLevel08 1
player.removeitem NFNightfallStaffLevel09 1
player.removeitem NFNightfallStaffLevel10 1
player.additem NFNightfallStaffLevel07 1
MessageBox "Nightfall beginnt langsam zu vibrieren und plötzlich ertönt ein lautes Krachen."
set Check01 to 0
set Check02 to 0
set Check03 to 0
set Check04 to 0
set Check05 to 0
set Check06 to 0
set Check07 to 1
set Check08 to 0
set Check09 to 0
set Check10 to 0
endif
endif
endif
endif

If Player.getCrimeGold >= 4400
If Player.getCrimeGold <= 4999
If NFNightfallCount == 1
If Check08 == 0
player.removeitem NFNightfallStaffLevel02 1
player.removeitem NFNightfallStaffLevel03 1
player.removeitem NFNightfallStaffLevel04 1
player.removeitem NFNightfallStaffLevel05 1
player.removeitem NFNightfallStaffLevel06 1
player.removeitem NFNightfallStaffLevel07 1
player.removeitem NFNightfallStaffLevel01 1
player.removeitem NFNightfallStaffLevel09 1
player.removeitem NFNightfallStaffLevel10 1
player.additem NFNightfallStaffLevel01 1
MessageBox "Nightfall beginnt langsam zu vibrieren und plötzlich ertönt ein lautes Krachen."
set Check01 to 0
set Check02 to 0
set Check03 to 0
set Check04 to 0
set Check05 to 0
set Check06 to 0
set Check07 to 0
set Check08 to 1
set Check09 to 0
set Check10 to 0
endif
endif
endif
endif

If Player.getCrimeGold >= 5000
If Player.getCrimeGold <= 5999
If NFNightfallCount == 1
If Check09 == 0
player.removeitem NFNightfallStaffLevel02 1
player.removeitem NFNightfallStaffLevel03 1
player.removeitem NFNightfallStaffLevel04 1
player.removeitem NFNightfallStaffLevel05 1
player.removeitem NFNightfallStaffLevel06 1
player.removeitem NFNightfallStaffLevel07 1
player.removeitem NFNightfallStaffLevel08 1
player.removeitem NFNightfallStaffLevel01 1
player.removeitem NFNightfallStaffLevel10 1
player.additem NFNightfallStaffLevel09 1
MessageBox "Nightfall beginnt langsam zu vibrieren und plötzlich ertönt ein lautes Krachen."
set Check01 to 0
set Check02 to 0
set Check03 to 0
set Check04 to 0
set Check05 to 0
set Check06 to 0
set Check07 to 0
set Check08 to 0
set Check09 to 1
set Check10 to 0
endif
endif
endif
endif

If Player.getCrimeGold >= 6000
If NFNightfallCount == 1
If Check10 == 0
player.removeitem NFNightfallStaffLevel02 1
player.removeitem NFNightfallStaffLevel03 1
player.removeitem NFNightfallStaffLevel04 1
player.removeitem NFNightfallStaffLevel05 1
player.removeitem NFNightfallStaffLevel06 1
player.removeitem NFNightfallStaffLevel07 1
player.removeitem NFNightfallStaffLevel08 1
player.removeitem NFNightfallStaffLevel09 1
player.removeitem NFNightfallStaffLevel01 1
player.additem NFNightfallStaffLevel10 1
MessageBox "Nightfall beginnt langsam zu vibrieren und plötzlich ertönt ein lautes Krachen.Nightfall hat seine vollkommene Form erreicht."
set Check01 to 0
set Check02 to 0
set Check03 to 0
set Check04 to 0
set Check05 to 0
set Check06 to 0
set Check07 to 0
set Check08 to 0
set Check09 to 0
set Check10 to 1
endif
endif
endif

end

Edit: Idee ist, dass der Stab immer anders wird, je höher das Kopfgeld ist. Diese eine Variable ist, wenn sie auf 1 gesetzt ist das Zeichen, dass der Spieler ein Exemplar der Waffe trägt.
 
hmm beim ersten bin ich jetzt selber überfragt was daran ned stimmt, also wenn dann iss es die mathematik^^

zu 2terem: Nightfallcount ist eien globale variable oder? ich würd es so machen:

Code:
scn

if player.getcrimegold 
    ....
[B]elseif[/B] player.getcrimegold
   ....
endif
kA obs nen unterschied macht aber das skript sieht ziemlich lang aus und evtl crasht es durch die länge, durch elseif kannst du dir viele endifs sparen^^

edit: was genau crasht denn? also ich habs mal kopiert, ne globale NFNightfallCount erstellt, die ganzen items gelöscht (da ich die ja nich habe und somit der skript immer nen fehler meldet) und es lässt sich ohne probs abspeichern, also ich würd sagen es liegt an der länge

um nochmal auf den ersten skrpt zurückzukommen^^

versuchs mal mit:
Code:
Begin OnDeath
if QuestUpdate == 0
     set NF...
     ....
endif

end

oder mit "ActorID.GetDead"
bei Cast ist es das selbe "ActorID[bzw Refernz].Cast SpellID TargetRef"
 
Zuletzt bearbeitet:
Aalso das obere Script braucht zumindest schonmal eine float für health und keine short.
Beim unteren bin ich nicht sicher , aber nach dem ersten crimegold block solltest zumindest elseifs benutzen wie dany gesagt hat , weil damit keine zu hohe performance belastung ensteht.

Wenn nämlich der erste Fall mit demm crimegold zutrifft , werden die vielen anderen crimegold blöcke garnicht mehr durchlaufen :)
 
short sollte auch in ordnung noch sein aber wayne^^ aber das hier

if ( Getbaseav Health * ( 81 / 100 )) <= health && ( Getbaseav health * ( 60 / 100 )) > health
; Was passiert, wenn das Leben unter 81% ist!
Cast NFRothundRevive NFSkeletonREF


elseif ( Getbaseav health * ( 51 / 100 )) <= health && ( Getbaseav health * ( 40 / 100 )) > health
; Was passiert, wenn das Leben unter 50% ist!
Cast NFRothundRevive NFBruiserREF02
endif
endif

kannste vergessen^^
1. is ein endif is zuviel so wies aussieht^^
2.schließen sich die && bedinungen mehr oder weniger von einander aus^^ probiers mal so:

if ( Getbaseav Health * ( 80 / 100 )) > health && ( Getbaseav health * ( 51 / 100 )) <= health
; Was passiert, wenn das Leben unter 80% und über 50% ist!
Cast NFRothundRevive NFSkeletonREF

elseif ( Getbaseav health * ( 50 / 100 )) > health && ( Getbaseav health * ( 40 / 100 )) <= health
; Was passiert, wenn das Leben unter 50% ist und über 40% ist!
Cast NFRothundRevive NFBruiserREF02
endif

kleine anmerkung noch am rande: dieser skript funktioniert natürlich nur wenn die hp irgendwann mal in diesem bereich liegen und nicht wenn die bereiche übersprungen werden

Edit: und das noch, bin nich ganz sicher obs nen fehler is aber so funktioniert der teil zumindest formel

set Ich to GetSelf ;natürlich vorher "Ich" als ref initialisieren

if QuestUpdate == 0
if Ich.GetDead == 1
SetStage NFNightfallQuest 60
PlaySound NFRothundMonolog
PlaySound NFYannTiersen
set QuestUpdate to 1
set GameHour to 12
SetWeather Clear 1
GetWindSpeed 1.0 ;<---------- bist sicher das du hier nicht setwindspeed meinst?^^
endif
endif
 
Zuletzt bearbeitet: