传奇皇宫地图禁止带宠物脚本触发与杀死宝宝设置

来源: 作者: 点击:
核心命令CHECKSLAVECOUNT检测人物携带宠物数量,KILLSLAVE立即清除所有宝宝。地图触发参数CHECKQUEST实现进入地图自动执行脚本。下面详细说明设置流程。

第一步,编写检测清除脚本。在服务端Mir200\Envir\QuestDiary目录下,新建文本文件,命名为KillPet.txt。脚本内容如下:

[@Main]
#IF
CHECKSLAVECOUNT > 0
#ACT
KILLSLAVE
SENDMSG 0 皇宫禁带宠物,你的宝宝已被清除!
#ELSEACT
SENDMSG 0 欢迎进入皇宫地图!


CHECKSLAVECOUNT后的符号和数字定义检测条件,>0表示宠物数量大于零时触发。可改为=1、>=2等具体数值。KILLSLAVE命令无参数,执行后人物所有召唤物立即死亡。SENDMSG发送系统提示,0代表全服公告,改为6则只对当前人物显示。

第二步,配置地图触发参数。打开Mir200\Envir\MapInfo.txt,找到皇宫地图配置行。地图名称通常为“皇宫”或“Palace”,后面有地图编号。在行末添加CHECKQUEST参数,格式为CHECKQUEST(Q001)。Q001对应脚本文件名和标签,需保持一致。例如:

[皇宫] 5 300 300 CHECKQUEST(Q001)


若地图原有其他参数,直接追加,用空格分隔。保存文件前,确认脚本文件KillPet.txt已放入QuestDiary目录。部分引擎要求脚本文件扩展名为.txt,内容编码为ANSI,避免乱码。

第三步,设置多条件检测。如需更严格限制,可增加等级、职业、时间等条件。修改脚本如下:

[@Main]
#IF
CHECKSLAVECOUNT > 0
CHECKLEVELEX < 50
#ACT
KILLSLAVE
SENDMSG 0 50级以下禁带宠物进入皇宫!
MAPMOVE 3 330 330
#ELSEACT
SENDMSG 0 符合进入条件,欢迎!


CHECKLEVELEX < 50检测等级低于50级。MAPMOVE将违规玩家传送回土城,3为土城地图编号,330 330为坐标。多个条件同时满足才执行清除操作。

第四步,添加定时检测机制。防止玩家进入后重新召唤宠物。在RobotManage.txt机器人脚本中,添加定时检测任务。例如每分钟检测一次皇宫地图内所有玩家:

#AutoRun NPC MIN 1 @CheckPalacePet

[@CheckPalacePet]
#IF
CHECKMAPHUMANCOUNT 5 > 0
#ACT
GMEXECUTE 检测地图5宠物


CHECKMAPHUMANCOUNT 5 > 0检测地图编号5(皇宫)是否有玩家。GMEXECUTE调用GM命令,需在QManage.txt中定义具体检测逻辑。

第五步,测试脚本功能。启动服务器,使用带宝宝角色尝试进入皇宫。观察M2server控制台有无报错。若宝宝被清除且收到提示,说明脚本生效。若无效,检查三点:地图编号是否正确,脚本文件名与CHECKQUEST参数是否匹配,引擎是否支持CHECKSLAVECOUNT命令。

常见问题处理。宝宝未被清除,首先确认宠物类型是否被识别。部分引擎将道士骷髅、神兽识别为宠物,法师诱惑的怪物可能不被统计。在怪物数据库Monster.DB中,查看怪物的“从属”字段,设为1才被计为宠物。脚本执行但无提示,检查SENDMSG参数,确保消息类型正确。

高级设置:区分宠物类型。如需保留某些宠物,清除特定类型,使用更精细检测。例如只清除神兽:

#IF
CHECKSLAVENAME 神兽
#ACT
KILLSLAVE


CHECKSLAVENAME检测宠物名称,支持通配符。可列出多个宠物名,用|分隔。

最后,优化玩家体验。清除宝宝前给予警告,让玩家有机会主动收回。修改脚本,加入二次确认:

[@Main]
#IF
CHECKSLAVECOUNT > 0
#ACT
SENDMSG 6 请立即收回宠物,10秒后将被强制清除!
DELAY 10000
CHECKSLAVECOUNT > 0
KILLSLAVE


DELAY 10000延迟10秒,再次检测宠物数量,若仍存在则执行清除。这样避免突然死亡引起不满。

通过以上步骤,你的皇宫地图将实现自动检测并清除宠物功能,维持地图规则。定期检查脚本日志,确保长期稳定运行。