Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;SBA_Util.psc
- ScriptName SBA_Util hidden
- Form[] Function GetSBAArmorArray(Actor actorRef) global
- Form[] wornForms = new Form[30]
- int count = 0
- int slotsChecked = 0
- slotsChecked += 0x00100000
- slotsChecked += 0x00200000
- slotsChecked += 0x80000000
- int thisSlot = 0x00000001
- while(thisSlot < 0x80000000)
- if (Math.LogicalAnd(slotsChecked, thisSlot) != thisSlot)
- SBA_Armor sbaArmor = actorRef.GetWornForm(thisSlot) as SBA_Armor
- if sbaArmor != none
- wornForms[count] = sbaArmor
- count += 1
- slotsChecked += sbaArmor.GetSlotMask()
- else
- slotsChecked += thisSlot
- endif
- endif
- thisSlot *= 2
- endWhile
- int i = 0
- Form[] retForms = Utility.CreateFormArray(count)
- while i < count
- retForms[i] = wornForms[i]
- i += 1
- endWhile
- return retForms
- EndFunction
- Function StripArmor(Actor actorRef, Form wornForm, int breakRate, int dropRate) global
- if wornForm
- actorRef.UnequipItem(wornForm)
- if Utility.RandomInt(0, 99) < breakRate
- MiscObject broken = (wornForm as SBA_Armor).BrokenItem
- actorRef.RemoveItem(wornForm, 1, true)
- actorRef.AddItem(broken, 1, true)
- if Utility.RandomInt(0, 99) < dropRate
- actorRef.DropObject(broken)
- endif
- else
- if Utility.RandomInt(0, 99) < dropRate
- actorRef.DropObject(wornForm)
- endif
- endif
- endif
- EndFunction
- Function StripAllArmor(Actor actorRef, int breakRate, int dropRate) global
- Form[] wornForms = SBA_Util.GetSBAArmorArray(actorRef)
- int n = wornForms.Length
- int i = 0
- while i < n
- SBA_Util.StripArmor(actorRef, wornForms[i], breakRate, dropRate)
- i += 1
- endWhile
- EndFunction
- Function StripTop(Actor actorRef, int breakRate, int dropRate) global
- SBA_Armor sbaArmor = actorRef.GetWornForm(0x00000004) as SBA_Armor
- SBA_Util.StripArmor(actorRef, sbaArmor, breakRate, dropRate)
- EndFunction
- Function StripBottom(Actor actorRef, int breakRate, int dropRate) global
- SBA_Armor sbaArmor = actorRef.GetWornForm(0x00400000) as SBA_Armor
- SBA_Util.StripArmor(actorRef, sbaArmor, breakRate, dropRate)
- EndFunction
- Function StripTasset(Actor actorRef, int breakRate, int dropRate) global
- SBA_Armor sbaArmor = actorRef.GetWornForm(0x00080000) as SBA_Armor
- SBA_Util.StripArmor(actorRef, sbaArmor, breakRate, dropRate)
- EndFunction
Advertisement
Add Comment
Please, Sign In to add comment