diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-09-05 18:26:56 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-09-05 18:26:56 +0200 |
| commit | bbe58b2862d6bcbeadaf19687f704270d95d12c2 (patch) | |
| tree | b64c45198bd2c94044c2bec02873392a09010289 /src/server/scripts/Outland | |
| parent | 267a9a17bad2170f81a9ea96c5a4fe63927249f1 (diff) | |
| parent | b7f5080c9bc277b46aa3817d2796dc45969f9902 (diff) | |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Diffstat (limited to 'src/server/scripts/Outland')
| -rw-r--r-- | src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp | 98 | ||||
| -rw-r--r-- | src/server/scripts/Outland/zone_shadowmoon_valley.cpp | 79 |
2 files changed, 36 insertions, 141 deletions
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp index 53680739e55..67e09ba4ac9 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,13 +15,6 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_The_Maker -SD%Complete: 80 -SDComment: Mind control no support -SDCategory: Hellfire Citadel, Blood Furnace -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "blood_furnace.h" @@ -42,6 +34,14 @@ enum Spells SPELL_DOMINATION = 25772 }; +enum Events +{ + EVENT_ACID_SPRAY = 1, + EVENT_EXPLODING_BREAKER, + EVENT_DOMINATION, + EVENT_KNOCKDOWN +}; + class boss_the_maker : public CreatureScript { public: @@ -51,24 +51,15 @@ class boss_the_maker : public CreatureScript { boss_the_makerAI(Creature* creature) : BossAI(creature, DATA_THE_MAKER) { } - uint32 AcidSpray_Timer; - uint32 ExplodingBreaker_Timer; - uint32 Domination_Timer; - uint32 Knockdown_Timer; - - void Reset() override - { - _Reset(); - AcidSpray_Timer = 15000; - ExplodingBreaker_Timer = 6000; - Domination_Timer = 120000; - Knockdown_Timer = 10000; - } - void EnterCombat(Unit* /*who*/) override { _EnterCombat(); Talk(SAY_AGGRO); + + events.ScheduleEvent(EVENT_ACID_SPRAY, 15000); + events.ScheduleEvent(EVENT_EXPLODING_BREAKER, 6000); + events.ScheduleEvent(EVENT_DOMINATION, 120000); + events.ScheduleEvent(EVENT_KNOCKDOWN, 10000); } void KilledUnit(Unit* who) override @@ -83,49 +74,31 @@ class boss_the_maker : public CreatureScript Talk(SAY_DIE); } - void UpdateAI(uint32 diff) override + void ExecuteEvent(uint32 eventId) override { - if (!UpdateVictim()) - return; - - if (AcidSpray_Timer <= diff) - { - DoCastVictim(SPELL_ACID_SPRAY); - AcidSpray_Timer = 15000 + rand32() % 8000; - } - else - AcidSpray_Timer -=diff; - - if (ExplodingBreaker_Timer <= diff) + switch (eventId) { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - DoCast(target, SPELL_EXPLODING_BREAKER); - ExplodingBreaker_Timer = 4000 + rand32() % 8000; + case EVENT_ACID_SPRAY: + DoCastVictim(SPELL_ACID_SPRAY); + events.ScheduleEvent(EVENT_ACID_SPRAY, urand(15000, 23000)); + break; + case EVENT_EXPLODING_BREAKER: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f, true)) + DoCast(target, SPELL_EXPLODING_BREAKER); + events.ScheduleEvent(EVENT_EXPLODING_BREAKER, urand(4000, 12000)); + break; + case EVENT_DOMINATION: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true)) + DoCast(target, SPELL_DOMINATION); + events.ScheduleEvent(EVENT_DOMINATION, 120000); + break; + case EVENT_KNOCKDOWN: + DoCastVictim(SPELL_KNOCKDOWN); + events.ScheduleEvent(EVENT_KNOCKDOWN, urand(4000, 12000)); + break; + default: + break; } - else - ExplodingBreaker_Timer -=diff; - - /* // Disabled until Core Support for mind control - if (domination_timer_timer <= diff) - { - Unit* target; - target = SelectUnit(SELECT_TARGET_RANDOM, 0); - - DoCast(target, SPELL_DOMINATION); - - domination_timer = 120000; - } else domination_timer -=diff; - */ - - if (Knockdown_Timer <= diff) - { - DoCastVictim(SPELL_KNOCKDOWN); - Knockdown_Timer = 4000 + rand32() % 8000; - } - else - Knockdown_Timer -=diff; - - DoMeleeAttackIfReady(); } }; @@ -139,4 +112,3 @@ void AddSC_boss_the_maker() { new boss_the_maker(); } - diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index b9b87fd5d6a..db34665e641 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -19,7 +19,7 @@ /* ScriptData SDName: Shadowmoon_Valley SD%Complete: 100 -SDComment: Quest support: 10519, 10583, 10601, 10804, 10854, 10458, 10481, 10480, 10781, 10451. Vendor Drake Dealer Hurlunk. +SDComment: Quest support: 10583, 10601, 10804, 10854, 10458, 10481, 10480, 10781, 10451. Vendor Drake Dealer Hurlunk. SDCategory: Shadowmoon Valley EndScriptData */ @@ -29,7 +29,6 @@ npc_enslaved_netherwing_drake npc_drake_dealer_hurlunk npcs_flanis_swiftwing_and_kagrosh npc_karynaku -npc_oronok_tornheart npc_overlord_morghor npc_earthmender_wilda npc_torloth_the_magnificent @@ -492,81 +491,6 @@ public: }; /*###### -## npc_oronok -######*/ - -#define GOSSIP_ORONOK1 "I am ready to hear your story, Oronok." -#define GOSSIP_ORONOK2 "How do I find the cipher?" -#define GOSSIP_ORONOK3 "How do you know all of this?" -#define GOSSIP_ORONOK4 "Yet what? What is it, Oronok?" -#define GOSSIP_ORONOK5 "Continue, please." -#define GOSSIP_ORONOK6 "So what of the cipher now? And your boys?" -#define GOSSIP_ORONOK7 "I will find your boys and the cipher, Oronok." - -class npc_oronok_tornheart : public CreatureScript -{ -public: - npc_oronok_tornheart() : CreatureScript("npc_oronok_tornheart") { } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override - { - player->PlayerTalkClass->ClearMenus(); - switch (action) - { - case GOSSIP_ACTION_TRADE: - player->GetSession()->SendListInventory(creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - player->SEND_GOSSIP_MENU(10313, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+1: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); - player->SEND_GOSSIP_MENU(10314, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+2: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3); - player->SEND_GOSSIP_MENU(10315, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+3: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4); - player->SEND_GOSSIP_MENU(10316, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+4: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5); - player->SEND_GOSSIP_MENU(10317, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+5: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6); - player->SEND_GOSSIP_MENU(10318, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+6: - player->CLOSE_GOSSIP_MENU(); - player->AreaExploredOrEventHappens(10519); - break; - } - return true; - } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - if (creature->IsVendor()) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE); - - if (player->GetQuestStatus(10519) == QUEST_STATUS_INCOMPLETE) - { - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(10312, creature->GetGUID()); - }else - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - - return true; - } -}; - -/*#### # npc_karynaku ####*/ @@ -1909,7 +1833,6 @@ void AddSC_shadowmoon_valley() new npc_drake_dealer_hurlunk(); new npcs_flanis_swiftwing_and_kagrosh(); new npc_karynaku(); - new npc_oronok_tornheart(); new npc_overlord_morghor(); new npc_earthmender_wilda(); new npc_lord_illidan_stormrage(); |
