传奇地图禁止携带宠物脚本设置方法

来源: 作者: 点击:
在传奇服务端中,限制特定地图内使用宠物(包括英雄、召唤兽、虎卫等)需通过地图进入事件检测角色状态,并强制收回或阻止进入。该功能依赖QFunction脚本系统,在玩家踏入地图瞬间触发判断逻辑。

一、确定目标地图编号
首先明确需限制的地图编号,例如“封魔谷”对应地图号201。该编号用于命名脚本文件及条件判断。

二、创建地图专属脚本文件
进入服务端目录 Mir200EnvirQuestDiary,新建以地图编号命名的文本文件,如 201.txt。所有限制逻辑必须写入此文件。

三、添加地图进入检测事件
在 201.txt 中编写角色进入时的处理流程:
[@MapEnter]
IF
CHECKHERO
ACT
SENDMSG 0 该地图禁止携带英雄,请先收回。
MAPMOVE 001 100 100
BREAK

IF
CHECKPET
ACT
SENDMSG 0 该地图禁止携带宠物,请先收回。
MAPMOVE 001 100 100

CHECKHERO 检测是否拥有已召唤英雄,CHECKPET 检测是否存在召唤类宠物(如虎卫、月灵)。任一条件成立即传送回城并中断后续操作。

四、支持自定义宠物类型检测
若需针对特定宠物(如“狐月”),可通过物品或技能判断。例如:
IF
HAVEBUFF 1001
ACT
SENDMSG 0 禁止携带狐月进入。
MAPMOVE 001 100 100

其中 1001 为狐月对应的Buff编号,需根据实际Skill.txt配置调整。

五、防止反复尝试进入
为避免玩家连续踏入,可设置冷却变量:
IF
EQUAL A0 1
ACT
SENDMSG 0 冷却中,稍后再试。
MAPMOVE 001 100 100
BREAK
ELSE
SET A0 1
TIMER 5000 @ResetCD

[@ResetCD]
ACT
SET A0 0

利用 A0 变量标记5秒内禁止再次进入。

六、全局脚本联动(可选)
若多个地图需统一限制,可在 Human.txt 中集中处理:
[@MapEnter_201]
[@MapEnter_202]
[@MapEnter_300]
CALL [QuestDiaryPetRestrict.txt]

将通用逻辑写入 PetRestrict.txt,通过 #CALL 复用代码。

七、测试验证步骤
启动服务端,召唤英雄或宠物;
尝试进入地图201;
观察是否被自动传送并收到提示;
检查未携带宠物时能否正常进入。

若无效,确认:
脚本文件名与地图编号完全匹配;
CHECKHERO / CHECKPET 指令被当前引擎支持;
文件保存为ANSI编码,无BOM头。

通过上述配置,可有效禁止玩家在指定传奇地图内携带任何类型宠物,适用于竞技场、特殊副本或平衡性场景。