GetItemCount - ObjectReference

From the CreationKit Wiki
Revision as of 03:26, 3 June 2016 by imported>Terra Nova2 (→‎Notes: typos)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Member of: ObjectReference Script

Returns how many of the specified item is in this reference's inventory.

Syntax

int Function GetItemCount(Form akItem) native

Parameters

  • akItem: The item to look for in this reference's inventory.
    • If a reference, will look for just that particular reference.
    • If a base object (like armor or a weapon), it will count the how many instances of that base object are in the container
    • If a form list, it will count how many of each item in the form list is in the container and sum it all up
    • If a keyword, it will count how many items with that keyword are in the container

Return Value

How many of said item is in this reference's inventory.

Examples

if (Game.GetPlayer().GetItemCount(WeapTypeSwordKeyword) == 0)
  Debug.Trace("Player has no swords")
endIf


if (Game.GetPlayer().GetItemCount(SuperSecretPotionReference) == 0)
  Debug.Trace("Player doesn't have the super-secret potion")
endIf

Notes

  • If the argument akItem is a keyword and the object reference is an actor this function will fail to operate properly. A solution is to transfer the contents of the actor's inventory to a container and call the function on that container ( Source (EN) - Source (FR)).
  • In all cases, if the object reference contains CK-Defined Leveled lists of items then this function will fail to operate properly (Source)
  • If the argument akItem is a keyword and the object reference contains CK-defined items (Object References) then this function will fail to operate properly (Source) : it fails to include the CK-defined inventory when GetItemCount tries to calculate its count.
  • Calling this function on an objectreference from the outside of its cell will return 1 in the case of the passed in form being in a leveled list. Needs more testing.. but works fine if the player is in the same cell.

See Also