传奇禁止攻击怪物检测脚本制作方法 全引擎实操教程

来源: 作者: 点击:
传奇禁止攻击怪物检测脚本,核心作用是限制玩家、宠物或指定角色攻击特定怪物,检测到违规攻击后执行对应惩罚(如禁止攻击、回弹伤害、提示警告),适配GOM、GEE等主流引擎,制作无需复杂技术,按脚本类型分类操作即可,以下直奔主题,拆解详细制作步骤、脚本代码、配置方法及异常处理。
核心前提:脚本制作需依托传奇服务端Mir200文件夹下的脚本目录,所有脚本均需按对应路径存放,命名规范(无特殊符号、后缀为.txt),制作前需确认服务端引擎版本,不同引擎脚本命令略有差异,核心逻辑一致;同时需明确禁止攻击的怪物名称(与Monster.DB中怪物名称完全一致),避免脚本无法识别目标怪物。
一、核心脚本分类及适用场景:按禁止攻击的对象的不同,分为三类脚本,覆盖所有常见需求,可单独制作,也可组合使用,无需额外插件支持,仅用服务端自带脚本命令即可实现。
1. 玩家禁止攻击指定怪物检测脚本:最常用场景,限制所有玩家或指定玩家(如会员、新手)攻击特定怪物,检测到攻击行为后,立即触发惩罚,适用于保护新手怪物、活动NPC类怪物。
2. 宠物禁止攻击指定怪物检测脚本:限制玩家召唤的宠物(如英雄、宝宝)攻击特定怪物,避免宠物误杀保护类怪物,适配所有支持宠物系统的服务端版本。
3. 全局禁止攻击怪物检测脚本:限制全服所有角色(玩家、宠物、机器人)攻击指定怪物,适用于全服活动、特殊地图,无需区分角色类型,一键生效。
二、通用准备工作:所有脚本制作前必须完成,避免脚本无法加载或检测失效,步骤简单,无需修改数据库,仅需操作服务端脚本目录。
1. 确认怪物名称:打开服务端Mud2\DB文件夹,用DBC2000打开Monster.DB数据库,找到需要禁止攻击的怪物,记录其“怪物名称”(如“新手稻草人”“活动守卫”),确保脚本中怪物名称与数据库完全一致,不可多字、少字或错字,否则脚本无法识别。
2. 定位脚本存放目录:打开服务端Mir200\Envir文件夹,核心脚本存放于两个目录,按需选择:① Market_def文件夹(优先,存放功能类脚本,推荐),核心文件为QFunction-0.txt;② MapQuest_def文件夹(辅助,存放触发类脚本),核心文件为QManage.txt,两种目录均可,操作方法一致。
3. 备份原有脚本:制作前,复制对应目录下的核心脚本文件(如QFunction-0.txt),备份至桌面或其他文件夹,避免修改错误导致原有脚本失效,便于后续恢复。
4. 编辑工具准备:使用记事本打开脚本文件,关闭“自动换行”功能(避免脚本命令格式错乱),编辑完成后保存,无需额外专业编辑工具,记事本即可满足需求。
三、玩家禁止攻击指定怪物检测脚本(最常用):分GOM、GEE引擎两种版本,步骤一致,仅脚本命令有细微差异,按需选择,可直接复制代码修改使用。
(一)GOM引擎版本(适配大部分服务端)
1. 脚本制作步骤:
第一步,打开Mir200\Envir\Market_def文件夹,找到QFunction-0.txt文件,右键用记事本打开;第二步,在文件末尾空白处,粘贴脚本代码(代码见下方);第三步,修改脚本中的“禁止攻击怪物名称”(替换为实际需要禁止攻击的怪物名称,可添加多个);第四步,修改惩罚方式(可选,按需求调整),保存文件。
2. 完整脚本代码(可直接复制使用):
;玩家禁止攻击指定怪物检测脚本(GOM引擎)
[@AttackMon]
#IF
CheckMonName 禁止攻击怪物名称1 ;替换为实际怪物名称,如“新手稻草人”
OR CheckMonName 禁止攻击怪物名称2 ;可添加多个怪物,用OR连接
#ACT
ChangeModeEx 9 5 ;禁止玩家攻击5秒(命令含义:9=禁止攻击,5=有效时间,单位秒)
SendMsg 6 系统提示:禁止攻击【禁止攻击怪物名称1】,请勿违规! ;发送警告提示
RecallSelf 1 ;将玩家传送回当前地图随机位置(可选,惩罚方式)
;可选惩罚方式补充:#ACT后可替换为以下命令,按需选择
;TakeGold 1000 ;扣除玩家1000金币
;ChangeHP -100 ;扣除玩家100血量
3. 关键参数修改说明:
(1)CheckMonName:检测怪物名称的核心命令,后面跟随禁止攻击的怪物名称,必须与Monster.DB中一致;添加多个怪物时,用“OR”连接,如“CheckMonName 新手稻草人 OR CheckMonName 活动守卫”。
(2)ChangeModeEx 9 5:禁止攻击核心命令,9代表禁止攻击模式,5代表禁止攻击的有效时间(单位秒),可修改时间(如10=10秒、60=1分钟),0表示在线有效。
(3)SendMsg 6:系统提示命令,6代表提示颜色(红色),可修改提示内容,让玩家清晰了解违规原因。
(二)GEE引擎版本(适配GEE系列引擎)
1. 脚本制作步骤:与GOM引擎一致,打开Mir200\Envir\Market_def\QFunction-0.txt,粘贴代码并修改参数,保存即可。
2. 完整脚本代码(可直接复制使用):
;玩家禁止攻击指定怪物检测脚本(GEE引擎)
[@AttackMon]
#IF
MonName 禁止攻击怪物名称1
OR MonName 禁止攻击怪物名称2
#ACT
SetAttack 0 ;禁止玩家攻击(0=禁止,1=允许)
Delay 5000 ;禁止攻击持续5秒(单位毫秒,5000=5秒)
SetAttack 1 ;5秒后恢复攻击权限
SendMsg 6 系统提示:禁止攻击【禁止攻击怪物名称1】,违规将受到惩罚!
4. 脚本加载与测试:脚本保存后,无需重启服务端,在游戏内执行GM命令“@ReloadManage”,重新加载脚本,即可生效;测试方法:登录游戏,攻击指定禁止攻击的怪物,查看是否触发警告和惩罚,若未触发,检查怪物名称是否一致、脚本命令是否正确。
四、宠物禁止攻击指定怪物检测脚本:适配所有支持宠物系统的服务端,限制宠物(英雄、宝宝)攻击指定怪物,避免宠物误杀,同样分GOM、GEE引擎版本。
(一)GOM引擎版本
1. 脚本代码(粘贴至QFunction-0.txt末尾):
;宠物禁止攻击指定怪物检测脚本(GOM引擎)
[@PetAttackMon]
#IF
CheckMonName 禁止攻击怪物名称
#ACT
GamePetSetAttackOption 0 2 0 ;禁止宠物攻击,0=宠物类型,2=禁止攻击,0=在线有效
SendMsg 6 系统提示:你的宠物禁止攻击【禁止攻击怪物名称】,已强制停止攻击!
Delay 3000 ;3秒后恢复宠物攻击权限(可选)
GamePetSetAttackOption 0 0 0 ;恢复宠物默认攻击状态
(二)GEE引擎版本
1. 脚本代码(粘贴至QFunction-0.txt末尾):
;宠物禁止攻击指定怪物检测脚本(GEE引擎)
[@PetAttackMon]
#IF
MonName 禁止攻击怪物名称
#ACT
PetStopAttack ;强制宠物停止攻击
SendMsg 6 系统提示:宠物禁止攻击【禁止攻击怪物名称】,请切换攻击目标!
2. 关键说明:宠物脚本需确保服务端开启宠物系统,若宠物仍能攻击,检查GamePetSetAttackOption命令参数(GOM引擎),或确认PetStopAttack命令是否适配当前引擎版本;部分引擎需在M2引擎中开启“宠物攻击检测”功能,才能触发脚本。
五、全局禁止攻击怪物检测脚本:限制全服所有角色(玩家、宠物、机器人)攻击指定怪物,适用于全服活动、特殊保护怪物,无需区分角色类型,制作简单,适配所有主流引擎。
1. 脚本制作步骤:打开Mir200\Envir\MapQuest_def\QManage.txt(登录脚本),在文件末尾粘贴脚本代码,修改怪物名称,保存后执行“@ReloadManage”加载脚本,即可全服生效。
2. 通用脚本代码(适配所有引擎,可直接复制):
;全局禁止攻击怪物检测脚本(全引擎通用)
[@AttackMon]
#IF
CheckMonName 禁止攻击怪物名称 ;可添加多个,用OR连接
#ACT
;禁止玩家攻击
ChangeModeEx 9 10 ;GOM引擎禁止攻击10秒
;SetAttack 0 ;GEE引擎禁止攻击,需替换上面一行命令
;禁止宠物攻击
GamePetSetAttackOption 0 2 0 ;GOM引擎,0=宠物类型,2=禁止攻击
;PetStopAttack ;GEE引擎,需替换上面一行命令
;禁止机器人攻击(若有机器人脚本)
RobotStopAttack 禁止攻击怪物名称 ;停止机器人攻击指定怪物
SendMsg 6 系统提示:全服禁止攻击【禁止攻击怪物名称】,违规将受到惩罚!
3. 适配调整:GOM引擎保留“ChangeModeEx”和“GamePetSetAttackOption”命令,删除GEE引擎相关命令;GEE引擎保留“SetAttack”和“PetStopAttack”命令,删除GOM引擎相关命令,避免命令冲突导致脚本失效。
六、脚本进阶设置:根据需求调整检测范围、惩罚方式,适配更多场景,无需额外添加脚本,仅修改现有代码即可。
1. 限制指定地图禁止攻击:在脚本#IF条件后添加地图检测命令,仅在指定地图触发检测,适用于特殊活动地图。
示例(添加至#IF后):CheckMap 地图名称 ;如“CheckMap 活动地图”,仅在活动地图禁止攻击指定怪物。
2. 限制指定玩家群体:在#IF条件后添加权限检测命令,仅限制普通玩家,GM、管理员不受限制。
示例(添加至#IF后):CheckAdminLevel 0 ;0=普通玩家,1=GM,仅普通玩家触发检测,GM可正常攻击。
3. 自定义惩罚方式:替换#ACT后的惩罚命令,适配不同需求,常用惩罚命令如下(全引擎通用):
(1)扣除金币/元宝:TakeGold 5000(扣除5000金币)、TakeYuanBao 10(扣除10元宝);
(2)扣除血量/魔法:ChangeHP -200(扣除200血量)、ChangeMP -100(扣除100魔法);
(3)传送至指定地图:MapMove 新手村 330 330(传送至新手村指定坐标);
(4)禁言惩罚:DisableSendMsg 10(禁言10秒,单位秒)。
4. 多怪物批量禁止:添加多个CheckMonName(GOM)或MonName(GEE)命令,用OR连接,实现同时禁止攻击多个怪物,无需单独制作多个脚本。
示例:#IF CheckMonName 新手稻草人 OR CheckMonName 活动守卫 OR CheckMonName 新手鹿
七、脚本异常处理:制作或使用过程中,遇到脚本不生效、检测错误等问题,按以下步骤排查,无需重启服务端,快速解决。
1. 脚本不生效:核心原因有3点,逐一排查:① 怪物名称与Monster.DB中不一致,重新核对怪物名称,修正脚本;② 脚本存放目录错误,确保存放于Market_def或MapQuest_def文件夹,核心文件为QFunction-0.txt或QManage.txt;③ 未加载脚本,执行GM命令“@ReloadManage”重新加载,或重启M2引擎。
2. 误检测(攻击其他怪物也触发惩罚):原因是脚本中怪物名称错误,或添加了多余的OR连接,检查CheckMonName/MonName命令后的怪物名称,删除多余的OR连接和错误的怪物名称。
3. 惩罚不执行:原因是脚本命令错误,GOM引擎误用GEE命令(或反之),核对引擎版本,替换对应命令;或惩罚命令参数错误(如时间单位、数值错误),修正参数即可。
4. 宠物脚本无效:GOM引擎检查GamePetSetAttackOption命令参数(类型、值、有效时间),确保值为2(禁止攻击);GEE引擎检查是否开启宠物系统,执行“@ReloadNpc”重新加载宠物配置。
八、脚本保存与加载规范:确保脚本长期稳定生效,避免因操作不当导致脚本失效,按以下规范操作。
1. 保存规范:用记事本编辑脚本后,选择“文件-保存”,编码格式选择“ANSI”,避免编码错误导致脚本乱码、无法加载;保存后,不要随意修改脚本文件名和存放路径。
2. 加载规范:脚本修改后,优先执行GM命令加载(@ReloadManage 加载功能脚本、@ReloadNpc 加载宠物相关脚本),无需重启服务端;若加载后仍不生效,重启M2引擎,即可完全生效。
3. 备份规范:每次修改脚本后,备份原有脚本文件,若修改错误,可快速恢复,避免影响服务端正常运行;建议建立脚本备份文件夹,按修改日期命名,便于查找。
九、常见疑问解答:解决新手制作过程中遇到的高频问题,无需额外查阅资料,直接参考即可。
1. 能否同时禁止攻击多个怪物?可以,用OR连接多个CheckMonName/MonName命令,添加所有需要禁止攻击的怪物名称即可。
2. 脚本是否需要插件支持?不需要,所有脚本均使用服务端自带命令制作,无需加载额外插件,避免插件冲突。
3. 不同引擎脚本能否通用?不能,GOM和GEE引擎核心命令不同,需按引擎版本选择对应脚本代码,不可直接复制通用。
4. 如何取消禁止攻击设置?删除对应脚本代码,执行@ReloadManage加载,或修改脚本中禁止攻击的有效时间为0,即可取消。
5. 机器人攻击能否被禁止?可以,在全局脚本中添加RobotStopAttack命令,跟随禁止攻击的怪物名称,即可禁止机器人攻击指定怪物。
总结:传奇禁止攻击怪物检测脚本制作,核心是“明确怪物名称、选择对应引擎脚本、修改参数、加载生效”,无需复杂技术,新手可直接复制代码修改使用。按脚本类型(玩家、宠物、全局)选择对应制作方法,适配不同场景,遇到异常按步骤排查,即可确保脚本稳定运行,实现指定怪物的保护功能,满足服务端管理需求。