From b7d053f31bdb0f35e92a6608f0fe4501e5d3512f Mon Sep 17 00:00:00 2001 From: blattersturm Date: Sun, 14 Mar 2021 11:18:12 +0100 Subject: [PATCH] fix(sessionmanager/rdr3): respond to game's TransitionToSession message This fixes the game bailing with BAIL_ERROR_SESSION_ERROR shortly after initializing (due to this message timing out). --- resources/[system]/sessionmanager-rdr3/rline.proto | 10 ++++++++++ resources/[system]/sessionmanager-rdr3/sm_server.js | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/resources/[system]/sessionmanager-rdr3/rline.proto b/resources/[system]/sessionmanager-rdr3/rline.proto index ed4b078..9084181 100644 --- a/resources/[system]/sessionmanager-rdr3/rline.proto +++ b/resources/[system]/sessionmanager-rdr3/rline.proto @@ -180,3 +180,13 @@ message TransitionReady_PlayerQueue_Parameters { MpSessionRequestIdDto requestId = 5; MpSessionIdDto transferId = 6; }; + +message TransitionToSession_Parameters { + MpTransitionIdDto id = 1; + float x = 2; + float y = 3; +}; + +message TransitionToSessionResult { + uint32 code = 1; +}; \ No newline at end of file diff --git a/resources/[system]/sessionmanager-rdr3/sm_server.js b/resources/[system]/sessionmanager-rdr3/sm_server.js index ef76619..4e6eedc 100644 --- a/resources/[system]/sessionmanager-rdr3/sm_server.js +++ b/resources/[system]/sessionmanager-rdr3/sm_server.js @@ -32,6 +32,8 @@ protobuf.load(GetResourcePath(GetCurrentResourceName()) + "/rline.proto", functi const QueueForSessionResult = root.lookupType("rline.QueueForSessionResult"); const QueueEntered_Parameters = root.lookupType("rline.QueueEntered_Parameters"); const TransitionReady_PlayerQueue_Parameters = root.lookupType("rline.TransitionReady_PlayerQueue_Parameters"); + const TransitionToSession_Parameters = root.lookupType("rline.TransitionToSession_Parameters"); + const TransitionToSessionResult = root.lookupType("rline.TransitionToSessionResult"); const scmds_Parameters = root.lookupType("rline.scmds_Parameters"); function toArrayBuffer(buf) { @@ -173,6 +175,14 @@ protobuf.load(GetResourcePath(GetCurrentResourceName()) + "/rline.proto", functi return {}; }, + async TransitionToSession(source, data) { + const req = TransitionToSession_Parameters.decode(data); + + return makeResponse(TransitionToSessionResult, { + code: 1 // in this message, 1 is success + }); + }, + async QueueForSession_Seamless(source, data) { const req = QueueForSession_Seamless_Parameters.decode(data);