Tox1c
Участник
- Сообщения
- 52
- Реакции
- 3
Есть очень простой способ реализовать возможность банить за выход с микса. Правда бан будет локальный.
В warmod.sp есть функция OnClientDisconnect(client). В ее теле достаточно прописать
C-подобный:if (g_live && disconnected_by_user) BanClient(client, 1440, BANFLAG_AUTHID, "Live disconnect." , "" , "sm_addban");
1440 - срок бана в минутах.
"Live disconnect." - причина бана.
Но в начале нужно создать переменную типа bool, например, с именем disconnected_by_user, в которой будет храниться информация о том, вышел ли клиент сам или по какой-то причине его выкинуло. Тело Event_Player_Disc(Handle:event, const String:name[], bool:dontBroadcast) нужно изменить так
Так, например, если игрока выкинет по "timeout", он не будет забанен.C-подобный:public Event_Player_Disc(Handle:event, const String:name[], bool:dontBroadcast) { if (!IsActive(0, true)) return; new client = GetClientOfUserId(GetEventInt(event, "userid")); if (GetConVarBool(g_h_stats_enabled) && g_live && client != 0) { new String:log_string[256]; CS_GetLogString(client, log_string, sizeof(log_string)); new String:reason[128]; GetEventString(event, "reason", reason, sizeof(reason)); /* modified */ if (StrEqual(reason, "Disconnect by user.") ) disconnected_by_user = true; else disconnected_by_user = false; /* end */ Log2Game("\"player_disconnect\" (player \"%s\") (reason \"%s\")", log_string, reason); } }
Измененный код и скомпилированный файл во вложении. Измененные части выделены /* modified */ /* end */
Напишите у кого этот плагин работает, какая версия сурсмода и метамода у вас стоит.