Difference between revisions of "Walking Through Inventory Items"
Walking Through Inventory Items (edit)
Revision as of 04:29, 15 February 2011
, 04:29, 15 February 2011no edit summary
imported>Haama (Created) |
imported>TheNiceOne |
||
(19 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
There are | __NOTOC__ | ||
#From the end to the beginning - Easier to use with RemoveItem | |||
#From beginning to end | '''{{ReqOBSE}}''' | ||
There are two ways to walk an inventory: | |||
#From the end to the beginning - Easier to use with RemoveItem | |||
#From beginning to end | |||
==From the End to the Beginning== | ==From the End to the Beginning== | ||
<pre>short | <pre>short invPos | ||
ref pInvObj | ref pInvObj | ||
ref pCont | ref pCont | ||
... | ... | ||
set pCont to YourDesiredContainer | set pCont to YourDesiredContainer | ||
set | set invPos to pCont.GetNumItems | ||
While invPos > 0 | |||
set invPos to (invPos - 1) | |||
set | set pInvObj to (pCont.GetInventoryObject invPos) | ||
set pInvObj to (pCont.GetInventoryObject | |||
;Do whatever you want to do | ;Do whatever you want to do | ||
Loop</pre> | |||
==From the Beginning to the End== | ==From the Beginning to the End== | ||
<pre>short | <pre>short invPos | ||
short invCount | |||
ref pInvObj | ref pInvObj | ||
ref pCont | ref pCont | ||
... | ... | ||
set pCont to YourDesiredContainer | set pCont to YourDesiredContainer | ||
set | set invPos to 0 | ||
set invCount to pCont.GetNumItems | |||
set | While invPos < invCount | ||
set pInvObj to (pCont.GetInventoryObject invPos) | |||
set | |||
;Do whatever you want to do | ;Do whatever you want to do | ||
set invPos to invPos + 1 | |||
Loop</pre> | |||
==Notes== | ==Notes== | ||
*[[GetInventoryObject]] returns the base object FormID. It can't be used when a reference should be used. The information returned about it (i.e., using [[GetSoulLevel]]) will be about the base object and not necessarily each object in the player's inventory. That is, if the player has 2 petty soul gems, one filled and the other empty and you use [[GetSoulLevel]] it will return the same for both (empty). | *[[GetInventoryObject]] returns the base object FormID. It can't be used when a reference should be used. The information returned about it (i.e., using [[GetSoulLevel]]) will be about the base object and not necessarily each object in the player's inventory. That is, if the player has 2 petty soul gems, one filled and the other empty and you use [[GetSoulLevel]] it will return the same for both (empty). | ||
*Can be used for both [[Container|containers]] and [[:Category:Actors|actors]]. | *Can be used for both [[Container|containers]] and [[:Category:Actors|actors]]. | ||
<ul> | |||
<li>Some common things to do with the item</li> | |||
*Run tests such as | |||
if (IsQuestItem pInvObj) | |||
if (pInvObj == Apple) | |||
*Find out how many the player has | |||
set InvObjCount to (pCont.GetItemCount pInvObj) | |||
</ul> | |||
==See Also== | |||
*[[GetInventoryObject]] | |||
*[[GetNumItems]] | |||
*[[While]] | |||
[[Category:Useful Code]] | [[Category:Useful Code]] | ||
[[Category:Standardized | [[Category:Standardized Snippets]] |