aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp131
-rw-r--r--src/game/TicketHandler.cpp2
2 files changed, 129 insertions, 4 deletions
diff --git a/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp b/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp
index c988054cfa9..49935651cb6 100644
--- a/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp
+++ b/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp
@@ -17,12 +17,13 @@
/* ScriptData
SDName: Ashenvale
SD%Complete: 70
-SDComment: Quest support: 6544
+SDComment: Quest support: 6544, 6482
SDCategory: Ashenvale Forest
EndScriptData */
/* ContentData
npc_torek
+npc_ruul_snowhoof
EndContentData */
#include "precompiled.h"
@@ -174,7 +175,125 @@ CreatureAI* GetAI_npc_torek(Creature *_Creature)
return (CreatureAI*)thisAI;
}
-
+
+/*####
+# npc_ruul_snowhoof
+####*/
+
+#define QUEST_FREEDOM_TO_RUUL 6482
+#define GO_CAGE 178147
+
+struct TRINITY_DLL_DECL npc_ruul_snowhoofAI : public npc_escortAI
+{
+ npc_ruul_snowhoofAI(Creature *c) : npc_escortAI(c) {Reset();}
+
+ void WaypointReached(uint32 i)
+ {
+ Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
+
+ if (!player)
+ return;
+
+ switch(i)
+ {
+ case 0: {
+ m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ GameObject* Cage = FindGameObject(GO_CAGE, 99);
+ if(Cage)
+ Cage->SetGoState(0);
+ break;}
+ case 13:
+ m_creature->SummonCreature(3922, 3449.218018, -587.825073, 174.978867, 4.714445, TEMPSUMMON_DEAD_DESPAWN, 60000);
+ m_creature->SummonCreature(3921, 3446.384521, -587.830872, 175.186279, 4.714445, TEMPSUMMON_DEAD_DESPAWN, 60000);
+ m_creature->SummonCreature(3926, 3444.218994, -587.835327, 175.380600, 4.714445, TEMPSUMMON_DEAD_DESPAWN, 60000);
+ break;
+ case 19:
+ m_creature->SummonCreature(3922, 3508.344482, -492.024261, 186.929031, 4.145029, TEMPSUMMON_DEAD_DESPAWN, 60000);
+ m_creature->SummonCreature(3921, 3506.265625, -490.531006, 186.740128, 4.239277, TEMPSUMMON_DEAD_DESPAWN, 60000);
+ m_creature->SummonCreature(3926, 3503.682373, -489.393799, 186.629684, 4.349232, TEMPSUMMON_DEAD_DESPAWN, 60000);
+ break;
+
+ case 21:{
+ if (player && player->GetTypeId() == TYPEID_PLAYER)
+ ((Player*)player)->GroupEventHappens(QUEST_FREEDOM_TO_RUUL,m_creature);
+
+ break; }
+ }
+ }
+
+ void Aggro(Unit* who) {}
+
+ void Reset()
+ {
+ if (!IsBeingEscorted)
+ m_creature->setFaction(1602);
+
+ GameObject* Cage = FindGameObject(GO_CAGE, 99);
+ if(Cage)
+ Cage->SetGoState(1);
+ }
+
+ void JustSummoned(Creature* summoned)
+ {
+ summoned->AI()->AttackStart(m_creature);
+ }
+
+ void JustDied(Unit* killer)
+ {
+ if (PlayerGUID)
+ {
+ Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
+ if (player)
+ ((Player*)player)->FailQuest(QUEST_FREEDOM_TO_RUUL);
+ }
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ npc_escortAI::UpdateAI(diff);
+ }
+};
+
+bool QuestAccept_npc_ruul_snowhoof(Player* player, Creature* creature, Quest const* quest)
+{
+ if (quest->GetQuestId() == QUEST_FREEDOM_TO_RUUL)
+ {
+ creature->setFaction(1603);
+ ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ }
+ return true;
+}
+
+CreatureAI* GetAI_npc_ruul_snowhoofAI(Creature *_Creature)
+{
+ npc_ruul_snowhoofAI* ruul_snowhoofAI = new npc_ruul_snowhoofAI(_Creature);
+
+ ruul_snowhoofAI->AddWaypoint(0, 3347.250089, -694.700989, 159.925995);
+ ruul_snowhoofAI->AddWaypoint(1, 3341.527039, -694.725891, 161.124542, 4000);
+ ruul_snowhoofAI->AddWaypoint(2, 3338.351074, -686.088138, 163.444000);
+ ruul_snowhoofAI->AddWaypoint(3, 3352.744873, -677.721741, 162.316269);
+ ruul_snowhoofAI->AddWaypoint(4, 3370.291016, -669.366943, 160.751358);
+ ruul_snowhoofAI->AddWaypoint(5, 3381.479492, -659.449097, 162.545303);
+ ruul_snowhoofAI->AddWaypoint(6, 3389.554199, -648.500000, 163.651825);
+ ruul_snowhoofAI->AddWaypoint(7, 3396.645020, -641.508911, 164.216019);
+ ruul_snowhoofAI->AddWaypoint(8, 3410.498535, -634.299622, 165.773453);
+ ruul_snowhoofAI->AddWaypoint(9, 3418.461426, -631.791992, 166.477615);
+ ruul_snowhoofAI->AddWaypoint(10, 3429.500000, -631.588745, 166.921265);
+ ruul_snowhoofAI->AddWaypoint(11,3434.950195, -629.245483, 168.333969);
+ ruul_snowhoofAI->AddWaypoint(12,3438.927979, -618.503235, 171.503143);
+ ruul_snowhoofAI->AddWaypoint(13,3444.217529, -609.293640, 173.077972, 1000); // Ambush 1
+ ruul_snowhoofAI->AddWaypoint(14,3460.505127, -593.794189, 174.342255);
+ ruul_snowhoofAI->AddWaypoint(15,3480.283203, -578.210327, 176.652313);
+ ruul_snowhoofAI->AddWaypoint(16,3492.912842, -562.335449, 181.396301);
+ ruul_snowhoofAI->AddWaypoint(17,3495.230957, -550.977600, 184.652267);
+ ruul_snowhoofAI->AddWaypoint(18,3496.247070, -529.194214, 188.172028);
+ ruul_snowhoofAI->AddWaypoint(19,3497.619385, -510.411499, 188.345322, 1000); // Ambush 2
+ ruul_snowhoofAI->AddWaypoint(20,3498.498047, -497.787506, 185.806274);
+ ruul_snowhoofAI->AddWaypoint(21,3484.218750, -489.717529, 182.389862, 4000); // End
+
+ return (CreatureAI*)ruul_snowhoofAI;
+}
+
void AddSC_ashenvale()
{
Script *newscript;
@@ -184,4 +303,10 @@ void AddSC_ashenvale()
newscript->GetAI = &GetAI_npc_torek;
newscript->pQuestAccept = &QuestAccept_npc_torek;
newscript->RegisterSelf();
-} \ No newline at end of file
+
+ newscript = new Script;
+ newscript->Name = "npc_ruul_snowhoof";
+ newscript->GetAI = &GetAI_npc_ruul_snowhoofAI;
+ newscript->pQuestAccept = &QuestAccept_npc_ruul_snowhoof;
+ newscript->RegisterSelf();
+}
diff --git a/src/game/TicketHandler.cpp b/src/game/TicketHandler.cpp
index 5f43fb9a384..71375beb5da 100644
--- a/src/game/TicketHandler.cpp
+++ b/src/game/TicketHandler.cpp
@@ -187,4 +187,4 @@ void WorldSession::HandleGMTicketSystemStatusOpcode( WorldPacket & /*recv_data*/
// Send Packet
SendPacket(&data);
-} \ No newline at end of file
+}