Посмотрел исходники.
void C_ServerDeactivate (plugin_end),
void C_ClientDisconnect ; разница между форвардами в том, что: а) client_disconnect вызывается перед client_disconnected; б) client_disconnected вызывается уже только в том случае, если выполняется условие:
Код:
if (DropClientDetour && !pPlayer->disconnecting)
которое проверяет, что игрок ещё не был отключен (что такое DropClientDetour - я не знаю). Поэтому, как уже написал выше
Minni, вполне можно использовать переопределение форварда на этапе компиляции. Возможно, есть лучшее решение. Можно попробовать также отловить форвард
client_remove и проверить, решит ли это проблему.