diff options
8 files changed, 344 insertions, 74 deletions
diff --git a/sql/updates/3649_world.sql b/sql/updates/3649_world.sql new file mode 100644 index 00000000000..a75ebe7b158 --- /dev/null +++ b/sql/updates/3649_world.sql @@ -0,0 +1,6 @@ +UPDATE `gameobject_template` SET `ScriptName` = 'go_ethereum_prison' WHERE `entry` BETWEEN 184418 AND 184431; +UPDATE `gameobject_template` SET `ScriptName` = 'go_ethereum_stasis' WHERE `entry` BETWEEN 185465 AND 185467; +UPDATE `gameobject_template` SET `ScriptName` = 'go_ethereum_stasis' WHERE `entry` = 184595; +UPDATE `gameobject_template` SET `ScriptName` = 'go_ethereum_stasis' WHERE `entry` BETWEEN 185461 AND 185464; + +UPDATE `creature_template` SET `ScriptName` = 'npc_engineering_tele_trinket' WHERE `entry` IN (14742, 14743, 21493, 21494); diff --git a/sql/world_scripts_full.sql b/sql/world_scripts_full.sql index 8bc58973f2c..eef3a367c6a 100644 --- a/sql/world_scripts_full.sql +++ b/sql/world_scripts_full.sql @@ -25,7 +25,10 @@ UPDATE `gameobject_template` SET `ScriptName`='go_mausoleum_door' WHERE `entry`= UPDATE `gameobject_template` SET `ScriptName`='go_crystal_prison' WHERE `entry`=185126; UPDATE `gameobject_template` SET `ScriptName`='go_legion_obelisk' WHERE `entry` IN (185193,185195,185196,185197,185198); UPDATE `gameobject_template` SET `ScriptName`='go_jump_a_tron' WHERE `entry`=183146; -UPDATE `gameobject_template` SET `ScriptName`='go_ethereum_prison' WHERE `entry` IN (184418,184419,184420,184421,184422,184423,184424,184425,184426,184427,184428,184429,184430,184431); +UPDATE `gameobject_template` SET `ScriptName`='go_ethereum_prison' WHERE `entry` BETWEEN 184418 AND 184431; +UPDATE `gameobject_template` SET `ScriptName`='go_ethereum_stasis' WHERE `entry` BETWEEN 185465 AND 185467; +UPDATE `gameobject_template` SET `ScriptName`='go_ethereum_stasis' WHERE `entry` = 184595; +UPDATE `gameobject_template` SET `ScriptName`='go_ethereum_stasis' WHERE `entry` BETWEEN 185461 AND 185464; UPDATE `gameobject_template` SET `ScriptName`='go_sacred_fire_of_life' WHERE `entry`=175944; UPDATE `gameobject_template` SET `ScriptName`='go_skull_pile' WHERE `entry`=185913; UPDATE `gameobject_template` SET `ScriptName`='go_tele_to_dalaran_crystal' WHERE `entry`=191230; @@ -89,6 +92,7 @@ UPDATE `creature_template` SET `ScriptName`='npc_doctor' WHERE `entry` IN (12939 UPDATE `creature_template` SET `ScriptName`='npc_injured_patient' WHERE `entry` IN (12936,12937,12938,12923,12924,12925); UPDATE `creature_template` SET `ScriptName`='npc_prof_alchemy' WHERE `entry` IN (17909,19052,22427); UPDATE `creature_template` SET `ScriptName`='npc_prof_blacksmith' WHERE `entry` IN (5164,11145,11146,11176,11177,11178,11191,11192,11193); +UPDATE `creature_template` SET `ScriptName`='npc_engineering_tele_trinket' WHERE `entry` IN (14742, 14743, 21493, 21494); UPDATE `creature_template` SET `ScriptName`='npc_prof_leather' WHERE `entry` IN (7866,7867,7868,7869,7870,7871); 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); diff --git a/src/bindings/scripts/scripts/go/go_scripts.cpp b/src/bindings/scripts/scripts/go/go_scripts.cpp index 4a58a0d4010..bd0e621c3c4 100644 --- a/src/bindings/scripts/scripts/go/go_scripts.cpp +++ b/src/bindings/scripts/scripts/go/go_scripts.cpp @@ -17,7 +17,7 @@ /* ScriptData SDName: GO_Scripts SD%Complete: 100 -SDComment: Quest support: 4285,4287,4288(crystal pylons), 4296. Field_Repair_Bot->Teaches spell 22704. Barov_journal->Teaches spell 26089 +SDComment: Quest support: 4285,4287,4288(crystal pylons), 4296, 10990, 10991, 10992, Field_Repair_Bot->Teaches spell 22704. Barov_journal->Teaches spell 26089 SDCategory: Game Objects EndScriptData */ @@ -27,10 +27,16 @@ go_northern_crystal_pylon go_eastern_crystal_pylon go_western_crystal_pylon go_barov_journal +go_ethereum_prison +go_ethereum_stasis +go_sacred_fire_of_life +go_shrine_of_the_birds go_field_repair_bot_74A go_orb_of_command go_tablet_of_madness go_tablet_of_the_seven +go_tele_to_dalaran_crystal +go_tele_to_violet_stand EndContentData */ #include "precompiled.h" @@ -199,24 +205,73 @@ bool GOHello_go_jump_a_tron(Player *player, GameObject* _GO) ## go_ethereum_prison ######*/ -float ethereum_NPC[2][7] = +enum +{ + SPELL_REP_LC = 39456, + SPELL_REP_SHAT = 39457, + SPELL_REP_CE = 39460, + SPELL_REP_CON = 39474, + SPELL_REP_KT = 39475, + SPELL_REP_SPOR = 39476 +}; + +const uint32 NpcPrisonEntry[] = { - {20785,20790,20789,20784,20786,20783,20788}, // hostile npc - {22810,22811,22812,22813,22814,22815,0} // fiendly npc (need script in acid ? only to cast spell reputation reward) + 22810, 22811, 22812, 22813, 22814, 22815, //good guys + 20783, 20784, 20785, 20786, 20788, 20789, 20790 //bad guys }; -bool GOHello_go_ethereum_prison(Player *player, GameObject* _GO) +bool GOHello_go_ethereum_prison(Player* pPlayer, GameObject* pGo) { - _GO->SetGoState(GO_STATE_ACTIVE); - switch(rand()%2){ - case 0: - _GO->SummonCreature(ethereum_NPC[0][rand()%6],_GO->GetPositionX(),_GO->GetPositionY(),_GO->GetPositionZ()+0.3, 0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,10000); - break; - case 1: - _GO->SummonCreature(ethereum_NPC[1][rand()%5],_GO->GetPositionX(),_GO->GetPositionY(),_GO->GetPositionZ()+0.3, 0,TEMPSUMMON_TIMED_DESPAWN,10000); - break; + int Random = rand() % (sizeof(NpcPrisonEntry) / sizeof(uint32)); + + if(Creature* pCreature = pPlayer->SummonCreature(NpcPrisonEntry[Random], + pGo->GetPositionX(), pGo->GetPositionY(), pGo->GetPositionZ(), pGo->GetAngle(pPlayer), + TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000)) + { + if(!pCreature->IsHostileTo(pPlayer)) + { + uint32 Spell = 0; + FactionTemplateEntry const* pFaction = pCreature->getFactionTemplateEntry(); + + switch(pFaction->faction) + { + case 1011: Spell = SPELL_REP_LC; break; + case 935: Spell = SPELL_REP_SHAT; break; + case 942: Spell = SPELL_REP_CE; break; + case 933: Spell = SPELL_REP_CON; break; + case 989: Spell = SPELL_REP_KT; break; + case 970: Spell = SPELL_REP_SPOR; break; + } + + if(Spell) + pCreature->CastSpell(pPlayer, Spell, false); + else + error_log("TSCR: go_ethereum_prison summoned creature (entry %u) but faction (%u) are not expected by script.", pCreature->GetEntry(), pCreature->getFaction()); + } + } + + return false; } -return true; + +/*###### +## go_ethereum_stasis +######*/ + +const uint32 NpcStasisEntry[] = +{ + 22825, 20888, 22827, 22826, 22828 +}; + +bool GOHello_go_ethereum_stasis(Player* pPlayer, GameObject* pGo) +{ + int Random = rand() % (sizeof(NpcStasisEntry) / sizeof(uint32)); + + pPlayer->SummonCreature(NpcStasisEntry[Random], + pGo->GetPositionX(), pGo->GetPositionY(), pGo->GetPositionZ(), pGo->GetAngle(pPlayer), + TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); + + return false; } /*###### @@ -234,6 +289,46 @@ bool GOHello_go_sacred_fire_of_life(Player* pPlayer, GameObject* pGO) } /*###### +## go_shrine_of_the_birds +######*/ + +enum +{ + NPC_HAWK_GUARD = 22992, + NPC_EAGLE_GUARD = 22993, + NPC_FALCON_GUARD = 22994, + GO_SHRINE_HAWK = 185551, + GO_SHRINE_EAGLE = 185547, + GO_SHRINE_FALCON = 185553 +}; + +bool GOHello_go_shrine_of_the_birds(Player* pPlayer, GameObject* pGo) +{ + uint32 BirdEntry = 0; + + float fX, fY, fZ; + pGo->GetClosePoint(fX, fY, fZ, pGo->GetObjectSize(), INTERACTION_DISTANCE); + + switch(pGo->GetEntry()) + { + case GO_SHRINE_HAWK: + BirdEntry = NPC_HAWK_GUARD; + break; + case GO_SHRINE_EAGLE: + BirdEntry = NPC_EAGLE_GUARD; + break; + case GO_SHRINE_FALCON: + BirdEntry = NPC_FALCON_GUARD; + break; + } + + if(BirdEntry) + pPlayer->SummonCreature(BirdEntry, fX, fY, fZ, pGo->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000); + + return false; +} + +/*###### ## go_tele_to_dalaran_crystal ######*/ @@ -309,6 +404,11 @@ void AddSC_go_scripts() newscript->RegisterSelf(); newscript = new Script; + newscript->Name = "go_shrine_of_the_birds"; + newscript->pGOHello = &GOHello_go_shrine_of_the_birds; + newscript->RegisterSelf(); + + newscript = new Script; newscript->Name="go_tablet_of_madness"; newscript->pGOHello = &GOHello_go_tablet_of_madness; newscript->RegisterSelf(); @@ -329,9 +429,23 @@ void AddSC_go_scripts() newscript->RegisterSelf(); newscript = new Script; + newscript->Name = "go_ethereum_stasis"; + newscript->pGOHello = &GOHello_go_ethereum_stasis; + newscript->RegisterSelf(); + + newscript = new Script; newscript->Name = "go_sacred_fire_of_life"; newscript->pGOHello = &GOHello_go_sacred_fire_of_life; newscript->RegisterSelf(); + newscript = new Script; + newscript->Name = "go_tele_to_dalaran_crystal"; + newscript->pGOHello = &GOHello_go_tele_to_dalaran_crystal; + newscript->RegisterSelf(); + + newscript = new Script; + newscript->Name = "go_tele_to_violet_stand"; + newscript->pGOHello = &GOHello_go_tele_to_violet_stand; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/npc/npc_professions.cpp b/src/bindings/scripts/scripts/npc/npc_professions.cpp index b391798eae5..195e6f4b369 100644 --- a/src/bindings/scripts/scripts/npc/npc_professions.cpp +++ b/src/bindings/scripts/scripts/npc/npc_professions.cpp @@ -812,6 +812,138 @@ bool GossipSelect_npc_prof_blacksmith(Player *player, Creature *_Creature, uint3 }*/ /*### +# engineering trinkets +###*/ + +enum +{ + NPC_ZAP = 14742, + NPC_JHORDY = 14743, + NPC_KABLAM = 21493, + NPC_SMILES = 21494, + + SPELL_LEARN_TO_EVERLOOK = 23490, + SPELL_LEARN_TO_GADGET = 23491, + SPELL_LEARN_TO_AREA52 = 36956, + SPELL_LEARN_TO_TOSHLEY = 36957, + + SPELL_TO_EVERLOOK = 23486, + SPELL_TO_GADGET = 23489, + SPELL_TO_AREA52 = 36954, + SPELL_TO_TOSHLEY = 36955, + + ITEM_GNOMISH_CARD = 10790, + ITEM_GOBLIN_CARD = 10791 +}; + +#define GOSSIP_ITEM_ZAP "[PH] Unknown" +#define GOSSIP_ITEM_JHORDY "I must build a beacon for this marvelous device!" +#define GOSSIP_ITEM_KABLAM "[PH] Unknown" +#define GOSSIP_ITEM_SMILES "[PH] Unknown" + +bool GossipHello_npc_engineering_tele_trinket(Player* pPlayer, Creature* pCreature) +{ + uint32 NpcTextId = 0; + std::string GossipItem; + bool CanLearn = false; + + if(pPlayer->HasSkill(SKILL_ENGINERING)) + { + switch(pCreature->GetEntry()) + { + case NPC_ZAP: + NpcTextId = 7249; + if(pPlayer->GetBaseSkillValue(SKILL_ENGINERING) >= 260 && pPlayer->HasSpell(S_GOBLIN)) + { + if(!pPlayer->HasSpell(SPELL_TO_EVERLOOK)) + { + CanLearn = true; + GossipItem = GOSSIP_ITEM_ZAP; + } + else if(pPlayer->HasSpell(SPELL_TO_EVERLOOK)) + NpcTextId = 0; + } + break; + case NPC_JHORDY: + NpcTextId = 7251; + if(pPlayer->GetBaseSkillValue(SKILL_ENGINERING) >= 260 && pPlayer->HasSpell(S_GNOMISH)) + { + if(!pPlayer->HasSpell(SPELL_TO_GADGET)) + { + CanLearn = true; + GossipItem = GOSSIP_ITEM_JHORDY; + } + else if(pPlayer->HasSpell(SPELL_TO_GADGET)) + NpcTextId = 7252; + } + break; + case NPC_KABLAM: + NpcTextId = 10365; + if(pPlayer->GetBaseSkillValue(SKILL_ENGINERING) >= 350 && pPlayer->HasSpell(S_GOBLIN)) + { + if(!pPlayer->HasSpell(SPELL_TO_AREA52)) + { + CanLearn = true; + GossipItem = GOSSIP_ITEM_KABLAM; + } + else if(pPlayer->HasSpell(SPELL_TO_AREA52)) + NpcTextId = 0; + } + break; + case NPC_SMILES: + NpcTextId = 10363; + if(pPlayer->GetBaseSkillValue(SKILL_ENGINERING) >= 350 && pPlayer->HasSpell(S_GNOMISH)) + { + if(!pPlayer->HasSpell(SPELL_TO_TOSHLEY)) + { + CanLearn = true; + GossipItem = GOSSIP_ITEM_SMILES; + } + else if(pPlayer->HasSpell(SPELL_TO_TOSHLEY)) + NpcTextId = 0; + } + break; + } + } + + if(CanLearn) + { + if(pPlayer->HasItemCount(ITEM_GOBLIN_CARD,1) || pPlayer->HasItemCount(ITEM_GNOMISH_CARD,1)) + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GossipItem, pCreature->GetEntry(), GOSSIP_ACTION_INFO_DEF+1); + } + + pPlayer->SEND_GOSSIP_MENU(NpcTextId ? NpcTextId : pCreature->GetNpcTextId(), pCreature->GetGUID()); + return true; +} + +bool GossipSelect_npc_engineering_tele_trinket(Player* pPlayer, Creature* pCreature, uint32 Sender, uint32 Action) +{ + if(Action == GOSSIP_ACTION_INFO_DEF+1) + pPlayer->CLOSE_GOSSIP_MENU(); + + if(Sender != pCreature->GetEntry()) + return true; + + switch(Sender) + { + case NPC_ZAP: + pPlayer->CastSpell(pPlayer, SPELL_LEARN_TO_EVERLOOK, false); + break; + case NPC_JHORDY: + pPlayer->CastSpell(pPlayer, SPELL_LEARN_TO_GADGET, false); + break; + case NPC_KABLAM: + pPlayer->CastSpell(pPlayer, SPELL_LEARN_TO_AREA52, false); + break; + case NPC_SMILES: + pPlayer->CastSpell(pPlayer, SPELL_LEARN_TO_TOSHLEY, false); + break; + } + + return true; +} + +/*### # start menues leatherworking ###*/ @@ -1184,6 +1316,12 @@ void AddSC_npc_professions() newscript->RegisterSelf(); newscript = new Script; + newscript->Name = "npc_engineering_tele_trinket"; + newscript->pGossipHello = &GossipHello_npc_engineering_tele_trinket; + newscript->pGossipSelect = &GossipSelect_npc_engineering_tele_trinket; + newscript->RegisterSelf(); + + newscript = new Script; newscript->Name="npc_prof_leather"; newscript->pGossipHello = &GossipHello_npc_prof_leather; newscript->pGossipSelect = &GossipSelect_npc_prof_leather; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp index 80d9a116712..ee3cc90661a 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp @@ -24,36 +24,39 @@ EndScriptData */ #include "precompiled.h" #include "def_black_temple.h" -#define SAY_AGGRO -1564000 -#define SAY_NEEDLE1 -1564001 -#define SAY_NEEDLE2 -1564002 -#define SAY_SLAY1 -1564003 -#define SAY_SLAY2 -1564004 -#define SAY_SPECIAL1 -1564005 -#define SAY_SPECIAL2 -1564006 -#define SAY_ENRAGE1 -1564007 //is this text actually in use? -#define SAY_ENRAGE2 -1564008 -#define SAY_DEATH -1564009 - -//Spells -#define SPELL_NEEDLE_SPINE 39992 -#define SPELL_TIDAL_BURST 39878 -#define SPELL_TIDAL_SHIELD 39872 -#define SPELL_IMPALING_SPINE 39837 -#define SPELL_CREATE_NAJENTUS_SPINE 39956 -#define SPELL_HURL_SPINE 39948 -#define SPELL_BERSERK 45078 - -#define GOBJECT_SPINE 185584 - -#define EVENT_BERSERK 1 -#define EVENT_YELL 2 -#define EVENT_NEEDLE 3 -#define EVENT_SPINE 4 -#define EVENT_SHIELD 5 - -#define GCD_CAST 1 -#define GCD_YELL 2 +enum +{ + SAY_AGGRO = -1564000, + SAY_NEEDLE1 = -1564001, + SAY_NEEDLE2 = -1564002, + SAY_SLAY1 = -1564003, + SAY_SLAY2 = -1564004, + SAY_SPECIAL1 = -1564005, + SAY_SPECIAL2 = -1564006, + SAY_ENRAGE1 = -1564007, //is this text actually in use? + SAY_ENRAGE2 = -1564008, + SAY_DEATH = -1564009, + + //Spells + SPELL_NEEDLE_SPINE = 39992, + SPELL_TIDAL_BURST = 39878, + SPELL_TIDAL_SHIELD = 39872, + SPELL_IMPALING_SPINE = 39837, + SPELL_CREATE_NAJENTUS_SPINE = 39956, + SPELL_HURL_SPINE = 39948, + SPELL_BERSERK = 45078, + + GOBJECT_SPINE = 185584, + + EVENT_BERSERK = 1, + EVENT_YELL = 2, + EVENT_NEEDLE = 3, + EVENT_SPINE = 4, + EVENT_SHIELD = 5, + + GCD_CAST = 1, + GCD_YELL = 2 +}; struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI { diff --git a/src/bindings/scripts/scripts/zone/black_temple/def_black_temple.h b/src/bindings/scripts/scripts/zone/black_temple/def_black_temple.h index 4779f92fa4d..c98c0b1c363 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/def_black_temple.h +++ b/src/bindings/scripts/scripts/zone/black_temple/def_black_temple.h @@ -5,31 +5,35 @@ #ifndef DEF_BLACK_TEMPLE_H #define DEF_BLACK_TEMPLE_H -#define DATA_AKAMA 1 -#define DATA_AKAMA_SHADE 2 -#define DATA_GURTOGGBLOODBOILEVENT 3 -#define DATA_HIGHWARLORDNAJENTUS 4 -#define DATA_HIGHWARLORDNAJENTUSEVENT 5 -#define DATA_ILLIDANSTORMRAGE 6 -#define DATA_ILLIDANSTORMRAGEEVENT 7 -#define DATA_ILLIDARICOUNCILEVENT 8 -#define DATA_ILLIDARICOUNCIL 9 -#define DATA_LADYMALANDE 10 -#define DATA_HIGHNETHERMANCERZEREVOR 11 -#define DATA_GATHIOSTHESHATTERER 12 -#define DATA_VERASDARKSHADOW 13 -#define DATA_MOTHERSHAHRAZEVENT 14 -#define DATA_RELIQUARYOFSOULSEVENT 15 -#define DATA_SHADEOFAKAMA 16 -#define DATA_SHADEOFAKAMAEVENT 17 -#define DATA_SUPREMUS 18 -#define DATA_SUPREMUSEVENT 19 -#define DATA_TERONGOREFIENDEVENT 20 -#define DATA_GAMEOBJECT_NAJENTUS_GATE 21 -#define DATA_GAMEOBJECT_ILLIDAN_GATE 22 -#define DATA_GAMEOBJECT_ILLIDAN_DOOR_R 23 -#define DATA_GAMEOBJECT_ILLIDAN_DOOR_L 24 -#define DATA_GAMEOBJECT_SUPREMUS_DOORS 25 -#define DATA_BLOOD_ELF_COUNCIL_VOICE 26 +enum +{ + DATA_AKAMA = 1, + DATA_AKAMA_SHADE = 2, + DATA_GURTOGGBLOODBOILEVENT = 3, + DATA_HIGHWARLORDNAJENTUS = 4, + DATA_HIGHWARLORDNAJENTUSEVENT = 5, + DATA_ILLIDANSTORMRAGE = 6, + DATA_ILLIDANSTORMRAGEEVENT = 7, + DATA_ILLIDARICOUNCILEVENT = 8, + DATA_ILLIDARICOUNCIL = 9, + DATA_LADYMALANDE = 10, + DATA_HIGHNETHERMANCERZEREVOR = 11, + DATA_GATHIOSTHESHATTERER = 12, + DATA_VERASDARKSHADOW = 13, + DATA_MOTHERSHAHRAZEVENT = 14, + DATA_RELIQUARYOFSOULSEVENT = 15, + DATA_SHADEOFAKAMA = 16, + DATA_SHADEOFAKAMAEVENT = 17, + DATA_SUPREMUS = 18, + DATA_SUPREMUSEVENT = 19, + DATA_TERONGOREFIENDEVENT = 20, + DATA_GAMEOBJECT_NAJENTUS_GATE = 21, + DATA_GAMEOBJECT_ILLIDAN_GATE = 22, + DATA_GAMEOBJECT_ILLIDAN_DOOR_R = 23, + DATA_GAMEOBJECT_ILLIDAN_DOOR_L = 24, + DATA_GAMEOBJECT_SUPREMUS_DOORS = 25, + DATA_BLOOD_ELF_COUNCIL_VOICE = 26 +}; + #endif diff --git a/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp b/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp index bf5d62a7b86..3f71e2070ab 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp @@ -24,7 +24,7 @@ EndScriptData */ #include "precompiled.h" #include "def_black_temple.h" -#define ENCOUNTERS 9 +#define ENCOUNTERS 9 /* Black Temple encounters: 0 - High Warlord Naj'entus event diff --git a/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp b/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp index 30f843badb0..fc8970c6f8a 100644 --- a/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp +++ b/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp @@ -16,8 +16,8 @@ /* ScriptData SDName: Instance_Shadowfang_Keep -SD%Complete: 75 -SDComment: TODO: check what other parts would require additional code (ex: make sure door are in open state if boss dead) +SD%Complete: 90 +SDComment: SDCategory: Shadowfang Keep EndScriptData */ @@ -38,6 +38,7 @@ enum GO_SORCERER_DOOR = 18972, //door to open when Fenrus the Devourer GO_ARUGAL_DOOR = 18971 //door to open when Wolf Master Nandos }; + struct TRINITY_DLL_DECL instance_shadowfang_keep : public ScriptedInstance { instance_shadowfang_keep(Map *map) : ScriptedInstance(map) {Initialize();}; |