92 lines
2.2 KiB
Plaintext
92 lines
2.2 KiB
Plaintext
#include "X_O2_CONINCLUDE"
|
|
#include "GSLOOT_LIB"
|
|
|
|
// Modified by AW Olorin 1-12-2004
|
|
// Anti-GS Lotting
|
|
|
|
|
|
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", 6);
|
|
|
|
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);
|
|
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)));
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|