enderalse/scripts/source/tsc_throwingweapons_playerscript.psc

80 lines
2.6 KiB
Plaintext

Scriptname Tsc_ThrowingWeapons_PlayerScript extends ReferenceAlias
GlobalVariable Property ModVersion Auto
Tsc_ThrowingWeapons_QuestScript Property QuestScript Auto
FormList Property AmmoItemList Auto
FormList Property ScrollList Auto
Actor Property PlayerRef Auto
Keyword Property ActorTypeNPC Auto
Event OnPlayerLoadGame()
if (ModVersion.GetValue() < 3.0)
QuestScript.version3Update()
ModVersion.SetValue(3.0)
Debug.Notification("True Spear Combat updated to V0.7")
endIf
QuestScript.fnisUpdate()
EndEvent
Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer)
if (AmmoItemList.HasForm(akBaseItem))
int index = AmmoItemList.Find(akBaseItem)
form wpn = ScrollList.GetAt(index)
PlayerRef.AddItem(wpn, aiItemCount, true)
if (akSourceContainer)
int scrollCount = akSourceContainer.GetItemCount(wpn)
int ammoCount = akSourceContainer.GetItemCount(akBaseItem)
if (scrollCount > ammoCount)
scrollCount = scrollCount - ammoCount
akSourceContainer.RemoveItem(wpn, scrollCount, true)
endIf
endIf
endIf
endEvent
Event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer)
if (AmmoItemList.HasForm(akBaseItem))
int index = AmmoItemList.Find(akBaseItem)
form wpn = ScrollList.GetAt(index)
int ammoCount = PlayerRef.GetItemCount(akBaseItem)
int scrollCount = PlayerRef.GetItemCount(wpn)
if (ammoCount < scrollCount)
scrollCount = scrollCount - ammoCount
PlayerRef.RemoveItem(wpn, scrollCount, true)
endIf
if (akDestContainer.HasKeyword(ActorTypeNPC))
akDestContainer.RemoveItem(akBaseItem, aiItemCount, true)
akDestContainer.AddItem(wpn, aiItemCount, true)
endIf
endIf
endEvent
Event OnObjectEquipped(Form akBaseObject, ObjectReference akReference)
int index
form wpn
if (AmmoItemList.HasForm(akBaseObject))
index = AmmoItemList.Find(akBaseObject)
wpn = ScrollList.GetAt(index)
PlayerRef.EquipItem(wpn, false, true)
elseIf (ScrollList.HasForm(akBaseObject))
index = ScrollList.Find(akBaseObject)
wpn = AmmoItemList.GetAt(index)
PlayerRef.EquipItem(wpn, false, true)
endIf
endEvent
Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference)
int index
form wpn
if (AmmoItemList.HasForm(akBaseObject))
index = AmmoItemList.Find(akBaseObject)
wpn = ScrollList.GetAt(index)
PlayerRef.UnequipItem(wpn, false, true)
elseIf (ScrollList.HasForm(akBaseObject))
index = ScrollList.Find(akBaseObject)
wpn = AmmoItemList.GetAt(index)
PlayerRef.UnequipItem(wpn, false, true)
endIf
endEvent