/* /cmds/creator/clean.c * From the Dead Souls Mud Library * Cleans out the inventory of an object, defaulting to this room * created by Valodin@Dead Souls 930101 * Version: @(#) clean.c 1.2@(#) * Last modified: 96/10/06 */ #include #include inherit LIB_DAEMON; mixed cmd(string args) { object array obs, items, users; object ob; if( !args || args == "" ) { ob = environment(previous_object()); } else { ob = get_object(args); } if( !ob ) { return "No " + args + " found."; } previous_object()->eventPrint(sprintf("Cleaning %O", ob), MSG_SYSTEM); say(this_player()->GetName()+" cleans "+ob->GetShort()+"."); obs = deep_inventory(ob); users = filter(obs, (: userp :)); items = obs - users; foreach(object user in users) { object tmp = user; while( tmp = environment(tmp) ) { items -= ({ tmp }); } } foreach(object item in items) { if( item ) { item->eventDestruct(); } } return 1; } string GetHelp() { return ("Syntax: clean [OBJECT]\n\n" "This command destroys all objects in the inventory of a " "specified object. It skips any item that has a user somewhere " "in its deep inventory."); }