Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Checking the damage the player. By Rescr1pt ;)
- src/server/game/World/World.h | 3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
- diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
- index 95e9fbd..c35b46d 100755
- --- a/src/server/game/World/World.h
- +++ b/src/server/game/World/World.h
- @@ -317,6 +317,9 @@ enum WorldIntConfigs
- CONFIG_WARDEN_CLIENT_BAN_DURATION,
- CONFIG_WARDEN_NUM_MEM_CHECKS,
- CONFIG_WARDEN_NUM_OTHER_CHECKS,
- + CONFIG_DAMAGE_CHECKER_MAX_DAMAGE,
- + CONFIG_DAMAGE_CHECKER_IMMUNE_MIN_GM_LEVEL,
- + CONFIG_DAMAGE_CHECKER_BAN_VALUE,
- INT_CONFIG_VALUE_COUNT
- };
- src/server/game/World/World.cpp | 5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
- diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
- index ccc8bb2..5b4e912 100755
- --- a/src/server/game/World/World.cpp
- +++ b/src/server/game/World/World.cpp
- @@ -1200,6 +1200,11 @@ void World::LoadConfigSettings(bool reload)
- m_bool_configs[CONFIG_PDUMP_NO_PATHS] = sConfigMgr->GetBoolDefault("PlayerDump.DisallowPaths", true);
- m_bool_configs[CONFIG_PDUMP_NO_OVERWRITE] = sConfigMgr->GetBoolDefault("PlayerDump.DisallowOverwrite", true);
- + // damage checker
- + m_int_configs[CONFIG_DAMAGE_CHECKER_MAX_DAMAGE] = sConfigMgr->GetIntDefault("DamageChecker.MaxDamage", 50000);
- + m_int_configs[CONFIG_DAMAGE_CHECKER_IMMUNE_MIN_GM_LEVEL] = sConfigMgr->GetIntDefault("DamageChecker.ImmuneMinGMLevel", 1);
- + m_int_configs[CONFIG_DAMAGE_CHECKER_BAN_VALUE] = sConfigMgr->GetIntDefault("DamageChecker.BanValue", 3600);
- +
- // call ScriptMgr if we're reloading the configuration
- if (reload)
- sScriptMgr->OnConfigLoad(reload);
- src/server/game/Entities/Unit/Unit.cpp | 14 ++++++++++++++
- 1 files changed, 14 insertions(+), 0 deletions(-)
- diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
- index d71f8e8..5ea95cf 100755
- --- a/src/server/game/Entities/Unit/Unit.cpp
- +++ b/src/server/game/Entities/Unit/Unit.cpp
- @@ -655,6 +655,20 @@ uint32 Unit::DealDamage(Unit* victim, uint32 damage, CleanDamage const* cleanDam
- TC_LOG_DEBUG("entities.unit", "DealDamageStart");
- + // damage checker
- + if(GetTypeId() == TYPEID_PLAYER
- + && sWorld->getIntConfig(CONFIG_DAMAGE_CHECKER_MAX_DAMAGE) > 0
- + && damage >= sWorld->getIntConfig(CONFIG_DAMAGE_CHECKER_MAX_DAMAGE)
- + && (uint8)ToPlayer()->GetSession()->GetSecurity() < sWorld->getIntConfig(CONFIG_DAMAGE_CHECKER_IMMUNE_MIN_GM_LEVEL))
- + {
- + // punishment
- + uint32 banTime = sWorld->getIntConfig(CONFIG_DAMAGE_CHECKER_BAN_VALUE);
- + if(banTime > 0)
- + sWorld->BanCharacter(ToPlayer()->GetName(), secsToTimeString(banTime, true).c_str(), "Maximal damage", "Damage Checker");
- +
- + TC_LOG_DEBUG("Damage Checker: Player name '%s', damage %u", ToPlayer()->GetName(), damage);
- + }
- +
- uint32 health = victim->GetHealth();
- TC_LOG_DEBUG("entities.unit", "%s dealt %u damage to %s", GetGUID().ToString().c_str(), damage, victim->GetGUID().ToString().c_str());
- src/server/worldserver/worldserver.conf.dist | 27 ++++++++++++++++++++++++++
- 1 files changed, 27 insertions(+), 0 deletions(-)
- diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
- index 5d83710..9dae019 100644
- --- a/src/server/worldserver/worldserver.conf.dist
- +++ b/src/server/worldserver/worldserver.conf.dist
- @@ -25,6 +25,7 @@
- # CONSOLE AND REMOTE ACCESS
- # CHARACTER DELETE OPTIONS
- # CUSTOM SERVER OPTIONS
- +# DAMAGE CHECKER OPTIONS
- #
- ###################################################################################################
- @@ -2880,3 +2881,29 @@ PlayerDump.DisallowOverwrite = 1
- #
- ###################################################################################################
- +
- +###################################################################################################
- +# DAMAGE CHECKER OPTIONS
- +#
- +# DamageChecker.MaxDamage
- +# Maximum damage on the player.
- +# Default: 0 - disable
- +
- +DamageChecker.MaxDamage = 50000
- +
- +#
- +# DamageChecker.ImmuneMinGMLevel
- +# The min level of GM, to obtain immunity from the detector.
- +# Default: 1
- +
- +DamageChecker.ImmuneMinGMLevel = 1
- +
- +#
- +# DamageChecker.BanValue
- +# Ban-time for the character (in seconds). If the BanValue is 0 or less, then only get a log.
- +# Default: 3600
- +
- +DamageChecker.BanValue = 3600
- +
- +#
- +###################################################################################################
Advertisement
Add Comment
Please, Sign In to add comment