实现传奇地图禁止带宠物(如进入皇宫自动杀死宠物)的功能,核心在于利用地图触发机制配合宠物检测与清除命令。以下是具体的脚本编写与配置步骤。
一、 核心脚本命令
实现该功能主要依赖以下两个命令:
1. 检测宠物数量:CHECKSLAVECOUNT。用于判断玩家当前携带的宠物数量。
2. 清除宠物:KILLSLAVE。用于强制杀死玩家携带的所有宠物。
二、 脚本编写方法
脚本需要放置在地图触发文件(如 QFunction-0.txt)中,并配合地图参数设置。
1. 基础触发脚本
在 QFunction-0.txt 文件中添加以下脚本段。假设皇宫的地图编号为 0150,触发标识为 Q001。
[@OnMap0150]
#IF
CHECKSLAVECOUNT > 0
#ACT
KILLSLAVE
SENDMSG 6 提示:皇宫重地,禁止携带宠物!
#ELSESAY
• 脚本逻辑:当玩家进入地图编号为 0150 的地图时,触发 [@OnMap0150] 标签。脚本首先检测玩家携带的宠物数量是否大于0,如果大于0,则执行 KILLSLAVE 命令杀死所有宠物,并给玩家发送提示消息。
2. 地图参数配置
为了让脚本生效,必须在 MapInfo.txt 文件中为皇宫地图添加触发参数。
• 查找地图编号:在 MapInfo.txt 中找到皇宫地图的配置行,确认其地图编号(如 [0150 皇宫])。
• 添加触发参数:在地图配置行的末尾添加 CHECKQUEST(Q001) 参数。完整格式如下:
[0150 皇宫] CHECKQUEST(Q001)
• 参数说明:CHECKQUEST(Q001) 表示进入该地图时,会检查并执行 QFunction-0.txt 中对应的 [@OnMap0150] 脚本段。
三、 进阶实现:机器人定时检测
如果担心玩家在进入地图后重新召唤宠物,可以结合机器人脚本(Robot.txt)进行定时检测。
1. 机器人脚本设置
在 Robot.txt 中添加定时任务,例如每30秒检测一次皇宫地图内的玩家。
; 每30秒检测一次
AutoRunRobot SEC:30 @检测皇宫宠物
2. 机器人执行脚本
在 RobotManage.txt 中添加对应的执行脚本。
[@检测皇宫宠物]
#IF
CheckInMap 0150
CHECKSLAVECOUNT > 0
#ACT
KILLSLAVE
SENDMSG 6 提示:皇宫重地,禁止携带宠物!
四、 注意事项
1. 引擎兼容性:不同引擎(如HeroM2、GOM、GEE)的命令语法可能略有差异,请根据实际使用的引擎文档调整命令格式。
2. 脚本生效:修改 MapInfo.txt 和 QFunction-0.txt 后,通常需要重启服务端或重新加载脚本才能生效。
3. 地图编号:务必确保脚本中的地图编号与 MapInfo.txt 中的实际编号完全一致。
通过以上配置,当玩家携带宠物进入皇宫地图时,系统会自动检测并杀死宠物,实现禁止带宠物的效果。

