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

295 lines
9.6 KiB
Plaintext

#include "cleanup"
#include "spawner"
void GroupThanks(object oPC)
{
object oTeam;
object oCreature;
int oDice;
oCreature = GetFirstObjectInArea(OBJECT_SELF);
while ((GetObjectType(oCreature)!=OBJECT_TYPE_CREATURE)||
(GetIsPC(oCreature))||(GetTag(oCreature)=="starfall")||(GetTag(oCreature)=="reaper"))
{
oCreature =GetNextObjectInArea(OBJECT_SELF);
}
oTeam = GetFirstFactionMember(oCreature, FALSE);
while (GetIsObjectValid(oTeam))
{
if (!GetIsDead(oTeam))
{
NPCvoice(oTeam, oPC, 9);
DelayCommand(0.8, NPCvoice(oTeam, oPC, 10));
oDice = d2();
if (oDice==1)
{
DelayCommand(1.0, AssignCommand(oTeam, ActionPlayAnimation
(ANIMATION_FIREFORGET_GREETING)));
}
else
{
DelayCommand(1.0, AssignCommand(oTeam, ActionPlayAnimation
(ANIMATION_FIREFORGET_BOW)));
}
}
oTeam = GetNextFactionMember(oCreature, FALSE);
}
}
void LimboSend(object oPC)
{
object oTarget1,
oTarget2,
oTarget3,
oTarget4,
oTarget5,
oTarget6,
oTarget7,
oTarget8,
oTarget9,
oTarget10,
oTarget11,
oTarget12,
oTarget13,
oTarget14,
oTarget15,
oTarget16,
oTarget17,
oStuff;
object oMod = GetModule();
SetLocalInt(oMod, "d1", 0);
SetLocalInt(oMod, "d2", 0);
SetLocalInt(oMod, "d2a", 0);
SetLocalInt(oMod, "d3", 0);
SetLocalInt(oMod, "d4", 0);
SetLocalInt(oMod, "d5", 0);
SetLocalInt(oMod, "sw_hw", 0);
SetLocalInt(oMod, "sw_dr", 0);
SetLocalInt(oMod, "sw_bl", 0);
SetLocalInt(oMod, "sw_pf", 0);
SetLocalInt(oMod, "sw_df", 0);
SetLocalInt(oMod, "sw_pm", 0);
SetLocalInt(oMod, "sw_bm", 0);
SetLocalInt(oMod, "sw_lm", 0);
SetLocalInt(oMod, "sw_ll", 0);
SetLocalInt(oMod, "sw_xx", 0);
SetLocalInt(oMod, "ch_hw", 0);
SetLocalInt(oMod, "ch_dr", 0);
SetLocalInt(oMod, "ch_bl", 0);
SetLocalInt(oMod, "ch_pf", 0);
SetLocalInt(oMod, "ch_df", 0);
SetLocalInt(oMod, "ch_pm", 0);
SetLocalInt(oMod, "ch_bm", 0);
SetLocalInt(oMod, "ch_lm", 0);
SetLocalInt(oMod, "ch_ll", 0);
SetLocalInt(oMod, "ch_xx", 0);
SetLocalInt(oMod, "gr_xx", 0);
SetLocalInt(oMod, "challenge", 0);
SetLocalInt(oMod, "hwar_on", 0);
SetLocked(GetObjectByTag("arena_gate"), FALSE);
object oMonster = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oPC);
effect eEffect = EffectVisualEffect(VFX_IMP_UNSUMMON);
oTarget1 = GetObjectByTag("zep_balrog001");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget1));
DestroyObject(GetObjectByTag("zep_balrog001"));
oTarget2 = GetObjectByTag("dragon1");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget2));
DestroyObject(GetObjectByTag("dragon1"));
oTarget3 = GetObjectByTag("zep_halfdrafn001");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget3));
DestroyObject(GetObjectByTag("zep_halfdrafn001"));
oTarget4 = GetObjectByTag("zep_marilithb001");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget4));
DestroyObject(GetObjectByTag("zep_marilithb001"));
oTarget5 = GetObjectByTag("palewarrior");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget5));
DestroyObject(GetObjectByTag("palewarrior"));
oTarget6 = GetObjectByTag("zep_pitfiend001");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget6));
DestroyObject(GetObjectByTag("zep_pitfiend001"));
oTarget7 = GetObjectByTag("dopple");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget7));
DestroyObject(GetObjectByTag("dopple"));
oTarget8 = GetObjectByTag("boss1");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget8));
DestroyObject(GetObjectByTag("boss1"));
oTarget9 = GetObjectByTag("lord");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget9));
DestroyObject(GetObjectByTag("lord"));
oTarget10 = GetObjectByTag("lucifer");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget10));
DestroyObject(GetObjectByTag("lucifer"));
oTarget11 = GetObjectByTag("boss002");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget11));
DestroyObject(GetObjectByTag("boss002"));
oTarget12 = GetObjectByTag("thor");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget12));
DestroyObject(GetObjectByTag("thor"));
oTarget13 = GetObjectByTag("angel");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget13));
DestroyObject(GetObjectByTag("angel"));
oTarget14 = GetObjectByTag("notime1");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget14));
DestroyObject(GetObjectByTag("notime1"));
oTarget15 = GetObjectByTag("notime2");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget15));
DestroyObject(GetObjectByTag("notime2"));
oTarget16 = GetObjectByTag("notime3");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget16));
DestroyObject(GetObjectByTag("notime3"));
oTarget17 = GetObjectByTag("notime4");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("notime4"));
oTarget17 = GetObjectByTag("notime4");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("death"));
oTarget17 = GetObjectByTag("death");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("dragon2"));oTarget17 = GetObjectByTag("notime4");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("dragon2"));
oTarget17 = GetObjectByTag("mistress2");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("mistress2"));
oTarget17 = GetObjectByTag("bard2");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("bard2"));
oTarget17 = GetObjectByTag("darcher");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("darcher"));
oTarget17 = GetObjectByTag("beli2");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("beli2"));
oTarget17 = GetObjectByTag("palewarrior3");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("palewarrior3"));
oTarget17 = GetObjectByTag("hdrag2");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("hdrag2"));
oTarget17 = GetObjectByTag("pfiend2");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("pfiend2"));
oTarget17 = GetObjectByTag("horod2");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("horod2"));
oTarget17 = GetObjectByTag("div2");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("div2"));
oTarget17 = GetObjectByTag("pwar3");
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget17));
DestroyObject(GetObjectByTag("pwar3"));
if (GetIsEnemy(oPC, oMonster))
{
oStuff = GetFirstItemInInventory(oMonster);
while(GetIsObjectValid(oStuff))
{
DestroyObject(oStuff);
oStuff = GetNextItemInInventory(oMonster);
}
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oMonster));
DestroyObject(oMonster);
}
}
void Limbo(object oPC)
{
LimboSend(oPC);
DelayCommand(0.5, LimboSend(oPC));
DelayCommand(1.0, LimboSend(oPC));
DelayCommand(1.5, LimboSend(oPC));
//DelayCommand(5.0, CleanArea(oPC));
}
void EradS(object oPC)
{
effect eEffect= EffectDeath();
object oTarget;
object oStuff;
string sRef;
object oPest;
oPest= GetFirstObjectInArea(OBJECT_SELF);
while (GetIsObjectValid(oPest))
{
if ((!GetIsPC(oPest))&&(GetTag(oPest)!="starfall"))
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPest);
}
oPest = GetNextObjectInArea(OBJECT_SELF);
}
}
void Eradicate(object oPC)
{
object oMod = GetModule();
int iStatus = GetLocalInt(oMod, "war_won");
int iTurnFlag = GetLocalInt(oMod, "turn_flag");
int iPCSide = GetLocalInt(oPC, "pc_side");
int iHappy = GetLocalInt(oPC, "iHappy");
int iConvSwitch = GetLocalInt(oPC, "conv_switch");
//FloatingTextStringOnCreature("conv switch: "+IntToString(iConvSwitch), oPC);
//FloatingTextStringOnCreature("war won: "+IntToString(iStatus), oPC);
//FloatingTextStringOnCreature("iHappy: "+IntToString(iHappy), oPC);
if ((iConvSwitch==1)&&(iStatus==1))
{
if (iHappy==1)
{
SetLocalInt(oPC, "iHappy", 0);
AssignCommand(oPC, PlayVoiceChat(VOICE_CHAT_GOODBYE));
GroupThanks(oPC);
DelayCommand(5.0, Limbo(oPC));
SetLocalInt(oMod, "war_won",0);
return;
}
Limbo(oPC);
return;
}
if ((iStatus==1)&&(iTurnFlag!=1)&&(iPCSide!=0))
{
if (iHappy==1)
{
SetLocalInt(oPC, "iHappy", 0);
AssignCommand(oPC, PlayVoiceChat(VOICE_CHAT_GOODBYE));
GroupThanks(oPC);
DelayCommand(5.0, Limbo(oPC));
SetLocalInt(oMod, "war_won",0);
}
else
{
Limbo(oPC);
}
}
else
{
EradS(oPC);
DelayCommand(0.5, EradS(oPC));
DelayCommand(1.0, EradS(oPC));
DelayCommand(1.5, EradS(oPC));
DelayCommand(5.0, CleanArea(oPC));
}
}
//void main (){}