diff options
-rw-r--r-- | src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp | 253 | ||||
-rw-r--r-- | src/server/scripts/Northrend/zone_dragonblight.cpp | 34 | ||||
-rw-r--r-- | src/server/scripts/Northrend/zone_icecrown.cpp | 241 | ||||
-rw-r--r-- | src/server/scripts/World/go_scripts.cpp | 67 |
4 files changed, 0 insertions, 595 deletions
diff --git a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp index caf000fd124..5993b677292 100644 --- a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp +++ b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp @@ -24,8 +24,6 @@ SDCategory: Dustwallow Marsh EndScriptData */ /* ContentData -npc_stinky -go_blackhoof_cage EndContentData */ #include "ScriptMgr.h" @@ -37,99 +35,6 @@ EndContentData */ #include "WorldSession.h" /*###### -## npc_risen_husk_spirit -######*/ - -enum HauntingWitchHill -{ - // Quest - QUEST_WHATS_HAUNTING_WITCH_HILL = 11180, - - // General spells - SPELL_SUMMON_RESTLESS_APPARITION = 42511, - SPELL_WITCH_HILL_INFORMATION_CREDIT = 42512, - - // Risen Husk specific - SPELL_CONSUME_FLESH = 37933, - NPC_RISEN_HUSK = 23555, - - // Risen Spirit specific - SPELL_INTANGIBLE_PRESENCE = 43127, - NPC_RISEN_SPIRIT = 23554, - - // Events - EVENT_CONSUME_FLESH = 1, - EVENT_INTANGIBLE_PRESENCE = 2, -}; - -class npc_risen_husk_spirit : public CreatureScript -{ - public: - npc_risen_husk_spirit() : CreatureScript("npc_risen_husk_spirit") { } - - struct npc_risen_husk_spiritAI : public ScriptedAI - { - npc_risen_husk_spiritAI(Creature* creature) : ScriptedAI(creature) { } - - void Reset() override - { - events.Reset(); - if (me->GetEntry() == NPC_RISEN_HUSK) - events.ScheduleEvent(EVENT_CONSUME_FLESH, 5000); - else if (me->GetEntry() == NPC_RISEN_SPIRIT) - events.ScheduleEvent(EVENT_INTANGIBLE_PRESENCE, 5000); - } - - void JustDied(Unit* killer) override - { - if (killer->GetTypeId() == TYPEID_PLAYER) - { - if (killer->ToPlayer()->GetQuestStatus(QUEST_WHATS_HAUNTING_WITCH_HILL) == QUEST_STATUS_INCOMPLETE) - { - DoCast(me, SPELL_SUMMON_RESTLESS_APPARITION, true); - DoCast(killer, SPELL_WITCH_HILL_INFORMATION_CREDIT, true); - } - } - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_CONSUME_FLESH: - DoCastVictim(SPELL_CONSUME_FLESH); - events.ScheduleEvent(EVENT_CONSUME_FLESH, 15000); - break; - case EVENT_INTANGIBLE_PRESENCE: - DoCastVictim(SPELL_INTANGIBLE_PRESENCE); - events.ScheduleEvent(EVENT_INTANGIBLE_PRESENCE, 15000); - break; - default: - break; - } - } - - DoMeleeAttackIfReady(); - } - - private: - EventMap events; - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_risen_husk_spiritAI(creature); - } -}; - -/*###### ## npc_lady_jaina_proudmoore ######*/ @@ -366,132 +271,6 @@ public: }; -/*###### -## npc_stinky -######*/ - -enum Stinky -{ - QUEST_STINKYS_ESCAPE_H = 1270, - QUEST_STINKYS_ESCAPE_A = 1222, - SAY_QUEST_ACCEPTED = 0, - SAY_STAY_1 = 1, - SAY_STAY_2 = 2, - SAY_STAY_3 = 3, - SAY_STAY_4 = 4, - SAY_STAY_5 = 5, - SAY_STAY_6 = 6, - SAY_QUEST_COMPLETE = 7, - SAY_ATTACKED_1 = 8, - EMOTE_DISAPPEAR = 9 -}; - -class npc_stinky : public CreatureScript -{ -public: - npc_stinky() : CreatureScript("npc_stinky") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_stinkyAI(creature); - } - - bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) override - { - if (quest->GetQuestId() == QUEST_STINKYS_ESCAPE_H || quest->GetQuestId() == QUEST_STINKYS_ESCAPE_A) - { - if (npc_stinkyAI* pEscortAI = CAST_AI(npc_stinky::npc_stinkyAI, creature->AI())) - { - creature->setFaction(FACTION_ESCORT_N_NEUTRAL_ACTIVE); - creature->SetStandState(UNIT_STAND_STATE_STAND); - creature->AI()->Talk(SAY_QUEST_ACCEPTED); - pEscortAI->Start(false, false, player->GetGUID()); - } - } - return true; - } - - struct npc_stinkyAI : public npc_escortAI - { - npc_stinkyAI(Creature* creature) : npc_escortAI(creature) { } - - void WaypointReached(uint32 waypointId) override - { - Player* player = GetPlayerForEscort(); - if (!player) - return; - - switch (waypointId) - { - case 7: - Talk(SAY_STAY_1, player); - break; - case 11: - Talk(SAY_STAY_2, player); - break; - case 25: - Talk(SAY_STAY_3, player); - break; - case 26: - Talk(SAY_STAY_4, player); - break; - case 27: - Talk(SAY_STAY_5, player); - break; - case 28: - Talk(SAY_STAY_6, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - break; - case 29: - me->SetStandState(UNIT_STAND_STATE_STAND); - break; - case 37: - Talk(SAY_QUEST_COMPLETE, player); - me->SetSpeed(MOVE_RUN, 1.2f, true); - me->SetWalk(false); - if (player->GetQuestStatus(QUEST_STINKYS_ESCAPE_H)) - player->GroupEventHappens(QUEST_STINKYS_ESCAPE_H, me); - if (player->GetQuestStatus(QUEST_STINKYS_ESCAPE_A)) - player->GroupEventHappens(QUEST_STINKYS_ESCAPE_A, me); - break; - case 39: - Talk(EMOTE_DISAPPEAR); - break; - } - } - - void EnterCombat(Unit* who) override - { - Talk(SAY_ATTACKED_1, who); - } - - void Reset() override { } - - void JustDied(Unit* /*killer*/) override - { - Player* player = GetPlayerForEscort(); - if (player && HasEscortState(STATE_ESCORT_ESCORTING)) - { - if (player->GetQuestStatus(QUEST_STINKYS_ESCAPE_H)) - player->FailQuest(QUEST_STINKYS_ESCAPE_H); - - if (player->GetQuestStatus(QUEST_STINKYS_ESCAPE_A)) - player->FailQuest(QUEST_STINKYS_ESCAPE_A); - } - } - - void UpdateAI(uint32 uiDiff) override - { - npc_escortAI::UpdateAI(uiDiff); - - if (!UpdateVictim()) - return; - - DoMeleeAttackIfReady(); - } - }; -}; - enum SpellScripts { SPELL_OOZE_ZAP = 42489, @@ -631,41 +410,9 @@ class spell_energize_aoe : public SpellScriptLoader } }; -/*###### -## go_blackhoof_cage -######*/ - -enum PrisonersOfTheGrimTotems -{ - NPC_THERAMORE_PRISONER = 23720, - SAY_FREE = 0, -}; - -class go_blackhoof_cage : public GameObjectScript -{ -public: - go_blackhoof_cage() : GameObjectScript("go_blackhoof_cage") { } - - bool OnGossipHello(Player* player, GameObject* go) override - { - go->UseDoorOrButton(); - if (Creature* prisoner = go->FindNearestCreature(NPC_THERAMORE_PRISONER, 1.0f)) - { - if (player) - player->KilledMonsterCredit(NPC_THERAMORE_PRISONER); - - prisoner->AI()->Talk(SAY_FREE); // We also emote cry here (handled in creature_text.emote) - prisoner->DespawnOrUnsummon(6000); - } - return true; - } -}; - void AddSC_dustwallow_marsh() { - new npc_stinky(); new spell_ooze_zap(); new spell_ooze_zap_channel_end(); new spell_energize_aoe(); - new go_blackhoof_cage(); } diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp index e42bdc2b4f0..96ef8361841 100644 --- a/src/server/scripts/Northrend/zone_dragonblight.cpp +++ b/src/server/scripts/Northrend/zone_dragonblight.cpp @@ -24,7 +24,6 @@ SDCategory: Dragonblight EndScriptData */ /* ContentData -npc_alexstrasza_wr_gate EndContentData */ #include "ScriptMgr.h" @@ -366,38 +365,6 @@ enum AlexstraszaWrGate MOVIE_ID_GATES = 14 }; -#define GOSSIP_ITEM_WHAT_HAPPENED "Alexstrasza, can you show me what happened here?" - -class npc_alexstrasza_wr_gate : public CreatureScript -{ -public: - npc_alexstrasza_wr_gate() : CreatureScript("npc_alexstrasza_wr_gate") { } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - - if (player->GetQuestRewardStatus(QUEST_RETURN_TO_AG_A) || player->GetQuestRewardStatus(QUEST_RETURN_TO_AG_H)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_WHAT_HAPPENED, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - return true; - } - - bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override - { - player->PlayerTalkClass->ClearMenus(); - if (action == GOSSIP_ACTION_INFO_DEF+1) - { - player->CLOSE_GOSSIP_MENU(); - player->SendMovieStart(MOVIE_ID_GATES); - } - - return true; - } -}; - /*###### ## Quest Strengthen the Ancients (12096|12092) ######*/ @@ -736,7 +703,6 @@ class npc_torturer_lecraft : public CreatureScript void AddSC_dragonblight() { new npc_commander_eligor_dawnbringer(); - new npc_alexstrasza_wr_gate(); new spell_q12096_q12092_dummy(); new spell_q12096_q12092_bark(); new npc_wyrmrest_defender(); diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp index 9e2cb0cf18b..7f29a6621bd 100644 --- a/src/server/scripts/Northrend/zone_icecrown.cpp +++ b/src/server/scripts/Northrend/zone_icecrown.cpp @@ -210,52 +210,6 @@ public: }; /*###### -## npc_vereth_the_cunning -######*/ - -enum VerethTheCunning -{ - NPC_GEIST_RETURN_BUNNY_KC = 31049, - NPC_LITHE_STALKER = 30894, - SPELL_SUBDUED_LITHE_STALKER = 58151, -}; - -class npc_vereth_the_cunning : public CreatureScript -{ -public: - npc_vereth_the_cunning() : CreatureScript("npc_vereth_the_cunning") { } - - struct npc_vereth_the_cunningAI : public ScriptedAI - { - npc_vereth_the_cunningAI(Creature* creature) : ScriptedAI(creature) { } - - void MoveInLineOfSight(Unit* who) override - - { - ScriptedAI::MoveInLineOfSight(who); - - if (who->GetEntry() == NPC_LITHE_STALKER && me->IsWithinDistInMap(who, 10.0f)) - { - if (Unit* owner = who->GetCharmer()) - { - if (who->HasAura(SPELL_SUBDUED_LITHE_STALKER)) - { - owner->ToPlayer()->KilledMonsterCredit(NPC_GEIST_RETURN_BUNNY_KC); - who->ToCreature()->DisappearAndDie(); - - } - } - } - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_vereth_the_cunningAI(creature); - } -}; - -/*###### * npc_tournament_training_dummy ######*/ enum TournamentDummy @@ -881,207 +835,12 @@ class npc_frostbrood_skytalon : public CreatureScript } }; -/*###### -## The Flesh Giant Champion - Id: 13235 -######*/ -enum FleshGiant -{ - QUEST_FLESH_GIANT_CHAMPION = 13235, - - NPC_MORBIDUS = 30698, - NPC_LICH_KING = 31301, - NPC_OLAKIN = 31428, - NPC_DHAKAR = 31306, - - FACTION_HOSTILE = 14, - FACTION_BASIC = 2102, - - EVENT_INTRO = 1, - EVENT_LK_SAY_1 = 2, - EVENT_LK_SAY_2 = 3, - EVENT_LK_SAY_3 = 4, - EVENT_LK_SAY_4 = 5, - EVENT_LK_SAY_5 = 6, - EVENT_OUTRO = 7, - EVENT_START = 8, - - SPELL_SIMPLE_TELEPORT = 64195, - - SAY_DHAKAR_START = 0, - SAY_LK_1 = 0, - SAY_LK_2 = 1, - SAY_LK_3 = 2, - SAY_LK_4 = 3, - SAY_LK_5 = 4, - SAY_OLAKIN_PAY = 0 -}; - -class npc_margrave_dhakar : public CreatureScript -{ - public: - npc_margrave_dhakar() : CreatureScript("npc_margrave_dhakar") { } - - struct npc_margrave_dhakarAI : public ScriptedAI - { - npc_margrave_dhakarAI(Creature* creature) : ScriptedAI(creature) , _summons(me) { } - - void Reset() override - { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); - - _events.Reset(); - _summons.DespawnAll(); - } - - void sGossipSelect(Player* player, uint32 sender, uint32 action) override - { - if (player->GetQuestStatus(QUEST_FLESH_GIANT_CHAMPION) == QUEST_STATUS_INCOMPLETE && !player->IsInCombat()) - { - if (me->GetCreatureTemplate()->GossipMenuId == sender && !action) - { - _events.ScheduleEvent(EVENT_INTRO, 1000); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - } - } - } - - void UpdateAI(uint32 diff) override - { - _events.Update(diff); - - while (uint32 eventId = _events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_INTRO: - { - Talk(SAY_DHAKAR_START); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H); - - if (Creature* morbidus = me->FindNearestCreature(NPC_MORBIDUS, 50.0f, true)) - { - if (Creature* lichKing = me->SummonCreature(NPC_LICH_KING, morbidus->GetPositionX() + 10.0f, morbidus->GetPositionY(), morbidus->GetPositionZ())) - { - _lichKingGuid = lichKing->GetGUID(); - lichKing->SetFacingTo(morbidus->GetOrientation()); - lichKing->CastSpell(lichKing, SPELL_SIMPLE_TELEPORT, true); - } - } - - _events.ScheduleEvent(EVENT_LK_SAY_1, 5000); - break; - } - case EVENT_LK_SAY_1: - { - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid)) - lichKing->AI()->Talk(SAY_LK_1); - _events.ScheduleEvent(EVENT_LK_SAY_2, 5000); - break; - } - case EVENT_LK_SAY_2: - { - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid)) - lichKing->AI()->Talk(SAY_LK_2); - _events.ScheduleEvent(EVENT_LK_SAY_3, 5000); - break; - } - case EVENT_LK_SAY_3: - { - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid)) - lichKing->AI()->Talk(SAY_LK_3); - _events.ScheduleEvent(EVENT_LK_SAY_4, 5000); - break; - } - case EVENT_LK_SAY_4: - { - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid)) - lichKing->AI()->Talk(SAY_LK_4); - _events.ScheduleEvent(EVENT_OUTRO, 12000); - break; - } - case EVENT_LK_SAY_5: - { - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid)) - lichKing->AI()->Talk(SAY_LK_5); - _events.ScheduleEvent(EVENT_OUTRO, 8000); - break; - } - case EVENT_OUTRO: - { - if (Creature* olakin = me->FindNearestCreature(NPC_OLAKIN, 50.0f, true)) - olakin->AI()->Talk(SAY_OLAKIN_PAY); - - if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid)) - lichKing->DespawnOrUnsummon(0); - - _events.ScheduleEvent(EVENT_START, 5000); - break; - } - case EVENT_START: - { - if (Creature* morbidus = me->FindNearestCreature(NPC_MORBIDUS, 50.0f, true)) - { - morbidus->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_DISABLE_MOVE); - morbidus->setFaction(FACTION_HOSTILE); - } - - break; - } - } - } - - DoMeleeAttackIfReady(); - } - - private: - EventMap _events; - SummonList _summons; - ObjectGuid _lichKingGuid; - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_margrave_dhakarAI(creature); - } -}; - -class npc_morbidus : public CreatureScript -{ - public: - npc_morbidus() : CreatureScript("npc_morbidus") { } - - struct npc_morbidusAI : public ScriptedAI - { - npc_morbidusAI(Creature* creature) : ScriptedAI(creature) { } - - void Reset() override - { - if (Creature* dhakar = me->FindNearestCreature(NPC_DHAKAR, 50.0f, true)) - dhakar->AI()->Reset(); - - // this will prevent the event to start without morbidus being alive - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - me->SetReactState(REACT_PASSIVE); - me->setFaction(FACTION_BASIC); - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_morbidusAI(creature); - } -}; - void AddSC_icecrown() { new npc_squire_david; new npc_argent_valiant; new npc_guardian_pavilion; - new npc_vereth_the_cunning; new npc_tournament_training_dummy; new npc_blessed_banner(); new npc_frostbrood_skytalon(); - new npc_margrave_dhakar(); - new npc_morbidus(); } diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index ceaa7533d93..0549a8739dd 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -40,8 +40,6 @@ go_dragonflayer_cage go_tadpole_cage go_amberpine_outhouse go_hive_pod -go_gjalerbron_cage -go_large_gjalerbron_cage go_veil_skith_cage EndContentData */ @@ -1039,69 +1037,6 @@ class go_massive_seaforium_charge : public GameObjectScript } }; -/*###### -## go_gjalerbron_cage -######*/ - -enum OfKeysAndCages -{ - QUEST_ALLIANCE_OF_KEYS_AND_CAGES = 11231, - QUEST_HORDE_OF_KEYS_AND_CAGES = 11265, - NPC_GJALERBRON_PRISONER = 24035, - SAY_FREE = 0, -}; - -class go_gjalerbron_cage : public GameObjectScript -{ - public: - go_gjalerbron_cage() : GameObjectScript("go_gjalerbron_cage") { } - - bool OnGossipHello(Player* player, GameObject* go) override - { - go->UseDoorOrButton(); - if ((player->GetTeamId() == TEAM_ALLIANCE && player->GetQuestStatus(QUEST_ALLIANCE_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE) || - (player->GetTeamId() == TEAM_HORDE && player->GetQuestStatus(QUEST_HORDE_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE)) - { - if (Creature* prisoner = go->FindNearestCreature(NPC_GJALERBRON_PRISONER, 5.0f)) - { - player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER); - - prisoner->AI()->Talk(SAY_FREE); - prisoner->DespawnOrUnsummon(6000); - } - } - return true; - } -}; - -/*######## -## go_large_gjalerbron_cage -#####*/ - -class go_large_gjalerbron_cage : public GameObjectScript -{ - public: - go_large_gjalerbron_cage() : GameObjectScript("go_large_gjalerbron_cage") { } - - bool OnGossipHello(Player* player, GameObject* go) override - { - go->UseDoorOrButton(); - if ((player->GetTeamId() == TEAM_ALLIANCE && player->GetQuestStatus(QUEST_ALLIANCE_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE) || - (player->GetTeamId() == TEAM_HORDE && player->GetQuestStatus(QUEST_HORDE_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE)) - { - std::list<Creature*> prisonerList; - GetCreatureListWithEntryInGrid(prisonerList, go, NPC_GJALERBRON_PRISONER, INTERACTION_DISTANCE); - for (std::list<Creature*>::const_iterator itr = prisonerList.begin(); itr != prisonerList.end(); ++itr) - { - player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER, (*itr)->GetGUID()); - (*itr)->DespawnOrUnsummon(6000); - (*itr)->AI()->Talk(SAY_FREE); - } - } - return false; - } -}; - /*######## #### go_veil_skith_cage #####*/ @@ -1222,8 +1157,6 @@ void AddSC_go_scripts() new go_amberpine_outhouse(); new go_hive_pod(); new go_massive_seaforium_charge(); - new go_gjalerbron_cage(); - new go_large_gjalerbron_cage(); new go_veil_skith_cage(); new go_frostblade_shrine(); new go_midsummer_bonfire(); |