真的比猪帅 发表于 2022-12-21 19:30:24

请问怎么在自动吃喝的时候暂停释放所有技能?

ifBeeStringFind("格拉库的肉松蛋糕",buff) or BeeStringFind("饮水",buff)or BeeStringFind("喝水",buff) or BeeStringFind("进食",buff) or BeeStringFind("急救",buff) then
    return
end
if BeeUnitHealth("player","%")<100 and not BeeUnitAffectingCombat("player")and not BeeStringFind("格拉库的肉松蛋糕",buff) then BeeRun("/use 永久蛋糕")
end
if BeeUnitMana("player","%")<100 and not BeeUnitAffectingCombat("player")and not BeeStringFind("格拉库的肉松蛋糕",buff) then BeeRun("/use 永久蛋糕")
end

如题,角色吃喝时候放其他技能从而没有吃喝。该怎么优化?

lixin901 发表于 2025-8-10 19:53:54

-- 自动吃喝脚本(基于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
页: [1]
查看完整版本: 请问怎么在自动吃喝的时候暂停释放所有技能?