Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ScriptName _PX_PerkUI Extends SKI_ConfigBase
- ;---------------------------------------------------------------------------------[Author Information]
- ;PROXiCide aka Taewon
- ;Steam: http://steamcommunity.com/id/PROXiCiDE
- ;Nexus: http://skyrim.nexusmods.com/users/3018315
- ;Bethesda: http://forums.bethsoft.com/user/425376-taewon/
- ;CreationKit: http://www.creationkit.com/User:PROXiCiDE
- ;---------------------------------------------------------------------------------
- Actor Property PlayerRef Auto
- String[] _sSkillName
- Event OnConfigInit()
- _sSkillName = New String[18]
- ;Combat
- _sSkillName[0] = "Marksman"
- _sSkillName[1] = "Block"
- _sSkillName[2] = "HeavyArmor"
- _sSkillName[3] = "OneHanded"
- _sSkillName[4] = "Smithing"
- _sSkillName[5] = "TwoHanded"
- ;Magic
- _sSkillName[6] = "Alteration"
- _sSkillName[7] = "Conjuration"
- _sSkillName[8] = "Destruction"
- _sSkillName[9] = "Enchanting"
- _sSkillName[10] = "Illusion"
- _sSkillName[11] = "Restoration"
- ;Stealth
- _sSkillName[12] = "Alchemy"
- _sSkillName[13] = "LightArmor"
- _sSkillName[14] = "Lockpicking"
- _sSkillName[15] = "Pickpocket"
- _sSkillName[16] = "Sneak"
- _sSkillName[17] = "Speechcraft"
- EndEvent
- String Function PerkUI_GetSkillNameFromIndex(Int aiIndexed)
- aiIndexed = ClampInt(aiIndexed, 0, _sSkillName.Length - 1)
- Return _sSkillName[aiIndexed]
- EndFunction
- Int Function PerkUI_SetSkillNameToIndex(String asActorValue = "")
- If asActorValue == ""
- Return -1
- EndIf
- Return _sSkillName.Find(asActorValue)
- EndFunction
- ;---------------------------------------------------------------------------------[Locale Format]
- ; Menu.Skill.Option.[.Name | .Desc]
- ; | | | -\ The name or description of the Perk
- ; | | -\ Perk Name
- ; | -\ Skill Tree
- ; -\ Name of the Menu we selected in SkyUI
- ;
- ; Perk.Bound.BoundFocus.Name Bound Focus
- ; Perk.Bound.BoundFocus.Desc Increases your chance to gain magicka on attack
- ;---------------------------------------------------------------------------------[PerkUI_ApplyByFormList]
- ; Applys a FormList that contain Perk(s).
- ; This function acts exactly like Add*Option
- ;
- ; akList -
- ; A FormList must contain only perks, and the very first rank. As a example List
- ; OverDraw00,EagleEye,CriticalShot30,SteadyHand40,.....
- ;
- ; aiPerkCTX -
- ; [0...4] Contains configuration settings
- ; 0 - Ordered Boolean
- ; 1 - Perk Reset Boolean
- ; 2 - Perk Mult
- ; 3 - Perk Rank Mult
- ; 4 - Perk Reset Button ID
- ;
- ; [5] >= Contains all the Button ID's
- ;
- ; abAddPerks - Add or Remove Perks
- ; abOrdered - Ordered
- ; abPerkReset - Add a Perk Count / Perk Reset feature
- ;---------------------------------------------------------------------------------[Perk Context Information]
- Int PerkCTX_Ordered = 0
- Int PerkCTX_PerkReset = 1
- Int PerkCTX_PerkMult = 2
- Int PerkCTX_PerkRankMult = 3
- Int PerkCTX_PerkSkillRequiredOverride = 4
- Int PerkCTX_PerkSkillAttribute = 5
- Int PerkCTX_PerkResetBID = 6
- Int PerkCTX_List = 7
- Function PerkUI_Init(Int[] aiPerkCTX, Bool abOrdered = True, Bool abPerkReset = True, String asActorValue = "", Int aiPerkMult = 20, Int aiPerkRankMult = 20, Bool abSkillReqOverride = False)
- aiPerkCTX[PerkCTX_Ordered] = (abOrdered As Int)
- aiPerkCTX[PerkCTX_PerkReset] = (abPerkReset As Int)
- aiPerkCTX[PerkCTX_PerkMult] = aiPerkMult
- aiPerkCTX[PerkCTX_PerkRankMult] = aiPerkRankMult
- aiPerkCTX[PerkCTX_PerkSkillAttribute] = PerkUI_SetSkillNameToIndex(asActorValue)
- aiPerkCTX[PerkCTX_PerkSkillRequiredOverride] = (abSkillReqOverride As Int)
- aiPerkCTX[PerkCTX_PerkResetBID] = 0;
- EndFunction
- ;---------------------------------------------------------------------------------[TODO]
- ; Fix Perk display when updating each element when have no perk points
- ;
- ;
- ;
- Function PerkUI_ApplyByFormList(FormList akList, Int[] aiPerkCTX, Bool abAddPerks = True)
- If akList == None
- Return
- EndIf
- Bool abOrdered = (aiPerkCTX[PerkCTX_Ordered] As Bool)
- Bool abPerkReset = (aiPerkCTX[PerkCTX_PerkReset] As Bool)
- Int iActorValue = aiPerkCTX[PerkCTX_PerkSkillAttribute]
- If abPerkReset
- aiPerkCTX[PerkCTX_PerkResetBID] = AddTextOption("$Perk.Reset",Game.GetPerkPoints())
- AddEmptyOption()
- EndIf
- Int i = 0
- While (i < akList.GetSize())
- If i >= aiPerkCTX.Length
- Return
- EndIf
- Form fmItem = akList.GetAt(i)
- If fmItem As Perk
- Perk pPerk = fmItem As Perk
- Bool bChecked = False
- Int iFlag = OPTION_FLAG_NONE
- If abAddPerks
- If PlayerRef.HasPerk(pPerk)
- bChecked = True
- ElseIf i>0 && abOrdered
- Perk pPrevPerk = akList.GetAt(i - 1) As Perk
- If pPrevPerk && !PlayerRef.HasPerk(pPrevPerk)
- iFlag = OPTION_FLAG_DISABLED
- EndIf
- EndIf
- Else
- If PlayerRef.HasPerk(pPerk)
- Game.ModPerkPoints(PerkRemoveRanked(pPerk))
- EndIf
- EndIf
- Int[] iNumRanks = PerkGetRankInfo(pPerk)
- String sPerkName = pPerk.GetName()
- If IsPerkLocale(pPerk)
- sPerkName = sPerkName + ".Name"
- EndIf
- If iNumRanks[0] > 1
- If iNumRanks[1] >= 2
- Perk pNext = PerkSelectRank(pPerk,iNumRanks[1] + 1)
- If pNext != None && !PlayerRef.HasPerk(pNext)
- iFlag = OPTION_FLAG_NONE
- EndIf
- EndIf
- If iActorValue != -1
- If PlayerRef.GetBaseActorValue(PerkUI_GetSkillNameFromIndex(iActorValue)) < CalcSkillRequirements(akList,i)
- iFlag = OPTION_FLAG_DISABLED
- EndIf
- EndIf
- aiPerkCTX[i + PerkCTX_List] = AddTextOption(sPerkName, " ( " + iNumRanks[1] + " / " + iNumRanks[0] + " )" ,iFlag)
- Else
- If iActorValue != -1
- If PlayerRef.GetBaseActorValue(PerkUI_GetSkillNameFromIndex(iActorValue)) < CalcSkillRequirements(akList,i)
- iFlag = OPTION_FLAG_DISABLED
- EndIf
- EndIf
- aiPerkCTX[i + PerkCTX_List] = AddToggleOption(sPerkName, bChecked,iFlag)
- EndIf
- EndIf
- i += 1
- EndWhile
- ;---------------------------------------------------------------------------------[TODO]
- ; !abAddPerks
- ; Use SetValue instead of AddOption
- ; No Update until last element
- ; Remove ForcePageReset
- If !abAddPerks
- ForcePageReset()
- EndIf
- If abPerkReset
- SetTextOptionValue(aiPerkCTX[PerkCTX_PerkResetBID], Game.GetPerkPoints())
- EndIf
- Debug.TraceUser("BoundSpellScale","\n")
- EndFunction
- ;---------------------------------------------------------------------------------[PerkUI_SelectByFormList]
- ; This Function acts as Select*OptionValue
- ;---------------------------------------------------------------------------------[TODO]
- ; FIX PERK RANK ENABLED for NEXT, and Selecting for Requirements, and Current Rank
- ;
- ;
- ;
- Function PerkUI_SelectByFormList(FormList akList, Int[] aiPerkCTX, Int aiOption, String asActorValue = "")
- If akList == None || aiPerkCTX.Length < (PerkCTX_PerkResetBID + 1)
- Return
- EndIf
- Bool abOrdered = (aiPerkCTX[PerkCTX_Ordered] As Bool)
- Bool abPerkReset = (aiPerkCTX[PerkCTX_PerkReset] As Bool)
- Int iActorValue = aiPerkCTX[PerkCTX_PerkSkillAttribute]
- Int iTemp = aiPerkCTX.Find(aiOption)
- If iTemp != -1
- If abPerkReset && iTemp == PerkCTX_PerkResetBID
- Bool bIsOk = ShowMessage("$Perk.ConfirmReset",True,"$Yes","$No")
- If bIsOk
- PerkUI_ApplyByFormList(akList,aiPerkCTX,False)
- EndIf
- ElseIf iTemp >= PerkCTX_List
- Bool abEnableNext = False
- Perk pPerk = akList.GetAt(iTemp - PerkCTX_List) As Perk
- If pPerk != None
- Int iPerkPoints = Game.GetPerkPoints()
- If iPerkPoints > 0
- Bool bChecked = False
- Int[] iNumRanks = PerkGetRankInfo(pPerk)
- Int iLearned = iNumRanks[1]
- If iNumRanks[0] > 1 && iNumRanks[0] != iNumRanks[1] && PlayerRef.HasPerk(pPerk)
- Perk pNext = PerkSelectRank(pPerk, iLearned + 1)
- If !PlayerRef.HasPerk(pNext)
- PlayerRef.AddPerk(pNext)
- Game.ModPerkPoints(-1)
- iLearned += 1
- If abOrdered
- abEnableNext = True
- EndIf
- EndIf
- Else
- If !PlayerRef.HasPerk(pPerk)
- iLearned += 1
- PlayerRef.AddPerk(pPerk)
- bChecked = True
- Game.ModPerkPoints(-1)
- If abOrdered
- abEnableNext = True
- EndIf
- Else
- bChecked = True
- EndIf
- EndIf
- ;Check for Ranked Perks
- If iNumRanks[0] > 1
- If iLearned > iNumRanks[0]
- iLearned = iNumRanks[0]
- EndIf
- SetTextOptionValue(aiOption, " ( " + iLearned + " / " + iNumRanks[0] + " )")
- Else
- SetToggleOptionValue(aiOption,bChecked)
- EndIf
- iPerkPoints = Game.GetPerkPoints()
- If abOrdered
- If iPerkPoints > 0
- If abEnableNext
- Int iFlag = OPTION_FLAG_NONE
- Int idxNext = iTemp+1
- If (idxNext < aiPerkCTX.Length)
- If iActorValue != -1
- iFlag = OPTION_FLAG_DISABLED
- If PlayerRef.GetBaseActorValue(PerkUI_GetSkillNameFromIndex(iActorValue)) >= CalcSkillRequirements(akList, idxNext)
- iFlag = OPTION_FLAG_NONE
- EndIf
- EndIf
- SetOptionFlags(aiPerkCTX[idxNext],iFlag)
- EndIf
- EndIf
- Else
- ;---------------------------------------------------------------------------------[TODO]
- ; Disable the rest of the Perks iTemp+All
- ; Check for Skill Requirements for iTemp+All
- ; Check for Skill Requirements for pNext
- ; Need a way to save the Highest Achieved Perk in this Skill, otherwise it will do iTemp>=
- ; when disabling
- Int i = iTemp + iPerkPoints
- If i >= aiPerkCTX.Length
- i = aiPerkCTX.Length - 1
- EndIf
- While (i < aiPerkCTX.Length)
- SetOptionFlags(aiPerkCTX[i],OPTION_FLAG_DISABLED)
- i += 1
- EndWhile
- EndIf
- EndIf
- EndIf
- EndIf
- If abPerkReset
- SetTextOptionValue(aiPerkCTX[PerkCTX_PerkResetBID], Game.GetPerkPoints())
- EndIf
- EndIf
- EndIf
- EndFunction
- ;---------------------------------------------------------------------------------[PerkUI_SetInfoByFormList]
- ; This function acts as SetInfoText
- Function PerkUI_SetInfoByFormList(FormList akList, Int[] aiPerkCTX, Int aiOption)
- If akList == None
- Return
- EndIf
- Bool abPerkReset = (aiPerkCTX[PerkCTX_PerkReset] As Bool)
- Int iTemp = aiPerkCTX.Find(aiOption)
- If iTemp == PerkCTX_PerkResetBID && abPerkReset
- SetInfoText("$Perk.Reset.Desc")
- EndIf
- If iTemp != -1 && iTemp >= PerkCTX_List
- Perk pPerk = akList.GetAt(iTemp - PerkCTX_List) As Perk
- If pPerk != None
- CalcSkillRequirements(akList, iTemp - PerkCTX_List)
- String sPerkName = pPerk.GetName()
- If IsPerkLocale(pPerk)
- sPerkName = sPerkName + ".Desc"
- EndIf
- SetInfoText(sPerkName)
- EndIf
- EndIf
- EndFunction
- Function PerkUI_ApplyByFormListEx(FormList akList, Int[] aiPerkCTX, Bool abAddPerks = True, Bool abOrdered = True, String[] asSections)
- If akList == None
- Return
- EndIf
- Int i = 0
- Int iHeaderCount = 0
- While (i < akList.GetSize())
- Form fmItem = akList.GetAt(i)
- If fmItem As Perk
- Perk pPerk = fmItem As Perk
- Bool bChecked = False
- Int iFlag = OPTION_FLAG_NONE
- If abAddPerks
- If PlayerRef.HasPerk(pPerk)
- bChecked = True
- ; iFlag = OPTION_FLAG_DISABLED
- ElseIf i>0 && abOrdered
- Perk pPrevPerk = akList.GetAt(i - 1) As Perk
- If pPrevPerk && !PlayerRef.HasPerk(pPrevPerk)
- iFlag = OPTION_FLAG_DISABLED
- EndIf
- EndIf
- Else
- If PlayerRef.HasPerk(pPerk)
- Game.ModPerkPoints(PerkRemoveRanked(pPerk))
- EndIf
- EndIf
- Int[] iNumRanks = PerkGetRankInfo(pPerk)
- String sPerkName = pPerk.GetName()
- If IsPerkLocale(pPerk)
- sPerkName = sPerkName + ".Name"
- EndIf
- If (asSections[i] != "" || asSections[i] != " ") && StringUtil.GetLength(asSections[i]) > 1 && abAddPerks
- If abOrdered
- If iHeaderCount > 0
- AddEmptyOption()
- EndIf
- EndIf
- AddHeaderOption(asSections[i])
- iHeaderCount += 1
- EndIf
- ;TODO
- ;Figure out how to handle Perk Ranks
- If iNumRanks[0] > 1
- If iNumRanks[1] >= 2
- Perk pNext = PerkSelectRank(pPerk,iNumRanks[1] + 1)
- If pNext != None && !PlayerRef.HasPerk(pNext)
- iFlag = OPTION_FLAG_NONE
- EndIf
- EndIf
- aiPerkCTX[i] = AddTextOption(sPerkName, " ( " + iNumRanks[1] + " / " + iNumRanks[0] + " )" ,iFlag)
- Else
- aiPerkCTX[i] = AddToggleOption(sPerkName, bChecked,iFlag)
- EndIf
- EndIf
- i += 1
- EndWhile
- If !abAddPerks
- ForcePageReset()
- EndIf
- EndFunction
- ;---------------------------------------------------------------------------------[Perk Utilities]
- Int Function CalcSkillRequirements(FormList akList, Int aiIndexed, Int aiPerkMult = 20, Int aiPerkRankMult = 20)
- If akList == None
- Return 0
- EndIf
- Int iPerkCount = akList.GetSize() - 1
- If iPerkCount >= 0
- Perk pPerk = (akList.GetAt(aiIndexed) As Perk)
- Int[] iNumRanks = PerkGetRankInfo(pPerk)
- Int iPct = ClampInt(Math.Floor(((aiIndexed*100) / iPerkCount)),0,100)
- If aiIndexed > 0 && iPct < aiPerkMult
- iPct = aiPerkMult
- EndIf
- Int iResults = RoundUp(iPct , aiPerkMult)
- If iNumRanks[0] > 1 && iNumRanks[1] > 1
- iPct = ClampInt(Math.Floor(((iNumRanks[1] * 100) / iNumRanks[0])),0,100)
- If aiIndexed > 0 && iPct < aiPerkRankMult
- iPct = aiPerkRankMult
- EndIf
- iResults = RoundUp(iPct, aiPerkRankMult)
- EndIf
- iResults = ClampInt(iResults,0,100)
- Debug.TraceUser("BoundSpellScale","CalcSkillRequirements() "+pPerk.GetName()+", aiIndexed="+aiIndexed+", iPct="+iPct+", iResults="+iResults+", iNumRanks="+iNumRanks)
- Return iResults
- EndIf
- Return 0
- EndFunction
- Bool Function IsPerkLocale(Perk akPerk)
- If akPerk != None
- String sStr = akPerk.GetName()
- Int iLen = StringUtil.GetLength(sStr)
- If iLen <= 0
- Return False
- EndIf
- If StringUtil.GetNthChar(sStr,0) == "$"
- Return True
- EndIf
- EndIf
- Return False
- EndFunction
- ;---------------------------------------------------------------------------------[PerkGetRankInfo]
- ; Returns array
- ; [0] = The total number of ranks the perk contains, is always >= 1
- ; [1] = The number of ranks that have been learned
- Int[] Function PerkGetRankInfo(Perk akPerk)
- Int[] iResults
- If akPerk == None
- Return iResults
- EndIf
- iResults = New Int[2]
- Int iNumRanks = 1
- Int iNumRanksLearned = 0
- If akPerk != None
- If PlayerRef.HasPerk(akPerk)
- iNumRanksLearned += 1
- EndIf
- Perk pNext = akPerk.GetNextPerk()
- While pNext != None
- If PlayerRef.HasPerk(pNext)
- iNumRanksLearned += 1
- EndIf
- iNumRanks += 1
- pNext = pNext.GetNextPerk()
- EndWhile
- EndIf
- iResults[0] = iNumRanks
- iResults[1] = iNumRanksLearned
- Return iResults
- EndFunction
- ;---------------------------------------------------------------------------------[PerkSelectRank]
- ; Selects a rank from a perk
- ; PerkSelectRank(Overdraw00, 2) == Overdraw20
- ; PerkSelectRank(Overdraw00, 5) == Overdraw80
- Perk Function PerkSelectRank(Perk akPerk,Int aiRank = 2)
- If akPerk != None
- Int[] iNumRanks = PerkGetRankInfo(akPerk)
- If aiRank > iNumRanks[0]
- aiRank = iNumRanks[0]
- EndIf
- If aiRank < 2
- Return akPerk
- EndIf
- Int i = 2
- Perk pNext = akPerk.GetNextPerk()
- While (i <= aiRank) && pNext != None
- If i == aiRank
- Return pNext
- EndIf
- pNext = pNext.GetNextPerk()
- i += 1
- EndWhile
- EndIf
- Return None
- EndFunction
- ;---------------------------------------------------------------------------------[PerkRemoveRanked]
- ; Removes all perk(s) learned from the specific perk
- ; Example
- ; PerkRemoveRanked(Overdraw00) will remove all ranks if they are learned
- Int Function PerkRemoveRanked(Perk akPerk)
- Int iResults = 0
- If akPerk != None
- If PlayerRef.HasPerk(akPerk)
- PlayerRef.RemovePerk(akPerk)
- iResults += 1
- EndIf
- Perk pNext = akPerk.GetNextPerk()
- While pNext != None
- If PlayerRef.HasPerk(pNext)
- PlayerRef.RemovePerk(pNext)
- iResults += 1
- EndIf
- pNext = pNext.GetNextPerk()
- EndWhile
- EndIf
- Return iResults
- EndFunction
- ;---------------------------------------------------------------------------------[Math Utilities]
- Int Function MaxInt(Int x,Int y)
- If x > y
- Return x
- Else
- Return y
- EndIf
- EndFunction
- Int Function MinInt(Int x,Int y)
- If x < y
- Return x
- Else
- Return y
- EndIf
- EndFunction
- Int Function ClampInt(Int x,Int min,Int max)
- Return MinInt(MaxInt(x,min),max)
- EndFunction
- Int Function ClampRangeInt(Int aiValue, Int aiMinValue, Int aiMaxValue, Int aiDefaultValue = -1)
- If aiDefaultValue < 0
- aiDefaultValue = aiMaxValue
- EndIf
- If (aiMinValue <= aiValue && aiValue <= aiMaxValue)
- Return aiDefaultValue
- EndIf
- Return aiValue
- EndFunction
- Int Function RoundUp(Int aiValue, Int aiMult = 10)
- Return Math.Ceiling(aiValue / aiMult) * aiMult
- EndFunction
- Int Function RoundDown(Int aiValue, Int aiMult = 10)
- Return Math.Floor(aiValue / aiMult) * aiMult
- EndFunction
- ;---------------------------------------------------------------------------------[Array Utilities]
- Int[] Function CreateIntArray(Int aiNum1,Int aiNum2,Int aiNum3,Int aiNum4,Int aiNum5)
- Int[] arRes = New Int[5]
- arRes[0] = aiNum1
- arRes[1] = aiNum2
- arRes[2] = aiNum3
- arRes[3] = aiNum4
- arRes[4] = aiNum5
- Return arRes
- EndFunction
- String[] Function CreateStringArray(String asText1,String asText2 = "",String asText3 = "",String asText4 = "",String asText5 = "")
- String[] arRes
- If asText5 != ""
- arRes = New String[5]
- arRes[0] = asText1
- arRes[1] = asText2
- arRes[2] = asText3
- arRes[3] = asText4
- arRes[4] = asText5
- ElseIf asText4 != ""
- arRes = New String[4]
- arRes[0] = asText1
- arRes[1] = asText2
- arRes[2] = asText3
- arRes[3] = asText4
- ElseIf asText3 != ""
- arRes = New String[3]
- arRes[0] = asText1
- arRes[1] = asText2
- arRes[2] = asText3
- ElseIf asText2 != ""
- arRes = New String[2]
- arRes[0] = asText1
- arRes[1] = asText2
- ElseIf asText1 != ""
- arRes = New String[1]
- arRes[0] = asText1
- EndIf
- Return arRes
- EndFunction
- ;---------------------------------------------------------------------------------[Debug Utilities]
- Function PerkDumpInfo(Perk akPerk)
- If akPerk != None
- Int[] iNumRanks = PerkGetRankInfo(akPerk)
- Int iNumEntries = akPerk.GetNumEntries()
- Debug.TraceUser("BoundSpellScale","")
- Debug.TraceUser("BoundSpellScale","---------------------------------------------------------------------------------[PerkDumpInfo BEGIN]")
- Debug.TraceUser("BoundSpellScale","akPerk ="+akPerk+", GetName="+akPerk.GetName())
- Debug.TraceUser("BoundSpellScale","iNumRanks ="+iNumRanks)
- Debug.TraceUser("BoundSpellScale","iNumEntries ="+iNumEntries)
- Int i = 0
- While i < iNumEntries
- Int iEntryRank = akPerk.GetNthEntryRank(i)
- Int iEntryPriority = akPerk.GetNthEntryPriority(i)
- Quest pEntryQuest = akPerk.GetNthEntryQuest(i)
- Int iEntryStage = akPerk.GetNthEntryStage(i)
- Spell pEntrySpell = akPerk.GetNthEntrySpell(i)
- LeveledItem pLeveledItem = akPerk.GetNthEntryLeveledList(i)
- String sText = akPerk.GetNthEntryText(i)
- Float fFloat = akPerk.GetNthEntryValue(i,0)
- Debug.TraceUser("BoundSpellScale","iEntryRank ="+iEntryRank)
- Debug.TraceUser("BoundSpellScale","iEntryPriority ="+iEntryPriority)
- If pEntryQuest != None
- Debug.TraceUser("BoundSpellScale","pEntryQuest ="+pEntryQuest)
- EndIf
- Debug.TraceUser("BoundSpellScale","iEntryStage ="+iEntryStage)
- If pEntrySpell != None
- Debug.TraceUser("BoundSpellScale","pEntrySpell ="+pEntrySpell)
- EndIf
- If pLeveledItem != None
- Debug.TraceUser("BoundSpellScale","pLeveledItem ="+pLeveledItem)
- EndIf
- If sText != ""
- Debug.TraceUser("BoundSpellScale","sText ="+sText)
- EndIf
- Debug.TraceUser("BoundSpellScale","fFloat ="+fFloat)
- i+=1
- EndWhile
- Debug.TraceUser("BoundSpellScale","---------------------------------------------------------------------------------[PerkDumpInfo END]")
- Debug.TraceUser("BoundSpellScale","")
- EndIf
- EndFunction
Advertisement
Add Comment
Please, Sign In to add comment