自定义内存

来自RustedWarfare Wiki

自定义内存(memory)是铁锈1.15加入的一种数据存储方式。

提示:这个页面专指自定义内存,而不包含自定义内存数组(1.15p11更新)的内容。

类型

memory的类型
boolean 布尔值
float 浮点数
number 整数(float)
unit 单位
string 字符串

定义

在[core]节中,可以使用defineUnitMemory@memory来定义内存,内存名字可以是中文,但请注意,应避免使用特殊符号命名。

通过defineUnitMemory定义

在[core]节中添加: defineUnitMemory:类型 名称,类型 名称......

defineUnitMemory例子
defineUnitMemory:boolean is_alive,float xp,unit c_target,unit father,string customText
或者
defineUnitMemory:"""
boolean is_alive,
float xp,
unit c_target,
unit father,
string customText
"""

通过@memory定义

@memory是defineUnitMemory的快捷方式,通常由多行多个@memory组成。更推荐用于模板,defineUnitMemory可以被覆盖,致使定义的内容无法生效,@memory可以避免此种情况。

单个@memory的格式为: @memory 名称:类型

@memory的例子
@memory dir:float
@memory amo:number
@memory armor_f:unit

引用

要引用单位内部的自定义内存,可以直接使用 memory.名称

要引用其他单位的内存,可以使用readUnitMemory ,格式为单位引用.readUnitMemory('名称',type='类型')

readUnitMemory例子
self.customTarget1.readUnitMemory('a',type='number')

修改

在[action]中,可以通过setUnitMemory来直接修改内存的值,格式为setUnitMemory:名称=值,名称=值...

setUnitMemory例子
# [action] 中
setUnitMemory:a=1,b=memory.b+1

1.15p10更新后,也可以通过[core]updateUnitMemory来维持内存更新,即每到达设定时间就进行一次内存更新,格式与setUnitMemory相同,但需要添加到[core]节。通过[core]updateUnitMemoryRate可以设置更新频率(单位为帧,填写0为不停的更新),但请不要填写NaN或NaNs,这使得[core]updateUnitMemoryRate不再更新。