diff --git a/extension/extension.cpp b/extension/extension.cpp index 9a2390e..57535d4 100644 --- a/extension/extension.cpp +++ b/extension/extension.cpp @@ -324,6 +324,15 @@ DETOUR_DECL_MEMBER9(CBaseServer__ConnectClient, IClient*, netadr_t&, address, in SH_MANUALHOOK_RECONFIGURE(MHook_BeginAuthSession, g_nBeginAuthSessionOffset, 0, 0); SH_ADD_MANUALHOOK(MHook_BeginAuthSession, g_pSteam3Server->m_pSteamGameServer, SH_STATIC(Hook_BeginAuthSession), true); + void** vtable = *((void***)g_pSteam3Server->m_pSteamGameServer); + g_pBeginAuthSession.SetAddress(vtable[g_nBeginAuthSessionOffset]); + + int endAuthOffset = 0; + if (g_pGameConf->GetOffset("ISteamGameServer__EndAuthSession", &endAuthOffset)) + { + g_pEndAuthSession.SetAddress(vtable[endAuthOffset]); + } + g_pLastHookedSteamGameServer = g_pSteam3Server->m_pSteamGameServer; } @@ -374,7 +383,7 @@ DETOUR_DECL_MEMBER9(CBaseServer__ConnectClient, IClient*, netadr_t&, address, in g_pSM->LogMessage(myself, "entered async retry. %s", aSteamID); AsyncWaiting = true; - //reject async nosteamers (althought this statement is not reached even as async nosteamers are rejected with invalid ticket) + //reject async nosteamers or async steam player who is not authenticated if (Storage.SteamAuthFailed) { //we are only here in async state when server is 64/64.