类型 表 库 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)