aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormaximius <none@none>2009-09-26 16:01:30 -0700
committermaximius <none@none>2009-09-26 16:01:30 -0700
commit7396b641ae82adcf5afd2591957ff944b7964203 (patch)
treeb6d54ca311e779ae4e77b569b9a367dc26a4938a /src
parentff3f556423bc90f8476c8b09bacb60cd621b2664 (diff)
*Gundrak: GO Handling & Slad Ran script by Tartalo
*Cleanup, and don't consider creatures to be in combat if they have no victim, or if their victim is a GM. --HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/boss_drakkari_colossus.cpp37
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp37
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/boss_gal_darah.cpp74
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp14
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp207
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/def_gundrak.h16
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp303
-rw-r--r--src/bindings/scripts/system/ScriptLoader.cpp21
-rw-r--r--src/game/Creature.cpp3
-rw-r--r--src/game/CreatureEventAIMgr.cpp8
-rw-r--r--src/game/DynamicObject.cpp14
-rw-r--r--src/game/Level3.cpp55
-rw-r--r--src/game/Unit.cpp2
13 files changed, 664 insertions, 127 deletions
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_drakkari_colossus.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_drakkari_colossus.cpp
index 4d18ad6ba7c..dcfaf33b66a 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/boss_drakkari_colossus.cpp
+++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_drakkari_colossus.cpp
@@ -10,6 +10,7 @@ Script Data End */
update creature_template set scriptname = '' where entry = '';
*** SQL END ***/
#include "precompiled.h"
+#include "def_gundrak.h"
//Spells
#define SPELL_EMERGE 54850 //to phase2, Colossus unatackable, Elemental emerges
@@ -18,25 +19,39 @@ update creature_template set scriptname = '' where entry = '';
struct TRINITY_DLL_DECL boss_drakkari_colossusAI : public ScriptedAI
{
- boss_drakkari_colossusAI(Creature *c) : ScriptedAI(c) {}
-
- uint32 phase;
+ boss_drakkari_colossusAI(Creature *c) : ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
+
+ ScriptedInstance* pInstance;
- void Reset() {}
- void EnterCombat(Unit* who) {}
- void AttackStart(Unit* who) {}
- void MoveInLineOfSight(Unit* who) {}
+ void Reset()
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, NOT_STARTED);
+ }
+
+ void EnterCombat(Unit* who)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, IN_PROGRESS);
+ }
+
void UpdateAI(const uint32 diff)
{
//Return since we have no target
if (!UpdateVictim())
return;
-
- phase =1;
-
+
DoMeleeAttackIfReady();
}
- void JustDied(Unit* killer) {}
+
+ void JustDied(Unit* killer)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, DONE);
+ }
};
CreatureAI* GetAI_boss_drakkari_colossus(Creature* pCreature)
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp
index 8c72de6c9ad..241570fa0ed 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp
+++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp
@@ -10,6 +10,7 @@ Script Data End */
update creature_template set scriptname = '' where entry = '';
*** SQL END ***/
#include "precompiled.h"
+#include "def_gundrak.h"
#define SPELL_ECK_BERSERK 55816 //Eck goes berserk, increasing his attack speed by 150% and all damage he deals by 500%.
#define SPELL_ECK_BITE 55813 //Eck bites down hard, inflicting 150% of his normal damage to an enemy.
@@ -19,34 +20,50 @@ update creature_template set scriptname = '' where entry = '';
struct TRINITY_DLL_DECL boss_eckAI : public ScriptedAI
{
- boss_eckAI(Creature *c) : ScriptedAI(c) {}
+ boss_eckAI(Creature *c) : ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
- uint32 berserk;
+ uint32 uiBerserkTimer;
+
+ ScriptedInstance* pInstance;
void Reset()
{
//Source Deadly Boss Mod
- berserk = 120000; //2min
+ uiBerserkTimer = 120000; //2min
+
+ if (pInstance)
+ pInstance->SetData(DATA_ECK_THE_FEROCIOUS_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* who) {}
- void AttackStart(Unit* who) {}
- void MoveInLineOfSight(Unit* who) {}
+ void EnterCombat(Unit* who)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_ECK_THE_FEROCIOUS_EVENT, IN_PROGRESS);
+ }
+
void UpdateAI(const uint32 diff)
{
//Return since we have no target
if (!UpdateVictim())
return;
- if (berserk < diff)
+ if (uiBerserkTimer < diff)
{
DoCast(m_creature,SPELL_ECK_BERSERK);
- berserk = 120000;
- }else berserk -= diff;
+ uiBerserkTimer = 120000;
+ }else uiBerserkTimer -= diff;
DoMeleeAttackIfReady();
}
- void JustDied(Unit* killer) {}
+
+ void JustDied(Unit* killer)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_ECK_THE_FEROCIOUS_EVENT, DONE);
+ }
};
CreatureAI* GetAI_boss_eck(Creature* pCreature)
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_gal_darah.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_gal_darah.cpp
index b2462a32931..123a2b1ccc6 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/boss_gal_darah.cpp
+++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_gal_darah.cpp
@@ -10,40 +10,58 @@ Script Data End */
update creature_template set scriptname = '' where entry = '';
*** SQL END ***/
#include "precompiled.h"
+#include "def_gundrak.h"
//Spells
-#define SPELL_ENRAGE 55285
-#define SPELL_IMPALING_CHARGE 54956
-#define SPELL_STOMP 55292
-
-#define SPELL_PUNCTURE 55276
-#define SPELL_STAMPEDE 55218
-#define SPELL_WHIRLING_SLASH 55285
+enum Spells
+{
+ SPELL_ENRAGE = 55285,
+ SPELL_IMPALING_CHARGE = 54956,
+ SPELL_STOMP = 55292,
+ SPELL_PUNCTURE = 55276,
+ SPELL_STAMPEDE = 55218,
+ SPELL_WHIRLING_SLASH = 55249,
+ H_SPELL_WHIRLING_SLASH = 55825
+};
-//not in db
//Yells
-#define SAY_AGGRO -1604000
-#define SAY_SLAY_1 -1604001
-#define SAY_SLAY_2 -1604002
-#define SAY_SLAY_3 -1604003
-#define SAY_DEATH -1604004
-#define SAY_SUMMON_RHINO_1 -1604005
-#define SAY_SUMMON_RHINO_2 -1604006
-#define SAY_SUMMON_RHINO_3 -1604007
-#define SAY_TRANSFORM_1 -1604008 //Phase change
-#define SAY_TRANSFORM_2 -1604009
+enum Yells
+{
+ SAY_AGGRO = -1604000,
+ SAY_SLAY_1 = -1604001,
+ SAY_SLAY_2 = -1604002,
+ SAY_SLAY_3 = -1604003,
+ SAY_DEATH = -1604004,
+ SAY_SUMMON_RHINO_1 = -1604005,
+ SAY_SUMMON_RHINO_2 = -1604006,
+ SAY_SUMMON_RHINO_3 = -1604007,
+ SAY_TRANSFORM_1 = -1604008, //Phase change
+ SAY_TRANSFORM_2 = -1604009
+};
struct TRINITY_DLL_DECL boss_gal_darahAI : public ScriptedAI
{
- boss_gal_darahAI(Creature *c) : ScriptedAI(c) {}
+ boss_gal_darahAI(Creature *c) : ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
+
+ ScriptedInstance* pInstance;
- void Reset() {}
+ void Reset()
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_GAL_DARAH_EVENT, NOT_STARTED);
+ }
+
void EnterCombat(Unit* who)
{
DoScriptText(SAY_AGGRO, m_creature);
+
+ if (pInstance)
+ pInstance->SetData(DATA_GAL_DARAH_EVENT, IN_PROGRESS);
}
- void AttackStart(Unit* who) {}
- void MoveInLineOfSight(Unit* who) {}
+
void UpdateAI(const uint32 diff)
{
//Return since we have no target
@@ -52,21 +70,21 @@ struct TRINITY_DLL_DECL boss_gal_darahAI : public ScriptedAI
DoMeleeAttackIfReady();
}
+
void JustDied(Unit* killer)
{
DoScriptText(SAY_DEATH, m_creature);
+
+ if (pInstance)
+ pInstance->SetData(DATA_GAL_DARAH_EVENT, DONE);
}
+
void KilledUnit(Unit *victim)
{
if (victim == m_creature)
return;
- switch(rand()%3)
- {
- case 0: DoScriptText(SAY_SLAY_1, m_creature);break;
- case 1: DoScriptText(SAY_SLAY_2, m_creature);break;
- case 2: DoScriptText(SAY_SLAY_3, m_creature);break;
- }
+ DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2,SAY_SLAY_3), m_creature);
}
};
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp
index 3e0408fca90..dcf7bde6e41 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp
+++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp
@@ -7,6 +7,7 @@ SDCategory: Gundrak
Script Data End */
#include "precompiled.h"
+#include "def_gundrak.h"
//Spells
@@ -38,10 +39,10 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI
{
boss_moorabiAI(Creature *c) : ScriptedAI(c)
{
- HeroicMode = c->GetMap()->IsHeroic();
+ pInstance = c->GetInstanceData();
}
- bool HeroicMode;
+ ScriptedInstance* pInstance;
bool Phase;
uint32 SPELL_QUAKE_TIMER;
uint32 SPELL_NUMBING_SHOUT_TIMER;
@@ -56,12 +57,18 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI
SPELL_DETERMINED_STAB_TIMER = 20000;
SPELL_TRANSFORMATION_TIMER = 12000;
Phase = false;
+
+ if (pInstance)
+ pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, NOT_STARTED);
}
void EnterCombat(Unit *who)
{
DoScriptText(SAY_AGGRO, m_creature);
m_creature->CastSpell(m_creature,SPELL_MOJO_FRENZY,true);
+
+ if (pInstance)
+ pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, IN_PROGRESS);
}
void UpdateAI(const uint32 diff)
@@ -149,6 +156,9 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI
}
}
}
+
+ if (pInstance)
+ pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, DONE);
}
void KilledUnit(Unit *victim)
{
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp
index e2ef3ab6713..3dd0b651de1 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp
+++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp
@@ -10,73 +10,196 @@ Script Data End */
update creature_template set scriptname = 'boss_slad_ran' where entry = '';
*** SQL END ***/
#include "precompiled.h"
+#include "def_gundrak.h"
//Spells
-#define SPELL_POISON_NOVA 55081
-#define SPELL_POISON_NOVA_2 59842
-//--
-#define SPELL_POWERFUL_BITE 48287
-#define SPELL_POWERFUL_BITE_2 59840
-//--
-#define SPELL_VENOM_BOLT 54970
-#define SPELL_VENOM_BOLT_2 59839
-//At 30% HPStart summoning small serpents
-
-//not in db
+enum Spells
+{
+ SPELL_POISON_NOVA = 55081,
+ H_SPELL_POISON_NOVA = 59842,
+ SPELL_POWERFULL_BITE = 48287,
+ H_SPELL_POWERFULL_BITE = 59840,
+ SPELL_VENOM_BOLT = 54970,
+ H_SPELL_VENOM_BOLT = 59839
+};
+
//Yell
-#define SAY_AGGRO -1604017
-#define SAY_SLAY_1 -1604018
-#define SAY_SLAY_2 -1604019
-#define SAY_SLAY_3 -1604020
-#define SAY_DEATH -1604021
-#define SAY_SUMMON_SNAKES -1604022 //npc 29680
-#define SAY_SUMMON_CONSTRICTORS -1604023 //npc 29713, can cast Grip of Slad'ran (spell 55093)
+enum Yells
+{
+ SAY_AGGRO = -1604017,
+ SAY_SLAY_1 = -1604018,
+ SAY_SLAY_2 = -1604019,
+ SAY_SLAY_3 = -1604020,
+ SAY_DEATH = -1604021,
+ SAY_SUMMON_SNAKES = -1604022,
+ SAY_SUMMON_CONSTRICTORS = -1604023
+};
+
+//Creatures
+enum Creatures
+{
+ CREATURE_SNAKE = 29680,
+ CREATURE_CONSTRICTORS = 29713
+};
+
+//Creatures' spells
+enum ConstrictorSpells
+{
+ SPELL_GRIP_OF_SLAD_RAN = 55093,
+ SPELL_VENOMOUS_BITE = 54987,
+ H_SPELL_VENOMOUS_BITE = 58996
+};
struct TRINITY_DLL_DECL boss_slad_ranAI : public ScriptedAI
{
- boss_slad_ranAI(Creature *c) : ScriptedAI(c) {}
+ boss_slad_ranAI(Creature *c) : ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
+
+ uint32 uiPoisonNovaTimer;
+ uint32 uiPowerfullBiteTimer;
+ uint32 uiVenomBoltTimer;
+ uint32 uiSpawnTimer;
+
+ uint8 uiPhase;
- void Reset() {}
+ ScriptedInstance* pInstance;
+
+ void Reset()
+ {
+ uiPoisonNovaTimer = 10000;
+ uiPowerfullBiteTimer = 3000;
+ uiVenomBoltTimer = 15000;
+ uiSpawnTimer = 5000;
+ uiPhase = 0;
+
+ if (pInstance)
+ pInstance->SetData(DATA_SLAD_RAN_EVENT, NOT_STARTED);
+ }
+
void EnterCombat(Unit* who)
{
DoScriptText(SAY_AGGRO, m_creature);
+
+ if (pInstance)
+ pInstance->SetData(DATA_SLAD_RAN_EVENT, IN_PROGRESS);
}
- void AttackStart(Unit* who) {}
- void MoveInLineOfSight(Unit* who) {}
+
void UpdateAI(const uint32 diff)
{
//Return since we have no target
if (!UpdateVictim())
return;
+
+ if (uiPoisonNovaTimer < diff)
+ {
+ DoCast(m_creature->getVictim(), HeroicMode ? H_SPELL_POISON_NOVA : SPELL_POISON_NOVA);
+ uiPoisonNovaTimer = 15000;
+ } else uiPoisonNovaTimer -= diff;
+
+ if (uiPowerfullBiteTimer < diff)
+ {
+ DoCast(m_creature->getVictim(), HeroicMode ? H_SPELL_POWERFULL_BITE : SPELL_POWERFULL_BITE);
+ uiPowerfullBiteTimer = 10000;
+ } else uiPowerfullBiteTimer -= diff;
+
+ if (uiVenomBoltTimer < diff)
+ {
+ DoCast(m_creature->getVictim(), HeroicMode ? H_SPELL_VENOM_BOLT : SPELL_VENOM_BOLT);
+ uiVenomBoltTimer = 10000;
+ } else uiVenomBoltTimer -= diff;
+
+ if (uiPhase)
+ {
+ if(uiSpawnTimer < diff)
+ {
+ if (uiPhase == 1)
+ for (uint8 i = 0;i< HeroicMode ? 5 : 3;++i)
+ m_creature->SummonCreature(CREATURE_SNAKE, rand()%5, rand()%5, 0, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
+ if (uiPhase == 2)
+ for (uint8 i = 0;i< HeroicMode ? 5 : 3;++i)
+ m_creature->SummonCreature(CREATURE_CONSTRICTORS, rand()%5, rand()%5, 0, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
+ uiSpawnTimer = 5000;
+ } else uiSpawnTimer -= diff;
+ }
- if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 30)
+ if ((uiPhase == 0) && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 30)
{
- //Summon 3 snakes --> npc 29680
DoScriptText(SAY_SUMMON_SNAKES,m_creature);
+ uiPhase = 1;
}
- if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25)
+ if ((uiPhase == 1) && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25)
{
- //Summon 3 constrictors --> npc 29713
DoScriptText(SAY_SUMMON_CONSTRICTORS,m_creature);
+ uiPhase = 2;
}
DoMeleeAttackIfReady();
}
+
void JustDied(Unit* killer)
{
DoScriptText(SAY_DEATH, m_creature);
+
+ if (pInstance)
+ pInstance->SetData(DATA_SLAD_RAN_EVENT, DONE);
}
+
void KilledUnit(Unit *victim)
{
- if (victim == m_creature)
+ DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2,SAY_SLAY_3), m_creature);
+ }
+};
+
+struct TRINITY_DLL_DECL mob_slad_ran_constrictorAI : public ScriptedAI
+{
+ mob_slad_ran_constrictorAI(Creature *c) : ScriptedAI(c) {}
+
+ uint32 uiGripOfSladRanTimer;
+
+ void Reset()
+ {
+ uiGripOfSladRanTimer = 1000;
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!UpdateVictim())
return;
+ if (uiGripOfSladRanTimer < diff)
+ {
+ DoCast(m_creature->getVictim(), SPELL_GRIP_OF_SLAD_RAN);
+ uiGripOfSladRanTimer = 5000;
+ } else uiGripOfSladRanTimer -= diff;;
+ }
+
+ ScriptedInstance* pInstance;
+};
- switch(rand()%3)
+struct TRINITY_DLL_DECL mob_slad_ran_viperAI : public ScriptedAI
+{
+ mob_slad_ran_viperAI(Creature *c) : ScriptedAI(c) {}
+
+ uint32 uiVenomousBiteTimer;
+
+ ScriptedInstance* pInstance;
+
+ void Reset()
+ {
+ uiVenomousBiteTimer = 2000;
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!UpdateVictim())
+ return;
+
+ if (uiVenomousBiteTimer < diff)
{
- case 0:DoScriptText(SAY_SLAY_1, m_creature);break;
- case 1:DoScriptText(SAY_SLAY_2, m_creature);break;
- case 2:DoScriptText(SAY_SLAY_3, m_creature);break;
- }
+ DoCast(m_creature->getVictim(), HeroicMode ? H_SPELL_VENOMOUS_BITE : SPELL_VENOMOUS_BITE);
+ uiVenomousBiteTimer = 10000;
+ } else uiVenomousBiteTimer -= diff;
}
};
@@ -85,6 +208,16 @@ CreatureAI* GetAI_boss_slad_ran(Creature* pCreature)
return new boss_slad_ranAI (pCreature);
}
+CreatureAI* GetAI_mob_slad_ran_constrictor(Creature* pCreature)
+{
+ return new mob_slad_ran_constrictorAI (pCreature);
+}
+
+CreatureAI* GetAI_mob_slad_ran_viper(Creature* pCreature)
+{
+ return new mob_slad_ran_viperAI (pCreature);
+}
+
void AddSC_boss_slad_ran()
{
Script *newscript;
@@ -93,4 +226,14 @@ void AddSC_boss_slad_ran()
newscript->Name="boss_slad_ran";
newscript->GetAI = &GetAI_boss_slad_ran;
newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="mob_slad_ran_constrictor";
+ newscript->GetAI = &GetAI_mob_slad_ran_constrictor;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="mob_slad_ran_viper";
+ newscript->GetAI = &GetAI_mob_slad_ran_viper;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/def_gundrak.h b/src/bindings/scripts/scripts/northrend/gundrak/def_gundrak.h
index 5f015610312..957023b3583 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/def_gundrak.h
+++ b/src/bindings/scripts/scripts/northrend/gundrak/def_gundrak.h
@@ -1,4 +1,20 @@
#ifndef DEF_GUNDRAK_H
#define DEF_GUNDRAK_H
+enum Data
+{
+ DATA_SLAD_RAN_EVENT,
+ DATA_MOORABI_EVENT,
+ DATA_DRAKKARI_COLOSSUS_EVENT,
+ DATA_GAL_DARAH_EVENT,
+ DATA_ECK_THE_FEROCIOUS_EVENT
+};
+
+enum Data64
+{
+ DATA_SLAD_RAN_ALTAR,
+ DATA_MOORABI_ALTAR,
+ DATA_DRAKKARI_COLOSSUS_ALTAR
+};
+
#endif
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp b/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp
index 0ed874d905f..157b4c87991 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp
+++ b/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp
@@ -1,11 +1,307 @@
#include "precompiled.h"
#include "def_gundrak.h"
+#define MAX_ENCOUNTER 5
+
+/* GunDrak encounters:
+0 - Slad'Ran
+1 - Moorabi
+2 - Drakkari Colossus
+3 - Gal'Darah
+4 - Eck the Ferocious
+*/
+
struct TRINITY_DLL_DECL instance_gundrak : public ScriptedInstance
{
- instance_gundrak(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
+ instance_gundrak(Map* pMap) : ScriptedInstance(pMap)
+ {
+ bHeroicMode = pMap->IsHeroic();
+ Initialize();
+ };
+
+ bool bHeroicMode;
+
+ uint64 uiSladRan;
+ uint64 uiMoorabi;
+ uint64 uiDrakkariColossus;
+ uint64 uiGalDarah;
+ uint64 uiEckTheFerocious;
+
+ uint32 uiSladRanAltar;
+ uint32 uiMoorabiAltar;
+ uint32 uiDrakkariColossusAltar;
+ uint32 uiSladRanStatue;
+ uint32 uiMoorabiStatue;
+ uint32 uiDrakkariColossusStatue;
+ uint32 uiEckTheFerociousDoor;
+ uint32 uiGalDarahDoor1;
+ uint32 uiGalDarahDoor2;
+ uint32 uiBridge;
+ uint32 uiCollision;
+
+ uint32 m_auiEncounter[MAX_ENCOUNTER];
+
+ std::string str_data;
+
+ void Initialize()
+ {
+ uiSladRan = 0;
+ uiMoorabi = 0;
+ uiDrakkariColossus = 0;
+ uiGalDarah = 0;
+ uiEckTheFerocious = 0;
+
+ uiSladRanAltar = 0;
+ uiMoorabiAltar = 0;
+ uiDrakkariColossusAltar = 0;
+
+ uiSladRanStatue = 0;
+ uiMoorabiStatue = 0;
+ uiDrakkariColossusStatue = 0;
+
+ uiEckTheFerociousDoor = 0;
+ uiGalDarahDoor1 = 0;
+ uiGalDarahDoor2 = 0;
+
+ uiBridge = 0;
+ uiCollision = 0;
+
+ memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
+ }
+
+ bool IsEncounterInProgress() const
+ {
+ for(uint8 i = 0; i < MAX_ENCOUNTER; ++i)
+ if (m_auiEncounter[i] == IN_PROGRESS) return true;
+
+ return false;
+ }
+
+ void OnCreatureCreate(Creature* pCreature, bool add)
+ {
+ switch(pCreature->GetEntry())
+ {
+ case 29304: uiSladRan = pCreature->GetGUID(); break;
+ case 29305: uiMoorabi = pCreature->GetGUID(); break;
+ case 29306: uiGalDarah = pCreature->GetGUID(); break;
+ case 29307: uiDrakkariColossus = pCreature->GetGUID(); break;
+ case 29332: uiEckTheFerocious = pCreature->GetGUID(); break;
+ }
+ }
+
+ void OnGameObjectCreate(GameObject* pGo, bool add)
+ {
+ switch(pGo->GetEntry())
+ {
+ case 192518:
+ uiSladRanAltar = pGo->GetGUID();
+ if (m_auiEncounter[0] == DONE)
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1);
+ break;
+ case 192519:
+ uiMoorabiAltar = pGo->GetGUID();
+ if (m_auiEncounter[1] == DONE)
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1);
+ break;
+ case 192520:
+ uiDrakkariColossus = pGo->GetGUID();
+ if (m_auiEncounter[2] == DONE)
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1);
+ break;
+ case 192564:
+ uiSladRanStatue = pGo->GetGUID();
+ break;
+ case 192565:
+ uiMoorabiStatue = pGo->GetGUID();
+ break;
+ case 192567:
+ uiDrakkariColossus = pGo->GetGUID();
+ break;
+ case 192632:
+ uiEckTheFerociousDoor = pGo->GetGUID();
+ if (bHeroicMode && m_auiEncounter[1] == DONE)
+ HandleGameObject(NULL,true,pGo);
+ break;
+ case 193208:
+ uiGalDarahDoor1 = pGo->GetGUID();
+ if (m_auiEncounter[3] == DONE)
+ HandleGameObject(NULL,true,pGo);
+ break;
+ case 193209:
+ uiGalDarahDoor2 = pGo->GetGUID();
+ if (m_auiEncounter[3] == DONE)
+ HandleGameObject(NULL,true,pGo);
+ break;
+ case 193188:
+ uiBridge = pGo->GetGUID();
+ break;
+ case 192633:
+ uiBridge = pGo->GetGUID();
+ break;
+ }
+ }
+
+ void SetData(uint32 type, uint32 data)
+ {
+ switch(type)
+ {
+ case DATA_SLAD_RAN_EVENT:
+ m_auiEncounter[0] = data;
+ if (data == DONE)
+ {
+ GameObject* pGo = instance->GetGameObject(uiSladRanAltar);
+ if (pGo)
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1);
+ }
+ break;
+ case DATA_MOORABI_EVENT:
+ m_auiEncounter[1] = data;
+ if (data == DONE)
+ {
+ GameObject* pGo = instance->GetGameObject(uiMoorabiAltar);
+ if (pGo)
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1);
+ if (bHeroicMode)
+ HandleGameObject(uiEckTheFerociousDoor,true);
+ }
+ break;
+ case DATA_DRAKKARI_COLOSSUS_EVENT:
+ m_auiEncounter[2] = data;
+ if (data == DONE)
+ {
+ GameObject* pGo = instance->GetGameObject(uiDrakkariColossusAltar);
+ if (pGo)
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1);
+ }
+ break;
+ case DATA_GAL_DARAH_EVENT:
+ m_auiEncounter[3] = data;
+ if (data == DONE)
+ {
+ HandleGameObject(uiGalDarahDoor1,true);
+ HandleGameObject(uiGalDarahDoor2,true);
+ }
+ break;
+ case DATA_ECK_THE_FEROCIOUS_EVENT:
+ m_auiEncounter[4] = data;
+ break;
+ }
+
+ if (data == DONE)
+ SaveToDB();
+ }
+
+ uint32 GetData(uint32 type)
+ {
+ switch(type)
+ {
+ case DATA_SLAD_RAN_EVENT: return m_auiEncounter[0];
+ case DATA_MOORABI_EVENT: return m_auiEncounter[1];
+ case DATA_GAL_DARAH_EVENT: return m_auiEncounter[2];
+ case DATA_DRAKKARI_COLOSSUS_EVENT: return m_auiEncounter[3];
+ case DATA_ECK_THE_FEROCIOUS_EVENT: return m_auiEncounter[4];
+ }
+
+ return 0;
+ }
+
+ uint64 GetData64(uint32 type)
+ {
+ switch(type)
+ {
+ case DATA_SLAD_RAN_ALTAR: return uiSladRanAltar;
+ case DATA_MOORABI_ALTAR: return uiMoorabiAltar;
+ case DATA_DRAKKARI_COLOSSUS_ALTAR: return uiDrakkariColossusAltar;
+ }
+
+ return 0;
+ }
+
+ std::string GetSaveData()
+ {
+ OUT_SAVE_INST_DATA;
+
+ std::ostringstream saveStream;
+ saveStream << "G D " << m_auiEncounter[0] << " " << m_auiEncounter[1] << " "
+ << m_auiEncounter[2] << " " << m_auiEncounter[3] << " " << m_auiEncounter[4];
+
+ str_data = saveStream.str();
+
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return str_data;
+ }
+
+ void Load(const char* in)
+ {
+ if (!in)
+ {
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
+ }
+
+ OUT_LOAD_INST_DATA(in);
+
+ char dataHead1, dataHead2;
+ uint16 data0, data1, data2, data3, data4;
+
+ std::istringstream loadStream(in);
+ loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3 >> data4;
+
+ if (dataHead1 == 'G' && dataHead2 == 'D')
+ {
+ m_auiEncounter[0] = data0;
+ m_auiEncounter[1] = data1;
+ m_auiEncounter[2] = data2;
+ m_auiEncounter[3] = data3;
+ m_auiEncounter[4] = data4;
+
+ for(uint8 i = 0; i < MAX_ENCOUNTER; ++i)
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ m_auiEncounter[i] = NOT_STARTED;
+ }else OUT_LOAD_INST_DATA_FAIL;
+
+ OUT_LOAD_INST_DATA_COMPLETE;
+ }
+
+ void CheckAltars()
+ {
+ GameObject* pSladRanAltar = instance->GetGameObject(uiSladRanAltar);
+ GameObject* pMoorabiAltar = instance->GetGameObject(uiMoorabiAltar);
+ GameObject* pDrakkariColossusAltar = instance->GetGameObject(uiDrakkariColossusAltar);
+
+ if (pSladRanAltar && pSladRanAltar->GetGoState() == GO_STATE_ACTIVE &&
+ pMoorabiAltar && pMoorabiAltar->GetGoState() == GO_STATE_ACTIVE &&
+ pDrakkariColossusAltar && pDrakkariColossusAltar->GetGoState())
+ {
+ HandleGameObject(uiBridge,true);
+ HandleGameObject(uiCollision,true);
+ }
+ }
};
+bool GOHello_altar(Player *pPlayer, GameObject *pGO)
+{
+ ScriptedInstance *pInstance = pGO->GetInstanceData();
+ uint32 uiStatue;
+
+ pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
+ pGO->SetGoState(GO_STATE_ACTIVE);
+
+ if (pInstance)
+ {
+ switch(pGO->GetEntry())
+ {
+ case 192518: uiStatue = pInstance->GetData64(DATA_SLAD_RAN_ALTAR); break;
+ case 192519: uiStatue = pInstance->GetData64(DATA_MOORABI_ALTAR); break;
+ case 192520: uiStatue = pInstance->GetData64(DATA_DRAKKARI_COLOSSUS_ALTAR); break;
+ }
+ pInstance->HandleGameObject(uiStatue,true);
+ ((instance_gundrak*)pInstance)->CheckAltars();
+ return true;
+ }
+ return false;
+}
+
InstanceData* GetInstanceData_instance_gundrak(Map* pMap)
{
return new instance_gundrak(pMap);
@@ -18,4 +314,9 @@ void AddSC_instance_gundrak()
newscript->Name = "instance_gundrak";
newscript->GetInstanceData = &GetInstanceData_instance_gundrak;
newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name = "go_gundrak_altar";
+ newscript->pGOHello = &GOHello_altar;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/system/ScriptLoader.cpp b/src/bindings/scripts/system/ScriptLoader.cpp
index e334070e520..8c06c9206b7 100644
--- a/src/bindings/scripts/system/ScriptLoader.cpp
+++ b/src/bindings/scripts/system/ScriptLoader.cpp
@@ -261,7 +261,12 @@ extern void AddSC_ungoro_crater();
extern void AddSC_winterspring();
//northrend
+extern void AddSC_boss_slad_ran();
extern void AddSC_boss_moorabi();
+extern void AddSC_boss_drakkari_colossus();
+extern void AddSC_boss_gal_darah();
+extern void AddSC_boss_eck();
+extern void AddSC_instance_gundrak();
extern void AddSC_instance_ahnkahet(); //Azjol-Nerub Ahn'kahet
extern void AddSC_boss_krik_thir();
extern void AddSC_boss_taldaram();
@@ -670,12 +675,17 @@ void AddScripts()
AddSC_winterspring();
//northrend
+ AddSC_boss_slad_ran(); //Gundrak
AddSC_boss_moorabi();
- AddSC_instance_ahnkahet(); //Azjol-Nerub Ahn'kahet
- AddSC_boss_krik_thir();
- AddSC_boss_taldaram();
+ AddSC_boss_drakkari_colossus();
+ AddSC_boss_gal_darah();
+ AddSC_boss_eck();
+ AddSC_instance_gundrak();
+ AddSC_boss_taldaram(); //Azjol-Nerub Ahn'kahet
AddSC_boss_elder_nadox();
AddSC_boss_volazj();
+ AddSC_instance_ahnkahet();
+ AddSC_boss_krik_thir(); //Azjol-Nerub Azjol-Nerub
AddSC_boss_anubrekhan(); //Naxxramas
AddSC_boss_maexxna();
AddSC_boss_patchwerk();
@@ -717,6 +727,11 @@ void AddScripts()
AddSC_boss_skarvald_dalronn();
AddSC_boss_ingvar_the_plunderer();
AddSC_instance_utgarde_keep();
+ AddSC_boss_svala(); //Utgarde pinnacle
+ AddSC_boss_palehoof();
+ AddSC_boss_skadi();
+ AddSC_boss_ymiron();
+ AddSC_instance_utgarde_pinnacle();
AddSC_utgarde_keep();
AddSC_boss_archavon(); //Vault of Archavon
AddSC_boss_emalon();
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index a7e5153e255..6f24dbe1631 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -544,7 +544,8 @@ void Creature::Update(uint32 diff)
if(!isAlive())
break;
- bool bNotInCombatOrIsPolymorphed = (!isInCombat() || IsPolymorphed());
+ bool bNotInCombatOrIsPolymorphed = (!isInCombat() || IsPolymorphed() || !getVictim() ||
+ getVictim()->GetCharmerOrOwnerPlayerOrPlayerItself()->isGameMaster());
if(m_regenTimer > diff && !bNotInCombatOrIsPolymorphed)
m_regenTimer -= diff;
diff --git a/src/game/CreatureEventAIMgr.cpp b/src/game/CreatureEventAIMgr.cpp
index 901ec541455..5325edff4a9 100644
--- a/src/game/CreatureEventAIMgr.cpp
+++ b/src/game/CreatureEventAIMgr.cpp
@@ -147,13 +147,14 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Summons()
//Add to map
m_CreatureEventAI_Summon_Map[i] = temp;
++Count;
- }while (result->NextRow());
+ } while (result->NextRow());
delete result;
sLog.outString();
sLog.outString(">> Loaded %u CreatureEventAI summon definitions", Count);
- }else
+ }
+ else
{
barGoLink bar(1);
bar.step();
@@ -728,7 +729,8 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts()
sLog.outString();
sLog.outString(">> Loaded %u CreatureEventAI scripts", Count);
- }else
+ }
+ else
{
barGoLink bar(1);
bar.step();
diff --git a/src/game/DynamicObject.cpp b/src/game/DynamicObject.cpp
index 5dd4059e21c..e616dc2f809 100644
--- a/src/game/DynamicObject.cpp
+++ b/src/game/DynamicObject.cpp
@@ -113,7 +113,7 @@ void DynamicObject::Update(uint32 p_time)
{
// caster can be not in world at time dynamic object update, but dynamic object not yet deleted in Unit destructor
Unit* caster = GetCaster();
- if(!caster)
+ if (!caster)
{
Delete();
return;
@@ -126,17 +126,17 @@ void DynamicObject::Update(uint32 p_time)
else
deleteThis = true;
- if(m_effMask)
+ if (m_effMask)
{
- if(m_updateTimer < p_time)
+ if (m_updateTimer < p_time)
{
Trinity::DynamicObjectUpdater notifier(*this,caster);
VisitNearbyObject(GetRadius(), notifier);
m_updateTimer = 500; // is this official-like?
- }else m_updateTimer -= p_time;
+ } else m_updateTimer -= p_time;
}
- if(deleteThis)
+ if (deleteThis)
{
caster->RemoveDynObjectWithGUID(GetGUID());
Delete();
@@ -153,9 +153,9 @@ void DynamicObject::Delete()
void DynamicObject::Delay(int32 delaytime)
{
m_aliveDuration -= delaytime;
- for(AffectedSet::iterator iunit= m_affected.begin(); iunit != m_affected.end(); ++iunit)
+ for (AffectedSet::iterator iunit = m_affected.begin(); iunit != m_affected.end(); ++iunit)
if (*iunit)
- (*iunit)->DelayAura(m_spellId, GetCaster()->GetGUID() , delaytime);
+ (*iunit)->DelayAura(m_spellId, GetCaster()->GetGUID(), delaytime);
}
bool DynamicObject::isVisibleForInState(Player const* u, bool inVisibleList) const
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp
index b14710c5191..bd4208c9647 100644
--- a/src/game/Level3.cpp
+++ b/src/game/Level3.cpp
@@ -1393,7 +1393,7 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
char* arg1 = strtok((char*)args, " ");
char* arg2 = strtok(NULL, " ");
- if(getSelectedPlayer() && arg1 && !arg2)
+ if (getSelectedPlayer() && arg1 && !arg2)
{
targetAccountId = getSelectedPlayer()->GetSession()->GetAccountId();
accmgr.GetName(targetAccountId, targetAccountName);
@@ -1401,7 +1401,7 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
gm = atoi(arg1);
// Check for invalid specified GM level.
- if ( (gm < SEC_PLAYER || gm > SEC_ADMINISTRATOR) )
+ if (gm < SEC_PLAYER || gm > SEC_ADMINISTRATOR)
{
SendSysMessage(LANG_BAD_VALUE);
SetSentErrorMessage(true);
@@ -1410,7 +1410,7 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
// Check if targets GM level and specified GM level is not higher than current gm level
targetSecurity = targetPlayer->GetSession()->GetSecurity();
- if(targetSecurity >= m_session->GetSecurity() || gm >= m_session->GetSecurity() )
+ if (targetSecurity >= m_session->GetSecurity() || gm >= m_session->GetSecurity())
{
SendSysMessage(LANG_YOURS_SECURITY_IS_LOW);
SetSentErrorMessage(true);
@@ -1418,24 +1418,23 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
}
// Decide which string to show
- if(m_session->GetPlayer()!=targetPlayer)
- {
+ if (m_session->GetPlayer() != targetPlayer)
PSendSysMessage(LANG_YOU_CHANGE_SECURITY, targetAccountName.c_str(), gm);
- }else{
+ else
PSendSysMessage(LANG_YOURS_SECURITY_CHANGED, m_session->GetPlayer()->GetName(), gm);
- }
loginDatabase.PExecute("UPDATE account SET gmlevel = '%d' WHERE id = '%u'", gm, targetAccountId);
return true;
- }else
+ }
+ else
{
// Check for second parameter
- if(!arg2)
+ if (!arg2)
return false;
// Check for account
targetAccountName = arg1;
- if(!AccountMgr::normalizeString(targetAccountName))
+ if (!AccountMgr::normalizeString(targetAccountName))
{
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,targetAccountName.c_str());
SetSentErrorMessage(true);
@@ -1444,7 +1443,7 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
// Check for invalid specified GM level.
gm = atoi(arg2);
- if ( (gm < SEC_PLAYER || gm > SEC_ADMINISTRATOR) )
+ if (gm < SEC_PLAYER || gm > SEC_ADMINISTRATOR)
{
SendSysMessage(LANG_BAD_VALUE);
SetSentErrorMessage(true);
@@ -1458,7 +1457,7 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
/// can set security level only for target with less security and to less security that we have
/// This is also reject self apply in fact
targetSecurity = accmgr.GetSecurity(targetAccountId);
- if(targetSecurity >= plSecurity || gm >= plSecurity )
+ if (targetSecurity >= plSecurity || gm >= plSecurity)
{
SendSysMessage(LANG_YOURS_SECURITY_IS_LOW);
SetSentErrorMessage(true);
@@ -1486,7 +1485,7 @@ bool ChatHandler::HandleAccountSetPasswordCommand(const char* args)
return false;
std::string account_name = szAccount;
- if(!AccountMgr::normalizeString(account_name))
+ if (!AccountMgr::normalizeString(account_name))
{
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
SetSentErrorMessage(true);
@@ -1503,7 +1502,7 @@ bool ChatHandler::HandleAccountSetPasswordCommand(const char* args)
/// can set password only for target with less security
/// This is also reject self apply in fact
- if(HasLowerSecurityAccount (NULL,targetAccountId,true))
+ if (HasLowerSecurityAccount (NULL,targetAccountId,true))
return false;
if (strcmp(szPassword1,szPassword2))
@@ -1515,7 +1514,7 @@ bool ChatHandler::HandleAccountSetPasswordCommand(const char* args)
AccountOpResult result = accmgr.ChangePassword(targetAccountId, szPassword1);
- switch(result)
+ switch (result)
{
case AOR_OK:
SendSysMessage(LANG_COMMAND_PASSWORD);
@@ -1556,12 +1555,12 @@ bool ChatHandler::HandleSetSkillCommand(const char* args)
{
// number or [name] Shift-click form |color|Hskill:skill_id|h[name]|h|r
char* skill_p = extractKeyFromLink((char*)args,"Hskill");
- if(!skill_p)
+ if (!skill_p)
return false;
char *level_p = strtok (NULL, " ");
- if( !level_p)
+ if (!level_p)
return false;
char *max_p = strtok (NULL, " ");
@@ -1577,7 +1576,7 @@ bool ChatHandler::HandleSetSkillCommand(const char* args)
int32 level = atol (level_p);
Player * target = getSelectedPlayer();
- if(!target)
+ if (!target)
{
SendSysMessage(LANG_NO_CHAR_SELECTED);
SetSentErrorMessage(true);
@@ -1585,7 +1584,7 @@ bool ChatHandler::HandleSetSkillCommand(const char* args)
}
SkillLineEntry const* sl = sSkillLineStore.LookupEntry(skill);
- if(!sl)
+ if (!sl)
{
PSendSysMessage(LANG_INVALID_SKILL_ID, skill);
SetSentErrorMessage(true);
@@ -1594,7 +1593,7 @@ bool ChatHandler::HandleSetSkillCommand(const char* args)
std::string tNameLink = GetNameLink(target);
- if(!target->GetSkillValue(skill))
+ if (!target->GetSkillValue(skill))
{
PSendSysMessage(LANG_SET_SKILL_ERROR, tNameLink.c_str(), skill, sl->name[0]);
SetSentErrorMessage(true);
@@ -1603,7 +1602,7 @@ bool ChatHandler::HandleSetSkillCommand(const char* args)
int32 max = max_p ? atol (max_p) : target->GetPureMaxSkillValue(skill);
- if( level <= 0 || level > max || max <= 0 )
+ if (level <= 0 || level > max || max <= 0)
return false;
target->SetSkill(skill, level, max);
@@ -1619,21 +1618,21 @@ bool ChatHandler::HandleUnLearnCommand(const char* args)
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r
uint32 spell_id = extractSpellIdFromLink((char*)args);
- if(!spell_id)
+ if (!spell_id)
return false;
char const* allStr = strtok(NULL," ");
bool allRanks = allStr ? (strncmp(allStr, "all", strlen(allStr)) == 0) : false;
Player* target = getSelectedPlayer();
- if(!target)
+ if (!target)
{
SendSysMessage(LANG_NO_CHAR_SELECTED);
SetSentErrorMessage(true);
return false;
}
- if(allRanks)
+ if (allRanks)
spell_id = spellmgr.GetFirstSpellInChain (spell_id);
if (target->HasSpell(spell_id))
@@ -1641,7 +1640,7 @@ bool ChatHandler::HandleUnLearnCommand(const char* args)
else
SendSysMessage(LANG_FORGET_SPELL);
- if(GetTalentSpellCost(spell_id))
+ if (GetTalentSpellCost(spell_id))
target->SendTalentsInfoData(false);
return true;
@@ -1650,7 +1649,7 @@ bool ChatHandler::HandleUnLearnCommand(const char* args)
bool ChatHandler::HandleCooldownCommand(const char* args)
{
Player* target = getSelectedPlayer();
- if(!target)
+ if (!target)
{
SendSysMessage(LANG_PLAYER_NOT_FOUND);
SetSentErrorMessage(true);
@@ -1668,10 +1667,10 @@ bool ChatHandler::HandleCooldownCommand(const char* args)
{
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spell_id = extractSpellIdFromLink((char*)args);
- if(!spell_id)
+ if (!spell_id)
return false;
- if(!sSpellStore.LookupEntry(spell_id))
+ if (!sSpellStore.LookupEntry(spell_id))
{
PSendSysMessage(LANG_UNKNOWN_SPELL, target==m_session->GetPlayer() ? GetMangosString(LANG_YOU) : tNameLink.c_str());
SetSentErrorMessage(true);
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 4ab2f05dc49..067d953e381 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -217,7 +217,7 @@ void Unit::Update( uint32 p_time )
{
m_AurasCheck = 2000;
_UpdateAura();
- }else
+ } else
m_AurasCheck -= p_time;*/
// WARNING! Order of execution here is important, do not change.