[Lua] 纯文本查看 复制代码 -- 自动吃喝脚本(基于buff判断的精准版本)
-- 核心逻辑:通过物品使用后产生的buff来控制,有对应buff时不重复使用
-- ==============================================
-- 配置参数(根据实际物品和buff名称调整)
-- ==============================================
local CONFIG = {
FOOD_ITEM = "蜜饯鹿肉", -- 回血物品名称
DRINK_ITEM = "薄荷蜜茶", -- 回蓝物品名称
HEALTH_THRESHOLD = 95, -- 生命值低于此值才考虑使用食物(%)
MANA_THRESHOLD = 95, -- 法力值低于此值才考虑使用饮料(%)
FOOD_BUFF_KEYWORDS = {"进食", "食物", "蜜饯"}, -- 食物buff包含的关键词
DRINK_BUFF_KEYWORDS = {"饮水", "喝水", "薄荷", "蜜茶"} -- 饮料buff包含的关键词
}
-- ==============================================
-- 辅助函数
-- ==============================================
-- 检查玩家是否有指定类型的buff(通过关键词匹配)
local function hasRelatedBuff(keywords, buffList)
for _, keyword in ipairs(keywords) do
if BeeStringFind(keyword, buffList) then
return true
end
end
return false
end
-- ==============================================
-- 主逻辑
-- ==============================================
-- 获取玩家当前状态
local playerBuffs = BeeUnitBuffList("player")
local currentHealth = BeeUnitHealth("player", "%") or 0
local currentMana = BeeUnitMana("player", "%") or 0
local inCombat = BeeUnitAffectingCombat("player")
-- 战斗中直接中断(战斗状态下不吃喝)
if inCombat then
return
end
-- ==============================================
-- 食物使用逻辑(回血)
-- ==============================================
if currentHealth < CONFIG.HEALTH_THRESHOLD then
-- 没有食物相关buff且不在战斗中,才使用食物
if not hasFoodBuff then
BeeRun("/use " .. CONFIG.FOOD_ITEM)
return
end
end
-- ==============================================
-- 饮料使用逻辑(回蓝)
-- ==============================================
if currentMana < CONFIG.MANA_THRESHOLD then
-- 没有饮料相关buff且不在战斗中,才使用饮料
if not hasDrinkBuff then
BeeRun("/use " .. CONFIG.DRINK_ITEM)
return
end
end
-- 检查是否有进食/饮水相关buff
local hasFoodBuff = hasRelatedBuff(CONFIG.FOOD_BUFF_KEYWORDS, playerBuffs)
local hasDrinkBuff = hasRelatedBuff(CONFIG.DRINK_BUFF_KEYWORDS, playerBuffs)
local hasFirstAidBuff = BeeStringFind("急救", playerBuffs)
-- 有急救buff时中断(避免与吃喝冲突)
if hasFirstAidBuff then
return
end
|