diff options
21 files changed, 105 insertions, 111 deletions
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index 35024fc4152..b97ea196a0a 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -119,6 +119,8 @@ class RBACObject RBACObject(uint32 id = 0, std::string const& name = ""):
_id(id), _name(name) { }
+ virtual ~RBACObject() { }
+
/// Gets the Name of the Object
std::string const& GetName() const { return _name; }
/// Gets the Id of the Object
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 306ccc08492..33003de4e6d 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -6977,6 +6977,7 @@ void ObjectMgr::LoadPointsOfInterest() uint32 point_id = fields[0].GetUInt32(); PointOfInterest POI; + POI.entry = point_id; POI.x = fields[1].GetFloat(); POI.y = fields[2].GetFloat(); POI.icon = fields[3].GetUInt32(); diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index ff4387a3a70..27ef4960f79 100644 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -729,33 +729,28 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player* player, WorldPacke if (mask & GROUP_UPDATE_FLAG_STATUS) { - if (player) - { - uint16 playerStatus = MEMBER_STATUS_ONLINE; - if (player->IsPvP()) - playerStatus |= MEMBER_STATUS_PVP; + uint16 playerStatus = MEMBER_STATUS_ONLINE; + if (player->IsPvP()) + playerStatus |= MEMBER_STATUS_PVP; - if (!player->IsAlive()) - { - if (player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST)) - playerStatus |= MEMBER_STATUS_GHOST; - else - playerStatus |= MEMBER_STATUS_DEAD; - } + if (!player->IsAlive()) + { + if (player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST)) + playerStatus |= MEMBER_STATUS_GHOST; + else + playerStatus |= MEMBER_STATUS_DEAD; + } - if (player->HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP)) - playerStatus |= MEMBER_STATUS_PVP_FFA; + if (player->HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP)) + playerStatus |= MEMBER_STATUS_PVP_FFA; - if (player->isAFK()) - playerStatus |= MEMBER_STATUS_AFK; + if (player->isAFK()) + playerStatus |= MEMBER_STATUS_AFK; - if (player->isDND()) - playerStatus |= MEMBER_STATUS_DND; + if (player->isDND()) + playerStatus |= MEMBER_STATUS_DND; - *data << uint16(playerStatus); - } - else - *data << uint16(MEMBER_STATUS_OFFLINE); + *data << uint16(playerStatus); } if (mask & GROUP_UPDATE_FLAG_CUR_HP) diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.cpp b/src/server/game/OutdoorPvP/OutdoorPvP.cpp index 30308c12630..73b5399fa89 100644 --- a/src/server/game/OutdoorPvP/OutdoorPvP.cpp +++ b/src/server/game/OutdoorPvP/OutdoorPvP.cpp @@ -453,18 +453,14 @@ void OutdoorPvP::HandleKill(Player* killer, Unit* killed) // creature kills must be notified, even if not inside objective / not outdoor pvp active // player kills only count if active and inside objective if ((groupGuy->IsOutdoorPvPActive() && IsInsideObjective(groupGuy)) || killed->GetTypeId() == TYPEID_UNIT) - { HandleKillImpl(groupGuy, killed); - } } } else { // creature kills must be notified, even if not inside objective / not outdoor pvp active - if (killer && ((killer->IsOutdoorPvPActive() && IsInsideObjective(killer)) || killed->GetTypeId() == TYPEID_UNIT)) - { + if ((killer->IsOutdoorPvPActive() && IsInsideObjective(killer)) || killed->GetTypeId() == TYPEID_UNIT) HandleKillImpl(killer, killed); - } } } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 24a9ab76377..13a6cffeb12 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3120,6 +3120,7 @@ void Spell::cancel() CancelGlobalCooldown(); if (m_caster->GetTypeId() == TYPEID_PLAYER) m_caster->ToPlayer()->RestoreSpellMods(this); + // no break case SPELL_STATE_DELAYED: SendInterrupted(0); SendCastResult(SPELL_FAILED_INTERRUPTED); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 38d31a89e86..e054c91ccc9 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -4214,6 +4214,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) m_caster->CastSpell(unitTarget, spellId2, true); return; } + break; } case SPELLFAMILY_DEATHKNIGHT: { @@ -4650,25 +4651,11 @@ void Spell::EffectSummonObject(SpellEffIndex effIndex) return; uint32 go_id = m_spellInfo->Effects[effIndex].MiscValue; + uint8 slot = m_spellInfo->Effects[effIndex].Effect - SPELL_EFFECT_SUMMON_OBJECT_SLOT1; - uint8 slot = 0; - switch (m_spellInfo->Effects[effIndex].Effect) - { - case SPELL_EFFECT_SUMMON_OBJECT_SLOT1: slot = 0; break; - case SPELL_EFFECT_SUMMON_OBJECT_SLOT2: slot = 1; break; - case SPELL_EFFECT_SUMMON_OBJECT_SLOT3: slot = 2; break; - case SPELL_EFFECT_SUMMON_OBJECT_SLOT4: slot = 3; break; - default: return; - } - - uint64 guid = m_caster->m_ObjectSlot[slot]; - if (guid != 0) + if (uint64 guid = m_caster->m_ObjectSlot[slot]) { - GameObject* obj = NULL; - if (m_caster) - obj = m_caster->GetMap()->GetGameObject(guid); - - if (obj) + if (GameObject* obj = m_caster->GetMap()->GetGameObject(guid)) { // Recast case - null spell id to make auras not be removed on object remove from world if (m_spellInfo->Id == obj->GetSpellId()) @@ -4678,7 +4665,7 @@ void Spell::EffectSummonObject(SpellEffIndex effIndex) m_caster->m_ObjectSlot[slot] = 0; } - GameObject* pGameObj = new GameObject; + GameObject* go = new GameObject(); float x, y, z; // If dest location if present @@ -4689,24 +4676,24 @@ void Spell::EffectSummonObject(SpellEffIndex effIndex) m_caster->GetClosePoint(x, y, z, DEFAULT_WORLD_OBJECT_SIZE); Map* map = m_caster->GetMap(); - if (!pGameObj->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), go_id, map, + if (!go->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), go_id, map, m_caster->GetPhaseMask(), x, y, z, m_caster->GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 0, GO_STATE_READY)) { - delete pGameObj; + delete go; return; } //pGameObj->SetUInt32Value(GAMEOBJECT_LEVEL, m_caster->getLevel()); int32 duration = m_spellInfo->GetDuration(); - pGameObj->SetRespawnTime(duration > 0 ? duration/IN_MILLISECONDS : 0); - pGameObj->SetSpellId(m_spellInfo->Id); - m_caster->AddGameObject(pGameObj); + go->SetRespawnTime(duration > 0 ? duration/IN_MILLISECONDS : 0); + go->SetSpellId(m_spellInfo->Id); + m_caster->AddGameObject(go); - ExecuteLogEffectSummonObject(effIndex, pGameObj); + ExecuteLogEffectSummonObject(effIndex, go); - map->AddToMap(pGameObj); + map->AddToMap(go); - m_caster->m_ObjectSlot[slot] = pGameObj->GetGUID(); + m_caster->m_ObjectSlot[slot] = go->GetGUID(); } void Spell::EffectResurrect(SpellEffIndex effIndex) diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp index c6cfa3218ec..38c12e75e7e 100644 --- a/src/server/scripts/Commands/cs_wp.cpp +++ b/src/server/scripts/Commands/cs_wp.cpp @@ -796,7 +796,7 @@ public: if (show == "info") { // Check if the user did specify a visual waypoint - if (target && target->GetEntry() != VISUAL_WAYPOINT) + if (!target || target->GetEntry() != VISUAL_WAYPOINT) { handler->PSendSysMessage(LANG_WAYPOINT_VP_SELECT); handler->SetSentErrorMessage(true); diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp index b334c5c44b6..f07e426c808 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp @@ -553,7 +553,8 @@ public: loadStream >> tmpState; if (tmpState == IN_PROGRESS || tmpState > SPECIAL) tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); + + SetBossState(i, EncounterState(tmpState)); } } else diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index b994821cce9..855ed46e5cf 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -710,12 +710,14 @@ public: { SpeechTimer = 0; if (instance) + { if (Creature* speechCreature = Unit::GetCreature(*me, instance->GetData64(Speeches[speechCount].creature))) speechCreature->AI()->Talk(Speeches[speechCount].textid); - if (speechCount == 12) - if (Creature* pAnveena = Unit::GetCreature(*me, instance->GetData64(DATA_ANVEENA))) - pAnveena->CastSpell(me, SPELL_SACRIFICE_OF_ANVEENA, false); - // ChangeTimers(true, 10000); // Kil should do an emote while screaming without attacking for 10 seconds + if (speechCount == 12) + if (Creature* pAnveena = Unit::GetCreature(*me, instance->GetData64(DATA_ANVEENA))) + pAnveena->CastSpell(me, SPELL_SACRIFICE_OF_ANVEENA, false); + // ChangeTimers(true, 10000); // Kil should do an emote while screaming without attacking for 10 seconds + } if (speechCount == speechPhaseEnd) TimerIsDeactivated[TIMER_SPEECH]=true; speechCount++; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index 7dbed4ec9a2..bbc8d523cb8 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -272,8 +272,7 @@ class npc_harrison_jones : public CreatureScript { public: - npc_harrison_jones() - : CreatureScript("npc_harrison_jones") + npc_harrison_jones() : CreatureScript("npc_harrison_jones") { } @@ -412,9 +411,11 @@ class npc_harrison_jones : public CreatureScript ptarget->AI()->SetData(0, 1); } else + { ptarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); ptarget->SetReactState(REACT_PASSIVE); ptarget->AI()->SetData(0, 2); + } } } } diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp index ccbb4846270..eed8ab22eb1 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp @@ -274,7 +274,8 @@ public: loadStream >> tmpState; if (tmpState == IN_PROGRESS || tmpState > SPECIAL) tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); + + SetBossState(i, EncounterState(tmpState)); } } else diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp index f20266dfb55..154f8b0f80f 100644 --- a/src/server/scripts/Kalimdor/zone_silithus.cpp +++ b/src/server/scripts/Kalimdor/zone_silithus.cpp @@ -530,10 +530,10 @@ public: if (!player) return; - Creature* Fandral = player->FindNearestCreature(C_FANDRAL_STAGHELM, 100.0f, me); - Creature* Arygos = player->FindNearestCreature(C_ARYGOS, 100.0f, me); - Creature* Caelestrasz = player->FindNearestCreature(C_CAELESTRASZ, 100.0f, me); - Creature* Merithra = player->FindNearestCreature(C_MERITHRA, 100.0f, me); + Creature* Fandral = player->FindNearestCreature(C_FANDRAL_STAGHELM, 100.0f); + Creature* Arygos = player->FindNearestCreature(C_ARYGOS, 100.0f); + Creature* Caelestrasz = player->FindNearestCreature(C_CAELESTRASZ, 100.0f); + Creature* Merithra = player->FindNearestCreature(C_MERITHRA, 100.0f); if (!Fandral || !Arygos || !Caelestrasz || !Merithra) return; diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h index 4787a6b9fdc..c5fe115978f 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h @@ -138,7 +138,7 @@ struct boss_horAI : ScriptedAI me->SetVisible(false); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC); me->SetReactState(REACT_PASSIVE); - if (instance->GetData(DATA_WAVE_COUNT) != NOT_STARTED) + if (instance && instance->GetData(DATA_WAVE_COUNT) != NOT_STARTED) instance->ProcessEvent(0, EVENT_DO_WIPE); } diff --git a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp index 9af4de8135d..681ffff46b3 100644 --- a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp +++ b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp @@ -242,6 +242,7 @@ public: eckTheFerociousDoorBehindGUID = go->GetGUID(); if (isHeroic && m_auiEncounter[4] == DONE) HandleGameObject(0, true, go); + break; case GO_GALDARAH_DOOR1: galDarahDoor1GUID = go->GetGUID(); if (m_auiEncounter[3] == DONE) diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp index 4101fb7af33..d1f0105daf1 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp @@ -137,28 +137,36 @@ public: case NPC_BELGARISTRASZ: belgaristraszGUID = creature->GetGUID(); if (GetBossState(DATA_DRAKOS_EVENT) == DONE) + { creature->SetWalk(true), creature->GetMotionMaster()->MovePoint(0, 941.453f, 1044.1f, 359.967f), creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + } break; case NPC_ETERNOS: eternosGUID = creature->GetGUID(); if (GetBossState(DATA_DRAKOS_EVENT) == DONE) + { creature->SetWalk(true), creature->GetMotionMaster()->MovePoint(0, 943.202f, 1059.35f, 359.967f), creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + } break; case NPC_VERDISA: verdisaGUID = creature->GetGUID(); if (GetBossState(DATA_DRAKOS_EVENT) == DONE) + { creature->SetWalk(true), creature->GetMotionMaster()->MovePoint(0, 949.188f, 1032.91f, 359.967f), creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + } break; case NPC_GREATER_WHELP: if (GetBossState(DATA_UROM_EVENT) == DONE) + { creature->SetPhaseMask(1, true); gwhelpList.push_back(creature->GetGUID()); + } break; } } @@ -209,9 +217,13 @@ public: break; case DATA_UROM_EVENT: if (state == DONE) + { if (Creature* eregos = instance->GetCreature(eregosGUID)) + { eregos->SetPhaseMask(1, true); GreaterWhelps(); + } + } break; case DATA_EREGOS_EVENT: if (state == DONE) @@ -288,10 +300,8 @@ public: return; for (std::list<uint64>::const_iterator itr = gwhelpList.begin(); itr != gwhelpList.end(); ++itr) - { if (Creature* gwhelp = instance->GetCreature(*itr)) gwhelp->SetPhaseMask(1, true); - } } std::string GetSaveData() diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 29a07bac01c..dec27808321 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -1154,7 +1154,7 @@ class npc_lorekeeper : public CreatureScript bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE { - player->PlayerTalkClass->ClearMenus(); + player->CLOSE_GOSSIP_MENU(); InstanceScript* instance = creature->GetInstanceScript(); if (!instance) return true; @@ -1162,19 +1162,13 @@ class npc_lorekeeper : public CreatureScript switch (action) { case GOSSIP_ACTION_INFO_DEF+1: - if (player) - { - player->PrepareGossipMenu(creature); - instance->instance->LoadGrid(364, -16); //make sure leviathan is loaded + player->PrepareGossipMenu(creature); + instance->instance->LoadGrid(364, -16); //make sure leviathan is loaded - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - } + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); + player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+2: - if (player) - player->CLOSE_GOSSIP_MENU(); - if (Creature* leviathan = instance->instance->GetCreature(instance->GetData64(BOSS_LEVIATHAN))) { leviathan->AI()->DoAction(ACTION_START_HARD_MODE); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index fc5a54ffcfb..13608285b08 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -503,6 +503,7 @@ class instance_ulduar : public InstanceMapScript case GO_MOLE_MACHINE: if (GetBossState(BOSS_RAZORSCALE) == IN_PROGRESS) gameObject->SetGoState(GO_STATE_ACTIVE); + break; case GO_HODIR_DOOR: HodirDoorGUID = gameObject->GetGUID(); break; diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index 0cec919737a..8a8126b0e78 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -667,14 +667,14 @@ public: void JustSummoned(Creature* summoned) OVERRIDE { listOfMobs.Summon(summoned); - if (summoned) + if (instance) instance->SetData64(DATA_ADD_TRASH_MOB, summoned->GetGUID()); } - void SummonedMobDied(Creature* summoned) + void SummonedCreatureDies(Creature* summoned, Unit* killer) OVERRIDE { listOfMobs.Despawn(summoned); - if (summoned) + if (instance) instance->SetData64(DATA_DEL_TRASH_MOB, summoned->GetGUID()); } }; @@ -737,7 +737,7 @@ struct violet_hold_trashAI : public npc_escortAI if (!bHasGotMovingPoints) { bHasGotMovingPoints = true; - switch (portalLocationID) + switch (portalLocationID) { case 0: for (int i=0;i<6;i++) @@ -763,7 +763,7 @@ struct violet_hold_trashAI : public npc_escortAI case 2: for (int i=0;i<8;i++) AddWaypoint(i, ThirdPortalWPs[i][0]+irand(-1, 1), ThirdPortalWPs[i][1]+irand(-1, 1), ThirdPortalWPs[i][2], 0); - me->SetHomePosition(ThirdPortalWPs[7][0], ThirdPortalWPs[7][1], ThirdPortalWPs[7][2], 3.149439f); + me->SetHomePosition(ThirdPortalWPs[7][0], ThirdPortalWPs[7][1], ThirdPortalWPs[7][2], 3.149439f); break; case 3: for (int i=0;i<9;i++) @@ -1080,26 +1080,18 @@ class npc_azure_stalker : public CreatureScript public: npc_azure_stalker() : CreatureScript("npc_azure_stalker") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_azure_stalkerAI(creature); - } - struct npc_azure_stalkerAI : public violet_hold_trashAI { npc_azure_stalkerAI(Creature* creature) : violet_hold_trashAI(creature) { instance = creature->GetInstanceScript(); } - uint32 uiBackstabTimer; - uint32 uiTacticalBlinkTimer; - bool TacticalBlinkCasted; void Reset() OVERRIDE { - uiBackstabTimer = 1300; - uiTacticalBlinkTimer = 8000; - TacticalBlinkCasted =false; + _backstabTimer = 1300; + _tacticalBlinkTimer = 8000; + _tacticalBlinkCast =false; } void UpdateAI(uint32 diff) OVERRIDE @@ -1110,33 +1102,42 @@ public: if (!UpdateVictim()) return; - if (!TacticalBlinkCasted) + if (!_tacticalBlinkCast) { - if (uiTacticalBlinkTimer <= diff) + if (_tacticalBlinkTimer <= diff) { Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40, true); if (target) DoCast(target, SPELL_TACTICAL_BLINK); - uiTacticalBlinkTimer = 6000; - TacticalBlinkCasted = true; - } else uiTacticalBlinkTimer -= diff; + _tacticalBlinkTimer = 6000; + _tacticalBlinkCast = true; + } else _tacticalBlinkTimer -= diff; } else { - if (uiBackstabTimer <= diff) + if (_backstabTimer <= diff) { Unit* target = SelectTarget(SELECT_TARGET_NEAREST, 0, 10, true); DoCast(target, SPELL_BACKSTAB); - TacticalBlinkCasted = false; - uiBackstabTimer =1300; - } else uiBackstabTimer -= diff; + _tacticalBlinkCast = false; + _backstabTimer =1300; + } else _backstabTimer -= diff; } DoMeleeAttackIfReady(); } + + private: + uint32 _backstabTimer; + uint32 _tacticalBlinkTimer; + bool _tacticalBlinkCast; }; + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new npc_azure_stalkerAI(creature); + } }; class npc_azure_spellbreaker : public CreatureScript diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp index 12458243286..98f6f194c0f 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp @@ -106,7 +106,8 @@ class instance_ramparts : public InstanceMapScript loadStream >> tmpState; if (tmpState == IN_PROGRESS || tmpState > SPECIAL) tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); + + SetBossState(i, EncounterState(tmpState)); } } else diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp index 362b8e729ef..1919e74e4ee 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp @@ -148,7 +148,7 @@ class instance_shattered_halls : public InstanceMapScript loadStream >> tmpState; if (tmpState == IN_PROGRESS || tmpState > SPECIAL) tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); + SetBossState(i, EncounterState(tmpState)); } } else diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index 87533fbe47d..ce44cb57eef 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -1085,11 +1085,11 @@ public: { player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_USE_OUTHOUSE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); player->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_VACANT, go->GetGUID()); - return true; } else player->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_INUSE, go->GetGUID()); - return true; + + return true; } bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action) OVERRIDE @@ -1180,8 +1180,7 @@ class go_gjalerbron_cage : public GameObjectScript { if (Creature* prisoner = go->FindNearestCreature(NPC_GJALERBRON_PRISONER, 5.0f)) { - if (player) - player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER, 0); + player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER, 0); prisoner->AI()->Talk(SAY_FREE); prisoner->DespawnOrUnsummon(6000); |