mirror of
https://github.com/ornfelt/azerothcore_lua_scripts
synced 2026-08-22 06:26:03 -04:00
409 lines
21 KiB
Diff
409 lines
21 KiB
Diff
|
|
diff --git a/sql/custom/world/world.DKS.sql b/sql/custom/world/world.DKS.sql
|
||
|
|
new file mode 100644
|
||
|
|
index 00000000000..07b32c31df8
|
||
|
|
--- /dev/null
|
||
|
|
+++ b/sql/custom/world/world.DKS.sql
|
||
|
|
@@ -0,0 +1,4 @@
|
||
|
|
+-- npc id lich king
|
||
|
|
+-- Original npcflag was 2
|
||
|
|
+-- no previous scriptname
|
||
|
|
+UPDATE `creature_template` SET `npcflag`='3', `ScriptName`='npc_tc_skip_lich' WHERE `entry`=25462;
|
||
|
|
diff --git a/src/server/scripts/Custom/SkipDK.cpp b/src/server/scripts/Custom/SkipDK.cpp
|
||
|
|
new file mode 100644
|
||
|
|
index 00000000000..ebc3b753cb0
|
||
|
|
--- /dev/null
|
||
|
|
+++ b/src/server/scripts/Custom/SkipDK.cpp
|
||
|
|
@@ -0,0 +1,323 @@
|
||
|
|
+/*
|
||
|
|
+* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
|
||
|
|
+*
|
||
|
|
+* 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
|
||
|
|
+* Free Software Foundation; either version 2 of the License, or (at your
|
||
|
|
+* option) any later version.
|
||
|
|
+*
|
||
|
|
+* This program is distributed in the hope that it will be useful, but WITHOUT
|
||
|
|
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||
|
|
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||
|
|
+* more details.
|
||
|
|
+*
|
||
|
|
+* You should have received a copy of the GNU General Public License along
|
||
|
|
+* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
|
+*
|
||
|
|
+* Skip Death Knight Module
|
||
|
|
+* Original Module From Single Player Project Consolidated Skip Module
|
||
|
|
+* Rewritten for TC 335 By Single Player Project Developer MDic
|
||
|
|
+* Original Concept from conanhun513
|
||
|
|
+* Assistance and Review by JinnaiX
|
||
|
|
+*/
|
||
|
|
+
|
||
|
|
+#include "AccountMgr.h"
|
||
|
|
+#include "ScriptMgr.h"
|
||
|
|
+#include "Player.h"
|
||
|
|
+#include "Config.h"
|
||
|
|
+#include "Common.h"
|
||
|
|
+#include "Chat.h"
|
||
|
|
+#include "ObjectAccessor.h"
|
||
|
|
+#include "ObjectMgr.h"
|
||
|
|
+#include "Player.h"
|
||
|
|
+#include "ScriptMgr.h"
|
||
|
|
+#include "ScriptedCreature.h"
|
||
|
|
+#include "ScriptedGossip.h"
|
||
|
|
+#include "SharedDefines.h"
|
||
|
|
+#include "World.h"
|
||
|
|
+#include "WorldSession.h"
|
||
|
|
+
|
||
|
|
+class Trinitycore_skip_deathknight_announce : public PlayerScript
|
||
|
|
+{
|
||
|
|
+public:
|
||
|
|
+ Trinitycore_skip_deathknight_announce() : PlayerScript("Trinitycore_skip_deathknight_announce") { }
|
||
|
|
+
|
||
|
|
+ void OnLogin(Player* Player, bool /*firstLogin*/) override
|
||
|
|
+ {
|
||
|
|
+ if (sConfigMgr->GetBoolDefault("Skip.Deathknight.Starter.Announce.enable", true))
|
||
|
|
+ {
|
||
|
|
+ ChatHandler(Player->GetSession()).SendSysMessage("This server is running the |cff4CFF00Trinitycore Skip Deathknight Starter |rmodule.");
|
||
|
|
+ }
|
||
|
|
+ }
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+class Trinitycore_skip_deathknight : public PlayerScript
|
||
|
|
+{
|
||
|
|
+public:
|
||
|
|
+ Trinitycore_skip_deathknight() : PlayerScript("Trinitycore_skip_deathknight") { }
|
||
|
|
+
|
||
|
|
+ void OnLogin(Player* player, bool firstLogin) override
|
||
|
|
+ {
|
||
|
|
+ int DKL = sConfigMgr->GetFloatDefault("Skip.Deathknight.Start.Level", 58);
|
||
|
|
+
|
||
|
|
+ if (sConfigMgr->GetBoolDefault("Skip.Deathknight.Starter.Enable", true))
|
||
|
|
+ {
|
||
|
|
+ if (player->GetAreaId() == 4342)
|
||
|
|
+ {
|
||
|
|
+ if (!firstLogin)
|
||
|
|
+ return;
|
||
|
|
+ player->SetLevel(DKL);
|
||
|
|
+ player->LearnSpell(53428, false);//runeforging
|
||
|
|
+ player->LearnSpell(53441, false);//runeforging
|
||
|
|
+ player->LearnSpell(53344, false);//runeforging
|
||
|
|
+ player->LearnSpell(62158, false);//runeforging
|
||
|
|
+ player->LearnSpell(33391, false);//journeyman riding
|
||
|
|
+ player->LearnSpell(54586, false);//runeforging credit
|
||
|
|
+ player->LearnSpell(48778, false);//acherus deathcharger
|
||
|
|
+ player->LearnSkillRewardedSpells(776, 375);//Runeforging
|
||
|
|
+ player->LearnSkillRewardedSpells(960, 375);//Runeforging
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_HEAD, 38661, true);//Greathelm of the Scourge Champion
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_WRISTS, 38666, true);//Plated Saronite Bracers
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_WAIST, 38668, true);//The Plaguebringer's Girdle
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_HANDS, 38667, true);//Bloodbane's Gauntlets of Command
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_CHEST, 38665, true);//Saronite War Plate
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_LEGS, 38669, true);//Engraved Saronite Legplates
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_SHOULDERS, 38663, true);// Blood-Soaked Saronite Plated Spaulders
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_FEET, 38670, true);//Greaves of the Slaughter
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_TRINKET1, 38675, true);//Signet of the Dark Brotherhood
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_TRINKET2, 38674, true);//Soul Harvester's Charm
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_FINGER1, 38671, true);//Valanar's Signet Ring
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_FINGER2, 38672, true);// Keleseth's Signet Ring
|
||
|
|
+ player->AddItem(39320, true);//Sky Darkener's Shroud of Blood
|
||
|
|
+ player->AddItem(38664, true);//Sky Darkener's Shroud of the Unholy
|
||
|
|
+ player->AddItem(39322, true);//Shroud of the North Wind
|
||
|
|
+ player->AddItem(38632, true);//Greatsword of the Ebon Blade
|
||
|
|
+ player->AddItem(6948, true);//Hearthstone
|
||
|
|
+ player->AddItem(38707, true);//Runed Soulblade
|
||
|
|
+ player->AddItem(40483, true);//Insignia of the Scourge
|
||
|
|
+
|
||
|
|
+ if (player->GetQuestStatus(12657) == QUEST_STATUS_NONE)//The Might Of The Scourge
|
||
|
|
+ {
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(12657), nullptr);
|
||
|
|
+ player->RewardQuest(sObjectMgr->GetQuestTemplate(12657), false, player);
|
||
|
|
+ }
|
||
|
|
+ if (player->GetQuestStatus(12801) == QUEST_STATUS_NONE)//The Light of Dawn
|
||
|
|
+ {
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(12801), nullptr);
|
||
|
|
+ player->RewardQuest(sObjectMgr->GetQuestTemplate(12801), false, player);
|
||
|
|
+ }
|
||
|
|
+ if (player->GetTeam() == ALLIANCE && player->GetQuestStatus(13188) == QUEST_STATUS_NONE)//Where Kings Walk
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(13188), nullptr);
|
||
|
|
+ else if (player->GetTeam() == HORDE && player->GetQuestStatus(13189) == QUEST_STATUS_NONE)//Saurfang's Blessing
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(13189), nullptr);
|
||
|
|
+ if (player->GetTeam() == ALLIANCE)
|
||
|
|
+ player->TeleportTo(0, -8833.37f, 628.62f, 94.00f, 1.06f);//Stormwind
|
||
|
|
+ else
|
||
|
|
+ player->TeleportTo(1, 1569.59f, -4397.63f, 16.06f, 0.54f);//Orgrimmar
|
||
|
|
+ ObjectAccessor::SaveAllPlayers();//Save
|
||
|
|
+ }
|
||
|
|
+ }
|
||
|
|
+
|
||
|
|
+ if (sConfigMgr->GetBoolDefault("GM.Skip.Deathknight.Starter.Enable", true))
|
||
|
|
+ {
|
||
|
|
+ if (player->GetSession()->GetSecurity() >= SEC_MODERATOR && player->GetAreaId() == 4342)
|
||
|
|
+ {
|
||
|
|
+ if (!firstLogin)
|
||
|
|
+ return;
|
||
|
|
+ player->SetLevel(DKL);
|
||
|
|
+ player->LearnSpell(53428, false);//runeforging
|
||
|
|
+ player->LearnSpell(53441, false);//runeforging
|
||
|
|
+ player->LearnSpell(53344, false);//runeforging
|
||
|
|
+ player->LearnSpell(62158, false);//runeforging
|
||
|
|
+ player->LearnSpell(33391, false);//journeyman riding
|
||
|
|
+ player->LearnSpell(54586, false);//runeforging credit
|
||
|
|
+ player->LearnSpell(48778, false);//acherus deathcharger
|
||
|
|
+ player->LearnSkillRewardedSpells(776, 375);//Runeforging
|
||
|
|
+ player->LearnSkillRewardedSpells(960, 375);//Runeforging
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_HEAD, 38661, true);//Greathelm of the Scourge Champion
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_WRISTS, 38666, true);//Plated Saronite Bracers
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_WAIST, 38668, true);//The Plaguebringer's Girdle
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_HANDS, 38667, true);//Bloodbane's Gauntlets of Command
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_CHEST, 38665, true);//Saronite War Plate
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_LEGS, 38669, true);//Engraved Saronite Legplates
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_SHOULDERS, 38663, true);// Blood-Soaked Saronite Plated Spaulders
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_FEET, 38670, true);//Greaves of the Slaughter
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_TRINKET1, 38675, true);//Signet of the Dark Brotherhood
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_TRINKET2, 38674, true);//Soul Harvester's Charm
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_FINGER1, 38671, true);//Valanar's Signet Ring
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_FINGER2, 38672, true);// Keleseth's Signet Ring
|
||
|
|
+ player->AddItem(39320, true);//Sky Darkener's Shroud of Blood
|
||
|
|
+ player->AddItem(38664, true);//Sky Darkener's Shroud of the Unholy
|
||
|
|
+ player->AddItem(39322, true);//Shroud of the North Wind
|
||
|
|
+ player->AddItem(38632, true);//Greatsword of the Ebon Blade
|
||
|
|
+ player->AddItem(6948, true);//Hearthstone
|
||
|
|
+ player->AddItem(38707, true);//Runed Soulblade
|
||
|
|
+ player->AddItem(40483, true);//Insignia of the Scourge
|
||
|
|
+
|
||
|
|
+ if (player->GetQuestStatus(12657) == QUEST_STATUS_NONE)//The Might Of The Scourge
|
||
|
|
+ {
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(12657), nullptr);
|
||
|
|
+ player->RewardQuest(sObjectMgr->GetQuestTemplate(12657), false, player);
|
||
|
|
+ }
|
||
|
|
+ if (player->GetQuestStatus(12801) == QUEST_STATUS_NONE)//The Light of Dawn
|
||
|
|
+ {
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(12801), nullptr);
|
||
|
|
+ player->RewardQuest(sObjectMgr->GetQuestTemplate(12801), false, player);
|
||
|
|
+ }
|
||
|
|
+ if (player->GetTeam() == ALLIANCE && player->GetQuestStatus(13188) == QUEST_STATUS_NONE)//Where Kings Walk
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(13188), nullptr);
|
||
|
|
+ else if (player->GetTeam() == HORDE && player->GetQuestStatus(13189) == QUEST_STATUS_NONE)//Saurfang's Blessing
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(13189), nullptr);
|
||
|
|
+ if (player->GetTeam() == ALLIANCE)
|
||
|
|
+ player->TeleportTo(0, -8833.37f, 628.62f, 94.00f, 1.06f);//Stormwind
|
||
|
|
+ else
|
||
|
|
+ player->TeleportTo(1, 1569.59f, -4397.63f, 16.06f, 0.54f);//Orgrimmar
|
||
|
|
+ ObjectAccessor::SaveAllPlayers();//Save
|
||
|
|
+ }
|
||
|
|
+ }
|
||
|
|
+ }
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+#define LOCALE_LICHKING_0 "I wish to skip the Death Knight starter questline."
|
||
|
|
+#define LOCALE_LICHKING_1 "죽음의 기사 스타터 퀘스트 라인을 건너뛰고 싶습니다."
|
||
|
|
+#define LOCALE_LICHKING_2 "Je souhaite sauter la série de quêtes de démarrage du Chevalier de la mort."
|
||
|
|
+#define LOCALE_LICHKING_3 "Ich möchte die Todesritter-Starter-Questreihe überspringen."
|
||
|
|
+#define LOCALE_LICHKING_4 "我想跳過死亡騎士新手任務線。"
|
||
|
|
+#define LOCALE_LICHKING_5 "我想跳過死亡騎士新手任務線。"
|
||
|
|
+#define LOCALE_LICHKING_6 "Deseo saltarme la línea de misiones de inicio del Caballero de la Muerte."
|
||
|
|
+#define LOCALE_LICHKING_7 "Deseo saltarme la línea de misiones de inicio del Caballero de la Muerte."
|
||
|
|
+#define LOCALE_LICHKING_8 "Я хочу пропустить начальную цепочку заданий Рыцаря Смерти."
|
||
|
|
+
|
||
|
|
+class Trinitycore_optional_deathknight_skip : public CreatureScript
|
||
|
|
+{
|
||
|
|
+public:
|
||
|
|
+ Trinitycore_optional_deathknight_skip() : CreatureScript("npc_tc_skip_lich") { }
|
||
|
|
+
|
||
|
|
+ struct npc_SkipLichAI : public ScriptedAI
|
||
|
|
+ {
|
||
|
|
+ npc_SkipLichAI(Creature* creature) : ScriptedAI(creature) { }
|
||
|
|
+
|
||
|
|
+ bool OnGossipHello(Player* player) override
|
||
|
|
+ {
|
||
|
|
+ if (me->IsQuestGiver())
|
||
|
|
+ {
|
||
|
|
+ player->PrepareQuestMenu(me->GetGUID());
|
||
|
|
+ }
|
||
|
|
+
|
||
|
|
+ if (sConfigMgr->GetBoolDefault("Skip.Deathknight.Optional.Enable", true))
|
||
|
|
+ {
|
||
|
|
+ char const* localizedEntry;
|
||
|
|
+ switch (player->GetSession()->GetSessionDbcLocale())
|
||
|
|
+ {
|
||
|
|
+ case LOCALE_koKR: localizedEntry = LOCALE_LICHKING_1; break;
|
||
|
|
+ case LOCALE_frFR: localizedEntry = LOCALE_LICHKING_2; break;
|
||
|
|
+ case LOCALE_deDE: localizedEntry = LOCALE_LICHKING_3; break;
|
||
|
|
+ case LOCALE_zhCN: localizedEntry = LOCALE_LICHKING_4; break;
|
||
|
|
+ case LOCALE_zhTW: localizedEntry = LOCALE_LICHKING_5; break;
|
||
|
|
+ case LOCALE_esES: localizedEntry = LOCALE_LICHKING_6; break;
|
||
|
|
+ case LOCALE_esMX: localizedEntry = LOCALE_LICHKING_7; break;
|
||
|
|
+ case LOCALE_ruRU: localizedEntry = LOCALE_LICHKING_8; break;
|
||
|
|
+ case LOCALE_enUS: localizedEntry = LOCALE_LICHKING_0; break;
|
||
|
|
+ default: localizedEntry = LOCALE_LICHKING_0;
|
||
|
|
+ }
|
||
|
|
+ AddGossipItemFor(player, GOSSIP_ICON_INTERACT_1, localizedEntry, GOSSIP_SENDER_MAIN, 11);
|
||
|
|
+ }
|
||
|
|
+
|
||
|
|
+ player->TalkedToCreature(me->GetEntry(), me->GetGUID());
|
||
|
|
+ SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
|
||
|
|
+ return true;
|
||
|
|
+ }
|
||
|
|
+
|
||
|
|
+ bool OnGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override
|
||
|
|
+ {
|
||
|
|
+ int DKL = sConfigMgr->GetFloatDefault("Skip.Deathknight.Start.Level", 58);
|
||
|
|
+ CloseGossipMenuFor(player);
|
||
|
|
+
|
||
|
|
+ switch (gossipListId)
|
||
|
|
+ {
|
||
|
|
+ case 11:
|
||
|
|
+ AddGossipItemFor(player, GOSSIP_ICON_INTERACT_1, "Yes", GOSSIP_SENDER_MAIN, 12);
|
||
|
|
+ AddGossipItemFor(player, GOSSIP_ICON_INTERACT_1, "No", GOSSIP_SENDER_MAIN, 13);
|
||
|
|
+ SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
|
||
|
|
+ break;
|
||
|
|
+
|
||
|
|
+ case 12:
|
||
|
|
+ if (player->GetLevel() <= DKL)
|
||
|
|
+ {
|
||
|
|
+ player->SetLevel(DKL);
|
||
|
|
+ }
|
||
|
|
+ player->LearnSpell(53428, false);//runeforging
|
||
|
|
+ player->LearnSpell(53441, false);//runeforging
|
||
|
|
+ player->LearnSpell(53344, false);//runeforging
|
||
|
|
+ player->LearnSpell(62158, false);//runeforging
|
||
|
|
+ player->LearnSpell(33391, false);//journeyman riding
|
||
|
|
+ player->LearnSpell(54586, false);//runeforging credit
|
||
|
|
+ player->LearnSpell(48778, false);//acherus deathcharger
|
||
|
|
+ player->LearnSkillRewardedSpells(776, 375);//Runeforging
|
||
|
|
+ player->LearnSkillRewardedSpells(960, 375);//Runeforging
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_HEAD, 38661, true);//Greathelm of the Scourge Champion
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_WRISTS, 38666, true);//Plated Saronite Bracers
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_WAIST, 38668, true);//The Plaguebringer's Girdle
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_HANDS, 38667, true);//Bloodbane's Gauntlets of Command
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_CHEST, 38665, true);//Saronite War Plate
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_LEGS, 38669, true);//Engraved Saronite Legplates
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_SHOULDERS, 38663, true);// Blood-Soaked Saronite Plated Spaulders
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_FEET, 38670, true);//Greaves of the Slaughter
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_TRINKET1, 38675, true);//Signet of the Dark Brotherhood
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_TRINKET2, 38674, true);//Soul Harvester's Charm
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_FINGER1, 38671, true);//Valanar's Signet Ring
|
||
|
|
+ player->EquipNewItem(EQUIPMENT_SLOT_FINGER2, 38672, true);// Keleseth's Signet Ring
|
||
|
|
+ player->AddItem(39320, true);//Sky Darkener's Shroud of Blood
|
||
|
|
+ player->AddItem(38664, true);//Sky Darkener's Shroud of the Unholy
|
||
|
|
+ player->AddItem(39322, true);//Shroud of the North Wind
|
||
|
|
+ player->AddItem(38632, true);//Greatsword of the Ebon Blade
|
||
|
|
+ player->AddItem(6948, true);//Hearthstone
|
||
|
|
+ player->AddItem(38707, true);//Runed Soulblade
|
||
|
|
+ player->AddItem(40483, true);//Insignia of the Scourge
|
||
|
|
+
|
||
|
|
+ if (player->GetQuestStatus(12657) == QUEST_STATUS_NONE)//The Might Of The Scourge
|
||
|
|
+ {
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(12657), nullptr);
|
||
|
|
+ player->RewardQuest(sObjectMgr->GetQuestTemplate(12657), false, player);
|
||
|
|
+ }
|
||
|
|
+ if (player->GetQuestStatus(12801) == QUEST_STATUS_NONE)//The Light of Dawn
|
||
|
|
+ {
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(12801), nullptr);
|
||
|
|
+ player->RewardQuest(sObjectMgr->GetQuestTemplate(12801), false, player);
|
||
|
|
+ }
|
||
|
|
+ if (player->GetTeam() == ALLIANCE && player->GetQuestStatus(13188) == QUEST_STATUS_NONE)//Where Kings Walk
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(13188), nullptr);
|
||
|
|
+ else if (player->GetTeam() == HORDE && player->GetQuestStatus(13189) == QUEST_STATUS_NONE)//Saurfang's Blessing
|
||
|
|
+ player->AddQuest(sObjectMgr->GetQuestTemplate(13189), nullptr);
|
||
|
|
+ if (player->GetTeam() == ALLIANCE)
|
||
|
|
+ player->TeleportTo(0, -8833.37f, 628.62f, 94.00f, 1.06f);//Stormwind
|
||
|
|
+ else
|
||
|
|
+ player->TeleportTo(1, 1569.59f, -4397.63f, 16.06f, 0.54f);//Orgrimmar
|
||
|
|
+ ObjectAccessor::SaveAllPlayers();//Save
|
||
|
|
+ CloseGossipMenuFor(player);
|
||
|
|
+ break;
|
||
|
|
+
|
||
|
|
+ case 13://close
|
||
|
|
+ CloseGossipMenuFor(player);
|
||
|
|
+ break;
|
||
|
|
+
|
||
|
|
+ default:
|
||
|
|
+
|
||
|
|
+ break;
|
||
|
|
+ }
|
||
|
|
+ return true;
|
||
|
|
+ }
|
||
|
|
+ };
|
||
|
|
+
|
||
|
|
+ CreatureAI* GetAI(Creature* creature) const override
|
||
|
|
+ {
|
||
|
|
+ return new npc_SkipLichAI(creature);
|
||
|
|
+ }
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+void AddSC_skip_StarterArea()
|
||
|
|
+{
|
||
|
|
+ new Trinitycore_skip_deathknight_announce;
|
||
|
|
+ new Trinitycore_skip_deathknight;
|
||
|
|
+ new Trinitycore_optional_deathknight_skip;
|
||
|
|
+}
|
||
|
|
diff --git a/src/server/scripts/Custom/custom_script_loader.cpp b/src/server/scripts/Custom/custom_script_loader.cpp
|
||
|
|
index 9e5e9ba2bfd..702789c280b 100644
|
||
|
|
--- a/src/server/scripts/Custom/custom_script_loader.cpp
|
||
|
|
+++ b/src/server/scripts/Custom/custom_script_loader.cpp
|
||
|
|
@@ -19,6 +19,9 @@
|
||
|
|
|
||
|
|
// The name of this function should match:
|
||
|
|
// void Add${NameOfDirectory}Scripts()
|
||
|
|
+void AddSC_skip_StarterArea();
|
||
|
|
+
|
||
|
|
void AddCustomScripts()
|
||
|
|
{
|
||
|
|
+ AddSC_skip_StarterArea();
|
||
|
|
}
|
||
|
|
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
|
||
|
|
index f475d0248e8..ed28b5e296a 100644
|
||
|
|
--- a/src/server/worldserver/worldserver.conf.dist
|
||
|
|
+++ b/src/server/worldserver/worldserver.conf.dist
|
||
|
|
@@ -4125,3 +4125,49 @@ Metric.OverallStatusInterval = 1
|
||
|
|
|
||
|
|
#
|
||
|
|
###################################################################################################
|
||
|
|
+
|
||
|
|
+###################################################################################################
|
||
|
|
+#Skip Death Knight Starting Area#
|
||
|
|
+#################################
|
||
|
|
+#
|
||
|
|
+# Skip Death Knight Starting Area
|
||
|
|
+# Enable this if you want to skip the Deathknight starting area
|
||
|
|
+# Start with level 58 DK with Runeforging.
|
||
|
|
+#
|
||
|
|
+# Skip.Deathknight.Starter.Announce.enable
|
||
|
|
+# Description: Announces Module when player logs in.
|
||
|
|
+# Default: 0 - (Disabled)
|
||
|
|
+# 1 - (Enabled)
|
||
|
|
+
|
||
|
|
+Skip.Deathknight.Starter.Announce.enable = 1
|
||
|
|
+
|
||
|
|
+# Skip.DeathKnight.Starter.Enable
|
||
|
|
+# Active Module for all new accounts regardless of account level. Instant Skip on DK Creation.
|
||
|
|
+# Default: 0 - (Disabled)
|
||
|
|
+# 1 - (Enabled)
|
||
|
|
+
|
||
|
|
+Skip.Deathknight.Starter.Enable = 0
|
||
|
|
+
|
||
|
|
+# GM.Skip.Deathknight.Starter.Enable
|
||
|
|
+# Active Module for all new accounts of a GM account level ONLY. Instant Skip on DK Creation.
|
||
|
|
+# Ensure you have Skip.Deathknight.Starter.Enable set to 0 if using this conf.
|
||
|
|
+# Default: 0 - (Disabled)
|
||
|
|
+# 1 - (Enabled)
|
||
|
|
+
|
||
|
|
+GM.Skip.Deathknight.Starter.Enable = 0
|
||
|
|
+
|
||
|
|
+# Skip.Deathknight.Start.Level
|
||
|
|
+# Adjusted Death Knight Start Level if module is used.
|
||
|
|
+# Default: 58 - (Default)
|
||
|
|
+#
|
||
|
|
+
|
||
|
|
+Skip.Deathknight.Start.Level = 58
|
||
|
|
+
|
||
|
|
+# Skip.Deathknight.Optional.Enable
|
||
|
|
+# Enables optional to skip when talking to lich king on first creation of dk.
|
||
|
|
+# Default: 1 - (Active)
|
||
|
|
+
|
||
|
|
+Skip.Deathknight.Optional.Enable = 1
|
||
|
|
+
|
||
|
|
+#
|
||
|
|
+###################################################################################################
|
||
|
|
\ No newline at end of file
|