Fix Network
Some checks are pending
Nightly Build / Build Nightly (push) Waiting to run
Nightly Build / Recreate Release (push) Blocked by required conditions
Nightly Build / Check Recent Commit (push) Successful in 52s

This commit is contained in:
Mr-X-GTA 2024-10-06 18:24:22 +02:00
parent fa5c7cebdc
commit c28bcb9872
5 changed files with 14 additions and 13 deletions

View File

@ -3,7 +3,7 @@ include(FetchContent)
FetchContent_Declare( FetchContent_Declare(
gtav_classes gtav_classes
GIT_REPOSITORY https://github.com/Mr-X-GTA/GTAV-Classes-1.git GIT_REPOSITORY https://github.com/Mr-X-GTA/GTAV-Classes-1.git
GIT_TAG 98c2c1959e2ba129ccb6268f24f89b49596bbd2b GIT_TAG 6e53c26ac9904e00e3f851826fb61367829eca26
GIT_PROGRESS TRUE GIT_PROGRESS TRUE
CONFIGURE_COMMAND "" CONFIGURE_COMMAND ""
BUILD_COMMAND "" BUILD_COMMAND ""

View File

@ -20,9 +20,7 @@ namespace big
return; return;
if (gta_util::get_network()->m_game_session_ptr->is_host()) if (gta_util::get_network()->m_game_session_ptr->is_host())
{ {
auto& mgr = *(CNetComplaintMgr*)((uint64_t)gta_util::get_network() + 0x2E5A8); gta_util::get_network()->m_game_complaint_mgr.raise_complaint(player->get_net_data()->m_host_token);
mgr.raise_complaint(player->get_net_data()->m_host_token);
// TODO gta_util::get_network()->m_game_complaint_mgr.raise_complaint(player->get_net_data()->m_host_token);
return; return;
} }

View File

@ -11,25 +11,23 @@ namespace big
{ {
void looped::system_update_desync_kick() void looped::system_update_desync_kick()
{ {
// TODO memset(&gta_util::get_network()->m_game_complaint_mgr.m_host_tokens_complained, 0, 64 * sizeof(uint64_t));
auto& mgr = *(CNetComplaintMgr*)((uint64_t)gta_util::get_network() + 0x2E5A8); gta_util::get_network()->m_game_complaint_mgr.m_num_tokens_complained = 0;
memset(&mgr.m_host_tokens_complained, 0, 64 * sizeof(uint64_t));
mgr.m_num_tokens_complained = 0;
for (auto& player : g_player_service->players()) for (auto& player : g_player_service->players())
{ {
if (player.second->is_valid() && player.second->trigger_desync_kick) if (player.second->is_valid() && player.second->trigger_desync_kick)
{ {
mgr.raise_complaint(player.second->get_net_data()->m_host_token); gta_util::get_network()->m_game_complaint_mgr.raise_complaint(player.second->get_net_data()->m_host_token);
} }
} }
if (gta_util::get_network()->m_game_session_state > 3 && gta_util::get_network()->m_game_session_state < 6 if (gta_util::get_network()->m_game_session_state > 3 && gta_util::get_network()->m_game_session_state < 6
&& mgr.m_num_tokens_complained && g_player_service->get_self()->is_valid() && gta_util::get_network()->m_game_complaint_mgr.m_num_tokens_complained && g_player_service->get_self()->is_valid()
&& !g_player_service->get_self()->is_host()) && !g_player_service->get_self()->is_host())
{ {
g_pointers->m_gta.m_reset_network_complaints(&mgr); g_pointers->m_gta.m_reset_network_complaints(&gta_util::get_network()->m_game_complaint_mgr);
} }
} }
} }

View File

@ -61,7 +61,7 @@ namespace big
if (g.protections.kick_rejoin && !NETWORK::NETWORK_IS_ACTIVITY_SESSION() && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) == 0 && !STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS()) if (g.protections.kick_rejoin && !NETWORK::NETWORK_IS_ACTIVITY_SESSION() && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) == 0 && !STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS())
{ {
g_fiber_pool->queue_job([] { g_fiber_pool->queue_job([] {
session::join_session(*(rage::rlSessionInfo*)((uint64_t)gta_util::get_network() + 0x1E448)); // TODO gta_util::get_network()->m_last_joined_session.m_session_info session::join_session(gta_util::get_network()->m_last_joined_session.m_session_info);
}); });
g_notification_service.push_warning("KICKED"_T.data(), "USER_DESYNC_KICKED_REJOIN"_T.data()); g_notification_service.push_warning("KICKED"_T.data(), "USER_DESYNC_KICKED_REJOIN"_T.data());
} }

View File

@ -751,7 +751,12 @@ namespace big
{ {
g_battleye_service.receive_message(player->get_net_game_player()->get_host_token(), &data, size); g_battleye_service.receive_message(player->get_net_game_player()->get_host_token(), &data, size);
} }
else if (player && !player->bad_host) else if (player)
{
g_battleye_service.send_message_to_server(player->get_net_game_player()->get_host_token(), &data, size);
}
if (player && !player->bad_host && player->is_host())
{ {
player->bad_host = true; player->bad_host = true;
g_fiber_pool->queue_job([player] { g_fiber_pool->queue_job([player] {