mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 01:37:37 +01:00
*Added missing file
--HG-- branch : trunk
This commit is contained in:
@@ -0,0 +1,643 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Tomb_Of_Seven
|
||||
SD%Complete: 50
|
||||
SDComment: Learning Smelt Dark Iron if tribute quest rewarded. Missing event and re-spawn GO Spectral Chalice
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "def_blackrock_depths.h"
|
||||
|
||||
#define FACTION_NEUTRAL 734
|
||||
#define FACTION_HOSTILE 754
|
||||
|
||||
#define SPELL_SUNDERARMOR 24317
|
||||
#define SPELL_SHIELDBLOCK 12169
|
||||
#define SPELL_STRIKE 15580
|
||||
|
||||
struct TRINITY_DLL_DECL boss_angerrelAI : public ScriptedAI
|
||||
{
|
||||
boss_angerrelAI(Creature *c) : ScriptedAI(c) {Reset();}
|
||||
|
||||
uint32 SunderArmor_Timer;
|
||||
uint32 ShieldBlock_Timer;
|
||||
uint32 Strike_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
SunderArmor_Timer = 8000;
|
||||
ShieldBlock_Timer = 15000;
|
||||
Strike_Timer = 12000;
|
||||
}
|
||||
|
||||
void Aggro(Unit *who)
|
||||
{
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
|
||||
return;
|
||||
|
||||
//SunderArmor_Timer
|
||||
if (SunderArmor_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_SUNDERARMOR);
|
||||
SunderArmor_Timer = 28000;
|
||||
}else SunderArmor_Timer -= diff;
|
||||
|
||||
//ShieldBlock_Timer
|
||||
if (ShieldBlock_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature,SPELL_SHIELDBLOCK);
|
||||
ShieldBlock_Timer = 25000;
|
||||
}else ShieldBlock_Timer -= diff;
|
||||
|
||||
//Strike_Timer
|
||||
if (Strike_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_STRIKE);
|
||||
Strike_Timer = 10000;
|
||||
}else Strike_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_angerrel(Creature *_Creature)
|
||||
{
|
||||
return new boss_angerrelAI (_Creature);
|
||||
}
|
||||
|
||||
#define SPELL_SINISTERSTRIKE 15581
|
||||
#define SPELL_BACKSTAB 15582
|
||||
#define SPELL_GOUGE 13579
|
||||
|
||||
struct TRINITY_DLL_DECL boss_doperelAI : public ScriptedAI
|
||||
{
|
||||
boss_doperelAI(Creature *c) : ScriptedAI(c) {Reset();}
|
||||
|
||||
uint32 SinisterStrike_Timer;
|
||||
uint32 BackStab_Timer;
|
||||
uint32 Gouge_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
SinisterStrike_Timer = 8000;
|
||||
BackStab_Timer = 12000;
|
||||
Gouge_Timer = 6000;
|
||||
}
|
||||
|
||||
void Aggro(Unit *who)
|
||||
{
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
|
||||
return;
|
||||
|
||||
//SinisterStrike_Timer
|
||||
if (SinisterStrike_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_SINISTERSTRIKE);
|
||||
SinisterStrike_Timer = 7000;
|
||||
}else SinisterStrike_Timer -= diff;
|
||||
|
||||
//BackStab_Timer
|
||||
if (BackStab_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_BACKSTAB);
|
||||
BackStab_Timer = 6000;
|
||||
}else BackStab_Timer -= diff;
|
||||
|
||||
//Gouge_Timer
|
||||
if (Gouge_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_GOUGE);
|
||||
Gouge_Timer = 8000;
|
||||
}else Gouge_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_doperel(Creature *_Creature)
|
||||
{
|
||||
return new boss_doperelAI (_Creature);
|
||||
}
|
||||
|
||||
#define SPELL_SHADOWBOLT 17483 //Not sure if right ID
|
||||
#define SPELL_MANABURN 10876
|
||||
#define SPELL_SHADOWSHIELD 22417
|
||||
|
||||
struct TRINITY_DLL_DECL boss_haterelAI : public ScriptedAI
|
||||
{
|
||||
boss_haterelAI(Creature *c) : ScriptedAI(c) {Reset();}
|
||||
|
||||
uint32 ShadowBolt_Timer;
|
||||
uint32 ManaBurn_Timer;
|
||||
uint32 ShadowShield_Timer;
|
||||
uint32 Strike_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
ShadowBolt_Timer = 15000;
|
||||
ManaBurn_Timer = 3000;
|
||||
ShadowShield_Timer = 8000;
|
||||
Strike_Timer = 12000;
|
||||
}
|
||||
|
||||
void Aggro(Unit *who)
|
||||
{
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
|
||||
return;
|
||||
|
||||
//ShadowBolt_Timer
|
||||
if (ShadowBolt_Timer < diff)
|
||||
{
|
||||
Unit* target = NULL;
|
||||
target = SelectUnit(SELECT_TARGET_RANDOM,0);
|
||||
if (target) DoCast(target,SPELL_SHADOWBOLT);
|
||||
ShadowBolt_Timer = 7000;
|
||||
}else ShadowBolt_Timer -= diff;
|
||||
|
||||
//ManaBurn_Timer
|
||||
if (ManaBurn_Timer < diff)
|
||||
{
|
||||
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||
DoCast(target,SPELL_MANABURN);
|
||||
|
||||
ManaBurn_Timer = 13000;
|
||||
}else ManaBurn_Timer -= diff;
|
||||
|
||||
//ShadowShield_Timer
|
||||
if (ShadowShield_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature,SPELL_SHADOWSHIELD);
|
||||
ShadowShield_Timer = 25000;
|
||||
}else ShadowShield_Timer -= diff;
|
||||
|
||||
//Strike_Timer
|
||||
if (Strike_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_STRIKE);
|
||||
Strike_Timer = 10000;
|
||||
}else Strike_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_haterel(Creature *_Creature)
|
||||
{
|
||||
return new boss_haterelAI (_Creature);
|
||||
}
|
||||
|
||||
#define SPELL_MINDBLAST 15587
|
||||
#define SPELL_HEAL 15586
|
||||
#define SPELL_PRAYEROFHEALING 15585
|
||||
#define SPELL_SHIELD 10901
|
||||
|
||||
struct TRINITY_DLL_DECL boss_vilerelAI : public ScriptedAI
|
||||
{
|
||||
boss_vilerelAI(Creature *c) : ScriptedAI(c) {Reset();}
|
||||
|
||||
uint32 MindBlast_Timer;
|
||||
uint32 Heal_Timer;
|
||||
uint32 PrayerOfHealing_Timer;
|
||||
uint32 Shield_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
MindBlast_Timer = 10000;
|
||||
Heal_Timer = 35000;
|
||||
PrayerOfHealing_Timer = 25000;
|
||||
Shield_Timer = 3000;
|
||||
}
|
||||
|
||||
void Aggro(Unit *who)
|
||||
{
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
|
||||
return;
|
||||
|
||||
//MindBlast_Timer
|
||||
if (MindBlast_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_MINDBLAST);
|
||||
MindBlast_Timer = 7000;
|
||||
}else MindBlast_Timer -= diff;
|
||||
|
||||
//Heal_Timer
|
||||
if (Heal_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature,SPELL_HEAL);
|
||||
Heal_Timer = 20000;
|
||||
}else Heal_Timer -= diff;
|
||||
|
||||
//PrayerOfHealing_Timer
|
||||
if (PrayerOfHealing_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature,SPELL_PRAYEROFHEALING);
|
||||
PrayerOfHealing_Timer = 30000;
|
||||
}else PrayerOfHealing_Timer -= diff;
|
||||
|
||||
//Shield_Timer
|
||||
if (Shield_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature,SPELL_SHIELD);
|
||||
Shield_Timer = 30000;
|
||||
}else Shield_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_vilerel(Creature *_Creature)
|
||||
{
|
||||
return new boss_vilerelAI (_Creature);
|
||||
}
|
||||
|
||||
#define SPELL_FROSTBOLT 16799
|
||||
#define SPELL_FROSTARMOR 15784 //This is actually a buff he gives himself
|
||||
#define SPELL_BLIZZARD 19099
|
||||
#define SPELL_FROSTNOVA 15063
|
||||
#define SPELL_FROSTWARD 15004
|
||||
|
||||
struct TRINITY_DLL_DECL boss_seethrelAI : public ScriptedAI
|
||||
{
|
||||
boss_seethrelAI(Creature *c) : ScriptedAI(c) {Reset();}
|
||||
|
||||
uint32 FrostArmor_Timer;
|
||||
uint32 Frostbolt_Timer;
|
||||
uint32 Blizzard_Timer;
|
||||
uint32 FrostNova_Timer;
|
||||
uint32 FrostWard_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
FrostArmor_Timer = 2000;
|
||||
Frostbolt_Timer = 6000;
|
||||
Blizzard_Timer = 18000;
|
||||
FrostNova_Timer = 12000;
|
||||
FrostWard_Timer = 25000;
|
||||
|
||||
m_creature->CastSpell(m_creature,SPELL_FROSTARMOR,true);
|
||||
}
|
||||
|
||||
void Aggro(Unit *who)
|
||||
{
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
|
||||
return;
|
||||
|
||||
//FrostArmor_Timer
|
||||
if (FrostArmor_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature, SPELL_FROSTARMOR);
|
||||
FrostArmor_Timer = 180000;
|
||||
}else FrostArmor_Timer -= diff;
|
||||
|
||||
//Frostbolt_Timer
|
||||
if (Frostbolt_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_FROSTBOLT);
|
||||
Frostbolt_Timer = 15000;
|
||||
}else Frostbolt_Timer -= diff;
|
||||
|
||||
//Blizzard_Timer
|
||||
if (Blizzard_Timer < diff)
|
||||
{
|
||||
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||
DoCast(target,SPELL_BLIZZARD);
|
||||
|
||||
Blizzard_Timer = 22000;
|
||||
}else Blizzard_Timer -= diff;
|
||||
|
||||
//FrostNova_Timer
|
||||
if (FrostNova_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_FROSTNOVA);
|
||||
FrostNova_Timer = 14000;
|
||||
}else FrostNova_Timer -= diff;
|
||||
|
||||
//FrostWard_Timer
|
||||
if (FrostWard_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature,SPELL_FROSTWARD);
|
||||
FrostWard_Timer = 68000;
|
||||
}else FrostWard_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_seethrel(Creature *_Creature)
|
||||
{
|
||||
return new boss_seethrelAI (_Creature);
|
||||
}
|
||||
|
||||
#define SPELL_HAMSTRING 9080
|
||||
#define SPELL_CLEAVE 15579
|
||||
#define SPELL_MORTALSTRIKE 15708
|
||||
|
||||
struct TRINITY_DLL_DECL boss_gloomrelAI : public ScriptedAI
|
||||
{
|
||||
boss_gloomrelAI(Creature *c) : ScriptedAI(c) {Reset();}
|
||||
|
||||
uint32 Hamstring_Timer;
|
||||
uint32 Cleave_Timer;
|
||||
uint32 MortalStrike_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
Hamstring_Timer = 19000;
|
||||
Cleave_Timer = 6000;
|
||||
MortalStrike_Timer = 10000;
|
||||
|
||||
m_creature->setFaction(FACTION_NEUTRAL);
|
||||
}
|
||||
|
||||
void Aggro(Unit *who)
|
||||
{
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!m_creature->SelectHostilTarget() || !m_creature->getVictim() )
|
||||
return;
|
||||
|
||||
//Hamstring_Timer
|
||||
if (Hamstring_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_HAMSTRING);
|
||||
Hamstring_Timer = 14000;
|
||||
}else Hamstring_Timer -= diff;
|
||||
|
||||
//Cleave_Timer
|
||||
if (Cleave_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_CLEAVE);
|
||||
Cleave_Timer = 8000;
|
||||
}else Cleave_Timer -= diff;
|
||||
|
||||
//MortalStrike_Timer
|
||||
if (MortalStrike_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_MORTALSTRIKE);
|
||||
MortalStrike_Timer = 12000;
|
||||
}else MortalStrike_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_gloomrel(Creature *_Creature)
|
||||
{
|
||||
return new boss_gloomrelAI (_Creature);
|
||||
}
|
||||
|
||||
#define GOSSIP_ITEM_TEACH_1 "Teach me the art of smelting dark iron"
|
||||
#define GOSSIP_ITEM_TEACH_2 "Continue..."
|
||||
#define GOSSIP_ITEM_TRIBUTE "I want to pay tribute"
|
||||
|
||||
bool GossipHello_boss_gloomrel(Player *player, Creature *_Creature)
|
||||
{
|
||||
if (player->GetQuestRewardStatus(4083) == 1 && player->GetSkillValue(SKILL_MINING) >= 230 && !player->HasSpell(14891) )
|
||||
player->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_TEACH_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
if (player->GetQuestRewardStatus(4083) == 0 && player->GetSkillValue(SKILL_MINING) >= 230)
|
||||
player->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_TRIBUTE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GossipSelect_boss_gloomrel(Player *player, Creature *_Creature, uint32 sender, uint32 action )
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_TEACH_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
player->SEND_GOSSIP_MENU(2606, _Creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+11:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
_Creature->CastSpell(player, 14894, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(0, "[PH] Continue...", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
|
||||
player->SEND_GOSSIP_MENU(2604, _Creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+22:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
//re-spawn object here
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#define SPELL_SHADOWBOLTVOLLEY 17228
|
||||
#define SPELL_IMMOLATE 15505
|
||||
#define SPELL_CURSEOFWEAKNESS 17227
|
||||
#define SPELL_DEMONARMOR 11735
|
||||
|
||||
struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
|
||||
{
|
||||
boss_doomrelAI(Creature *c) : ScriptedAI(c) {Reset();}
|
||||
|
||||
uint32 ShadowVolley_Timer;
|
||||
uint32 Immolate_Timer;
|
||||
uint32 CurseOfWeakness_Timer;
|
||||
uint32 DemonArmor_Timer;
|
||||
bool Voidwalkers;
|
||||
int Rand;
|
||||
int RandX;
|
||||
int RandY;
|
||||
Creature* Summoned;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
ShadowVolley_Timer = 10000;
|
||||
Immolate_Timer = 18000;
|
||||
CurseOfWeakness_Timer = 5000;
|
||||
DemonArmor_Timer = 16000;
|
||||
Voidwalkers = false;
|
||||
|
||||
m_creature->setFaction(FACTION_NEUTRAL);
|
||||
}
|
||||
|
||||
void Aggro(Unit *who)
|
||||
{
|
||||
}
|
||||
|
||||
void SummonVoidwalkers(Unit* victim)
|
||||
{
|
||||
Rand = rand()%5;
|
||||
switch (rand()%2)
|
||||
{
|
||||
case 0: RandX = 0 - Rand; break;
|
||||
case 1: RandX = 0 + Rand; break;
|
||||
}
|
||||
Rand = 0;
|
||||
Rand = rand()%5;
|
||||
switch (rand()%2)
|
||||
{
|
||||
case 0: RandY = 0 - Rand; break;
|
||||
case 1: RandY = 0 + Rand; break;
|
||||
}
|
||||
Rand = 0;
|
||||
Summoned = DoSpawnCreature(16119, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
|
||||
if(Summoned)
|
||||
((CreatureAI*)Summoned->AI())->AttackStart(victim);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!m_creature->SelectHostilTarget() || !m_creature->getVictim() )
|
||||
return;
|
||||
|
||||
//ShadowVolley_Timer
|
||||
if (ShadowVolley_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_SHADOWBOLTVOLLEY);
|
||||
ShadowVolley_Timer = 12000;
|
||||
}else ShadowVolley_Timer -= diff;
|
||||
|
||||
//Immolate_Timer
|
||||
if (Immolate_Timer < diff)
|
||||
{
|
||||
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||
DoCast(target,SPELL_IMMOLATE);
|
||||
|
||||
Immolate_Timer = 25000;
|
||||
}else Immolate_Timer -= diff;
|
||||
|
||||
//CurseOfWeakness_Timer
|
||||
if (CurseOfWeakness_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_CURSEOFWEAKNESS);
|
||||
CurseOfWeakness_Timer = 45000;
|
||||
}else CurseOfWeakness_Timer -= diff;
|
||||
|
||||
//DemonArmor_Timer
|
||||
if (DemonArmor_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature,SPELL_DEMONARMOR);
|
||||
DemonArmor_Timer = 300000;
|
||||
}else DemonArmor_Timer -= diff;
|
||||
|
||||
//Summon Voidwalkers
|
||||
if (!Voidwalkers && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 51 )
|
||||
{
|
||||
SummonVoidwalkers(m_creature->getVictim());
|
||||
SummonVoidwalkers(m_creature->getVictim());
|
||||
SummonVoidwalkers(m_creature->getVictim());
|
||||
Voidwalkers = true;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_doomrel(Creature *_Creature)
|
||||
{
|
||||
return new boss_doomrelAI (_Creature);
|
||||
}
|
||||
|
||||
#define GOSSIP_ITEM_CHALLENGE "Your bondage is at an end, Doom'rel. I challenge you!"
|
||||
|
||||
bool GossipHello_boss_doomrel(Player *player, Creature *_Creature)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_CHALLENGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(2601, _Creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GossipSelect_boss_doomrel(Player *player, Creature *_Creature, uint32 sender, uint32 action )
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM( 0, "[PH] Continue...", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->SEND_GOSSIP_MENU(2605, _Creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
//start event here, below code just temporary
|
||||
_Creature->setFaction(FACTION_HOSTILE);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void AddSC_boss_tomb_of_seven()
|
||||
{
|
||||
Script *newscript;
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "boss_angerrel";
|
||||
newscript->GetAI = &GetAI_boss_angerrel;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "boss_doperel";
|
||||
newscript->GetAI = &GetAI_boss_doperel;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "boss_haterel";
|
||||
newscript->GetAI = &GetAI_boss_haterel;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "boss_vilerel";
|
||||
newscript->GetAI = &GetAI_boss_vilerel;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "boss_seethrel";
|
||||
newscript->GetAI = &GetAI_boss_seethrel;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "boss_gloomrel";
|
||||
newscript->GetAI = &GetAI_boss_gloomrel;
|
||||
newscript->pGossipHello = &GossipHello_boss_gloomrel;
|
||||
newscript->pGossipSelect = &GossipSelect_boss_gloomrel;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "boss_doomrel";
|
||||
newscript->GetAI = &GetAI_boss_doomrel;
|
||||
newscript->pGossipHello = &GossipHello_boss_doomrel;
|
||||
newscript->pGossipSelect = &GossipSelect_boss_doomrel;
|
||||
newscript->RegisterSelf();
|
||||
}
|
||||
Reference in New Issue
Block a user