What the code actually controls
The original English archive label mentions Texts, but these fragments restrict attacks on selected Metin stones. With ENABLE_METIN_DAMAGE, CPVPManager::CanAttack rejects a listed stone when the attacker's level is more than LEVEL_LIMIT above or below the stone level. The supplied limit is 20 and the endpoints are allowed. Unlisted VNUMs keep the existing behavior.

Integration and operator choices
Merge service.h definitions, infoCounter declaration/methods in char.h, its initialization in char.cpp and the pvp.cpp check at the indicated point. Review the hardcoded IS_BLOCKED_METIN list against your mob_proto; it is not a rule for every stone automatically. Preserve the rest of CanAttack, safe-zone and PvP checks. Decide explicitly whether bosses, summons and custom stone types should remain outside this rule.
ENABLE_METIN_DAMAGE_TIME_INFO emits the warning once per five denied attack attempts. Despite its name, it is a counter, not a seconds-based timer. Translate the Turkish message and keep it synchronized if you change the limit. The counter declarations and initialization are unconditionally supplied, so keep them consistent when testing macros disabled.

Review and validation boundary
All four instruction files were read. No M2City code change was needed for the stated ±20 rule; the publication corrects the misleading resource description. Test differences -21/-20/0/+20/+21, a listed stone, unlisted stone, ordinary monster and both macro combinations in your game build. No full server compile or actual attack was performed. The branch and author are not established by this copy; no unsupported compatibility claim is made.

Editorial resource — M2City
Version: Legacy integration fragments; exact fork unspecified; reviewed 2026-11-04; source unchanged
Rights: Public redistribution explicitly confirmed by supplying owner. Preserve creator notices; no blanket open-source licence granted.
Validation: Static review only; no game build or runtime test.
Source: Owner-supplied Level Range for Texts.rar; title corrected to match code
SHA-256: 38b214c14453475f8b3df4291afc2bad84150b65401d54f26b554ca49151aa71