美女要黄瓜吗 发表于 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)可能因游戏版本不同而有所变化,需根据实际情况进行调整。

a76730704 发表于 2025-3-13 10:52:21

调教的不错啊,我喂给DS天知道它写了个啥
页: [1]
查看完整版本: 喂给豆包第四版函数手册,写了一段代码,不知道正确不