gamecircle.Whispersync.Metadata

类型
gamecircle.*
修订版本 版本 2024.3703
关键词 whispersync,元数据,用户生成

概述

由开发者创建的表,可以与多个数据值关联,并使用 Whispersync 保存。 对于存储数字和单个字符串的额外日期非常有用。 例如:当经典高分榜的分数存储在 Whispersync HighNumberList 中时,可以使用元数据表来保存用户的姓名首字母。

规则

元数据表是开发者在使用 Whispersync 中可以接受元数据作为参数的 Set 函数时必须生成的。 元数据将与 Set 函数中分配的数据一起存储,并且在使用相应的 get 函数时,将返回相同的元数据。

元数据表只能是一个 Lua 表,由字符串字段和这些字段中的字符串值组成。 数字字段和存储在字段中的非字符串值将被转换为字符串,不会与元数据一起存储,甚至可能导致系统运行时错误。

这是一个有效元数据表的示例。

local metadata = {}
metadata.initials = "LOL"
metadata.fullname = " Lewis Oswald Lexington"
metadata.basescore = "2091768"
metadata.timebonus = "80000"
gamecircle.Whispersync.AddToHighNumberList("LocalHighscoreTable", 8675309, "INT", metadata)
--This metadata is VALID

在此示例中,元数据表**无效**,因为有关总分信息的元数据以数字而不是字符串形式保存。

local metadata = {}
metadata.initials = "LOL"
metadata.fullname = " Lewis Oswald Lexington"
metadata.basescore = 2091768
metadata.timebonus = 80000
gamecircle.Whispersync.AddToHighNumberList("LocalHighscoreTable", 8675309, "INT", metadata)
--THIS METADATA IS INVALID, AND MAY NOT BE SAVED CORRECTLY OR COULD CAUSE A CRASH

在此示例中,元数据表**无效**,因为它使用了数字字段。

local metadata = {}
metadata[1] = "LOL"
metadata[2]= " Lewis Oswald Lexington"
metadata[3]= 2091768
metadata[4] = 80000
gamecircle.Whispersync.AddToHighNumberList("LocalHighscoreTable", 8675309, "INT", metadata)
--THIS METADATA IS INVALID, AND MAY NOT BE SAVED CORRECTLY OR COULD CAUSE A CRASH

示例

local numID = "LocalHighscore"  
local gamecircle = require("plugin.gamecircle")  
gamecircle.Init(false, false, true)  
local metadata = {}  
metadata.initials = "LOL"  
metadata.fullname = " Lewis Oswald Lexington"  
metadata.basescore = "2091768"  
metadata.timebonus = "80000"  
gamecircle.Whispersync.SetHighestNumber(numID, 8675309, "INT", metadata)  
local syncNum = gamecircle.WHispersync.GetHighestNumber(numID, "INT")  
print("The highscore " .. syncNum.value .. " was earned by " .. syncNum.metadata.initials)