向已保存的 table 添加新元素
Adding new elements to a table that has already been saved
所以,我正在开发一个高级代码系统,您可以在其中输入密码,如果密码有效,它会根据您使用的代码奖励您。很简单的想法,但是,我遇到了一些麻烦。
我有一个 table,所有代码看起来像这样:
GameState.PremiumCodesTable = GameState.PremiumCodesTable or {{code = "X45", value = 30}, {code = "MM4", value = 45}, {code = "B47", value = 100}}
基本上,如果游戏是第一次运行,GameState.PremiumCodesTable
将是 nil
并且它会在 GameState
table 中创建新元素,这就是 table: {{code = "X45", value = 30}, {code = "MM4", value = 45}, {code = "B47", value = 100}}
现在,当用户使用有效代码时,它 会从 table 中删除。最终用户会找到所有的代码,使用它们并且 GameState.PremiumCodesTable
table 将是空的。
现在,我想更新游戏并引入一些新代码来查找。但是,由于 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}
等等...但是,这需要太多space,所以我希望它只有一个大table像上面那个。
使用保存文件存储已使用的代码字符串数组,然后初始化PremiumCodesTable
以包含所有代码的完整数据。这样一来,保存文件只保留最少的信息量,并且您可以最大程度地自由处理保存文件。 (您可能需要将代码数据存储在非数组中table以便于访问。)
GameState.usedCodes = GameState.usedCodes or {}
local PremiumCodesTable = {
{code = "X45", value = 30},
{code = "MM4", value = 45},
{code = "B47", value = 100}
}
所以,我正在开发一个高级代码系统,您可以在其中输入密码,如果密码有效,它会根据您使用的代码奖励您。很简单的想法,但是,我遇到了一些麻烦。
我有一个 table,所有代码看起来像这样:
GameState.PremiumCodesTable = GameState.PremiumCodesTable or {{code = "X45", value = 30}, {code = "MM4", value = 45}, {code = "B47", value = 100}}
基本上,如果游戏是第一次运行,GameState.PremiumCodesTable
将是 nil
并且它会在 GameState
table 中创建新元素,这就是 table: {{code = "X45", value = 30}, {code = "MM4", value = 45}, {code = "B47", value = 100}}
现在,当用户使用有效代码时,它 会从 table 中删除。最终用户会找到所有的代码,使用它们并且 GameState.PremiumCodesTable
table 将是空的。
现在,我想更新游戏并引入一些新代码来查找。但是,由于 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}
等等...但是,这需要太多space,所以我希望它只有一个大table像上面那个。
使用保存文件存储已使用的代码字符串数组,然后初始化PremiumCodesTable
以包含所有代码的完整数据。这样一来,保存文件只保留最少的信息量,并且您可以最大程度地自由处理保存文件。 (您可能需要将代码数据存储在非数组中table以便于访问。)
GameState.usedCodes = GameState.usedCodes or {}
local PremiumCodesTable = {
{code = "X45", value = 30},
{code = "MM4", value = 45},
{code = "B47", value = 100}
}