在传奇单机架设中,实现“怪物不攻击玩家,仅攻击其他怪物”的设定,需结合数据库参数调整、脚本逻辑设计及引擎功能配置。这一机制常用于模拟怪物混战场景、创建中立生物或设计特殊副本。本文综合多篇技术文档与实战案例,从基础参数到高级脚本,提供一套完整解决方案。
---
### 一、核心原理与工具准备
#### 1. **怪物攻击行为的底层逻辑**
传奇服务端通过`Monster.DB`数据库中的**Race**(攻击方式)和**RaceImg**(攻击效果)参数控制怪物行为:
- **Race=0**:无敌状态(不攻击任何目标)。
- **Race=1**:被动攻击(仅在受到攻击时反击)。
- **Race=2**:主动攻击玩家(默认行为)。
- **Race=3**:主动攻击玩家和怪物(常用于BOSS类生物)。
要实现“怪物仅攻击其他怪物”,需调整**Race**参数并配合脚本逻辑。
#### 2. **所需工具**
- **DBC2000**:修改`Monster.DB`数据库的核心工具。
- **万游设置器/菜鸟编辑器**:可视化调整怪物属性,适合新手。
- **文本编辑器**:修改刷怪文件(`MonGen.txt`)和脚本文件(`RobotManage.txt`)。
---
### 二、数据库参数调整
#### 1. **设置怪物为被动模式**
通过**DBC2000**修改`Monster.DB`中的**Race**参数:
- **目标**:将怪物的攻击模式设为被动(Race=1),使其仅在被攻击时反击。
- **操作步骤**:
1. 打开`Monster.DB`,找到目标怪物(如“半兽人”)。
2. 将**Race**字段值改为`1`,保存并重启服务端。
#### 2. **强制怪物攻击其他怪物的进阶参数**
若需怪物主动攻击其他怪物而非被动反击,需结合**RaceImg**与脚本:
- **Race=81**:特殊攻击模式(需配合脚本实现目标筛选)。
- **RaceImg=200**:标记为“敌对怪物阵营”,使其被其他怪物识别为攻击目标。
---
### 三、脚本逻辑设计
#### 1. **刷怪时指定攻击目标**
在`MonGen.txt`中生成怪物的同时,通过脚本触发攻击指令:
```
#MonGen.txt
3 330 330 半兽人 10 5 0 0 1
```
```
#RobotManage.txt
[@OnMonGen]
#IF
CHECKMONNAME 半兽人
#ACT
GMEXECUTE 攻击 祖玛卫士
```
**说明**:当“半兽人”生成时,强制其攻击“祖玛卫士”。
#### 2. **动态仇恨转移脚本**
在`QManage.txt`中编写全局脚本,使怪物自动锁定其他怪物为目标:
```
#QManage.txt
[@OnTimer10]
#IF
CHECKMAPMONCOUNT 3 > 0
#ACT
GMEXECUTE 清除仇恨
GMEXECUTE 锁定怪物 祖玛雕像
BREAK
```
**效果**:每隔10秒清除怪物对玩家的仇恨,并强制其攻击指定目标。
---
### 四、引擎功能扩展(以GOM引擎为例)
#### 1. **自定义怪物阵营**
1. 打开引擎的`M2Server→选项→怪物设置`。
2. 在“人形怪设置”中,创建新阵营(如“怪物阵营A”)。
3. 将目标怪物(如“半兽人”)分配至该阵营,并设置其敌对阵营为“怪物阵营B”。
#### 2. **仇恨规则配置**
- **M2Server→参数设置→怪物参数**:
- 勾选“怪物优先攻击其他怪物”。
- 设置“怪物仇恨范围”为10(即10格内自动锁定其他怪物)。
---
### 五、特殊场景应用
#### 1. **模拟怪物混战地图**
1. 在`MonGen.txt`中生成多组敌对阵营怪物:
```
3 300 300 半兽人 10 5 0 0 1
3 350 350 祖玛卫士 10 5 0 0 1
```
2. 通过脚本设置双方阵营为敌对:
```
#RobotManage.txt
[@OnMapEnter3]
#ACT
SetCamp 半兽人 1
SetCamp 祖玛卫士 2
SetEnemyCamp 1 2
```
**效果**:进入地图3后,半兽人与祖玛卫士自动交战。
#### 2. **中立生物(如采集点守卫)**
1. 设置怪物Race=0(无敌),避免其主动攻击。
2. 通过脚本触发被动攻击逻辑:
```
#QManage.txt
[@OnAttack]
#IF
CHECKCURRTARGETMONSTER
#ACT
GMEXECUTE 切换目标 黑野猪
```
**说明**:当玩家攻击该怪物时,其自动将仇恨转移至其他怪物。
---
### 六、调试与风险控制
1. **常见错误排查**:
- **怪物静止不动**:检查`WALK_SPD`(移动速度)是否大于0。
- **攻击目标错误**:确认脚本中的怪物名称与数据库一致,避免拼写错误。
2. **平衡性建议**:
- 在`Monster.DB`中降低此类怪物的经验值(`Exp`字段),避免玩家利用机制刷经验。
---
### 结语
通过调整数据库参数、编写动态脚本及利用引擎阵营功能,可灵活实现“怪物不攻击玩家,仅攻击其他怪物”的设定。建议从简单被动模式入手,逐步尝试仇恨转移与阵营对抗等高级玩法,同时注重测试与参数优化,以打造兼具趣味性与挑战性的游戏体验。
注:本文方法适用于GOM、GEE等主流引擎,具体操作需根据版本差异调整。
传奇单机架设设置怪物不攻击人物只攻击怪物的脚本全指南
来源:
作者:
点击:

