# 配置怪物与技能

为怪物配置不同的攻击动作、起手效果和释放效果，再在 M2 中设置攻击条件与伤害。可以制作远程法术怪、多种攻击交替的 Boss 等。

## 准备素材并导入

使用 GOW-Next 怪物素材编辑器准备身体和攻击素材，导出客户端配置包与 `monster-import.json`。

1. 将导出的配置包和对应图片素材发布到热更目录。
2. 在怪物数据库填写对应外观；使用界面规则控制行为时，怪物 Race 设为 `251`。
3. 在 M2 的“怪物自定义”中导入素材清单，关联该怪物。
4. 配置攻击和行为规则，校验后点击该页面的“保存”。

素材工具操作见 [素材制作与 M2 导入](https://engine-doc.gow-next.com/server/custom-monsters/materials.html)；行为规则见 [规则怪配置](https://engine-doc.gow-next.com/server/custom-monsters/rule-monsters.html)。

## 配置多种攻击

在素材编辑器中分别配置“攻击1～6”的身体动作和特效。在 M2 中填写对应攻击的距离、冷却、伤害和使用条件。

身体动作决定怪物怎样挥手、抬手；技能特效决定飞出什么、落点播放什么。实际伤害由 M2 设置。

需要手工修改身体动作时，在 `config/frame.json` 找到该怪物的条目：攻击1～6分别使用 `attack0`～`attack5`。

```json
[
  {
    "id": 14150,
    "state": "attack0",
    "dress": {
      "start": 160,
      "frame": 6,
      "skip": 4,
      "ftime": 100
    }
  },
  {
    "id": 14150,
    "state": "attack1",
    "dress": {
      "start": 240,
      "frame": 8,
      "skip": 2,
      "ftime": 80
    }
  }
]
```

这是合并片段：将 `14150` 改为该怪物已有动作条目的 `id`，将帧号和帧数改为实际素材参数，追加或修改对应条目。保留原有站立、行走、死亡等动作。

| 参数 | 填写方式 |
| --- | --- |
| `state` | 使用哪一种动作，例如 `attack0` |
| `start` | 素材起始帧 |
| `frame` | 每方向播放多少帧 |
| `skip` | 每方向末尾预留的空帧数 |
| `ftime` | 每帧毫秒数，例如 `100` 为每帧 0.1 秒 |

八方向按素材原有顺序排列，每个方向占 `frame + skip` 个位置。只使用单方向素材时，可在 `dress` 中增加 `"fixed": true`。

## 按技能设置施法动作

如果使用按技能编号区分的施法动作，在 `frame.json` 中填写 `spell_技能编号`。这个编号对应 `skillMagic.json` 中的 `uid`。

```json
[
  {
    "id": 14150,
    "state": "spell_7101",
    "dress": {
      "start": 580,
      "frame": 8,
      "skip": 2,
      "ftime": 120
    }
  },
  {
    "id": 14150,
    "state": "spell_7102",
    "dress": {
      "start": 740,
      "frame": 6,
      "skip": 4,
      "ftime": 80
    }
  },
  {
    "id": 14150,
    "state": "spell",
    "dress": {
      "start": 160,
      "frame": 6,
      "skip": 4,
      "ftime": 100
    }
  }
]
```

例中技能 `7101` 使用 `spell_7101`，`7102` 使用 `spell_7102`。其他未单独配置的技能使用通用 `spell`；通用动作也未配置时，不播放该身体施法动作。

M2 自定义怪物的攻击1～6，按上一节配置对应攻击动作。

## 配置技能特效

在 `config/skillMagic.json` 中增加表现条目。M2 攻击中填写的“表现编号”与这里的 `effectID` 保持一致。

下面是一条落点效果示例：

```json
[
  {
    "uid": 7101,
    "name": "示例落点效果",
    "effectID": 7101,
    "rsc": "demoMagic",
    "playbackMode": "point",
    "playback": {
      "destination": "messagePoint"
    },
    "beatenFrame": {
      "begin": 0,
      "frame": 10,
      "delay": 0.08
    }
  }
]
```

把 `demoMagic` 改成本服已发布的素材资源名，并按实际素材修改帧号。

| 想要的效果 | `playbackMode` | 所需素材 |
| --- | --- | --- |
| 在指定位置爆炸、落冰等 | `point` | `beatenFrame`，可加 `startFrame` 起手 |
| 从怪物飞向落点，再播放命中 | `projectile` | `flyFrame` 与 `beatenFrame`，可加起手 |
| 按朝向播放直线效果 | `beam` | 对应方向的直线素材 |

`playback.destination="messagePoint"` 使用本次攻击指定的位置。飞行效果可设置 `travelTimeMs`，单位毫秒；帧动画中的 `delay` 单位是秒。

下载包提供三种效果的填写样例。素材帧号需要按本服资源调整，技能条目合并进原数组，保留其他技能。

<a href="../downloads/monster-skills-examples.zip" download>下载怪物动作与技能配置片段</a>

## 检查效果

在测试地图刷出怪物，分别检查身体动作、起手、释放效果和伤害，再拉开距离观察追击。

- 动作错误：核对该怪物的 `id`、攻击槽和方向帧排列。
- 有动作但没有特效：核对 M2 表现编号、`effectID` 和素材资源名。
- 画面与扣血时机不一致：分别调整动作／特效播放时间与 M2 的攻击起手、释放延迟。

配置修改后发布文件，完整退出并重新进入游戏。更多特效参数见 [技能素材配置](https://engine-doc.gow-next.com/client/skill-magic.html)。
