Lua 向已保存的表中添加新元素
因此,我正在研究一个高级密码系统,在这个系统中,你可以输入一个密码,如果密码有效,它将根据你使用的密码奖励你。这个想法很简单,但我有点麻烦 我有一个表,其中包含了如下代码:Lua 向已保存的表中添加新元素,lua,coronasdk,Lua,Coronasdk,因此,我正在研究一个高级密码系统,在这个系统中,你可以输入一个密码,如果密码有效,它将根据你使用的密码奖励你。这个想法很简单,但我有点麻烦 我有一个表,其中包含了如下代码: GameState.PremiumCodesTable = GameState.PremiumCodesTable or {{code = "X45", value = 30}, {code = "MM4", value = 45}, {code = "B47", value = 100}} 基本上,如果游戏是第一次运行,
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[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}
等等。。。但是,这占用了太多的空间,因此我希望它只在一个大表中像上面那样。使用保存文件存储已使用的代码字符串数组,然后初始化
PremiumCodesTable
以包含所有代码的完整数据。这样,保存文件将保留最少的信息量,并且您可以获得最大的自由来处理保存文件。(您可能需要将代码数据存储在非数组表中,以便于访问。)
表格。删除
和表格。插入
。想一想{x45=30}
或{x45={type=1,count=2,value=3}
:用简单的表[code]=something
插入,用表[code]=nil
删除(或false
标记使用过的代码),并检查像如果表[code]那么…
GameState.usedCodes = GameState.usedCodes or {}
local PremiumCodesTable = {
{code = "X45", value = 30},
{code = "MM4", value = 45},
{code = "B47", value = 100}
}