33#include " ehandle.h"
44#include " CBaseEntity.h"
55#include " CCSPlayerPawn.h"
6+ #include " CRecipientFilters.h"
7+ #include " usermessages.pb.h"
68
79enum class CPlayerConnectedState : uint32_t
810{
@@ -17,8 +19,6 @@ enum class CPlayerConnectedState : uint32_t
1719
1820class CBasePlayerController ;
1921
20- typedef void (*ClientPrint)(CBasePlayerController*, int , const char *, const char *, const char *, const char *, const char *);
21-
2222class CBasePlayerController : public CBaseEntity
2323{
2424public:
@@ -31,9 +31,20 @@ class CBasePlayerController : public CBaseEntity
3131 SCHEMA_FIELD_OFFSET (uint32_t , m_iDesiredFOV, 0 );
3232 SCHEMA_FIELD_OFFSET (bool , m_bIsHLTV, 0 );
3333
34+ int GetPlayerSlot () { return entindex () - 1 ; }
35+
3436 void SendMsg (int destination, const char * message)
3537 {
36- g_Signatures->FetchSignature <ClientPrint>(" ClientPrint" )(this , destination, message, nullptr , nullptr , nullptr , nullptr );
38+ INetworkMessageInternal* pNetMsg = g_pNetworkMessages->FindNetworkMessagePartial (" TextMsg" );
39+ auto data = pNetMsg->AllocateMessage ()->ToPB <CUserMessageTextMsg>();
40+
41+ data->set_dest (destination);
42+ data->add_param (message);
43+
44+ CSingleRecipientFilter filter (this ->GetPlayerSlot ());
45+ g_pGameEventSystem->PostEventAbstract (-1 , false , &filter, pNetMsg, data, 0 );
46+
47+ delete data;
3748 }
3849
3950 void SetPawn (CCSPlayerPawn* pawn)
0 commit comments