데이터

세 개의 서랍이 있습니다. 무엇을 어디에 두는지가 곧 누가 그것을 볼 수 있는지입니다.

Chain2D.Data.game       -- 게임 전체. 랭킹, 공지, 시즌
Chain2D.Data.realm      -- 이 렐름(서버 묶음) 안에서만
Chain2D.Data.player     -- 한 사람의 것
local gold = Chain2D.Data.player.get(player.id, "gold") or 0
Chain2D.Data.player.set(player.id, "gold", gold + 10)

기다립니다

데이터 호출은 네트워크를 건너갑니다. 스크립트는 그 사이 멈추지만 세계는 멈추지 않습니다 — 시뮬레이션은 계속 돌고, 다른 사람들은 계속 움직입니다.

그래서 onTick 안에서 매 틱 데이터를 읽는 것은 하지 마세요. 들어올 때 읽고, 나갈 때 쓰고, 그 사이에는 스크립트가 들고 있는 것을 쓰는 것이 보통의 모양입니다.

Chain2D.Players.playerAdded(function(player)
    state[player.id] = Chain2D.Data.player.get(player.id, "save") or fresh()
end)

Chain2D.Players.playerRemoving(function(player)
    Chain2D.Data.player.set(player.id, "save", state[player.id])
    state[player.id] = nil
end)