| New file |
| | |
| | | # RendezVous: RMC Protocols: SessionProtocol |
| | | |
| | | The session protocol is presumably responsible for managing creating a game session, joining them and leaving them. A session is first created when logging into the game. |
| | | |
| | | ## Method: `CreateSession` |
| | | Creates a session as the name suggests. Unknown exactly what sessions are used for. |
| | | |
| | | ### Request |
| | | |
| | | ##### Example |
| | | ``` |
| | | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |
| | | |
| | | 00000000 0D 00 50 61 72 74 79 53 65 73 73 69 6F 6E 00 10 ..PartySession.. |
| | | 00000010 DD 0B D5 FC 58 74 4D 36 9F C0 09 48 59 95 0D 00 Ý.ÕüXtM6ŸÀ.HY•.. |
| | | 00000020 00 00 00 00 00 00 00 00 63 00 31 30 64 64 30 62 ........c.10dd0b |
| | | 00000030 64 35 66 63 35 38 37 34 34 64 33 36 39 66 63 30 d5fc58744d369fc0 |
| | | 00000040 30 39 34 38 35 39 39 35 30 64 35 63 35 37 63 35 094859950d5c57c5 |
| | | 00000050 61 32 64 38 66 37 65 33 36 33 66 66 66 66 66 66 a2d8f7e363ffffff |
| | | 00000060 66 66 66 66 66 66 66 66 66 66 30 30 30 30 30 30 ffffffffff000000 |
| | | 00000070 30 30 30 30 30 30 30 30 30 30 30 31 66 66 66 66 000000000001ffff |
| | | 00000080 66 66 66 66 66 66 66 66 66 66 66 66 00 ffffffffffff. |
| | | ``` |
| | | |
| | | > [!TIP] |
| | | > This is just the request data portion of a full packet. Check out a [full request packet dump](../../00_packet_dumps/C2S-SessionProtocol__CreateSession_V1) for this call. |
| | | |
| | | ##### Parsing |
| | | | Name | Description | Type | |
| | | |---------------------|---------------------------------------------------------------------|----------------------------------------------------------| |
| | | | Token | Ticket obtained via UbiServices, identifying the connecting client. | [`String`](../03_structure.md#structure-string) | |
| | | | Client Version Info | Information about the client version | [`ClientVersionInfo`](#client-version-info) | |
| | | | Diagnostic URL | Unknown. | [`Station URL`](../03_structure.md#structure-stationurl) | |
| | | |
| | | ### Successful Response |
| | | |
| | | > [!NOTE] |
| | | > TODO: Example |
| | | |
| | | ##### Parsing |
| | | |
| | | > [!NOTE] It is not clear what much of the response for this method is for or does, and is extracted straight from the game disassembly. |
| | | |
| | | | Name | | | Description | Type | |
| | | |-----------|--------------|--------------|------------------------------------------|-------------------------------------------------| |
| | | | Unknown 1 | | | Unknown. | `u64` | |
| | | | Unknown 2 | | | Unknown. | `u32` | |
| | | | String 1 | | | Unknown. | [`String`](../03_structure.md#structure-string) | |
| | | | UUID 1 | | | Unknown. | [`UUID`](../03_structure.md#structure-uuid) | |
| | | | Unknown 3 | | | Unknown. | `u32` | |
| | | | | | | | | |
| | | | | **Branch 1** | | If `Unknown 3` is not equal to `0`... | | |
| | | | | String 2 | | Unknown. | [`String`](../03_structure.md#structure-string) | |
| | | | | UUID 2 | | Unknown. | [`UUID`](../03_structure.md#structure-uuid) | |
| | | | | ??? | | There may be some additional bytes here. | Unknown. | |
| | | | | Unknown 4 | | Unknown. | `u64` | |
| | | | | String 3 | | Unknown. | [`String`](../03_structure.md#structure-string) | |
| | | | | | | | | |
| | | | | **Branch 2** | | If `Unknown 3` is equal to `0`... | | |
| | | | | Unknown 5 | | Unknown. | `u32` | |
| | | | | | | | | |
| | | | | | **Branch 3** | If `Unknown 5` is not equal to `0`... | | |
| | | | | | String 4 | Unknown. | [`String`](../03_structure.md#structure-string) | |
| | | | | | ??? | There may be some additional bytes here. | Unknown. | |
| | | | | | | | | |
| | | | | Unknown 6 | | Unknown. | `u32` | |