Merge remote-tracking branch 'origin/master' into 4.3.4

Conflicts:
	src/server/game/Battlefield/BattlefieldMgr.h
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Globals/ObjectMgr.cpp
	src/server/game/Handlers/BattleGroundHandler.cpp
	src/server/game/Handlers/CharacterHandler.cpp
This commit is contained in:
Nay
2012-09-30 15:46:00 +01:00
33 changed files with 1273 additions and 229 deletions

View File

@@ -41,20 +41,20 @@ EndContentData */
enum CustodianOfTime
{
WHISPER_CUSTODIAN_1 = -1000217,
WHISPER_CUSTODIAN_2 = -1000218,
WHISPER_CUSTODIAN_3 = -1000219,
WHISPER_CUSTODIAN_4 = -1000220,
WHISPER_CUSTODIAN_5 = -1000221,
WHISPER_CUSTODIAN_6 = -1000222,
WHISPER_CUSTODIAN_7 = -1000223,
WHISPER_CUSTODIAN_8 = -1000224,
WHISPER_CUSTODIAN_9 = -1000225,
WHISPER_CUSTODIAN_10 = -1000226,
WHISPER_CUSTODIAN_11 = -1000227,
WHISPER_CUSTODIAN_12 = -1000228,
WHISPER_CUSTODIAN_13 = -1000229,
WHISPER_CUSTODIAN_14 = -1000230
WHISPER_CUSTODIAN_1 = 0,
WHISPER_CUSTODIAN_2 = 1,
WHISPER_CUSTODIAN_3 = 2,
WHISPER_CUSTODIAN_4 = 3,
WHISPER_CUSTODIAN_5 = 4,
WHISPER_CUSTODIAN_6 = 5,
WHISPER_CUSTODIAN_7 = 6,
WHISPER_CUSTODIAN_8 = 7,
WHISPER_CUSTODIAN_9 = 8,
WHISPER_CUSTODIAN_10 = 9,
WHISPER_CUSTODIAN_11 = 10,
WHISPER_CUSTODIAN_12 = 11,
WHISPER_CUSTODIAN_13 = 12,
WHISPER_CUSTODIAN_14 = 13
};
class npc_custodian_of_time : public CreatureScript
@@ -78,58 +78,58 @@ public:
switch (waypointId)
{
case 0:
DoScriptText(WHISPER_CUSTODIAN_1, me, player);
Talk(WHISPER_CUSTODIAN_1, player->GetGUID());
break;
case 1:
DoScriptText(WHISPER_CUSTODIAN_2, me, player);
Talk(WHISPER_CUSTODIAN_2, player->GetGUID());
break;
case 2:
DoScriptText(WHISPER_CUSTODIAN_3, me, player);
Talk(WHISPER_CUSTODIAN_3, player->GetGUID());
break;
case 3:
DoScriptText(WHISPER_CUSTODIAN_4, me, player);
Talk(WHISPER_CUSTODIAN_4, player->GetGUID());
break;
case 5:
DoScriptText(WHISPER_CUSTODIAN_5, me, player);
Talk(WHISPER_CUSTODIAN_5, player->GetGUID());
break;
case 6:
DoScriptText(WHISPER_CUSTODIAN_6, me, player);
Talk(WHISPER_CUSTODIAN_6, player->GetGUID());
break;
case 7:
DoScriptText(WHISPER_CUSTODIAN_7, me, player);
Talk(WHISPER_CUSTODIAN_7, player->GetGUID());
break;
case 8:
DoScriptText(WHISPER_CUSTODIAN_8, me, player);
Talk(WHISPER_CUSTODIAN_8, player->GetGUID());
break;
case 9:
DoScriptText(WHISPER_CUSTODIAN_9, me, player);
Talk(WHISPER_CUSTODIAN_9, player->GetGUID());
break;
case 10:
DoScriptText(WHISPER_CUSTODIAN_4, me, player);
Talk(WHISPER_CUSTODIAN_4, player->GetGUID());
break;
case 13:
DoScriptText(WHISPER_CUSTODIAN_10, me, player);
Talk(WHISPER_CUSTODIAN_10, player->GetGUID());
break;
case 14:
DoScriptText(WHISPER_CUSTODIAN_4, me, player);
Talk(WHISPER_CUSTODIAN_4, player->GetGUID());
break;
case 16:
DoScriptText(WHISPER_CUSTODIAN_11, me, player);
Talk(WHISPER_CUSTODIAN_11, player->GetGUID());
break;
case 17:
DoScriptText(WHISPER_CUSTODIAN_12, me, player);
Talk(WHISPER_CUSTODIAN_12, player->GetGUID());
break;
case 18:
DoScriptText(WHISPER_CUSTODIAN_4, me, player);
Talk(WHISPER_CUSTODIAN_4, player->GetGUID());
break;
case 22:
DoScriptText(WHISPER_CUSTODIAN_13, me, player);
Talk(WHISPER_CUSTODIAN_13, player->GetGUID());
break;
case 23:
DoScriptText(WHISPER_CUSTODIAN_4, me, player);
Talk(WHISPER_CUSTODIAN_4, player->GetGUID());
break;
case 24:
DoScriptText(WHISPER_CUSTODIAN_14, me, player);
Talk(WHISPER_CUSTODIAN_14, player->GetGUID());
DoCast(player, 34883);
// below here is temporary workaround, to be removed when spell works properly
player->AreaExploredOrEventHappens(10277);

View File

@@ -19,16 +19,13 @@
#include "ScriptedCreature.h"
#include "ahnkahet.h"
//not in db
enum Yells
{
SAY_AGGRO = -1619014,
SAY_SLAY_1 = -1619015,
SAY_SLAY_2 = -1619016,
SAY_SLAY_3 = -1619017,
SAY_DEATH = -1619018,
SAY_EGG_SAC_1 = -1619019,
SAY_EGG_SAC_2 = -1619020
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_EGG_SAC = 3,
EMOTE_HATCHES = 4
};
enum Spells
@@ -50,8 +47,6 @@ enum Creatures
#define ACTION_AHNKAHAR_GUARDIAN_DEAD 1
#define DATA_RESPECT_YOUR_ELDERS 2
#define EMOTE_HATCHES "An Ahn'kahar Guardian hatches!"
class boss_elder_nadox : public CreatureScript
{
public:
@@ -61,7 +56,7 @@ class boss_elder_nadox : public CreatureScript
{
boss_elder_nadoxAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
instance = creature->GetInstanceScript();
}
uint32 uiPlagueTimer;
@@ -78,16 +73,13 @@ class boss_elder_nadox : public CreatureScript
void Reset()
{
uiPlagueTimer = 13000;
uiRagueTimer = 20000;
uiPlagueTimer = 13000;
uiRagueTimer = 20000;
uiSwarmerSpawnTimer = 10000;
uiGuardSpawnTimer = 25000;
uiEnrageTimer = 5000;
bGuardSpawned = false;
respectYourElders = true;
uiGuardSpawnTimer = 25000;
uiEnrageTimer = 5000;
bGuardSpawned = false;
respectYourElders = true;
if (instance)
instance->SetData(DATA_ELDER_NADOX_EVENT, NOT_STARTED);
@@ -95,7 +87,7 @@ class boss_elder_nadox : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_ELDER_NADOX_EVENT, IN_PROGRESS);
@@ -103,12 +95,12 @@ class boss_elder_nadox : public CreatureScript
void KilledUnit(Unit* /*who*/)
{
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_SLAY_3, me); //SAY_SLAY_3 on death?
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_ELDER_NADOX_EVENT, DONE);
@@ -135,7 +127,7 @@ class boss_elder_nadox : public CreatureScript
if (uiPlagueTimer <= diff)
{
DoCast(me->getVictim(), SPELL_BROOD_PLAGUE);
DoCastVictim(SPELL_BROOD_PLAGUE);
uiPlagueTimer = 15000;
}
else
@@ -160,7 +152,7 @@ class boss_elder_nadox : public CreatureScript
DoCast(me, SPELL_SUMMON_SWARMERS, true);
DoCast(me, SPELL_SUMMON_SWARMERS);
if (urand(1, 3) == 3) // 33% chance of dialog
DoScriptText(RAND(SAY_EGG_SAC_1, SAY_EGG_SAC_2), me);
Talk(SAY_EGG_SAC);
uiSwarmerSpawnTimer = 10000;
}
@@ -169,7 +161,7 @@ class boss_elder_nadox : public CreatureScript
if (!bGuardSpawned && uiGuardSpawnTimer <= diff)
{
me->MonsterTextEmote(EMOTE_HATCHES, me->GetGUID(), true);
Talk(EMOTE_HATCHES, me->GetGUID());
DoCast(me, SPELL_SUMMON_SWARM_GUARD);
bGuardSpawned = true;
}
@@ -217,7 +209,7 @@ class mob_ahnkahar_nerubian : public CreatureScript
{
mob_ahnkahar_nerubianAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -237,9 +229,7 @@ class mob_ahnkahar_nerubian : public CreatureScript
Nadox->AI()->DoAction(ACTION_AHNKAHAR_GUARDIAN_DEAD);
}
void EnterCombat(Unit* /*who*/)
{
}
void EnterCombat(Unit* /*who*/) {}
void UpdateAI(uint32 const diff)
{
@@ -300,9 +290,7 @@ public:
class achievement_respect_your_elders : public AchievementCriteriaScript
{
public:
achievement_respect_your_elders() : AchievementCriteriaScript("achievement_respect_your_elders")
{
}
achievement_respect_your_elders() : AchievementCriteriaScript("achievement_respect_your_elders") {}
bool OnCheck(Player* /*player*/, Unit* target)
{

View File

@@ -21,97 +21,93 @@
enum Yells
{
SAY_AGGRO = -1603240,
SAY_HARDMODE_ON = -1603241,
SAY_MKII_ACTIVATE = -1603242,
SAY_MKII_SLAY_1 = -1603243,
SAY_MKII_SLAY_2 = -1603244,
SAY_MKII_DEATH = -1603245,
SAY_VX001_ACTIVATE = -1603246,
SAY_VX001_SLAY_1 = -1603247,
SAY_VX001_SLAY_2 = -1603248,
SAY_VX001_DEATH = -1603249,
SAY_AERIAL_ACTIVATE = -1603250,
SAY_AERIAL_SLAY_1 = -1603251,
SAY_AERIAL_SLAY_2 = -1603252,
SAY_AERIAL_DEATH = -1603253,
SAY_V07TRON_ACTIVATE = -1603254,
SAY_V07TRON_SLAY_1 = -1603255,
SAY_V07TRON_SLAY_2 = -1603256,
SAY_V07TRON_DEATH = -1603257,
SAY_BERSERK = -1603258,
SAY_YS_HELP = -1603259,
SAY_AGGRO = 0,
SAY_HARDMODE_ON = 1,
SAY_MKII_ACTIVATE = 2,
SAY_MKII_SLAY = 3,
SAY_MKII_DEATH = 4,
SAY_VX001_ACTIVATE = 5,
SAY_VX001_SLAY = 6,
SAY_VX001_DEATH = 7,
SAY_AERIAL_ACTIVATE = 8,
SAY_AERIAL_SLAY = 9,
SAY_AERIAL_DEATH = 10,
SAY_V07TRON_ACTIVATE = 11,
SAY_V07TRON_SLAY = 12,
SAY_V07TRON_DEATH = 13,
SAY_BERSERK = 14,
SAY_YS_HELP = 15
};
enum Spells
{
SPELL_JETPACK = 63341,
SPELL_EMERGENCY_MODE = 64582,
SPELL_SELF_REPAIR = 64383,
SPELL_MAGNETIC_CORE = 64444,
// Leviathan MK II
SPELL_FLAME_SUPPRESSANT_MK = 64570,
SPELL_NAPALM_SHELL = 63666,
SPELL_PLASMA_BLAST = 62977,
SPELL_PROXIMITY_MINES = 63027,
SPELL_SHOCK_BLAST = 63631,
// VX 001
SPELL_FLAME_SUPPRESSANT_VX = 65192,
SPELL_FROSTBOMB = 64623,
SPELL_HAND_PULSE = 64348,
SPELL_SPINNING_UP = 63414,
SPELL_RAPID_BURST = 63387,
SPELL_P3WX2_LASER_BARRAGE = 63293,
SPELL_ROCKET_STRIKE = 63041,
SPELL_HEAT_WAVE = 63677,
// Aerial Command Unit
SPELL_PLASMA_BALL = 63689,
// Additonal spells
SPELL_MAGNETIC_FIELD = 64668,
SPELL_DEAFENING_SIREN = 64616,
SPELL_WATER_SPRAY = 64619,
SPELL_FROST_BOMB_HARD_MODE = 64627,
SPELL_EXPLOSION = 66351,
SPELL_DISARM = 1842,
SPELL_RIDE_VEHICLE = 46598,
SPELL_TRIGGER_MISSILE = 65347,
SPELL_JETPACK = 63341,
SPELL_EMERGENCY_MODE = 64582,
SPELL_SELF_REPAIR = 64383,
SPELL_MAGNETIC_CORE = 64444,
// Leviathan MK II
SPELL_FLAME_SUPPRESSANT_MK = 64570,
SPELL_NAPALM_SHELL = 63666,
SPELL_PLASMA_BLAST = 62977,
SPELL_PROXIMITY_MINES = 63027,
SPELL_SHOCK_BLAST = 63631,
// VX 001
SPELL_FLAME_SUPPRESSANT_VX = 65192,
SPELL_FROSTBOMB = 64623,
SPELL_HAND_PULSE = 64348,
SPELL_SPINNING_UP = 63414,
SPELL_RAPID_BURST = 63387,
SPELL_P3WX2_LASER_BARRAGE = 63293,
SPELL_ROCKET_STRIKE = 63041,
SPELL_HEAT_WAVE = 63677,
// Aerial Command Unit
SPELL_PLASMA_BALL = 63689,
// Additonal spells
SPELL_MAGNETIC_FIELD = 64668,
SPELL_DEAFENING_SIREN = 64616,
SPELL_WATER_SPRAY = 64619,
SPELL_FROST_BOMB_HARD_MODE = 64627,
SPELL_EXPLOSION = 66351,
SPELL_DISARM = 1842,
SPELL_RIDE_VEHICLE = 46598,
SPELL_TRIGGER_MISSILE = 65347,
};
enum Npc
{
NPC_ASSAULT_BOT = 34057,
NPC_BOMB_BOT = 33836,
NPC_JUNK_BOT = 33855,
NPC_EMERGENCE_FIRE_BOT = 34147,
NPC_FROST_BOMB = 34149,
NPC_ASSAULT_BOT = 34057,
NPC_BOMB_BOT = 33836,
NPC_JUNK_BOT = 33855,
NPC_EMERGENCE_FIRE_BOT = 34147,
NPC_FROST_BOMB = 34149,
};
class spell_ulduar_proximity_mines : public SpellScriptLoader
{
public:
spell_ulduar_proximity_mines() : SpellScriptLoader("spell_ulduar_proximity_mines") { }
public:
spell_ulduar_proximity_mines() : SpellScriptLoader("spell_ulduar_proximity_mines") { }
class spell_ulduar_proximity_minesSpellScript : public SpellScript
{
PrepareSpellScript(spell_ulduar_proximity_minesSpellScript)
class spell_ulduar_proximity_minesSpellScript : public SpellScript
{
PrepareSpellScript(spell_ulduar_proximity_minesSpellScript)
void HandleScript(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
for (uint8 i = 0; i < 10; ++i)
GetCaster()->CastSpell(GetCaster(), SPELL_TRIGGER_MISSILE, true);
}
void HandleScript(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
for (uint8 i = 0; i < 10; ++i)
GetCaster()->CastSpell(GetCaster(), SPELL_TRIGGER_MISSILE, true);
}
void Register()
{
OnEffectHitTarget += SpellEffectFn(spell_ulduar_proximity_minesSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void Register()
{
OnEffectHitTarget += SpellEffectFn(spell_ulduar_proximity_minesSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const
{
return new spell_ulduar_proximity_minesSpellScript();
}
SpellScript* GetSpellScript() const
{
return new spell_ulduar_proximity_minesSpellScript();
}
};
void AddSC_boss_mimiron()

View File

@@ -369,7 +369,7 @@ class boss_razorscale : public CreatureScript
void MovementInform(uint32 type, uint32 id)
{
if (type == POINT_MOTION_TYPE && id == 1)
if (type == EFFECT_MOTION_TYPE && id == 1)
{
phase = PHASE_GROUND;
events.SetPhase(PHASE_GROUND);
@@ -407,7 +407,7 @@ class boss_razorscale : public CreatureScript
if (HarpoonCounter == RAID_MODE(2, 4))
{
HarpoonCounter = 0;
me->GetMotionMaster()->MovePoint(1, RazorGround);
me->GetMotionMaster()->MoveLand(1, RazorGround);
}
if (phase == PHASE_GROUND)
@@ -423,7 +423,7 @@ class boss_razorscale : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
me->GetMotionMaster()->MovePoint(0, RazorFlight);
me->GetMotionMaster()->MoveTakeoff(0, RazorFlight);
events.ScheduleEvent(EVENT_FIREBALL, 7000, 0, PHASE_FLIGHT);
events.ScheduleEvent(EVENT_DEVOURING, 10000, 0, PHASE_FLIGHT);
events.ScheduleEvent(EVENT_SUMMON, 5000, 0, PHASE_FLIGHT);
@@ -525,7 +525,7 @@ class boss_razorscale : public CreatureScript
phase = PHASE_PERMAGROUND;
events.SetPhase(PHASE_PERMAGROUND);
me->SetCanFly(false);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
me->SetReactState(REACT_AGGRESSIVE);
me->RemoveAurasDueToSpell(SPELL_HARPOON_TRIGGER);
me->SetSpeed(MOVE_FLIGHT, 1.0f, true);

View File

@@ -627,7 +627,7 @@ class spell_pal_divine_sacrifice : public SpellScriptLoader
bool Load()
{
if (Unit* caster = GetCaster())
{
if (caster->GetTypeId() == TYPEID_PLAYER)