所以,我正在开发一个高级代码系统,您可以在其中输入密码,如果代码有效,它将根据您使用的代码奖励您。但是,非常简单的想法,我遇到了一些麻烦。
我有一个包含所有代码的表格,如下所示:
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}
等等......但是,这需要太多的空间,所以我希望只有一个大表,就像上面那个一样。
答案 0 :(得分:1)
使用保存文件存储已使用的代码字符串数组,然后初始化PremiumCodesTable
以包含所有代码的完整数据。这样,保存文件保留了最少量的信息,您可以根据需要自由地处理保存文件。 (您可能需要将代码数据存储在非数组表中,以便于访问。)
GameState.usedCodes = GameState.usedCodes or {}
local PremiumCodesTable = {
{code = "X45", value = 30},
{code = "MM4", value = 45},
{code = "B47", value = 100}
}