295 lines
9.6 KiB
Plaintext
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 (){}
|