aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2023_08_16_00_world.sql79
-rw-r--r--src/server/scripts/BrokenIsles/broken_isles_script_loader.cpp2
-rw-r--r--src/server/scripts/BrokenIsles/zone_mardum.cpp76
3 files changed, 157 insertions, 0 deletions
diff --git a/sql/updates/world/master/2023_08_16_00_world.sql b/sql/updates/world/master/2023_08_16_00_world.sql
new file mode 100644
index 00000000000..c046a3a475d
--- /dev/null
+++ b/sql/updates/world/master/2023_08_16_00_world.sql
@@ -0,0 +1,79 @@
+SET @CGUID := 6000054;
+
+-- Creature
+DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+5;
+INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `VerifiedBuild`) VALUES
+(@CGUID+0, 98227, 1481, 7705, 7705, '0', 4899, 0, 0, 1, 1177, 3203.068603515625, 51.36370086669921875, 4.887462139129638671, 120, 0, 0, 31060, 0, 0, 0, 0, 50622), -- Allari the Souleater (Area: Mardum, the Shattered Abyss - Difficulty: 0) CreateObject1
+(@CGUID+1, 98228, 1481, 7705, 7705, '0', 4899, 0, 0, 1, 1182.35595703125, 3202.912353515625, 51.5215301513671875, 4.885663032531738281, 120, 0, 0, 34166, 0, 0, 0, 0, 50622), -- Jace Darkweaver (Area: Mardum, the Shattered Abyss - Difficulty: 0) CreateObject1
+(@CGUID+2, 98290, 1481, 7705, 7705, '0', 4899, 0, 0, 1, 1171.4896240234375, 3203.684814453125, 51.31452178955078125, 3.456398963928222656, 120, 0, 0, 31060, 0, 0, 0, 0, 50622), -- Cyana Nightglaive (Area: Mardum, the Shattered Abyss - Difficulty: 0) CreateObject1
+(@CGUID+3, 93011, 1481, 7705, 7705, '0', 4899, 0, 0, 1, 1179.5660400390625, 3202.606689453125, 51.34317398071289062, 4.873765945434570312, 120, 0, 0, 31060, 0, 0, 0, 0, 50622), -- Kayn Sunfury (Area: Mardum, the Shattered Abyss - Difficulty: 0) CreateObject1
+(@CGUID+4, 99918, 1481, 7705, 7705, '0', 4899, 0, 0, 1, 1172.9149169921875, 3207.81689453125, 52.39348983764648437, 3.731853008270263671, 120, 0, 0, 27954, 0, 0, 0, 0, 50622), -- Sevis Brightflame (Area: Mardum, the Shattered Abyss - Difficulty: 0) CreateObject1
+(@CGUID+5, 98292, 1481, 7705, 7705, '0', 4899, 0, 0, 1, 1170.7430419921875, 3204.713623046875, 51.5426483154296875, 3.367438316345214843, 120, 0, 0, 29507, 0, 0, 0, 0, 50622); -- Kor'vas Bloodthorn (Area: Mardum, the Shattered Abyss - Difficulty: 0) CreateObject1
+DELETE FROM `creature_addon` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+5;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `StandState`, `AnimTier`, `VisFlags`, `SheathState`, `PvpFlags`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES
+(@CGUID+0, 0, 0, 0, 0, 0, 1, 0, 375, 0, 0, 0, 0, ''), -- Allari the Souleater
+(@CGUID+1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''), -- Jace Darkweaver
+(@CGUID+3, 0, 0, 0, 0, 0, 1, 0, 333, 0, 0, 0, 0, ''), -- Kayn Sunfury
+(@CGUID+4, 0, 0, 0, 0, 0, 1, 0, 333, 0, 0, 0, 0, ''), -- Sevis Brightflame
+(@CGUID+5, 0, 0, 0, 0, 0, 1, 0, 333, 0, 0, 0, 0, ''); -- Kor'vas Bloodthorn
+
+-- SpellScript names
+DELETE FROM `spell_script_names` WHERE `spell_id` = 196030;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(196030,'spell_demon_hunter_intro_aura');
+
+-- Playercreateinfo
+DELETE FROM `playercreateinfo_cast_spell` WHERE `raceMask` = (0x8 | 0x200) AND `classMask` = 0x800;
+INSERT INTO `playercreateinfo_cast_spell` (`raceMask`, `classMask`, `createMode`, `spell`, `note`) VALUES
+((0x8 | 0x200), 0x800, 0, 196030, 'Demonhunter - Start Quest Invis');
+
+-- Scene
+DELETE FROM `scene_template` WHERE `SceneId`=1106;
+INSERT INTO `scene_template` (`SceneId`, `Flags`, `ScriptPackageID`, `Encrypted`) VALUES
+(1106, 20, 1487, 0);
+
+UPDATE `scene_template` SET `ScriptName` = 'scene_demonhunter_intro' WHERE `SceneId` = 1106;
+
+-- Conversations
+DELETE FROM `conversation_actors` WHERE (`ConversationId`=705 AND `Idx`=0);
+INSERT INTO `conversation_actors` (`ConversationId`, `ConversationActorId`, `Idx`, `CreatureId`, `CreatureDisplayInfoId`, `NoActorObject`, `ActivePlayerObject`, `VerifiedBuild`) VALUES
+(705, 50124, 0, 98075, 21135, 0, 0, 50622);
+
+DELETE FROM `conversation_line_template` WHERE `Id` IN (1684, 1683);
+INSERT INTO `conversation_line_template` (`Id`, `UiCameraID`, `ActorIdx`, `Flags`, `ChatType`, `VerifiedBuild`) VALUES
+(1684, 296, 0, 0, 0, 50622),
+(1683, 296, 0, 0, 0, 50622);
+
+DELETE FROM `conversation_template` WHERE `Id`=705;
+INSERT INTO `conversation_template` (`Id`, `FirstLineID`, `TextureKitId`, `VerifiedBuild`) VALUES
+(705, 1683, 0, 50622);
+
+-- Phasing
+DELETE FROM `phase_name` WHERE `ID` = 4899;
+INSERT INTO `phase_name` (`ID`, `Name`) VALUES
+(4899, 'Cosmetic - See Illidari after intro scene');
+
+DELETE FROM `phase_area` WHERE `AreaId` = 7705 AND `PhaseId` = 4899;
+INSERT INTO `phase_area` (`AreaId`, `PhaseId`, `Comment`) VALUES
+(7705, 4899, 'Cosmetic - See Illidari after intro scene');
+
+-- conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=26 AND `SourceGroup` = 4899 AND `SourceEntry` = 0;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `Comment`) VALUES
+(26, 4899, 0, 0, 0, 47, 0, 40076, 64, 0, 0, 'Apply Phase 4899 if Quest 40076 is rewarded');
+
+-- Hidden Tracker Quest
+DELETE FROM `quest_template` WHERE `ID` = 40076;
+INSERT INTO `quest_template` (`ID`, `QuestType`, `QuestPackageID`, `ContentTuningID`, `QuestSortID`, `QuestInfoID`, `SuggestedGroupNum`, `RewardNextQuest`, `RewardXPDifficulty`, `RewardXPMultiplier`, `RewardMoneyDifficulty`, `RewardMoneyMultiplier`, `RewardBonusMoney`, `RewardDisplaySpell1`, `RewardDisplaySpell2`, `RewardDisplaySpell3`, `RewardSpell`, `RewardHonor`, `RewardKillHonor`, `StartItem`, `RewardArtifactXPDifficulty`, `RewardArtifactXPMultiplier`, `RewardArtifactCategoryID`, `Flags`, `FlagsEx`, `FlagsEx2`, `RewardItem1`, `RewardAmount1`, `RewardItem2`, `RewardAmount2`, `RewardItem3`, `RewardAmount3`, `RewardItem4`, `RewardAmount4`, `ItemDrop1`, `ItemDropQuantity1`, `ItemDrop2`, `ItemDropQuantity2`, `ItemDrop3`, `ItemDropQuantity3`, `ItemDrop4`, `ItemDropQuantity4`, `RewardChoiceItemID1`, `RewardChoiceItemQuantity1`, `RewardChoiceItemDisplayID1`, `RewardChoiceItemID2`, `RewardChoiceItemQuantity2`, `RewardChoiceItemDisplayID2`, `RewardChoiceItemID3`, `RewardChoiceItemQuantity3`, `RewardChoiceItemDisplayID3`, `RewardChoiceItemID4`, `RewardChoiceItemQuantity4`, `RewardChoiceItemDisplayID4`, `RewardChoiceItemID5`, `RewardChoiceItemQuantity5`, `RewardChoiceItemDisplayID5`, `RewardChoiceItemID6`, `RewardChoiceItemQuantity6`, `RewardChoiceItemDisplayID6`, `POIContinent`, `POIx`, `POIy`, `POIPriority`, `RewardTitle`, `RewardArenaPoints`, `RewardSkillLineID`, `RewardNumSkillUps`, `PortraitGiver`, `PortraitGiverMount`, `PortraitGiverModelSceneID`, `PortraitTurnIn`, `RewardFactionID1`, `RewardFactionValue1`, `RewardFactionOverride1`, `RewardFactionCapIn1`, `RewardFactionID2`, `RewardFactionValue2`, `RewardFactionOverride2`, `RewardFactionCapIn2`, `RewardFactionID3`, `RewardFactionValue3`, `RewardFactionOverride3`, `RewardFactionCapIn3`, `RewardFactionID4`, `RewardFactionValue4`, `RewardFactionOverride4`, `RewardFactionCapIn4`, `RewardFactionID5`, `RewardFactionValue5`, `RewardFactionOverride5`, `RewardFactionCapIn5`, `RewardFactionFlags`, `RewardCurrencyID1`, `RewardCurrencyQty1`, `RewardCurrencyID2`, `RewardCurrencyQty2`, `RewardCurrencyID3`, `RewardCurrencyQty3`, `RewardCurrencyID4`, `RewardCurrencyQty4`, `AcceptedSoundKitID`, `CompleteSoundKitID`, `AreaGroupID`, `TimeAllowed`, `AllowableRaces`, `TreasurePickerID`, `Expansion`, `ManagedWorldStateID`, `QuestSessionBonus`, `LogTitle`, `LogDescription`, `QuestDescription`, `AreaDescription`, `PortraitGiverText`, `PortraitGiverName`, `PortraitTurnInText`, `PortraitTurnInName`, `QuestCompletionLog`, `VerifiedBuild`) VALUES
+(40076, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, (0x00000400), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '[Hidden Tracker] Start Demon Hunter Tracking Event', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
+
+-- Serverside Spell
+DELETE FROM `serverside_spell` WHERE `ID` IN (196030, 228766);
+INSERT INTO `serverside_spell` (`Id`, `DifficultyID`, `CategoryId`, `Dispel`, `Mechanic`, `Attributes`, `AttributesEx`, `AttributesEx2`, `AttributesEx3`, `AttributesEx4`, `AttributesEx5`, `AttributesEx6`, `AttributesEx7`, `AttributesEx8`, `AttributesEx9`, `AttributesEx10`, `AttributesEx11`, `AttributesEx12`, `AttributesEx13`, `AttributesEx14`, `Stances`, `StancesNot`, `Targets`, `TargetCreatureType`, `RequiresSpellFocus`, `FacingCasterFlags`, `CasterAuraState`, `TargetAuraState`, `ExcludeCasterAuraState`, `ExcludeTargetAuraState`, `CasterAuraSpell`, `TargetAuraSpell`, `ExcludeCasterAuraSpell`, `ExcludeTargetAuraSpell`, `CasterAuraType`, `TargetAuraType`, `ExcludeCasterAuraType`, `ExcludeTargetAuraType`, `CastingTimeIndex`, `RecoveryTime`, `CategoryRecoveryTime`, `StartRecoveryCategory`, `StartRecoveryTime`, `InterruptFlags`, `AuraInterruptFlags1`, `AuraInterruptFlags2`, `ChannelInterruptFlags1`, `ChannelInterruptFlags2`, `ProcFlags`, `ProcFlags2`, `ProcChance`, `ProcCharges`, `ProcCooldown`, `ProcBasePPM`, `MaxLevel`, `BaseLevel`, `SpellLevel`, `DurationIndex`, `RangeIndex`, `Speed`, `LaunchDelay`, `StackAmount`, `EquippedItemClass`, `EquippedItemSubClassMask`, `EquippedItemInventoryTypeMask`, `ContentTuningId`, `SpellName`, `ConeAngle`, `ConeWidth`, `MaxTargetLevel`, `MaxAffectedTargets`, `SpellFamilyName`, `SpellFamilyFlags1`, `SpellFamilyFlags2`, `SpellFamilyFlags3`, `SpellFamilyFlags4`, `DmgClass`, `PreventionType`, `AreaGroupId`, `SchoolMask`, `ChargeCategoryId`) VALUES
+(196030, 0, 0, 0, 0, 134217856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 23, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 1, 0, 0, 0, -1, 0, 0, 0, 'Start: Quest Invis', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
+(228766, 0, 0, 0, 0, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 'Start: Demon Hunters - Flag Quest', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0);
+
+DELETE FROM `serverside_spell_effect` WHERE `SpellID` IN (196030, 228766);
+INSERT INTO `serverside_spell_effect` (`SpellID`, `EffectIndex`, `DifficultyID`, `Effect`, `EffectAura`, `EffectAmplitude`, `EffectAttributes`, `EffectAuraPeriod`, `EffectBonusCoefficient`, `EffectChainAmplitude`, `EffectChainTargets`, `EffectItemType`, `EffectMechanic`, `EffectPointsPerResource`, `EffectPosFacing`, `EffectRealPointsPerLevel`, `EffectTriggerSpell`, `BonusCoefficientFromAP`, `PvpMultiplier`, `Coefficient`, `Variance`, `ResourceCoefficient`, `GroupSizeBasePointsCoefficient`, `EffectBasePoints`, `EffectMiscValue1`, `EffectMiscValue2`, `EffectRadiusIndex1`, `EffectRadiusIndex2`, `EffectSpellClassMask1`, `EffectSpellClassMask2`, `EffectSpellClassMask3`, `EffectSpellClassMask4`, `ImplicitTarget1`, `ImplicitTarget2`) VALUES
+(196030, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0),
+(228766, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40076, 0, 0, 0, 0, 0, 0, 0, 1, 0);
diff --git a/src/server/scripts/BrokenIsles/broken_isles_script_loader.cpp b/src/server/scripts/BrokenIsles/broken_isles_script_loader.cpp
index 19486d9ef55..0c98885e33a 100644
--- a/src/server/scripts/BrokenIsles/broken_isles_script_loader.cpp
+++ b/src/server/scripts/BrokenIsles/broken_isles_script_loader.cpp
@@ -17,10 +17,12 @@
// This is where scripts' loading functions should be declared:
void AddSC_orderhall_warrior();
+void AddSC_zone_mardum();
// The name of this function should match:
// void Add${NameOfDirectory}Scripts()
void AddBrokenIslesScripts()
{
AddSC_orderhall_warrior();
+ AddSC_zone_mardum();
}
diff --git a/src/server/scripts/BrokenIsles/zone_mardum.cpp b/src/server/scripts/BrokenIsles/zone_mardum.cpp
new file mode 100644
index 00000000000..15785185c0d
--- /dev/null
+++ b/src/server/scripts/BrokenIsles/zone_mardum.cpp
@@ -0,0 +1,76 @@
+/*
+ * 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/>.
+ */
+
+#include "Conversation.h"
+#include "PhasingHandler.h"
+#include "Player.h"
+#include "ScriptMgr.h"
+#include "SpellScript.h"
+
+enum MardumSpellData
+{
+ SPELL_START_DEMON_HUNTER_PLAY_SCENE = 193525
+};
+
+enum MardumQuestData
+{
+ QUEST_DEMON_HUNTER_INTRO_TRACKER = 40076
+};
+
+enum MardumConversationData
+{
+ CONVO_DEMONHUNTER_INTRO_START = 705
+};
+
+class scene_demonhunter_intro : public SceneScript
+{
+public:
+ scene_demonhunter_intro() : SceneScript("scene_demonhunter_intro") { }
+
+ void OnSceneStart(Player* player, uint32 /*sceneInstanceID*/, SceneTemplate const* /*sceneTemplate*/) override
+ {
+ Conversation::CreateConversation(CONVO_DEMONHUNTER_INTRO_START, player, *player, player->GetGUID(), nullptr);
+ }
+
+ void OnSceneComplete(Player* player, uint32 /*sceneInstanceID*/, SceneTemplate const* /*sceneTemplate*/) override
+ {
+ PhasingHandler::OnConditionChange(player);
+ }
+};
+
+// 196030 - Start: Quest Invis
+class spell_demon_hunter_intro_aura : public AuraScript
+{
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(nullptr, SPELL_START_DEMON_HUNTER_PLAY_SCENE, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_demon_hunter_intro_aura::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+void AddSC_zone_mardum()
+{
+ // Scene
+ new scene_demonhunter_intro();
+
+ // Spells
+ RegisterSpellScript(spell_demon_hunter_intro_aura);
+};