aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/3.3.5/2021_03_14_05_world.sql134
-rw-r--r--src/server/scripts/Outland/zone_hellfire_peninsula.cpp121
2 files changed, 134 insertions, 121 deletions
diff --git a/sql/updates/world/3.3.5/2021_03_14_05_world.sql b/sql/updates/world/3.3.5/2021_03_14_05_world.sql
new file mode 100644
index 00000000000..ff9336ed2d9
--- /dev/null
+++ b/sql/updates/world/3.3.5/2021_03_14_05_world.sql
@@ -0,0 +1,134 @@
+-- Ancestral Spirit Wolf SAI (Source: Sniffs & https://www.youtube.com/watch?v=xFF8DOSeMcg)
+SET @ID := 17077;
+UPDATE `creature_template` SET `speed_walk` = 1.6, `speed_run` = 1, `unit_flags` = 768, `AIName` = "SmartAI", `ScriptName` = "" WHERE `entry` = @ID;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID AND `source_type` = 0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN @ID*100+0 AND @ID*100+3 AND `source_type` = 9;
+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`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ID,0,0,0,54,0,100,0,0,0,0,0,0,80,@ID*100+0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Just Summoned - Run Script"),
+(@ID,0,1,0,40,0,100,0,9,0,0,0,0,80,@ID*100+1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Waypoint 9 Reached - Run Script"),
+(@ID,0,2,0,40,0,100,0,68,0,0,0,0,80,@ID*100+2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Waypoint 68 Reached - Run Script"),
+(@ID,0,3,0,40,0,100,0,73,0,0,0,0,80,@ID*100+3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Waypoint 73 Reached - Run Script"),
+-- Hacky follow movement prevention
+(@ID*100+0,9,0,0,0,0,100,0,0,0,0,0,0,69,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Move To Self"),
+(@ID*100+0,9,1,0,0,0,100,0,0,0,0,0,0,11,29938,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Cast 'Guided by the Spirits'"),
+(@ID*100+0,9,2,0,0,0,100,0,0,0,0,0,0,11,30011,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Cast 'Quest - Ancestral Spirit Wolf Self Snare'"),
+(@ID*100+0,9,3,0,0,0,100,0,5000,5000,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Say Line 0"),
+(@ID*100+0,9,4,0,0,0,100,0,4000,4000,0,0,0,53,0,17077,0,0,0,2,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Start Waypoint"),
+
+(@ID*100+1,9,0,0,0,0,100,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Say Line 1"),
+-- Something happens here, he changes speed somehow
+(@ID*100+2,9,0,0,0,0,100,0,0,0,0,0,0,4,1018,0,1,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Play Sound 1018"),
+-- May be different
+(@ID*100+3,9,0,0,0,0,100,0,0,0,0,0,0,41,60000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Delayed Despawn"),
+(@ID*100+3,9,1,0,0,0,100,0,0,0,0,0,0,45,0,1,0,0,0,0,19,17123,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Set Data 0 1 (Earthcaller Ryga)");
+
+-- Earthcaller Ryga SAI
+SET @ID := 17123;
+UPDATE `creature_template` SET `speed_walk` = 1, `AIName` = "SmartAI" WHERE `entry` = @ID;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID AND `source_type` = 0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN @ID*100+0 AND @ID*100+2 AND `source_type` = 9;
+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`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ID,0,0,0,63,0,100,0,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Just Created - Set Event Phase 1"),
+(@ID,0,1,0,38,1,100,0,0,1,0,0,0,80,@ID*100+0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Data Set 0 1 - Run Script (Phase 1)"),
+(@ID,0,2,0,40,0,100,0,2,0,0,0,0,80,@ID*100+1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Waypoint 2 Reached - Run Script"),
+(@ID,0,3,0,40,0,100,0,4,0,0,0,0,80,@ID*100+2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Waypoint 4 Reached - Run Script"),
+
+(@ID*100+0,9,0,0,0,0,100,0,0,0,0,0,0,53,0,17123,0,0,0,2,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Start Waypoint"),
+(@ID*100+0,9,1,0,0,0,100,0,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Set Event Phase 2"),
+
+(@ID*100+1,9,0,0,0,0,100,0,1000,1000,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Say Line 0"),
+(@ID*100+1,9,1,0,0,0,100,0,0,0,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Set Flag Standstate Kneel"),
+(@ID*100+1,9,2,0,0,0,100,0,10000,10000,0,0,0,91,8,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Remove Flag Standstate Kneel"),
+
+(@ID*100+2,9,0,0,0,0,100,0,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Set Event Phase 1");
+
+DELETE FROM `script_waypoint` WHERE `entry` = 17077;
+DELETE FROM `waypoints` WHERE `entry` IN (17077,17123);
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES
+(17077,1,-19.435663,3803.981,93.55267,0,0,"Ancestral Spirit Wolf"),
+(17077,2,-18.685663,3801.731,94.30267,0,0,"Ancestral Spirit Wolf"),
+(17077,3,-17.185663,3800.981,95.30267,0,0,"Ancestral Spirit Wolf"),
+(17077,4,-15.185663,3801.981,96.05267,0,0,"Ancestral Spirit Wolf"),
+(17077,5,-14.435663,3803.731,96.05267,0,0,"Ancestral Spirit Wolf"),
+(17077,6,-14.435663,3804.981,95.80267,0,0,"Ancestral Spirit Wolf"),
+(17077,7,-15.435663,3805.981,94.80267,0,0,"Ancestral Spirit Wolf"),
+(17077,8,-16.935663,3806.481,94.05267,0,0,"Ancestral Spirit Wolf"),
+(17077,9,-17.14388,3805.7651,93.82591,0,6000,"Ancestral Spirit Wolf"), --
+
+(17077,10,-18.672201,3822.212,89.946106,0,0,"Ancestral Spirit Wolf"),
+(17077,11,-15.436849,3839.5933,86.010345,0,0,"Ancestral Spirit Wolf"),
+(17077,12,-13.511067,3869.3118,83.18117,0,0,"Ancestral Spirit Wolf"),
+(17077,13,-10.554254,3882.9075,83.18117,0,0,"Ancestral Spirit Wolf"),
+(17077,14,-3.270291,3897.9458,85.43117,0,0,"Ancestral Spirit Wolf"),
+(17077,15,5.854601,3906.4575,86.36614,0,0,"Ancestral Spirit Wolf"),
+(17077,16,21.961697,3917.6707,85.24114,0,0,"Ancestral Spirit Wolf"),
+(17077,17,40.73991,3927.2727,84.03038,0,0,"Ancestral Spirit Wolf"),
+(17077,18,60.198025,3935.109,81.423935,0,0,"Ancestral Spirit Wolf"),
+(17077,19,88.06445,3943.124,77.16091,0,0,"Ancestral Spirit Wolf"),
+(17077,20,116.48167,3942.2288,77.71034,0,0,"Ancestral Spirit Wolf"),
+(17077,21,140.60602,3938.9385,81.55002,0,0,"Ancestral Spirit Wolf"),
+(17077,22,171.98372,3938.8472,79.65354,0,0,"Ancestral Spirit Wolf"),
+(17077,23,192.11057,3941.6697,76.27854,0,0,"Ancestral Spirit Wolf"),
+(17077,24,210.7275,3945.3862,74.492744,0,0,"Ancestral Spirit Wolf"),
+(17077,25,229.317,3953.9805,73.117744,0,0,"Ancestral Spirit Wolf"),
+(17077,26,240.94531,3959.795,75.06353,0,0,"Ancestral Spirit Wolf"),
+(17077,27,252.27155,3963.4895,76.93853,0,0,"Ancestral Spirit Wolf"),
+(17077,28,273.8889,3978.8838,85.78987,0,0,"Ancestral Spirit Wolf"),
+(17077,29,290.13867,3990.5635,91.66487,0,0,"Ancestral Spirit Wolf"),
+(17077,30,320.1014,4005.4385,98.469826,0,0,"Ancestral Spirit Wolf"),
+(17077,31,338.62778,4002.79,104.993286,0,0,"Ancestral Spirit Wolf"),
+(17077,32,343.4465,3997.1423,109.36144,0,0,"Ancestral Spirit Wolf"),
+(17077,33,348.71088,3984.7383,115.98644,0,0,"Ancestral Spirit Wolf"),
+(17077,34,361.33035,3961.4485,123.48554,0,0,"Ancestral Spirit Wolf"),
+(17077,35,356.76953,3949.619,126.98554,0,0,"Ancestral Spirit Wolf"),
+(17077,36,346.75836,3922.0083,133.68163,0,0,"Ancestral Spirit Wolf"),
+(17077,37,347.1215,3899.5994,137.84831,0,0,"Ancestral Spirit Wolf"),
+(17077,38,347.1963,3880.4836,142.84831,0,0,"Ancestral Spirit Wolf"),
+(17077,39,337.12424,3856.1204,149.44649,0,0,"Ancestral Spirit Wolf"),
+(17077,40,331.16196,3842.576,153.38467,0,0,"Ancestral Spirit Wolf"),
+(17077,41,320.0521,3829.007,159.86176,0,0,"Ancestral Spirit Wolf"),
+(17077,42,313.16516,3826.182,160.61176,0,0,"Ancestral Spirit Wolf"),
+(17077,43,303.0879,3819.6777,163.98676,0,0,"Ancestral Spirit Wolf"),
+(17077,44,297.51276,3816.4011,165.62602,0,0,"Ancestral Spirit Wolf"),
+(17077,45,290.74023,3806.499,169.62602,0,0,"Ancestral Spirit Wolf"),
+(17077,46,285.93805,3794.88,174.97627,0,0,"Ancestral Spirit Wolf"),
+(17077,47,292.22098,3781.1619,181.85127,0,0,"Ancestral Spirit Wolf"),
+(17077,48,296.92133,3770.8481,185.10127,0,0,"Ancestral Spirit Wolf"),
+(17077,49,311.4395,3753.1104,184.11917,0,0,"Ancestral Spirit Wolf"),
+(17077,50,321.36182,3741.0325,184.36917,0,0,"Ancestral Spirit Wolf"),
+(17077,51,332.90778,3728.5825,184.65353,0,0,"Ancestral Spirit Wolf"),
+(17077,52,337.21378,3720.4072,184.01471,0,0,"Ancestral Spirit Wolf"),
+(17077,53,344.8604,3715.015,184.01471,0,0,"Ancestral Spirit Wolf"),
+(17077,54,358.15982,3716.5864,184.01471,0,0,"Ancestral Spirit Wolf"),
+(17077,55,366.21744,3719.898,184.01471,0,0,"Ancestral Spirit Wolf"),
+(17077,56,374.8206,3724.2727,184.15353,0,0,"Ancestral Spirit Wolf"),
+(17077,57,403.90103,3737.9128,180.65353,0,0,"Ancestral Spirit Wolf"),
+(17077,58,421.35953,3750.1697,184.40353,0,0,"Ancestral Spirit Wolf"),
+(17077,59,448.62393,3768.8801,186.51082,0,0,"Ancestral Spirit Wolf"),
+(17077,60,462.85294,3776.5051,186.38582,0,0,"Ancestral Spirit Wolf"),
+(17077,61,472.87814,3791.1094,187.16379,0,0,"Ancestral Spirit Wolf"),
+(17077,62,484.18484,3809.1467,188.67741,0,0,"Ancestral Spirit Wolf"),
+(17077,63,495.23938,3826.8103,191.55241,0,0,"Ancestral Spirit Wolf"),
+(17077,64,498.87946,3837.6038,193.37997,0,0,"Ancestral Spirit Wolf"),
+(17077,65,500.95297,3849.591,194.49019,0,0,"Ancestral Spirit Wolf"),
+(17077,66,505.95724,3862.4604,194.36519,0,0,"Ancestral Spirit Wolf"),
+(17077,67,511.11978,3869.2805,192.93457,0,0,"Ancestral Spirit Wolf"),
+(17077,68,518.094,3877.0725,191.80957,0,0,"Ancestral Spirit Wolf"), --
+(17077,69,521.2715,3882.2812,190.93457,0,0,"Ancestral Spirit Wolf"),
+(17077,70,526.9002,3885.513,190.05957,0,0,"Ancestral Spirit Wolf"),
+(17077,71,527.0562,3891.684,189.05957,0,0,"Ancestral Spirit Wolf"),
+(17077,72,521.69653,3890.5703,189.55957,0,0,"Ancestral Spirit Wolf"),
+(17077,73,520.24036,3885.3213,190.43457,0,0,"Ancestral Spirit Wolf"), --
+
+(17123,1,509.49414,3881.9792,191.55957,0,0,"Earthcaller Ryga"),
+(17123,2,517.92773,3883.6355,190.68457,0,11000,"Earthcaller Ryga"), --
+(17123,3,505.5433,3882.0378,191.3179,0,0,"Earthcaller Ryga"),
+(17123,4,504.59192,3882.131,192.18457,5.79449319839477539,1,"Earthcaller Ryga");
+
+UPDATE `creature_text` SET `Sound` = 9036 WHERE `CreatureID` = 17077 AND `GroupID` = 1;
+UPDATE `creature_text` SET `comment` = "Ancestral Spirit Wolf" WHERE `CreatureID` = 17077;
+UPDATE `creature_text` SET `comment` = "Earthcaller Ryga" WHERE `CreatureID` = 17123;
+
+DELETE FROM `creature_template_movement` WHERE `CreatureId` = 17123;
+INSERT INTO `creature_template_movement` (`CreatureId`,`Ground`,`Swim`,`Flight`,`Rooted`,`Chase`,`Random`,`InteractionPauseTimer`) VALUES
+(17123,1,1,0,0,0,0,0);
diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
index 84be0586c93..eadbd0f3739 100644
--- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
+++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
@@ -15,19 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Hellfire_Peninsula
-SD%Complete: 100
-SDComment: Quest support: 9375, 9410, 9418, 10129, 10146, 10162, 10163, 10340, 10346, 10347, 10382 (Special flight paths) "Needs update"
-SDCategory: Hellfire Peninsula
-EndScriptData */
-
-/* ContentData
-npc_aeranas
-npc_ancestral_wolf
-npc_wounded_blood_elf
-EndContentData */
-
#include "ScriptMgr.h"
#include "CellImpl.h"
#include "GridNotifiersImpl.h"
@@ -133,113 +120,6 @@ public:
}
};
-/*######
-## npc_ancestral_wolf
-######*/
-
-enum AncestralWolf
-{
- EMOTE_WOLF_LIFT_HEAD = 0,
- EMOTE_WOLF_HOWL = 1,
- SAY_WOLF_WELCOME = 0,
- SPELL_ANCESTRAL_WOLF_BUFF = 29938,
- NPC_RYGA = 17123
-};
-
-class npc_ancestral_wolf : public CreatureScript
-{
-public:
- npc_ancestral_wolf() : CreatureScript("npc_ancestral_wolf") { }
-
- struct npc_ancestral_wolfAI : public EscortAI
- {
- npc_ancestral_wolfAI(Creature* creature) : EscortAI(creature) { }
-
- void InitializeAI() override
- {
- if (me->GetOwner() && me->GetOwner()->GetTypeId() == TYPEID_PLAYER)
- {
- EscortAI::Start(false, false, me->GetOwner()->GetGUID());
-
- me->SetSpeedRate(MOVE_WALK, 1.5f);
-
- if (TempSummon* tempSummon = me->ToTempSummon())
- tempSummon->SetCanFollowOwner(false);
- }
- else
- TC_LOG_ERROR("scripts", "TRINITY: npc_ancestral_wolf can not obtain owner or owner is not a player.");
- }
-
- void Reset() override
- {
- }
-
- // Override Evade Mode event, recast buff that was removed by standard handler
- void EnterEvadeMode(EvadeReason why) override
- {
- EscortAI::EnterEvadeMode(why);
- DoCast(me, SPELL_ANCESTRAL_WOLF_BUFF, true);
- }
-
- void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override
- {
- switch (waypointId)
- {
- case 0:
- Talk(EMOTE_WOLF_LIFT_HEAD);
- break;
- case 2:
- Talk(EMOTE_WOLF_HOWL);
- DoCast(me, SPELL_ANCESTRAL_WOLF_BUFF, true);
- break;
- // Move Ryga into position
- case 48:
- if (Creature* ryga = me->FindNearestCreature(NPC_RYGA, 70.0f))
- {
- if (ryga->IsAlive() && !ryga->IsInCombat())
- {
- ryga->SetWalk(true);
- ryga->SetSpeedRate(MOVE_WALK, 1.5f);
- ryga->GetMotionMaster()->MovePoint(0, 517.340698f, 3885.03975f, 190.455978f, true);
- }
- }
- break;
- // Ryga Kneels and welcomes spirit wolf
- case 50:
- if (Creature* ryga = me->FindNearestCreature(NPC_RYGA, 70.0f))
- {
- if (ryga->IsAlive() && !ryga->IsInCombat())
- {
- ryga->SetFacingTo(0.776773f);
- ryga->SetStandState(UNIT_STAND_STATE_KNEEL);
- ryga->AI()->Talk(SAY_WOLF_WELCOME);
- }
- }
- break;
- // Ryga returns to spawn point
- case 51:
- if (Creature* ryga = me->FindNearestCreature(NPC_RYGA, 70.0f))
- {
- if (ryga->IsAlive() && !ryga->IsInCombat())
- {
- float fRetX, fRetY, fRetZ, fRetO;
- ryga->GetRespawnPosition(fRetX, fRetY, fRetZ, &fRetO);
- ryga->SetHomePosition(fRetX, fRetY, fRetZ, fRetO);
- ryga->SetStandState(UNIT_STAND_STATE_STAND);
- ryga->GetMotionMaster()->MoveTargetedHome();
- }
- }
- break;
- }
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- return new npc_ancestral_wolfAI(creature);
- }
-};
-
enum ExorcismSpells
{
SPELL_JULES_GOES_PRONE = 39283,
@@ -1009,7 +889,6 @@ struct npc_fear_controller : public ScriptedAI
void AddSC_hellfire_peninsula()
{
new npc_aeranas();
- new npc_ancestral_wolf();
new npc_colonel_jules();
new npc_barada();
new npc_magister_aledis();