在传奇游戏开发中,地图事件是增强游戏互动性和趣味性的关键功能。本文将详细介绍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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。