#include "X_O2_CONINCLUDE" void RespawnObject(string sTag, int iType, location lLoc) { // ResRef must be derivable from Tag string sResRef = GetStringLowerCase(GetStringLeft(sTag, 16)); CreateObject(iType, sResRef, lLoc); } void main() { object oLastOpener = GetLastOpener(); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectNegativeLevel(2), oLastOpener, 400.0); SetLocalInt(OBJECT_SELF, "GT_MAX_LEVEL", 18); // * May 13 2002: Must create appropriate treasure for each // * faction member in the party. if (GetIsObjectValid(oLastOpener) == TRUE) { object oMember = GetFirstFactionMember(oLastOpener, TRUE); while (GetIsObjectValid(oMember) == TRUE ) { if (GetArea(OBJECT_SELF) == GetArea(oMember)){ GenerateBossTreasure(oMember, OBJECT_SELF); } object oContainer = OBJECT_SELF; oMember = GetNextFactionMember(oLastOpener, TRUE); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUNBEAM), oContainer); } } string sTag = GetTag(OBJECT_SELF); int iType = GetObjectType(OBJECT_SELF); // For creatures, save the location at spawn-time as a local location and // use it instead. Otherwise, the creature will respawn where it died. location lLoc = GetLocation(OBJECT_SELF); float fDelay = 1000.0; // 1000 second delay DestroyObject(OBJECT_SELF, 0.0); AssignCommand(GetArea(OBJECT_SELF), DelayCommand(fDelay, RespawnObject(sTag, iType, lLoc))); }