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

传奇脚本:杀死怪物直接传送全攻略(附详细修复方案)

热度:
想实现 “杀死指定怪物后,玩家立即传送至目标地图”,但按常规方法在 MapQuest_def 和 MapQuest.txt 添加配置后触发无效?别急!以下是经过验证的解决方案和详细步骤,解决你的燃眉之急!

常规配置方法(附修复重点)

✅ 正确配置流程
MapQuest_def 文件夹

创建脚本文件(如 KillMonTeleport.txt),内容如下:
[地图编号 怪物名称]
#IF
#ACT
MapMove 目标地图编号 X坐标 Y坐标
break

示例(比奇省杀猪传送到盟重安全区):
[0 野猪]
#IF
#ACT
MapMove 3 330 330
break

MapQuest.txt 文件

添加脚本文件名(每行一个):
KillMonTeleport.txt


⚠️ 触发无效的5大原因(90%问题在此!)
怪物名称不匹配

确保 Monster.DB 中的怪物名和脚本 完全一致(区分大小写和空格)。

❌ 错误示例:[0 野猪王] → ✅ 正确:[0 野猪](查看数据库实际名称)。
地图编号错误

脚本中的地图编号需参考 MapInfo.txt 中的实际编号(如比奇省为 0,盟重省为 3)。
脚本格式错误

中括号 [] 内无多余空格:[0 野猪](正确) vs [0 野猪 ](错误)。

#ACT 后直接写指令,不要换行(部分引擎严格限制格式)。
文件路径或加载问题

脚本文件必须放在 MapQuest_def 目录下。

修改后需在 M2Server 点击 重新加载Quest 或重启服务端。
引擎兼容性问题

部分引擎(如GEE)需用 MAP 代替 MapMove,或使用 MonItems 目录触发(见下文方案)。

🔧 终极解决方案:两种100%生效方法

方法一:QF脚本触发(推荐!)

在 QFunction-0.txt 中添加:
[@KillMon]
IF

CheckKillMonName 野猪 ; 检查怪物名
CheckMapName 0 ; 可选:限制地图

ACT

MAP 3 330 330 ; 传送到盟重安全区
SendMsg 6 成功杀死野猪,传送至盟重省!
break

优势:无视地图限制,触发更稳定,支持提示消息!

方法二:MonItems目录触发
在 MonItems 目录创建 怪物名.txt(如 野猪.txt)。

添加内容:

#IF
#ACT
MapMove 3 330 330

注意:此方式需确保服务端开启怪物触发支持。

✨ 测试与排查技巧
查看M2日志

重启服务端时观察是否有 [MapQuest]加载成功 提示,若报错则检查脚本格式。
简化测试

先用 SendMsg 发送提示消息,确认触发是否生效,再添加传送逻辑。
玩家权限

用GM账号测试,避免因玩家权限不足导致传送失败。
[顶部]