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

详解GEE引擎:新开传奇MapEvent地图事件配置指南

来源: 作者: 热度:
在传奇游戏开发中,地图事件是增强游戏互动性和趣味性的关键功能。本文将详细介绍GEE引擎中MapEvent地图事件的配置方法,帮助开发者更好地利用这一功能。

启用地图事件触发

首先,确保在M2引擎的“选项”->“功能设置”->“基本设置”中勾选“启用地图事件触发”,否则配置将不会生效。

地图事件配置格式

地图事件的配置文件通常位于Mir200\\Envir\\MapEvent.txt。配置格式如下:

地图号 座标X 座标Y 范围 触发标识 触发条件 触发机率 事件类型
Copy
地图号:指定事件发生的地图编号。
座标X 和 座标Y:指定事件触发的坐标。
范围:指定触发事件的坐标范围。如果设置为0,则只有在指定坐标上才能触发事件;否则,只要进入指定坐标的范围就会触发。
触发标识:指定触发事件的标识,格式为标识:值。标识范围从-1到800,-1代表不检查标识。
触发条件:指定触发事件的类型,格式为代码:物品:组队。代码代表触发类型,物品代表触发所需的物品,组队代表是否需要组队。
触发机率:指定事件触发的概率,数值越大,概率越低。范围从0到999999,0表示98%的概率。
事件类型:指定触发事件后执行的动作,目前只支持脚本事件。
注意事项

在相同地图坐标上,不支持相同的触发标识和条件(触发条件中的物品名称除外)。如果有相同的设置,只有最后一个设置有效。
坐标设置为-1时不检测坐标。
示例配置

以下是一个示例配置,展示了如何在地图3上设置不同的事件:

3 333 333 0 -1:1 1:回城卷:0 2 1:@MapEventDropItem
3 333 333 0 -1:1 2:回城卷:0 2 1:@MapEventPickUpItem
3 338 331 0 -1:1 3:*:0 2 1:@MapEventMine
3 330 330 0 -1:1 4:*:0 2 1:@MapEventWalk
3 331 335 0 -1:1 5:*:0 2 1:@MapEventRun
3 -1 -1 0 -1:0 6:*:0 0 1:@爆物品
Copy
QFunction脚本示例

在QFunction脚本中,可以定义事件触发后的具体动作。例如,@爆物品脚本会在事件触发时发送消息:

[@爆物品]
#ACT
SENDMSG 0 【地图:%m】【物品:%s】【坐标(%x:%y】 255 253
Copy
检测坐标范围触发

可以使用CheckInMapRange函数检测玩家是否在指定坐标范围内,并触发相应的事件:

[@OnTimer12]
#IF
CheckInMapRange 3 354 337 0
#elseact
SetOffTimer 12
break
#IF
CheckInMapRange 3 354 337 0
#ACT
OPENPULSE 0 1
CHANGEEXP + 200000
break

地图事件配置详解 须在M2-选项-功能设置-基本设置-启用地图事件触发勾上才有效,在相同地图座标,不支持相同触发标识及条件(触发条件中的物品名称除外),如果有相同的设置,只有后面一个设置有效 ;地图号 座标X 座标Y 范围 触发标识 触发条件 触发机率 事件类型;和翎风不同的我们这里增加一个范围,如果范围的值是0 那么须在这个坐标上才能触发,否则只要进入这个坐标的范围就会触发;坐标为-1时不检测坐标

地图事件配置详解 须在M2-选项-功能设置-基本设置-启用地图事件触发勾上才有效
Mir200\Envir\MapEvent.txt 配置
;触发标识
; 格式:
; 标识:值
;
; 标识:(-1 - 800) -1 代表不检查标识
; 值: (0 - 1)
;
;

;触发条件

; 格式:
; 代码:物品:组队;
; 代码:
; 0:无效
; 1:扔物品
; 2:捡物品
; 3:挖矿
; 4:走路(不支持物品条件)
; 5:跑步(不支持物品条件)
; 6:爆物品(仅支持人物死亡)
; 7:骑马走动
; 8:骑马跑动
; 9:挖矿(命中一次触发一次,无需挖到矿,也不是每次挥锄头就触发,而是命中一次才触发)

; 物品:(物品名称 - *) * 代表不需要物品
; 组队:(0 - 1) 0为不需要组队,1为须组队才触发(暂时不支持)

;触发机率
; 数字越大,机率越低
; 范围:(0 - 999999) 0 的机率为98%

;事件类型
; 格式
; 代码:内容

; 代码:(现在只支持脚本事件)
; 0:无效
; 1:调用脚本(调用QFunction-0.txt中的内容)
;注意事项
;
; 在相同地图座标,不支持相同触发标识及条件(触发条件中的物品名称除外),如果有相同的设置,只有后面一个设置有效

;地图号 座标X 座标Y 范围 触发标识 触发条件 触发机率 事件类型
;和翎风不同的我们这里增加一个范围,如果范围的值是0 那么须在这个坐标上才能触发,否则只要进入这个坐标的范围就会触发
;坐标为-1时不检测坐标

3 333 333 0 -1:1 1:回城卷:0 2 1:@MapEventDropItem
3 333 333 0 -1:1 2:回城卷:0 2 1:@MapEventPickUpItem
3 338 331 0 -1:1 3:*:0 2 1:@MapEventMine
3 330 330 0 -1:1 4:*:0 2 1:@MapEventWalk
3 331 335 0 -1:1 5:*:0 2 1:@MapEventRun
3 -1 -1 0 -1:0 6:*:0 0 1:@爆物品

QFunction脚本
[@爆物品]
#ACT
;这里的%s表示的打出的物品名称 %x打出的物品X坐标 %y打出的物品Y坐标.
SENDMSG 0 【地图:%m】【物品:%s】【坐标(%x:%y】 255 253
;也可以这样
SENDMSG 0 【地图:%m】【物品:<$SCATTERITEMNAME>】【坐标(<$SCATTERITEMX>:<$SCATTERITEMY>】 255 253

检测坐标范围触发:

[@OnTimer12]
#IF
CheckInMapRange 3 354 337 0
;检测是否以地图3 坐标354,337为中心,范围0触发
#elseact
SetOffTimer 12
break
#IF
CheckInMapRange 3 354 337 0
#ACT
OPENPULSE 0 1
CHANGEEXP + 200000
break
[顶部]