diff options
| -rw-r--r-- | sql/FULL/world_script_waypoints.sql | 37 | ||||
| -rw-r--r-- | sql/FULL/world_scripts_full.sql | 1 | ||||
| -rw-r--r-- | sql/updates/5009_world_scripts.sql | 16 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp | 88 | 
4 files changed, 132 insertions, 10 deletions
diff --git a/sql/FULL/world_script_waypoints.sql b/sql/FULL/world_script_waypoints.sql index 3d705cd501d..f7c7e30631d 100644 --- a/sql/FULL/world_script_waypoints.sql +++ b/sql/FULL/world_script_waypoints.sql @@ -1019,14 +1019,31 @@ INSERT INTO `script_waypoint` VALUES  (3678, 23, 114.619, 235.908, -96.0495, 0, ''),  (3678, 24, 114.777, 237.155, -96.0304, 2500, 'NARALEX_EVENT_FINISHED'); -/* EOF */ +DELETE FROM `script_waypoint` WHERE `entry` = 22424; +INSERT INTO `script_waypoint` VALUES +('22424','0','-3605.719971','4175.580078','-0.031817','0','START_SKYWING'), +('22424','1','-3602.311279','4253.213867','0.562436','0',''), +('22424','2','-3529.151367','4263.524414','-7.871151','0',''), +('22424','3','-3448.130371','4257.990723','-11.626289','0',''), +('22424','4','-3377.783936','4209.064941','-9.476727','0',''), +('22424','5','-3378.211426','4154.628418','0.366330','0',''), +('22424','6','-3376.920166','4085.501709','14.178538','0',''), +('22424','7','-3399.274658','4055.948975','18.603474','0',''), +('22424','8','-3432.678223','4054.069824','29.588032','10000',''); + +DELETE FROM `script_waypoint` WHERE `entry` = 22377; +INSERT INTO `script_waypoint` VALUES +(22377, 0, -2766.31, 5429.65, -34.53, 0, ''), +(22377, 1, -2769.35, 5416.25, -34.53, 0, ''), +(22377, 2, -2780.07, 5416.06, -34.53, 1000, ''), +(22377, 3, -2812.56, 5415.20, -34.53, 1000, ''), +(22377, 4, -2816.95, 5415.02, -34.52, 0, ''), +(22377, 5, -2827.86, 5414.56, -28.29, 0, ''), +(22377, 6, -2878.32, 5414.11, -28.26, 0, ''), +(22377, 7, -2893.17, 5413.15, -18.59, 0, ''), +(22377, 8, -2896.36, 5409.65, -18.59, 0, ''), +(22377, 9, -2896.50, 5396.76, -8.77, 0, ''), +(22377, 10, -2896.67, 5366.20, -9.59, 0, ''), +(22377, 11, -2888.23, 5330.39, -11.19, 2000, ''); -insert into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','0','-3605.719971','4175.580078','-0.031817','0','START_SKYWING'); -insert into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','1','-3602.311279','4253.213867','0.562436','0',''); -insert into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','2','-3529.151367','4263.524414','-7.871151','0',''); -insert into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','3','-3448.130371','4257.990723','-11.626289','0',''); -insert into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','4','-3377.783936','4209.064941','-9.476727','0',''); -insert into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','5','-3378.211426','4154.628418','0.366330','0',''); -insert into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','6','-3376.920166','4085.501709','14.178538','0',''); -insert into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','7','-3399.274658','4055.948975','18.603474','0',''); -insert into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','8','-3432.678223','4054.069824','29.588032','10000','');
\ No newline at end of file +/* EOF */
\ No newline at end of file diff --git a/sql/FULL/world_scripts_full.sql b/sql/FULL/world_scripts_full.sql index 26e51a5534f..5bb7fad1947 100644 --- a/sql/FULL/world_scripts_full.sql +++ b/sql/FULL/world_scripts_full.sql @@ -996,6 +996,7 @@ UPDATE `creature_template` SET `ScriptName`='npc_floon' WHERE `entry`=18588;  UPDATE `creature_template` SET `ScriptName`='npc_isla_starmane' WHERE `entry`=18760;  UPDATE `creature_template` SET `ScriptName`='mob_unkor_the_ruthless' WHERE `entry`=18262;  UPDATE `creature_template` SET `ScriptName`='npc_slim' WHERE `entry`=19679; +UPDATE `creature_template` SET `ScriptName`='npc_akuno' WHERE `entry`=22377;  /* THOUSAND NEEDLES */  UPDATE `creature_template` SET `ScriptName`='npc_paoka_swiftmountain' WHERE `entry`=10427; diff --git a/sql/updates/5009_world_scripts.sql b/sql/updates/5009_world_scripts.sql new file mode 100644 index 00000000000..732614d4ad9 --- /dev/null +++ b/sql/updates/5009_world_scripts.sql @@ -0,0 +1,16 @@ +UPDATE `creature_template` SET `ScriptName`='npc_akuno' WHERE `entry`=22377; + +DELETE FROM `script_waypoint` WHERE `entry`=22377; +INSERT INTO `script_waypoint` VALUES +(22377, 0, -2766.31, 5429.65, -34.53, 0, ''), +(22377, 1, -2769.35, 5416.25, -34.53, 0, ''), +(22377, 2, -2780.07, 5416.06, -34.53, 1000, ''), +(22377, 3, -2812.56, 5415.20, -34.53, 1000, ''), +(22377, 4, -2816.95, 5415.02, -34.52, 0, ''), +(22377, 5, -2827.86, 5414.56, -28.29, 0, ''), +(22377, 6, -2878.32, 5414.11, -28.26, 0, ''), +(22377, 7, -2893.17, 5413.15, -18.59, 0, ''), +(22377, 8, -2896.36, 5409.65, -18.59, 0, ''), +(22377, 9, -2896.50, 5396.76, -8.77, 0, ''), +(22377, 10, -2896.67, 5366.20, -9.59, 0, ''), +(22377, 11, -2888.23, 5330.39, -11.19, 2000, ''); diff --git a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp index 5616ecfcd88..d875a721b7e 100644 --- a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp +++ b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp @@ -613,6 +613,88 @@ bool GossipSelect_npc_slim(Player* pPlayer, Creature* pCreature, uint32 uiSender      return true;  } +/*######## +####npc_Akuno +#####*/ + +#define QUEST_NPC_AKUNO 10887 +#define Summon 21661 + +struct TRINITY_DLL_DECL npc_akunoAI : public npc_escortAI +{ +    npc_akunoAI(Creature *c) : npc_escortAI(c) {} + +    bool IsWalking; + + +    void WaypointReached(uint32 i) +    { +        Player* player = Unit::GetPlayer(PlayerGUID); + +        if(!player) +            return; + +        if(IsWalking && !m_creature->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE)) +            m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); +     +         +        switch(i)  +        { +        case 0  : m_creature->setFaction(5);break; +        case 3  : m_creature->SummonCreature(Summon,-2795.99,5420.33,-34.53,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); +                  m_creature->SummonCreature(Summon,-2793.55,5412.79,-34.53,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); +                  break; +        case 11 : { +            if(player && player->GetTypeId() == TYPEID_PLAYER) +                ((Player*)player)->GroupEventHappens(QUEST_NPC_AKUNO,m_creature); +                m_creature->setFaction(18);break; +                  } +        } +    } +    void Aggro(Unit* who) +    {} + +    void Reset() +    { +        if (IsWalking && !m_creature->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE)) +        { +            m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); +            return; +        } +        IsWalking=false; +    } + +    void JustDied(Unit* killer) +    { +        if (PlayerGUID) +        { +            if (Player* player = Unit::GetPlayer(PlayerGUID)) +                player->FailQuest(QUEST_NPC_AKUNO); +        } +    } + +    void UpdateAI(const uint32 diff) +    { +        npc_escortAI::UpdateAI(diff); +    } +}; + +    bool QuestAccept_npc_akuno(Player* player, Creature* creature, Quest const* quest) +    { +        if(quest->GetQuestId() == QUEST_NPC_AKUNO) +        { +              ((npc_escortAI*)creature->AI())->Start(false,true,player->GetGUID()); +        } +        return true; +    } + +CreatureAI* GetAI_npc_akuno(Creature *_Creature) +{ +    npc_akunoAI* thisAI = new npc_akunoAI(_Creature); +    thisAI->FillPointMovementListForCreature(); +    return(CreatureAI*)thisAI; +} +  void AddSC_terokkar_forest()  {      Script *newscript; @@ -666,5 +748,11 @@ void AddSC_terokkar_forest()      newscript->pGossipHello =  &GossipHello_npc_slim;      newscript->pGossipSelect = &GossipSelect_npc_slim;      newscript->RegisterSelf(); + +    newscript = new Script; +    newscript->Name="npc_akuno"; +    newscript->GetAI = &GetAI_npc_akuno; +    newscript->pQuestAccept = &QuestAccept_npc_akuno; +    newscript->RegisterSelf();  }  | 
