原脚本问题分析显示触发条件缺乏攻击者类型判断。当前脚本无论怪物或人物攻击都会激活无敌效果,原因在于条件部分未区分攻击者种族。代码结构存在多个#if分段,注释符号放置错误导致文本列表检查失效。核心需求是限制只有怪物攻击时触发特效,人物攻击不触发。
脚本结构修正需统一条件判断段落。原代码有两个独立#if片段,应合并为单一条件块。删除多余行和错误注释,确保逻辑连贯。正确格式是#if开头,多条件并列,以#act结束执行动作。条件顺序为物品检查、概率随机、攻击者类型验证。
攻击者类型判断采用文本列表检查方法。使用CHECKTEXTLIST命令验证攻击者名称是否在指定怪物列表中。列表文件路径为..\QuestDiary\三一真神.txt,需确保该文件包含所有可能触发怪物的完整名称。攻击者名称变量为<$CURRRTARGETNAME>,注意变量名称拼写准确。
修改后完整脚本如下:
#if
checkitemw 始神≌领域·君
random 5
CHECKTEXTLIST ..\QuestDiary\三一真神.txt <$CURRRTARGETNAME>
#act
ChangeModeEx 14 10
ChangeModeEx 1 2
SENDMSG 6 你被怪物【<$CURRRTARGETNAME>】攻击,触发防麻痹10秒,无敌2秒!
列表文件创建维护确保怪物名称完整。文本文件三一真神.txt需放置在QuestDiary目录内,每行记录一个怪物标准名称。名称需与数据库Monster.DB中MonName字段完全一致,包括符号和空格。添加新怪物时更新文件内容,保持名称大小写和特殊字符准确。
条件替代方案使用种族判断命令。若引擎支持种族变量,可用EQUAL <CURRRTARGETRACE> 0替代文本列表检查。种族值0代表怪物,1代表人物。该方案不依赖外部文件,但需确认变量名在引擎中有效。部分引擎使用<ATTACKER_RACE>或<$CURRATTACKERRACE>。
种族判断脚本示例:
#if
checkitemw 始神≌领域·君
random 5
EQUAL <$CURRRTARGETRACE> 0
#act
ChangeModeEx 14 10
ChangeModeEx 1 2
SENDMSG 6 怪物攻击触发无敌效果!
攻击触发映射配置需同步修改。脚本需在攻击触发文件中正确关联,通常为MapQuest.txt或QFunction-0.txt。在攻击触发段调用脚本标签,确保怪物伤害时执行条件判断。触发频率设置避免过高导致服务器负载。
变量作用域确认攻击者名称准确。<$CURRRTARGETNAME>在攻击触发时刻自动获取攻击者名称,无需额外赋值。该变量在脚本执行期间有效,消息发送命令中可直接引用。名称显示格式可调整,如去除颜色代码避免显示异常。
概率机制保持原有随机触发。random 5代表5%触发概率,每次受攻击独立计算。概率值可调整,1表示1%概率,100表示100%触发。物品检查确保玩家穿戴指定装备,装备名称需与数据库StdItems.DB中Name字段完全匹配。
无敌效果参数调整防麻痹和无敌时间。ChangeModeEx 14 10中14代表防麻痹效果,10代表持续时间10秒。ChangeModeEx 1 2中1代表无敌效果,2代表持续时间2秒。时间参数可按需求修改,单位均为秒。
消息提示优化区分攻击者类型。SENDMSG 6发送私人提示消息,仅当前玩家可见。消息内容可自定义,加入攻击者名称和触发效果说明。消息颜色可通过添加颜色代码调整,如“\250”代表特定颜色。
脚本测试流程验证功能正常。架设单机测试环境,穿戴指定装备让怪物攻击,观察触发概率和效果。使用人物角色攻击测试是否不触发。检查系统消息提示是否准确显示怪物名称。无敌期间承受伤害验证伤害免疫是否生效。
多怪物同时攻击处理机制。脚本每次攻击独立判断,连续攻击可能多次触发。无敌效果叠加需测试,通常后续触发覆盖前期效果。防麻痹和无敌时间分别计算,时间参数从触发时刻重新计时。
兼容性确保引擎支持命令。checkitemw检查穿戴物品,部分引擎使用CheckItemW。random为通用随机函数。CHECKTEXTLIST需引擎支持文本列表检查功能。ChangeModeEx为HERO引擎常用改变模式命令,其他引擎可能使用不同命令。
错误排查解决常见问题。若完全不触发,检查物品名称是否包含特殊符号,列表文件路径是否正确。若人物攻击仍触发,确认列表文件是否包含人物名称,或尝试种族判断方法。无敌效果不生效检查模式代码是否正确,时间参数是否为数字。
脚本扩展支持更多触发条件。可添加等级检查、地图限制、时间限制等条件。例如增加CHECKLEVELEX > 50限制50级以上触发,或CHECKMAPNAME限制特定地图生效。多条件并列时全部满足才会执行动作。
通过以上修改,脚本可实现仅怪物攻击触发无敌,人物攻击无效果。关键点包括合并条件判断、添加攻击者类型验证、确保列表文件准确。测试验证功能正常后部署到服务端,观察日志确认脚本无错误提示。

