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

传奇地图随机传送常用命令与脚本写法全解

热度:
传奇里“随机传送”分三种场景:当前地图内乱跳、指定地图内限定范围乱跳、进图自动随机落点。命令因引擎不同有差异,下面按GOM/GEE/HERO通用写法拆开,直接能抄进NPC脚本或QFunction-0.txt。

一、当前地图内随机传送(最常用)
GOM引擎:
RandomMove
不加参数就是在玩家当前所在地图找一个可站立坐标传过去。

带范围写法(当前地图内X/Y各随机多少格):
RandomMove30
表示在当前地图以玩家为中心30格范围内随机。

GEE引擎对应命令是RANDOMMAPMOVE,参数要带地图号和坐标范围:
RANDOMMAPMOVE3320340320340
意思是传到3号地图,X在320-340、Y在320-340之间随机。

NPC脚本示例(消耗随机传送卷):
[@随机卷]
IF

CHECKITEM随机传送卷1
ACT

TAKE随机传送卷1
RandomMove
SENDMSG5已随机传送到当前地图
ELSESAY

背包没有随机传送卷

二、指定地图内限定范围随机
GOM写法:
RandomMove地图编号最小X最大X最小Y最大Y
例:RandomMove3200400200400
把玩家传到盟重省(3号图)X200-400、Y200-400区域内随机点。

GEE写法:
RANDOMMAPMOVE3200400200400

如果想“固定基准+随机偏移”,用MOVRP组合:
[@土城随机]
ACT

MOVRP1315345
MOVRP2305335
MAPMOVE3STR(R1)STR(R2)
SENDMSG5土城安全区随机落点完成

三、进图自动随机落点(防扎堆入口)
打开Mir200\Envir\QFunction.txt,找或加[@EnterMap]:
[@EnterMap]
IF

EQUALS23
ACT

RandomMove
BREAK

IF

EQUALS2H001
ACT

MOVV0100
MOVV1300
CALCV2=V0+RANDOM(V1-V0)
CALCV3=V0+RANDOM(V1-V0)
MOVEH001V2V3
BREAK

S2是进入的地图编号,H001换成你自定义地图名,MOVE传指定坐标,RandomMove传当前图。

四、GM命令级随机传送
管理员在游戏里敲:
@Ting把指定人随机传走
@SuperTing指定范围内全员随机传
@Mapmove地图号XY定点传(不是随机,但常配套用)

五、防卡位与安全区校验(必须加)
随机传送最容易传进墙里或怪物堆,脚本里补两层判断:
1.传之前限定安全区坐标(从SafeMap.txt抄范围)
2.传之后检测CHECKINSAFEZONE,不在安全区就再传回中心点

示例:
[@安全回城]
IF

CHECKITEM回城石1
ACT

TAKE回城石1
RANDOMMAPMOVE3320340320340
IF

CHECKINSAFEZONE
ACT

SENDMSG5回城成功
ELSEACT

MAPMOVE3330330
SENDMSG5已修正到安全区中心

六、不同引擎命令对照速查
•当前图随机:GOM用RandomMove,GEE用RANDOMMAPMOVE地图最小X最大X最小Y最大Y

-定点传:GOM用MAPMOVE地图XY,GEE用MOVETOMAP地图XY
•返回上张图:BackMap

•队伍传:GroupMove地图XY

七、调试时注意三点
1.地图编号要和MapList.txt一致,别用客户端显示名当编号。
2.坐标范围别超地图边界,超了引擎会传失败或卡原点。
3.改完脚本在M2控制台点ReloadNpc或重启M2Server,别只保存文件。

按上面分类写:当前图用RandomMove,指定图用RandomMove地图范围,进图自动用[@EnterMap],安全区落点用RANDOMMAPMOVE配CHECKINSAFEZONE,基本覆盖所有传奇随机传送需求。
[顶部]