Planes
Потерявшиеся точка с запятой
- Сообщения
- 356
- Реакции
- 97
Есть у меня событие player_disconnect, зачастую, работает нормально и выдает информацию о игроке при выходе. Но иногда бывает ошибка и не получает значение iClient
В данном коде он должен обновлять данные игрока, но т.к iCLient == 0 , он не сможет этого сделать.
Как можно получить со 100% вероятностью, информацию о вышедшем игроке?
PHP:
public void Ev_OnPlayerDisconnect(Event hEvent, const char[] sEvent, bool bDontBroadcast)
{
int iClient = GetClientOfUserId(hEvent.GetInt("userid"));
char szBuff[1024], sSteam[128];
int curTime = GetTime();
GetClientAuthId(iClient, AuthId_SteamID64, sSteam, sizeof(sSteam), true); // Получаем SteamID игрока
FormatEx(szBuff, sizeof(szBuff), "UPDATE `HS_UserInfo` SET `disconnected` = '%i', `online` = '0' WHERE `steamid` LIKE '%s'", curTime, sSteam);
g_hDB.Query(DB_CheckERR, szBuff);
}
В данном коде он должен обновлять данные игрока, но т.к iCLient == 0 , он не сможет этого сделать.
PHP:
L 06/20/2019 - 21:13:57: [SM] Exception reported: Client index 0 is invalid
L 06/20/2019 - 21:13:57: [SM] Blaming: HS_UserManager.smx
L 06/20/2019 - 21:13:57: [SM] Call stack trace:
L 06/20/2019 - 21:13:57: [SM] [0] GetClientAuthId
L 06/20/2019 - 21:13:57: [SM] [1] Line 41, HSUM/events.sp::Ev_OnPlayerDisconnect
Как можно получить со 100% вероятностью, информацию о вышедшем игроке?