I remind reading the calling order is not guaranteed by the engine. A simple way is to hook both functions, and check if a flag was already set on one of them, like this:
Code:
new g_iConnectCheck[33]
public client_putinserver(id)
{
if(!(g_iConnectCheck[id] ^= 1))
client_ingame(id)
}
public client_authorized(id)
{
if(!(g_iConnectCheck[id] ^= 1))
client_ingame(id)
}
public client_disconnect(id)
{
g_iConnectCheck[id] = 0
}
__________________