#include "X_O2_CONINCLUDE" #include "GSLOOT_LIB" // Modified by AW Olorin 1-12-2004 // Anti-GS Looting 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() { SetLocalInt(OBJECT_SELF, "GT_MAX_LEVEL", 20); object oLastOpener = GetLastOpener(); if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0) { string sReport; sReport = ">>> ID: " + GetPCPlayerName( oLastOpener ) + "; Name: "+ GetName( oLastOpener ) + "; CD Key:" + GetPCPublicCDKey( oLastOpener ) + "; IP:" + GetPCIPAddress( oLastOpener ); SendMessageToAllDMs(sReport + " Attempted Spam Looting!! " ); return; } // 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); if (GetIsObjectValid(oLastOpener) == TRUE) { if(!GS_Check(oLastOpener,1)) { // * May 13 2002: Must create appropriate treasure for each // * faction member in the party. object oMember = GetFirstFactionMember(oLastOpener, TRUE); while (GetIsObjectValid(oMember) == TRUE ) { if (GetArea(OBJECT_SELF) == GetArea(oMember)) { GenerateBossTreasure(oMember, OBJECT_SELF); GenerateBossTreasure(oMember, OBJECT_SELF); } oMember = GetNextFactionMember(oLastOpener, TRUE); } } else { RogueSpectreSpawn(oLastOpener); DropNote(lLoc); } ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUNBEAM), OBJECT_SELF); } SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1); ShoutDisturbed(); string sTag = GetTag(OBJECT_SELF); int iType = GetObjectType(OBJECT_SELF); float fDelay = 1000.0; // 1000 second delay DestroyObject(OBJECT_SELF, 0.0); AssignCommand(GetArea(OBJECT_SELF), DelayCommand(fDelay, RespawnObject(sTag, iType, lLoc))); }