Skip to content

关于事件的缓存数据

相关插件

相关插件:

◆Drill_EventBufferTags 物体管理 - 事件的缓存标签

◆Drill_EventBufferVariables 物体管理 - 事件的缓存变量值

◆Drill_EventBufferSwitches 物体管理 - 事件的缓存开关值

你可以将缓存数据存储到事件身上,

在不离开地图的情况下,可以随时再拿出来使用。

在使用 缓存变量值和缓存开关值 的插件指令时,需要考虑单个与批量的关系,注意看看:批量指令说明 。批量值与数组息息相关,可以与文档“1.系统 > 关于变量数组核心.docx”结合来看。

名词索引

以下你可以按住ctrl键点击下面的词,可以直接定位到想了解的名词:

缓存变量值缓存变量值Debug查看值 窗口字符显示值常用设计 跨事件页的设计 批量用法
缓存开关值缓存开关值Debug查看值 窗口字符显示值常用设计 跨事件页的设计 批量用法
缓存标签事件的缓存标签

【物体管理 - 事件的缓存变量值】

定义

事件缓存变量值: 指存储在事件身上的变量值。

你可以将变量的值存储到事件身上,节约变量的占用,但离开地图失效。

功能来自插件:

Drill_EventBufferVariables 物体管理 - 事件的缓存变量值

存储、读取的方法如下插件指令。

槽位可以是数字,也可以是自定义名称。

用法

1)Debug查看值

使用插件指令,可以直接查看事件的所有缓存的变量值。

2)窗口字符显示值

你也可以指定一个槽位,进行窗口字符显示。

用法与显示变量的窗口字符(\v[21])一样,但只在地图界面中有效。

3)常用设计

事件指令在使用变量时,

经常会出现 等待时差 的问题,如下图。

变量被赋值后,如果没立即使用,

那么后续其它并行的事件,可能会再次用到这个变量,被赋值成别的值。

因此,为了防止值被改变,需要将值暂存。

如果 某并行指令和事件指令 都使用相同名字的 事件缓存变量值,也一样会造成 等待时差问题。缓存变量值本质上是为了单独开一个变量来用,不同功能用不同变量,这样就不冲突了。

4)跨事件页的设计

你可以通过事件注释,来初始化 缓存变量值。

但注意事件注释的用法,分 跨事件页 与 不跨事件页。

跨事件页: 每次进入地图时,赋值一次。

不跨事件页: 每次切换事件页,赋值一次。

(插件指令不区分这个,因为插件指令执行一次就赋值一次,不存在多次赋值)

如果你设计的是全图只能活一次的boss,而不是切换地图就能刷新的小兵,那你只能用 变量、独立开关 来控制了,而不能用 事件缓存变量。

以游戏设计“7.行走图 > 动画序列设计-小爱丽丝伐木.docx”为例,

通过设置 跨事件页, 让木材在当前地图的 木材值为3。

每砍一次,木材减1。

木材归零后,树木倒下。

倒下过程中,切换了事件页,由于变量值跨事件页,所以木材值仍然为0。

想要恢复木材值,只能重新进入地图 或 通过插件指令赋值。

树木倒了之后,进入倒下状态的事件页。离开地图再回来,木材值是恢复成3了,但处于倒下状态的树木,无法被砍。

批量用法

1)批量指令 - 槽位批量

定义中介绍了,单个变量值,存储、读取的功能。

而在实际使用时,经常会遇到批量操作。

如果是 单个事件多个槽位 的批量存储、读取,可以使用下面的指令。

2)批量指令 - 事件批量

如果是 多个事件单个槽位 的批量存储、读取,可以使用下面的指令。

注意,批量事件和批量槽位不能同时设置。如果要给事件[21,22,23,24]的槽位[x,y,z]都存储值,那么要写3条批量事件的存储指令,(批量事件+槽位[x]、批量事件+槽位[y]…这种)或者写4条批量槽位的存储指令。(事件[21]+批量槽位、事件[22]+批量槽位…这种)

3)批量指令 - 使用变量数组

前面介绍的 批量事件、批量槽位 存储读取值,

可以用变量数组来进行交互,如下图。

(注意,用变量数组也要区分 批量事件、批量槽位 的情况)

存储值时,变量数组 和 槽位的数量 必须一致。

读取值时,变量数组没有要求,直接读取即可。

读取值举个例子。现在假设事件的槽位里有两个值,槽位[坐标X,坐标Y],然后我写了指令 "读取 : 槽位[坐标X,坐标Y] : 变量数组[21]"。那么,这时候,变量数组[21]将变成一个长度为2的数组,里面存放着槽位“坐标X”和“坐标Y”的值。
变量数组其它功能,可以去看看文档“1.系统 > 关于变量数组核心.docx”。

示例位置

1)示例 - 本图传送

因为传送有时间差,所以需要提前定好传送的位置,然后存储位置,

在播放动画后,再读取变量执行传送。

2)示例 - 雷环定位

雷环定位技能需要先显示雷环位置,等待几帧后,才会执行雷电打击动画。

所以也需要进行存储读取变量。

3)示例 - 物体管理

在复制小爱丽丝后,将随机变量值存储到复制的小爱丽丝身上,用于筛选显示。

批量筛选时,需要注意区别 事件批量、槽位批量,

可见前面章节 批量指令 - 槽位批量 介绍。

你也可以去看看文档:“9.物体触发 > 物体设计-复制事件的批量管理.docx”。

【物体管理 - 事件的缓存开关值】

定义

事件缓存开关值: 指存储在事件身上的开关值。

使得你可以将开关的值存储到事件身上,节约开关的占用,但离开地图失效。

功能来自插件:

Drill_EventBufferSwitches 物体管理 - 事件的缓存开关值

存储、读取的方法如下插件指令。

槽位可以是数字,也可以是自定义名称。

用法

1)Debug查看值

使用插件指令,可以直接查看事件的所有缓存的开关值。

2)窗口字符显示值

你也可以指定一个槽位,进行窗口字符显示。

用法与显示变量的窗口字符(\v[21])一样,但只在地图界面中有效。

3)常用设计

与前面变量的情况 常用的情况 一样。

使用默认的开关,也经常会出现 等待时差 的问题,如下图。

开关被赋值后,如果没立即使用,

那么后续其它并行的事件,可能会再次用到这个开关,被赋值成别的值。

因此,为了防止值被改变,需要将值暂存。

4)跨事件页的设计

你可以通过事件注释,来初始化 缓存开关值。

但注意事件注释的用法,分 跨事件页 与 不跨事件页。

跨事件页: 每次进入地图时,赋值一次。

不跨事件页: 每次切换事件页,赋值一次。

(插件指令不区分这个,因为插件指令执行一次就赋值一次,不存在多次赋值)

如果你设计的是全图只能活一次的boss,而不是切换地图就能刷新的小兵,那你只能用 开关、独立开关 来控制了,而不能用 事件缓存开关。

批量用法

1)批量指令 - 槽位批量

定义中介绍了,单个开关值,存储、读取的功能。

而在实际使用时,经常会遇到批量操作。

如果是 单个事件多个槽位 的批量存储、读取,可以使用下面的指令。

2)批量指令 - 事件批量

如果是 多个事件单个槽位 的批量存储、读取,可以使用下面的指令。

注意,批量事件和批量槽位不能同时设置。如果要给事件[21,22,23,24]的槽位[x,y,z]都存储值,那么要写3条批量事件的存储指令,(批量事件+槽位[x]、批量事件+槽位[y]…这种)或者写4条批量槽位的存储指令。(事件[21]+批量槽位、事件[22]+批量槽位…这种)

3)批量指令 - 使用变量数组(注意开关值)

前面介绍的 批量事件、批量槽位 存储读取值,

其实也可以用变量数组来进行交互,

开关值的ON和OFF对应了0和1的变量值,如下图。

(注意,用变量数组也要区分 批量事件、批量槽位 的情况)

存储值时,变量数组 和 槽位的数量 必须一致。

读取值时,变量数组没有要求,直接读取即可。

读取值举个例子。现在假设事件的槽位里有两个值,槽位[可爱,活跃],值分别为[ON,OFF],然后我写了指令 "读取 : 槽位[可爱,活跃] : 变量数组[21]"。那么,这时候,变量数组[21]将变成一个长度为2的数组,里面存放着 [1,0] 的值。

另外注意,缓存开关值,支持将变量数组传入并存储,也支持读取取出值,

但取出后,会经过两次转换,这时候值就不一样了。

变量数组其它功能,可以去看看文档“1.系统 > 关于变量数组核心.docx”。

【物体管理 - 事件的缓存标签】

定义

事件的缓存标签: 即事件携带的标识用的标签,一个事件可以携带多个不同的标签。

通过事件标签,可以找到特定的事件群体,来进行相关指令操作。

事件的标签不会重复,重复添加也只会存在一个标签。

用法

1)事件注释添加

你可以通过注释给指定事件添加标签。

标签设置跨事件页。

2)插件指令临时添加

使用插件指令也可以临时添加标签。

缓存标签与筛选器

筛选器来自 固定区域核心 插件的概念。

◆Drill_CoreOfFixedArea 物体触发 - 固定区域核心

你可以结合 ”9.物体触发 > 关于物体触发-固定区域.docx” 了解。

1)缓存标签的筛选

在固定区域核心插件的筛选器中,

可以设置“事件标签列表”实现筛选事件,如下图。

对应的,你需要给特定的事件添加标签,这样才会被筛选器捕获到。

此设置,可以去 物体触发应用 去看看。

2)DEBUG显示筛选的事件id

缓存标签插件提供了获取事件id组的功能,如下图。

你可以先批量获取事件id,将事件id用变量数组接收。

然后再将变量数组转为字符串,如下图。

通过对话框的方式,将转成的字符串显示出来。

相似插件的区别

位置存储器与缓存变量值

位置存储器插件:

Drill_EventPositionRecorder 物体 - 位置存储器

该插件能将位置 存储 在系统中,

但不属于临时变量,这个存储的位置值 能跨地图。

相比于缓存变量值,缓存变量值 存储在事件身上,离开地图就会失效。

从零开始设计(DIY)

复制事件的批量管理(指向)

物体管理中,经常会复制大量的事件。

这些新复制的事件,每个事件都有自己的 缓存数字值或缓存开关值,需要统一管理。

具体可以去看看“9.物体触发 > 物体设计-复制事件的批量管理.docx”。

筛选器设计(指向)

若你在设计 事件接近触发,可以去看文档:”9.物体触发 > 关于事件接近触发.docx”。

其中章节 小爱丽丝要看见小红才打招呼 ,就用到了 筛选器+缓存标签 的功能。

贡献者

暂无相关贡献者

页面历史

暂无最近变更历史
最近更新