This snippet can be added for checking if a player has an item with a particular item type in their inventory. You can also search for more than one, and code can be added to make it do specific actions if you are returning FALSE. <<>> UNDER: void obj_fall args( ( OBJ_DATA *obj, bool through ) ); ADD: bool has_itemtype args( ( CHAR_DATA *ch ) ) <<>> AT THE BOTTOM ADD: /* * Checks a player's inventory for an item of a particular type. * Written by David Reichard(Terell) 2004. */ bool has_itemtype (CHAR_DATA *ch) { OBJ_DATA *obj; if(!ch) return FALSE; for(obj = ch->last_carrying; obj; obj = obj->prev_content) { } return TRUE; } Ok, well it wont do anything right now, so I'll give an example of it's usage and tell you how to add item types. Here is an example... bool has_itemtype (CHAR_DATA *ch, bool treasure, bool furniture) { OBJ_DATA *obj; bool has_treasure = FALSE; bool has_furniture = FALSE; if(!ch) return FALSE; for(obj = ch->last_carrying; obj; obj = obj->prev_content) { if(obj->item_type == ITEM_TREASURE) has_treasure = TRUE; if(obj->item_type == ITEM_FURNITURE) has_furniture = TRUE; } /* Could add some code here to take some kind of action if it will return false, * like a send_to_char or something. */ if(treasure && !has_treasure) return FALSE; if(furniture && !has_furniture) return FALSE; return TRUE; } And to use this function to check if a player has something of that item type, say you wanted to see if they had treasure, you do this: if (has_itemtype(ch, 1, 0)) Or if you wanted to check for both.... if (has_itemtype(ch, 1, 1)) See the relationship? Although any experienced C programmer would have figured this out by now, I thought I would explain so it is hopefully easy for new programmers to understand. Basically 1=TRUE and 0=FALSE, so if you want it to check for the second item type in the function and not the first, you would put a 0 and then a 1. To add new checks for item types, just copy what I did in the example substituting your item types. Any suggestions or questions you can reach me at dmreichard@earthlink.net.