diff options
author | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-09-16 21:09:19 +0200 |
---|---|---|
committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-09-16 21:09:19 +0200 |
commit | 7cbaa028cd3192725ed47226c08fb3e6f82f02d3 (patch) | |
tree | 79aea5cded1f950d48df2d24f4ec82cab59f5e7c /src | |
parent | 037ce92c172342fd54f4eb3808cdb8813d9bdce0 (diff) | |
parent | 6810a4469ebe6600be2f8649e917110a17ce27f3 (diff) |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Diffstat (limited to 'src')
12 files changed, 28 insertions, 20 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 49397e90df6..13b2a602d31 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -13949,11 +13949,18 @@ void Unit::SetControlled(bool apply, UnitState state) { case UNIT_STATE_STUNNED: SetStunned(true); + // i need to stop fear on stun and root or i will get teleport to destination issue as MVMGEN for fear keeps going on + if (HasUnitState(UNIT_STATE_FLEEING)) + SetFeared(false); CastStop(); break; case UNIT_STATE_ROOT: if (!HasUnitState(UNIT_STATE_STUNNED)) + { SetRooted(true); + if (HasUnitState(UNIT_STATE_FLEEING)) + SetFeared(false); + } break; case UNIT_STATE_CONFUSED: if (!HasUnitState(UNIT_STATE_STUNNED)) @@ -14014,16 +14021,17 @@ void Unit::SetControlled(bool apply, UnitState state) ClearUnitState(state); - if (HasUnitState(UNIT_STATE_STUNNED)) + // Unit States might have been already cleared but auras still present. I need to check with HasAuraType + if (HasAuraType(SPELL_AURA_MOD_STUN)) SetStunned(true); else { - if (HasUnitState(UNIT_STATE_ROOT)) + if (HasAuraType(SPELL_AURA_MOD_ROOT)) SetRooted(true); - if (HasUnitState(UNIT_STATE_CONFUSED)) + if (HasAuraType(SPELL_AURA_MOD_CONFUSE)) SetConfused(true); - else if (HasUnitState(UNIT_STATE_FLEEING)) + else if (HasAuraType(SPELL_AURA_MOD_FEAR)) SetFeared(true); } } diff --git a/src/server/game/Server/Protocol/PacketLog.cpp b/src/server/game/Server/Protocol/PacketLog.cpp index 9c0bdd5d558..8bd5bbf5a90 100644 --- a/src/server/game/Server/Protocol/PacketLog.cpp +++ b/src/server/game/Server/Protocol/PacketLog.cpp @@ -93,7 +93,8 @@ void PacketLog::Initialize() header.SniffStartTicks = getMSTime(); header.OptionalDataSize = 0; - fwrite(&header, sizeof(header), 1, _file); + if (CanLogPacket()) + fwrite(&header, sizeof(header), 1, _file); } } diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index c82ab30eaae..df80429f6de 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -769,8 +769,8 @@ public: handler->PSendSysMessage(npcFlagTexts[i].Name, npcFlagTexts[i].Value); handler->PSendSysMessage(LANG_NPCINFO_MECHANIC_IMMUNE, mechanicImmuneMask); - for (uint8 i = 0; i < MAX_MECHANIC; ++i) - if ((mechanicImmuneMask << 1) & mechanicImmunes[i].Value) + for (uint8 i = 1; i < MAX_MECHANIC; ++i) + if (mechanicImmuneMask & (1 << (mechanicImmunes[i].Value - 1))) handler->PSendSysMessage("%s (0x%X)", mechanicImmunes[i].Name, mechanicImmunes[i].Value); return true; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp index ec7aa742975..1d2ed933243 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp @@ -68,7 +68,7 @@ class boss_salramm : public CreatureScript events.ScheduleEvent(EVENT_CURSE_FLESH, 30000); events.ScheduleEvent(EVENT_SUMMON_GHOULS, urand(19000, 24000)); events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(8000, 12000)); - events.ScheduleEvent(EVENT_STEAL_FLESH, 12345); /// @todo: adjust timer + events.ScheduleEvent(EVENT_STEAL_FLESH, 12345); /// @todo: adjust timer } void ExecuteEvent(uint32 eventId) override diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp index 62c85491a20..0a6b2e88b26 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp @@ -153,7 +153,7 @@ public: SetCombatMovement(true); _Reset(); - + me->SetReactState(REACT_AGGRESSIVE); instance->SetData(DATA_ONYXIA_PHASE, Phase); instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); } @@ -162,12 +162,10 @@ public: { _EnterCombat(); Talk(SAY_AGGRO); - events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 20000)); events.ScheduleEvent(EVENT_TAIL_SWEEP, urand(15000, 20000)); events.ScheduleEvent(EVENT_CLEAVE, urand(2000, 5000)); events.ScheduleEvent(EVENT_WING_BUFFET, urand(10000, 20000)); - instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); } @@ -331,9 +329,10 @@ public: { if (HealthBelowPct(65)) { + if (Unit* target = me->GetVictim()) + tankGUID = target->GetGUID(); SetCombatMovement(false); Phase = PHASE_BREATH; - tankGUID = me->GetVictim()->GetGUID(); me->SetReactState(REACT_PASSIVE); me->AttackStop(); me->GetMotionMaster()->MovePoint(10, Phase2Location); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp index 949ee652d81..a8d3f223664 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp @@ -173,6 +173,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript break; case NPC_ANUBARAK: AnubarakGUID = creature->GetGUID(); + creature->SetRespawnDelay(7 * DAY); break; default: break; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp index 0be61cc2ec8..18b9a3040fe 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp @@ -397,8 +397,9 @@ class boss_xt002 : public CreatureScript Talk(SAY_HEART_CLOSED); Talk(EMOTE_HEART_CLOSED); - DoCast(me, SPELL_STAND); + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_AGGRESSIVE); + DoCast(me, SPELL_STAND); _phase = 1; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp index 6ace4eb61a1..a31aff259d1 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp @@ -150,7 +150,7 @@ class boss_svala : public CreatureScript void Reset() override { _Reset(); - + SetCombatMovement(true); if (_introCompleted) diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp index 82f101980fe..5baaebc0d7b 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp @@ -40,7 +40,6 @@ enum Says enum Spells { SPELL_MORTAL_WOUND = 30641, - H_SPELL_MORTAL_WOUND = 36814, SPELL_SURGE = 34645, SPELL_RETALIATION = 22857 }; @@ -78,7 +77,6 @@ class boss_watchkeeper_gargolmar : public CreatureScript } void MoveInLineOfSight(Unit* who) override - { if (!me->GetVictim() && me->CanCreatureAttack(who)) { diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 8373752ee1f..92eeef5e8a8 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -280,8 +280,8 @@ class spell_q11396_11399_force_shield_arcane_purple_x3 : public SpellScriptLoade void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); - target->AddUnitState(UNIT_STATE_ROOT); + target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); + target->AddUnitState(UNIT_STATE_ROOT); } void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) diff --git a/src/server/shared/Networking/Socket.h b/src/server/shared/Networking/Socket.h index d1f143aeb1e..dfff60a380b 100644 --- a/src/server/shared/Networking/Socket.h +++ b/src/server/shared/Networking/Socket.h @@ -148,7 +148,7 @@ protected: return true; _isWritingAsync = true; - + #ifdef BOOST_ASIO_HAS_IOCP MessageBuffer& buffer = _writeQueue.front(); _socket.async_write_some(boost::asio::buffer(buffer.GetReadPointer(), buffer.GetActiveSize()), std::bind(&Socket<T>::WriteHandler, diff --git a/src/server/shared/Networking/SocketMgr.h b/src/server/shared/Networking/SocketMgr.h index 47bd7794a4c..dbe2b8ec902 100644 --- a/src/server/shared/Networking/SocketMgr.h +++ b/src/server/shared/Networking/SocketMgr.h @@ -97,7 +97,7 @@ public: int32 GetNetworkThreadCount() const { return _threadCount; } protected: - SocketMgr() : _threads(nullptr), _threadCount(1) + SocketMgr() : _acceptor(nullptr), _threads(nullptr), _threadCount(1) { } |