From 8b8aaa06fc0946a88a9ad9423b9db0a55a1dee1d Mon Sep 17 00:00:00 2001 From: joschiwald Date: Tue, 8 Apr 2014 22:52:05 +0200 Subject: Core/ChatLog: handle chatlog options with extended logging system --- src/server/scripts/World/chat_log.cpp | 225 ++++++++++++++++------------------ 1 file changed, 107 insertions(+), 118 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/World/chat_log.cpp b/src/server/scripts/World/chat_log.cpp index ef854246d20..7074de3ed48 100644 --- a/src/server/scripts/World/chat_log.cpp +++ b/src/server/scripts/World/chat_log.cpp @@ -22,144 +22,133 @@ class ChatLogScript : public PlayerScript { -public: - ChatLogScript() : PlayerScript("ChatLogScript") { } + public: + ChatLogScript() : PlayerScript("ChatLogScript") { } - void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg) - { - switch (type) + void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg) OVERRIDE { - case CHAT_MSG_ADDON: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) - TC_LOG_DEBUG("chat.log", "[ADDON] Player %s sends: %s", - player->GetName().c_str(), msg.c_str()); - break; - - case CHAT_MSG_SAY: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_PUBLIC)) - TC_LOG_DEBUG("chat.log", "[SAY] Player %s says (language %u): %s", + switch (type) + { + case CHAT_MSG_SAY: + TC_LOG_DEBUG("chat.log.say", "Player %s says (language %u): %s", player->GetName().c_str(), lang, msg.c_str()); - break; + break; - case CHAT_MSG_EMOTE: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_PUBLIC)) - TC_LOG_DEBUG("chat.log", "[TEXTEMOTE] Player %s emotes: %s", + case CHAT_MSG_EMOTE: + TC_LOG_DEBUG("chat.log.emote", "Player %s emotes: %s", player->GetName().c_str(), msg.c_str()); - break; + break; - case CHAT_MSG_YELL: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_PUBLIC)) - TC_LOG_DEBUG("chat.log", "[YELL] Player %s yells (language %u): %s", + case CHAT_MSG_YELL: + TC_LOG_DEBUG("chat.log.yell", "Player %s yells (language %u): %s", player->GetName().c_str(), lang, msg.c_str()); - break; + break; + } + } + + void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Player* receiver) OVERRIDE + { + if (lang != LANG_ADDON) + TC_LOG_DEBUG("chat.log.whisper", "Player %s tells %s: %s", + player->GetName().c_str(), receiver ? receiver->GetName().c_str() : "", msg.c_str()); + else + TC_LOG_DEBUG("chat.log.addon.whisper", "Player %s tells %s: %s", + player->GetName().c_str(), receiver ? receiver->GetName().c_str() : "", msg.c_str()); } - } - - void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Player* receiver) - { - if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_WHISPER)) - TC_LOG_DEBUG("chat.log", "[WHISPER] Player %s tells %s: %s", - player->GetName().c_str(), receiver ? receiver->GetName().c_str() : "", msg.c_str()); - else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) - TC_LOG_DEBUG("chat.log", "[ADDON] Player %s tells %s: %s", - player->GetName().c_str(), receiver ? receiver->GetName().c_str() : "", msg.c_str()); - } - - void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Group* group) - { - //! NOTE: - //! LANG_ADDON can only be sent by client in "PARTY", "RAID", "GUILD", "BATTLEGROUND", "WHISPER" - switch (type) + + void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Group* group) OVERRIDE { - case CHAT_MSG_PARTY: - if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_PARTY)) - TC_LOG_DEBUG("chat.log", "[PARTY] Player %s tells group with leader %s: %s", - player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); - else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) - TC_LOG_DEBUG("chat.log", "[ADDON] Player %s tells group with leader %s: %s", - player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); - break; - - case CHAT_MSG_PARTY_LEADER: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_PARTY)) - TC_LOG_DEBUG("chat.log", "[PARTY] Leader %s tells group: %s", + //! NOTE: + //! LANG_ADDON can only be sent by client in "PARTY", "RAID", "GUILD", "BATTLEGROUND", "WHISPER" + switch (type) + { + case CHAT_MSG_PARTY: + if (lang != LANG_ADDON) + TC_LOG_DEBUG("chat.log.party", "Player %s tells group with leader %s: %s", + player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); + else + TC_LOG_DEBUG("chat.log.addon.party", "Player %s tells group with leader %s: %s", + player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); + break; + + case CHAT_MSG_PARTY_LEADER: + TC_LOG_DEBUG("chat.log.party", "Leader %s tells group: %s", player->GetName().c_str(), msg.c_str()); - break; - - case CHAT_MSG_RAID: - if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_RAID)) - TC_LOG_DEBUG("chat.log", "[RAID] Player %s tells raid with leader %s: %s", - player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); - else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) - TC_LOG_DEBUG("chat.log", "[ADDON] Player %s tells raid with leader %s: %s", - player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); - break; - - case CHAT_MSG_RAID_LEADER: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_RAID)) - TC_LOG_DEBUG("chat.log", "[RAID] Leader player %s tells raid: %s", + break; + + case CHAT_MSG_RAID: + if (lang != LANG_ADDON) + TC_LOG_DEBUG("chat.log.raid", "Player %s tells raid with leader %s: %s", + player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); + else + TC_LOG_DEBUG("chat.log.addon.raid", "Player %s tells raid with leader %s: %s", + player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); + break; + + case CHAT_MSG_RAID_LEADER: + TC_LOG_DEBUG("chat.log.raid", "Leader player %s tells raid: %s", player->GetName().c_str(), msg.c_str()); - break; + break; - case CHAT_MSG_RAID_WARNING: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_RAID)) - TC_LOG_DEBUG("chat.log", "[RAID] Leader player %s warns raid with: %s", + case CHAT_MSG_RAID_WARNING: + TC_LOG_DEBUG("chat.log.raid", "Leader player %s warns raid with: %s", player->GetName().c_str(), msg.c_str()); - break; - - case CHAT_MSG_BATTLEGROUND: - if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_BGROUND)) - TC_LOG_DEBUG("chat.log", "[BATTLEGROUND] Player %s tells battleground with leader %s: %s", - player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); - else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) - TC_LOG_DEBUG("chat.log", "[ADDON] Player %s tells battleground with leader %s: %s", - player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); - break; - - case CHAT_MSG_BATTLEGROUND_LEADER: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_BGROUND)) - TC_LOG_DEBUG("chat.log", "[BATTLEGROUND] Leader player %s tells battleground: %s", + break; + + case CHAT_MSG_BATTLEGROUND: + if (lang != LANG_ADDON) + TC_LOG_DEBUG("chat.log.bg", "Player %s tells battleground with leader %s: %s", + player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); + else + TC_LOG_DEBUG("chat.log.addon.bg", "Player %s tells battleground with leader %s: %s", + player->GetName().c_str(), group ? group->GetLeaderName() : "", msg.c_str()); + break; + + case CHAT_MSG_BATTLEGROUND_LEADER: + TC_LOG_DEBUG("chat.log.bg", "Leader player %s tells battleground: %s", player->GetName().c_str(), msg.c_str()); - break; + break; + } } - } - void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Guild* guild) - { - switch (type) + void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Guild* guild) OVERRIDE { - case CHAT_MSG_GUILD: - if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_GUILD)) - TC_LOG_DEBUG("chat.log", "[GUILD] Player %s tells guild %s: %s", - player->GetName().c_str(), guild ? guild->GetName().c_str() : "", msg.c_str()); - else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) - TC_LOG_DEBUG("chat.log", "[ADDON] Player %s sends to guild %s: %s", + switch (type) + { + case CHAT_MSG_GUILD: + if (lang != LANG_ADDON) + TC_LOG_DEBUG("chat.log.guild", "Player %s tells guild %s: %s", + player->GetName().c_str(), guild ? guild->GetName().c_str() : "", msg.c_str()); + else + TC_LOG_DEBUG("chat.log.addon.guild", "Player %s sends to guild %s: %s", + player->GetName().c_str(), guild ? guild->GetName().c_str() : "", msg.c_str()); + break; + + case CHAT_MSG_OFFICER: + TC_LOG_DEBUG("chat.log.guild.officer", "Player %s tells guild %s officers: %s", player->GetName().c_str(), guild ? guild->GetName().c_str() : "", msg.c_str()); - break; + break; + } + } - case CHAT_MSG_OFFICER: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_GUILD)) - TC_LOG_DEBUG("chat.log", "[OFFICER] Player %s tells guild %s officers: %s", - player->GetName().c_str(), guild ? guild->GetName().c_str() : "", msg.c_str()); - break; + void OnChat(Player* player, uint32 /*type*/, uint32 /*lang*/, std::string& msg, Channel* channel) OVERRIDE + { + bool isSystem = channel && + (channel->HasFlag(CHANNEL_FLAG_TRADE) || + channel->HasFlag(CHANNEL_FLAG_GENERAL) || + channel->HasFlag(CHANNEL_FLAG_CITY) || + channel->HasFlag(CHANNEL_FLAG_LFG)); + + if (isSystem) + TC_LOG_DEBUG("chat.log.system", "Player %s tells channel %s: %s", + player->GetName().c_str(), channel->GetName().c_str(), msg.c_str()); + else + { + std::string channelName = channel ? channel->GetName() : ""; + TC_LOG_DEBUG("chat.log.channel." + channelName, "Player %s tells channel %s: %s", + player->GetName().c_str(), channelName.c_str(), msg.c_str()); + } } - } - - void OnChat(Player* player, uint32 /*type*/, uint32 /*lang*/, std::string& msg, Channel* channel) - { - bool isSystem = channel && - (channel->HasFlag(CHANNEL_FLAG_TRADE) || - channel->HasFlag(CHANNEL_FLAG_GENERAL) || - channel->HasFlag(CHANNEL_FLAG_CITY) || - channel->HasFlag(CHANNEL_FLAG_LFG)); - - if (sWorld->getBoolConfig(CONFIG_CHATLOG_SYSCHAN) && isSystem) - TC_LOG_DEBUG("chat.log", "[SYSCHAN] Player %s tells channel %s: %s", - player->GetName().c_str(), channel->GetName().c_str(), msg.c_str()); - else if (sWorld->getBoolConfig(CONFIG_CHATLOG_CHANNEL)) - TC_LOG_DEBUG("chat.log", "[CHANNEL] Player %s tells channel %s: %s", - player->GetName().c_str(), channel ? channel->GetName().c_str() : "", msg.c_str()); - } }; void AddSC_chat_log() -- cgit v1.2.3 From d123780b2b04329839f8915afb3bdb7363f5edb7 Mon Sep 17 00:00:00 2001 From: trickerer Date: Mon, 7 Apr 2014 12:54:00 +0700 Subject: Fix Sweeping Strikes damage --- src/server/scripts/Spells/spell_warrior.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index d0ba39e8b09..e48f16d6558 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -28,6 +28,7 @@ enum WarriorSpells { + SPELL_WARRIOR_BLADESTORM_PERIODIC_WHIRLWIND = 50622, SPELL_WARRIOR_BLOODTHIRST = 23885, SPELL_WARRIOR_BLOODTHIRST_DAMAGE = 23881, SPELL_WARRIOR_CHARGE = 34846, @@ -45,7 +46,8 @@ enum WarriorSpells SPELL_WARRIOR_RETALIATION_DAMAGE = 22858, SPELL_WARRIOR_SLAM = 50783, SPELL_WARRIOR_SUNDER_ARMOR = 58567, - SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK = 26654, + SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1 = 12723, + SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2 = 26654, SPELL_WARRIOR_TAUNT = 355, SPELL_WARRIOR_UNRELENTING_ASSAULT_RANK_1 = 46859, SPELL_WARRIOR_UNRELENTING_ASSAULT_RANK_2 = 46860, @@ -686,7 +688,7 @@ class spell_warr_sweeping_strikes : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK)) + if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2)) return false; return true; } @@ -703,10 +705,23 @@ class spell_warr_sweeping_strikes : public SpellScriptLoader return _procTarget; } - void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) + void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) { PreventDefaultAction(); - GetTarget()->CastSpell(_procTarget, SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK, true, NULL, aurEff); + if (eventInfo.GetDamageInfo()) + { + SpellInfo const* spellInfo = eventInfo.GetDamageInfo()->GetSpellInfo(); + if (spellInfo && (spellInfo->Id == SPELL_WARRIOR_BLADESTORM_PERIODIC_WHIRLWIND || (spellInfo->Id == SPELL_WARRIOR_EXECUTE && !_procTarget->HasAuraState(AURA_STATE_HEALTHLESS_20_PERCENT)))) + { + // If triggered by Execute (while target is not under 20% hp) or Bladestorm deals normalized weapon damage + GetTarget()->CastSpell(_procTarget, SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2, true, NULL, aurEff); + } + else + { + int32 damage = eventInfo.GetDamageInfo()->GetDamage(); + GetTarget()->CastCustomSpell(SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1, SPELLVALUE_BASE_POINT0, damage, _procTarget, true, NULL, aurEff); + } + } } void Register() OVERRIDE -- cgit v1.2.3 From b36e7c0211aa263835732e37cec0ac14906557b2 Mon Sep 17 00:00:00 2001 From: Warpten Date: Wed, 9 Apr 2014 17:55:54 +0200 Subject: Scripts/Ruby Sanctum: Fixed Onyx Flamecallers not aggroing players once pathing ended. --- .../ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp index d0b0db2e1ab..8ac095971bc 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp @@ -229,14 +229,14 @@ class npc_onyx_flamecaller : public CreatureScript void IsSummonedBy(Unit* /*summoner*/) OVERRIDE { - // Let Zarithrian count as summoner. _instance cant be null since we got GetRubySanctumAI + // Let Zarithrian count as summoner. if (Creature* zarithrian = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_GENERAL_ZARITHRIAN))) zarithrian->AI()->JustSummoned(me); } void WaypointReached(uint32 waypointId) OVERRIDE { - if (waypointId == MAX_PATH_FLAMECALLER_WAYPOINTS || waypointId == MAX_PATH_FLAMECALLER_WAYPOINTS*2) + if (waypointId == MAX_PATH_FLAMECALLER_WAYPOINTS - 1 || waypointId == MAX_PATH_FLAMECALLER_WAYPOINTS * 2 - 1) { DoZoneInCombat(); SetEscortPaused(true); -- cgit v1.2.3