LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 199|回复: 1

[wowbee] 喂给豆包第四版函数手册,写了一段代码,不知道正确不

[复制链接]
发表于 2025-3-11 23:20:15 | 显示全部楼层 |阅读模式

以下是不使用自定义变量,直接使用手册中可调用函数来实现 “当敌对目标的目标不是坦克玩家时,若清算技处于非冷却状态,对目标释放清算技能,若清算技能处于冷却状态,且正义防御处于非冷却状态,则对敌对目标的目标释放正义防御” 功能的 Lua 代码:

```lua
-- 遍历团队成员找出坦克玩家
local isTargetTargetTank = false
for i = 1, 40 do
    local raidUnit = "raid" .. i
    if UnitExists(raidUnit) then
        local class = BeeUnitClassBase(raidUnit)
        local isTank = false
        if class == "战士" then
            isTank = BeeGetShapeshiftFormInfo(2)
        elseif class == "德鲁伊" then
            isTank = BeeGetShapeshiftFormInfo(1)
        elseif class == "圣骑士" then
            isTank = BeeUnitBuff(raidUnit, "正义之怒")
        elseif class == "死亡骑士" then
            isTank = BeeUnitBuff(raidUnit, "寒冰灵气")
        end

        if isTank and UnitIsUnit("targettarget", raidUnit) then
            isTargetTargetTank = true
            break
        end
    end
end

-- 如果敌对目标的目标不是坦克玩家
if not isTargetTargetTank then
    -- 检查清算技能是否冷却
    if BeeSpellCD("清算") == 0 then
        -- 清算技能非冷却状态,释放清算技能
        if BeeIsRun("清算", "target") then
            BeeRun("清算", "target")
        end
    else
        -- 清算技能冷却,检查正义防御是否冷却
        if BeeSpellCD("正义防御") == 0 then
            -- 正义防御非冷却状态,对敌对目标的目标释放正义防御
            if BeeIsRun("正义防御", "targettarget") then
                BeeRun("正义防御", "targettarget")
            end
        end
    end
end

```

### 代码解释:
1. **遍历团队找出坦克玩家并检查敌对目标的目标是否为坦克**:
    - 使用 `for` 循环从 `1` 到 `40` 遍历团队成员(`raid1` 到 `raid40`)。
    - 对于每个团队成员,使用 `BeeUnitClassBase` 函数获取其职业,然后根据不同职业使用相应的条件判断是否为坦克(如战士的防御姿态、德鲁伊的熊形态等)。
    - 如果该成员是坦克,并且通过 `UnitIsUnit` 函数判断敌对目标的目标(`targettarget`)就是这个坦克成员,将 `isTargetTargetTank` 标记为 `true` 并跳出循环。

2. **技能释放逻辑**:
    - 如果 `isTargetTargetTank` 为 `false`,表示敌对目标的目标不是坦克玩家。
        - 首先使用 `BeeSpellCD("清算")` 检查清算技能的冷却状态,如果冷却时间为 `0`,并且通过 `BeeIsRun("清算", "target")` 检查可以对目标释放清算技能,则调用 `BeeRun("清算", "target")` 释放清算技能。
        - 如果清算技能处于冷却状态,再使用 `BeeSpellCD("正义防御")` 检查正义防御技能的冷却状态,如果冷却时间为 `0`,并且通过 `BeeIsRun("正义防御", "targettarget")` 检查可以对敌对目标的目标释放正义防御技能,则调用 `BeeRun("正义防御", "targettarget")` 释放正义防御技能。

### 注意事项:
- 此代码假设在团队副本环境下运行,对于 5 人小队,需要将 `raid` 前缀改为 `party` 并调整遍历范围。
- 要确保 `"清算"`、`"正义防御"`、`"正义之怒"` 和 `"寒冰灵气"` 是游戏中准确的技能和 buff 名称,若名称有变化需相应修改代码。
- 代码中使用的形态代码(防御姿态代码 2、熊形态代码 1)可能因游戏版本不同而有所变化,需根据实际情况进行调整。
回复

使用道具 举报

发表于 2025-3-13 10:52:21 | 显示全部楼层
调教的不错啊,我喂给DS天知道它写了个啥
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2025-5-1 11:41 PM , Processed in 0.033873 second(s), 17 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表