shadowlands merge
This commit is contained in:
@@ -3255,6 +3255,19 @@ void ScriptMgr::OnPlayerUpdateArea(Player* player, uint32 newArea, uint32 oldAre
|
||||
{
|
||||
FOREACH_SCRIPT(PlayerScript)->OnUpdateArea(player, newArea, oldArea);
|
||||
}
|
||||
|
||||
void QuestScript::OnQuestAcceptbyplayer(Player* /*player*/, Quest const* /*quest*/)
|
||||
{
|
||||
}
|
||||
|
||||
void ScriptMgr::OnQuestAcceptbyplayer(Player* player, Quest const* quest)
|
||||
{
|
||||
ASSERT(player);
|
||||
ASSERT(quest);
|
||||
|
||||
GET_SCRIPT(QuestScript, quest->GetScriptId(), tmpscript);
|
||||
tmpscript->OnQuestAcceptbyplayer(player, quest);
|
||||
}
|
||||
//WowCommunity
|
||||
// Specialize for each script type class like so:
|
||||
template class TC_GAME_API ScriptRegistry<SpellScriptLoader>;
|
||||
|
||||
@@ -967,6 +967,9 @@ public:
|
||||
|
||||
// Called when a quest objective data change
|
||||
virtual void OnQuestObjectiveChange(Player* player, Quest const* quest, QuestObjective const& objective, int32 oldAmount, int32 newAmount);
|
||||
|
||||
// Called when a player accepts a quest
|
||||
virtual void OnQuestAcceptbyplayer(Player* player, Quest const* quest);
|
||||
};
|
||||
|
||||
class TC_GAME_API WorldStateScript : public ScriptObject
|
||||
@@ -1322,6 +1325,7 @@ public: /* QuestScript */
|
||||
void OnQuestStatusChange(Player* player, Quest const* quest, QuestStatus oldStatus, QuestStatus newStatus);
|
||||
void OnQuestAcknowledgeAutoAccept(Player* player, Quest const* quest);
|
||||
void OnQuestObjectiveChange(Player* player, Quest const* quest, QuestObjective const& objective, int32 oldAmount, int32 newAmount);
|
||||
void OnQuestAcceptbyplayer(Player* player, Quest const* quest);
|
||||
|
||||
public: /* WorldStateScript */
|
||||
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Copyright (C) WowCommunity Project
|
||||
*
|
||||
* This SourceCode is NOT free a software. Please hold everything Private
|
||||
* and read our Terms
|
||||
*/
|
||||
|
||||
#include "Containers.h"
|
||||
#include "Conversation.h"
|
||||
#include "ConversationAI.h"
|
||||
#include "CreatureAIImpl.h"
|
||||
#include "GameObject.h"
|
||||
#include "GameObjectAI.h"
|
||||
#include "MotionMaster.h"
|
||||
#include "ObjectAccessor.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "TemporarySummon.h"
|
||||
|
||||
enum Quests
|
||||
{
|
||||
QUEST_FRIENDS_IN_LOW_PLACES = 78348,
|
||||
QUEST_REWRITING_THE_REWRITTEN = 78232,
|
||||
};
|
||||
|
||||
|
||||
class npc_orweyna215944 : public ScriptedAI
|
||||
{
|
||||
public:
|
||||
npc_orweyna215944(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
if (player->hasQuest(QUEST_FRIENDS_IN_LOW_PLACES))
|
||||
{
|
||||
player->CompleteQuest(QUEST_FRIENDS_IN_LOW_PLACES);
|
||||
}
|
||||
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
//410287 shadecaster
|
||||
// Shadecaster - 410287
|
||||
class go_shadecaster_410287 : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_shadecaster_410287() : GameObjectScript("go_shadecaster_410287") {}
|
||||
|
||||
struct go_shadecaster_410287AI : public GameObjectAI
|
||||
{
|
||||
go_shadecaster_410287AI(GameObject* go) : GameObjectAI(go) {}
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_REWRITING_THE_REWRITTEN))
|
||||
{
|
||||
player->CompleteQuest(QUEST_REWRITING_THE_REWRITTEN);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
GameObjectAI* GetAI(GameObject* go) const override
|
||||
{
|
||||
return new go_shadecaster_410287AI(go);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSCAzkjahet()
|
||||
{
|
||||
//NPC
|
||||
RegisterCreatureAI(npc_orweyna215944);
|
||||
|
||||
//Objects
|
||||
new go_shadecaster_410287();
|
||||
}
|
||||
@@ -0,0 +1,594 @@
|
||||
/*
|
||||
* Copyright (C) WowCommunity Project
|
||||
*
|
||||
* This SourceCode is NOT free a software. Please hold everything Private
|
||||
* and read our Terms
|
||||
*/
|
||||
|
||||
#include "AreaTrigger.h"
|
||||
#include "AreaTriggerAI.h"
|
||||
#include "Containers.h"
|
||||
#include "Conversation.h"
|
||||
#include "ConversationAI.h"
|
||||
#include "CreatureAIImpl.h"
|
||||
#include "GameObject.h"
|
||||
#include "GameObjectAI.h"
|
||||
#include "MotionMaster.h"
|
||||
#include "ObjectAccessor.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "TemporarySummon.h"
|
||||
|
||||
enum Quests
|
||||
{
|
||||
QUEST_CAGE_MATCH = 78688,
|
||||
QUEST_SUPPLY_THE_EFFORT = 79173,
|
||||
QUEST_A_LIGHT_IN_THE_DARK = 78948,
|
||||
QUEST_BURNING_REFLECTIONS = 79647,
|
||||
QUEST_THE_DARKENED_FLAME = 78939,
|
||||
QUEST_THE_LIGHT_AT_THE_END = 81690,
|
||||
QUEST_RESTORE_THE_FLAME = 78954,
|
||||
QUEST_SEEK_THE_LOST = 79310,
|
||||
QUEST_RISE_OF_THE_RECKONING = 78630,
|
||||
QUEST_THE_BASTION_OF_HALLOWFALL = 78613,
|
||||
QUEST_THE_HALLOWED_PATH = 78658,
|
||||
QUEST_WHERE_THE_LIGHT_TOUCHES = 78659,
|
||||
QUEST_THE_MIGHT_OF_KHAZALGAR = 78942,
|
||||
QUEST_SIEGE_WEAPON_SABOTAGE = 78670,
|
||||
QUEST_ARCANE_EXPERIMENTS = 80177,
|
||||
QUEST_A_MURDER_MOST_FOUL = 80178,
|
||||
QUEST_FULL_DRESS = 82221,
|
||||
QUEST_COOKING_WITH_STYLE = 82222,
|
||||
QUEST_REMEMBRANCE_FOR_FALLEN = 82284,
|
||||
QUEST_ECONOMICAL_REQUEST = 82216,
|
||||
QUEST_CONSECRATED_GROUNDS = 79089,
|
||||
QUEST_NIGHTWATCH = 79297,
|
||||
QUEST_THE_FLAME_STILL_BURNS = 80049,
|
||||
};
|
||||
|
||||
//430764
|
||||
class spell_throe_torch_430764 : public SpellScript
|
||||
{
|
||||
|
||||
void HandleOnCast()
|
||||
{
|
||||
if (Player* _player = GetCaster()->ToPlayer())
|
||||
if (_player->hasQuest(QUEST_CAGE_MATCH))
|
||||
{
|
||||
_player->KilledMonsterCredit(215006);
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnCast += SpellCastFn(spell_throe_torch_430764::HandleOnCast);
|
||||
}
|
||||
};
|
||||
|
||||
//79173
|
||||
class quest_supply_the_effort79173 : public QuestScript
|
||||
{
|
||||
public:
|
||||
quest_supply_the_effort79173() : QuestScript("quest_supply_the_effort79173") {}
|
||||
|
||||
void OnQuestAcceptbyplayer(Player* player, Quest const* /*quest*/) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_SUPPLY_THE_EFFORT))
|
||||
player->CompleteQuest(QUEST_SUPPLY_THE_EFFORT);
|
||||
}
|
||||
};
|
||||
|
||||
//214273 Anduin Wrynn
|
||||
class npc_Anduin_wrynn214273 : public ScriptedAI
|
||||
{
|
||||
public:
|
||||
npc_Anduin_wrynn214273(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
if (player->hasQuest(QUEST_A_LIGHT_IN_THE_DARK))
|
||||
{
|
||||
player->CompleteQuest(QUEST_A_LIGHT_IN_THE_DARK);
|
||||
}
|
||||
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
//434402 memory
|
||||
class go_memory434402 : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_memory434402() : GameObjectScript("go_memory434402") {}
|
||||
|
||||
struct go_memory434402AI : public GameObjectAI
|
||||
{
|
||||
go_memory434402AI(GameObject* go) : GameObjectAI(go)
|
||||
{
|
||||
}
|
||||
|
||||
bool OnReportUse(Player* player) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_BURNING_REFLECTIONS))
|
||||
{
|
||||
player->CompleteQuest(QUEST_BURNING_REFLECTIONS);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
GameObjectAI* GetAI(GameObject* go) const override
|
||||
{
|
||||
return new go_memory434402AI(go);
|
||||
}
|
||||
};
|
||||
|
||||
//214404 Faerin Lothar
|
||||
class npc_faerin_lothar214404 : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_faerin_lothar214404() : CreatureScript("npc_faerin_lothar214404") {}
|
||||
|
||||
struct nnpc_faerin_lothar214404AI : public ScriptedAI
|
||||
{
|
||||
nnpc_faerin_lothar214404AI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
if (player->hasQuest(QUEST_THE_DARKENED_FLAME))
|
||||
player->CompleteQuest(QUEST_THE_DARKENED_FLAME);
|
||||
|
||||
if (player->hasQuest(QUEST_RESTORE_THE_FLAME))
|
||||
player->CompleteQuest(QUEST_RESTORE_THE_FLAME);
|
||||
|
||||
SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new nnpc_faerin_lothar214404AI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
//QUEST_THE_LIGHT_AT_THE_END
|
||||
class quest_the_light_at_the_end81690 : public QuestScript
|
||||
{
|
||||
public:
|
||||
quest_the_light_at_the_end81690() : QuestScript("quest_the_light_at_the_end81690") {}
|
||||
|
||||
void OnQuestAcceptbyplayer(Player* player, Quest const* /*quest*/) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_THE_LIGHT_AT_THE_END))
|
||||
player->CompleteQuest(QUEST_THE_LIGHT_AT_THE_END);
|
||||
}
|
||||
};
|
||||
|
||||
//78942 QUEST_THE_MIGHT_OF_KHAZALGAR
|
||||
class quest_the_might_of_kazalgar : public QuestScript
|
||||
{
|
||||
public:
|
||||
quest_the_might_of_kazalgar() : QuestScript("quest_the_might_of_kazalgar") {}
|
||||
|
||||
void OnQuestAcceptbyplayer(Player* player, Quest const* /*quest*/) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_THE_MIGHT_OF_KHAZALGAR))
|
||||
player->CompleteQuest(QUEST_THE_MIGHT_OF_KHAZALGAR);
|
||||
}
|
||||
};
|
||||
|
||||
class npc_scout_maevest216064 : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_scout_maevest216064() : CreatureScript("npc_scout_maevest216064") {}
|
||||
|
||||
struct npc_scout_maevest216064AI : public ScriptedAI
|
||||
{
|
||||
npc_scout_maevest216064AI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
void OnSpellClick(Unit* clicker, bool spellClickHandled) override
|
||||
{
|
||||
if (!spellClickHandled)
|
||||
return;
|
||||
|
||||
if (Player* player = clicker->ToPlayer())
|
||||
player->CompleteQuest(QUEST_SEEK_THE_LOST);
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_scout_maevest216064AI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
//422537 rope ladder
|
||||
class go_rope_ladder422537 : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_rope_ladder422537() : GameObjectScript("go_rope_ladder422537") {}
|
||||
|
||||
struct go_rope_ladder422537AI : public GameObjectAI
|
||||
{
|
||||
go_rope_ladder422537AI(GameObject* go) : GameObjectAI(go)
|
||||
{
|
||||
}
|
||||
|
||||
bool OnReportUse(Player* player) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_RISE_OF_THE_RECKONING))
|
||||
{
|
||||
player->CompleteQuest(QUEST_RISE_OF_THE_RECKONING);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
GameObjectAI* GetAI(GameObject* go) const override
|
||||
{
|
||||
return new go_rope_ladder422537AI(go);
|
||||
}
|
||||
};
|
||||
|
||||
//434813 blackpowder barrel
|
||||
class go_blackpowder_barrel434813 : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_blackpowder_barrel434813() : GameObjectScript("go_blackpowder_barrel434813") {}
|
||||
|
||||
struct go_blackpowder_barrel434813AI : public GameObjectAI
|
||||
{
|
||||
go_blackpowder_barrel434813AI(GameObject* go) : GameObjectAI(go)
|
||||
{
|
||||
}
|
||||
|
||||
bool OnReportUse(Player* player) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_SIEGE_WEAPON_SABOTAGE))
|
||||
{
|
||||
player->CompleteQuest(QUEST_SIEGE_WEAPON_SABOTAGE);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
GameObjectAI* GetAI(GameObject* go) const override
|
||||
{
|
||||
return new go_blackpowder_barrel434813AI(go);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//306800000 at quest 78613
|
||||
struct at_quest78613 : AreaTriggerAI
|
||||
{
|
||||
at_quest78613(AreaTrigger* areatrigger) : AreaTriggerAI(areatrigger) {}
|
||||
|
||||
void OnUnitEnter(Unit* unit) override
|
||||
{
|
||||
Player* player = unit->ToPlayer();
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
if (player->hasQuest(QUEST_THE_BASTION_OF_HALLOWFALL))
|
||||
player->CompleteQuest(QUEST_THE_BASTION_OF_HALLOWFALL);
|
||||
}
|
||||
};
|
||||
|
||||
//at_quest78658
|
||||
struct at_quest78658 : AreaTriggerAI
|
||||
{
|
||||
at_quest78658(AreaTrigger* areatrigger) : AreaTriggerAI(areatrigger) {}
|
||||
|
||||
void OnUnitEnter(Unit* unit) override
|
||||
{
|
||||
Player* player = unit->ToPlayer();
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
if (player->hasQuest(QUEST_THE_HALLOWED_PATH))
|
||||
player->CompleteQuest(QUEST_THE_HALLOWED_PATH);
|
||||
}
|
||||
};
|
||||
|
||||
//216294 Relief Cart
|
||||
class npc_relief_cart216294 : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_relief_cart216294() : CreatureScript("npc_relief_cart216294") {}
|
||||
|
||||
struct npc_relief_cart216294AI : public ScriptedAI
|
||||
{
|
||||
npc_relief_cart216294AI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
void OnSpellClick(Unit* clicker, bool spellClickHandled) override
|
||||
{
|
||||
if (!spellClickHandled)
|
||||
return;
|
||||
|
||||
if (Player* player = clicker->ToPlayer())
|
||||
player->CompleteQuest(QUEST_WHERE_THE_LIGHT_TOUCHES);
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_relief_cart216294AI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
// Spell 444274 - Give Kill Credit and Prevent Player Hit
|
||||
class spell_gen_killcredit_prevent_player_hit : public SpellScript
|
||||
{
|
||||
|
||||
void HandleOnCast()
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (!caster)
|
||||
return;
|
||||
|
||||
// Give kill credit 220740 to the caster
|
||||
if (Player* player = caster->ToPlayer())
|
||||
player->KilledMonsterCredit(220740);
|
||||
}
|
||||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
// Remove all player targets to prevent hitting them
|
||||
targets.remove_if([](WorldObject* target) {
|
||||
return target->GetTypeId() == TYPEID_PLAYER;
|
||||
});
|
||||
}
|
||||
|
||||
void PreventPlayerHit(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
// Prevent any effect from hitting players
|
||||
if (GetHitUnit() && GetHitUnit()->GetTypeId() == TYPEID_PLAYER)
|
||||
PreventHitEffect(EFFECT_0);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnCast += SpellCastFn(spell_gen_killcredit_prevent_player_hit::HandleOnCast);
|
||||
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_gen_killcredit_prevent_player_hit::FilterTargets, EFFECT_ALL, TARGET_UNIT_SRC_AREA_ENEMY);
|
||||
OnEffectHitTarget += SpellEffectFn(spell_gen_killcredit_prevent_player_hit::PreventPlayerHit, EFFECT_ALL, SPELL_EFFECT_ANY);
|
||||
}
|
||||
};
|
||||
|
||||
//(220036 , 220035, 220025 Telerune node
|
||||
class npc_telerune_node : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_telerune_node() : CreatureScript("npc_telerune_node") {}
|
||||
|
||||
struct npc_telerune_nodeAI : public ScriptedAI
|
||||
{
|
||||
npc_telerune_nodeAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void OnSpellClick(Unit* clicker, bool spellClickHandled) override
|
||||
{
|
||||
if (!spellClickHandled)
|
||||
return;
|
||||
|
||||
if (Player* player = clicker->ToPlayer())
|
||||
player->CompleteQuest(QUEST_ARCANE_EXPERIMENTS);
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_telerune_nodeAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
//gob smashed accountrements 441888
|
||||
class go_smashed_accountrements441888 : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_smashed_accountrements441888() : GameObjectScript("go_smashed_accountrements441888") {}
|
||||
|
||||
struct go_smashed_accountrements441888AI : public GameObjectAI
|
||||
{
|
||||
go_smashed_accountrements441888AI(GameObject* go) : GameObjectAI(go)
|
||||
{
|
||||
}
|
||||
|
||||
bool OnReportUse(Player* player) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_A_MURDER_MOST_FOUL))
|
||||
{
|
||||
player->CompleteQuest(QUEST_A_MURDER_MOST_FOUL);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
GameObjectAI* GetAI(GameObject* go) const override
|
||||
{
|
||||
return new go_smashed_accountrements441888AI(go);
|
||||
}
|
||||
};
|
||||
|
||||
//446617 military banner
|
||||
class go_military_banner446617 : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_military_banner446617() : GameObjectScript("go_military_banner446617") {}
|
||||
|
||||
struct go_military_banner446617AI : public GameObjectAI
|
||||
{
|
||||
go_military_banner446617AI(GameObject* go) : GameObjectAI(go)
|
||||
{
|
||||
}
|
||||
|
||||
bool OnReportUse(Player* player) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_FULL_DRESS))
|
||||
{
|
||||
player->CompleteQuest(QUEST_FULL_DRESS);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
GameObjectAI* GetAI(GameObject* go) const override
|
||||
{
|
||||
return new go_military_banner446617AI(go);
|
||||
}
|
||||
};
|
||||
|
||||
//cooking pot
|
||||
class npc_cooking_pot224237 : public ScriptedAI
|
||||
{
|
||||
public:
|
||||
npc_cooking_pot224237(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
if (player->hasQuest(QUEST_COOKING_WITH_STYLE))
|
||||
{
|
||||
player->CompleteQuest(QUEST_COOKING_WITH_STYLE);
|
||||
}
|
||||
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
//quest_remembrance_for_the_fallen
|
||||
class quest_remembrance_for_the_fallen : public QuestScript
|
||||
{
|
||||
public:
|
||||
quest_remembrance_for_the_fallen() : QuestScript("quest_remembrance_for_the_fallen") {}
|
||||
|
||||
void OnQuestAcceptbyplayer(Player* player, Quest const* /*quest*/) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_REMEMBRANCE_FOR_FALLEN))
|
||||
player->CompleteQuest(QUEST_REMEMBRANCE_FOR_FALLEN);
|
||||
}
|
||||
};
|
||||
|
||||
//go_letter_of_recommendation445190
|
||||
class go_letter_of_recommendation445190 : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_letter_of_recommendation445190() : GameObjectScript("go_letter_of_recommendation445190") {}
|
||||
|
||||
struct go_letter_of_recommendation445190AI : public GameObjectAI
|
||||
{
|
||||
go_letter_of_recommendation445190AI(GameObject* go) : GameObjectAI(go)
|
||||
{
|
||||
}
|
||||
|
||||
bool OnReportUse(Player* player) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_ECONOMICAL_REQUEST))
|
||||
{
|
||||
player->CompleteQuest(QUEST_ECONOMICAL_REQUEST);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
GameObjectAI* GetAI(GameObject* go) const override
|
||||
{
|
||||
return new go_letter_of_recommendation445190AI(go);
|
||||
}
|
||||
};
|
||||
|
||||
//consecrated grounds
|
||||
class quest_consecrated_grounds : public QuestScript
|
||||
{
|
||||
public:
|
||||
quest_consecrated_grounds() : QuestScript("quest_consecrated_grounds") {}
|
||||
|
||||
void OnQuestAcceptbyplayer(Player* player, Quest const* /*quest*/) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_CONSECRATED_GROUNDS))
|
||||
player->CompleteQuest(QUEST_CONSECRATED_GROUNDS);
|
||||
}
|
||||
};
|
||||
|
||||
//quest_nightwatch 79297
|
||||
class quest_nightwatch : public QuestScript
|
||||
{
|
||||
public:
|
||||
quest_nightwatch() : QuestScript("quest_nightwatch") {}
|
||||
|
||||
void OnQuestAcceptbyplayer(Player* player, Quest const* /*quest*/) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_NIGHTWATCH))
|
||||
player->CompleteQuest(QUEST_NIGHTWATCH);
|
||||
}
|
||||
};
|
||||
|
||||
class quest_the_flame_still_burns : public QuestScript
|
||||
{
|
||||
public:
|
||||
quest_the_flame_still_burns() : QuestScript("quest_the_flame_still_burns") {}
|
||||
|
||||
void OnQuestAcceptbyplayer(Player* player, Quest const* /*quest*/) override
|
||||
{
|
||||
if (player->hasQuest(QUEST_THE_FLAME_STILL_BURNS))
|
||||
player->CompleteQuest(QUEST_THE_FLAME_STILL_BURNS);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSChalowwfall()
|
||||
{
|
||||
//NPC
|
||||
RegisterCreatureAI(npc_Anduin_wrynn214273);
|
||||
new npc_faerin_lothar214404();
|
||||
new npc_scout_maevest216064();
|
||||
new npc_relief_cart216294();
|
||||
new npc_telerune_node();
|
||||
RegisterCreatureAI(npc_cooking_pot224237);
|
||||
|
||||
//gameobjects
|
||||
new go_memory434402();
|
||||
new go_rope_ladder422537();
|
||||
new go_blackpowder_barrel434813();
|
||||
new go_smashed_accountrements441888();
|
||||
new go_military_banner446617();
|
||||
new go_letter_of_recommendation445190();
|
||||
|
||||
//Spellscript
|
||||
RegisterSpellScript(spell_throe_torch_430764);
|
||||
RegisterSpellScript(spell_gen_killcredit_prevent_player_hit);
|
||||
|
||||
//Quest
|
||||
new quest_supply_the_effort79173();
|
||||
new quest_the_light_at_the_end81690();
|
||||
new quest_the_might_of_kazalgar();
|
||||
new quest_remembrance_for_the_fallen();
|
||||
new quest_consecrated_grounds();
|
||||
new quest_nightwatch();
|
||||
new quest_the_flame_still_burns();
|
||||
|
||||
//Areatrigger
|
||||
RegisterAreaTriggerAI(at_quest78613);
|
||||
RegisterAreaTriggerAI(at_quest78658);
|
||||
}
|
||||
@@ -23,6 +23,12 @@ void AddSC_zone_dornogal();
|
||||
// Zone Isle Of Dorn
|
||||
void AddSC_zone_isle_of_dorn();
|
||||
|
||||
//Azjkahet
|
||||
void AddSCAzkjahet();
|
||||
|
||||
//Hallowfall
|
||||
void AddSChalowwfall();
|
||||
|
||||
// Campaign: Visions of a Shadowed Sun
|
||||
void AddSC_campaign_visions_of_a_shadowed_sun();
|
||||
|
||||
@@ -49,6 +55,12 @@ void AddKhazAlgarScripts()
|
||||
// Zone Isle of Dorn
|
||||
AddSC_zone_isle_of_dorn();
|
||||
|
||||
//Azjkahet
|
||||
AddSCAzkjahet();
|
||||
|
||||
//Hallowfall
|
||||
AddSChalowwfall();
|
||||
|
||||
// Campaign: Visions of a Shadowed Sun
|
||||
AddSC_campaign_visions_of_a_shadowed_sun();
|
||||
|
||||
|
||||
@@ -134,12 +134,12 @@ struct npc_bwonsamdi_portal : public ScriptedAI
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
|
||||
void IsSummonedBy(WorldObject* summoner) override
|
||||
void IsSummonedBy(WorldObject* /*summoner*/) override
|
||||
{
|
||||
me->CastSpell(nullptr, SPELL_DEATH_GATE_APPLY_AT, false);
|
||||
}
|
||||
|
||||
void OnSpellClick(Unit* target, bool /*result*/) override
|
||||
void OnSpellClick(Unit* /*target*/, bool /*result*/) override
|
||||
{
|
||||
/*if (me->GetPositionX() == 100.0f)
|
||||
target->NearTeleportTo(, false);
|
||||
|
||||
@@ -184,7 +184,7 @@ struct npc_droman_oulfarran : public ScriptedAI
|
||||
me->AddAura(SPELL_SOUL_SHACKLE_EFFECT, me);
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* attacker) override
|
||||
void JustEngagedWith(Unit* /*attacker*/) override
|
||||
{
|
||||
_events.ScheduleEvent(SPELL_BEWILDERING_POLLEN, 15s, 20s);
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ struct boss_tredova : public BossAI
|
||||
|
||||
if (GetDifficulty() == DIFFICULTY_MYTHIC)
|
||||
{
|
||||
scheduler.Schedule(3s, [this, player](TaskContext context)
|
||||
scheduler.Schedule(3s, [this, player](TaskContext /*context*/)
|
||||
{
|
||||
me->CastSpell(player, SPELL_ACID_EXPULSION_AREATRIGGER, true);
|
||||
});
|
||||
|
||||
+3
-3
@@ -45,7 +45,7 @@ struct npc_mots_tirnenn_villager : public ScriptedAI
|
||||
{
|
||||
me->RemoveAurasDueToSpell(SPELL_SOUL_SHACKLE);
|
||||
|
||||
scheduler.Schedule(Seconds(2), [this](TaskContext context)
|
||||
scheduler.Schedule(Seconds(2), [this](TaskContext /*context*/)
|
||||
{
|
||||
Talk(0);
|
||||
DoCastAOE(SPELL_REFRESHING_MIST);
|
||||
@@ -491,7 +491,7 @@ struct npc_mistcaller_maze_entrance : public ScriptedAI
|
||||
for (Creature* defender : defenders)
|
||||
defender->HandleEmoteCommand(EMOTE_ONESHOT_ATTACK1H);
|
||||
|
||||
scheduler.Schedule(500ms, [this](TaskContext context)
|
||||
scheduler.Schedule(500ms, [this](TaskContext /*context*/)
|
||||
{
|
||||
std::vector<Creature*> soulCleavers;
|
||||
me->GetCreatureListWithEntryInGrid(soulCleavers, NPC_DRUST_SOULCLEAVER, 20.f);
|
||||
@@ -603,7 +603,7 @@ std::vector<uint8> GenerateSymbols()
|
||||
{
|
||||
std::vector<uint8> allFlags = { MAZE_VISUAL_FLAG_LEAF, MAZE_VISUAL_FLAG_FILLED, MAZE_VISUAL_FLAG_CIRCLE,
|
||||
MAZE_VISUAL_FLAG_FLOWER, MAZE_VISUAL_FLAG_EMPTY, MAZE_VISUAL_FLAG_NO_CIRCLE };
|
||||
uint8 commonFlag = Trinity::Containers::SelectRandomContainerElement(allFlags);
|
||||
// uint8 commonFlag = Trinity::Containers::SelectRandomContainerElement(allFlags);
|
||||
|
||||
std::map<uint8, uint8> wrongMazeSymbols = MazeSymbols;
|
||||
std::vector<std::pair<uint8, uint8>> wrongMazeSymbolsVec(wrongMazeSymbols.begin(), wrongMazeSymbols.end());
|
||||
|
||||
+18
-18
@@ -69,7 +69,7 @@ public:
|
||||
if (scenario->GetStep() == sScenarioStepStore.LookupEntry(SCENARIO_BOA_INDEX_0))
|
||||
{
|
||||
player->SetCanFly(true);
|
||||
scheduler.Schedule(Milliseconds(3000), [this, player](TaskContext context)
|
||||
scheduler.Schedule(Milliseconds(3000), [this, player](TaskContext /*context*/)
|
||||
|
||||
{
|
||||
player->SummonCreature(178291, player->GetPosition(), TEMPSUMMON_MANUAL_DESPAWN);
|
||||
@@ -161,7 +161,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
void PassengerBoarded(Unit* passenger, int8 /*seat*/, bool apply) override
|
||||
void PassengerBoarded(Unit* passenger, int8 /*seat*/, bool /*apply*/) override
|
||||
{
|
||||
if (passenger->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
@@ -197,7 +197,7 @@ private:
|
||||
if (Player* player = ObjectAccessor::GetPlayer(*me, m_playerGUID))
|
||||
{
|
||||
player->CastSpell(player, SPELL_TELEPORT_VISUAL_ARDENWEALD);
|
||||
scheduler.Schedule(Milliseconds(2000), [this, player](TaskContext context)
|
||||
scheduler.Schedule(Milliseconds(2000), [this, player](TaskContext /*context*/)
|
||||
{
|
||||
player->TeleportTo(2464, -5491.37f, 600.306f, 5583.41f, 3.6468f, TELE_TO_NONE);
|
||||
});
|
||||
@@ -282,7 +282,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, uint32 MenuID, uint32 gossipListId) override
|
||||
bool OnGossipSelect(Player* player, uint32 /*MenuID*/, uint32 gossipListId) override
|
||||
{
|
||||
if (gossipListId == 0)
|
||||
{
|
||||
@@ -293,7 +293,7 @@ private:
|
||||
Talk(1);
|
||||
if (Creature* animacone = me->FindNearestCreature(178524, 50.0f))
|
||||
animacone->AI()->DoAction(ACTION_ANIMACONE_START_MOVE);
|
||||
scheduler.Schedule(Milliseconds(6000), [this](TaskContext context)
|
||||
scheduler.Schedule(Milliseconds(6000), [this](TaskContext /*context*/)
|
||||
{
|
||||
if (Creature* herne = me->FindNearestCreature(NPC_LOAR_HERNE, 50.0f))
|
||||
herne->AI()->Talk(0);
|
||||
@@ -403,7 +403,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
void MovementInform(uint32 /*type*/, uint32 id) override
|
||||
{
|
||||
switch (id)
|
||||
{
|
||||
@@ -553,7 +553,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
void WildhuntPath(uint32 pointid, std::list<ObjectGuid> m_List, uint32 entry)
|
||||
void WildhuntPath(uint32 /*pointid*/, std::list<ObjectGuid> m_List, uint32 /*entry*/)
|
||||
{
|
||||
/* if (m_List.empty())
|
||||
{
|
||||
@@ -861,7 +861,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
void MovementInform(uint32 /*type*/, uint32 id) override
|
||||
{
|
||||
switch (id)
|
||||
{
|
||||
@@ -904,7 +904,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
void MovementInform(uint32 /*type*/, uint32 id) override
|
||||
{
|
||||
switch (id)
|
||||
{
|
||||
@@ -1001,7 +1001,7 @@ private:
|
||||
if (Unit* creature1 = me->GetVehicleKit()->GetPassenger(0))
|
||||
if (Creature* plague = creature1->ToCreature())
|
||||
plague->AI()->Talk(0);
|
||||
_scheduler.Schedule(5s, [this](TaskContext task)
|
||||
_scheduler.Schedule(5s, [this](TaskContext /*task*/)
|
||||
{
|
||||
if (Creature* ysera = ObjectAccessor::GetCreature(*me, yseraGUID))
|
||||
ysera->AI()->Talk(0);
|
||||
@@ -1250,7 +1250,7 @@ public:
|
||||
kleiaGUID = ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* victim) override
|
||||
void JustEngagedWith(Unit* /*victim*/) override
|
||||
{
|
||||
if (Creature* kleia = me->FindNearestCreature(NPC_KLEIA, 50.0f, true))
|
||||
kleiaGUID = kleia->GetGUID();
|
||||
@@ -1263,7 +1263,7 @@ public:
|
||||
damage = 0;
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
|
||||
_JustDied();
|
||||
@@ -1693,7 +1693,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
void IsSummonedBy(WorldObject* summoner) override
|
||||
void IsSummonedBy(WorldObject* /*summoner*/) override
|
||||
{
|
||||
if (Creature* henre = me->FindNearestCreature(NPC_LOAR_HERNE, 50.0f))
|
||||
{
|
||||
@@ -1716,7 +1716,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
void DamageTaken(Unit* attacker, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (Player* player = attacker->ToPlayer())
|
||||
m_playerGUID = player->GetGUID();
|
||||
@@ -1729,7 +1729,7 @@ private:
|
||||
damage = 0;
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
me->AI()->SetData(DATA_REALMBREAKER, DATA_REALMBREAKER_DEAD);
|
||||
}
|
||||
@@ -1742,7 +1742,7 @@ struct npc_mawsworn_invoker_177601 : public ScriptedAI
|
||||
public:
|
||||
npc_mawsworn_invoker_177601(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
void IsSummonedBy(WorldObject* summoner) override
|
||||
void IsSummonedBy(WorldObject* /*summoner*/) override
|
||||
{
|
||||
if (Creature* henre = me->FindNearestCreature(NPC_LOAR_HERNE, 50.0f))
|
||||
{
|
||||
@@ -1759,7 +1759,7 @@ public:
|
||||
damage = 0;
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
// if (Creature* realmbreaker = instance->GetCreature(DATA_REALMBREAKER))
|
||||
// realmbreaker->AI()->SetData(DATA_REALMBREAKER, DATA_REALMBREAKER_DEAD);
|
||||
@@ -1791,7 +1791,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
if (Player* player = ObjectAccessor::GetPlayer(*me, m_playerGUID))
|
||||
{
|
||||
|
||||
@@ -57,16 +57,16 @@ public:
|
||||
OnCheckPhase(player);
|
||||
}
|
||||
|
||||
void OnQuestStatusChange(Player* player, uint32 questId) override
|
||||
void OnQuestStatusChange(Player* player, uint32 /*questId*/) override
|
||||
{
|
||||
OnCheckPhase(player);
|
||||
}
|
||||
|
||||
void OnUpdateArea(Player* player, uint32 newArea, uint32 /*oldArea*/) override
|
||||
void OnUpdateArea(Player* player, uint32 /*newArea*/, uint32 /*oldArea*/) override
|
||||
{
|
||||
OnCheckPhase(player);
|
||||
|
||||
scheduler.Schedule(Milliseconds(2000), [player](TaskContext context)
|
||||
scheduler.Schedule(Milliseconds(2000), [player](TaskContext /*context*/)
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_THE_BATTLE_OF_ARDENWEALD) == QUEST_STATUS_COMPLETE || player->GetQuestStatus(QUEST_THE_BATTLE_OF_ARDENWEALD) == QUEST_STATUS_REWARDED)
|
||||
if (!player->GetPhaseShift().HasPhase(11510)) PhasingHandler::AddPhase(player, 11510, true);
|
||||
@@ -108,14 +108,14 @@ struct npc_lady_moonberry_177148 : public ScriptedAI
|
||||
public:
|
||||
npc_lady_moonberry_177148(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
void OnQuestReward(Player* player, Quest const* quest, LootItemType type, uint32 /*opt*/) override
|
||||
void OnQuestReward(Player* /*player*/, Quest const* quest, LootItemType /*type*/, uint32 /*opt*/) override
|
||||
{
|
||||
if (quest->GetQuestId() == QUEST_THE_BATTLE_OF_ARDENWEALD)
|
||||
{
|
||||
if (Creature* ysera = me->FindNearestCreature(177446, 50.0f))
|
||||
{
|
||||
ysera->AI()->Talk(0);
|
||||
scheduler.Schedule(Milliseconds(5000), [this](TaskContext context)
|
||||
scheduler.Schedule(Milliseconds(5000), [this](TaskContext /*context*/)
|
||||
{
|
||||
me->AI()->Talk(0);
|
||||
});
|
||||
@@ -145,7 +145,7 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, uint32 MenuID, uint32 gossipListId) override
|
||||
bool OnGossipSelect(Player* player, uint32 /*MenuID*/, uint32 gossipListId) override
|
||||
{
|
||||
uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
|
||||
ClearGossipMenuFor(player);
|
||||
@@ -161,12 +161,12 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
void OnQuestAccept(Player* player, Quest const* quest) override
|
||||
void OnQuestAccept(Player* /*player*/, Quest const* quest) override
|
||||
{
|
||||
if (quest->GetQuestId() == QUEST_THE_HEART_OF_ARDENWEALD)
|
||||
{
|
||||
Talk(1);
|
||||
scheduler.Schedule(Milliseconds(9000), [this](TaskContext context)
|
||||
scheduler.Schedule(Milliseconds(9000), [this](TaskContext /*context*/)
|
||||
{
|
||||
Talk(2);
|
||||
});
|
||||
@@ -175,7 +175,7 @@ public:
|
||||
{
|
||||
Talk(3);
|
||||
|
||||
scheduler.Schedule(Milliseconds(13000), [this](TaskContext context)
|
||||
scheduler.Schedule(Milliseconds(13000), [this](TaskContext /*context*/)
|
||||
{
|
||||
Talk(4);
|
||||
});
|
||||
@@ -240,7 +240,7 @@ private:
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, uint32 MenuID, uint32 gossipListId) override
|
||||
bool OnGossipSelect(Player* player, uint32 /*MenuID*/, uint32 gossipListId) override
|
||||
{
|
||||
uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
|
||||
ClearGossipMenuFor(player);
|
||||
@@ -276,7 +276,7 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, uint32 MenuID, uint32 gossipListId) override
|
||||
bool OnGossipSelect(Player* player, uint32 /*MenuID*/, uint32 gossipListId) override
|
||||
{
|
||||
uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
|
||||
ClearGossipMenuFor(player);
|
||||
|
||||
Reference in New Issue
Block a user