View Single Post
Author Message
kadet.89
Veteran Member
Join Date: Nov 2012
Old 05-30-2021 , 11:55   [CS:GO] Call a function with variable argument
Reply With Quote #1

I need to call this function:
void CBaseServer::SetReservationCookie( uint64 uiCookie, char const *pchReasonFormat, ... )

I have this working detour:
PHP Code:
DETOUR_DECL_MEMBER3(SetReservationCookieDetourvoiduint64uiCookiechar const *,pchReasonFormatunsigned longarg )
{
    return 
DETOUR_MEMBER_CALL(SetReservationCookieDetour)(uiCookiepchReasonFormatarg);

I use DETOUR_MEMBER_MCALL_CALLBACK to call this function. So far I tried passing va_list reference, directly or a link to an empty va_list. Tried to pass 0 or remove the argument. It always leads to crashes.

PHP Code:
    va_list empty_va_list va_list();
    
DETOUR_MEMBER_MCALL_CALLBACK(SetReservationCookieDetourg_pServer)(-602679911""empty_va_list); 
What is the correct way to call this function?

In the leaked sources this function is called in 3 places:
PHP Code:
SetReservationCookienReservationCookie"ReplyReservationRequest" );
SetReservationCookieuiReservationCookie"ReserveServerForQueuedGame: %s"szReservationPayload );
SetReservationCookie( *m_pnReservationCookieSession"[R] Connect from %s"ns_address_renderadr ).String() ); 

Last edited by kadet.89; 05-30-2021 at 11:57.
kadet.89 is offline
Send a message via Skype™ to kadet.89