aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2014_08_28_00_world_misc.sql70
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp113
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp33
3 files changed, 215 insertions, 1 deletions
diff --git a/sql/updates/world/2014_08_28_00_world_misc.sql b/sql/updates/world/2014_08_28_00_world_misc.sql
new file mode 100644
index 00000000000..d97536a836d
--- /dev/null
+++ b/sql/updates/world/2014_08_28_00_world_misc.sql
@@ -0,0 +1,70 @@
+SET @OGUID := 75529;
+
+
+UPDATE `creature_template` SET `AIName`='SmartAi' WHERE `entry`=29525;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=29525 AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=30154 AND `source_type`=0 AND `id`=5;
+
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(30154, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 103591, 29525, 0, 0, 0, 0, 0, 'Agnetta Tyrsdottar - On Death - Set Data to Zeev Fizzlespark'),
+(29525, 0, 0, 0, 38, 0, 100, 0, 1, 1, 0, 0, 1, 0, 5000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Zeev Fizzlespark - On Data Set - Say Line'),
+(29525, 0, 1, 0, 52, 0, 100, 0, 0, 29525, 0, 0, 53, 1, 29525, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Zeev Fizzlespark - On Data Set - Say Line'),
+(29525, 0, 2, 0, 40, 0, 100, 0, 8, 29525, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Zeev Fizzlespark - On Reached WP8 - Despawn');
+
+DELETE FROM `creature_text` WHERE `entry`=29525;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
+(29525, 0, 0, 'Thank you, thank you! Time to get away from these crazy blue women!', 12, 0, 100, 0, 0, 0, 'Zeev Fizzlespark',30803);
+
+DELETE FROM `waypoints` WHERE `entry` =29525;
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+(29525, 1,6887.515, -1586.146, 821.6108, 'Zeev Fizzlespark'),
+(29525, 2,6879.559, -1576.52, 822.1594, 'Zeev Fizzlespark'),
+(29525, 3,6864.559, -1565.27, 821.4094, 'Zeev Fizzlespark'),
+(29525, 4,6864.395, -1565.045, 821.4877, 'Zeev Fizzlespark'),
+(29525, 5,6859.145, -1561.045, 821.4877, 'Zeev Fizzlespark'),
+(29525, 6,6847.645, -1552.295, 820.9877, 'Zeev Fizzlespark'),
+(29525, 7,6844.395, -1549.795, 820.2377, 'Zeev Fizzlespark'),
+(29525, 8,6839.645, -1546.045, 819.7377, 'Zeev Fizzlespark');
+
+DELETE FROM `gameobject` WHERE `id` IN(191844,191845);
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@OGUID+0, 191844, 571, 1, 1, 8535.68, -496.9023, 823.1414, 0.4014249, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+1, 191844, 571, 1, 1, 8546.7, -263.9755, 807.7084, 4.886924, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+2, 191845, 571, 1, 1, 8637.927, -217.2614, 570.3714, 0.5759573, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+3, 191844, 571, 1, 1, 8573.364, -92.22021, 673.306, 4.782203, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+4, 191845, 571, 1, 1, 8560.149, -62.62316, 702.3484, 2.740162, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+5, 191845, 571, 1, 1, 8626.088, 33.92166, 572.9097, 5.497789, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+6, 191845, 571, 1, 1, 8614.603, 88.68297, 637.397, 1.832595, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+7, 191844, 571, 1, 1, 8747.084, 9.606879, 296.9369, 2.932139, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+8, 191845, 571, 1, 1, 8579.567, 82.29688, 692.7102, 5.881761, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+9, 191845, 571, 1, 1, 8547.95, -10.12207, 741.0126, 0.06981169, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+10, 191844, 571, 1, 1, 8595.69, 112.1224, 662.7746, 1.727875, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+11, 191844, 571, 1, 1, 8607.703, 209.4077, 665.7949, 4.258607, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+12, 191844, 571, 1, 1, 8611.642, 271.6101, 615.5172, 6.248279, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+13, 191844, 571, 1, 1, 8748.884, 312.8568, 299.133, 6.073746, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+14, 191845, 571, 1, 1, 8621.576, 330.7877, 541.5576, 5.393069, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+15, 191845, 571, 1, 1, 8605.192, 312.1095, 579.5255, 2.251473, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+16, 191844, 571, 1, 1, 8684.777, 359.4482, 428.7368, 4.956738, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+17, 191844, 571, 1, 1, 8789.41, 71.40159, 293.1991, 3.787367, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+18, 191844, 571, 1, 1, 8763.857, -67.66808, 138.1753, 4.677484, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+19, 191844, 571, 1, 1, 8774.313, -173.6759, 149.9866, 1.06465, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+20, 191845, 571, 1, 1, 8789.631, -235.4283, 51.76108, 1.640607, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+21, 191844, 571, 1, 1, 8804.998, -172.7898, 84.4473, 3.47321, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+22, 191844, 571, 1, 1, 8699.403, -518.3983, 548.7347, 2.740162, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+23, 191844, 571, 1, 1, 8576.837, -359.9985, 752.7386, 5.67232, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+24, 191844, 571, 1, 1, 8814.698, 129.815, 148.0139, 3.543024, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+25, 191845, 571, 1, 1, 8843.197, 133.3464, 85.0244, 6.126106, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+26, 191844, 571, 1, 1, 8804.185, 280.4642, 290.4794, 0.4363316, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+27, 191844, 571, 1, 1, 8626.088, 33.92166, 572.9097, 5.497789, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+28, 191845, 571, 1, 1, 8670.649, -96.9744, 480.4034, 4.76475, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+29, 191844, 571, 1, 1, 8532.542, 68.41764, 725.706, 0.2094394, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+30, 191845, 571, 1, 1, 8533.337, -67.05301, 737.9224, 3.769912, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+31, 191845, 571, 1, 1, 8578.229, 145.1865, 697.3944, 0.9773831, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+32, 191844, 571, 1, 1, 8549.121, 307.6241, 663.9405, 0.5759573, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+33, 191845, 571, 1, 1, 8562.427, 317.5042, 614.5561, 6.248279, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+34, 191844, 571, 1, 1, 8518.978, 314.5187, 762.0441, 0.5061446, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+35, 191844, 571, 1, 1, 8748.884, 312.8568, 299.133, 6.073746, 0, 0, 0, 1, 120, 255, 1), -- 191844 (Area: 67)
+(@OGUID+36, 191845, 571, 1, 1, 8632.458, -147.1184, 579.8124, 3.665196, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+37, 191845, 571, 1, 1, 8685.321, -255.6193, 550.6371, 4.415683, 0, 0, 0, 1, 120, 255, 1), -- 191845 (Area: 67)
+(@OGUID+38, 191844, 571, 1, 1, 8558.689, -286.8528, 704.2544, 2.146753, 0, 0, 0, 1, 120, 255, 1); -- 191844 (Area: 67)
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index ae6aaef9999..95990f18829 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -26,6 +26,7 @@
#include "Player.h"
#include "SpellInfo.h"
#include "CreatureTextMgr.h"
+#include "MoveSplineInit.h"
/*######
##Quest 12848
@@ -322,6 +323,117 @@ public:
};
+ /*######
+## npc_eye_of_acherus
+######*/
+
+enum EyeOfAcherus
+{
+ SPELL_EYE_VISUAL = 51892,
+ SPELL_EYE_FLIGHT_BOOST = 51923,
+ SPELL_EYE_FLIGHT = 51890,
+
+ EVENT_MOVE_START = 1,
+
+ TALK_MOVE_START = 0,
+ TALK_CONTROL = 1,
+
+ POINT_EYE_FALL = 1,
+ POINT_EYE_MOVE_END = 3
+};
+
+Position const EyeOFAcherusFallPoint = { 2361.21f, -5660.45f, 496.7444f, 0.0f };
+
+class npc_eye_of_acherus : public CreatureScript
+{
+ public:
+ npc_eye_of_acherus() : CreatureScript("npc_eye_of_acherus") { }
+
+ struct npc_eye_of_acherusAI : public ScriptedAI
+ {
+ npc_eye_of_acherusAI(Creature* creature) : ScriptedAI(creature)
+ {
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid1);
+ if (Player* owner = me->GetCharmerOrOwner()->ToPlayer())
+ owner->SendAutoRepeatCancel(me);
+
+ me->SetReactState(REACT_PASSIVE);
+
+ me->GetMotionMaster()->MovePoint(POINT_EYE_FALL, EyeOFAcherusFallPoint, false);
+
+ Movement::MoveSplineInit init(me);
+ init.MoveTo(EyeOFAcherusFallPoint.GetPositionX(), EyeOFAcherusFallPoint.GetPositionY(), EyeOFAcherusFallPoint.GetPositionZ(), false);
+ init.SetFall();
+ init.Launch();
+ }
+
+ void OnCharmed(bool /*apply*/) override { }
+
+ void UpdateAI(uint32 diff) override
+ {
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_MOVE_START:
+ {
+ DoCast(me, SPELL_EYE_FLIGHT_BOOST);
+
+ me->SetControlled(false, UNIT_STATE_ROOT);
+ if (Player* owner = me->GetCharmerOrOwner()->ToPlayer())
+ {
+ for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i)
+ me->SetSpeed(UnitMoveType(i), owner->GetSpeedRate(UnitMoveType(i)), true);
+ Talk(TALK_MOVE_START, owner);
+ }
+ me->GetMotionMaster()->MovePath(me->GetEntry() * 100, false);
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+ void MovementInform(uint32 movementType, uint32 pointId) override
+ {
+ if (movementType == WAYPOINT_MOTION_TYPE && pointId == POINT_EYE_MOVE_END - 1)
+ {
+ me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
+ me->RemoveAllAuras();
+
+ if (Player* owner = me->GetCharmerOrOwner()->ToPlayer())
+ {
+ owner->RemoveAura(SPELL_EYE_FLIGHT_BOOST);
+ for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i)
+ me->SetSpeed(UnitMoveType(i), owner->GetSpeedRate(UnitMoveType(i)), true);
+
+ TalkToMap(TALK_CONTROL, owner);
+ }
+ me->SetDisableGravity(false);
+ DoCast(me, SPELL_EYE_FLIGHT);
+ }
+
+ if (movementType == POINT_MOTION_TYPE && pointId == POINT_EYE_FALL)
+ {
+ me->SetDisableGravity(true);
+ me->SetControlled(true, UNIT_STATE_ROOT);
+ _events.ScheduleEvent(EVENT_MOVE_START, 5000);
+ }
+ }
+
+ private:
+ EventMap _events;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const override
+ {
+ return new npc_eye_of_acherusAI(creature);
+ }
+};
+
/*######
## npc_death_knight_initiate
######*/
@@ -1079,6 +1191,7 @@ void AddSC_the_scarlet_enclave_c1()
new npc_unworthy_initiate();
new npc_unworthy_initiate_anchor();
new go_acherus_soul_prison();
+ new npc_eye_of_acherus();
new npc_death_knight_initiate();
new npc_salanar_the_horseman();
new npc_dark_rider_of_acherus();
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 173e03fef7c..f17aac51519 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -2026,7 +2026,6 @@ class spell_q12308_escape_from_silverbrook_summon_worgen : public SpellScriptLoa
}
};
-
enum DeathComesFromOnHigh
{
SPELL_FORGE_CREDIT = 51974,
@@ -2097,6 +2096,37 @@ class spell_q12641_death_comes_from_on_high : public SpellScriptLoader
}
};
+// 52694 - Recall Eye of Acherus
+class spell_q12641_recall_eye_of_acherus : public SpellScriptLoader
+{
+ public:
+ spell_q12641_recall_eye_of_acherus() : SpellScriptLoader("spell_q12641_recall_eye_of_acherus") { }
+
+ class spell_q12641_recall_eye_of_acherus_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_q12641_recall_eye_of_acherus_SpellScript);
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (Player* player = GetCaster()->GetCharmerOrOwner()->ToPlayer())
+ {
+ player->StopCastingCharm();
+ player->StopCastingBindSight();
+ }
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_q12641_recall_eye_of_acherus_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const override
+ {
+ return new spell_q12641_recall_eye_of_acherus_SpellScript();
+ }
+};
+
// 51769 - Emblazon Runeblade
class spell_q12619_emblazon_runeblade : public SpellScriptLoader
{
@@ -2364,6 +2394,7 @@ void AddSC_quest_spell_scripts()
new spell_q12308_escape_from_silverbrook_summon_worgen();
new spell_q12308_escape_from_silverbrook();
new spell_q12641_death_comes_from_on_high();
+ new spell_q12641_recall_eye_of_acherus();
new spell_q12619_emblazon_runeblade();
new spell_q12619_emblazon_runeblade_effect();
new spell_q12919_gymers_grab();