그래서 비밀 코드를 입력 할 수있는 프리미엄 코드 시스템에서 작업하고 있으며 코드가 유효하면 사용한 코드를 기반으로 보상을 제공합니다. 아주 간단한 아이디어는, 그러나, 나는 그것에 약간 말썽이있다.이미 저장된 테이블에 새 요소 추가
나는 이런 식으로 뭔가 보이는 모든 코드가있는 테이블이 : 게임을 처음 실행하는 경우
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}
등등 ... 그러나,이 너무 많은 공간을 차지을, 그래서 나는 것과 같은 단지 하나의 큰 테이블에 가지고 싶습니다 위.
'table.remove' 및'table.insert'. 간단한'table [code] = something'으로 삽입하고,'table [code] = '와 함께 제거하고'{x45 = 30}'또는'{x45 = {type = 1, count = 2, nil' (또는 사용 된 코드를 표시하는'false') 그리고'if table [code] then ... '과 같은 체크 – FareakyGnome