78 lines
1.6 KiB
Plaintext
78 lines
1.6 KiB
Plaintext
scriptName _00E_TraderLevelUp extends ObjectReference
|
|
|
|
|
|
Event OnReset()
|
|
if DebugMode.GetValue() == 1
|
|
debug.MessageBox("Object reseted")
|
|
EndIf
|
|
hIndex = CurrentIndex
|
|
While hIndex
|
|
if PlayerLevel.GetValue() >= LevelTreshold[CurrentIndex]
|
|
RemoveItems()
|
|
EndIf
|
|
endwhile
|
|
EndEvent
|
|
|
|
Event OnLoad()
|
|
Int ThresholdCount = LevelTreshold.Length
|
|
Int ItemListCount = ItemList.Length
|
|
|
|
if CurrentIndex >= ThresholdCount
|
|
if DebugMode.GetValue() == 1
|
|
Debug.MessageBox("Max Wert erreicht")
|
|
EndIf
|
|
Return
|
|
EndIf
|
|
|
|
if ThresholdCount != ItemListCount
|
|
Debug.messageBox("Error report: Trader interface. Threshold count and ItemList count are NOT the same! It will result in unexpected behavior.")
|
|
EndIf
|
|
|
|
jIndex = ThresholdCount
|
|
While jIndex
|
|
if PlayerLevel.GetValue() >= LevelTreshold[CurrentIndex]
|
|
AddItems()
|
|
EndIf
|
|
if CurrentIndex >= ThresholdCount
|
|
jIndex = 0
|
|
EndIf
|
|
endwhile
|
|
EndEvent
|
|
|
|
|
|
Function AddItems()
|
|
iIndex = ItemList[CurrentIndex].GetSize()
|
|
While iIndex
|
|
iIndex -= 1
|
|
Self.AddItem(ItemList[CurrentIndex].GetAt(iIndex))
|
|
endwhile
|
|
|
|
CurrentIndex += 1
|
|
if DebugMode.GetValue() == 1
|
|
Debug.messageBox("Index at" + CurrentIndex)
|
|
EndIf
|
|
EndFunction
|
|
|
|
Function RemoveItems()
|
|
iIndex = ItemList[CurrentIndex].GetSize()
|
|
While iIndex
|
|
iIndex -= 1
|
|
Self.RemoveItem(ItemList[CurrentIndex].GetAt(iIndex))
|
|
endwhile
|
|
|
|
CurrentIndex -= 1
|
|
if DebugMode.GetValue() == 1
|
|
Debug.messageBox("Index at" + CurrentIndex)
|
|
endif
|
|
EndFunction
|
|
|
|
|
|
GlobalVariable Property PlayerLevel Auto
|
|
GlobalVariable Property DebugMode AUto
|
|
Formlist[] Property ItemList Auto
|
|
Int[] Property LevelTreshold Auto
|
|
Int CurrentIndex = 0
|
|
Int iIndex
|
|
int jIndex
|
|
int hIndex
|