diff options
-rw-r--r-- | sql/updates/world/2013_09_02_20_world_sai.sql | 162 | ||||
-rw-r--r-- | sql/updates/world/2013_09_03_00_world_smart_scripts.sql | 5 | ||||
-rw-r--r-- | sql/updates/world/2013_09_03_01_world_creature.sql | 2 | ||||
-rw-r--r-- | sql/updates/world/2013_09_03_02_world_update.sql | 1 | ||||
-rw-r--r-- | sql/updates/world/2013_09_03_03_world_sai.sql | 230 | ||||
-rw-r--r-- | sql/updates/world/2013_09_03_04_world_sai.sql | 4 | ||||
-rw-r--r-- | src/server/game/AI/CreatureAI.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Maps/Map.cpp | 7 | ||||
-rw-r--r-- | src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp | 4 | ||||
-rw-r--r-- | src/tools/map_extractor/System.cpp | 10 | ||||
-rw-r--r-- | src/tools/map_extractor/loadlib.cpp | 12 | ||||
-rw-r--r-- | src/tools/mmaps_generator/MapBuilder.cpp | 21 | ||||
-rw-r--r-- | src/tools/mmaps_generator/PathGenerator.cpp | 2 |
14 files changed, 427 insertions, 37 deletions
diff --git a/sql/updates/world/2013_09_02_20_world_sai.sql b/sql/updates/world/2013_09_02_20_world_sai.sql new file mode 100644 index 00000000000..2ccccad1366 --- /dev/null +++ b/sql/updates/world/2013_09_02_20_world_sai.sql @@ -0,0 +1,162 @@ +-- Random comment +SET @QUEST := 12470; -- Mystery of the Infinite (12470) +SET @NPC_HoE := 27840; -- Hourglass of Eternity +SET @NPC_FU := 27899; -- Future You +SET @NPC_ICM := 27898; -- Infinite Chrono-Magus +SET @NPC_IA := 27896; -- Infinite Assailant +SET @NPC_ID := 27897; -- Infonite Destroyer +SET @NPC_IT := 27900; -- Infinite Timerender +SET @SPELL_SUMMON_FU := 49942; -- Mystery of the Infinite: Force Cast to Player of Summon Future You +SET @SPELL_CAST := 49686; -- Mystery of the Infinite: Script Effect Player Cast Mirror Image +SET @SPELL_MIRROR := 49889; -- Mystery of the Infinite: Future You's Mirror Image Aura +SET @SPELL_NEARBY := 50867; -- Hourglass of Eternity Nearby +SET @AURA_VISUAL := 50057; -- Mystery of the Infinite: Hourglass of Eternity Visual/Sound Aura +SET @AURA_CLASS := 49925; -- Mystery of the Infinite: Future You's Mirror Class Aura +SET @FU_SAY_RAND := 50037; -- Mystery of the Infinite: Future You's Whisper to Controller - Random +SET @FU_SAY_BYE := 50023; -- Mystery of the Infinite: Future You's Whisper to Controller - Farewell +SET @FU_SAY_NOZD := 50014; -- Mystery of the Infinite: Future You's Whisper to Controller - Nozdormu +SET @VIEW_INVISIBILITY := 50020; -- Mystery of the Infinite: Hourglass cast See Invis on Master +SET @VIEW_INVISIBILITY1 := 50012; -- See Nozdormu Invisibility +SET @FU_DESPAWN_TIME := 50022; -- Mystery of the Infinite: Future You's Despawn Timer +SET @SPELL_ASSAILANT := 49900; -- Summon Infinite Assailant +SET @SPELL_DESTROYER := 49901; -- Summon Infinite Destroyer +SET @SPELL_MAGUS := 49902; -- Summon Infinite Chrono-Magus +SET @SPELL_TIMERENDER := 49905; -- Summon Infinite Timerender + +-- Hourglass of Eternity +UPDATE `creature` SET `orientation`=2.085232 WHERE `guid`=152260; +UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=27925; +UPDATE `creature_template` SET `AIName`='SmartAI',`RegenHealth`=0 WHERE `entry`=@NPC_HoE; +DELETE FROM `smart_scripts` WHERE (`entryorguid`=@NPC_HoE AND `source_type`=0) OR (`entryorguid`IN (@NPC_HoE*100,@NPC_HoE*100+1) AND `source_type`=9); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@NPC_HoE,0,0,1,54,0,100,1,0,0,0,0,85,@SPELL_SUMMON_FU,0,0,0,0,0,7,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On spawn - Invoker Cast'), +(@NPC_HoE,0,1,2,61,0,100,0,0,0,0,0,11,@SPELL_NEARBY,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On link - Cast Spell'), +(@NPC_HoE,0,2,3,61,0,100,0,0,0,0,0,8,0,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - Set passive - Self'), +(@NPC_HoE,0,3,6,61,0,100,0,0,0,0,0,80,@NPC_HoE*100,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On link - Start timed script'), +(@NPC_HoE,0,4,0,6,0,100,0,0,0,0,0,6,@QUEST,0,0,0,0,0,16,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On Death - Fail Quest'), +(@NPC_HoE,0,5,0,38,0,100,0,2,1,0,0,80,@NPC_HoE*100+1,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On Data Set - Start timed script two'), +(@NPC_HoE,0,6,0,61,0,100,0,0,0,0,0,11,@AURA_VISUAL,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On link - Cast Spell'), + +-- Wave 1 + Random speech +(@NPC_HoE*100,9,0,0,0,0,100,1,5000,5000,0,0,45,1,1,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,1,0,0,0,100,1,5000,5000,0,0,45,1,2,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,2,0,0,0,100,1,5000,5000,0,0,11,@SPELL_MAGUS,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Cast Spell on self'), +(@NPC_HoE*100,9,3,0,0,0,100,1,0,0,0,0,11,@SPELL_ASSAILANT,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Cast Spell on self'), +-- Wave 2 + Random speech +(@NPC_HoE*100,9,4,0,0,0,100,1,5000,5000,0,0,45,1,3,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,5,0,0,0,100,1,6000,6000,0,0,45,1,4,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,6,0,0,0,100,1,19000,19000,0,0,11,@SPELL_MAGUS,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Cast Spell on self'), +(@NPC_HoE*100,9,7,0,0,0,100,1,0,0,0,0,11,@SPELL_MAGUS,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Cast Spell on self'), +-- Wave 3 + Random speech +(@NPC_HoE*100,9,8,0,0,0,100,1,5000,5000,0,0,45,1,5,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,9,0,0,0,100,1,6000,6000,0,0,45,1,6,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,10,0,0,0,100,1,5000,5000,0,0,45,1,7,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,11,0,0,0,100,1,14000,14000,0,0,11,@SPELL_MAGUS,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Cast Spell on self'), +(@NPC_HoE*100,9,12,0,0,0,100,1,0,0,0,0,11,@SPELL_ASSAILANT,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Cast Spell on self'), +(@NPC_HoE*100,9,13,0,0,0,100,1,0,0,0,0,11,@SPELL_DESTROYER,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Cast Spell on self'), +-- Wave 4 + Random speech +(@NPC_HoE*100,9,14,0,0,0,100,1,5000,5000,0,0,45,1,8,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,15,0,0,0,100,1,9000,9000,0,0,45,1,9,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,16,0,0,0,100,1,7000,7000,0,0,45,1,10,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,17,0,0,0,100,1,9000,9000,0,0,11,@SPELL_MAGUS,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100,9,18,0,0,0,100,1,0,0,0,0,11,@SPELL_ASSAILANT,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'OHourglass of Eternity - On update - Cast Spell on self'), +(@NPC_HoE*100,9,19,0,0,0,100,1,0,0,0,0,11,@SPELL_DESTROYER,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Cast Spell on self'), +-- Wave 5 final + Random speech +(@NPC_HoE*100,9,20,0,0,0,100,1,23000,23000,0,0,11,@SPELL_TIMERENDER,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Cast Spell on self'), +-- End Text Script +(@NPC_HoE*100+1,9,0,0,0,0,100,1,4000,4000,0,0,45,2,1,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100+1,9,1,0,0,0,100,1,0,0,0,0,15,@QUEST,0,0,0,0,0,21,10,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Give Quest Credit'), +(@NPC_HoE*100+1,9,2,0,0,0,100,1,8000,8000,0,0,45,2,2,0,0,0,0,19,@NPC_FU,20,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update - Set Data on Future You'), +(@NPC_HoE*100+1,9,3,0,0,0,100,1,0,0,0,0,41,4000,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Hourglass of Eternity - On update -Despawn after timer'); + +-- Future You +DELETE FROM `smart_scripts` WHERE `entryorguid`=@NPC_FU AND `source_type`=0; +UPDATE `creature_template` SET `faction_A`=2141,`faction_H`=2141,`AIName`='SmartAI',`unit_flags`=0,`RegenHealth`=0 WHERE `entry`=@NPC_FU; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@NPC_FU,0,0,1,54,0,100,1,0,0,0,0,85,@SPELL_MIRROR,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spawn - Invoker Cast Spell - Self'), +(@NPC_FU,0,1,0,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,11,@NPC_HoE,10,0,0.0,0.0,0.0,0.0,'Future You - On link - Set Orientation'), +(@NPC_FU,0,2,3,38,0,100,0,1,1,0,0,11,@FU_SAY_RAND,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,3,0,61,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 1'), +(@NPC_FU,0,4,5,38,0,100,0,1,2,0,0,11,@FU_SAY_RAND,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,5,0,61,0,100,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 2'), +(@NPC_FU,0,6,7,38,0,100,0,1,3,0,0,11,@FU_SAY_RAND,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,7,0,61,0,100,0,0,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 3'), +(@NPC_FU,0,8,9,38,0,100,0,1,4,0,0,11,@FU_SAY_RAND,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,9,0,61,0,100,0,0,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 4'), +(@NPC_FU,0,10,11,38,0,100,0,1,5,0,0,11,@FU_SAY_RAND,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,11,0,61,0,100,0,0,0,0,0,1,5,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 5'), +(@NPC_FU,0,12,13,38,0,100,0,1,6,0,0,11,@FU_SAY_RAND,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,13,0,61,0,100,0,0,0,0,0,1,6,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 6'), +(@NPC_FU,0,14,15,38,0,100,0,1,7,0,0,11,@FU_SAY_RAND,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,15,0,61,0,100,0,0,0,0,0,1,7,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 7'), +(@NPC_FU,0,16,17,38,0,100,0,1,8,0,0,11,@FU_SAY_RAND,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,17,0,61,0,100,0,0,0,0,0,1,8,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 8'), +(@NPC_FU,0,18,19,38,0,100,0,1,9,0,0,11,@FU_SAY_RAND,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,19,0,61,0,100,0,0,0,0,0,1,9,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 9'), +(@NPC_FU,0,20,21,38,0,100,0,1,10,0,0,11,@FU_SAY_RAND,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,21,0,61,0,100,0,0,0,0,0,1,10,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 10'), +(@NPC_FU,0,22,23,38,0,100,0,2,1,0,0,11,@FU_SAY_NOZD,2,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Cast spell'), +(@NPC_FU,0,23,0,61,0,100,0,0,0,0,0,1,11,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On spellhit - Whisper 11'), +(@NPC_FU,0,24,25,38,0,100,0,2,2,0,0,1,12,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Data Set - Whisper 12'), +(@NPC_FU,0,25,0,61,0,100,0,0,0,0,0,41,3000,0,0,0,0,0,11,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Link - Despawn after timer'), +(@NPC_FU,0,26,27,7,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Evade - Despawn after timer'), +(@NPC_FU,0,27,0,61,0,100,0,0,0,0,0,85,@SPELL_SUMMON_FU,0,0,0,0,0,7,0,0,0,0.0,0.0,0.0,0.0,'Future You - On Link - Cast Summon Clone'); + +-- Clone invoker weapons +DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=@SPELL_MIRROR; +INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES +(@SPELL_MIRROR,41055,1,'Copy main weapon'), +(@SPELL_MIRROR,45206,1,'Copy off weapon'); + +-- Spell Area to see Nozdormu invis +DELETE FROM `spell_area` WHERE spell = @VIEW_INVISIBILITY1; +INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES +(@VIEW_INVISIBILITY1, 4175, 12470, 0, 0, 0, 2, 1, 2, 11); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@SPELL_MIRROR; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(13,7,@SPELL_MIRROR,0,0,31,0,3,@NPC_FU,0,0,0,'','Spell target Future You'); + +DELETE FROM `creature_template_addon` WHERE `entry` IN (@NPC_HoE,@NPC_FU); +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES +(@NPC_HoE,0,0x0,0x1,''), +(@NPC_FU,0,0x0,0x1,''); + +-- Future You's text +DELETE FROM `creature_text` WHERE `entry`=@NPC_FU; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@NPC_FU,1,0,'Hey there, $N, don''t be alarmed. It''s me... you... from the future. I''m here to help.',15,0,100,396,0,0,'Future You'), +(@NPC_FU,2,0,'Head''s up... here they come. I''ll help as much as I can. Let''s just keep them off the hourglass!',15,0,100,396,0,0,'Future You'), +(@NPC_FU,3,0,'No matter what, you can''t die, because that would mean that I would cease to exist, right? I was here before when i was you. I''m so confused!',15,0,100,0,0,0,'Future You'), +(@NPC_FU,4,0,'I can''t believe that I used to wear that.',15,0,100,0,0,0,'Future You'), +(@NPC_FU,5,0,'Sorry, but Chromie said that I couldn''t reveal anything about your future to you. She said that if I did, I would cease to exist.',15,0,100,0,0,0,'Future You'), +(@NPC_FU,6,0,'Wow, I''d forgotten how inexperienced I used to be.',15,0,100,0,0,0,'Future You'), +(@NPC_FU,7,0,'Look at you fight; no wonder I turned to drinking.',15,0,100,0,0,0,'Future You'), +(@NPC_FU,8,0,'What? Am I here alone. We both have a stake at this, you know!',15,0,100,0,0,0,'Future You'), +(@NPC_FU,9,0,'Listen. I''m not supposed to tell you this, but there''s going to be this party that you''re invited to. Whatever you do, DO NOT DRINK THE PUNCH!',15,0,100,0,0,0,'Future You'), +(@NPC_FU,10,0,'Wish I could remember how many of the Infinite Dragonflight were going to try to stop you. This fight was so long ago.',15,0,100,0,0,0,'Future You'), +(@NPC_FU,11,0,'Look, $N, the hourglass has revealed Nozdormu!',15,0,100,25,0,0,'Future You'), +(@NPC_FU,12,0,'Farewell, $N, Keep us alive and get some better equipment!',15,0,100,0,0,0,'Future You'); + +DELETE FROM `creature_ai_scripts` WHERE creature_id IN (27898,27900); +UPDATE `creature_template` SET `AIName`='SmartAI',`faction_A`=2111,`faction_H`=2111,`unit_flags`=559104 WHERE `entry` IN (@NPC_ICM,@NPC_IA,@NPC_ID,@NPC_IT); +-- Infinite Chrono-Magus +DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@NPC_ICM; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@NPC_ICM,0,0,0,4,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Infinite Chrono-Magus - Set Phase 1 - On Aggro'), +(@NPC_ICM,0,1,0,4,1,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Infinite Chrono-Magus - Stop Moving - On Aggro'), +(@NPC_ICM,0,2,0,4,1,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,'Infinite Chrono-Magus - Cast bolt on Aggro'), +(@NPC_ICM,0,3,0,9,1,100,0,0,40,3400,4700,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,'Infinite Chrono-Magus - Cast Bolt'), +(@NPC_ICM,0,4,0,9,1,100,0,40,100,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Infinite Chrono-Magus - Start Moving - When not in bolt Range'), +(@NPC_ICM,0,5,0,9,1,100,0,10,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Infinite Chrono-Magus - Stop Moving - 15 Yards'), +(@NPC_ICM,0,6,0,9,1,100,0,0,40,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Infinite Chrono-Magus - Stop Moving - When in bolt Range'), +(@NPC_ICM,0,7,0,3,1,100,0,0,15,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Infinite Chrono-Magus - Set Phase 2 - 15% Mana'), +(@NPC_ICM,0,8,0,3,2,100,0,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Infinite Chrono-Magus - Start Moving - 15% Mana'), +(@NPC_ICM,0,9,0,3,2,100,0,30,100,100,100,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Infinite Chrono-Magus - Set Phase 1 - When Mana is above 30%'), +(@NPC_ICM,0,10,0,0,1,100,0,8000,8000,12000,14000,11,38085,0,0,0,0,0,2,0,0,0,0,0,0,0,'Infinite Chrono-Magus - IC -Cast Shadow Blast'); + +-- Infinite Timerender +DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@NPC_IT; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@NPC_IT,0,0,0,0,0,100,0,5000,6000,12000,17000,11,51020,0,0,0,0,0,2,0,0,0,0,0,0,0,'Infinite Timerender - IC - Cast Time Lapse'), +(@NPC_IT,0,1,0,6,0,100,0,0,0,0,0,45,2,1,0,0,0,0,19,@NPC_HoE,20,0,0,0,0,0,'Infinite Timerender - On Death - Set Data on HoE'); diff --git a/sql/updates/world/2013_09_03_00_world_smart_scripts.sql b/sql/updates/world/2013_09_03_00_world_smart_scripts.sql new file mode 100644 index 00000000000..3e37287c1f7 --- /dev/null +++ b/sql/updates/world/2013_09_03_00_world_smart_scripts.sql @@ -0,0 +1,5 @@ +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=25310; + +DELETE FROM `smart_scripts` WHERE `entryorguid`=25310 AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(25310, 0, 0, 0, 8, 0, 100, 1, 45414, 0, 0, 0, 33, 25310, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Borean - Westrift Cleftcliff Anomaly - On Spellhit "Calculate Seismic Readings" - Give Quest Credit'); diff --git a/sql/updates/world/2013_09_03_01_world_creature.sql b/sql/updates/world/2013_09_03_01_world_creature.sql new file mode 100644 index 00000000000..258a05e5617 --- /dev/null +++ b/sql/updates/world/2013_09_03_01_world_creature.sql @@ -0,0 +1,2 @@ +-- Delete 2 incorrectly spawned mobs +DELETE FROM `creature` WHERE `guid` IN (66177,84663) AND `map` = 530; diff --git a/sql/updates/world/2013_09_03_02_world_update.sql b/sql/updates/world/2013_09_03_02_world_update.sql new file mode 100644 index 00000000000..d510ff8e558 --- /dev/null +++ b/sql/updates/world/2013_09_03_02_world_update.sql @@ -0,0 +1 @@ +UPDATE `creature_template` SET `spell1`=52497, `spell2`=52510 WHERE `entry`=28843; diff --git a/sql/updates/world/2013_09_03_03_world_sai.sql b/sql/updates/world/2013_09_03_03_world_sai.sql new file mode 100644 index 00000000000..52675b08cac --- /dev/null +++ b/sql/updates/world/2013_09_03_03_world_sai.sql @@ -0,0 +1,230 @@ +-- Disclosure (12710) +SET @MALMORTIS := 28948; -- Malmortis +SET @TRIGG_BUNNY := 28617; -- Drakuramas Teleport Bunny 01 +SET @LOW_TRIG_B := 114831; -- Lower Trigger Bunny Guid +SET @TRIGGER1 := 5080; -- Lower Teleport Trigger +SET @UP_TRIG_B := 114829; -- Upper Trigger Bunny guid +SET @TRIGGER2 := 5061; -- Upper Teleport Trigger +SET @SCEPT_AURA := 52678; -- Teleporter Scepter Aura +SET @ESCORT_A := 52839; -- Summon Escort Aura +SET @T_SCRIPT := 52676; -- Drakuramas Teleport Script 03 +SET @TELEPORT3 := 52677; -- Drakuramas Teleport 03 +SET @SUM_MAL := 52775; -- Summon Malmortis +SET @HEARTBEAT := 61707; -- Malmortis Heartbeat +SET @KILLCREDIT := 53101; -- Kill Credit +SET @T_SCRIPT2 := 52089; -- Drakuramas Teleport Script 01 +SET @TELEPORT1 := 52091; -- Drakuramas Teleport 01 + +-- Drakuramas Teleport 03 position +DELETE FROM `spell_target_position` WHERE `id`=@TELEPORT3; +INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES +(@TELEPORT3,571,6252.58, -1965.86, 484.782, 3.7); + +-- Drakuramas Teleport Script 01 position +DELETE FROM `spell_target_position` WHERE `id`=@TELEPORT1; +INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES +(@TELEPORT1,571,6165.262, -2001.812, 408.167, 2.2); + +DELETE FROM `areatrigger_scripts` WHERE `entry` = @TRIGGER1; +INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES +(@TRIGGER1,'SmartTrigger'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` =@TRIGGER1 AND `source_type`=2; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@TRIGGER1,2,0,0,46,0,100,0,@TRIGGER1,0,0,0,45,1,1,0,0,0,0,10,@LOW_TRIG_B,@TRIGG_BUNNY,0,0,0,0,0,''); + +DELETE FROM `areatrigger_scripts` WHERE `entry` = @TRIGGER2; +INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES +(@TRIGGER2,'SmartTrigger'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` =@TRIGGER2 AND `source_type`=2; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@TRIGGER2,2,0,0,46,0,100,0,@TRIGGER2,0,0,0,45,1,1,0,0,0,0,10,@UP_TRIG_B,@TRIGG_BUNNY,0,0,0,0,0,''); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-@LOW_TRIG_B,-@UP_TRIG_B) AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`)VALUES +(-@LOW_TRIG_B,0,0,0,38,0,100,0,1,1,0,0,11,@T_SCRIPT2,0,0,0,0,0,21,5,0,0,0,0,0,0,'Drakuramas Teleport Bunny 01 - On Data Set - Tele Player'), +-- +(-@UP_TRIG_B,0,0,0,38,0,100,0,1,1,0,0,11,@T_SCRIPT,0,0,0,0,0,21,5,0,0,0,0,0,0,'Drakuramas Teleport Bunny 01 - On Data Set - Tele Player'); + +DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (@T_SCRIPT,@T_SCRIPT2,@ESCORT_A); +INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES +(@ESCORT_A,@SUM_MAL,1,'Summon Malmortis'), +(@T_SCRIPT,@TELEPORT3,1,'Teleport'), +(@T_SCRIPT2,@TELEPORT1,1,'Teleport'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry` IN (@TRIGGER1,@TRIGGER2); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@TRIGGER1,2,0,1,0,@SCEPT_AURA,0,0,0,0,'','SAI areatrigger triggers only if player has aura Teleporter Scepter Aura'), +(22,1,@TRIGGER2,2,0,1,0,@SCEPT_AURA,0,0,0,0,'','SAI areatrigger triggers only if player has aura Teleporter Scepter Aura'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (@T_SCRIPT,@T_SCRIPT2); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, @T_SCRIPT, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Spell only hits player'), +(13, 1, @T_SCRIPT2, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Spell only hits player'); + +UPDATE `gameobject_template` SET `size`=2 WHERE `entry` IN (190948,190949); -- Musty Coffin +DELETE FROM `gameobject` WHERE `id` IN (190949,190948); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(9253, 190949, 571, 1, 1, 6260.489, -1960.045, 484.7818, 3.787367, 0, 0, 0, 1, 120, 255, 1), -- Musty Coffin (Area: Reliquary of Pain) +(9254, 190948, 571, 1, 1, 6260.482, -1960.039, 484.7818, 3.787367, 0, 0, 0, 1, 120, 255, 1); -- Musty Coffin (Area: Reliquary of Pain) + +-- Template updates for creature 28948 (Malmortis) +UPDATE `creature_template` SET `minlevel`=85,`maxlevel`=85,`unit_flags`=`unit_flags`|264,`speed_walk`=2.4,`speed_run`=0 WHERE `entry`=@MALMORTIS; -- Malmortis +-- Model data 8055 (creature 28948 (Malmortis)) +UPDATE `creature_model_info` SET `bounding_radius`=2,`combat_reach`=3,`gender`=0 WHERE `modelid`=8055; -- Malmortis +-- Addon data for creature 28948 (Malmortis) +DELETE FROM `creature_template_addon` WHERE `entry`=@MALMORTIS; +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(@MALMORTIS,0,0,1,0,''); -- Malmortis + +UPDATE `creature_template` SET AIName='SmartAI' WHERE `entry` IN (@MALMORTIS,@TRIGGER1,@TRIGGER2,@TRIGG_BUNNY); +DELETE FROM `smart_scripts` WHERE `entryorguid`IN (@MALMORTIS,@MALMORTIS*100) AND `source_type`IN (0,9); +DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (@MALMORTIS); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`)VALUES +(@MALMORTIS,0,0,1,54,0,100,0,0,0,0,0,80,@MALMORTIS*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Respawn - Start Timed Action Script'), +(@MALMORTIS,0,1,0,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Malmortis - On Respawn - Set Orientation To Invoker'), +-- 47 +(@MALMORTIS,0,2,0,40,0,100,1,8,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On WP Reached - Say 3'), +(@MALMORTIS,0,3,0,40,0,100,1,18,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On WP Reached- Say 4'), +(@MALMORTIS,0,4,5,40,0,100,1,47,0,0,0,1,5,7000,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On WP Reached - Say'), +(@MALMORTIS,0,5,0,61,0,100,0,0,0,0,0,54,10000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Link - Pause WP'), +(@MALMORTIS,0,6,0,52,0,100,1,5,@MALMORTIS,0,0,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Text Over 5 - Say 6'), +-- 121 +(@MALMORTIS,0,6,7,40,0,100,1,80,0,0,0,1,7,0,0,0,0,0,1,0,10,0,0,0,0,0,'Malmortis - On WP Reached - Say 7'), +(@MALMORTIS,0,7,0,61,0,100,0,0,0,0,0,54,6000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Link - Pause WP'), +(@MALMORTIS,0,8,9,40,0,100,1,81,0,0,0,1,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On WP Reached - Say 8'), +(@MALMORTIS,0,9,0,61,0,100,0,0,0,0,0,54,6000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Link - Pause WP'), +-- 128 +(@MALMORTIS,0,10,11,40,0,100,1,86,0,0,0,1,9,3000,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On WP Reached - Say 9'), +(@MALMORTIS,0,11,0,61,0,100,0,0,0,0,0,54,23000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Link - Pause WP'), +(@MALMORTIS,0,12,0,52,0,100,1,9,@MALMORTIS,0,0,1,10,7000,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Text Over 9 - Say 10'), +(@MALMORTIS,0,13,0,52,0,100,1,10,@MALMORTIS,0,0,1,11,7000,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Text Over 10 - Say 11'), +(@MALMORTIS,0,14,0,52,0,100,1,11,@MALMORTIS,0,0,1,12,7000,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Text Over 11 - Say 12'), +-- 137 +(@MALMORTIS,0,15,0,40,0,100,1,93,0,0,0,1,13,5000,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On WP Reached - Say 13'), +(@MALMORTIS,0,16,17,52,0,100,1,13,@MALMORTIS,0,0,1,14,7000,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Text Over 13 - Say 14'), +(@MALMORTIS,0,17,18,61,0,100,0,0,0,0,0,11,@T_SCRIPT,2,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Link - Cast on self'), +(@MALMORTIS,0,18,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Link - Despawn'), +-- +(@MALMORTIS*100,9,0,0,0,0,100,0,3000,3000,3000,3000,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Script - Say 0'), +(@MALMORTIS*100,9,1,0,0,0,100,0,5000,5000,5000,5000,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Script - Say 1'), +(@MALMORTIS*100,9,2,0,0,0,100,0,5000,5000,5000,5000,53,0,@MALMORTIS,0,0,0,0,1,0,0,0,0,0,0,0,'Malmortis - On Script - Start WP movement'), +-- It's weird that credit is given here, but hey, we're Blizzard, we can do it wherever we want. +(@MALMORTIS*100,9,3,0,0,0,100,0,1000,1000,1000,1000,11,@KILLCREDIT,2,0,0,0,0,7,0,0,0,0,0,0,0,'Malmortis - On Script - Cast Q Credit to Invoker'); + + +DELETE FROM `creature_text` WHERE `entry`=28948; +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES +(28948, 0, 0, 'Ahh... there you are. The master told us you''d be arriving soon.', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 1, 0, 'Please, follow me, $N. There is much for you to see...', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 2, 0, 'Ever since his arrival from Drak''Tharon, the master has spoken of the time you would be joining him here.', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 3, 0, 'You should feel honored. You are the first of the master''s prospects to be shown our operation.', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 4, 0, 'The things I show you now must never be spoken of outside Voltarus. The world shall come to know our secret soon enough!', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 5, 0, 'Here lie our stores of blight crystal, without which our project would be impossible.', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 6, 0, 'I understand that you are to thank for the bulk of our supply.', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 7, 0, 'These trolls are among those you exposed on the battlefield. Masterfully done, indeed....', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 8, 0, 'We feel it best to position them here, where they might come in terms with their impending fate.', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 9, 0, 'This is their destiny....', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 10, 0, 'The blight slowly seeps into their bodies, gradually preparing them for their conversion.', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 11, 0, 'This special preparation grants them unique powers far greater than they would otherwise know.', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 12, 0, 'Soon, the master will grant them the dark gift, making them fit to server the Lich King for eternity!', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 13, 0, 'Stay for as long as you like, $N. Glory in the fruits of your labor!', 12, 0, 100, 0, 0, 0, 'Malmortis say'), +(28948, 14, 0, 'Your service has been invaluable in fulfilling the master''s plan. May you forever grow in power....', 12, 0, 100, 0, 0, 0, 'Malmortis say'); + + +DELETE FROM `waypoints` WHERE entry = @MALMORTIS; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(@MALMORTIS, 1, 6246.076, -1959.903, 484.7817, ''), +(@MALMORTIS, 2, 6239.468, -1963.94, 484.5479, ''), +(@MALMORTIS, 3, 6235.218, -1964.69, 484.5479, ''), +(@MALMORTIS, 4, 6232.341, -1965.397, 484.7817, ''), +(@MALMORTIS, 5, 6229.812, -1960.545, 484.832, ''), +(@MALMORTIS, 6, 6229.805, -1960.542, 484.832, ''), +(@MALMORTIS, 7, 6225.805, -1959.542, 484.832, ''), +(@MALMORTIS, 8, 6218.658, -1962.031, 484.8823, ''), -- Say 3 +(@MALMORTIS, 9, 6213.883, -1954.917, 484.6498, ''), +(@MALMORTIS, 10, 6211.883, -1951.667, 484.6498, ''), +(@MALMORTIS, 11, 6205.607, -1941.303, 484.9172, ''), +(@MALMORTIS, 12, 6192.572, -1931.705, 484.9854, ''), +(@MALMORTIS, 13, 6178.136, -1937.173, 484.6558, ''), +(@MALMORTIS, 14, 6175.831, -1938.89, 484.9104, ''), +(@MALMORTIS, 15, 6171.331, -1943.14, 484.6604, ''), +(@MALMORTIS, 16, 6163.581, -1951.14, 484.9104, ''), +(@MALMORTIS, 17, 6157.331, -1952.89, 484.6604, ''), +(@MALMORTIS, 18, 6156.749, -1953.028, 484.9022, ''), -- Say 4 +(@MALMORTIS, 19, 6149.743, -1957.582, 484.655, ''), +(@MALMORTIS, 20, 6147.993, -1958.832, 484.905, ''), +(@MALMORTIS, 21, 6144.993, -1960.832, 484.905, ''), +(@MALMORTIS, 22, 6140.993, -1963.332, 484.905, ''), +(@MALMORTIS, 23, 6137.743, -1965.332, 484.905, ''), +(@MALMORTIS, 24, 6132.743, -1968.582, 484.905, ''), +(@MALMORTIS, 25, 6128.993, -1970.832, 484.905, ''), +(@MALMORTIS, 26, 6125.993, -1972.832, 484.905, ''), +(@MALMORTIS, 27, 6123.243, -1974.332, 484.655, ''), +(@MALMORTIS, 28, 6119.237, -1976.635, 484.9079, ''), +(@MALMORTIS, 29, 6116.115, -1977.373, 484.6002, ''), +(@MALMORTIS, 30, 6112.615, -1979.373, 484.6002, ''), +(@MALMORTIS, 31, 6103.115, -1984.623, 484.6002, ''), +(@MALMORTIS, 32, 6096.115, -1989.123, 484.6002, ''), +(@MALMORTIS, 33, 6094.615, -1990.123, 484.8502, ''), +(@MALMORTIS, 34, 6093.954, -1990.445, 484.918, ''), +(@MALMORTIS, 35, 6089.347, -2014.297, 484.8763, ''), +(@MALMORTIS, 36, 6099.82, -2021.594, 484.9467, ''), +(@MALMORTIS, 37, 6102.82, -2024.344, 484.9467, ''), +(@MALMORTIS, 38, 6105.32, -2027.094, 484.9467, ''), +(@MALMORTIS, 39, 6114.07, -2034.844, 484.9467, ''), +(@MALMORTIS, 40, 6113.57, -2037.844, 484.9467, ''), +(@MALMORTIS, 41, 6112.82, -2040.594, 484.6967, ''), +(@MALMORTIS, 42, 6113.093, -2041.11, 484.8785, ''), +(@MALMORTIS, 43, 6103.914, -2049.32, 484.8252, ''), +(@MALMORTIS, 44, 6103.414, -2052.07, 484.8252, ''), +(@MALMORTIS, 45, 6102.664, -2054.57, 484.5752, ''), +(@MALMORTIS, 46, 6103.664, -2055.57, 484.5752, ''), +(@MALMORTIS, 47, 6108.405, -2060.931, 484.7817, ''), -- say 5 & say 6 +(@MALMORTIS, 48, 6111.582, -2063.279, 484.5828, ''), +(@MALMORTIS, 49, 6117.082, -2066.779, 484.5828, ''), +(@MALMORTIS, 50, 6118.082, -2067.279, 484.8328, ''), +(@MALMORTIS, 51, 6122.082, -2069.779, 484.8328, ''), +(@MALMORTIS, 52, 6127.582, -2073.529, 484.8328, ''), +(@MALMORTIS, 53, 6129.582, -2074.779, 484.8328, ''), +(@MALMORTIS, 54, 6136.759, -2078.627, 484.8839, ''), +(@MALMORTIS, 55, 6135.021, -2082.232, 484.9813, ''), +(@MALMORTIS, 56, 6137.021, -2085.232, 484.7313, ''), +(@MALMORTIS, 57, 6143.271, -2093.232, 484.9813, ''), +(@MALMORTIS, 58, 6145.771, -2097.232, 484.9813, ''), +(@MALMORTIS, 59, 6149.521, -2102.232, 484.9813, ''), +(@MALMORTIS, 60, 6152.771, -2104.482, 484.9813, ''), +(@MALMORTIS, 61, 6157.708, -2107.487, 485.1209, ''), +(@MALMORTIS, 62, 6152.734, -2117.464, 484.878, ''), +(@MALMORTIS, 63, 6155.484, -2121.714, 485.1281, ''), +(@MALMORTIS, 64, 6146.211, -2124.778, 485.1514, ''), +(@MALMORTIS, 65, 6145.211, -2124.778, 485.1514, ''), +(@MALMORTIS, 66, 6140.628, -2128.341, 485.3621, ''), +(@MALMORTIS, 67, 6126.711, -2123.778, 473.1514, ''), +(@MALMORTIS, 68, 6125.211, -2123.778, 473.1514, ''), +(@MALMORTIS, 69, 6119.711, -2123.278, 473.4014, ''), +(@MALMORTIS, 70, 6118.48, -2123.076, 473.5551, ''), +(@MALMORTIS, 71, 6120.804, -2116.018, 473.4532, ''), +(@MALMORTIS, 72, 6121.228, -2108.079, 473.5628, ''), +(@MALMORTIS, 73, 6123.12, -2108.537, 473.5413, ''), +(@MALMORTIS, 74, 6124.12, -2108.537, 473.5413, ''), +(@MALMORTIS, 75, 6128.12, -2108.787, 473.2913, ''), +(@MALMORTIS, 76, 6137.730, -2111.003, 465.857, ''), +(@MALMORTIS, 77, 6143.918, -2112.493, 461.311, ''), +(@MALMORTIS, 78, 6152.609, -2110.294, 461.309, ''), +(@MALMORTIS, 79, 6156.999, -2110.611, 461.3106, ''), +(@MALMORTIS, 80, 6157.26, -2087.746, 461.0578, ''), -- Say 7 +(@MALMORTIS, 81, 6148.678, -2072.781, 461.3044, ''), -- Say 8 +(@MALMORTIS, 82, 6154.87, -2058.052, 461.2998, ''), +(@MALMORTIS, 83, 6146.364, -2056.77, 460.8798, ''), +(@MALMORTIS, 84, 6145.364, -2055.52, 460.8798, ''), +(@MALMORTIS, 85, 6141.864, -2051.27, 460.8798, ''), +(@MALMORTIS, 86, 6139.778, -2046.457, 461.3102, ''), -- say 9 & say 10 & say 11 & say 12 +(@MALMORTIS, 87, 6143.079, -2043.717, 461.6264, ''), +(@MALMORTIS, 88, 6150.579, -2037.467, 461.6264, ''), +(@MALMORTIS, 89, 6156.329, -2032.717, 459.6264, ''), +(@MALMORTIS, 90, 6158.579, -2031.217, 458.8764, ''), +(@MALMORTIS, 91, 6161.379, -2028.978, 458.9426, ''), +(@MALMORTIS, 92, 6168.36, -2022.986, 454.9367, ''), +(@MALMORTIS, 93, 6172.36, -2019.708, 455.1223, ''); -- Say 13 & 14 diff --git a/sql/updates/world/2013_09_03_04_world_sai.sql b/sql/updates/world/2013_09_03_04_world_sai.sql new file mode 100644 index 00000000000..7c39802caae --- /dev/null +++ b/sql/updates/world/2013_09_03_04_world_sai.sql @@ -0,0 +1,4 @@ +DELETE FROM `smart_scripts` WHERE `entryorguid`= 24189 AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(24189, 0, 0, 0, 19, 0, 100, 0, 11288, 0, 0, 0, 85, 43202, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Ares - On target quest accepted 11288 - Cast spell Shining Light'), +(24189, 0, 1, 0, 19, 0, 100, 0, 11289, 0, 0, 0, 85, 43228, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Ares - On target quest accepted 11289 - Cast Guided by the Oathbound QC'); diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp index cbb79b47958..75a1488ed45 100644 --- a/src/server/game/AI/CreatureAI.cpp +++ b/src/server/game/AI/CreatureAI.cpp @@ -75,6 +75,8 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/, float maxRangeToN } } + // Intended duplicated check, the code above this should select a victim + // If it can't find a suitable attack target then we should error out. if (!creature->HasReactState(REACT_PASSIVE) && !creature->GetVictim()) { TC_LOG_ERROR(LOG_FILTER_GENERAL, "DoZoneInCombat called for creature that has empty threat list (creature entry = %u)", creature->GetEntry()); diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 27f97ba93d4..04c2c22c595 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2407,6 +2407,8 @@ bool InstanceMap::AddPlayerToMap(Player* player) mapSave = sInstanceSaveMgr->AddInstanceSave(GetId(), GetInstanceId(), Difficulty(GetSpawnMode()), 0, true); } + ASSERT(mapSave); + // check for existing instance binds InstancePlayerBind* playerBind = player->GetBoundInstance(GetId(), Difficulty(GetSpawnMode())); if (playerBind && playerBind->perm) @@ -2441,10 +2443,7 @@ bool InstanceMap::AddPlayerToMap(Player* player) if (groupBind->save != mapSave) { TC_LOG_ERROR(LOG_FILTER_MAPS, "InstanceMap::Add: player %s(%d) is being put into instance %d, %d, %d but he is in group %d which is bound to instance %d, %d, %d!", player->GetName().c_str(), player->GetGUIDLow(), mapSave->GetMapId(), mapSave->GetInstanceId(), mapSave->GetDifficulty(), GUID_LOPART(group->GetLeaderGUID()), groupBind->save->GetMapId(), groupBind->save->GetInstanceId(), groupBind->save->GetDifficulty()); - if (mapSave) - TC_LOG_ERROR(LOG_FILTER_MAPS, "MapSave players: %d, group count: %d", mapSave->GetPlayerCount(), mapSave->GetGroupCount()); - else - TC_LOG_ERROR(LOG_FILTER_MAPS, "MapSave NULL"); + TC_LOG_ERROR(LOG_FILTER_MAPS, "MapSave players: %d, group count: %d", mapSave->GetPlayerCount(), mapSave->GetGroupCount()); if (groupBind->save) TC_LOG_ERROR(LOG_FILTER_MAPS, "GroupBind save players: %d, group count: %d", groupBind->save->GetPlayerCount(), groupBind->save->GetGroupCount()); else diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp index a1f33e57907..1b5a42a83ef 100644 --- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp +++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp @@ -79,7 +79,7 @@ public: if (Creature* pBalinda = Unit::GetCreature(*me, balindaGUID)) if (me->GetDistance2d(pBalinda->GetHomePosition().GetPositionX(), pBalinda->GetHomePosition().GetPositionY()) > 50) EnterEvadeMode(); - resetTimer = 5 * IN_MILLISECONDS; + resetTimer = 5 * IN_MILLISECONDS; } else resetTimer -= diff; DoMeleeAttackIfReady(); diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index f438a117a5f..1c1cdbdac53 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -1407,9 +1407,7 @@ public: { uiDespawnTimer = 28000; if (instance) - { me->AddAura(SPELL_TWILIGHT_SHIFT_ENTER, me); - } DoCast(me, SPELL_TWILIGHT_TORMENT_VESP_ACO); } @@ -1504,9 +1502,7 @@ public: void Reset() OVERRIDE { if (instance) - { me->AddAura(SPELL_TWILIGHT_SHIFT_ENTER, me); - } m_uiFadeArmorTimer = 1000; m_uiHatchEggTimer = 20000; } diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp index bf88a92c32a..2173dab4e1c 100644 --- a/src/tools/map_extractor/System.cpp +++ b/src/tools/map_extractor/System.cpp @@ -89,11 +89,17 @@ static const char* const langs[] = {"enGB", "enUS", "deDE", "esES", "frFR", "koK void CreateDir( const std::string& Path ) { + int ret; #ifdef _WIN32 - _mkdir( Path.c_str()); + ret = _mkdir( Path.c_str()); #else - mkdir( Path.c_str(), 0777 ); + ret = mkdir( Path.c_str(), 0777 ); #endif + if (ret != 0) + { + printf("Fatal Error: Could not create directory %s check your permissions", Path.c_str()); + exit(1); + } } bool FileExists( const char* FileName ) diff --git a/src/tools/map_extractor/loadlib.cpp b/src/tools/map_extractor/loadlib.cpp index 5dcb479a11c..f5b0ac40875 100644 --- a/src/tools/map_extractor/loadlib.cpp +++ b/src/tools/map_extractor/loadlib.cpp @@ -34,13 +34,11 @@ bool FileLoader::loadFile(char *filename, bool log) data_size = mf.getSize(); data = new uint8 [data_size]; - if (data) - { - mf.read(data, data_size); - mf.close(); - if (prepareLoadedData()) - return true; - } + mf.read(data, data_size); + mf.close(); + if (prepareLoadedData()) + return true; + printf("Error loading %s", filename); mf.close(); free(); diff --git a/src/tools/mmaps_generator/MapBuilder.cpp b/src/tools/mmaps_generator/MapBuilder.cpp index ab584e27e03..9c2dda51621 100644 --- a/src/tools/mmaps_generator/MapBuilder.cpp +++ b/src/tools/mmaps_generator/MapBuilder.cpp @@ -571,19 +571,7 @@ namespace MMAP // merge per tile poly and detail meshes rcPolyMesh** pmmerge = new rcPolyMesh*[TILES_PER_MAP * TILES_PER_MAP]; - if (!pmmerge) - { - printf("%s alloc pmmerge FIALED!\n", tileString); - return; - } - rcPolyMeshDetail** dmmerge = new rcPolyMeshDetail*[TILES_PER_MAP * TILES_PER_MAP]; - if (!dmmerge) - { - printf("%s alloc dmmerge FIALED!\n", tileString); - return; - } - int nmerge = 0; // build all tiles for (int y = 0; y < TILES_PER_MAP; ++y) @@ -678,12 +666,9 @@ namespace MMAP rcFreeContourSet(tile.cset); tile.cset = NULL; - if (tile.pmesh) - { - pmmerge[nmerge] = tile.pmesh; - dmmerge[nmerge] = tile.dmesh; - nmerge++; - } + pmmerge[nmerge] = tile.pmesh; + dmmerge[nmerge] = tile.dmesh; + nmerge++; } } diff --git a/src/tools/mmaps_generator/PathGenerator.cpp b/src/tools/mmaps_generator/PathGenerator.cpp index ed114491b27..882ec7ffb66 100644 --- a/src/tools/mmaps_generator/PathGenerator.cpp +++ b/src/tools/mmaps_generator/PathGenerator.cpp @@ -235,7 +235,7 @@ bool handleArgs(int argc, char** argv, int finish(const char* message, int returnValue) { printf("%s", message); - getchar(); + getchar(); // Wait for user input return returnValue; } |