Oh, sorry. I forgot the patch to 'server/attack.c', which destroys the objects in the inventory of a generator, when the generator gets destroyed. -------------- next part -------------- Index: attack.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/server/attack.c,v retrieving revision 1.66 diff -c -5 -r1.66 attack.c *** attack.c 11 Mar 2002 22:02:37 -0000 1.66 --- attack.c 17 Apr 2002 15:50:14 -0000 *************** *** 1244,1254 **** char buf[MAX_BUF]; object *old_hitter=NULL; /* this is used in case of servant monsters */ int maxdam=0; int battleg=0; /* true if op standing on battleground */ int killed_script_rtn = 0; ! object *owner=NULL; int evtid; #ifdef PLUGINS CFParm CFP; #endif /* Object has been killed. Lets clean it up */ --- 1244,1254 ---- char buf[MAX_BUF]; object *old_hitter=NULL; /* this is used in case of servant monsters */ int maxdam=0; int battleg=0; /* true if op standing on battleground */ int killed_script_rtn = 0; ! object *owner=NULL,*tmp; int evtid; #ifdef PLUGINS CFParm CFP; #endif /* Object has been killed. Lets clean it up */ *************** *** 1447,1456 **** --- 1447,1463 ---- play_sound_player_only(owner->contr, SOUND_PET_IS_KILLED,0,0); new_draw_info(NDI_UNIQUE, 0,owner,buf); } remove_friendly_object(op); } + if(QUERY_FLAG(op,FLAG_GENERATOR)) { + while (op->inv) { /* destroy the inventory of generators */ + tmp = op->inv; + remove_ob(tmp); + free_object(tmp) ; + } + } remove_ob(op); free_object(op); } /* Player has been killed! */ else {