一、核心触发逻辑:地图进入即清除宠物
脚本核心依赖地图进入事件触发,通过命令强制清除玩家携带的宠物(含道士召唤兽、英雄宝宝等),同时可限制进入后无法召唤宠物。适配主流HERO、3K、GOM引擎,皇宫地图需先确认地图编号(默认皇宫地图编号为3,可通过MapInfo.txt文件核对),脚本文件统一放在服务器Envir目录下,无需修改客户端文件。
触发优先级:地图进入触发>NPC对话触发,皇宫场景优先采用进入触发,确保玩家踏入地图瞬间清除宠物,避免宠物跟随进入引发异常,同时搭配后续限制召唤脚本,形成完整禁宠机制。
二、通用杀宠脚本(适配所有引擎,皇宫专用)
1. 地图进入自动杀宠脚本(核心脚本)
脚本路径:D:\Mirserver\Mir200\Envir\MapQuest_def\QManage.txt(全局触发脚本文件),添加以下代码实现踏入皇宫自动清除宠物,无需额外触发条件。
代码示例:
(@OnEnterMap3)
#IF
IsOnMap 3 //3为皇宫地图编号,需按实际编号修改
#ACT
KillPet //清除玩家自身召唤的宠物(道士骷髅、神兽等)
KillHero //清除英雄宝宝,无英雄系统可删除此句
SendMsg 5 进入皇宫禁止携带宠物,已自动清除! //发送系统提示
SetPetBan 1 3 //在编号3的地图禁止召唤宠物,持续生效
#ELSEACT
SetPetBan 0 //离开皇宫地图后解除召唤限制
补充说明:代码中@OnEnterMap后数字需与皇宫地图编号一致,若皇宫地图编号为其他数值(如100),则改为@OnEnterMap100,MapInfo.txt文件可查询所有地图编号及对应名称。
2. 防绕过补充脚本(禁止召唤+宠物拦截)
为避免玩家进入后通过技能重新召唤宠物,在QManage.txt文件添加定时器脚本,持续检测皇宫内宠物并清除,同时屏蔽召唤技能生效。
代码示例:
(@OnTimer9)
#IF
IsOnMap 3
CheckPetExist //检测是否存在宠物
#ACT
KillPet
KillHero
SendMsg 5 皇宫内禁止召唤宠物,已强制清除!
SetTimer 9 2000 //每2秒检测一次,循环执行
//同时在技能数据库禁止皇宫内召唤技能生效,路径:D:\Mirserver\Mir200\Envir\Skill.txt
//找到召唤骷髅、召唤神兽等技能,添加条件:!IsOnMap 3
操作:技能参数后补充“!IsOnMap 3”,表示在地图3(皇宫)内无法释放该技能,从源头阻止召唤。
三、分引擎适配脚本(解决兼容问题)
1. HERO/3K引擎专属优化
此类引擎支持KillPetEx命令,可精准清除所有类型宠物,包括自定义召唤物,补充脚本如下,替换通用脚本中#ACT部分内容:
#ACT
KillPetEx 0 //0表示清除所有宠物类型,1为仅清除自身召唤物
BanSkill 11 1 3 //11为召唤神兽技能ID,禁止在地图3生效,持续1分钟
BanSkill 12 1 3 //12为召唤骷髅技能ID,按实际技能ID修改
提示:技能ID可在Skill.txt文件中查询,每个技能对应唯一ID,BanSkill命令可临时屏蔽技能,避免永久修改影响其他地图使用。
2. GOM引擎专属调整
GOM引擎需使用DelPet命令替代KillPet,同时通过MapConfig.txt文件设置地图属性,脚本与配置结合实现禁宠:
1. QManage.txt添加脚本:
(@OnEnterMap3)
#IF
IsOnMap 3
#ACT
DelPet //GOM引擎清除宠物命令
SendMsg 5 皇宫内禁止携带宠物,违规宠物已清除!
2. 地图配置修改:打开D:\Mirserver\Mir200\Envir\MapConfig.txt,找到皇宫地图编号,添加“PetBan=1”,设置该地图为禁止宠物进入模式,双重保障。
四、脚本部署与测试步骤
1. 备份原文件:修改QManage.txt、Skill.txt前,复制文件备份,避免脚本错误导致服务器异常,备份文件命名为“文件名_备份”。
2. 填写正确参数:核对皇宫地图编号、技能ID,确保与服务器实际配置一致,地图编号错误会导致脚本无法触发,技能ID错误则无法屏蔽召唤。
3. 重启服务器:脚本修改后需重启传奇服务器,使配置生效,部分引擎支持热重载,但为确保稳定性,优先重启服务器。
4. 测试验证:用道士角色携带宠物进入皇宫,查看是否自动清除,尝试召唤宠物是否失效;切换有英雄的角色测试,确认英雄宝宝也被清除,无遗漏场景。
五、常见问题排查(脚本失效/异常解决)
1. 脚本不触发:优先核对地图编号是否正确,MapInfo.txt中确认皇宫对应编号;检查QManage.txt文件格式,确保代码行首无空格,符号为英文半角,中文符号会导致脚本失效。
2. 宠物清除不彻底:补充KillHero、DelPet命令,部分引擎KillPet仅清除自身召唤物,无法清除英雄宝宝,需多命令组合使用。
3. 其他地图无法召唤:检查SetPetBan、BanSkill命令是否添加地图限制,避免未指定地图导致全局禁宠,确保命令后携带正确地图编号。
4. 引擎报错:删除新增脚本后重启服务器,逐步添加代码排查错误行;GOM引擎需确认DelPet命令是否支持,旧版GOM可能需升级引擎核心文件。
六、拓展场景:NPC触发式杀宠脚本(备选方案)
若无需自动触发,可在皇宫门口设置NPC,玩家对话后清除宠物方可进入,脚本路径:D:\Mirserver\Mir200\Envir\NPCs\,新建NPC文件(如皇宫守卫.txt),代码如下:
[@Main]
#IF
CheckPetExist
#ACT
KillPet
KillHero
SendMsg 5 已为你清除宠物,可进入皇宫!
MapMove 3 330 350 //传送至皇宫内坐标
#ELSEACT
SendMsg 5 你未携带宠物,可直接进入!
MapMove 3 330 350
适用场景:需人工验证的场景,搭配NPC对话提升交互感,坐标需按皇宫实际传送点修改,确保玩家传送至安全区域。

