Difference between revisions of "DropAllItems"
Jump to navigation
Jump to search
imported>BiteHandNIN m |
imported>Scruggs (looping version) |
||
Line 36: | Line 36: | ||
set DropAllItems.DropAllItems to 1 | set DropAllItems.DropAllItems to 1 | ||
end | end | ||
Using OBSE's looping functions, you can speed things up a bit: | |||
<pre>ref item | |||
short quant | |||
short numItems | |||
begin gameMode | |||
if ( timeToDropItems ) | |||
set numItems to getNumItems | |||
Label 10; start of loop | |||
if ( numItems ) | |||
set numItems to numItems - 1 | |||
set item to getInventoryObject numItems | |||
set quant to getItemCount item | |||
drop item quant | |||
GoTo 10 | |||
endif | |||
endif | |||
end</pre> |
Revision as of 00:26, 26 January 2007
scn DropAllItemsQuestScript short DropAllItems ref ActorRef ref CurObj short CurObjNum float fquestdelaytime begin GameMode set fquestdelaytime to 0.001 if ActorRef && DropAllItems == 1 if ActorRef.GetNumItems > 0 set CurObj to ActorRef.GetInventoryObject (ActorRef.GetNumItems - 1) set CurObjNum to ActorRef.GetItemCount CurObj ActorRef.Drop CurObj CurObjNum ActorRef.RemoveItem CurObj CurObjNum endif if ActorRef.GetNumItems == 0 set DropAllItems to 0 endif endif end
make this a quest script, attach it to a quest named DropAllItems. In your script
scn MyScript ref actor begin onActivate set Actor to GetActionRef messageBox "Good job dropping everything." set DropAllItems.ActorRef to Actor set DropAllItems.DropAllItems to 1 end
Using OBSE's looping functions, you can speed things up a bit:
ref item short quant short numItems begin gameMode if ( timeToDropItems ) set numItems to getNumItems Label 10; start of loop if ( numItems ) set numItems to numItems - 1 set item to getInventoryObject numItems set quant to getItemCount item drop item quant GoTo 10 endif endif end