User:PROXiCiDE/AddItemsToPlayerFromForm

From the CreationKit Wiki
< User:PROXiCiDE
Revision as of 17:31, 7 February 2014 by imported>PROXiCiDE (Created page with " == Syntax == <source lang="papyrus"> Function AddItemsToPlayerFromForm(FormList pList, Bool bRemove = False) </source> == Parameters == *pList: The form list containing Spe...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Syntax

Function AddItemsToPlayerFromForm(FormList pList, Bool bRemove = False)

Parameters

  • pList: The form list containing Spells / Ammo / Weapon.
  • bRemove : Items from the FormList will be removed instead of added to the player.
    • Default: False

Return Value

None

Example

FormList Property _PX_DebugSpellList Auto
Event OnInit()
	;Debug
	AddItemsToPlayerFromForm(_PX_DebugSpellList)
EndEvent

Script

Function AddItemsToPlayerFromForm(FormList pList, Bool bRemove = False)
	If pList == None
		Return
	EndIf
	
	Actor pPlayer = Game.GetPlayer()
	Ammo pAmmo = None
	Weapon pWeapon = None
	Spell pSpell = None
	
	Int Size = pList.GetSize()
	While Size > 0
		Size -= 1
		Form fmItem = pList.GetAt(Size)
		If fmItem As Spell
			pSpell = fmItem As Spell
			If bRemove
				pPlayer.RemoveSpell(pSpell)
			Else
				pPlayer.AddSpell(pSpell)
			EndIf
		ElseIf fmItem As Ammo
			pAmmo = fmItem As Ammo
			If bRemove
				pPlayer.RemoveItem(fmItem, 100)
			Else
				pPlayer.AddItem(fmItem, 100)
			EndIf
		ElseIf fmItem As Weapon
			pWeapon = fmItem As Weapon
			If bRemove
				pPlayer.RemoveItem(fmItem, 1)
			Else
				pPlayer.AddItem(fmItem,1)
			EndIf
		EndIf
	EndWhile
	
	If !bRemove
		pPlayer.EquipItem(pAmmo)
		pPlayer.EquipItem(pWeapon)
	EndIf
	
EndFunction