diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-12-29 12:43:57 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-12-29 12:43:57 +0100 |
| commit | 44130cf9c49a982d8ac4371c81d778dee21b1f2e (patch) | |
| tree | 1ff86b420ded41995c6042188e4d218c51e2c71d /src | |
| parent | b81355bb99dce139b00cfefabe34ad2e0bc53040 (diff) | |
Scripts/ExilesReach: Use new loot tracking quest feature to kill script hacks for it
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/ExilesReach/zone_exiles_reach.cpp | 185 |
1 files changed, 10 insertions, 175 deletions
diff --git a/src/server/scripts/ExilesReach/zone_exiles_reach.cpp b/src/server/scripts/ExilesReach/zone_exiles_reach.cpp index babaa691228..e53b4dd9e3b 100644 --- a/src/server/scripts/ExilesReach/zone_exiles_reach.cpp +++ b/src/server/scripts/ExilesReach/zone_exiles_reach.cpp @@ -15,37 +15,28 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include "ScriptMgr.h" #include "AreaTrigger.h" #include "AreaTriggerAI.h" -#include "Conversation.h" -#include "CreatureAIImpl.h" -#include "Map.h" -#include "Object.h" -#include "Player.h" #include "CellImpl.h" +#include "CombatAI.h" #include "Containers.h" +#include "Conversation.h" #include "GridNotifiers.h" #include "GridNotifiersImpl.h" #include "MotionMaster.h" #include "ObjectAccessor.h" -#include "ObjectMgr.h" #include "PassiveAI.h" +#include "PhasingHandler.h" +#include "Player.h" #include "ScriptedCreature.h" -#include "ScriptMgr.h" -#include "ScriptSystem.h" #include "SpellAuras.h" +#include "SpellHistory.h" #include "SpellInfo.h" #include "SpellScript.h" #include "TemporarySummon.h" -#include "Transport.h" -#include "Loot.h" -#include "SpellHistory.h" +#include "VehicleDefines.h" #include "WorldStateMgr.h" -#include "Unit.h" -#include "Vehicle.h" -#include "WorldSession.h" -#include "CombatAI.h" -#include "PhasingHandler.h" template<class privateAI, class publicAI> CreatureAI* GetPrivatePublicPairAISelector(Creature* creature) @@ -1522,58 +1513,11 @@ struct npc_lana_jordan_beach_laying : public ScriptedAI } }; -enum ExilesReachMurlocsData -{ - ITEM_STITCHED_CLOTH_SHOES = 174791, - ITEM_STITCHED_LEATHER_BOOTS = 174792, - ITEM_LINKED_MAIL_BOOTS = 174793, - ITEM_DENTED_PLATE_BOOTS = 174794, - - QUEST_MURLOC_HIDEAWAY_BOOTS_DROPPED = 58883 -}; - // 150228 - Murloc Spearhunter // 150229 - Murloc Watershaper -struct npc_murloc_spearhunter_watershaper : public ScriptedAI +struct npc_murloc_spearhunter_watershaper_higher_ground : public ScriptedAI { - npc_murloc_spearhunter_watershaper(Creature* creature) : ScriptedAI(creature) { } - - void JustDied(Unit* /*killer*/) override - { - for (auto const& [playerGuid, loot] : me->m_personalLoot) - { - if (Player* player = ObjectAccessor::GetPlayer(*me, playerGuid)) - { - if (player->IsQuestRewarded(QUEST_MURLOC_HIDEAWAY_BOOTS_DROPPED)) - break; - - for (LootItem const& lootItem : loot->items) - { - if (lootItem.type != LootItemType::Item) - continue; - - switch (lootItem.itemid) - { - case ITEM_STITCHED_CLOTH_SHOES: - case ITEM_STITCHED_LEATHER_BOOTS: - case ITEM_LINKED_MAIL_BOOTS: - case ITEM_DENTED_PLATE_BOOTS: - player->SetRewardedQuest(QUEST_MURLOC_HIDEAWAY_BOOTS_DROPPED); - break; - default: - break; - } - } - } - } - } -}; - -// 150228 - Murloc Spearhunter -// 150229 - Murloc Watershaper -struct npc_murloc_spearhunter_watershaper_higher_ground : public npc_murloc_spearhunter_watershaper -{ - npc_murloc_spearhunter_watershaper_higher_ground(Creature* creature) : npc_murloc_spearhunter_watershaper(creature) { } + using ScriptedAI::ScriptedAI; void JustEngagedWith(Unit* who) override { @@ -4377,8 +4321,6 @@ enum GeolordData SPELL_NECROTIC_RITUAL_DNT = 305513, SPELL_EARTH_BOLT = 270453, SPELL_UPHEAVAL = 319273, - - WORLDSTATE_HORDE = 4486 }; static constexpr Position PrisonerPosition = { 16.4271f, -2511.82f, 78.8215f, 5.66398f }; @@ -4392,7 +4334,7 @@ struct npc_geolord_grekog : public ScriptedAI { uint32 prisonerEntry = NPC_LINDIE_SPRINGSTOCK; - if (sWorldStateMgr->GetValue(WORLDSTATE_HORDE, me->GetMap()) == 1) + if (sWorldStateMgr->GetValue(WS_TEAM_IN_INSTANCE_HORDE, me->GetMap()) == 1) prisonerEntry = NPC_CORK_FIZZLEPOP; Creature* bunny = me->FindNearestCreatureWithOptions(25.0f, { .CreatureId = NPC_INVIS_BUNNY_GEOLORD, .IgnorePhases = true }); @@ -4516,16 +4458,6 @@ enum OgreOverseerQuilboarText SAY_DEATH = 1, }; -enum ExilesReachQuilboarData -{ - ITEM_STITCHED_CLOTH_TUNIC = 174811, - ITEM_STITCHED_LEATHER_TUNIC = 174812, - ITEM_LINKED_MAIL_HAUBERK = 174813, - ITEM_DENTED_CHESTPLATE = 174814, - - QUEST_BRIARPATCH_CHEST_DROPPED = 58904 -}; - enum QuilboarWarriorGeomancerData { EVENT_BRUTAL_STRIKE = 1, @@ -4561,33 +4493,6 @@ struct npc_quilboar_warrior : public ScriptedAI { if (roll_chance_f(33.33f)) Talk(SAY_DEATH, killer); - - for (auto const& [playerGuid, loot] : me->m_personalLoot) - { - if (Player* player = ObjectAccessor::GetPlayer(*me, playerGuid)) - { - if (player->IsQuestRewarded(QUEST_BRIARPATCH_CHEST_DROPPED)) - break; - - for (LootItem const& lootItem : loot->items) - { - if (lootItem.type != LootItemType::Item) - continue; - - switch (lootItem.itemid) - { - case ITEM_STITCHED_CLOTH_TUNIC: - case ITEM_STITCHED_LEATHER_TUNIC: - case ITEM_LINKED_MAIL_HAUBERK: - case ITEM_DENTED_CHESTPLATE: - player->SetRewardedQuest(QUEST_BRIARPATCH_CHEST_DROPPED); - break; - default: - break; - } - } - } - } } void UpdateAI(uint32 diff) override @@ -4639,33 +4544,6 @@ struct npc_quilboar_geomancer : public ScriptedAI { if (roll_chance_f(33.33f)) Talk(SAY_DEATH, killer); - - for (auto const& [playerGuid, loot] : me->m_personalLoot) - { - if (Player* player = ObjectAccessor::GetPlayer(*me, playerGuid)) - { - if (player->IsQuestRewarded(QUEST_BRIARPATCH_CHEST_DROPPED)) - break; - - for (LootItem const& lootItem : loot->items) - { - if (lootItem.type != LootItemType::Item) - continue; - - switch (lootItem.itemid) - { - case ITEM_STITCHED_CLOTH_TUNIC: - case ITEM_STITCHED_LEATHER_TUNIC: - case ITEM_LINKED_MAIL_HAUBERK: - case ITEM_DENTED_CHESTPLATE: - player->SetRewardedQuest(QUEST_BRIARPATCH_CHEST_DROPPED); - break; - default: - break; - } - } - } - } } void UpdateAI(uint32 diff) override @@ -4697,11 +4575,6 @@ enum ExilesReachOgreOverseerData EVENT_OVERSEER_BACKHAND = 1, EVENT_OVERSEER_EARTHSHATTER = 2, - ITEM_BATTERED_CLOAK = 11847, - ITEM_OVERSEERS_MANDATE = 174790, - - QUEST_BRIARPATCH_OVERSEER_CLOAK_DROPPED = 56051, - SPELL_BACKHAND = 276991, SPELL_EARTHSHATTER = 319292 }; @@ -4727,24 +4600,6 @@ struct npc_ogre_overseer : public ScriptedAI void JustDied(Unit* killer) override { Talk(SAY_DEATH, killer); - - for (auto const& [playerGuid, loot] : me->m_personalLoot) - { - if (Player* player = ObjectAccessor::GetPlayer(*me, playerGuid)) - { - if (player->IsQuestRewarded(QUEST_BRIARPATCH_OVERSEER_CLOAK_DROPPED)) - break; - - for (LootItem const& lootItem : loot->items) - { - if (lootItem.type == LootItemType::Item && lootItem.itemid == ITEM_BATTERED_CLOAK) - { - player->SetRewardedQuest(QUEST_BRIARPATCH_OVERSEER_CLOAK_DROPPED); - break; - } - } - } - } } void UpdateAI(uint32 diff) override @@ -6481,10 +6336,6 @@ enum TorgokData EVENT_CAST_SPIRIT_BOLT = 1, EVENT_CAST_SOUL_GRASP = 2, - ITEM_TORGOKS_REAGENT_POUCH = 176398, - - QUEST_TORGOKS_REAGENT_POUCH_DROPPED = 59610, - SPELL_SPIRIT_BOLT = 319294, SPELL_SOUL_GRASP = 319298 }; @@ -6510,21 +6361,6 @@ struct npc_torgok_q55879 : public ScriptedAI void JustDied(Unit* killer) override { Talk(SAY_DEATH, killer); - - for (auto const& [playerGuid, loot] : me->m_personalLoot) - { - if (Player* player = ObjectAccessor::GetPlayer(*me, playerGuid)) - { - for (LootItem const& lootItem : loot->items) - { - if (lootItem.type == LootItemType::Item && lootItem.itemid == ITEM_TORGOKS_REAGENT_POUCH) - { - player->SetRewardedQuest(QUEST_TORGOKS_REAGENT_POUCH_DROPPED); - break; - } - } - } - } } void UpdateAI(uint32 diff) override @@ -7121,7 +6957,6 @@ void AddSC_zone_exiles_reach() RegisterCreatureAI(npc_bo_beach_laying); RegisterCreatureAI(npc_mithran_dawntracker_beach_laying); RegisterCreatureAI(npc_lana_jordan_beach_laying); - RegisterCreatureAI(npc_murloc_spearhunter_watershaper); RegisterCreatureAI(npc_murloc_spearhunter_watershaper_higher_ground); new FactoryCreatureScript<CreatureAI, &BoBeachStandingAISelector>("npc_bo_beach_standing"); new FactoryCreatureScript<CreatureAI, &MithdranBeachStandingAISelector>("npc_mithdran_dawntracker_beach_standing"); |
