[Feature] Add special ability to block /open (#2506)

This adds the IMMUNE_OPEN (53) special ability to prevent /open on
LDON_TREASURE classes.
This commit is contained in:
hg 2022-10-29 19:48:14 -04:00 committed by GitHub
parent 56510e6383
commit 16ee25224d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 2 deletions

View File

@ -5028,6 +5028,12 @@ void Client::HandleLDoNOpen(NPC *target)
return;
}
if (target->GetSpecialAbility(IMMUNE_OPEN))
{
LogDebug("[{}] tried to open [{}] but it was immune", GetName(), target->GetName());
return;
}
if(DistanceSquaredNoZ(m_Position, target->GetPosition()) > RuleI(Adventure, LDoNTrapDistanceUse))
{
LogDebug("[{}] tried to open [{}] but [{}] was out of range",

View File

@ -210,7 +210,8 @@ enum {
IMMUNE_AGGRO_NPC = 50,
MODIFY_AVOID_DAMAGE = 51, //Modify by percent the NPCs chance to riposte, block, parry or dodge individually, or for all skills
IMMUNE_FADING_MEMORIES = 52,
MAX_SPECIAL_ATTACK = 53
IMMUNE_OPEN = 53,
MAX_SPECIAL_ATTACK
};
typedef enum { //fear states

View File

@ -2952,7 +2952,8 @@ luabind::scope lua_register_special_abilities() {
luabind::value("immune_damage_npc", static_cast<int>(IMMUNE_DAMAGE_NPC)),
luabind::value("immune_aggro_client", static_cast<int>(IMMUNE_AGGRO_CLIENT)),
luabind::value("immune_aggro_npc", static_cast<int>(IMMUNE_AGGRO_NPC)),
luabind::value("modify_avoid_damage", static_cast<int>(MODIFY_AVOID_DAMAGE))
luabind::value("modify_avoid_damage", static_cast<int>(MODIFY_AVOID_DAMAGE)),
luabind::value("immune_open", static_cast<int>(IMMUNE_OPEN))
];
}