mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 15:58:04 +00:00
fix(Scripts/Karazhan): Cleanup in opera event (#2163)
This commit is contained in:
@@ -665,6 +665,7 @@ public:
|
|||||||
|
|
||||||
void Reset()
|
void Reset()
|
||||||
{
|
{
|
||||||
|
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||||
CycloneTimer = 22000;
|
CycloneTimer = 22000;
|
||||||
ChainLightningTimer = 8000;
|
ChainLightningTimer = 8000;
|
||||||
}
|
}
|
||||||
@@ -689,12 +690,7 @@ public:
|
|||||||
{
|
{
|
||||||
Talk(SAY_CRONE_DEATH);
|
Talk(SAY_CRONE_DEATH);
|
||||||
|
|
||||||
instance->SetData(DATA_OPERA_PERFORMANCE, DONE);
|
instance->SetBossState(DATA_OPERA_PERFORMANCE, DONE);
|
||||||
instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORLEFT), true);
|
|
||||||
instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORRIGHT), true);
|
|
||||||
|
|
||||||
if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR)))
|
|
||||||
pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateAI(uint32 diff)
|
void UpdateAI(uint32 diff)
|
||||||
@@ -702,9 +698,6 @@ public:
|
|||||||
if (!UpdateVictim())
|
if (!UpdateVictim())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
|
||||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
|
||||||
|
|
||||||
if (CycloneTimer <= diff)
|
if (CycloneTimer <= diff)
|
||||||
{
|
{
|
||||||
if (Creature* Cyclone = DoSpawnCreature(CREATURE_CYCLONE, float(urand(0, 9)), float(urand(0, 9)), 0, 0, TEMPSUMMON_TIMED_DESPAWN, 15000))
|
if (Creature* Cyclone = DoSpawnCreature(CREATURE_CYCLONE, float(urand(0, 9)), float(urand(0, 9)), 0, 0, TEMPSUMMON_TIMED_DESPAWN, 15000))
|
||||||
@@ -880,12 +873,7 @@ public:
|
|||||||
{
|
{
|
||||||
DoPlaySoundToSet(me, SOUND_WOLF_DEATH);
|
DoPlaySoundToSet(me, SOUND_WOLF_DEATH);
|
||||||
|
|
||||||
instance->SetData(DATA_OPERA_PERFORMANCE, DONE);
|
instance->SetBossState(DATA_OPERA_PERFORMANCE, DONE);
|
||||||
instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORLEFT), true);
|
|
||||||
instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORRIGHT), true);
|
|
||||||
|
|
||||||
if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR)))
|
|
||||||
pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateAI(uint32 diff)
|
void UpdateAI(uint32 diff)
|
||||||
@@ -1130,11 +1118,7 @@ public:
|
|||||||
{
|
{
|
||||||
Talk(SAY_JULIANNE_DEATH02);
|
Talk(SAY_JULIANNE_DEATH02);
|
||||||
|
|
||||||
instance->SetData(DATA_OPERA_PERFORMANCE, DONE);
|
instance->SetBossState(DATA_OPERA_PERFORMANCE, DONE);
|
||||||
instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORLEFT), true);
|
|
||||||
instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORRIGHT), true);
|
|
||||||
if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR)))
|
|
||||||
pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KilledUnit(Unit* /*victim*/)
|
void KilledUnit(Unit* /*victim*/)
|
||||||
@@ -1283,12 +1267,7 @@ public:
|
|||||||
{
|
{
|
||||||
Talk(SAY_ROMULO_DEATH);
|
Talk(SAY_ROMULO_DEATH);
|
||||||
|
|
||||||
instance->SetData(DATA_OPERA_PERFORMANCE, DONE);
|
instance->SetBossState(DATA_OPERA_PERFORMANCE, DONE);
|
||||||
instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORLEFT), true);
|
|
||||||
instance->HandleGameObject(instance->GetData64(DATA_GO_STAGEDOORRIGHT), true);
|
|
||||||
|
|
||||||
if (GameObject* pSideEntrance = instance->instance->GetGameObject(instance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR)))
|
|
||||||
pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KilledUnit(Unit* /*victim*/)
|
void KilledUnit(Unit* /*victim*/)
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
|
|
||||||
#include "ScriptMgr.h"
|
#include "ScriptMgr.h"
|
||||||
|
#include "Creature.h"
|
||||||
|
#include "GameObject.h"
|
||||||
#include "InstanceScript.h"
|
#include "InstanceScript.h"
|
||||||
#include "karazhan.h"
|
#include "karazhan.h"
|
||||||
#include "SpellScript.h"
|
#include "SpellScript.h"
|
||||||
#include "SpellAuraEffects.h"
|
#include "SpellAuraEffects.h"
|
||||||
|
#include "Map.h"
|
||||||
|
#include "Player.h"
|
||||||
|
|
||||||
const Position OptionalSpawn[] =
|
const Position OptionalSpawn[] =
|
||||||
{
|
{
|
||||||
@@ -122,7 +126,7 @@ public:
|
|||||||
HandleGameObject(m_uiStageDoorRightGUID, true);
|
HandleGameObject(m_uiStageDoorRightGUID, true);
|
||||||
if (GameObject* sideEntrance = instance->GetGameObject(m_uiSideEntranceDoor))
|
if (GameObject* sideEntrance = instance->GetGameObject(m_uiSideEntranceDoor))
|
||||||
sideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
sideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||||
|
instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, 16812, nullptr);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DATA_CHESS:
|
case DATA_CHESS:
|
||||||
@@ -136,6 +140,11 @@ public:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetData64(uint32 type, uint64 data) override
|
||||||
|
{
|
||||||
|
if (type == DATA_IMAGE_OF_MEDIVH)
|
||||||
|
ImageGUID = data;
|
||||||
|
}
|
||||||
|
|
||||||
void OnGameObjectCreate(GameObject* go) override
|
void OnGameObjectCreate(GameObject* go) override
|
||||||
{
|
{
|
||||||
@@ -193,8 +202,6 @@ public:
|
|||||||
case GO_DUST_COVERED_CHEST:
|
case GO_DUST_COVERED_CHEST:
|
||||||
DustCoveredChest = go->GetGUID();
|
DustCoveredChest = go->GetGUID();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (OperaEvent)
|
switch (OperaEvent)
|
||||||
@@ -253,8 +260,6 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64 GetData64(uint32 data) const override
|
uint64 GetData64(uint32 data) const override
|
||||||
|
|||||||
@@ -339,6 +339,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case GOSSIP_ACTION_INFO_DEF+2:
|
case GOSSIP_ACTION_INFO_DEF+2:
|
||||||
CloseGossipMenuFor(player);
|
CloseGossipMenuFor(player);
|
||||||
|
pBarnesAI->m_uiEventId = urand(EVENT_OZ, EVENT_RAJ);
|
||||||
pBarnesAI->StartEvent();
|
pBarnesAI->StartEvent();
|
||||||
break;
|
break;
|
||||||
case GOSSIP_ACTION_INFO_DEF+3:
|
case GOSSIP_ACTION_INFO_DEF+3:
|
||||||
|
|||||||
Reference in New Issue
Block a user