传奇脚本进阶教程:精准区分怪物与玩家攻击的触发机制

来源: 作者: 点击:
当前脚本存在逻辑漏洞,角色被**怪物或玩家攻击**时均会触发无敌效果。需通过代码改造,实现**仅怪物攻击触发BUFF**,人物攻击无效。

---

**解决方案核心思路**
通过**CHECKCURRTARGETRACE命令**检测攻击者类型:
-`CHECKCURRTARGETRACE=0`→攻击者为**玩家**
-`CHECKCURRTARGETRACE≠0`→攻击者为**怪物**

---

**详细改造步骤**
1.**添加目标类型判断**
在现有条件中插入`CHECKCURRTARGETRACE<>0`,限制仅怪物攻击时触发:
```lua
#IF
CHECKCURRTARGETRACE<>0;检测攻击者是否为怪物
checkitemw始神≌领域·君;检测是否佩戴指定装备
random5;20%概率触发
CHECKTEXTLIST..\QuestDiary\三一真神.txt<$CURRRTARGETNAME>;校验怪物名称是否在列表内
#ACT
ChangeModeEx1410;防麻痹10秒
ChangeModeEx12;无敌2秒
SENDMSG6【<$CURRRTARGETNAME>】的怪物攻击触发了无敌效果@麻痹10秒,无敌2秒!
```

2.**优化消息提示**
调整输出信息以明确触发来源,例如将原提示中的“攻击”改为“怪物攻击”,增强玩家对逻辑的理解。

3.**验证文本列表配置**
确保`三一真神.txt`中记录的怪物名称与游戏内实际名称**完全一致**,避免因名称不匹配导致条件失效。

---

**关键代码解析**
-**CHECKCURRTARGETRACE**:核心检测命令,区分攻击者种族(0=玩家,非0=怪物)。
-**CHECKTEXTLIST**:用于校验攻击者名称是否在预设的怪物列表中,可防止误触发(如召唤兽等特殊单位)。
-**random5**:控制触发概率(1/5),可根据需求调整数值。

---

**潜在问题排查**
1.**无敌效果未触发**
-检查装备名称拼写是否正确(`始神≌领域·君`需与数据库完全一致)。
-确认`三一真神.txt`文件路径无误,且怪物名称无多余空格或符号。

2.**玩家攻击仍触发BUFF**
-检查`CHECKCURRTARGETRACE`是否误写为`=0`,或未正确嵌套条件语句。

---

**扩展应用**
此逻辑可延伸至其他触发型脚本,例如:
-**反击机制**:仅对怪物攻击自动反击。
-**特殊BUFF**:被BOSS攻击时触发吸血效果。

---

**技术总结**
通过精准判断攻击者类型,结合概率控制与名称校验,可有效实现脚本逻辑的精细化控制。此方案兼顾稳定性与灵活性,适用于各类需要区分攻击来源的传奇私人服务器脚本场景。
[顶部]