传奇传送脚本加载地图跳转写法:段落跳转、条件扣费、map与mapmove指令完整示例

来源: 作者: 点击:
传奇脚本里“加载地图跳转”,本质是先写好地图跳转段落,再在NPC对话框、按钮、事件脚本里通过goto、#call、超链接、延迟跳转等方式触发传送。不同引擎命令略有差异,但核心结构都是:段落标记、条件判断、执行命令、地图传送。

最基础的跳转结构

[@main]
SAY
你要去哪里?\
<去比奇/@bjmove>\
<去盟重/@mzmove>\
<关闭/@exit>

[@bjmove]
IF
ACT
map3
break

[@mzmove]
IF
ACT
mapmove3330330
break

这里map后面跟地图编号,会把玩家传到该地图随机坐标;mapmove后面跟地图编号、X坐标、Y坐标,会传送到指定点位。

带条件扣费的传送写法

[@bjmove]
IF
CHECKGOLD1000
ACT
TAKEGOLD1000
map3
SENDMSG6你已传送到比奇城。
break
ELSESAY
你的金币不足1000,无法传送。

这种写法适合做传送员、传送卷轴、地图入口。检测条件通过后,再执行扣费和传送,避免误扣。

带等级、物品、背包检测的写法

[@bjmove]
IF
CHECKLEVEL35
CHECKITEM传送凭证1
CHECKBAGGAGE
ACT
TAKE传送凭证1
mapmove3330330
break
ELSESAY
等级不足35级、缺少传送凭证或背包已满。

CHECKBAGGAGE用于检测背包是否已满,部分引擎也支持CHECKBAGSIZE检测剩余空格。

使用超链接跳转的写法

[@main]
SAY
请选择传送地点:\
<比奇/@bjmove>\
<盟重/@mzmove>\
<关闭/@exit>

超链接里的/@bjmove必须对应下方段落名。如果段落名写错,点击后不会跳转。段落名不要用中文和特殊符号,建议用英文或数字。

使用goto跳转的写法

[@main]
IF
CHECKLEVEL50
ACT
goto@highmove
ELSESAY
等级不足50级。

[@highmove]
ACT
mapmove5100100
break

goto适合把逻辑拆开写。比如先检测条件,再跳转到对应段落执行扣费、传送、提示。不要写太深的多层goto循环,容易增加服务端负担。

使用#call调用子脚本的写法

[@main]
IF
CHECKGOLD500
ACT
TAKEGOLD500
call[传送子脚本.txt]@bjmove
ELSESAY
金币不足。

call适合把多个地图的传送逻辑放到独立文件里,方便维护。路径要与服务端实际文件位置一致。

延迟跳转写法

[@entermap]
ACT
mapmove100100100
DELAYGOTO10000@backcity
break

[@backcity]
ACT
mapmove3330330
SENDMSG6你已返回盟重省。

DELAYGOTO可以实现限时停留。比如进入某个地图后,10秒后自动传回。适合做副本入口、限时地图、活动地图。

死亡回城或事件触发写法

[@PlayDie]
ACT
DELAYGOTO3000@revive
break

[@revive]
ACT
MAPMOVE3330330
SENDMSG6你已死亡返回盟重。

这类写法通常放在QFunction-0.txt等事件触发脚本里。不同引擎触发标签可能不同,需要对照当前引擎文档确认。

多地图选择跳转写法

[@main]
SAY
请选择传送地点:\
<祖玛七层/@zm7>\
<赤月峡谷/@cy>\
<幻境/@hj>\
<关闭/@exit>

[@zm7]
IF
CHECKLEVEL40
ACT
mapmove40200200
break
ELSESAY
等级不足40级。

[@cy]
IF
CHECKLEVEL45
ACT
mapmove50150150
break
ELSESAY
等级不足45级。

[@hj]
IF
CHECKITEM幻境凭证1
ACT
TAKE幻境凭证1
mapmove60100100
break
ELSESAY
缺少幻境凭证。

每个地图单独写一个段落,逻辑更清晰。后期增加地图时,只需复制段落并修改地图编号和条件。

动态坐标跳转写法

[@randommove]
ACT
movrN110
movrN210
mapmove3<STR(N1)><STR(N2)>
break

movr可以生成随机数,配合mapmove能实现随机坐标传送。部分引擎变量命名规则不同,使用前要先确认当前引擎支持的变量范围。

地图编号与地图名的区别

map和mapmove后面通常使用地图编号,例如3、40、50。地图编号需要在服务端地图配置文件中确认,不同版本编号可能不同。有些版本也支持使用地图名,但必须保证地图名与服务端配置一致,否则传送会失败。

常见报错排查

点击无反应,多数是段落名与超链接不一致,或者脚本没有重新加载。

传送失败,多数是地图编号错误、地图文件缺失、地图参数未配置。

扣费后未传送,通常是扣费写在检测之前,或者脚本中缺少break导致逻辑继续执行。

脚本修改后未生效,需要在M2控制台重新加载NPC脚本,部分老引擎需要重启服务端。

文件编码也要注意,NPC脚本建议使用ANSI编码保存,UTF-8容易出现乱码。脚本路径、文件名、段落名都要保持一致,超链接中的/@段名必须与[@段名]完全匹配。
[顶部]