diff --git a/data/scripts/talkactions/player/chain_system.lua b/data/scripts/talkactions/player/chain_system.lua index a2eee986..a47c7666 100644 --- a/data/scripts/talkactions/player/chain_system.lua +++ b/data/scripts/talkactions/player/chain_system.lua @@ -23,10 +23,10 @@ function feature.onSay(player, words, param) end if param == "on" then - player:setFeature(Features.ChainSystem, 1) + player:setFeature(Features.ChainSystem, true) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Chain System is now enabled.") elseif param == "off" then - player:setFeature(Features.ChainSystem, 0) + player:setFeature(Features.ChainSystem, false) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Chain System is now disabled.") end return true diff --git a/data/scripts/talkactions/player/emote_spell.lua b/data/scripts/talkactions/player/emote_spell.lua index ed97a101..1536c9f9 100644 --- a/data/scripts/talkactions/player/emote_spell.lua +++ b/data/scripts/talkactions/player/emote_spell.lua @@ -18,10 +18,10 @@ function emoteSpell.onSay(player, words, param) end if param == "on" then - player:setFeature(Features.EmoteSpells, 1) + player:setFeature(Features.EmoteSpells, true) player:sendTextMessage(MESSAGE_LOOK, "You have activated emote spells.") elseif param == "off" then - player:setFeature(Features.EmoteSpells, 0) + player:setFeature(Features.EmoteSpells, false) player:sendTextMessage(MESSAGE_LOOK, "You have deactivated emote spells.") end return true diff --git a/data/scripts/talkactions/player/spell_name_instead_words.lua b/data/scripts/talkactions/player/spell_name_instead_words.lua index 810f0089..5b3da112 100644 --- a/data/scripts/talkactions/player/spell_name_instead_words.lua +++ b/data/scripts/talkactions/player/spell_name_instead_words.lua @@ -18,10 +18,10 @@ function featrue.onSay(player, words, param) end if param == "on" then - player:setFeature(Features.SpellNameInsteadOfWords, 1) + player:setFeature(Features.SpellNameInsteadOfWords, true) player:sendTextMessage(MESSAGE_LOOK, "You have activated spell name instead of words.") elseif param == "off" then - player:setFeature(Features.SpellNameInsteadOfWords, 0) + player:setFeature(Features.SpellNameInsteadOfWords, false) player:sendTextMessage(MESSAGE_LOOK, "You have deactivated spell name instead of words.") end return true diff --git a/markdowns/CHANGELOG.md b/markdowns/CHANGELOG.md index ee9ed437..ae3c7784 100644 --- a/markdowns/CHANGELOG.md +++ b/markdowns/CHANGELOG.md @@ -32,6 +32,7 @@ - Fixed Stealth Ring being destroyed in certain cases, based on [Stealth Ring](https://tibia.fandom.com/wiki/Stealth_Ring). ([Tryller](https://github.com/jprzimba)) - Fixed an issue where store items could not be moved to the store inbox after being unwrapped. ([TheGlitchLab](https://github.com/TheGlitchLab)) +- Fixed some features not being disabled when deactivated in `config.lua`: `!chain`, `!emote`, and `!spellwords`. ([Tryller](https://github.com/jprzimba)) ## Version 4.1.2 diff --git a/src/creatures/players/player.cpp b/src/creatures/players/player.cpp index 1e699e81..2a42c1ea 100644 --- a/src/creatures/players/player.cpp +++ b/src/creatures/players/player.cpp @@ -5186,19 +5186,21 @@ bool Player::checkAutoLoot(bool isBoss) const { bool Player::checkChainSystem() const { if (!g_configManager().getBoolean(TOGGLE_CHAIN_SYSTEM)) { + kv()->scoped("features")->set("chainSystem", false); return false; } if (g_configManager().getBoolean(VIP_SYSTEM_ENABLED) && g_configManager().getBoolean(CHAIN_SYSTEM_VIP_ONLY) && !isVip()) { + kv()->scoped("features")->set("chainSystem", false); return false; } auto featureKV = kv()->scoped("features")->get("chainSystem"); if (featureKV.has_value()) { - auto value = featureKV->getNumber(); - if (value == 1) { + auto value = featureKV->get(); + if (value) { return true; - } else if (value == 0) { + } else { return false; } } @@ -5208,15 +5210,16 @@ bool Player::checkChainSystem() const { bool Player::checkEmoteSpells() const { if (!g_configManager().getBoolean(EMOTE_SPELLS)) { + kv()->scoped("features")->set("emoteSpells", false); return false; } auto featureKV = kv()->scoped("features")->get("emoteSpells"); if (featureKV.has_value()) { - auto value = featureKV->getNumber(); - if (value == 1) { + auto value = featureKV->get(); + if (value) { return true; - } else if (value == 0) { + } else { return false; } } @@ -5226,15 +5229,16 @@ bool Player::checkEmoteSpells() const { bool Player::checkSpellNameInsteadOfWords() const { if (!g_configManager().getBoolean(SPELL_NAME_INSTEAD_WORDS)) { + kv()->scoped("features")->set("spellNameInsteadOfWords", false); return false; } auto featureKV = kv()->scoped("features")->get("spellNameInsteadOfWords"); if (featureKV.has_value()) { - auto value = featureKV->getNumber(); - if (value == 1) { + auto value = featureKV->get(); + if (value) { return true; - } else if (value == 0) { + } else { return false; } }