trigger OnIncapacitated( obj_id attacker ) { sendMessages( self ); return SCRIPT_CONTINUE; } trigger OnDestroy() { sendMessages( self ); return SCRIPT_CONTINUE; } trigger OnObjectDisabled(obj_id killer) { sendMessages( self ); return SCRIPT_CONTINUE; } void sendMessages( obj_id object ) { if (!hasObjVar( object, "destroyMessageList" )) return; string[] destroyMessageNames = getStringArrayObjVar( object, "destroyMessageList.handlerNames" ); float[] destroyMessageDelays = getFloatArrayObjVar( object, "destroyMessageList.delays" ); obj_id[] destroyMessageRecipients = getObjIdArrayObjVar( object, "destroyMessageList.recipients" ); removeObjVar( object, "destroyMessageList" ); dictionary parms = new dictionary(); parms.put( "object", object ); for ( int i = 0; i < destroyMessageNames.length; i++ ) messageTo( destroyMessageRecipients[i], destroyMessageNames[i], parms, destroyMessageDelays[i], isObjectPersisted( destroyMessageRecipients[i] )); }