AOC_PRC8/_module/nss/chest_clear_orig.nss
Jaysyn904 5e558169a0 Initial Commit
Initial Commit
2025-04-03 11:24:16 -04:00

120 lines
3.6 KiB
Plaintext

#include "spawner"
void main()
{
object oPC = GetLastOpenedBy();
object oMod = GetModule();
object oItem = GetFirstItemInInventory(OBJECT_SELF);
int oCount2 = GetLocalInt(oPC, "ch_count");
int oCountdown = GetLocalInt(oMod, "countdown");
int oChest1 = GetLocalInt(oMod, "chest1");
int oChest2 = GetLocalInt(oMod, "chest2");
int oChest3 = GetLocalInt(oMod, "chest3");
int oChest4 = GetLocalInt(oMod, "chest4");
int oComplete2 = GetLocalInt(oMod, "d2_complete");
int oComplete2a = GetLocalInt(oMod, "d2a_complete");
int oComplete5 = GetLocalInt(oMod, "d5_complete");
string oTag;
if (oCountdown!=1)
{
while (GetIsObjectValid(oItem))
{
++oCount2;
oTag = GetTag(oItem);
if (oTag=="pearl")
{
SetLocalInt(oMod, "pearl_there", 1);
}
oItem = GetNextItemInInventory(OBJECT_SELF);
}
int oThere = GetLocalInt(oMod, "pearl_there");
if (oThere==0)
{
oItem = GetFirstItemInInventory(OBJECT_SELF);
while (GetIsObjectValid(oItem))
{
oTag = GetTag(oItem);
if (oTag!="pearl")
{
DestroyObject(oItem);
}
oItem = GetNextItemInInventory(OBJECT_SELF);
}
location iLocation = GetLocation(OBJECT_SELF);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,
EffectVisualEffect(VFX_FNF_MYSTICAL_EXPLOSION),
GetLocation(OBJECT_SELF));
DestroyObject(OBJECT_SELF, 0.0);
SetLocalInt(oMod, "chest1", 1);
if (oComplete2==1)
{SetLocalInt(oMod, "chest2", 1);}
if (oComplete2a==1)
{SetLocalInt(oMod, "chest3", 1);}
if (oComplete5==1)
{SetLocalInt(oMod, "chest4", 1);}
SetLocalInt(oMod, "chest_here", 0);
return;
}
if (oCount2==0)
{
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,
EffectVisualEffect(VFX_FNF_MYSTICAL_EXPLOSION),
GetLocation(OBJECT_SELF));
DestroyObject(OBJECT_SELF, 0.0);
SetLocalInt(oMod, "chest_here", 0);
SetLocalInt(oMod, "chest1", 1);
if (oComplete2==1)
{SetLocalInt(oMod, "chest2", 1);}
if (oComplete2a==1)
{SetLocalInt(oMod, "chest3", 1);}
if (oComplete5==1)
{SetLocalInt(oMod, "chest4", 1);}
return;
}
SetLocalInt(oMod, "countdown", 1);
Message(0.0, "You have 10 seconds to take the Token", oPC);
Message(1.0, "You have 9 seconds to take the Token", oPC);
Message(2.0, "You have 8 seconds to take the Token", oPC);
Message(3.0, "You have 7 seconds to take the Token", oPC);
Message(4.0, "You have 6 seconds to take the Token", oPC);
Message(5.0, "You have 5 seconds to take the Token", oPC);
Message(6.0, "You have 4 seconds to take the Token", oPC);
Message(7.0, "You have 3 seconds to take the Token", oPC);
Message(8.0, "You have 2 seconds to take the Token", oPC);
Message(9.0, "You have 1 seconds to take the Token", oPC);
oItem = GetFirstItemInInventory(OBJECT_SELF);
while (GetIsObjectValid(oItem))
{
oTag = GetTag(oItem);
if (oTag!="coin1")
{
DestroyObject(oItem);
}
oItem = GetNextItemInInventory(OBJECT_SELF);
}
DelayCommand(10.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT,
EffectVisualEffect(VFX_FNF_MYSTICAL_EXPLOSION),
GetLocation(OBJECT_SELF)));
DestroyObject(OBJECT_SELF, 10.5);
SetLocalInt(oMod, "chest1", 1);
if (oComplete2==1)
{SetLocalInt(oMod, "chest2", 1);}
if (oComplete2a==1)
{SetLocalInt(oMod, "chest3", 1);}
if (oComplete5==1)
{SetLocalInt(oMod, "chest4", 1);}
SetLocalInt(oMod, "chest_here", 0);
}
oItem = GetFirstItemInInventory(OBJECT_SELF);
while (GetIsObjectValid(oItem))
{
oTag = GetTag(oItem);
if (oTag!="pearl")
{
DestroyObject(oItem);
}
oItem = GetNextItemInInventory(OBJECT_SELF);
}
}