Add improved desync kick protection (#443)

Update GTAV-Classes vendor
This commit is contained in:
maybegreat48
2022-09-12 18:44:47 +00:00
committed by GitHub
parent fccf5c0104
commit db874462c5
43 changed files with 268 additions and 217 deletions

View File

@ -1,6 +1,7 @@
#include "player.hpp"
#include "network/CNetGamePlayer.hpp"
#include "services/friends/friends_service.hpp"
#include "gta_util.hpp"
namespace big
{
@ -10,7 +11,7 @@ namespace big
m_is_friend = friends_service::is_friend(net_game_player);
}
CAutomobile* player::get_current_vehicle() const
CVehicle* player::get_current_vehicle() const
{
if (const auto ped = this->get_ped(); ped != nullptr)
if (const auto vehicle = ped->m_vehicle; vehicle != nullptr)
@ -23,7 +24,7 @@ namespace big
return m_net_game_player == nullptr ? "" : m_net_game_player->get_name();
}
rage::netPlayerData* player::get_net_data() const
rage::rlGamerInfo* player::get_net_data() const
{
return m_net_game_player == nullptr ? nullptr : m_net_game_player->get_net_data();
}
@ -48,6 +49,35 @@ namespace big
return nullptr;
}
rage::snPlayer* player::get_session_player()
{
for (std::uint32_t i = 0; i < gta_util::get_network()->m_game_session_ptr->m_player_count; i++)
{
if (gta_util::get_network()->m_game_session_ptr->m_players[i]->m_player_data.m_host_token == get_net_data()->m_host_token)
{
return gta_util::get_network()->m_game_session_ptr->m_players[i];
}
}
if (gta_util::get_network()->m_game_session_ptr->m_local_player.m_player_data.m_host_token == get_net_data()->m_host_token)
return &gta_util::get_network()->m_game_session_ptr->m_local_player;
return nullptr;
}
rage::snPeer* player::get_session_peer()
{
for (std::uint32_t i = 0; i < gta_util::get_network()->m_game_session_ptr->m_peer_count; i++)
{
if (gta_util::get_network()->m_game_session_ptr->m_peers[i]->m_peer_data.m_gamer_handle_2.m_rockstar_id == get_net_data()->m_gamer_handle_2.m_rockstar_id)
{
return gta_util::get_network()->m_game_session_ptr->m_peers[i];
}
}
return nullptr;
}
uint8_t player::id() const
{
return m_net_game_player == nullptr ? -1 : m_net_game_player->m_player_id;

View File

@ -1,5 +1,7 @@
#pragma once
#include "player_service.hpp"
#include "vehicle/CVehicle.hpp"
#include "network/snSession.hpp"
namespace big
{
@ -23,12 +25,14 @@ namespace big
float screen_position_x = -1.f;
float screen_position_y = -1.f;
[[nodiscard]] CAutomobile* get_current_vehicle() const;
[[nodiscard]] CVehicle* get_current_vehicle() const;
[[nodiscard]] const char* get_name() const;
[[nodiscard]] rage::netPlayerData* get_net_data() const;
[[nodiscard]] rage::rlGamerInfo* get_net_data() const;
[[nodiscard]] CNetGamePlayer* get_net_game_player() const;
[[nodiscard]] CPed* get_ped() const;
[[nodiscard]] CPlayerInfo* get_player_info() const;
[[nodiscard]] class rage::snPlayer* get_session_player();
[[nodiscard]] class rage::snPeer* get_session_peer();
[[nodiscard]] uint8_t id() const;