4
Fork 0

Rewrote _00E_LootContainer, fixed double sound on picking up gold stacks

development
Eddoursul 3 months ago
parent cd2f15bdf6
commit 755f068713
  1. BIN
      Enderal - Forgotten Stories.esm
  2. BIN
      Skyrim.esm
  3. BIN
      scripts/_00e_lootcontainer.pex
  4. 69
      source/scripts/_00e_lootcontainer.psc

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -5,25 +5,29 @@ Scriptname _00E_LootContainer extends ObjectReference
;=====================================================================================
Event OnInit()
Self.BlockActivation(True)
BlockActivation()
EndEvent
Event OnActivate(ObjectReference akActionRef)
if AkActionRef == Game.GetPlayer() && Self.GetItemCount(Gold001) > 0
Actor PlayerREF = Game.GetForm(0x14) as Actor
if AkActionRef != PlayerREF
return
endif
int iCurrentGoldCount = GetItemCount(Gold001)
if iCurrentGoldCount == 0
return
endif
if !bDone
CheckForGoldIncrementation()
EndIf
DisableNoWait()
;RemoveAllItems(Game.GetPlayer(), abKeepOwnership = true)
ITMGoldUp.Play(PlayerREF)
Game.GetPlayer().AddItem(Gold001, Self.GetItemCount(Gold001))
DisableNoWait()
endif
iCurrentGoldCount += GetGoldBonus(PlayerREF.GetActorValue("Lockpicking"), iCurrentGoldCount)
PlayerREF.AddItem(Gold001, iCurrentGoldCount)
RemoveAllItems()
EndEvent
@ -31,24 +35,21 @@ EndEvent
; FUNCTIONS
;=====================================================================================
Function CheckForGoldIncrementation()
int Function GetGoldBonus(float fPlayerLockpicking, int iCurrentGoldCount)
bDone = True
iCurrentGoldCount = Self.GetItemCount(Gold001)
fPlayerLockpicking = PlayerREF.GetActorValue("Lockpicking")
if fPlayerLockpicking >= 15
IncrementGold()
EndIf
EndFunction
if fPlayerLockpicking as int < 15
return 0
endif
Function IncrementGold()
int iGoldMultiplicator = _00E_GoldMult.GetValue() as int
if iGoldMultiplicator <= 0
iGoldMultiplicator = 5
endif
float fIncrementPercentage = (fPlayerLockpicking/iGoldMultiplicator)/100
float fIncrementPercentage = (fPlayerLockpicking / iGoldMultiplicator) / 100
Self.AddItem(Gold001, (iCurrentGoldCount*fIncrementPercentage) as Int)
return (iCurrentGoldCount * fIncrementPercentage) as Int
EndFunction
@ -56,15 +57,5 @@ EndFunction
; PROPERTIES
;=====================================================================================
bool bDone
; Use this to control how much the lockpicking skill increments the gold found in chest. When changing, remember to change in _00E_ChestAndDoorLockScript.psc as well!
; Current calculation: Gold in chest*((Lockpicking/iGoldMultiplicator)/100)
int iGoldMultiplicator = 5
float fPlayerLockpicking
int iCurrentGoldCount
Actor Property PlayerREF Auto
Sound Property ITMGoldUp Auto
MiscObject Property Gold001 Auto
MiscObject Property Gold001 Auto
GlobalVariable Property _00E_GoldMult Auto

Loading…
Cancel
Save