新开传奇代码功能详解:地图坐标范围检测与怪物事件触发

来源: 作者: 点击:

新开传奇开发中,经常需要使用特定的代码功能来检测地图上的坐标范围,并触发相关的怪物事件或物品生成。以下是一些常用的功能代码:

检测地图坐标范围触发事件(CheckInMapRange)

[@OnTimer12]
#IF
CheckInMapRange 3 354 337 0
; 检测地图3,以坐标(354, 337)为中心,范围0
#ELSEACT
SetOffTimer 12
break
#IF
CheckInMapRange 3 354 337 0
#ACT
CHANGEEXP + 200000
break
这段代码用于在地图特定坐标范围内触发事件,比如根据玩家位置给予经验奖励。

检查坐标范围内的怪物数量(CheckRangeMonCount)

[@Main]
#IF
CheckRangeMonCount 3 330 330 10 < 100
#SAY
地图3的坐标(330, 330)周围范围10内怪物少于100只
#ELSESAY
地图3的坐标(330, 330)周围范围10内怪物多于100只
这段代码用于判断地图指定坐标范围内的怪物数量是否符合条件,并作出相应的响应。

投掷物品到指定坐标范围(THROWITEM)

[@main]
#IF
Random 100
#ACT
ThrowItem 3 330 330 10 回城卷 5|60
这段代码用于在地图指定坐标范围内投掷物品,例如投掷5个回城卷,60秒后可以被捡取。

修改地图怪物外观与显示时间(ChangeMapMonAppr)

#if
#act
ChangeMapMonAppr 3 0 0 0 羊 161 1
sendmsg 5 你已经将地图3中的所有羊显示成鹿外观,有效时间1分钟
这段代码用于将地图中指定坐标范围内的所有怪物外观修改为其他怪物,有效时间为1分钟。

获取地图分身数量(GetMapHumCloneCount)

#if
#act
GetMapHumCloneCount 3 0 0 0 N1
sendmsg 5 你已经在地图3中发现共有分身<$STR(N1)>个
这段代码用于获取地图指定坐标范围内的分身数量,并显示给玩家。

修改地图怪物名称(ChangeMapMonName)

ChangeMapMonName 地图名 X坐标 Y坐标 范围 原怪物名 新怪物名
这段代码用于修改地图中指定坐标范围内的怪物名称。

以上代码功能能够有效地帮助开发者管理游戏中的怪物生成、事件触发以及物品投掷等复杂场景,提升游戏的交互和体验。

检测坐标范围 用于地图事件触发CheckInMapRange代码,可以检查一个坐标范围内怪物数量CheckRangeMonCount,THROWITEM 地图名称 X坐标 Y坐标 范围 物品名称,CHECKRANGEMONCOUNTEX 地图代码 怪物名 X坐标 Y坐标 范围等

1.检测坐标范围用于地图事件触发CheckInMapRange
;==========================================
如:
[@OnTimer12]
#IF
CheckInMapRange 3 354 337 0
;检测是否在地图3 坐标354 337 为中心,范围0
#elseact
SetOffTimer 12
break
#IF
CheckInMapRange 3 354 337 0
#ACT
CHANGEEXP + 200000
break

2.可以检查一个坐标范围内怪物数量。
;==========================================
格式:
CheckRangeMonCount 地图号 X坐标 Y坐标 范围 控制符(=,>,<) 数量

[@Main]
#IF
CheckRangeMonCount 3 330 330 10 < 100
#SAY
地图3的X330Y330十的范围内怪物少于100只
#ELSESAY
地图3的X330Y330十的范围内怪物多于100只

3.可以检查一个坐标范围内怪物数量 CheckRangeMonCount 地图号 X坐标 Y坐标 范围 控制符(=,>,<) 数量
;==========================================
[@Main]
#IF
CheckRangeMonCount 3 330 330 10 < 100
#SAY
地图3的X330Y330十的范围内怪物少于100只
#ELSESAY
地图3的X330Y330十的范围内怪物多于100只

4.格式: THROWITEM 地图名称 X坐标 Y坐标 范围 物品名称 数量|时间(此时间不受M2上的物品可捡时间控制) 捡取条件(0、1、2、3) 叠加物品是否叠加(0或空:叠加;1非叠加)

[@main]
#IF
Random 100
#ACT
ThrowItem 3 330 330 10 回城卷 5|60

捡取条件说明:

0 或者空 任何人都不可以捡,必须等到时间才可以
1 所有人都可以立即拾取。
2 自己与队伍可立即拾取,其他人不可拾取,需等到时间
3 自己可以立即拾取。其他人需要等到时间才可以

;==========================================
5.格式: ChangeMapMonAppr 地图名 X坐标 Y坐标 范围(为3时表示3*3) 怪物名(*不判断) Appr 有效时间(分钟)
备注:当X,Y,范围均为0时,表示地图所有范围;此命令仅对怪物操作,要对宝宝或分身操作,可使用ChangeSlaveAppr

示范:

#if
#act
ChangeMapMonAppr 3 0 0 0 羊 161 1
sendmsg 5 你已经将盟重地图中的所有羊显示成鹿外观,有效时间1分钟


6.功能说明:GetMapHumCloneCount 地图名 X坐标 Y坐标 范围(为3时表示3*3) 变量
备注:当X,Y,范围均为0时,表示地图所有范围

示范:
#if
#act
GetMapHumCloneCount 3 0 0 0 N1
sendmsg 5 你已经将盟重地图中共有分身<$STR(N1)>个

如:<$STR(N1)>无法获取地图号N开头的地图,那么可以将常量更换为:<$const(n1)>


7.修改地图怪物名称ChangeMapMonName 地图名 X坐标 Y坐标 范围(为3时表示3*3) 原怪物名(*不判断) 新怪物名
备注:当X,Y,范围均为0时,表示地图所有范围
;==========================================