diff options
3 files changed, 44 insertions, 34 deletions
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index 26dada0a2fb..1441d70a128 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -31,7 +31,7 @@ EndScriptData */ enum Misc { - MAX_ENCOUNTER = 6, + MAX_ENCOUNTER = 7, RAND_VENDOR = 2, WORLDSTATE_SHOW_TIMER = 3104, WORLDSTATE_TIME_TO_SACRIFICE = 3106 @@ -127,8 +127,8 @@ class instance_zulaman : public InstanceMapScript switch (creature->GetEntry()) { case NPC_HARRISON_JONES: - if (m_auiEncounter[0]) - creature->SetVisible(false); + if ((DATA_GONGEVENT) == DONE) + creature->RemoveFromWorld(); case NPC_JANALAI: case NPC_ZULJIN: case NPC_HEXLORD: @@ -181,10 +181,10 @@ class instance_zulaman : public InstanceMapScript void CheckInstanceStatus() { - if (BossKilled >= DATA_HALAZZIEVENT) + if (BossKilled >= DATA_HALAZZIEVENT-1) HandleGameObject(HexLordGateGUID, true); - if (BossKilled >= DATA_HEXLORDEVENT) + if (BossKilled >= DATA_HEXLORDEVENT-1) HandleGameObject(ZulJinGateGUID, true); } @@ -223,14 +223,11 @@ class instance_zulaman : public InstanceMapScript switch (type) { case DATA_GONGEVENT: - m_auiEncounter[0] = data; - if (data == DONE) - { - - } + m_auiEncounter[DATA_GONGEVENT] = data; + HandleGameObject(MassiveGateGUID, data == DONE); break; case DATA_NALORAKKEVENT: - m_auiEncounter[1] = data; + m_auiEncounter[DATA_NALORAKKEVENT] = data; if (data == DONE) { if (QuestMinute) @@ -242,7 +239,7 @@ class instance_zulaman : public InstanceMapScript } break; case DATA_AKILZONEVENT: - m_auiEncounter[2] = data; + m_auiEncounter[DATA_AKILZONEVENT] = data; HandleGameObject(AkilzonDoorGUID, data != IN_PROGRESS); if (data == DONE) { @@ -255,23 +252,24 @@ class instance_zulaman : public InstanceMapScript } break; case DATA_JANALAIEVENT: - m_auiEncounter[3] = data; - if (data == DONE) SummonHostage(2); + m_auiEncounter[DATA_JANALAIEVENT] = data; + if (data == DONE) + SummonHostage(2); break; case DATA_HALAZZIEVENT: - m_auiEncounter[4] = data; + m_auiEncounter[DATA_HALAZZIEVENT] = data; HandleGameObject(HalazziDoorGUID, data != IN_PROGRESS); if (data == DONE) SummonHostage(3); break; case DATA_HEXLORDEVENT: - m_auiEncounter[5] = data; + m_auiEncounter[DATA_HEXLORDEVENT] = data; if (data == IN_PROGRESS) HandleGameObject(HexLordGateGUID, false); else if (data == NOT_STARTED) CheckInstanceStatus(); break; case DATA_ZULJINEVENT: - m_auiEncounter[6] = data; + m_auiEncounter[DATA_ZULJINEVENT] = data; HandleGameObject(ZulJinDoorGUID, data != IN_PROGRESS); break; case DATA_CHESTLOOTED: diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index 0f06da53ad6..e8b6d7b6349 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -227,7 +227,8 @@ enum Events GONG_EVENT_6 = 6, GONG_EVENT_7 = 7, GONG_EVENT_8 = 8, - GONG_EVENT_9 = 9 + GONG_EVENT_9 = 9, + GONG_EVENT_10 = 10 }; enum Entrys @@ -278,6 +279,7 @@ class npc_harrison_jones : public CreatureScript player->CLOSE_GOSSIP_MENU(); me->SetInFront(player); me->SendMovementFlagUpdate(true); + instance->SetData(DATA_GONGEVENT, IN_PROGRESS); _gongEvent = GONG_EVENT_1; _gongTimer = 1; } @@ -303,12 +305,14 @@ class npc_harrison_jones : public CreatureScript _gongEvent = GONG_EVENT_3; break; case GONG_EVENT_3: + me->SetFacingTo(6.235659f); Talk(SAY_HARRISON_1); - _gongTimer = 5000; + DoCast(me, SPELL_BANGING_THE_GONG); + me->SetSheath(SHEATH_STATE_MELEE); + _gongTimer = 4000; _gongEvent = GONG_EVENT_4; break; case GONG_EVENT_4: - DoCast(me, SPELL_BANGING_THE_GONG); if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetData64(GO_STRANGE_GONG))) gong->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_NOT_SELECTABLE); _gongTimer = 120000; @@ -317,14 +321,12 @@ class npc_harrison_jones : public CreatureScript case GONG_EVENT_5: if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetData64(GO_STRANGE_GONG))) gong->SetFlag(GAMEOBJECT_FLAGS,GO_FLAG_NOT_SELECTABLE); - - // Remove Aura 45222 from all players - if (instance) instance->SetData(DATA_GONGEVENT, DONE); // This is temp if (instance->GetData(DATA_GONGEVENT) == DONE) { + // Save all players to instance me->GetMotionMaster()->MovePath(HARRISON_MOVE_2,false); _gongTimer = 5000; _gongEvent = 6; @@ -336,7 +338,7 @@ class npc_harrison_jones : public CreatureScript } break; case GONG_EVENT_6: - me->SetEntry(24375); + me->SetEntry(NPC_HARRISON_JONES_2); Talk(SAY_HARRISON_2); _gongTimer = 14000; _gongEvent = 7; @@ -348,14 +350,24 @@ class npc_harrison_jones : public CreatureScript _gongEvent = 8; break; case GONG_EVENT_8: + // entry 23597 guid 86194 UNIT_VIRTUAL_ITEM_SLOT_ID: 13631 if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_MASSIVE_GATE))) gate->SetGoState(GO_STATE_ACTIVE); _gongTimer = 1000; _gongEvent = 9; case GONG_EVENT_9: DoCast(me, SPELL_STEALTH); + me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(0)); me->GetMotionMaster()->MovePath(HARRISON_MOVE_3,false); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + _gongTimer = 1000; + _gongEvent = 10; + case GONG_EVENT_10: + // move 23597 guid 86194 + // path 138.2242 Y: 1586.994 Z: 43.5488 + // path 131.8407 Y: 1590.247 Z: 43.61384 + // Reach end of path turnto 2.024582 cast Spell ID: 43647 on self hits 24358 UNIT_VIRTUAL_ITEM_SLOT_ID: 33979 + // wait 2 sec say text 0 _gongTimer = 0; _gongEvent = 0; break; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h index 33d609c1739..5b5e6faef83 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h @@ -21,16 +21,16 @@ enum DataTypes { - DATA_GONGEVENT = 1, - DATA_NALORAKKEVENT = 2, - DATA_AKILZONEVENT = 3, - DATA_JANALAIEVENT = 4, - DATA_HALAZZIEVENT = 5, - DATA_HEXLORDEVENT = 6, - DATA_ZULJINEVENT = 7, - DATA_CHESTLOOTED = 8, - TYPE_RAND_VENDOR_1 = 9, - TYPE_RAND_VENDOR_2 = 10 + DATA_GONGEVENT = 0, + DATA_NALORAKKEVENT = 1, + DATA_AKILZONEVENT = 2, + DATA_JANALAIEVENT = 3, + DATA_HALAZZIEVENT = 4, + DATA_HEXLORDEVENT = 5, + DATA_ZULJINEVENT = 6, + DATA_CHESTLOOTED = 7, + TYPE_RAND_VENDOR_1 = 8, + TYPE_RAND_VENDOR_2 = 9 }; enum CreatureIds |
