void fnDespawn() { // PURPOSE: Despawn if PC not in range object oMe=OBJECT_SELF; object oPC=GetNearestCreature(CREATURE_TYPE_IS_ALIVE,TRUE,oMe,1,CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC); if (GetIsObjectValid(oPC)) { // move away AssignCommand(oMe,ClearAllActions(TRUE)); AssignCommand(oMe,ActionMoveAwayFromObject(oPC,TRUE)); DelayCommand(10.0,fnDespawn()); } // move away else { // despawn DestroyObject(oMe); } // despawn } // fnDespawn() void main() { object oPC=GetPCSpeaker(); object oMe=OBJECT_SELF; object oBook=GetItemPossessedBy(oMe,"it_grubbins"); int nGold=500; if (GetLocalInt(oPC,"nParm")>0) nGold=450; CreateItemOnObject("it_grubbins",oPC); DestroyObject(oBook); SetAILevel(oMe,AI_LEVEL_NORMAL); AssignCommand(oMe,TakeGoldFromCreature(nGold,oPC)); AssignCommand(oMe,ActionMoveAwayFromObject(oPC,TRUE,80.0)); DelayCommand(30.0,fnDespawn()); }