*Merge.
--HG-- branch : trunk
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
UPDATE creature_template set ScriptName='mob_illidari_spawn' WHERE entry IN (22075,22074,19797);
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_torloth_the_magnificent' WHERE `entry`='22076';
|
||||
UPDATE creature_template SET ScriptName='npc_lord_illidan_stormrage' WHERE entry=22083;
|
||||
delete from creature where id=22083;
|
||||
INSERT INTO creature (id, map, spawnMask, modelid, equipment_id, position_x, position_y, position_z, orientation, spawntimesecs, spawndist, currentwaypoint, curhealth, curmana, DeathState, MovementType)
|
||||
VALUES (22083, 530, 1, 0, 0, -4635.75, 1386.32, 137.34, 5.72398, 25,0, 0, 9955, 6774, 0, 0);
|
||||
update gameobject_template set scriptname='go_crystal_prison' where entry=185126;
|
||||
|
||||
DELETE FROM script_texts WHERE entry BETWEEN -1000374 and -1000366;
|
||||
INSERT INTO script_texts (entry, content_default, type, comment) VALUES
|
||||
(-1000366, 'So you have defeated the Crimson Sigil. You now seek to challenge my rule? Not even Arthas could defeat me, yet you dare to even harbor such thoughts? Then I say to you, come! Come $N! The Black Temple awaits...', 1, 'Quest: Battle of the crimson watch - END_TEXT'),
|
||||
|
||||
(-1000367, 'At your command, my liege...', 0, 'TorlothAnim - First'),
|
||||
(-1000368, 'Destroy them, Torloth. Let lose their blood like a river upon this hallowed ground.', 0, 'Quest: Battle of the crimson watch TorlothAnim - Second'),
|
||||
(-1000369, 'As you desire, Lord Illidan.', 0, 'Quest: Battle of the crimson watch TorlothAnim - Third'),
|
||||
(-1000370, 'Yes, Lord Illidan, I would sacrifice to you this magnificent physique. On this day you will fall - another victim of Torloth...', 0, 'Quest: Battle of the crimson watch TorlothAnim - Fourth'),
|
||||
|
||||
(-1000371, 'What manner of fool dares stand before Illidan Stormrage? Soldiers, destroy these insects!', 1, 'Quest: Battle of the crimson watch WavesInfo - First'),
|
||||
(-1000372, 'You are no challenge for the Crimson Sigil. Mind breakers, end this nonsense.', 1, 'Quest: Battle of the crimson watch WavesInfo - Second'),
|
||||
(-1000373, 'Run while you still can. The highlords come soon...', 1, 'Quest: Battle of the crimson watch WavesInfo - Third'),
|
||||
(-1000374, 'Torloth your master calls!', 1, 'Quest: Battle of the crimson watch WavesInfo - Fourth');
|
||||
@@ -157,4 +157,5 @@ INSTALL(FILES
|
||||
955_world_scripts.sql
|
||||
956_world_scripts.sql
|
||||
957_world_scripts.sql
|
||||
963_world_scripts.sql
|
||||
DESTINATION share/trinity/sql/updates)
|
||||
|
||||
+116
-9
@@ -18,6 +18,10 @@ UPDATE `gameobject_template` SET `ScriptName`='go_field_repair_bot_74A' where `e
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_orb_of_command' WHERE `entry`=179879;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_tablet_of_madness' WHERE `entry`=180368;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_tablet_of_the_seven' WHERE `entry`=169294;
|
||||
UPDATE `gameobject_template` set `ScriptName`='go_manticron_cube' where entry = 181713;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_mausoleum_trigger' WHERE `entry` = 104593;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_mausoleum_door' WHERE `entry` = 176594;
|
||||
UPDATE `gameobject_template` SET `scriptname`='go_crystal_prison' WHERE `entry`=185126;
|
||||
|
||||
/* GUARD */
|
||||
UPDATE `creature_template` SET `ScriptName`='guard_azuremyst' WHERE `entry`=18038;
|
||||
@@ -62,6 +66,7 @@ UPDATE `item_template` SET `ScriptName`='item_voodoo_charm' WHERE `entry`=8149;
|
||||
UPDATE `item_template` SET `ScriptName`='item_vorenthals_presence' WHERE `entry`=30259;
|
||||
UPDATE `item_template` SET `ScriptName`='item_yehkinyas_bramble' WHERE `entry`=10699;
|
||||
UPDATE `item_template` SET `ScriptName`='item_zezzaks_shard' WHERE `entry`=31463;
|
||||
UPDATE `item_template` SET `ScriptName` = "item_only_for_flight" WHERE `entry` IN (34475, 34489, 24538);
|
||||
|
||||
/* NPC (usually creatures to be found in more than one specific zone) */
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_chicken_cluck' WHERE `entry`=620;
|
||||
@@ -76,7 +81,11 @@ UPDATE `creature_template` SET `ScriptName`='npc_prof_leather' WHERE `entry` IN
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_prof_tailor' WHERE `entry` IN (22208,22212,22213);
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_rogue_trainer' WHERE `entry` IN (918,4163,3328,4583,5165,5167,13283,16684);
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_sayge' WHERE `entry`=14822;
|
||||
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_steam_tonk' WHERE `entry` = 19405;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_tonk_mine' WHERE `entry` = 15368;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_winter_reveler' WHERE `entry`=15760;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_brewfest_reveler' WHERE `entry`=24484;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_snake_trap_serpents' where entry in (19921, 19833);
|
||||
|
||||
/* */
|
||||
/* ZONE */
|
||||
@@ -89,10 +98,13 @@ UPDATE `creature_template` SET `ScriptName`='npc_ravenholdt' WHERE `entry`=13936
|
||||
|
||||
|
||||
/* ARATHI HIGHLANDS */
|
||||
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_professor_phizzlethorpe' where entry=2768;
|
||||
|
||||
/* ASHENVALE */
|
||||
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_rizzle_sprysprocket' WHERE `entry`=23002;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_depth_charge' WHERE `entry`=23025;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_torek' WHERE `entry`=12858;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_ruul_snowhoof' WHERE `entry` = 12818;
|
||||
|
||||
/* */
|
||||
/* AUCHINDOUN */
|
||||
@@ -107,6 +119,8 @@ UPDATE `creature_template` SET `ScriptName`='mob_ethereal_beacon' WHERE `entry`=
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_exarch_maladaar' WHERE `entry`=18373;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_avatar_of_martyred' WHERE `entry`=18478;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_stolen_soul' WHERE `entry`=18441;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_shirrak_the_dead_watcher' WHERE `entry` = '18371';
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_focus_fire' WHERE `entry` = '18374';
|
||||
|
||||
/* SETHEKK HALLS */
|
||||
UPDATE `instance_template` SET `script`='instance_sethekk_halls' WHERE `map`=556;
|
||||
@@ -132,6 +146,9 @@ UPDATE `creature_template` SET `ScriptName`='npc_loramus_thalipedes' WHERE `entr
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_engineer_spark_overgrind' WHERE `entry`=17243;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_injured_draenei' WHERE `entry`=16971;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_susurrus' WHERE `entry`=17435;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_magwin' WHERE `entry`=17312;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_geezle' where entry=17318;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_nestlewood_owlkin' where entry=16518;
|
||||
|
||||
/* BADLANDS */
|
||||
|
||||
@@ -140,6 +157,8 @@ UPDATE `creature_template` SET `ScriptName`='npc_susurrus' WHERE `entry`=17435;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_beaten_corpse' WHERE `entry`=10668;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_sputtervalve' WHERE `entry`=3442;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_taskmaster_fizzule' WHERE `entry`=7233;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_twiggy_flathead' WHERE `entry` =6248;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_wizzlecrank_shredder' where entry=3439;
|
||||
|
||||
/* BLACK TEMPLE */
|
||||
UPDATE `instance_template` SET `script`='instance_black_temple' WHERE `map`=564;
|
||||
@@ -203,6 +222,8 @@ UPDATE `creature_template` SET `ScriptName`='boss_vilerel' WHERE `entry`=9036;
|
||||
UPDATE `creature_template` SET `ScriptName`='phalanx' WHERE `entry`=9502;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_lokhtos_darkbargainer' WHERE `entry`=12944;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_kharan_mighthammer' WHERE `entry`=9021;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_grimstone' WHERE `entry`=10096;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_rocknot' WHERE `entry`=9503;
|
||||
|
||||
/* BLACKROCK SPIRE */
|
||||
/* BLACKROCK SPIRE Lower bosses */
|
||||
@@ -274,11 +295,16 @@ UPDATE `creature_template` SET `ScriptName`='npc_brazen' WHERE `entry`=18725;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_erozion' WHERE `entry`=18723;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_taretha' WHERE `entry`=18887;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_thrall_old_hillsbrad' WHERE `entry`=17876;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_barrel_old_hillsbrad' WHERE `entry`=182589;
|
||||
|
||||
/* THE DARK PORTAL */
|
||||
UPDATE `instance_template` SET `script`='instance_dark_portal' WHERE `map`=269;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_chrono_lord_deja' WHERE `entry`=17879;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_aeonus' WHERE `entry`=17881;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_temporus' WHERE `entry`=17880;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_medivh_bm' WHERE `entry`=15608;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_time_rift' WHERE `entry`=17838;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_saat' WHERE `entry`=20201;
|
||||
|
||||
|
||||
/* */
|
||||
@@ -303,6 +329,7 @@ UPDATE `creature_template` SET `ScriptName`='mob_steamrigger_mechanic' WHERE `en
|
||||
/* SERPENTSHRINE CAVERN */
|
||||
UPDATE `instance_template` SET `script`='instance_serpent_shrine' WHERE `map`=548;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_hydross_the_unstable' WHERE `entry`=21216;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_toxic_sporebat' WHERE entry=22140;
|
||||
/* Leotheras the Blind event */
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_leotheras_the_blind' WHERE `entry`=21215;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_leotheras_the_blind_demonform' WHERE `entry`=21845;
|
||||
@@ -314,6 +341,10 @@ UPDATE `creature_template` SET `ScriptName`='boss_fathomguard_caribdis' WHERE `e
|
||||
/* Morogrim Tidewalker event */
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_morogrim_tidewalker' WHERE `entry`=21213;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_water_globule' WHERE `entry`=21913;
|
||||
/* The Lurker Below */
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_the_lurker_below' WHERE `entry` = '21217';
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_coilfang_ambusher' WHERE `entry` = '21865';
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_coilfang_guardian' WHERE `entry` = '21873';
|
||||
/* Lady Vashj event */
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_lady_vashj' WHERE `entry`=21212;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_enchanted_elemental' WHERE `entry`=21958;
|
||||
@@ -328,7 +359,11 @@ UPDATE `creature_template` SET `ScriptName`='mob_shield_generator_channel' WHERE
|
||||
|
||||
|
||||
/* DEADMINES */
|
||||
|
||||
UPDATE `instance_template` SET `script`='instance_deadmines' WHERE `map`=36;
|
||||
UPDATE `item_template` SET `ScriptName`='item_defias_gunpowder' WHERE `entry`=5397;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_defias_cannon' WHERE `entry`=16398;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_door_lever_dm' WHERE `entry`=101833;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_main_chambers_access_panel' WHERE `entry` IN (184125,184126);
|
||||
|
||||
/* DEADWIND PASS */
|
||||
|
||||
@@ -368,6 +403,11 @@ UPDATE `creature_template` SET `ScriptName`='npc_henze_faulk' WHERE `entry`=6172
|
||||
/* EVERSONG WOODS */
|
||||
UPDATE `creature_template` SET `ScriptName`='mobs_mana_tapped' WHERE `entry` IN (15273,15274,15294,15298,15367);
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_prospector_anvilward' WHERE `entry`=15420;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_second_trial_paladin' WHERE `entry` IN (17809,17810,17811,17812);
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_second_trial_controller' WHERE `entry` IN (17807);
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_apprentice_mirveda' where entry=15402;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_infused_crystal' where entry=16364;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_second_trial' WHERE `entry` IN (182052);
|
||||
|
||||
/* FELWOOD */
|
||||
UPDATE `creature_template` SET `ScriptName`='npcs_riverbreeze_and_silversky' WHERE `entry` IN (9528,9529);
|
||||
@@ -380,6 +420,8 @@ UPDATE `creature_template` SET `ScriptName`='npc_screecher_spirit' WHERE `entry`
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_blood_knight_dawnstar' WHERE `entry`=17832;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_budd_nedreck' WHERE `entry`=23559;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_rathis_tomber' WHERE `entry`=16224;
|
||||
UPDATE `creature_template` SET `Scriptname`='npc_ranger_lilatha' WHERE entry=16295;
|
||||
update `gameobject_template` SET `ScriptName`='go_gilded_brazier' where entry = 181956;
|
||||
|
||||
/* GNOMEREGAN */
|
||||
|
||||
@@ -400,6 +442,7 @@ UPDATE `creature_template` SET `ScriptName`='boss_krosh_firehand' WHERE `entry`=
|
||||
|
||||
/* BLOOD FURNACE */
|
||||
/* The Maker,Broggok,Kelidan,Broggok's cloud */
|
||||
UPDATE `instance_template` SET `script` = 'instance_blood_furnace' WHERE `map` = '542';
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_the_maker' WHERE `entry`=17381;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_broggok' WHERE `entry`=17380;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_kelidan_the_breaker' WHERE `entry`=17377;
|
||||
@@ -410,10 +453,15 @@ UPDATE `creature_template` SET `ScriptName`='mob_shadowmoon_channeler' WHERE `en
|
||||
/* Vazruden,Omor the Unscarred,Watchkeeper Gargolmar */
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_omor_the_unscarred' WHERE `entry`=17308;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_watchkeeper_gargolmar' WHERE `entry`=17306;
|
||||
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_vazruden_the_herald' WHERE `entry` = '17307';
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_vazruden' WHERE `entry` = '17537';
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_nazan' WHERE `entry` = '17536';
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_hellfire_sentry' WHERE `entry` = '17517';
|
||||
|
||||
/* SHATTERED HALLS */
|
||||
/* Nethekurse and his spawned shadowfissure */
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_grand_warlock_nethekurse' WHERE `entry`=16807;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_warchief_kargath_bladefist' WHERE `entry`=16808;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_warbringer_omrogg' WHERE `entry`=16809;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_fel_orc_convert' WHERE `entry`=17083;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_lesser_shadow_fissure' WHERE `entry`=17471;
|
||||
@@ -425,12 +473,14 @@ UPDATE `instance_template` SET `script`='instance_magtheridons_lair' WHERE `map`
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_manticron_cube' WHERE `entry`=181713;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_magtheridon' WHERE `entry` =17257;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_hellfire_channeler' WHERE `entry`=17256;
|
||||
update `creature_template` SET `ScriptName`='mob_abyssal' where entry = 17454;
|
||||
|
||||
/* HELLFIRE PENINSULA */
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_doomlord_kazzak' WHERE `entry`=18728;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_wing_commander_brack' WHERE `entry`=19401;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_wing_commander_dabiree' WHERE `entry`=19409;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_gryphoneer_windbellow' WHERE `entry`=20235;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_wounded_blood_elf' WHERE `entry`=16993;
|
||||
|
||||
/* HILLSBRAD FOOTHILLS */
|
||||
|
||||
@@ -445,6 +495,8 @@ UPDATE `creature_template` SET `ScriptName`='npc_royal_historian_archesonus' WHE
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_ayren_cloudbreaker' WHERE `entry`=25059;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_converted_sentry' WHERE `entry`=24981;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_unrestrained_dragonhawk' WHERE `entry`=25236;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_greengill_slave' where entry=25084;
|
||||
UPDATE `item_template` SET `ScriptName`='item_arcane_charges' WHERE `entry`=34475;
|
||||
|
||||
/* KARAZHAN */
|
||||
UPDATE `instance_template` SET `script`='instance_karazhan' WHERE `map`=532;
|
||||
@@ -484,7 +536,7 @@ UPDATE `creature_template` SET `ScriptName`='netherspite_infernal' WHERE `entry`
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_berthold' WHERE `entry`=16153;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_barnes' WHERE `entry`=16812;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_grandmother' WHERE `entry`=17603;
|
||||
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_image_of_medivh' where entry = 17651;
|
||||
|
||||
/* LOCH MODAN */
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_mountaineer_pebblebitty' WHERE `entry`=3836;
|
||||
@@ -538,9 +590,12 @@ UPDATE `creature_template` SET `ScriptName`='mob_flamewaker_priest' WHERE `entry
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_bunthen_plainswind' WHERE `entry`=11798;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_great_bear_spirit' WHERE `entry`=11956;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_silva_filnaveth' WHERE `entry`=11800;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_clintar_dreamwalker' WHERE `entry`=22834;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_clintar_spirit' WHERE `entry` = 22916;
|
||||
|
||||
/* MULGORE */
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_skorn_whitecloud' WHERE `entry`=3052;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_kyle_frenzied' where `entry`='23616';
|
||||
|
||||
/* NAGRAND */
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_lump' WHERE `entry`=18351;
|
||||
@@ -550,6 +605,7 @@ UPDATE `creature_template` SET `ScriptName`='npc_altruis_the_sufferer' WHERE `en
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_greatmother_geyah' WHERE `entry`=18141;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_lantresor_of_the_blade' WHERE `entry`=18261;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_creditmarker_visit_with_ancestors' WHERE `entry` IN (18840,18841,18842,18843);
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_sparrowhawk' WHERE `entry`=22979;
|
||||
|
||||
/* NAXXRAMAS */
|
||||
UPDATE `instance_template` SET `script`='instance_naxxramas' WHERE `map`=533;
|
||||
@@ -579,6 +635,9 @@ UPDATE `gameobject_template` SET `ScriptName`='go_manaforge_control_console' WHE
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_manaforge_control_console' WHERE `entry` IN (20209,20417,20418,20440);
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_protectorate_nether_drake' WHERE `entry`=20903;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_veronia' WHERE `entry`=20162;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_phase_hunter' WHERE `entry` =18879;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_professor_dabiri' where entry=20907;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_bessy' WHERE entry = 20415;
|
||||
|
||||
/* ONYXIA'S LAIR */
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_onyxia' WHERE `entry`=10184;
|
||||
@@ -594,6 +653,8 @@ UPDATE `creature_template` SET `ScriptName`='npc_thrall_warchief' WHERE `entry`=
|
||||
/* RAZORFEN DOWNS */
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_amnennar_the_coldbringer' WHERE `entry`=7358;
|
||||
|
||||
/* RAZORFEN KRAUL */
|
||||
UPDATE `creature_template` SET `Scriptname`='npc_willix' WHERE entry=4508;
|
||||
/* REDRIDGE MOUNTAINS */
|
||||
|
||||
|
||||
@@ -601,6 +662,7 @@ UPDATE `creature_template` SET `ScriptName`='boss_amnennar_the_coldbringer' WHER
|
||||
UPDATE `instance_template` SET `script`='instance_ruins_of_ahnqiraj' WHERE `map`=509;
|
||||
|
||||
/* SCARLET MONASTERY */
|
||||
UPDATE `instance_template` SET `script`='instance_scarlet_monastery' WHERE `map`=189;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_arcanist_doan' WHERE `entry`=6487;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_azshir_the_sleepless' WHERE `entry`=6490;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_bloodmage_thalnos' WHERE `entry`=4543;
|
||||
@@ -611,6 +673,13 @@ UPDATE `creature_template` SET `ScriptName`='boss_houndmaster_loksey' WHERE `ent
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_interrogator_vishas' WHERE `entry`=3983;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_scarlet_commander_mograine' WHERE `entry`=3976;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_scorn' WHERE `entry`=14693;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_headless_horseman' WHERE `entry` = 23682;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_head' WHERE `entry` = 23775;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_pulsing_pumpkin' WHERE `entry` = 23694;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_wisp_invis' WHERE `entry`=23686;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_wisp_invis' WHERE `entry`=24034;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_scarlet_trainee' WHERE `entry`=6575;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_loosely_turned_soil' WHERE `entry`=186314;
|
||||
|
||||
/* SCHOLOMANCE */
|
||||
UPDATE `instance_template` SET `script`='instance_scholomance' WHERE `map`=289;
|
||||
@@ -647,26 +716,40 @@ UPDATE `creature_template` SET `ScriptName`='npc_neltharaku' WHERE `entry`=21657
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_oronok_tornheart' WHERE `entry`=21183;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_mature_netherwing_drake' WHERE `entry`=21648;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_enslaved_netherwing_drake' WHERE `entry`=21722;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_overlord_morghor' WHERE entry= 23139;
|
||||
UPDATE `creature_template` SET `ScriptName`='' WHERE entry=23141;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_illidari_spawn' WHERE `entry` IN (22075, 22074, 19797);
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_torloth_the_magnificent' WHERE `entry`='22076';
|
||||
UPDATE `creature_template SET `ScriptName`='npc_lord_illidan_stormrage' WHERE `entry`=22083;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_earthmender_wilda' WHERE `entry`=21027;
|
||||
|
||||
/* SHATTRATH */
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_raliq_the_drunk' WHERE `entry`=18585;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_salsalabim' WHERE `entry`=18584;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_shattrathflaskvendors' WHERE `entry` IN (23483,23484);
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_zephyr' WHERE `entry`=25967;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_kservant' WHERE `entry` = 19685;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_dirty_larry' where entry=19720;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_ishanah' WHERE `entry`=18538;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_khadgar' where entry=18166;
|
||||
|
||||
/* SILITHUS */
|
||||
UPDATE `creature_template` SET `ScriptName`='npcs_rutgar_and_frankal' WHERE `entry` IN (15170,15171);
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_highlord_demitrian' WHERE `entry`=14347;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_gauntlet_gate' WHERE `entry`=175357;
|
||||
|
||||
/* SILVERMOON */
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_blood_knight_stillblade' WHERE `entry`=17768;
|
||||
|
||||
/* SILVERPINE FOREST */
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_astor_hadren' WHERE `entry`=6497;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_deathstalker_erland' where entry=1978;
|
||||
|
||||
/* STOCKADES */
|
||||
|
||||
/* STONETALON MOUNTAINS */
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_braug_dimspirit' WHERE `entry`=4489;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_kaya_flathoof' where entry=11856;
|
||||
|
||||
/* STORMWIND CITY */
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_archmage_malin' WHERE `entry`=2708;
|
||||
@@ -699,6 +782,15 @@ UPDATE `creature_template` SET `ScriptName`='mob_freed_soul' WHERE `entry`=11136
|
||||
|
||||
/* SUNKEN TEMPLE */
|
||||
|
||||
/* SUNWELL PLATEAU */
|
||||
update `instance_template` set `script` = 'instance_sunwell_plateau' where map = 580;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'boss_brutallus' WHERE entry = 24882;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'boss_felmyst' WHERE `entry` = 25038;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'mob_felmyst_vapor' WHERE `entry` = 25265;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'mob_felmyst_trail' WHERE `entry` = 25267;
|
||||
update `creature_template` set `ScriptName` = 'boss_sacrolash' where entry = 25165;
|
||||
update `creature_template` set `ScriptName` = 'boss_alythess' where entry = 25166;
|
||||
update `creature_template` set `ScriptName` = 'mob_shadow_image' where entry = 25214;
|
||||
|
||||
/* SWAMP OF SORROWS */
|
||||
|
||||
@@ -709,6 +801,7 @@ UPDATE `creature_template` SET `ScriptName`='npc_custodian_of_time' WHERE `entry
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_marin_noggenfogger' WHERE `entry`=7564;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_steward_of_time' WHERE `entry`=20142;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_stone_watcher_of_norgannon' WHERE `entry`=7918;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_OOX17' WHERE `entry` = 7784;
|
||||
|
||||
/* TELDRASSIL */
|
||||
|
||||
@@ -741,6 +834,8 @@ UPDATE `creature_template` SET `ScriptName`='npc_millhouse_manastorm' WHERE `ent
|
||||
|
||||
/* THE EYE */
|
||||
UPDATE `instance_template` SET `script`='instance_the_eye' WHERE `map`=550;
|
||||
UPDATE `gameobject_template` SET `ScriptName` = 'go_kael_orb' WHERE `entry` = 188173;
|
||||
UPDATE `gameobject_template` SET `ScriptName` = 'go_movie_orb' WHERE `entry` = 187578;
|
||||
/* The Eye Trash Mobs */
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_crystalcore_devastator' WHERE `entry`=20040;
|
||||
/* Void Reaver event */
|
||||
@@ -754,9 +849,13 @@ UPDATE `creature_template` SET `ScriptName`='boss_thaladred_the_darkener' WHERE
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_lord_sanguinar' WHERE `entry`=20060;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_grand_astromancer_capernian' WHERE `entry`=20062;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_master_engineer_telonicus' WHERE `entry`=20063;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_phoenix' WHERE `entry`=21362;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_phoenix_tk' WHERE `entry`=21362;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_phoenix_egg_tk' WHERE `entry`=21364;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_nether_vapor' WHERE `entry`=21002;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_kael_flamestrike' WHERE `entry`=21369;
|
||||
update `creature_template` set `ScriptName`='boss_alar' where `entry`=19514;
|
||||
update `creature_template` set `ScriptName`='mob_ember_of_alar' where `entry`=19551;
|
||||
update `creature_template` set `ScriptName`='mob_flame_patch_alar' where `entry`=20602;
|
||||
|
||||
/* TEMPLE OF AHN'QIRAJ */
|
||||
UPDATE `instance_template` SET `script`='instance_temple_of_ahnqiraj' WHERE `map`=531;
|
||||
@@ -789,9 +888,10 @@ UPDATE `creature_template` SET `ScriptName`='mob_netherweb_victim' WHERE `entry`
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_rotting_forest_rager' WHERE `entry`=22307;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_floon' WHERE `entry`=18588;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_skyguard_handler_irena' WHERE `entry`=23413;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_isla_starmane' where entry=18760;
|
||||
|
||||
/* THOUSAND NEEDLES */
|
||||
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_swiftmountain' WHERE `entry` = 10427;
|
||||
|
||||
/* THUNDER BLUFF */
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_cairne_bloodhoof' WHERE `entry`=3057;
|
||||
@@ -800,12 +900,18 @@ UPDATE `creature_template` SET `ScriptName`='npc_cairne_bloodhoof' WHERE `entry`
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_calvin_montague' WHERE `entry`=6784;
|
||||
|
||||
/* ULDAMAN */
|
||||
UPDATE `instance_template` SET `script`='instance_uldaman' WHERE `map`=70;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_ironaya' WHERE `entry`=7228;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_jadespine_basilisk' WHERE `entry`=4863;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_lore_keeper_of_norgannon' WHERE `entry`=7172;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_archaedas' WHERE `entry`=2748;
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_archaedas_minions' WHERE `entry` IN ('7309', '7077', '7076', '10120');
|
||||
UPDATE `creature_template` SET `ScriptName`='mob_stonekeepers' WHERE `entry`=4857;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_altar_of_the_keepers' WHERE `entry`=130511;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_altar_of_archaedas' WHERE `entry`=133234;
|
||||
|
||||
/* UN'GORO CRATER */
|
||||
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_ame' WHERE `entry` = 9623;
|
||||
|
||||
/* UNDERCITY */
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_lady_sylvanas_windrunner' WHERE `entry`=10181;
|
||||
@@ -835,6 +941,7 @@ UPDATE `creature_template` SET `ScriptName`='npcs_ashyen_and_keleth' WHERE `entr
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_cooshcoosh' WHERE `entry`=18586;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_elder_kuruti' WHERE `entry`=18197;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_mortog_steamhead' WHERE `entry`=23373;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_kayra_longmane' where entry=17969;
|
||||
|
||||
/* ZUL'AMAN */
|
||||
UPDATE `instance_template` SET `script`='instance_zulaman' WHERE `map`=568;
|
||||
|
||||
@@ -195,6 +195,7 @@ scripts/zone/hellfire_citadel/blood_furnace/instance_blood_furnace.cpp \
|
||||
scripts/zone/hellfire_citadel/blood_furnace/def_blood_furnace.h \
|
||||
scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp \
|
||||
scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp \
|
||||
scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp \
|
||||
scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp \
|
||||
scripts/zone/hellfire_citadel/magtheridons_lair/def_magtheridons_lair.h \
|
||||
scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp \
|
||||
|
||||
+5
-7
@@ -189,19 +189,17 @@ struct TRINITY_DLL_DECL instance_shadow_labyrinth : public ScriptedInstance
|
||||
{
|
||||
switch( type )
|
||||
{
|
||||
case TYPE_HELLMAW:
|
||||
return Encounter[0];
|
||||
case TYPE_OVERSEER:
|
||||
return Encounter[1];
|
||||
case DATA_GRANDMASTERVORPILEVENT:
|
||||
return Encounter[3];
|
||||
case TYPE_HELLMAW: return Encounter[0];
|
||||
case TYPE_OVERSEER: return Encounter[1];
|
||||
case DATA_GRANDMASTERVORPILEVENT: return Encounter[3];
|
||||
case DATA_MURMUREVENT: return Encounter[4];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 identifier)
|
||||
{
|
||||
if(identifier == DATA_GRANDMASTERVORPIL)
|
||||
if(identifier == DATA_GRANDMASTERVORPIL)
|
||||
return GrandmasterVorpil;
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -77,9 +77,9 @@ struct TRINITY_DLL_DECL boss_supremusAI : public ScriptedAI
|
||||
if(m_creature->isAlive())
|
||||
{
|
||||
pInstance->SetData(DATA_SUPREMUSEVENT, NOT_STARTED);
|
||||
ToggleDoors(true);
|
||||
//ToggleDoors(true);
|
||||
}
|
||||
else ToggleDoors(false);
|
||||
//else ToggleDoors(false);
|
||||
}
|
||||
|
||||
HatefulStrikeTimer = 5000;
|
||||
|
||||
@@ -55,8 +55,6 @@ struct TRINITY_DLL_DECL instance_black_temple : public ScriptedInstance
|
||||
uint64 BloodElfCouncilVoice;
|
||||
uint64 IllidanStormrage;
|
||||
|
||||
uint16 BossKilled;
|
||||
|
||||
uint64 NajentusGate;
|
||||
uint64 MainTempleDoors;
|
||||
uint64 ShadeOfAkamaDoor;
|
||||
@@ -71,6 +69,7 @@ struct TRINITY_DLL_DECL instance_black_temple : public ScriptedInstance
|
||||
uint64 IllidanDoor[2];
|
||||
|
||||
uint32 Encounters[ENCOUNTERS];
|
||||
std::string str_data;
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
@@ -87,8 +86,6 @@ struct TRINITY_DLL_DECL instance_black_temple : public ScriptedInstance
|
||||
BloodElfCouncilVoice = 0;
|
||||
IllidanStormrage = 0;
|
||||
|
||||
BossKilled = 0;
|
||||
|
||||
NajentusGate = 0;
|
||||
MainTempleDoors = 0;
|
||||
ShadeOfAkamaDoor= 0;
|
||||
@@ -103,29 +100,48 @@ struct TRINITY_DLL_DECL instance_black_temple : public ScriptedInstance
|
||||
IllidanDoor[0] = 0;
|
||||
IllidanDoor[1] = 0;
|
||||
|
||||
for(uint8 i = 0; i < ENCOUNTERS; i++)
|
||||
for(uint8 i = 0; i < ENCOUNTERS; ++i)
|
||||
Encounters[i] = NOT_STARTED;
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const
|
||||
{
|
||||
for(uint8 i = 0; i < ENCOUNTERS; i++)
|
||||
for(uint8 i = 0; i < ENCOUNTERS; ++i)
|
||||
if(Encounters[i] == IN_PROGRESS) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void OpenDoor(uint64 DoorGUID, bool open)
|
||||
{
|
||||
if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID))
|
||||
Door->SetGoState(open ? 0 : 1);
|
||||
}
|
||||
Player* GetPlayerInMap()
|
||||
{
|
||||
Map::PlayerList const& players = instance->GetPlayers();
|
||||
|
||||
void CloseDoor(uint64 DoorGUID, bool close)
|
||||
{
|
||||
if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID))
|
||||
Door->SetGoState(close ? 1 : 0);
|
||||
}
|
||||
if (!players.isEmpty())
|
||||
{
|
||||
for(Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
{
|
||||
if (Player* plr = itr->getSource())
|
||||
return plr;
|
||||
}
|
||||
}
|
||||
|
||||
debug_log("TSCR: Instance Black Temple: GetPlayerInMap, but PlayerList is empty!");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void HandleGameObject(uint64 guid, uint32 state)
|
||||
{
|
||||
Player *player = GetPlayerInMap();
|
||||
|
||||
if (!player || !guid)
|
||||
{
|
||||
debug_log("TSCR: Black Temple: HandleGameObject fail");
|
||||
return;
|
||||
}
|
||||
|
||||
if (GameObject *go = GameObject::GetGameObject(*player,guid))
|
||||
go->SetGoState(state);
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature *creature, uint32 creature_entry)
|
||||
{
|
||||
@@ -150,38 +166,19 @@ struct TRINITY_DLL_DECL instance_black_temple : public ScriptedInstance
|
||||
{
|
||||
switch(go->GetEntry())
|
||||
{
|
||||
case 185483: // Gate past Naj'entus (at the entrance to Supermoose's courtyards)
|
||||
NajentusGate = go->GetGUID();break;
|
||||
case 185882: // Main Temple Doors - right past Supermoose (Supremus)
|
||||
MainTempleDoors = go->GetGUID();break;
|
||||
case 185478:
|
||||
ShadeOfAkamaDoor = go->GetGUID();break;
|
||||
case 185480:
|
||||
CommonDoor = go->GetGUID();break;
|
||||
case 186153:
|
||||
TeronDoor = go->GetGUID();break;
|
||||
case 185892:
|
||||
GuurtogDoor = go->GetGUID();break;
|
||||
case 185479:
|
||||
TempleDoor = go->GetGUID();break;
|
||||
case 185482:
|
||||
MotherDoor = go->GetGUID();break;
|
||||
case 185481:
|
||||
CouncilDoor = go->GetGUID();break;
|
||||
case 186152://used by council
|
||||
SimpleDoor = go->GetGUID();break;
|
||||
case 185905: // Gate leading to Temple Summit
|
||||
IllidanGate = go->GetGUID();
|
||||
go->SetUInt32Value(GAMEOBJECT_FLAGS,GO_FLAG_NODESPAWN+GO_FLAG_INTERACT_COND);
|
||||
break;
|
||||
case 186261: // Right door at Temple Summit
|
||||
IllidanDoor[0] = go->GetGUID();
|
||||
go->SetUInt32Value(GAMEOBJECT_FLAGS,GO_FLAG_NODESPAWN+GO_FLAG_INTERACT_COND);
|
||||
break;
|
||||
case 186262: // Left door at Temple Summit
|
||||
IllidanDoor[1] = go->GetGUID();
|
||||
go->SetUInt32Value(GAMEOBJECT_FLAGS,GO_FLAG_NODESPAWN+GO_FLAG_INTERACT_COND);
|
||||
break;
|
||||
case 185483: NajentusGate = go->GetGUID();break; // Gate past Naj'entus (at the entrance to Supermoose's courtyards)
|
||||
case 185882: MainTempleDoors = go->GetGUID();break; // Main Temple Doors - right past Supermoose (Supremus)
|
||||
case 185478: ShadeOfAkamaDoor = go->GetGUID();break;
|
||||
case 185480: CommonDoor = go->GetGUID();break;
|
||||
case 186153: TeronDoor = go->GetGUID();break;
|
||||
case 185892: GuurtogDoor = go->GetGUID();break;
|
||||
case 185479: TempleDoor = go->GetGUID();break;
|
||||
case 185482: MotherDoor = go->GetGUID();break;
|
||||
case 185481: CouncilDoor = go->GetGUID();break;
|
||||
case 186152: SimpleDoor = go->GetGUID();break;
|
||||
case 185905: IllidanGate = go->GetGUID(); break; // Gate leading to Temple Summit
|
||||
case 186261: IllidanDoor[0] = go->GetGUID(); break; // Right door at Temple Summit
|
||||
case 186262: IllidanDoor[1] = go->GetGUID(); break; // Left door at Temple Summit
|
||||
}
|
||||
}
|
||||
|
||||
@@ -215,54 +212,82 @@ struct TRINITY_DLL_DECL instance_black_temple : public ScriptedInstance
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case DATA_HIGHWARLORDNAJENTUSEVENT: Encounters[0] = data; break;
|
||||
case DATA_SUPREMUSEVENT: Encounters[1] = data; break;
|
||||
case DATA_SHADEOFAKAMAEVENT: Encounters[2] = data; break;
|
||||
case DATA_TERONGOREFIENDEVENT: Encounters[3] = data; break;
|
||||
case DATA_GURTOGGBLOODBOILEVENT: Encounters[4] = data; break;
|
||||
case DATA_RELIQUARYOFSOULSEVENT: Encounters[5] = data; break;
|
||||
case DATA_MOTHERSHAHRAZEVENT: Encounters[6] = data; break;
|
||||
case DATA_ILLIDARICOUNCILEVENT: Encounters[7] = data; break;
|
||||
case DATA_HIGHWARLORDNAJENTUSEVENT:
|
||||
if(data == DONE)
|
||||
{
|
||||
HandleGameObject(NajentusGate, 0);
|
||||
}
|
||||
Encounters[0] = data;break;
|
||||
case DATA_SUPREMUSEVENT:
|
||||
if(data == DONE)
|
||||
{
|
||||
HandleGameObject(NajentusGate, 0);
|
||||
}
|
||||
Encounters[1] = data; break;
|
||||
case DATA_SHADEOFAKAMAEVENT:
|
||||
if(data == IN_PROGRESS)
|
||||
{
|
||||
HandleGameObject(ShadeOfAkamaDoor, 1);
|
||||
}else HandleGameObject(ShadeOfAkamaDoor, 0);
|
||||
Encounters[2] = data; break;
|
||||
case DATA_TERONGOREFIENDEVENT:
|
||||
if(data == IN_PROGRESS)
|
||||
{
|
||||
HandleGameObject(TeronDoor, 1);
|
||||
HandleGameObject(CommonDoor, 1);
|
||||
}else
|
||||
{
|
||||
HandleGameObject(TeronDoor, 0);
|
||||
HandleGameObject(CommonDoor, 0);
|
||||
}
|
||||
Encounters[3] = data; break;
|
||||
case DATA_GURTOGGBLOODBOILEVENT:
|
||||
if(data == DONE)
|
||||
{
|
||||
HandleGameObject(GuurtogDoor, 0);
|
||||
}
|
||||
Encounters[4] = data; break;
|
||||
case DATA_RELIQUARYOFSOULSEVENT:
|
||||
if(data == DONE)
|
||||
{
|
||||
HandleGameObject(TempleDoor, 0);
|
||||
}
|
||||
Encounters[5] = data; break;
|
||||
case DATA_MOTHERSHAHRAZEVENT:
|
||||
if(data == DONE)
|
||||
{
|
||||
HandleGameObject(MotherDoor, 0);
|
||||
}
|
||||
Encounters[6] = data; break;
|
||||
case DATA_ILLIDARICOUNCILEVENT:
|
||||
if(data == IN_PROGRESS)
|
||||
{
|
||||
HandleGameObject(CouncilDoor, 1);
|
||||
HandleGameObject(SimpleDoor, 1);
|
||||
}else
|
||||
{
|
||||
HandleGameObject(CouncilDoor, 0);
|
||||
HandleGameObject(SimpleDoor, 0);
|
||||
}
|
||||
Encounters[7] = data; break;
|
||||
case DATA_ILLIDANSTORMRAGEEVENT: Encounters[8] = data; break;
|
||||
}
|
||||
|
||||
if(data == DONE)
|
||||
{
|
||||
SaveToDB();
|
||||
BossKilled++;
|
||||
}
|
||||
CheckInstanceStatus();
|
||||
}
|
||||
if (data == DONE)
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
void CheckInstanceStatus()
|
||||
{
|
||||
if(BossKilled >= 6)
|
||||
OpenDoor(TempleDoor, true);
|
||||
if(Encounters[0] == DONE)
|
||||
OpenDoor(NajentusGate, true);
|
||||
if(Encounters[2] == IN_PROGRESS)
|
||||
CloseDoor(ShadeOfAkamaDoor, true);
|
||||
else OpenDoor(ShadeOfAkamaDoor, true);
|
||||
if(Encounters[3] == IN_PROGRESS)
|
||||
{
|
||||
CloseDoor(TeronDoor, true);
|
||||
CloseDoor(CommonDoor, true);
|
||||
}else{
|
||||
OpenDoor(TeronDoor, true);
|
||||
OpenDoor(CommonDoor, true);
|
||||
}
|
||||
if(Encounters[4] == DONE)
|
||||
OpenDoor(GuurtogDoor, true);
|
||||
if(Encounters[6] == DONE)
|
||||
OpenDoor(MotherDoor, true);
|
||||
if(Encounters[7] == IN_PROGRESS)
|
||||
{
|
||||
CloseDoor(CouncilDoor, true);
|
||||
CloseDoor(SimpleDoor, true);
|
||||
}else{
|
||||
OpenDoor(CouncilDoor, true);
|
||||
OpenDoor(SimpleDoor, true);
|
||||
}
|
||||
std::ostringstream saveStream;
|
||||
saveStream << Encounters[0] << " " << Encounters[1] << " "
|
||||
<< Encounters[2] << " " << Encounters[3] << " " << Encounters[4]
|
||||
<< " " << Encounters[5] << " " << Encounters[6] << " " << Encounters[7]
|
||||
<< " " << Encounters[8];
|
||||
|
||||
str_data = saveStream.str();
|
||||
|
||||
SaveToDB();
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
}
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
@@ -283,42 +308,32 @@ struct TRINITY_DLL_DECL instance_black_temple : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
std::ostringstream stream;
|
||||
stream << Encounters[0] << " " << Encounters[1] << " " << Encounters[2] << " "
|
||||
<< Encounters[3] << " " << Encounters[4] << " " << Encounters[5] << " "
|
||||
<< Encounters[6] << " " << Encounters[7] << " " << Encounters[8];
|
||||
char* out = new char[stream.str().length() + 1];
|
||||
strcpy(out, stream.str().c_str());
|
||||
if(out)
|
||||
{
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return out;
|
||||
}
|
||||
const char* Save()
|
||||
{
|
||||
return str_data.c_str();
|
||||
}
|
||||
|
||||
void Load(const char* in)
|
||||
{
|
||||
if (!in)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(in);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void Load(const char* in)
|
||||
{
|
||||
if(!in)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(in);
|
||||
std::istringstream stream(in);
|
||||
stream >> Encounters[0] >> Encounters[1] >> Encounters[2] >> Encounters[3]
|
||||
>> Encounters[4] >> Encounters[5] >> Encounters[6] >> Encounters[7]
|
||||
>> Encounters[8];
|
||||
for(uint8 i = 0; i < ENCOUNTERS; ++i)
|
||||
if(Encounters[i] == IN_PROGRESS) // Do not load an encounter as "In Progress" - reset it instead.
|
||||
Encounters[i] = NOT_STARTED;
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
std::istringstream loadStream(in);
|
||||
loadStream >> Encounters[0] >> Encounters[1] >> Encounters[2]
|
||||
>> Encounters[3] >> Encounters[4] >> Encounters[5] >> Encounters[6]
|
||||
>> Encounters[7] >> Encounters[8];
|
||||
|
||||
for(uint8 i = 0; i < ENCOUNTERS; ++i)
|
||||
if (Encounters[i] == IN_PROGRESS)
|
||||
Encounters[i] = NOT_STARTED;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
};
|
||||
|
||||
InstanceData* GetInstanceData_instance_black_temple(Map* map)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/* ScriptData
|
||||
SDName: Shadowmoon_Valley
|
||||
SD%Complete: 100
|
||||
SDComment: Quest support: 10519, 10583, 10601, 10814, 10804, 10854, 11082, 10451. Vendor Drake Dealer Hurlunk.
|
||||
SDComment: Quest support: 10519, 10583, 10601, 10814, 10804, 10854, 11082, 10781, 10451. Vendor Drake Dealer Hurlunk.
|
||||
SDCategory: Shadowmoon Valley
|
||||
EndScriptData */
|
||||
|
||||
@@ -32,6 +32,10 @@ npc_karynaku
|
||||
npc_oronok_tornheart
|
||||
npc_overlord_morghor
|
||||
npc_earthmender_wilda
|
||||
mob_torloth_the_magnificent
|
||||
mob_illidari_spawn
|
||||
npc_lord_illidan_stormrage
|
||||
go_crystal_prison
|
||||
EndContentData */
|
||||
|
||||
#include "precompiled.h"
|
||||
@@ -161,6 +165,15 @@ CreatureAI* GetAI_mob_mature_netherwing_drake(Creature *_creature)
|
||||
# mob_enslaved_netherwing_drake
|
||||
####*/
|
||||
|
||||
Creature* SelectCreatureInGrid(Unit* pUnit, uint32 entry, float range)
|
||||
{
|
||||
Creature* target = NULL;
|
||||
Trinity::AllCreaturesOfEntryInRange check(pUnit, entry, range);
|
||||
Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(target, check);
|
||||
pUnit->VisitNearbyObject(range, searcher);
|
||||
return target;
|
||||
}
|
||||
|
||||
#define FACTION_DEFAULT 62
|
||||
#define FACTION_FRIENDLY 1840 // Not sure if this is correct, it was taken off of Mordenai.
|
||||
|
||||
@@ -195,27 +208,6 @@ struct TRINITY_DLL_DECL mob_enslaved_netherwing_drakeAI : public ScriptedAI
|
||||
|
||||
void Aggro(Unit* who) { }
|
||||
|
||||
Creature* SelectCreatureInGrid(uint32 entry, float range)
|
||||
{
|
||||
Creature* pCreature = NULL;
|
||||
|
||||
// Time for some omg mind blowing code to search for creature
|
||||
CellPair pair(Trinity::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
|
||||
Cell cell(pair);
|
||||
cell.data.Part.reserved = ALL_DISTRICT;
|
||||
cell.SetNoCreate();
|
||||
|
||||
Trinity::NearestCreatureEntryWithLiveStateInObjectRangeCheck creature_check(*m_creature, entry, true, range);
|
||||
Trinity::CreatureLastSearcher<Trinity::NearestCreatureEntryWithLiveStateInObjectRangeCheck> searcher(pCreature, creature_check);
|
||||
|
||||
TypeContainerVisitor<Trinity::CreatureLastSearcher<Trinity::NearestCreatureEntryWithLiveStateInObjectRangeCheck>, GridTypeMapContainer> creature_searcher(searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, pair);
|
||||
cell_lock->Visit(cell_lock, creature_searcher,*(m_creature->GetMap()));
|
||||
|
||||
return pCreature;
|
||||
}
|
||||
|
||||
void SpellHit(Unit* caster, const SpellEntry* spell)
|
||||
{
|
||||
if(!caster)
|
||||
@@ -229,7 +221,7 @@ struct TRINITY_DLL_DECL mob_enslaved_netherwing_drakeAI : public ScriptedAI
|
||||
m_creature->setFaction(FACTION_FRIENDLY);
|
||||
DoCast(caster, SPELL_FORCE_OF_NELTHARAKU, true);
|
||||
|
||||
Creature* Dragonmaw = SelectCreatureInGrid(CREATURE_DRAGONMAW_SUBJUGATOR, 50);
|
||||
Creature* Dragonmaw = SelectCreatureInGrid(m_creature, CREATURE_DRAGONMAW_SUBJUGATOR, 50);
|
||||
|
||||
if(Dragonmaw)
|
||||
{
|
||||
@@ -289,7 +281,7 @@ struct TRINITY_DLL_DECL mob_enslaved_netherwing_drakeAI : public ScriptedAI
|
||||
|
||||
float dx, dy, dz;
|
||||
|
||||
Creature* EscapeDummy = SelectCreatureInGrid(CREATURE_ESCAPE_DUMMY, 30);
|
||||
Creature* EscapeDummy = SelectCreatureInGrid(m_creature, CREATURE_ESCAPE_DUMMY, 30);
|
||||
if(EscapeDummy)
|
||||
EscapeDummy->GetPosition(dx, dy, dz);
|
||||
else
|
||||
@@ -714,7 +706,7 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI
|
||||
void StartEvent()
|
||||
{
|
||||
m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
|
||||
m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
|
||||
Unit* Illidan = m_creature->SummonCreature(C_ILLIDAN, -5107.83, 602.584, 85.2393, 4.92598, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
||||
IllidanGUID = Illidan->GetGUID();
|
||||
Illidan->SetVisibility(VISIBILITY_OFF);
|
||||
@@ -741,7 +733,8 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI
|
||||
case 2: DoScriptText(OVERLORD_YELL_1, m_creature, plr); return 4500; break;
|
||||
case 3: m_creature->SetInFront(plr); return 3200; break;
|
||||
case 4: DoScriptText(OVERLORD_SAY_2, m_creature, plr); return 2000; break;
|
||||
case 5: Illi->SetVisibility(VISIBILITY_ON); return 350; break;
|
||||
case 5: Illi->SetVisibility(VISIBILITY_ON);
|
||||
Illi->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); return 350; break;
|
||||
case 6:
|
||||
Illi->CastSpell(Illi, SPELL_ONE, true);
|
||||
Illi->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID());
|
||||
@@ -781,7 +774,10 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI
|
||||
case 23: m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); return 2000; break;
|
||||
case 24: m_creature->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); return 5000; break;
|
||||
case 25: DoScriptText(OVERLORD_SAY_6, m_creature); return 2000; break;
|
||||
case 26: ((Player*)plr)->CompleteQuest(QUEST_LORD_ILLIDAN_STORMRAGE); return 6000; break;
|
||||
case 26:
|
||||
if(plr)
|
||||
((Player*)plr)->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, m_creature);
|
||||
return 6000; break;
|
||||
case 27:
|
||||
{
|
||||
Unit* Yarzill = FindCreature(C_YARZILL, 50);
|
||||
@@ -1060,6 +1056,599 @@ bool QuestAccept_npc_earthmender_wilda(Player* player, Creature* creature, Quest
|
||||
return true;
|
||||
}
|
||||
|
||||
/*#####
|
||||
# Quest: Battle of the crimson watch
|
||||
#####*/
|
||||
|
||||
/* ContentData
|
||||
Battle of the crimson watch - creatures, gameobjects and defines
|
||||
mob_illidari_spawn : Adds that are summoned in the Crimson Watch battle.
|
||||
mob_torloth_the_magnificent : Final creature that players have to face before quest is completed
|
||||
npc_lord_illidan_stormrage : Creature that controls the event.
|
||||
go_crystal_prison : GameObject that begins the event and hands out quest
|
||||
EndContentData */
|
||||
|
||||
#define END_TEXT -1000366
|
||||
|
||||
#define QUEST_BATTLE_OF_THE_CRIMSON_WATCH 10781
|
||||
#define EVENT_AREA_RADIUS 65 //65yds
|
||||
#define EVENT_COOLDOWN 30000 //in ms. appear after event completed or failed (should be = Adds despawn time)
|
||||
|
||||
struct TorlothCinematic
|
||||
{
|
||||
int32 TextId;
|
||||
uint32 Creature, Timer;
|
||||
};
|
||||
|
||||
// Creature 0 - Torloth, 1 - Illidan
|
||||
static TorlothCinematic TorlothAnim[]=
|
||||
{
|
||||
{-1000367, 0, 2000},
|
||||
{-1000368, 1, 7000},
|
||||
{-1000369, 0, 3000},
|
||||
{NULL, 0, 2000}, // Torloth stand
|
||||
{-1000370, 0, 1000},
|
||||
{NULL, 0, 3000},
|
||||
{NULL, 0, NULL}
|
||||
};
|
||||
|
||||
struct Location
|
||||
{
|
||||
float x, y, z, o;
|
||||
};
|
||||
|
||||
//Cordinates for Spawns
|
||||
static Location SpawnLocation[]=
|
||||
{
|
||||
//Cords used for:
|
||||
{-4615.8556, 1342.2532, 139.9, 1.612},//Illidari Soldier
|
||||
{-4598.9365, 1377.3182, 139.9, 3.917},//Illidari Soldier
|
||||
{-4598.4697, 1360.8999, 139.9, 2.427},//Illidari Soldier
|
||||
{-4589.3599, 1369.1061, 139.9, 3.165},//Illidari Soldier
|
||||
{-4608.3477, 1386.0076, 139.9, 4.108},//Illidari Soldier
|
||||
{-4633.1889, 1359.8033, 139.9, 0.949},//Illidari Soldier
|
||||
{-4623.5791, 1351.4574, 139.9, 0.971},//Illidari Soldier
|
||||
{-4607.2988, 1351.6099, 139.9, 2.416},//Illidari Soldier
|
||||
{-4633.7764, 1376.0417, 139.9, 5.608},//Illidari Soldier
|
||||
{-4600.2461, 1369.1240, 139.9, 3.056},//Illidari Mind Breaker
|
||||
{-4631.7808, 1367.9459, 139.9, 0.020},//Illidari Mind Breaker
|
||||
{-4600.2461, 1369.1240, 139.9, 3.056},//Illidari Highlord
|
||||
{-4631.7808, 1367.9459, 139.9, 0.020},//Illidari Highlord
|
||||
{-4615.5586, 1353.0031, 139.9, 1.540},//Illidari Highlord
|
||||
{-4616.4736, 1384.2170, 139.9, 4.971},//Illidari Highlord
|
||||
{-4627.1240, 1378.8752, 139.9, 2.544} //Torloth The Magnificent
|
||||
};
|
||||
|
||||
struct WaveData
|
||||
{
|
||||
uint8 SpawnCount, UsedSpawnPoint;
|
||||
uint32 CreatureId, SpawnTimer,YellTimer;
|
||||
int32 WaveTextId;
|
||||
};
|
||||
|
||||
static WaveData WavesInfo[]=
|
||||
{
|
||||
{9, 0, 22075, 10000, 7000, -1000371},//Illidari Soldier
|
||||
{2, 9, 22074, 10000, 7000, -1000372},//Illidari Mind Breaker
|
||||
{4, 11, 19797, 10000, 7000, -1000373},//Illidari Highlord
|
||||
{1, 15, 22076, 10000, 7000, -1000374} //Torloth The Magnificent
|
||||
};
|
||||
|
||||
struct SpawnSpells
|
||||
{
|
||||
uint32 Timer1, Timer2, SpellId;
|
||||
};
|
||||
|
||||
static SpawnSpells SpawnCast[]=
|
||||
{
|
||||
{10000, 15000, 35871},// Illidari Soldier Cast - Spellbreaker
|
||||
{10000, 10000, 38985},// Illidari Mind Breake Cast - Focused Bursts
|
||||
{35000, 35000, 22884},// Illidari Mind Breake Cast - Psychic Scream
|
||||
{20000, 20000, 17194},// Illidari Mind Breake Cast - Mind Blast
|
||||
{8000, 15000, 38010},// Illidari Highlord Cast - Curse of Flames
|
||||
{12000, 20000, 16102},// Illidari Highlord Cast - Flamestrike
|
||||
{10000, 15000, 15284},// Torloth the Magnificent Cast - Cleave
|
||||
{18000, 20000, 39082},// Torloth the Magnificent Cast - Shadowfury
|
||||
{25000, 28000, 33961}// Torloth the Magnificent Cast - Spell Reflection
|
||||
};
|
||||
|
||||
/*######
|
||||
# mob_illidari_spawn
|
||||
######*/
|
||||
|
||||
struct TRINITY_DLL_DECL mob_illidari_spawnAI : public ScriptedAI
|
||||
{
|
||||
mob_illidari_spawnAI(Creature* c) : ScriptedAI(c) {Reset();}
|
||||
|
||||
uint64 LordIllidanGUID;
|
||||
uint32 SpellTimer1, SpellTimer2, SpellTimer3;
|
||||
bool Timers;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
LordIllidanGUID = 0;
|
||||
Timers = false;
|
||||
}
|
||||
|
||||
void Aggro(Unit* who) {}
|
||||
void JustDied(Unit* slayer);
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if(!m_creature->getVictim() || !m_creature->SelectHostilTarget())
|
||||
return;
|
||||
|
||||
if(!Timers)
|
||||
{
|
||||
if(m_creature->GetEntry() == 22075)//Illidari Soldier
|
||||
{
|
||||
SpellTimer1 = SpawnCast[0].Timer1 + (rand()%4 * 1000);
|
||||
}
|
||||
if(m_creature->GetEntry() == 22074)//Illidari Mind Breaker
|
||||
{
|
||||
SpellTimer1 = SpawnCast[1].Timer1 + (rand()%10 * 1000);
|
||||
SpellTimer2 = SpawnCast[2].Timer1 + (rand()%4 * 1000);
|
||||
SpellTimer3 = SpawnCast[3].Timer1 + (rand()%4 * 1000);
|
||||
}
|
||||
if(m_creature->GetEntry() == 19797)// Illidari Highlord
|
||||
{
|
||||
SpellTimer1 = SpawnCast[4].Timer1 + (rand()%4 * 1000);
|
||||
SpellTimer2 = SpawnCast[5].Timer1 + (rand()%4 * 1000);
|
||||
}
|
||||
Timers = true;
|
||||
}
|
||||
//Illidari Soldier
|
||||
if(m_creature->GetEntry() == 22075)
|
||||
{
|
||||
if(SpellTimer1 < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[0].SpellId);//Spellbreaker
|
||||
SpellTimer1 = SpawnCast[0].Timer2 + (rand()%5 * 1000);
|
||||
}else SpellTimer1 -= diff;
|
||||
}
|
||||
//Illidari Mind Breaker
|
||||
if(m_creature->GetEntry() == 22074)
|
||||
{
|
||||
if(SpellTimer1 < diff)
|
||||
{
|
||||
if(Unit *target = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||
{
|
||||
if(target->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
DoCast(target, SpawnCast[1].SpellId); //Focused Bursts
|
||||
SpellTimer1 = SpawnCast[1].Timer2 + (rand()%5 * 1000);
|
||||
}else SpellTimer1 = 2000;
|
||||
}
|
||||
}else SpellTimer1 -= diff;
|
||||
|
||||
if(SpellTimer2 < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[2].SpellId);//Psychic Scream
|
||||
SpellTimer2 = SpawnCast[2].Timer2 + (rand()%13 * 1000);
|
||||
}else SpellTimer2 -= diff;
|
||||
|
||||
if(SpellTimer3 < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[3].SpellId);//Mind Blast
|
||||
SpellTimer3 = SpawnCast[3].Timer2 + (rand()%8 * 1000);
|
||||
}else SpellTimer3 -= diff;
|
||||
}
|
||||
//Illidari Highlord
|
||||
if(m_creature->GetEntry() == 19797)
|
||||
{
|
||||
if(SpellTimer1 < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[4].SpellId);//Curse Of Flames
|
||||
SpellTimer1 = SpawnCast[4].Timer2 + (rand()%10 * 1000);
|
||||
}else SpellTimer1 -= diff;
|
||||
|
||||
if(SpellTimer2 < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[5].SpellId);//Flamestrike
|
||||
SpellTimer2 = SpawnCast[5].Timer2 + (rand()%7 * 13000);
|
||||
}else SpellTimer2 -= diff;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
/*######
|
||||
# mob_torloth_the_magnificent
|
||||
#####*/
|
||||
|
||||
struct TRINITY_DLL_DECL mob_torloth_the_magnificentAI : public ScriptedAI
|
||||
{
|
||||
mob_torloth_the_magnificentAI(Creature* c) : ScriptedAI(c) {Reset();}
|
||||
|
||||
uint32 AnimationTimer, SpellTimer1, SpellTimer2, SpellTimer3;
|
||||
|
||||
uint8 AnimationCount;
|
||||
|
||||
uint64 LordIllidanGUID;
|
||||
uint64 AggroTargetGUID;
|
||||
|
||||
bool Timers;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
AnimationTimer = 4000;
|
||||
AnimationCount = 0;
|
||||
LordIllidanGUID = 0;
|
||||
AggroTargetGUID = 0;
|
||||
Timers = false;
|
||||
|
||||
m_creature->addUnitState(UNIT_STAT_ROOT);
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->SetUInt64Value(UNIT_FIELD_TARGET, 0);
|
||||
}
|
||||
|
||||
void Aggro(Unit* who){}
|
||||
|
||||
void HandleAnimation()
|
||||
{
|
||||
Creature* pCreature = m_creature;
|
||||
|
||||
if(TorlothAnim[AnimationCount].Creature == 1)
|
||||
{
|
||||
pCreature = ((Creature*)Unit::GetUnit(*m_creature, LordIllidanGUID));
|
||||
|
||||
if(!pCreature)
|
||||
return;
|
||||
}
|
||||
|
||||
if(TorlothAnim[AnimationCount].TextId)
|
||||
DoScriptText(TorlothAnim[AnimationCount].TextId, pCreature);
|
||||
|
||||
AnimationTimer = TorlothAnim[AnimationCount].Timer;
|
||||
|
||||
switch(AnimationCount)
|
||||
{
|
||||
case 0:
|
||||
m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,8);
|
||||
break;
|
||||
case 3:
|
||||
m_creature->RemoveFlag(UNIT_FIELD_BYTES_1,8);
|
||||
break;
|
||||
case 5:
|
||||
if(Player* AggroTarget = ((Player*)Unit::GetUnit((*m_creature), AggroTargetGUID)))
|
||||
{
|
||||
m_creature->SetUInt64Value(UNIT_FIELD_TARGET, AggroTarget->GetGUID());
|
||||
m_creature->AddThreat(AggroTarget, 1);
|
||||
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if(Player* AggroTarget = ((Player*)Unit::GetUnit((*m_creature), AggroTargetGUID)))
|
||||
{
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->clearUnitState(UNIT_STAT_ROOT);
|
||||
|
||||
float x, y, z;
|
||||
AggroTarget->GetPosition(x,y,z);
|
||||
m_creature->GetMotionMaster()->MovePoint(0,x,y,z);
|
||||
}
|
||||
break;
|
||||
}
|
||||
++AnimationCount;
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if(AnimationTimer)
|
||||
{
|
||||
if(AnimationTimer <= diff)
|
||||
{
|
||||
HandleAnimation();
|
||||
}else AnimationTimer -= diff;
|
||||
}
|
||||
|
||||
if(AnimationCount < 6)
|
||||
{
|
||||
m_creature->CombatStop();
|
||||
}else if(!Timers)
|
||||
{
|
||||
|
||||
SpellTimer1 = SpawnCast[6].Timer1;
|
||||
SpellTimer2 = SpawnCast[7].Timer1;
|
||||
SpellTimer3 = SpawnCast[8].Timer1;
|
||||
Timers = true;
|
||||
}
|
||||
|
||||
if(Timers)
|
||||
{
|
||||
if(SpellTimer1 < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[6].SpellId);//Cleave
|
||||
SpellTimer1 = SpawnCast[6].Timer2 + (rand()%10 * 1000);
|
||||
}else SpellTimer1 -= diff;
|
||||
|
||||
if(SpellTimer2 < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[7].SpellId);//Shadowfury
|
||||
SpellTimer2 = SpawnCast[7].Timer2 + (rand()%5 * 1000);
|
||||
}else SpellTimer2 -= diff;
|
||||
|
||||
if(SpellTimer3 < diff)
|
||||
{
|
||||
DoCast(m_creature, SpawnCast[8].SpellId);
|
||||
SpellTimer3 = SpawnCast[8].Timer2 + (rand()%7 * 1000);//Spell Reflection
|
||||
}else SpellTimer3 -= diff;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void JustDied(Unit* slayer)
|
||||
{
|
||||
if(slayer)
|
||||
switch(slayer->GetTypeId())
|
||||
{
|
||||
case TYPEID_UNIT:
|
||||
if(((Creature*)slayer)->isPet() && ((Pet*)slayer)->GetOwner()->GetTypeId() == TYPEID_PLAYER)
|
||||
((Player*)((Pet*)slayer->GetOwner()))->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature);
|
||||
break;
|
||||
|
||||
case TYPEID_PLAYER:
|
||||
((Player*)slayer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature);
|
||||
break;
|
||||
}
|
||||
|
||||
if(Creature* LordIllidan = ((Creature*)Unit::GetUnit(*m_creature, LordIllidanGUID)))
|
||||
{
|
||||
DoScriptText(END_TEXT, LordIllidan, slayer);
|
||||
LordIllidan->AI()->EnterEvadeMode();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/*#####
|
||||
# npc_lord_illidan_stormrage
|
||||
#####*/
|
||||
|
||||
struct TRINITY_DLL_DECL npc_lord_illidan_stormrageAI : public ScriptedAI
|
||||
{
|
||||
npc_lord_illidan_stormrageAI(Creature* c) : ScriptedAI(c) {Reset();}
|
||||
|
||||
uint64 PlayerGUID;
|
||||
|
||||
uint32 WaveTimer;
|
||||
uint32 AnnounceTimer;
|
||||
|
||||
int8 LiveCount;
|
||||
uint8 WaveCount;
|
||||
|
||||
bool EventStarted;
|
||||
bool Announced;
|
||||
bool Failed;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
PlayerGUID = 0;
|
||||
|
||||
WaveTimer = 10000;
|
||||
AnnounceTimer = 7000;
|
||||
LiveCount = 0;
|
||||
WaveCount = 0;
|
||||
|
||||
EventStarted = false;
|
||||
Announced = false;
|
||||
Failed = false;
|
||||
|
||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
||||
}
|
||||
|
||||
void Aggro(Unit* who) {}
|
||||
void MoveInLineOfSight(Unit* who) {}
|
||||
void AttackStart(Unit* who) {}
|
||||
|
||||
void SummonNextWave()
|
||||
{
|
||||
uint8 count = WavesInfo[WaveCount].SpawnCount;
|
||||
uint8 locIndex = WavesInfo[WaveCount].UsedSpawnPoint;
|
||||
srand(time(NULL));//initializing random seed
|
||||
uint8 FelguardCount = 0;
|
||||
uint8 DreadlordCount = 0;
|
||||
|
||||
for(uint8 i = 0; i < count; ++i)
|
||||
{
|
||||
Creature* Spawn = NULL;
|
||||
float X = SpawnLocation[locIndex + i].x;
|
||||
float Y = SpawnLocation[locIndex + i].y;
|
||||
float Z = SpawnLocation[locIndex + i].z;
|
||||
float O = SpawnLocation[locIndex + i].o;
|
||||
Spawn = m_creature->SummonCreature(WavesInfo[WaveCount].CreatureId, X, Y, Z, O, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
|
||||
++LiveCount;
|
||||
|
||||
if(Spawn)
|
||||
{
|
||||
Spawn->LoadCreaturesAddon();
|
||||
|
||||
if(WaveCount == 0)//1 Wave
|
||||
{
|
||||
if(rand()%3 == 1 && FelguardCount<2)
|
||||
{
|
||||
Spawn->SetUInt32Value(UNIT_FIELD_DISPLAYID,18654);
|
||||
++FelguardCount;
|
||||
}
|
||||
else if(DreadlordCount < 3)
|
||||
{
|
||||
Spawn->SetUInt32Value(UNIT_FIELD_DISPLAYID,19991);
|
||||
++DreadlordCount;
|
||||
}
|
||||
else if(FelguardCount<2)
|
||||
{
|
||||
Spawn->SetUInt32Value(UNIT_FIELD_DISPLAYID,18654);
|
||||
++FelguardCount;
|
||||
}
|
||||
}
|
||||
|
||||
if(WaveCount < 3)//1-3 Wave
|
||||
{
|
||||
if(PlayerGUID)
|
||||
{
|
||||
if(Player* pTarget = ((Player*)Unit::GetUnit((*m_creature), PlayerGUID)))
|
||||
{
|
||||
float x, y, z;
|
||||
pTarget->GetPosition(x,y,z);
|
||||
Spawn->GetMotionMaster()->MovePoint(0,x, y, z);
|
||||
}
|
||||
}
|
||||
((mob_illidari_spawnAI*)Spawn->AI())->LordIllidanGUID = m_creature->GetGUID();
|
||||
}
|
||||
|
||||
if(WavesInfo[WaveCount].CreatureId == 22076) // Torloth
|
||||
{
|
||||
((mob_torloth_the_magnificentAI*)Spawn->AI())->LordIllidanGUID = m_creature->GetGUID();
|
||||
if(PlayerGUID)
|
||||
((mob_torloth_the_magnificentAI*)Spawn->AI())->AggroTargetGUID = PlayerGUID;
|
||||
}
|
||||
}
|
||||
}
|
||||
++WaveCount;
|
||||
WaveTimer = WavesInfo[WaveCount].SpawnTimer;
|
||||
AnnounceTimer = WavesInfo[WaveCount].YellTimer;
|
||||
}
|
||||
|
||||
void CheckEventFail()
|
||||
{
|
||||
Player* pPlayer = ((Player*)Unit::GetUnit((*m_creature), PlayerGUID));
|
||||
|
||||
if(!pPlayer)
|
||||
return;
|
||||
|
||||
if(Group *EventGroup = pPlayer->GetGroup())
|
||||
{
|
||||
Player* GroupMember;
|
||||
|
||||
uint8 GroupMemberCount = 0;
|
||||
uint8 DeadMemberCount = 0;
|
||||
uint8 FailedMemberCount = 0;
|
||||
|
||||
const Group::MemberSlotList members = EventGroup->GetMemberSlots();
|
||||
|
||||
for(Group::member_citerator itr = members.begin(); itr!= members.end(); itr++)
|
||||
{
|
||||
GroupMember = ((Player*)Unit::GetUnit((*m_creature), itr->guid));
|
||||
if(GroupMember && !GroupMember->IsWithinDistInMap(m_creature, EVENT_AREA_RADIUS) && GroupMember->GetQuestStatus(QUEST_BATTLE_OF_THE_CRIMSON_WATCH) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
GroupMember->FailQuest(QUEST_BATTLE_OF_THE_CRIMSON_WATCH);
|
||||
GroupMember->SetQuestStatus(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, QUEST_STATUS_NONE);
|
||||
++FailedMemberCount;
|
||||
}
|
||||
++GroupMemberCount;
|
||||
|
||||
if(GroupMember->isDead())
|
||||
{
|
||||
++DeadMemberCount;
|
||||
}
|
||||
}
|
||||
|
||||
if(GroupMemberCount == FailedMemberCount)
|
||||
{
|
||||
Failed = true;
|
||||
}
|
||||
|
||||
if(GroupMemberCount == DeadMemberCount)
|
||||
{
|
||||
for(Group::member_citerator itr = members.begin(); itr!= members.end(); itr++)
|
||||
{
|
||||
GroupMember = ((Player*)Unit::GetUnit((*m_creature), itr->guid));
|
||||
|
||||
if(GroupMember && GroupMember->GetQuestStatus(QUEST_BATTLE_OF_THE_CRIMSON_WATCH) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
GroupMember->FailQuest(QUEST_BATTLE_OF_THE_CRIMSON_WATCH);
|
||||
GroupMember->SetQuestStatus(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, QUEST_STATUS_NONE);
|
||||
}
|
||||
}
|
||||
Failed = true;
|
||||
}
|
||||
}else if (pPlayer->isDead() || !pPlayer->IsWithinDistInMap(m_creature, EVENT_AREA_RADIUS))
|
||||
{
|
||||
pPlayer->FailQuest(QUEST_BATTLE_OF_THE_CRIMSON_WATCH);
|
||||
Failed = true;
|
||||
}
|
||||
}
|
||||
|
||||
void LiveCounter()
|
||||
{
|
||||
--LiveCount;
|
||||
if(!LiveCount)
|
||||
Announced = false;
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if(!PlayerGUID || !EventStarted)
|
||||
return;
|
||||
|
||||
if(!LiveCount && WaveCount < 4)
|
||||
{
|
||||
if(!Announced && AnnounceTimer < diff)
|
||||
{
|
||||
DoScriptText(WavesInfo[WaveCount].WaveTextId, m_creature);
|
||||
Announced = true;
|
||||
}else AnnounceTimer -= diff;
|
||||
|
||||
if(WaveTimer < diff)
|
||||
{
|
||||
SummonNextWave();
|
||||
}else WaveTimer -= diff;
|
||||
}
|
||||
CheckEventFail();
|
||||
|
||||
if(Failed)
|
||||
EnterEvadeMode();
|
||||
}
|
||||
};
|
||||
|
||||
void mob_illidari_spawnAI::JustDied(Unit *slayer)
|
||||
{
|
||||
m_creature->RemoveCorpse();
|
||||
if(Creature* LordIllidan = ((Creature*)Unit::GetUnit(*m_creature, LordIllidanGUID)))
|
||||
if(LordIllidan)
|
||||
((npc_lord_illidan_stormrageAI*)LordIllidan->AI())->LiveCounter();
|
||||
}
|
||||
|
||||
/*#####
|
||||
# go_crystal_prison
|
||||
######*/
|
||||
|
||||
bool GOQuestAccept_GO_crystal_prison(Player* plr, GameObject* go, Quest const* quest)
|
||||
{
|
||||
if(quest->GetQuestId() == QUEST_BATTLE_OF_THE_CRIMSON_WATCH )
|
||||
{
|
||||
Creature* Illidan = SelectCreatureInGrid(plr, 22083, 50);
|
||||
|
||||
if(Illidan && !(((npc_lord_illidan_stormrageAI*)Illidan->AI())->EventStarted))
|
||||
{
|
||||
((npc_lord_illidan_stormrageAI*)Illidan->AI())->PlayerGUID = plr->GetGUID();
|
||||
((npc_lord_illidan_stormrageAI*)Illidan->AI())->LiveCount = 0;
|
||||
((npc_lord_illidan_stormrageAI*)Illidan->AI())->EventStarted=true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI_npc_lord_illidan_stormrage(Creature* c)
|
||||
{
|
||||
return new npc_lord_illidan_stormrageAI(c);
|
||||
}
|
||||
|
||||
CreatureAI* GetAI_mob_illidari_spawn(Creature* c)
|
||||
{
|
||||
return new mob_illidari_spawnAI(c);
|
||||
}
|
||||
|
||||
CreatureAI* GetAI_mob_torloth_the_magnificent(Creature* c)
|
||||
{
|
||||
return new mob_torloth_the_magnificentAI(c);
|
||||
}
|
||||
|
||||
/*#####
|
||||
#
|
||||
######*/
|
||||
|
||||
void AddSC_shadowmoon_valley()
|
||||
{
|
||||
Script *newscript;
|
||||
@@ -1125,4 +1714,24 @@ void AddSC_shadowmoon_valley()
|
||||
newscript->GetAI = &GetAI_npc_earthmender_wildaAI;
|
||||
newscript->pQuestAccept = &QuestAccept_npc_earthmender_wilda;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "npc_lord_illidan_stormrage";
|
||||
newscript->GetAI = GetAI_npc_lord_illidan_stormrage;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "go_crystal_prison";
|
||||
newscript->pGOQuestAccept = GOQuestAccept_GO_crystal_prison;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "mob_illidari_spawn";
|
||||
newscript->GetAI = GetAI_mob_illidari_spawn;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "mob_torloth_the_magnificent";
|
||||
newscript->GetAI = GetAI_mob_torloth_the_magnificent;
|
||||
newscript->RegisterSelf();
|
||||
}
|
||||
|
||||
+5
-1
@@ -797,6 +797,10 @@ void Map::Update(const uint32 &t_diff)
|
||||
|
||||
void Map::Remove(Player *player, bool remove)
|
||||
{
|
||||
player->DestroyForNearbyPlayers();
|
||||
player->m_IsInNotifyList = false;
|
||||
player->m_Notified = false;
|
||||
|
||||
// this may be called during Map::Update
|
||||
// after decrement+unlink, ++m_mapRefIter will continue correctly
|
||||
// when the first element of the list is being removed
|
||||
@@ -835,7 +839,7 @@ void Map::Remove(Player *player, bool remove)
|
||||
SendRemoveTransports(player);
|
||||
|
||||
//UpdateObjectsVisibilityFor(player,cell,p);
|
||||
AddUnitToNotify(player);
|
||||
//AddUnitToNotify(player);
|
||||
|
||||
if( remove )
|
||||
DeleteFromWorld(player);
|
||||
|
||||
@@ -504,6 +504,10 @@ void WorldSession::HandleListStabledPetsOpcode( WorldPacket & recv_data )
|
||||
if(GetPlayer()->hasUnitState(UNIT_STAT_DIED))
|
||||
GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH);
|
||||
|
||||
// remove mounts this fix bug where getting pet from stable while mounted deletes pet.
|
||||
if(GetPlayer()->IsMounted())
|
||||
GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_MOUNTED);
|
||||
|
||||
SendStablePet(npcGUID);
|
||||
}
|
||||
|
||||
|
||||
+9
-1
@@ -1758,7 +1758,15 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
|
||||
|
||||
ResetContestedPvP();
|
||||
|
||||
DestroyForNearbyPlayers();
|
||||
/*DestroyForNearbyPlayers();
|
||||
{
|
||||
UpdateData data;
|
||||
for(ClientGUIDs::iterator i = m_clientGUIDs.begin(); i != m_clientGUIDs.end(); ++i)
|
||||
data.AddOutOfRangeGUID(*i);
|
||||
WorldPacket packet;
|
||||
data.BuildPacket(&packet);
|
||||
GetSession()->SendPacket(&packet);
|
||||
}*/
|
||||
m_clientGUIDs.clear();
|
||||
|
||||
// remove player from battleground on far teleport (when changing maps)
|
||||
|
||||
@@ -501,6 +501,8 @@ bool IsPositiveEffect(uint32 spellId, uint32 effIndex)
|
||||
return true;
|
||||
case 28441: // not positive dummy spell
|
||||
case 37675: // Chaos Blast
|
||||
case 41519: // Mark of Stormrage
|
||||
case 34877: // Custodian of Time
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -255,7 +255,7 @@ void WorldSession::LogoutPlayer(bool Save)
|
||||
// Remove any possession of this player on logout
|
||||
_player->RemoveCharmedOrPossessedBy(NULL);
|
||||
|
||||
_player->DestroyForNearbyPlayers();
|
||||
//_player->DestroyForNearbyPlayers();
|
||||
|
||||
if (uint64 lguid = GetPlayer()->GetLootGUID())
|
||||
DoLootRelease(lguid);
|
||||
|
||||
Reference in New Issue
Block a user