diff options
author | Rat <none@none> | 2009-10-19 10:22:45 +0200 |
---|---|---|
committer | Rat <none@none> | 2009-10-19 10:22:45 +0200 |
commit | 8a6e00d3331b7c397e8223bd3dabf61ffb1e8169 (patch) | |
tree | 041b19c479fa887e421d521ae4c3a8b0acde6619 | |
parent | f1e8a6f0d3d0543e175c2c699f413599d01ee91e (diff) |
*Headless horseman
-only summon once / instance
-fix fly movement
-proper invis modelids for dummies
--HG--
branch : trunk
3 files changed, 22 insertions, 7 deletions
diff --git a/sql/updates/6008_world.sql b/sql/updates/6008_world.sql new file mode 100644 index 00000000000..77c04f4f81e --- /dev/null +++ b/sql/updates/6008_world.sql @@ -0,0 +1,6 @@ +UPDATE `creature_template` SET `modelid_A`='11686',`modelid_H`='11686' WHERE `entry`=23537; +UPDATE `creature_template` SET `modelid_A`='11686',`modelid_H`='11686' WHERE `entry`=23686; +UPDATE `creature_template` SET `modelid_A`='11686',`modelid_H`='11686' WHERE `entry`=23758; +UPDATE `creature_template` SET `modelid_A`='11686',`modelid_H`='11686' WHERE `entry`=24034; +UPDATE `creature_template` SET `modelid_A`='11686',`modelid_H`='11686' WHERE `entry`=23775; + diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/boss_headless_horseman.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/boss_headless_horseman.cpp index 18bd79a263e..cac306ec258 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/boss_headless_horseman.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/boss_headless_horseman.cpp @@ -129,7 +129,7 @@ static Summon Text[]= {"Now, know demise!"} }; -#define EMOTE_LAUGHS "laughs" +#define EMOTE_LAUGHS "Headless Horseman laughs" struct TRINITY_DLL_DECL mob_wisp_invisAI : public ScriptedAI { @@ -406,15 +406,15 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI headGUID = 0; } - if (pInstance) - pInstance->SetData(DATA_HORSEMAN_EVENT, NOT_STARTED); + //if (pInstance) + // pInstance->SetData(DATA_HORSEMAN_EVENT, NOT_STARTED); } void FlyMode() { m_creature->SetVisibility(VISIBILITY_OFF); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_HOVER); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); m_creature->SetSpeed(MOVE_WALK,5.0f,true); wp_reached = false; count = 0; @@ -447,7 +447,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI pInstance->SetData(GAMEOBJECT_PUMPKIN_SHRINE, 0); //hide gameobject break; case 19: - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_HOVER); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); break; case 20: { @@ -821,6 +821,13 @@ struct TRINITY_DLL_DECL mob_pulsing_pumpkinAI : public ScriptedAI bool GOHello_go_loosely_turned_soil(Player* pPlayer, GameObject* soil) { + ScriptedInstance* pInstance = pPlayer->GetInstanceData(); + if (pInstance) + { + if(pInstance->GetData(DATA_HORSEMAN_EVENT) != NOT_STARTED) + return true; + pInstance->SetData(DATA_HORSEMAN_EVENT, IN_PROGRESS); + } /* if (soil->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER && plr->getLevel() > 64) { plr->PrepareQuestMenu(soil->GetGUID()); diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/instance_scarlet_monastery.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/instance_scarlet_monastery.cpp index 66653f008bf..44b05733909 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/instance_scarlet_monastery.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/instance_scarlet_monastery.cpp @@ -30,7 +30,7 @@ EndScriptData */ #define ENTRY_HEAD 23775 #define ENTRY_PUMPKIN 23694 -#define MAX_ENCOUNTER 1 +#define MAX_ENCOUNTER 2 struct TRINITY_DLL_DECL instance_scarlet_monastery : public ScriptedInstance { @@ -101,6 +101,7 @@ struct TRINITY_DLL_DECL instance_scarlet_monastery : public ScriptedInstance HandleGameObject(PumpkinShrineGUID, false); break; case DATA_HORSEMAN_EVENT: + m_auiEncounter[1] = data; if (data == DONE) { for (std::set<uint64>::iterator itr = HorsemanAdds.begin(); itr != HorsemanAdds.end(); ++itr) @@ -135,7 +136,8 @@ struct TRINITY_DLL_DECL instance_scarlet_monastery : public ScriptedInstance { if (type == TYPE_MOGRAINE_AND_WHITE_EVENT) return m_auiEncounter[0]; - + if (type == DATA_HORSEMAN_EVENT) + return m_auiEncounter[1]; return 0; } }; |