클라이언트가 하는 일
클라이언트 스크립트는 두 개입니다.
client/boot/main.luau— 로그인 전에 돕니다. 로그인하지 않은 사람도 받을 수 있는 유일한 파일이고, 로비가 여기 있습니다.client/main.luau— 들어간 뒤에 돕니다. 같은 VM 에서 이어서 도므로 로비가 정한 것을 그대로 씁니다.
단계
Chain2D.stage() -- "boot" → "signedIn" → "updated" → "joining" → "joined"
단계는 오르기만 합니다. 아직 오지 않은 단계의 일을 부르면 이유와 함께 거부됩니다 — 로그인 전에 들어가려 하면 "아직 로그인하지 않았습니다"를 받습니다.
들어가기
local ok, why = Chain2D.join(realmId) -- 빈 문자열이면 기본 렐름
if not ok then print(why) end
Chain2D.onJoinFailed(function(reason)
-- 닿은 것이 없으니 잃은 것도 없습니다. 세션도 파일도 그대로이고, 다시 부르면 됩니다.
end)
연결
Chain2D.Connection.connected()
Chain2D.Connection.retry()
Chain2D.Connection.onLost(function(reason)
-- 끊김은 단계가 아닙니다. 로그인도 다운로드도 없던 일이 되지 않습니다.
end)
끊김을 단계가 되감기는 일로 다루면, 방금까지 되던 호출이 갑자기 실패하기 시작하고 창작자가 쓴 어떤 것도 그것을 설명하지 못합니다. 그래서 별개의 축입니다.
매 프레임
Chain2D.onTick(function(delta) end)
메시지
서버와 같습니다. 메시지를 보세요.
Chain2D.Network.send("buy", { item = "rope" })
Chain2D.Network.on("bought", function(payload) end)