当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇地图禁止带宠物脚本设置:多引擎适配与场景化实现方法

热度:
传奇地图禁止带宠物的脚本核心是“地图状态判定+宠物检测+行为拦截”的逻辑闭环。无论是副本、活动地图还是特殊PK区域,都需通过脚本在玩家进入地图时触发检测,根据需求执行“强制收回宠物”或“禁止进入”操作。以下适配GEE、GOM、BLUE等主流引擎,提供可直接复用的完整方案。

一、核心原理:禁止带宠物的3种实现逻辑

不同场景对“禁止带宠物”的需求不同,脚本需匹配对应的实现逻辑,避免功能与地图定位冲突。核心逻辑分为三类,覆盖90%以上的使用场景:

1.前置拦截:带宠物时禁止进入地图

适用于高难度副本、单人挑战地图,核心是在玩家点击传送NPC或通过传送石时,先检测是否携带宠物,未满足条件则拦截并提示原因。优势是从源头杜绝宠物进入,避免后续判定漏洞。

2.强制清理:进入地图后自动收回宠物

适用于团队活动地图、跨服战场,允许玩家进入但自动处理宠物(收回或临时存储),退出地图后恢复宠物状态。既保证地图规则,又提升玩家体验,避免因宠物问题错失进入时机。

3.实时监控:地图内召唤宠物时自动禁止

适用于PK地图、竞技区域,玩家进入后若手动召唤宠物,脚本实时检测并触发拦截,同时给出提示。需结合“地图事件监听”实现,防止玩家规避前置检测。

4.核心依赖命令:各引擎通用检测命令

宠物检测是实现功能的基础,不同引擎检测宠物状态的命令略有差异,但核心功能一致,新手需牢记对应命令:

引擎类型

宠物存在检测命令

强制收回宠物命令

适用场景

GEE引擎

CheckPet1

RecallPet

前置拦截、强制清理

GOM引擎

PetExist

CallBackPet

全场景适配

BLUE引擎

CheckFollowPet

TakeBackPet

强制清理、实时监控

二、实战脚本:分引擎分场景实现(可直接复用)

脚本实现需先明确“地图ID”(如玛雅神殿地图ID为6)和“触发方式”(NPC传送、物品传送、地图传送点),以下案例均标注可修改参数,适配不同服务端配置。

1.GEE引擎:三大核心场景脚本

GEE引擎通过“地图事件触发”和“NPC命令调用”实现,脚本需存放至Mir200\Envir\QuestDiary\QFunction-0.txt,地图配置在MapInfo.txt中关联。

场景1:NPC传送-前置拦截(带宠物禁止进入)

//玛雅神殿传送NPC脚本(地图ID=6,NPC名=副本管理员)
[@Main]
#SAY
欢迎使用玛雅神殿传送服务!<br/>
地图规则:禁止携带任何宠物进入<br/>
<立即传送至玛雅神殿>[@SendToMaya]<返回>[@Exit]

[@SendToMaya]
#IF
//检测是否携带宠物(1=存在宠物,0=无宠物)
CheckPet1
#THEN
#SAY
<COLOR=CLRED>检测到你携带宠物,无法进入该地图!<br/>
请先收回宠物后重试。
#GOTO@Main
#ELSE
//检测是否满足其他条件(等级≥50级,金币≥5万)
CheckLevel50
CheckGold50000
#THEN
#ACT
TakeGold50000
//传送至地图6的坐标300300
MapMove6300300
#MESSAGE成功传送至玛雅神殿,请注意地图规则!
#ELSE
#SAY
<COLOR=CLRED>传送条件不足:<br/>
-等级需≥50级<br/>
-金币需≥5万
#GOTO@Main
#END

场景2:地图进入-强制清理(自动收回宠物)

//沙巴克攻城地图(ID=10)强制收回宠物脚本
//地图进入时自动触发,需在MapInfo.txt中添加“Event=OnEnter@ClearPet”
[@ClearPet]
#IF
//检测是否携带宠物
CheckPet1
#THEN
#ACT
//强制收回所有宠物(包括宝宝、英雄)
RecallPet
//存储宠物状态,退出地图时恢复(可选)
Set$PetStatus1
#MESSAGE沙巴克攻城地图禁止携带宠物,已为你自动收回!
#ELSE
#ACT
Set$PetStatus0
#END

//地图退出时恢复宠物(MapInfo.txt添加“Event=OnExit@RestorePet”)
[@RestorePet]
#IF
//判断进入时是否携带宠物
$PetStatus==1
#THEN
#ACT
//恢复宠物跟随状态
SummonPet
#MESSAGE已为你恢复宠物跟随,请查收!
#END

2.GOM引擎:适配宠物召唤监控

GOM引擎需通过“宠物召唤事件监听”实现实时拦截,脚本存放至Mir200\Envir\QuestDiary\QFunction-1.txt,需开启M2Server“脚本事件监听”权限。

场景3:实时监控-召唤宠物时禁止

//竞技地图(ID=12)禁止召唤宠物脚本
//监听宠物召唤事件,在QFunction-1.txt中添加
[@OnPetSummon]
#IF
//检测当前地图是否为竞技地图(ID=12)
CheckMap12
#THEN
#ACT
//立即收回刚召唤的宠物
CallBackPet
//禁止30秒内再次召唤宠物
Set$PetCoolDown30
#MESSAGE竞技地图禁止召唤宠物,30秒内无法再次召唤!
#ELSE
#END

//宠物召唤冷却时间判断(关联召唤技能)
[@CheckPetCoolDown]
#IF
$PetCoolDown>0
#THEN
#MESSAGE宠物召唤冷却中,剩余{$PetCoolDown}秒!
#ELSE
//允许召唤宠物,执行原技能逻辑
CastSkill召唤神兽
#END

3.BLUE引擎:简化版禁止带宠物脚本

BLUE引擎命令更简洁,适合复古服,脚本存放至Mir200\Envir\QuestDiary\QFunction-0.txt,无需复杂事件配置。

//BLUE引擎-未知暗殿(ID=8)禁止带宠物脚本
[@Main]
#SAY
未知暗殿危险重重,禁止携带宠物进入!<br/>
<传送进入>[@SendToUnknown]

[@SendToUnknown]
#IF
//BLUE检测跟随宠物命令
CheckFollowPet
#THEN
#SAY
<COLOR=RED>你当前有宠物跟随,请收回后再尝试!
#GOTO@Main
#ELSE
CheckLevel45
#THEN
#ACT
TakeItem未知暗殿门票1//消耗门票(ID=1001)
MapMove8250250
#MESSAGE成功进入未知暗殿,祝你好运!
#ELSE
#SAY
<COLOR=RED>条件不足:等级≥45级且持有未知暗殿门票1张
#GOTO@Main
#END

三、脚本配置与地图关联:全流程操作步骤

1.核心配置:地图与脚本关联方法

无论哪种引擎,都需将脚本与目标地图绑定,关键操作在MapInfo.txt文件中完成,该文件位于Mir200\Envir目录,记录所有地图的属性与事件:

1.找到目标地图配置行,如“6玛雅神殿0000”(格式:地图ID地图名其他属性)。

2.添加事件关联:前置拦截无需修改MapInfo.txt,通过NPC触发;强制清理需添加“Event=OnEnter@ClearPet”;退出恢复添加“Event=OnExit@RestorePet”。

3.保存文件后,在M2Server中执行“重读地图信息”命令,使配置生效,无需重启服务器。

2.通用操作步骤(以GEE引擎为例)

1.脚本编写:复制对应场景脚本至QFunction-0.txt,修改“地图ID”“等级要求”“物品ID”等参数(如将玛雅神殿ID=6改为目标地图ID)。

2.地图关联:打开MapInfo.txt,为目标地图添加进入/退出事件,如“6玛雅神殿0000Event=OnEnter@ClearPet;Event=OnExit@RestorePet”。

3.权限开启:进入M2Server“游戏设置-脚本权限”,勾选“允许使用RecallPet命令”“允许地图事件触发”,确保脚本可执行。

4.调试验证:登录测试账号,携带宠物尝试进入目标地图,检查是否触发拦截提示或自动收回宠物,确认功能正常。

四、避坑指南:常见问题与解决方法

1.脚本不执行:3个核心排查点

-地图ID错误:MapInfo.txt中的地图ID与脚本中MapMove命令的ID不一致,如误将10写成100,需通过“M2Server-地图管理”查询准确ID。

-事件未关联:强制清理和实时监控脚本需在MapInfo.txt添加对应事件,仅编写脚本未关联地图会导致事件无法触发。

-权限未开启:GOM引擎的宠物召唤监听需在M2Server“事件配置”中勾选“启用宠物召唤事件”,否则[@OnPetSummon]标签无效。

2.宠物处理不彻底:覆盖所有宠物类型

部分脚本仅处理玩家召唤的宝宝,忽略英雄、临时宠物(如活动奖励的战宠),需补充对应检测命令:

-GEE引擎:添加“CheckHero1”检测是否有英雄,用“RecallHero”收回英雄。

-GOM引擎:用“PetExist2”检测临时宠物,“CallBackPet2”针对性收回。

-BLUE引擎:通过“CheckPetType1”检测宝宝,“CheckPetType2”检测英雄。

3.玩家规避规则:增加二次检测

部分玩家通过“进入地图后召唤宠物”规避前置检测,需在地图内添加定时检测脚本,每30秒执行一次宠物检测:

//GEE引擎地图内定时检测脚本
[@PetCheckLoop]
#IF
CheckMap6//目标地图ID=6
CheckPet1
#THEN
#ACT
RecallPet
#MESSAGE地图内禁止携带宠物,已自动清理!
#END
//30秒后重复执行
Delay30000
#GOTO@PetCheckLoop

五、扩展场景:特殊需求的脚本适配

1.仅禁止特定宠物类型(如神兽)

部分地图允许携带普通宝宝但禁止神兽,需通过宠物名称或类型检测实现,以GEE引擎为例:

//禁止携带神兽进入(神兽名称含“神兽”)
[@CheckSpecialPet]
#IF
//检测宠物名称是否含“神兽”
CheckPetName神兽
#THEN
#SAY
<COLOR=CLRED>该地图禁止携带神兽类宠物,请更换宠物类型!
#GOTO@Main
#ELSE
//允许进入逻辑
#END

2.VIP玩家特殊权限(允许带宠物)

为VIP玩家开放特殊权限,需结合会员等级检测,在脚本中添加条件判断:

//VIP玩家允许带宠物进入(GOM引擎)
[@SendToMaya]
#IF
//VIP等级≥3可跳过宠物检测
CheckVipLevel3
#THEN
#ACT
MapMove6300300
#MESSAGEVIP3及以上玩家特权:可携带宠物进入地图!
#ELSE
//普通玩家宠物检测逻辑
PetExist
#THEN
#SAY
请收回宠物后进入
#ELSE
MapMove6300300
#END
#END

传奇地图禁止带宠物的脚本设置,核心是根据地图场景选择对应逻辑,再匹配引擎命令完成适配。新手可从简单的NPC前置拦截入手,熟悉后再尝试强制清理与实时监控功能。若需针对特定引擎(如HXM2)或特殊宠物类型(如召唤兽、英雄)优化脚本,可补充具体需求获权制方案。
[顶部]