MCPcopy Create free account
hub / github.com/alliedmodders/sourcemod / OnClientDisconnect

Method OnClientDisconnect

core/PlayerManager.cpp:815–844  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

813}
814
815void PlayerManager::OnClientDisconnect(edict_t *pEntity)
816{
817 cell_t res;
818 int client = IndexOfEdict(pEntity);
819 CPlayer *pPlayer = &m_Players[client];
820
821 if (pPlayer->IsConnected())
822 {
823 m_cldisconnect->PushCell(client);
824 m_cldisconnect->Execute(&res, NULL);
825 }
826 else
827 {
828 /* We don't care, prevent a double call */
829 return;
830 }
831
832 if (pPlayer->WasCountedAsInGame())
833 {
834 m_PlayerCount--;
835 }
836
837 List<IClientListener *>::iterator iter;
838 IClientListener *pListener = NULL;
839 for (iter=m_hooks.begin(); iter!=m_hooks.end(); iter++)
840 {
841 pListener = (*iter);
842 pListener->OnClientDisconnecting(client);
843 }
844}
845
846void PlayerManager::OnClientDisconnect_Post(edict_t *pEntity)
847{

Callers

nothing calls this directly

Calls 8

IndexOfEdictFunction · 0.85
IsConnectedMethod · 0.80
PushCellMethod · 0.80
WasCountedAsInGameMethod · 0.80
ExecuteMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
OnClientDisconnectingMethod · 0.45

Tested by

no test coverage detected