diff options
-rw-r--r-- | sql/updates/world/master/2021_12_31_16_world_2020_04_04_00_world.sql | 17 | ||||
-rw-r--r-- | src/server/scripts/Pet/pet_generic.cpp | 136 |
2 files changed, 17 insertions, 136 deletions
diff --git a/sql/updates/world/master/2021_12_31_16_world_2020_04_04_00_world.sql b/sql/updates/world/master/2021_12_31_16_world_2020_04_04_00_world.sql new file mode 100644 index 00000000000..f071c99fc03 --- /dev/null +++ b/sql/updates/world/master/2021_12_31_16_world_2020_04_04_00_world.sql @@ -0,0 +1,17 @@ +-- Baby Blizzard Bear +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='' WHERE `entry`=32841; +DELETE FROM `creature_template_addon` WHERE `entry` IN (32841); +INSERT INTO `creature_template_addon` (`entry`, `auras`) VALUES (32841,'61854'); +DELETE FROM `smart_scripts` WHERE `entryorguid`=32841 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid`=3284100 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`, `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 +(32841,0,0,0,8,0,100,0,61853,0,15000,15000,80,3284100,0,0,0,0,0,1,0,0,0,0,0,0,0,'Baby Blizzard Bear - On Spell Hit - Action list'), +(3284100,9,0,0,0,0,100,0,10000,15000,0,0,28,61853,0,0,0,0,0,1,0,0,0,0,0,0,0,'Baby Blizzard Bear - Action list - Remove Spell'); + +-- Egbert +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='' WHERE `entry`=23258; +DELETE FROM `smart_scripts` WHERE `entryorguid`=23258 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid`=2325800 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`, `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 +(23258,0,0,0,8,0,100,0,40669,0,15000,15000,80,2325800,0,0,0,0,0,1,0,0,0,0,0,0,0,'Egbert - On Spell Hit - Action list'), +(2325800,9,0,0,0,0,100,0,5000,15000,0,0,28,40669,0,0,0,0,0,1,0,0,0,0,0,0,0,'Egbert - Action list - Remove Spell'); diff --git a/src/server/scripts/Pet/pet_generic.cpp b/src/server/scripts/Pet/pet_generic.cpp index 0e5dfbca573..7aeb18a9787 100644 --- a/src/server/scripts/Pet/pet_generic.cpp +++ b/src/server/scripts/Pet/pet_generic.cpp @@ -21,15 +21,11 @@ */ /* ContentData - npc_pet_gen_baby_blizzard_bear 100% Baby Blizzard Bear sits down occasionally - npc_pet_gen_egbert 100% Egbert run's around npc_pet_gen_pandaren_monk 100% Pandaren Monk drinks and bows with you npc_pet_gen_mojo 100% Mojo follows you when you kiss it EndContentData */ #include "ScriptMgr.h" -#include "DB2Structure.h" -#include "Map.h" #include "MotionMaster.h" #include "ObjectAccessor.h" #include "PassiveAI.h" @@ -37,136 +33,6 @@ #include "Player.h" #include "ScriptedCreature.h" -enum BabyBlizzardBearMisc -{ - SPELL_BBB_PET_SIT = 61853, - EVENT_BBB_PET_SIT = 1, - EVENT_BBB_PET_SIT_INTER = 2 -}; - -class npc_pet_gen_baby_blizzard_bear : public CreatureScript -{ -public: - npc_pet_gen_baby_blizzard_bear() : CreatureScript("npc_pet_gen_baby_blizzard_bear") {} - - struct npc_pet_gen_baby_blizzard_bearAI : public NullCreatureAI - { - npc_pet_gen_baby_blizzard_bearAI(Creature* creature) : NullCreatureAI(creature) - { - if (Unit* owner = me->GetCharmerOrOwner()) - me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, me->GetFollowAngle()); - _events.ScheduleEvent(EVENT_BBB_PET_SIT, urandms(10, 30)); - } - - void UpdateAI(uint32 diff) override - { - _events.Update(diff); - - if (Unit* owner = me->GetCharmerOrOwner()) - if (!me->IsWithinDist(owner, 25.f)) - me->InterruptSpell(CURRENT_CHANNELED_SPELL); - - while (uint32 eventId = _events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_BBB_PET_SIT: - me->CastSpell(me, SPELL_BBB_PET_SIT, false); - _events.ScheduleEvent(EVENT_BBB_PET_SIT_INTER, urandms(15, 30)); - break; - case EVENT_BBB_PET_SIT_INTER: - me->InterruptSpell(CURRENT_CHANNELED_SPELL); - _events.ScheduleEvent(EVENT_BBB_PET_SIT, urandms(10, 30)); - break; - default: - break; - } - } - } - - private: - EventMap _events; - }; - - CreatureAI* GetAI(Creature* creature) const - { - return new npc_pet_gen_baby_blizzard_bearAI(creature); - } -}; - -enum EgbertMisc -{ - SPELL_EGBERT = 40669, - EVENT_RETURN = 3 -}; - -class npc_pet_gen_egbert : public CreatureScript -{ -public: - npc_pet_gen_egbert() : CreatureScript("npc_pet_gen_egbert") {} - - struct npc_pet_gen_egbertAI : public NullCreatureAI - { - npc_pet_gen_egbertAI(Creature* creature) : NullCreatureAI(creature) - { - if (Unit* owner = me->GetCharmerOrOwner()) - if (owner->GetMap()->GetEntry()->ExpansionID > 1) - me->SetCanFly(true); - } - - void Reset() override - { - _events.Reset(); - if (Unit* owner = me->GetCharmerOrOwner()) - me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, me->GetFollowAngle()); - } - - void EnterEvadeMode(EvadeReason why) override - { - if (!_EnterEvadeMode(why)) - return; - - Reset(); - } - - void UpdateAI(uint32 diff) override - { - _events.Update(diff); - - if (Unit* owner = me->GetCharmerOrOwner()) - { - if (!me->IsWithinDist(owner, 40.f)) - { - me->RemoveAura(SPELL_EGBERT); - me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, me->GetFollowAngle()); - } - } - - if (me->HasAura(SPELL_EGBERT)) - _events.ScheduleEvent(EVENT_RETURN, urandms(5, 20)); - - while (uint32 eventId = _events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_RETURN: - me->RemoveAura(SPELL_EGBERT); - break; - default: - break; - } - } - } - private: - EventMap _events; - }; - - CreatureAI* GetAI(Creature* creature) const - { - return new npc_pet_gen_egbertAI(creature); - } -}; - enum PandarenMonkMisc { SPELL_PANDAREN_MONK = 69800, @@ -351,8 +217,6 @@ struct npc_pet_gen_soul_trader : public ScriptedAI void AddSC_generic_pet_scripts() { - new npc_pet_gen_baby_blizzard_bear(); - new npc_pet_gen_egbert(); new npc_pet_gen_pandaren_monk(); new npc_pet_gen_mojo(); RegisterCreatureAI(npc_pet_gen_soul_trader); |