Quote (Beelzebub)
Можно использовать в качестве урока.
-> (слишком много ошибок, хоть и кода мало)
Вот твой код:
Code
public bool:OnClientConnect(id)
{
decl String:country[45];
decl String:name[MAX_NAME_LENGTH];
decl String:ip[64];
GetClientName(id, name, sizeof(name));
GetClientIP(id, ip, sizeof(ip));
GeoipCountry(ip, country, sizeof(country));
if (GetUserAdmin(id) == INVALID_ADMIN_ID)
{
PrintToChatAll("Игрок подключается %s из %s", name, country);
}
return true;
}
Функция "GetUserAdmin" бесполезна в событии "OnClientConnect", всегда будет INVALID_ADMIN_ID.
Использовать нужно в "OnClientPostAdminCheck".
Если GetUserAdmin(id) != INVALID_ADMIN_ID, то код выше становится бесполезным.
Его нужно использовать внутри условия.
Ты готовишь переменные с помощью decl, но не обезопасил их. Все эти три функции (GetClientName, GetClientIP, GeoipCountry), или какая-то из них - могут не сработать, и получится ты попробуешь вывести значение переменной, хотя в ней нет никакого значения - так и сервер упасть может.