Lässt sich leicht auslagern:
Code:
scn 00AttributeScript
short Button
Begin OnEquip
Messagebox "asdf", "1", "2", "3", "4", "5", "6", "7", "8", "9"
end
Begin MenuMode 1002
set Button to GetButtonPressed
if Button == -1
return
elseif Button == 0
[Activator].Activate Player, 1
endif
End
Den Activator stellst du in irgendeine Dummy-Zelle, machst ihn zu einer Persistent Reference und gibst dem ein Script wie dieses:
Code:
scn [ActivatorScript]
Begin OnActivate
if player.GetBaseAV Strength <= 25
player.removeitem 01032ABC 1
player.ModPCAttribute Strength 5 ;player als Calling Reference anzugeben ist hier sinnlos. Bei ModActorValue währe es nötig, ModPC Attribute beeinflusst aber immer den Spieler
player.ModPCSkill Blade 1 ;gleiches hier
player.ModPCSkill Blunt 1
player.ModPCSkill HandToHand 1
elseif player.GetBaseAV Strength <= 50 && player.GetBaseAV Strength > 25 && player.GetItemCount 01032ABC >= 2
player.removeitem 01032ABC 2
player.ModPCAttribute Strength 5
player.ModPCSkill Blade 1
player.ModPCSkill Blunt 1
player.ModPCSkill HandToHand 1
elseif player.GetBaseAV Strength <= 75 && player.GetBaseAV Strength > 50 && player.GetItemCount 01032ABC >= 3
player.removeitem 01032ABC 3
player.ModPCAttribute Strength 5
player.ModPCSkill Blade 1
player.ModPCSkill Blunt 1
player.ModPCSkill HandToHand 1
elseif player.GetBaseAV Strength < 100 && player.GetBaseAV Strength > 75 && player.GetItemCount 01032ABC >= 4
player.removeitem 01032ABC 4
player.ModPCAttribute Strength 5
player.ModPCSkill Blade 1
player.ModPCSkill Blunt 1
player.ModPCSkill HandToHand 1
elseif player.GetBaseAV Strength < 100 && player.GetBaseAV Strength > 94 && player.GetItemCount 01032ABC >= 4
player.removeitem 01032ABC 4
player.SetAV Strength 100
player.ModPCSkill Blade 1
player.ModPCSkill Blunt 1
player.ModPCSkill HandToHand 1
elseif player.GetBaseAV Strength == 100
Message "Ihr könnt eure Fertigkeiten nicht über 100 steigern"
endif
Ab hier passiert eigentlich immer genau das gleiche, nur die einzelnen Level der Fähigkeiten werden abgefragt und die Befehle dementsprechend geändert. Danach geht es mit den weiteren Attributen weiter.
End
Ich würde btw. nicht die FormID, sondern die EditorID des Objekts verwenden. Macht zwar keinen Unterschied, liest sich aber deutlich besser.