#include "nw_i0_generic" #include "spawner" void main() { // Initialise variables & objects object oPC = GetPCSpeaker(); object oMod = GetModule(); object oPC2; object oTarget; object oTarget2; object oSpawn; int iW1,iW2,iW3,iW4,iW5,iW6,iW7,iW8,iW9,iW10,iW11,iW12, iL1,iL2,iL3,iL4,iL5,iL6,iL7,iL8,iL9,iL10; location lTarget; location bTarget; string sHench; int nInt; string sPRes; string sPRes2; int iDice; int iFlag1=0; int iFlag2=0; int iFlag3=0; int iFlag4=0; int iBetConfirm = GetLocalInt(oPC, "bet_confirmed"); if (iBetConfirm!=1) { SetLocalInt(oPC, "wager", 0); SetLocalInt(oPC, "team_bet", 0); //SetLocalInt(oPC, "winnings",0); } //SetLocalInt(oPC, "npc_duel", 1); // Set Holy War mode ON SetLocalInt(oMod, "hwar_on", 1); SetLocalInt(oMod, "war_won", 0); SetLocalInt(oPC, "champ_won", 0); SetLocalInt(oMod, "iFireFlag", 0); SetLocalInt(oMod, "turn_flag", 0); SetLocalInt(oMod, "iDfire", 1); // Flag all monsters as being in the arena SetLocalInt(oMod, "sw_hw", 1); SetLocalInt(oMod, "sw_dr", 1); SetLocalInt(oMod, "sw_bl", 1); SetLocalInt(oMod, "sw_pf", 1); SetLocalInt(oMod, "sw_df", 1); SetLocalInt(oMod, "sw_pm", 1); SetLocalInt(oMod, "sw_bm", 1); SetLocalInt(oMod, "sw_lm", 1); SetLocalInt(oMod, "sw_ll", 1); SetLocalInt(oMod, "sw_xx", 1); // Reset scoreboard death status SetLocalString(oMod, "notime4_x", ""); SetLocalString(oMod, "death_x", ""); SetLocalString(oMod, "notime3_x", ""); SetLocalString(oMod, "mistress2_x", ""); SetLocalString(oMod, "zep_marilithb001_x", ""); SetLocalString(oMod, "bard2_x", ""); SetLocalString(oMod, "zep_halfdrafn001_x", ""); SetLocalString(oMod, "zep_pitfiend001_x", ""); SetLocalString(oMod, "dopple_x", ""); SetLocalString(oMod, "zep_balrog001_x", ""); SetLocalString(oMod, "dragon1_x", ""); SetLocalString(oMod, "darcher_x", ""); SetLocalString(oMod, "notime2_x", ""); SetLocalString(oMod, "notime1_x", ""); SetLocalString(oMod, "boss002_x", ""); SetLocalString(oMod, "beli2_x", ""); SetLocalString(oMod, "pwar3_x", ""); SetLocalString(oMod, "hdrag2_x", ""); SetLocalString(oMod, "pfiend2_x", ""); SetLocalString(oMod, "horod2_x", ""); SetLocalString(oMod, "div2_x", ""); SetLocalString(oMod, "dragon2_x", ""); // Reset match champion flag and kill comparative SetLocalInt(oMod, "notime4_ch", 0); SetLocalInt(oMod, "death_ch", 0); SetLocalInt(oMod, "notime3_ch", 0); SetLocalInt(oMod, "mistress2_ch", 0); SetLocalInt(oMod, "zep_marilithb001_ch", 0); SetLocalInt(oMod, "bard2_ch", 0); SetLocalInt(oMod, "zep_halfdrafn001_ch", 0); SetLocalInt(oMod, "zep_pitfiend001_ch", 0); SetLocalInt(oMod, "dopple_ch", 0); SetLocalInt(oMod, "zep_balrog001_ch", 0); SetLocalInt(oMod, "dragon1_ch", 0); SetLocalInt(oMod, "darcher_ch", 0); SetLocalInt(oMod, "notime2_ch", 0); SetLocalInt(oMod, "notime1_ch", 0); SetLocalInt(oMod, "boss002_ch", 0); SetLocalInt(oMod, "beli2_ch", 0); SetLocalInt(oMod, "pwar3_ch", 0); SetLocalInt(oMod, "hdrag2_ch", 0); SetLocalInt(oMod, "pfiend2_ch", 0); SetLocalInt(oMod, "horod2_ch", 0); SetLocalInt(oMod, "div2_ch", 0); SetLocalInt(oMod, "dragon2_ch", 0); SetLocalInt(oMod, "notime4_HWk", 0); SetLocalInt(oMod, "death_HWk", 0); SetLocalInt(oMod, "notime3_HWk", 0); SetLocalInt(oMod, "mistress2_HWk", 0); SetLocalInt(oMod, "zep_marilithb001_HWk", 0); SetLocalInt(oMod, "bard2_HWk", 0); SetLocalInt(oMod, "zep_halfdrafn001_HWk", 0); SetLocalInt(oMod, "zep_pitfiend001_HWk", 0); SetLocalInt(oMod, "dopple_HWk", 0); SetLocalInt(oMod, "zep_balrog001_HWk", 0); SetLocalInt(oMod, "dragon1_HWk", 0); SetLocalInt(oMod, "darcher_HWk", 0); SetLocalInt(oMod, "notime2_HWk", 0); SetLocalInt(oMod, "notime1_HWk", 0); SetLocalInt(oMod, "boss002_HWk", 0); SetLocalInt(oMod, "beli2_HWk", 0); SetLocalInt(oMod, "pwar3_HWk", 0); SetLocalInt(oMod, "hdrag2_HWk", 0); SetLocalInt(oMod, "pfiend2_HWk", 0); SetLocalInt(oMod, "horod2_HWk", 0); SetLocalInt(oMod, "div2_HWk", 0); SetLocalInt(oMod, "dragon2_HWk", 0); // Reset Match Champ stats SetLocalString(oMod, "sChamp", ""); SetLocalInt(oMod, "champ_count", 0); SetLocalInt(oMod, "MostKills", 0); SetLocalInt(oPC, "iHappy", 0); // Reset team casualties SetLocalInt(oMod, "hell_cas", 0); SetLocalInt(oMod, "heav_cas", 0); // Reset exploit flag SetLocalInt(oMod, "xcheck", 0); SetLocalInt(oMod, "iDfire", 0); // Reset disabled options in spawner convo SetLocalInt(oMod, "scre_state", 0); SetLocalInt(oMod, "scre2_state", 0); SetLocalInt(oMod, "scre_state3", 0); SetLocalInt(oMod, "scre_state4", 0); SetLocalInt(oMod, "scre_state5", 0); // reset the player allegiance flags oPC2 = GetFirstPC(); while (GetIsObjectValid(oPC2)) { sPRes2 = GetResRef(oPC); sPRes2+="_HWd"; sPRes = GetResRef(oPC); sPRes+="_HWk"; SetLocalInt(oMod, sPRes, 0); SetLocalInt(oMod, sPRes2, 0); SetLocalInt(oPC2, "pc_HWdam", 0); SetLocalInt(oPC2, "pc_HWhit", 0); SetLocalInt(oPC2, "pc_side", 0); SetLocalInt(oPC2, "join_switch", 0); SetLocalInt(oPC2, "champ_won", 0); RemoveJournalQuestEntry("war_hell", oPC2, TRUE, TRUE); RemoveJournalQuestEntry("war_heav", oPC2, TRUE, TRUE); SetLocalInt(oPC2, "pc_HWswing", 0); oPC2 = GetNextPC(); } // Reset war victory journal entry RemoveJournalQuestEntry("war_hell", oPC, TRUE, TRUE); RemoveJournalQuestEntry("war_heav", oPC, TRUE, TRUE); // Lock arena gate oTarget = GetObjectByTag("arena_gate"); SetLocked(oTarget, TRUE); // Move PC out of the battle oTarget = GetWaypointByTag("safe_wp"); lTarget = GetLocation(oTarget); AssignCommand(oPC, ClearAllActions()); AssignCommand(oPC, ActionJumpToLocation(lTarget)); CastPC(0.2, SPELL_ETHEREALNESS, oPC); // Set up spawnpoints oTarget2 = GetWaypointByTag("big_wp"); lTarget = GetLocation(oTarget); bTarget = GetLocation(oTarget2); oTarget = GetWaypointByTag("monster_wp"); lTarget = GetLocation(oTarget); // Spawn Dark team iDice = d12(); switch (iDice) { case 1:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "dragon1", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW1=1;}break; case 2:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "zep_halfdrafn001", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW2=1;}break; case 3:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "zep_marilithb001", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW3=1;}break; case 4:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "bard2", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW4=1;}break; case 5:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "zep_pitfiend001", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW5=1;}break; case 6:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "zep_balrog001", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW6=1;}break; case 7:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "dopple", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW7=1;}break; case 8:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "mistress2", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW8=1;}break; case 9:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "notime3", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW9=1;}break; case 10:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "notime4", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW10=1;}break; case 11:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "darcher", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW11=1;}break; case 12:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "death", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iW12=1;}break; } while (iFlag1==0) { iDice = d12(); switch (iDice) { case 1:{ if (iW1!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "dragon1", bTarget); iW1=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 2:{ if (iW2!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "zep_halfdrafn001", bTarget); iW2=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 3:{if (iW3!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "zep_marilithb001", bTarget); iW3=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 4:{if (iW4!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "bard2", bTarget); iW4=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 5:{if (iW5!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "zep_pitfiend001", lTarget); iW5=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 6:{if (iW6!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "zep_balrog001", lTarget); iW6=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 7:{if (iW7!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "dopple", lTarget); iW7=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 8:{if (iW8!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "mistress2", lTarget); iW8=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 9:{if (iW9!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "notime3", lTarget); iW9=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 10:{if (iW10!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "notime4", lTarget); iW10=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 11:{if (iW11!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "darcher", lTarget); iW11=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 12:{if (iW12!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "death", lTarget); iW12=1; iFlag1=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; } } while (iFlag2==0) { iDice = d12(); switch (iDice) { case 1:{ if (iW1!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "dragon1", bTarget); iW1=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 2:{ if (iW2!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "zep_halfdrafn001", bTarget); iW2=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 3:{if (iW3!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "zep_marilithb001", bTarget); iW3=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 4:{if (iW4!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "bard2", bTarget); iW4=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 5:{if (iW5!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "zep_pitfiend001", lTarget); iW5=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 6:{if (iW6!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "zep_balrog001", lTarget); iW6=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 7:{if (iW7!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "dopple", lTarget); iW7=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 8:{if (iW8!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "mistress2", lTarget); iW8=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 9:{if (iW9!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "notime3", lTarget); iW9=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 10:{if (iW10!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "notime4", lTarget); iW10=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 11:{if (iW11!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "darcher", lTarget); iW11=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 12:{if (iW12!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "death", lTarget); iW12=1; iFlag2=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; } } // Set up spawnpoints oTarget2 = GetWaypointByTag("big_wp2"); lTarget = GetLocation(oTarget); bTarget = GetLocation(oTarget2); oTarget = GetWaypointByTag("monster_wp2"); lTarget = GetLocation(oTarget); // spawn light team iDice = d10(); switch (iDice) { case 1:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "notime2", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iL1=1;}break; case 2:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "div2", lTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iL2=1;}break; case 3:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "horod2", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iL3=1;}break; case 4:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "pfiend2", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iL4=1;}break; case 5:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "hdrag2", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iL5=1;}break; case 6:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "pwar3", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iL6=1;}break; case 7:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "beli2", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iL7=1;}break; case 8:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "boss002", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iL8=1;}break; case 9:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "notime1", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iL9=1;}break; case 10:{oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "dragon2", bTarget); /*SetIsTemporaryEnemy(oPC, oSpawn);*/iL10=1;}break; } while (iFlag3==0) { iDice = d10(); switch (iDice) { case 1:{if (iL1!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "notime2", lTarget); iL1=1; iFlag3=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 2:{if (iL2!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "div2", lTarget); iL2=1; iFlag3=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 3:{if (iL3!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "horod2", lTarget); iL3=1; iFlag3=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 4:{if (iL4!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "pfiend2", lTarget); iL4=1; iFlag3=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 5:{if (iL5!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "hdrag2", lTarget); iL5=1; iFlag3=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 6:{if (iL6!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "pwar3", lTarget); iL6=1; iFlag3=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 7:{if (iL7!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "beli2", lTarget); iL7=1; iFlag3=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 8:{if (iL8!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "boss002", lTarget); iL8=1; iFlag3=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 9:{if (iL9!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "notime1", lTarget); iL9=1; iFlag3=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 10:{if (iL10!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "dragon2", lTarget); iL10=1; iFlag3=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; } } while (iFlag4==0) { iDice = d10(); switch (iDice) { case 1:{if (iL1!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "notime2", lTarget); iL1=1; iFlag4=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 2:{if (iL2!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "div2", lTarget); iL2=1; iFlag4=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 3:{if (iL3!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "horod2", lTarget); iL3=1; iFlag4=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 4:{if (iL4!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "pfiend2", lTarget); iL4=1; iFlag4=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 5:{if (iL5!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "hdrag2", lTarget); iL5=1; iFlag4=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 6:{if (iL6!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "pwar3", lTarget); iL6=1; iFlag4=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 7:{if (iL7!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "beli2", lTarget); iL7=1; iFlag4=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 8:{if (iL8!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "boss002", lTarget); iL8=1; iFlag4=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 9:{if (iL9!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "notime1", lTarget); iL9=1; iFlag4=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; case 10:{if (iL10!=1) { oSpawn = CreateObject (OBJECT_TYPE_CREATURE, "dragon2", lTarget); iL10=1; iFlag4=1; /*SetIsTemporaryEnemy(oPC, oSpawn);*/ } }break; } } DelayCommand(3.0, JoinBackedTeam(oPC)); // Spawn Effect nInt = GetObjectType(oTarget); if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), oTarget)); else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), GetLocation(oTarget))); }