scn zzzzzAlternativeLevelingSCRIPT
float fQuestDelayTime
short Button
short LevelUpAttribute
short LevelONCE
short CurrentPlayerLevel
short PerfectCharTrue
short VarCurrentHealth
float GSfStatsHealthLevelMult
float GSfPCBaseHealthMult
short BStr
short BInt
short BWil
short BAgi
short BSpe
short BEnd
short BPer
short BLuc
short OldAthletik
short OldAkrobatik
short OldAlchemie
short OldVeraenderung
short OldHandwerk
short OldStich
short OldSchlag
short OldBlock
short OldBeschwoerung
short OldSchuetze
short OldHandel
short OldArkan
short OldWiederherstellung
short OldFaust
short OldSchwer
short OldLeicht
short OldIllusion
short OldSicherheit
short OldSchleichen
short OldRedekunst
short OldZerstoerung
short STEP
string_var LevelMSGtext
string_var TotalMSGtext
Begin MenuMode 1
Set fQuestDelayTime to 0.01
if PerfectCharTrue ;==>Diese Variable wird im Tagebuchskript gesetzt.
Messagebox "Perfektion lässt sich nicht mehr verbessern. Eure Attribute haben das Maximum erreicht."
StopQuest zzzzzAlternativeLeveling
EnableControl 15 ;==>Die Menü- und Aktionstaste werden in einem anderen Skript gesperrt, damit der Spieler während den paar Sekunden des ersten Level-Ups,
EnableControl 5 ;==>nicht in der Lage ist das Inventar zu schließen bis das Menü erscheint.
;==> In selben Skript wird auch einmalig dafür gesorgt, dass die Tasten wieder freigegeben werden sofern ein Spielstand geladen wird.
;==> Damit wird sichergestellt, dass es nicht zu endlos gesperrten Tasten kommt.
Return
endif
if LevelUPAttribute == 0 && LevelONCE == 0
Set GSfStatsHealthLevelMult to GetGameSetting fStatsHealthLevelMult
if VarCurrentHealth == 0 && Player.GetLevel != 1
Set GSfPCBaseHealthMult to GetGameSetting fPCBaseHealthMult
Set VarCurrentHealth to (Player.GetBaseAV Health - (Player.GetBaseAV Endurance * GSfPCBaseHealthMult))
endif
Set CurrentPlayerLevel to (Player.GetLevel + 1)
Set LevelONCE to 1
Set STEP to -1
let LevelMSGtext := ""
If CurrentPlayerLevel == 2
let LevelMSGtext := "Willkommen auf Level 2!%rEs wird Euch gewahr, dass Ihr Euer gesamtes Leben wie in einem Traum verbracht habt. Plötzlich, angesichts der Prüfungen der letzen paar Tage, erwacht in Euch das Leben."
ElseIf CurrentPlayerLevel == 3
let LevelMSGtext := "Willkommen auf Level 3!%rIhr erkennt, dass Ihr dem Geheimnis des Erfolgs auf der Spur seid. Es ist bloß eine Sache der Konzentration."
ElseIf CurrentPlayerLevel == 4
let LevelMSGtext := "Willkommen auf Level 4!%rIhr habt immer den schwierigeren Weg gewählt. Aber ohne Risiken, ohne Verantwortung für Niederlagen zu übernehmen... wie hättet Ihr Einsichten erlangen können?"
ElseIf CurrentPlayerLevel == 5
let LevelMSGtext := "Willkommen auf Level 5!%rAlles, was Sie tun, läuft einfach ein bisschen leichter, instinktiver, zufrieden stellender. Es ist, als besäßen Sie plötzlich schärfere Sinne und Instinkte."
ElseIf CurrentPlayerLevel == 6
let LevelMSGtext := "Willkommen auf Level 6!%rIhr habt viel über Nehrim gelernt... und über Euch selbst. Kaum zu glauben, wie ignorant Ihr wart, aber jetzt habt Ihr noch so viel mehr zu lernen."
ElseIf CurrentPlayerLevel == 7
let LevelMSGtext := "Willkommen auf Level 7!%rIhr entscheidet, Euch weiterhin selbst anzutreiben. Vielleicht steckt in euch mehr, als Ihr glaubtet."
ElseIf CurrentPlayerLevel == 8
let LevelMSGtext := "Willkommen auf Level 8!%rDas Geheimnis scheint in harter Arbeit zu liegen, das ist wohl wahr, aber auch eine Art blinder Passion, eine Inspiration, spielt mit."
ElseIf CurrentPlayerLevel == 9
let LevelMSGtext := "Willkommen auf Level 9!%rSo also funktioniert das. Man schleppt sich vorwärts, setzt einen Fuß vor den anderen, schaut auf, und plötzlich ist man da. Genau dort, wo man die ganze Zeit hin wollte."
ElseIf CurrentPlayerLevel == 10
let LevelMSGtext := "Willkommen auf Level 10!%rHeute wachtet Ihr mit einer neuen Einstellung dem Leben gegenüber auf. Nicht länger fürchtet Ihr den Misserfolg. Versagen ist nichts weiter als eine Gelegenheit, Neues zu lernen."
ElseIf CurrentPlayerLevel == 11
let LevelMSGtext := "Willkommen auf Level 11!%rIntelligenz kann nie schaden. Und ein bisschen Glück ab und zu ist auch nett. Aber Geduld und harte Arbeit sind das Wichtigste."
ElseIf CurrentPlayerLevel == 12
let LevelMSGtext := "Willkommen auf Level 12!%rMan will kaum glauben, wie leicht es ist. Man muss bloß... ein bisschen verrückt sein. Und dann macht plötzlich alles Sinn, und alles, was man tut, gelingt."
ElseIf CurrentPlayerLevel == 13
let LevelMSGtext := "Willkommen auf Level 13!%rEs ist wirklich faszinierend. Gestern war es schwierig, und heute ist es simpel. Einfach eine Nacht gut schlafen, und die Hürden von gestern sind die Erfolge von heute."
ElseIf CurrentPlayerLevel == 14
let LevelMSGtext := "Willkommen auf Level 14!%rHeute wachen Sie auf, voller Energie und Ideen, und irgendwie wissen Sie, dass sich über Nacht alles geändert hat. Welch einen Unterschied ein einziger Tag machen kann."
ElseIf CurrentPlayerLevel == 15
let LevelMSGtext := "Willkommen auf Level 15!%rBleibt nun einfach so lange wie möglich in Topform. Keinen Stärkeren gibt es in Nehrim, aber einen jüngeren gibt es immer ... einen neuen Herausforderer."
ElseIf CurrentPlayerLevel == 16
let LevelMSGtext := "Willkommen auf Level 16!%rIhr habt euch zu stark angetrieben und zuviel nachgedacht. Entspannt Euch. Vertraut Euren Instinkten. Seid einfach Ihr selbst. Kümmert Euch um die kleinen Dinge, und die großen erledigen sich von selbst."
ElseIf CurrentPlayerLevel == 17
let LevelMSGtext := "Willkommen auf Level 17!%rDas Leben ist noch nicht vorbei. Ihr könnt immer noch weiser, cleverer, erfahrener oder fieser werden... aber Euer Körper und Eure Seele werden nicht mehr jünger."
ElseIf CurrentPlayerLevel == 18
let LevelMSGtext := "Willkommen auf Level 18!%rBei Eurer Lebensführung und der Behandlung, die sich Euer Körper gefallen lassen musste... gibt es Grenzen, und vielleicht habt Ihr sie erreicht. So fühlt es sich also an, wenn man altert?"
ElseIf CurrentPlayerLevel == 19
let LevelMSGtext := "Willkommen auf Level 19!%rIhr seid richtig gut. Vielleicht der/die Beste. Und genau deshalb ist es so schwierig, noch besser zu werden. Aber Ihr versucht es trotzdem weiter, weil das einfach Eurem Wesen entspricht."
ElseIf CurrentPlayerLevel == 20
let LevelMSGtext := "Willkommen auf Level 20!%rMit übermenschlicher Anstrengung kann man eine Weile lang das Abrutschen verhindern. Aber eines Tages macht man einen falschen Schritt, verpasst ein winziges Detail... und dann ist man für immer weg vom Fenster."
Else
let LevelMSGtext := "Willkommen auf Level "+$CurrentPlayerLevel+"!%rWenn man den Erfolg seiner Anstrengungen und Mühen genießt, sieht es für andere immer so aus, als habe man nur Glück gehabt. Aber Ihr wisst ja, dass Ihr Euch jedes Stückchen Eures Erfolgs selbst verdient habt."
EndIf
if OldAthletik != 0
Set OldAthletik to (Player.GetBaseAV Athletics - OldAthletik)
If OldAthletik >= 10
Set OldAthletik to 5
elseif OldAthletik >= 8
Set OldAthletik to 4
elseif OldAthletik >= 5
Set OldAthletik to 3
elseif OldAthletik >= 2
Set OldAthletik to 2
elseif OldAthletik > 0
Set OldAthletik to 1
else
Set OldAthletik to 0
endif
Set OldAkrobatik to (Player.GetBaseAV Acrobatics - OldAkrobatik)
If OldAkrobatik >= 10
Set OldAkrobatik to 5
elseif OldAkrobatik >= 8
Set OldAkrobatik to 4
elseif OldAkrobatik >= 5
Set OldAkrobatik to 3
elseif OldAkrobatik >= 2
Set OldAkrobatik to 2
elseif OldAkrobatik > 0
Set OldAkrobatik to 1
else
Set OldAkrobatik to 0
endif
Set OldAlchemie to (Player.GetBaseAV Alchemy - OldAlchemie)
If OldAlchemie >= 10
Set OldAlchemie to 5
elseif OldAlchemie >= 8
Set OldAlchemie to 4
elseif OldAlchemie >= 5
Set OldAlchemie to 3
elseif OldAlchemie >= 2
Set OldAlchemie to 2
elseif OldAlchemie > 0
Set OldAlchemie to 1
else
Set OldAlchemie to 0
endif
Set OldVeraenderung to (Player.GetBaseAV Alteration - OldVeraenderung)
If OldVeraenderung >= 10
Set OldVeraenderung to 5
elseif OldVeraenderung >= 8
Set OldVeraenderung to 4
elseif OldVeraenderung >= 5
Set OldVeraenderung to 3
elseif OldVeraenderung >= 2
Set OldVeraenderung to 2
elseif OldVeraenderung > 0
Set OldVeraenderung to 1
else
Set OldVeraenderung to 0
endif
Set OldHandwerk to (Player.GetBaseAV Armorer - OldHandwerk)
If OldHandwerk >= 10
Set OldHandwerk to 5
elseif OldHandwerk >= 8
Set OldHandwerk to 4
elseif OldHandwerk >= 5
Set OldHandwerk to 3
elseif OldHandwerk >= 2
Set OldHandwerk to 2
elseif OldHandwerk > 0
Set OldHandwerk to 1
else
Set OldHandwerk to 0
endif
Set OldStich to (Player.GetBaseAV Blade - OldStich)
If OldStich >= 10
Set OldStich to 5
elseif OldStich >= 8
Set OldStich to 4
elseif OldStich >= 5
Set OldStich to 3
elseif OldStich >= 2
Set OldStich to 2
elseif OldStich > 0
Set OldStich to 1
else
Set OldStich to 0
endif
Set OldSchlag to (Player.GetBaseAV Blunt - OldSchlag)
If OldSchlag >= 10
Set OldSchlag to 5
elseif OldSchlag >= 8
Set OldSchlag to 4
elseif OldSchlag >= 5
Set OldSchlag to 3
elseif OldSchlag >= 2
Set OldSchlag to 2
elseif OldSchlag > 0
Set OldSchlag to 1
else
Set OldSchlag to 0
endif
Set OldBlock to (Player.GetBaseAV Block - OldBlock)
If OldBlock >= 10
Set OldBlock to 5
elseif OldBlock >= 8
Set OldBlock to 4
elseif OldBlock >= 5
Set OldBlock to 3
elseif OldBlock >= 2
Set OldBlock to 2
elseif OldBlock > 0
Set OldBlock to 1
else
Set OldBlock to 0
endif
Set OldBeschwoerung to (Player.GetBaseAV Conjuration - OldBeschwoerung)
If OldBeschwoerung >= 10
Set OldBeschwoerung to 5
elseif OldBeschwoerung >= 8
Set OldBeschwoerung to 4
elseif OldBeschwoerung >= 5
Set OldBeschwoerung to 3
elseif OldBeschwoerung >= 2
Set OldBeschwoerung to 2
elseif OldBeschwoerung > 0
Set OldBeschwoerung to 1
else
Set OldBeschwoerung to 0
endif
Set OldSchuetze to (Player.GetBaseAV Marksman - OldSchuetze)
If OldSchuetze >= 10
Set OldSchuetze to 5
elseif OldSchuetze >= 8
Set OldSchuetze to 4
elseif OldSchuetze >= 5
Set OldSchuetze to 3
elseif OldSchuetze >= 2
Set OldSchuetze to 2
elseif OldSchuetze > 0
Set OldSchuetze to 1
else
Set OldSchuetze to 0
endif
Set OldHandel to (Player.GetBaseAV Mercantile - OldHandel)
If OldHandel >= 10
Set OldHandel to 5
elseif OldHandel >= 8
Set OldHandel to 4
elseif OldHandel >= 5
Set OldHandel to 3
elseif OldHandel >= 2
Set OldHandel to 2
elseif OldHandel > 0
Set OldHandel to 1
else
Set OldHandel to 0
endif
Set OldArkan to (Player.GetBaseAV Mysticism - OldArkan)
If OldArkan >= 10
Set OldArkan to 5
elseif OldArkan >= 8
Set OldArkan to 4
elseif OldArkan >= 5
Set OldArkan to 3
elseif OldArkan >= 2
Set OldArkan to 2
elseif OldArkan > 0
Set OldArkan to 1
else
Set OldArkan to 0
endif
Set OldWiederherstellung to (Player.GetBaseAV Restoration - OldWiederherstellung)
If OldWiederherstellung >= 10
Set OldWiederherstellung to 5
elseif OldWiederherstellung >= 8
Set OldWiederherstellung to 4
elseif OldWiederherstellung >= 5
Set OldWiederherstellung to 3
elseif OldWiederherstellung >= 2
Set OldWiederherstellung to 2
elseif OldWiederherstellung > 0
Set OldWiederherstellung to 1
else
Set OldWiederherstellung to 0
endif
Set OldFaust to (Player.GetBaseAV HandToHand - OldFaust)
If OldFaust >= 10
Set OldFaust to 5
elseif OldFaust >= 8
Set OldFaust to 4
elseif OldFaust >= 5
Set OldFaust to 3
elseif OldFaust >= 2
Set OldFaust to 2
elseif OldFaust > 0
Set OldFaust to 1
else
Set OldFaust to 0
endif
Set OldSchwer to (Player.GetBaseAV HeavyArmor - OldSchwer)
If OldSchwer >= 10
Set OldSchwer to 5
elseif OldSchwer >= 8
Set OldSchwer to 4
elseif OldSchwer >= 5
Set OldSchwer to 3
elseif OldSchwer >= 2
Set OldSchwer to 2
elseif OldSchwer > 0
Set OldSchwer to 1
else
Set OldSchwer to 0
endif
Set OldLeicht to (Player.GetBaseAV LightArmor - OldLeicht)
If OldLeicht >= 10
Set OldLeicht to 5
elseif OldLeicht >= 8
Set OldLeicht to 4
elseif OldLeicht >= 5
Set OldLeicht to 3
elseif OldLeicht >= 2
Set OldLeicht to 2
elseif OldLeicht > 0
Set OldLeicht to 1
else
Set OldLeicht to 0
endif
Set OldIllusion to (Player.GetBaseAV Illusion - OldIllusion)
If OldIllusion >= 10
Set OldIllusion to 5
elseif OldIllusion >= 8
Set OldIllusion to 4
elseif OldIllusion >= 5
Set OldIllusion to 3
elseif OldIllusion >= 2
Set OldIllusion to 2
elseif OldIllusion > 0
Set OldIllusion to 1
else
Set OldIllusion to 0
endif
Set OldSicherheit to (Player.GetBaseAV Security - OldSicherheit)
If OldSicherheit >= 10
Set OldSicherheit to 5
elseif OldSicherheit >= 8
Set OldSicherheit to 4
elseif OldSicherheit >= 5
Set OldSicherheit to 3
elseif OldSicherheit >= 2
Set OldSicherheit to 2
elseif OldSicherheit > 0
Set OldSicherheit to 1
else
Set OldSicherheit to 0
endif
Set OldSchleichen to (Player.GetBaseAV Sneak - OldSchleichen)
If OldSchleichen >= 10
Set OldSchleichen to 5
elseif OldSchleichen >= 8
Set OldSchleichen to 4
elseif OldSchleichen >= 5
Set OldSchleichen to 3
elseif OldSchleichen >= 2
Set OldSchleichen to 2
elseif OldSchleichen > 0
Set OldSchleichen to 1
else
Set OldSchleichen to 0
endif
Set OldRedekunst to (Player.GetBaseAV Speechcraft - OldRedekunst)
If OldRedekunst >= 10
Set OldRedekunst to 5
elseif OldRedekunst >= 8
Set OldRedekunst to 4
elseif OldRedekunst >= 5
Set OldRedekunst to 3
elseif OldRedekunst >= 2
Set OldRedekunst to 2
elseif OldRedekunst > 0
Set OldRedekunst to 1
else
Set OldRedekunst to 0
endif
Set OldZerstoerung to (Player.GetBaseAV Destruction - OldZerstoerung)
If OldZerstoerung >= 10
Set OldZerstoerung to 5
elseif OldZerstoerung >= 8
Set OldZerstoerung to 4
elseif OldZerstoerung >= 5
Set OldZerstoerung to 3
elseif OldZerstoerung >= 2
Set OldZerstoerung to 2
elseif OldZerstoerung > 0
Set OldZerstoerung to 1
else
Set OldZerstoerung to 0
endif
Set LevelUpAttribute to OldAthletik + OldAkrobatik + OldAlchemie + OldVeraenderung + OldHandwerk + OldStich + OldSchlag + OldBlock + OldBeschwoerung + OldSchuetze + OldHandel + OldArkan + OldWiederherstellung + OldFaust + OldSchwer + OldLeicht + OldIllusion + OldSicherheit + OldSchleichen + OldRedekunst + OldZerstoerung
If LevelUpAttribute > 10
Set LevelUpAttribute to 10
Elseif LevelUpAttribute < 3
Set LevelUpAttribute to 3
Endif
else
Set LevelUpAttribute to 3
endif
if LevelUpAttribute == 3
if Player.GetBaseAV Athletics >= 100 && Player.GetBaseAV Acrobatics >= 100 && Player.GetBaseAV Armorer >= 100 && Player.GetBaseAV Alteration >= 100 && Player.GetBaseAV Alchemy >= 100 && Player.GetBaseAV Blade >= 100 && Player.GetBaseAV Block >= 100 && Player.GetBaseAV Blunt >= 100 && Player.GetBaseAV Conjuration >= 100 && Player.GetBaseAV Marksman >= 100 && Player.GetBaseAV Mercantile >= 100 && Player.GetBaseAV Mysticism >= 100 && Player.GetBaseAV Restoration >= 100 && Player.GetBaseAV HandToHand >= 100
if Player.GetBaseAV HeavyArmor >= 100 && Player.GetBaseAV LightArmor >= 100 && Player.GetBaseAV Illusion >= 100 && Player.GetBaseAV Security >= 100 && Player.GetBaseAV Sneak >= 100 && Player.GetBaseAV Speechcraft >= 100 && Player.GetBaseAV Destruction >= 100
Set LevelUPAttribute to 5
endif
endif
endif
Set OldAthletik to Player.GetBaseAV Athletics
Set OldAkrobatik to Player.GetBaseAV Acrobatics
Set OldAlchemie to Player.GetBaseAV Alchemy
Set OldVeraenderung to Player.GetBaseAV Alteration
Set OldHandwerk to Player.GetBaseAV Armorer
Set OldStich to Player.GetBaseAV Blade
Set OldSchlag to Player.GetBaseAV Blunt
Set OldBlock to Player.GetBaseAV Block
Set OldBeschwoerung to Player.GetBaseAV Conjuration
Set OldSchuetze to Player.GetBaseAV Marksman
Set OldHandel to Player.GetBaseAV Mercantile
Set OldArkan to Player.GetBaseAV Mysticism
Set OldWiederherstellung to Player.GetBaseAV Restoration
Set OldFaust to Player.GetBaseAV HandToHand
Set OldSchwer to Player.GetBaseAV HeavyArmor
Set OldLeicht to Player.GetBaseAV LightArmor
Set OldIllusion to Player.GetBaseAV Illusion
Set OldSicherheit to Player.GetBaseAV Security
Set OldSchleichen to Player.GetBaseAV Sneak
Set OldRedekunst to Player.GetBaseAV Speechcraft
Set OldZerstoerung to Player.GetBaseAV Destruction
elseif LevelUPAttribute == 0 && LevelONCE == 1
Player.SetLevel CurrentPlayerLevel
Set VarCurrentHealth to VarCurrentHealth + (BEnd * GSfStatsHealthLevelMult)
Set VarCurrentHealth to floor VarCurrentHealth
Player.SetAV Health VarCurrentHealth
Set LevelONCE to 0
Set STEP to 0
StopQuest zzzzzAlternativeLeveling
EnableControl 15
EnableControl 5
Return
endif
if STEP == -1
Set BStr to Player.GetBaseAV Strength
Set BInt to Player.GetBaseAV Intelligence
Set BWil to Player.GetBaseAV Willpower
Set BAgi to Player.GetBaseAV Agility
Set BSpe to Player.GetBaseAV Speed
Set BPer to Player.GetBaseAV Personality
Set BEnd to Player.GetBaseAV Endurance
Set BLuc to Player.GetBaseAV Luck
let TotalMSGtext := LevelMSGtext + (sv_construct "%rVerteilen Sie Ihre Attributspunkte.%rVerfügbare Attributspunkte: ")+$LevelUpAttribute+"|Stärke: "+$BStr+"|Intelligenz: "+$BInt+"|Willenskraft: "+$BWil+"|Geschicklichkeit: "+$BAgi+"|Schnelligkeit: "+$BSpe+"|Konstitution: "+$BEnd+"|Charisma: "+$BPer+"|Glück: "+$BLuc
If BStr >= 100 && BInt >= 100 && BWil >= 100 && BAgi >= 100 && BSpe >= 100 && BPer >= 100 && BEnd >= 100 && BLuc >= 100
Set LevelUPAttribute to 0
Messagebox "Glückwunsch! All Ihre Attribute haben das Maximum erreicht. Ihr werdet nun kein weiteres Level mehr aufsteigen können."
Else
Set STEP to 1
MessageboxEx $TotalMSGtext
set TotalMSGtext to sv_destruct
EndIf
elseif STEP == 1
Set Button to GetButtonPressed
If Button == 0
If (BStr + 1) < 101
Set LevelUpAttribute to LevelUpAttribute - 1
Set BStr to BStr + 1
Player.SetAV Strength BStr
EndIf
Set STEP to -1
Elseif Button == 1
If (BInt + 1) < 101
Set LevelUpAttribute to LevelUpAttribute - 1
Set BInt to BInt + 1
Player.SetAV Intelligence BInt
Endif
Set STEP to -1
Elseif Button == 2
If (BWil + 1) < 101
Set LevelUpAttribute to LevelUpAttribute - 1
Set BWil to BWil + 1
Player.SetAV Willpower BWil
Endif
Set STEP to -1
Elseif Button == 3
If (BAgi + 1) < 101
Set LevelUpAttribute to LevelUpAttribute - 1
Set BAgi to BAgi + 1
Player.SetAV Agility BAgi
Endif
Set STEP to -1
Elseif Button == 4
If (BSpe + 1) < 101
Set LevelUpAttribute to LevelUpAttribute - 1
Set BSpe to BSpe + 1
Player.SetAV Speed BSpe
Endif
Set STEP to -1
Elseif Button == 5
If (BEnd + 1) < 101
Set LevelUpAttribute to LevelUpAttribute - 1
Set BEnd to BEnd + 1
Player.SetAV Endurance BEnd
Endif
Set STEP to -1
Elseif Button == 6
If (BPer + 1) < 101
Set LevelUpAttribute to LevelUpAttribute - 1
Set BPer to BPer + 1
Player.SetAV Personality BPer
Endif
Set STEP to -1
Elseif Button == 7
If (BLuc + 1) < 101
Set LevelUpAttribute to LevelUpAttribute - 1
Set BLuc to BLuc + 1
Player.SetAV Luck BLuc
Endif
Set STEP to -1
Endif
endif
End