向已保存的表中添加新元素

我正在开发一个高级代码系统,您可以输入一个秘密代码,如果代码有效,它将根据您使用的代码奖励您。这是一个非常简单的想法,但我有一些问题。

我有一个包含所有代码的表格,看起来像这样:

GameState.PremiumCodesTable = GameState.PremiumCodesTable or {{code = "X45", value = 30}, {code = "MM4", value = 45}, {code = "B47", value = 100}}

如果游戏第一次运行,GameState.PremiumCodesTable 将为 nil 并且将创建一个新元素在 GameState 表格中,这个表格是 {{code = "X45", value = 30}, {code = "MM4", value = 45}, {code = "B47", value = 100}}

现在,当用户使用有效代码时,它会从表格中删除。最终用户将找到所有的代码,使用它们并且 GameState.PremiumCodesTable 表格将为空。

现在,我想更新游戏,引入一些新代码进行查找。但是,由于 GameState.PremiumCodesTable 已经为空且已保存,它将始终为空。

我如何在以后添加更多代码?

我有一个解决方案,但我不喜欢它,所以我来这里问问。我将像下面这样一个个地添加代码:

GameState.PremiumCodesTable[1] = GameState.PremiumCodesTable[1] or {code = "X45", value = 30}
GameState.PremiumCodesTable[2] = GameState.PremiumCodesTable[2] or {code = "MM4", value = 45}
GameState.PremiumCodesTable[3] = GameState.PremiumCodesTable[3] or {code = "B47", value = 100}

等等......但是,这太占空间了,所以我想把它放在一个大表中,就像上面的表一样。

点赞
用户3574628
用户3574628

使用保存文件存储已使用的代码字符串数组,然后初始化 PremiumCodesTable 包含所有代码的完整数据。这样,保存文件保留最少量的信息,您可以随意处理保存文件。 (您可能需要将代码数据存储在非数组表中,以使其更容易访问。)

GameState.usedCodes = GameState.usedCodes or {}

local PremiumCodesTable = {
  {code = "X45", value = 30},
  {code = "MM4", value = 45},
  {code = "B47", value = 100}
}
2016-08-01 02:34:58