클라이언트가 하는 일

클라이언트 스크립트는 두 개입니다.

  • 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)