handle disable_udp correctly for games
This commit is contained in:
@@ -927,6 +927,7 @@ struct S_JoinGame {
|
|||||||
// Note: The 64 command for PSO DC ends here (the next 4 fields are ignored).
|
// Note: The 64 command for PSO DC ends here (the next 4 fields are ignored).
|
||||||
// newserv sends them anyway for code simplicity reasons.
|
// newserv sends them anyway for code simplicity reasons.
|
||||||
uint8_t episode;
|
uint8_t episode;
|
||||||
|
// Similarly, PSO GC ignores the values in the following fields.
|
||||||
uint8_t unused2; // Should be 1 for PSO PC?
|
uint8_t unused2; // Should be 1 for PSO PC?
|
||||||
uint8_t solo_mode;
|
uint8_t solo_mode;
|
||||||
uint8_t unused3;
|
uint8_t unused3;
|
||||||
@@ -1018,7 +1019,9 @@ struct S_JoinLobby_XB_65_67_68 {
|
|||||||
struct S_LeaveLobby_66_69_Ep3_E9 {
|
struct S_LeaveLobby_66_69_Ep3_E9 {
|
||||||
uint8_t client_id;
|
uint8_t client_id;
|
||||||
uint8_t leader_id;
|
uint8_t leader_id;
|
||||||
le_uint16_t unused;
|
// Note: disable_udp only has an effect for games; it is unused for lobbies.
|
||||||
|
uint8_t disable_udp;
|
||||||
|
uint8_t unused;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 67 (S->C): Join lobby
|
// 67 (S->C): Join lobby
|
||||||
@@ -1448,6 +1451,7 @@ struct C_LoginExtended_PC_9D : C_Login_DC_PC_GC_9D {
|
|||||||
// Not used on GC Episodes 1&2 Trial Edition.
|
// Not used on GC Episodes 1&2 Trial Edition.
|
||||||
// The extended version of this command is used in the same circumstances as
|
// The extended version of this command is used in the same circumstances as
|
||||||
// when PSO PC uses the extended version of the 9D command.
|
// when PSO PC uses the extended version of the 9D command.
|
||||||
|
// header.flag is 1 if the client has UDP disabled.
|
||||||
|
|
||||||
struct C_Login_GC_9E : C_Login_DC_PC_GC_9D {
|
struct C_Login_GC_9E : C_Login_DC_PC_GC_9D {
|
||||||
union ClientConfigFields {
|
union ClientConfigFields {
|
||||||
|
|||||||
+1
-1
@@ -672,7 +672,7 @@ void ProxyServer::LinkedSession::send_to_game_server(const char* error_message)
|
|||||||
}
|
}
|
||||||
uint8_t leaving_id = x;
|
uint8_t leaving_id = x;
|
||||||
uint8_t leader_id = this->lobby_client_id;
|
uint8_t leader_id = this->lobby_client_id;
|
||||||
S_LeaveLobby_66_69_Ep3_E9 cmd = {leaving_id, leader_id, 0};
|
S_LeaveLobby_66_69_Ep3_E9 cmd = {leaving_id, leader_id, 1, 0};
|
||||||
this->client_channel.send(0x69, leaving_id, &cmd, sizeof(cmd));
|
this->client_channel.send(0x69, leaving_id, &cmd, sizeof(cmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-6
@@ -39,10 +39,14 @@ const unordered_set<uint32_t> v2_crypt_initial_client_commands({
|
|||||||
});
|
});
|
||||||
const unordered_set<uint32_t> v3_crypt_initial_client_commands({
|
const unordered_set<uint32_t> v3_crypt_initial_client_commands({
|
||||||
0x00E000DB, // (17) GC/XB license check
|
0x00E000DB, // (17) GC/XB license check
|
||||||
0x00EC019E, // (02) GC login
|
0x00EC009E, // (02) GC login
|
||||||
0x0150019E, // (02) GC extended login
|
0x00EC019E, // (02) GC login (UDP off)
|
||||||
0x0130019E, // (02) XB login
|
0x0150009E, // (02) GC extended login
|
||||||
0x0194019E, // (02) XB extended login
|
0x0150019E, // (02) GC extended login (UDP off)
|
||||||
|
0x0130009E, // (02) XB login
|
||||||
|
0x0130019E, // (02) XB login (UDP off)
|
||||||
|
0x0194009E, // (02) XB extended login
|
||||||
|
0x0194019E, // (02) XB extended login (UDP off)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -1229,12 +1233,12 @@ void send_player_join_notification(shared_ptr<Client> c,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void send_player_leave_notification(shared_ptr<Lobby> l, uint8_t leaving_client_id) {
|
void send_player_leave_notification(shared_ptr<Lobby> l, uint8_t leaving_client_id) {
|
||||||
S_LeaveLobby_66_69_Ep3_E9 cmd = {leaving_client_id, l->leader_id, 0};
|
S_LeaveLobby_66_69_Ep3_E9 cmd = {leaving_client_id, l->leader_id, 1, 0};
|
||||||
send_command_t(l, l->is_game() ? 0x66 : 0x69, leaving_client_id, cmd);
|
send_command_t(l, l->is_game() ? 0x66 : 0x69, leaving_client_id, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_self_leave_notification(shared_ptr<Client> c) {
|
void send_self_leave_notification(shared_ptr<Client> c) {
|
||||||
S_LeaveLobby_66_69_Ep3_E9 cmd = {c->lobby_client_id, 0, 0};
|
S_LeaveLobby_66_69_Ep3_E9 cmd = {c->lobby_client_id, 0, 1, 0};
|
||||||
send_command_t(c, 0x69, c->lobby_client_id, cmd);
|
send_command_t(c, 0x69, c->lobby_client_id, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31187,7 +31187,7 @@ I 80350 2022-07-07 23:27:19 - [Commands] Received from C-8 (NO DATA) (version=BB
|
|||||||
0000 | 20 00 A0 00 00 00 00 00 00 00 01 00 5B 30 B0 21 | [0 !
|
0000 | 20 00 A0 00 00 00 00 00 00 00 01 00 5B 30 B0 21 | [0 !
|
||||||
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
||||||
I 80350 2022-07-07 23:27:19 - [Commands] Sending to C-8 (NO DATA) (version=BB command=0069 flag=00000000)
|
I 80350 2022-07-07 23:27:19 - [Commands] Sending to C-8 (NO DATA) (version=BB command=0069 flag=00000000)
|
||||||
0000 | 0C 00 69 00 00 00 00 00 00 00 00 00 | i
|
0000 | 0C 00 69 00 00 00 00 00 00 00 01 00 | i
|
||||||
I 80350 2022-07-07 23:27:19 - [Commands] Sending to C-8 (NO DATA) (version=BB command=001A flag=00000000)
|
I 80350 2022-07-07 23:27:19 - [Commands] Sending to C-8 (NO DATA) (version=BB command=001A flag=00000000)
|
||||||
0000 | 0C 00 D5 00 00 00 00 00 00 00 00 00 |
|
0000 | 0C 00 D5 00 00 00 00 00 00 00 00 00 |
|
||||||
I 80350 2022-07-07 23:27:19 - [Commands] Sending to C-8 (NO DATA) (version=BB command=0019 flag=00000000)
|
I 80350 2022-07-07 23:27:19 - [Commands] Sending to C-8 (NO DATA) (version=BB command=0019 flag=00000000)
|
||||||
@@ -33757,7 +33757,7 @@ I 80350 2022-07-07 23:29:17 - [Commands] Received from C-A (NO DATA) (version=BB
|
|||||||
0000 | 20 00 A0 00 00 00 00 00 00 00 01 00 5B 30 B0 21 | [0 !
|
0000 | 20 00 A0 00 00 00 00 00 00 00 01 00 5B 30 B0 21 | [0 !
|
||||||
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
||||||
I 80350 2022-07-07 23:29:17 - [Commands] Sending to C-A (NO DATA) (version=BB command=0069 flag=00000000)
|
I 80350 2022-07-07 23:29:17 - [Commands] Sending to C-A (NO DATA) (version=BB command=0069 flag=00000000)
|
||||||
0000 | 0C 00 69 00 00 00 00 00 00 00 00 00 | i
|
0000 | 0C 00 69 00 00 00 00 00 00 00 01 00 | i
|
||||||
I 80350 2022-07-07 23:29:17 - [Commands] Sending to C-A (NO DATA) (version=BB command=001A flag=00000000)
|
I 80350 2022-07-07 23:29:17 - [Commands] Sending to C-A (NO DATA) (version=BB command=001A flag=00000000)
|
||||||
0000 | 0C 00 D5 00 00 00 00 00 00 00 00 00 |
|
0000 | 0C 00 D5 00 00 00 00 00 00 00 00 00 |
|
||||||
I 80350 2022-07-07 23:29:17 - [Commands] Sending to C-A (NO DATA) (version=BB command=0019 flag=00000000)
|
I 80350 2022-07-07 23:29:17 - [Commands] Sending to C-A (NO DATA) (version=BB command=0019 flag=00000000)
|
||||||
|
|||||||
@@ -520,7 +520,7 @@ I 69775 2022-08-27 09:37:06 - [Commands] Received from C-3 (Tali) (version=DC co
|
|||||||
0000 | A0 00 1C 00 00 00 01 00 77 77 77 77 00 00 00 00 | wwww
|
0000 | A0 00 1C 00 00 00 01 00 77 77 77 77 00 00 00 00 | wwww
|
||||||
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 |
|
||||||
I 69775 2022-08-27 09:37:06 - [Commands] Sending to C-3 (Tali) (version=DC command=69 flag=00)
|
I 69775 2022-08-27 09:37:06 - [Commands] Sending to C-3 (Tali) (version=DC command=69 flag=00)
|
||||||
0000 | 69 00 08 00 00 00 00 00 | i
|
0000 | 69 00 08 00 00 00 01 00 | i
|
||||||
I 69775 2022-08-27 09:37:06 - [Commands] Sending to C-3 (Tali) (version=DC command=1A flag=00)
|
I 69775 2022-08-27 09:37:06 - [Commands] Sending to C-3 (Tali) (version=DC command=1A flag=00)
|
||||||
0000 | 1A 00 08 00 00 00 00 00 |
|
0000 | 1A 00 08 00 00 00 00 00 |
|
||||||
I 69775 2022-08-27 09:37:06 - [Commands] Sending to C-3 (Tali) (version=DC command=19 flag=00)
|
I 69775 2022-08-27 09:37:06 - [Commands] Sending to C-3 (Tali) (version=DC command=19 flag=00)
|
||||||
@@ -1612,7 +1612,7 @@ I 69775 2022-08-27 09:38:58 - [Commands] Received from C-5 (Tali) (version=DC co
|
|||||||
0000 | A1 00 1C 00 00 00 01 00 77 77 77 77 00 00 00 00 | wwww
|
0000 | A1 00 1C 00 00 00 01 00 77 77 77 77 00 00 00 00 | wwww
|
||||||
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 |
|
||||||
I 69775 2022-08-27 09:38:58 - [Commands] Sending to C-5 (Tali) (version=DC command=69 flag=00)
|
I 69775 2022-08-27 09:38:58 - [Commands] Sending to C-5 (Tali) (version=DC command=69 flag=00)
|
||||||
0000 | 69 00 08 00 00 00 00 00 | i
|
0000 | 69 00 08 00 00 00 01 00 | i
|
||||||
I 69775 2022-08-27 09:38:58 - [Commands] Sending to C-5 (Tali) (version=DC command=1A flag=00)
|
I 69775 2022-08-27 09:38:58 - [Commands] Sending to C-5 (Tali) (version=DC command=1A flag=00)
|
||||||
0000 | 1A 00 08 00 00 00 00 00 |
|
0000 | 1A 00 08 00 00 00 00 00 |
|
||||||
I 69775 2022-08-27 09:38:58 - [Commands] Sending to C-5 (Tali) (version=DC command=19 flag=00)
|
I 69775 2022-08-27 09:38:58 - [Commands] Sending to C-5 (Tali) (version=DC command=19 flag=00)
|
||||||
|
|||||||
@@ -1274,7 +1274,7 @@ I 70630 2022-08-27 09:46:29 - [Commands] Received from C-3 (Tali) (version=DC co
|
|||||||
0000 | A0 00 1C 00 00 00 01 00 37 F2 62 4E 00 00 00 00 | 7 bN
|
0000 | A0 00 1C 00 00 00 01 00 37 F2 62 4E 00 00 00 00 | 7 bN
|
||||||
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 |
|
||||||
I 70630 2022-08-27 09:46:29 - [Commands] Sending to C-3 (Tali) (version=DC command=69 flag=00)
|
I 70630 2022-08-27 09:46:29 - [Commands] Sending to C-3 (Tali) (version=DC command=69 flag=00)
|
||||||
0000 | 69 00 08 00 00 00 00 00 | i
|
0000 | 69 00 08 00 00 00 01 00 | i
|
||||||
I 70630 2022-08-27 09:46:29 - [Commands] Sending to C-3 (Tali) (version=DC command=1A flag=00)
|
I 70630 2022-08-27 09:46:29 - [Commands] Sending to C-3 (Tali) (version=DC command=1A flag=00)
|
||||||
0000 | 1A 00 08 00 00 00 00 00 |
|
0000 | 1A 00 08 00 00 00 00 00 |
|
||||||
I 70630 2022-08-27 09:46:29 - [Commands] Sending to C-3 (Tali) (version=DC command=19 flag=00)
|
I 70630 2022-08-27 09:46:29 - [Commands] Sending to C-3 (Tali) (version=DC command=19 flag=00)
|
||||||
|
|||||||
@@ -536,7 +536,7 @@ I 80820 2022-07-07 23:34:58 - [Commands] Received from C-3 (Kallea) (version=PC
|
|||||||
I 80820 2022-07-07 23:35:00 - [Commands] Received from C-3 (Kallea) (version=PC command=84 flag=00)
|
I 80820 2022-07-07 23:35:00 - [Commands] Received from C-3 (Kallea) (version=PC command=84 flag=00)
|
||||||
0000 | 0C 00 84 00 33 00 00 33 01 00 00 00 | 3 3
|
0000 | 0C 00 84 00 33 00 00 33 01 00 00 00 | 3 3
|
||||||
I 80820 2022-07-07 23:35:00 - [Commands] Sending to C-3 (Kallea) (version=PC command=69 flag=00)
|
I 80820 2022-07-07 23:35:00 - [Commands] Sending to C-3 (Kallea) (version=PC command=69 flag=00)
|
||||||
0000 | 08 00 69 00 00 00 00 00 | i
|
0000 | 08 00 69 00 00 00 01 00 | i
|
||||||
I 80820 2022-07-07 23:35:00 - [Commands] Sending to C-3 (Kallea) (version=PC command=67 flag=01)
|
I 80820 2022-07-07 23:35:00 - [Commands] Sending to C-3 (Kallea) (version=PC command=67 flag=01)
|
||||||
0000 | 5C 04 67 01 00 00 01 00 01 00 00 00 00 00 00 00 | \ g
|
0000 | 5C 04 67 01 00 00 01 00 01 00 00 00 00 00 00 00 | \ g
|
||||||
0010 | 00 00 01 00 78 62 F8 10 7F 00 00 01 00 00 00 00 | xb
|
0010 | 00 00 01 00 78 62 F8 10 7F 00 00 01 00 00 00 00 | xb
|
||||||
@@ -2113,7 +2113,7 @@ I 80820 2022-07-07 23:37:10 - [Commands] Received from C-3 (Kallea) (version=PC
|
|||||||
0000 | 1C 00 A0 00 00 00 01 00 78 62 F8 10 00 00 00 00 | xb
|
0000 | 1C 00 A0 00 00 00 01 00 78 62 F8 10 00 00 00 00 | xb
|
||||||
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 |
|
||||||
I 80820 2022-07-07 23:37:10 - [Commands] Sending to C-3 (Kallea) (version=PC command=69 flag=00)
|
I 80820 2022-07-07 23:37:10 - [Commands] Sending to C-3 (Kallea) (version=PC command=69 flag=00)
|
||||||
0000 | 08 00 69 00 00 00 00 00 | i
|
0000 | 08 00 69 00 00 00 01 00 | i
|
||||||
I 80820 2022-07-07 23:37:10 - [Commands] Sending to C-3 (Kallea) (version=PC command=1A flag=00)
|
I 80820 2022-07-07 23:37:10 - [Commands] Sending to C-3 (Kallea) (version=PC command=1A flag=00)
|
||||||
0000 | 08 00 1A 00 00 00 00 00 |
|
0000 | 08 00 1A 00 00 00 00 00 |
|
||||||
I 80820 2022-07-07 23:37:10 - [Commands] Sending to C-3 (Kallea) (version=PC command=19 flag=00)
|
I 80820 2022-07-07 23:37:10 - [Commands] Sending to C-3 (Kallea) (version=PC command=19 flag=00)
|
||||||
|
|||||||
Reference in New Issue
Block a user