From a882c4538a59d4aa042ca78a234f640b35cefcd2 Mon Sep 17 00:00:00 2001 From: Aokromes Date: Tue, 12 May 2009 08:22:06 +0200 Subject: [PATCH 1/2] New configuration option: GM.Visible regulates visibility of GM at login. --HG-- branch : trunk --- src/game/Player.cpp | 11 +++++++++++ src/game/World.cpp | 1 + src/game/World.h | 1 + src/trinitycore/trinitycore.conf.dist | 7 +++++++ 4 files changed, 20 insertions(+) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 4ebd4f0368..fcdeb30a42 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -14338,6 +14338,17 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) break; } + switch(sWorld.getConfig(CONFIG_GM_VISIBLE_STATE)) + { + default: + case 0: SetGMVisible(false); break; // invisible + case 1: break; // visible + case 2: // save state + if(extraflags & PLAYER_EXTRA_GM_INVISIBLE) + SetGMVisible(false); + break; + } + switch(sWorld.getConfig(CONFIG_GM_CHAT)) { default: diff --git a/src/game/World.cpp b/src/game/World.cpp index a58103ef43..7517fb0b96 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -762,6 +762,7 @@ void World::LoadConfigSettings(bool reload) } m_configs[CONFIG_GM_LOGIN_STATE] = sConfig.GetIntDefault("GM.LoginState",2); + m_configs[CONFIG_GM_VISIBLE_STATE] = sConfig.GetIntDefault("GM.Visible", 2); m_configs[CONFIG_GM_CHAT] = sConfig.GetIntDefault("GM.Chat",2); m_configs[CONFIG_GM_WISPERING_TO] = sConfig.GetIntDefault("GM.WhisperingTo",2); m_configs[CONFIG_GM_IN_GM_LIST] = sConfig.GetBoolDefault("GM.InGMList",false); diff --git a/src/game/World.h b/src/game/World.h index 27052cf796..01586b592e 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -123,6 +123,7 @@ enum WorldConfigs CONFIG_MAX_PRIMARY_TRADE_SKILL, CONFIG_MIN_PETITION_SIGNS, CONFIG_GM_LOGIN_STATE, + CONFIG_GM_VISIBLE_STATE, CONFIG_GM_CHAT, CONFIG_GM_WISPERING_TO, CONFIG_GM_IN_GM_LIST, diff --git a/src/trinitycore/trinitycore.conf.dist b/src/trinitycore/trinitycore.conf.dist index 86f2d994f2..ffb5f311bb 100644 --- a/src/trinitycore/trinitycore.conf.dist +++ b/src/trinitycore/trinitycore.conf.dist @@ -847,6 +847,12 @@ Channel.SilentlyGMJoin = 0 # 0 (disable) # 1 (enable) # +# GM.Visible +# GM visibility at login +# Default: 2 (last save state) +# 0 (invisible) +# 1 (visible) +# # GM.Chat # GM chat mode at login # Default: 2 (last save state) @@ -881,6 +887,7 @@ Channel.SilentlyGMJoin = 0 ################################################################################################################### GM.LoginState = 2 +GM.Visible = 2 GM.Chat = 2 GM.WhisperingTo = 2 GM.InGMList = 0 From 11e66c1cf00b9c8963a91b06462423cb21e9cdb1 Mon Sep 17 00:00:00 2001 From: QAston Date: Wed, 13 May 2009 00:18:20 +0200 Subject: [PATCH 2/2] *Fix the bug that some spells cannot proc. --HG-- branch : trunk --- src/game/SpellAuras.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 96c73cf873..a775ccdd3f 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -5442,7 +5442,7 @@ void Aura::PeriodicTick() // Set trigger flag uint32 procAttacker = PROC_FLAG_ON_DO_PERIODIC; uint32 procVictim = PROC_FLAG_ON_TAKE_PERIODIC; - uint32 procEx = PROC_EX_INTERNAL_DOT; + uint32 procEx = PROC_EX_INTERNAL_DOT | PROC_EX_NORMAL_HIT; pdamage = (pdamage <= absorb+resist) ? 0 : (pdamage-absorb-resist); if (pdamage) procVictim|=PROC_FLAG_TAKEN_ANY_DAMAGE; @@ -5563,7 +5563,7 @@ void Aura::PeriodicTick() // Set trigger flag uint32 procAttacker = PROC_FLAG_ON_DO_PERIODIC; uint32 procVictim = PROC_FLAG_ON_TAKE_PERIODIC; - uint32 procEx = PROC_EX_INTERNAL_DOT; + uint32 procEx = PROC_EX_INTERNAL_DOT | PROC_EX_NORMAL_HIT; pdamage = (pdamage <= absorb+resist) ? 0 : (pdamage-absorb-resist); if (pdamage) procVictim|=PROC_FLAG_TAKEN_ANY_DAMAGE; @@ -5674,7 +5674,7 @@ void Aura::PeriodicTick() uint32 procAttacker = PROC_FLAG_ON_DO_PERIODIC; uint32 procVictim = PROC_FLAG_ON_TAKE_PERIODIC; - uint32 procEx = PROC_EX_INTERNAL_HOT; + uint32 procEx = PROC_EX_INTERNAL_HOT | PROC_EX_NORMAL_HIT; // ignore item heals if(procSpell && !haveCastItem) pCaster->ProcDamageAndSpell(target, procAttacker, procVictim, procEx, pdamage, BASE_ATTACK, spellProto);