Difference between revisions of "GetNumItems"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>DragoonWraith
(notes found by scruggsywuggsy the ferret)
imported>Quetzilla
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
A command for [[Oblivion Script Extender]]
A command for [[:Category:Oblivion Script Extender|Oblivion Script Extender]]


'''Syntax:'''
'''Syntax:'''
  GetNumItems
  (numItems:short) [''ref.'']GetNumItems


Must be called on a reference. Returns the number of unique items in the object's inventory.
Must be called on a reference. Returns the number of unique items in the reference's inventory.


==Notes==
==Notes==
Line 11: Line 11:
*Gold counts as an item, so if you have any gold, you'll get a +1 to your return
*Gold counts as an item, so if you have any gold, you'll get a +1 to your return
*Equipped items and identical items that are unequipped are still only one unique item
*Equipped items and identical items that are unequipped are still only one unique item
*Using this function every frame will significantly drop FPS. The more items that have to be scanned, the worse it is (i.e., 1 item a frame will drop it by 3, 15 by 25). Use this function only when necessary, and try to avoid using it in [[GameMode]].
**There are several ways to use [[GetInventoryObject]] instead of '''GetNumItems''' (keep in mind that it is also CPU-heavy, but not as much)
**v0013 significantly improves the efficiency of this function


[[Category: Oblivion Script Extender]]
If you need to test if a container has items in it, use
ref pInvObj
...
set pInvObj to (SomeContainer.GetInventoryObject 0)
if pInvObj
...
If you need to see if the player has a new item, use '''GetNumItems''' once and then '''GetInventoryObject'''
ref pInvObj
short InvTotal
...
if (InvTotal == 0)
  set InvTotal to SomeContainer.GetNumItems
else
  set pInvObj to (SomeContainer.GetInventoryObject InvTotal)
  if pInvObj
...
 
== See Also ==
* [[GetInventoryObject]] 
[[Category: Functions]]
[[Category: Functions (OBSE)]]
[[Category: Inventory Functions]]
[[Category: Inventory Functions (OBSE)]]

Latest revision as of 15:29, 11 April 2008

A command for Oblivion Script Extender

Syntax:

(numItems:short) [ref.]GetNumItems

Must be called on a reference. Returns the number of unique items in the reference's inventory.

Notes[edit | edit source]

  • Note that it is the number of unique items in the inventory - 10 arrows will only count as one item.
  • Gold counts as an item, so if you have any gold, you'll get a +1 to your return
  • Equipped items and identical items that are unequipped are still only one unique item
  • Using this function every frame will significantly drop FPS. The more items that have to be scanned, the worse it is (i.e., 1 item a frame will drop it by 3, 15 by 25). Use this function only when necessary, and try to avoid using it in GameMode.
    • There are several ways to use GetInventoryObject instead of GetNumItems (keep in mind that it is also CPU-heavy, but not as much)
    • v0013 significantly improves the efficiency of this function

If you need to test if a container has items in it, use

ref pInvObj
...
set pInvObj to (SomeContainer.GetInventoryObject 0)
if pInvObj
...

If you need to see if the player has a new item, use GetNumItems once and then GetInventoryObject

ref pInvObj
short InvTotal
...
if (InvTotal == 0)
  set InvTotal to SomeContainer.GetNumItems
else
  set pInvObj to (SomeContainer.GetInventoryObject InvTotal)
  if pInvObj
...

See Also[edit | edit source]