Можеш да ползваш съб-плъгин и да забраниш на играчи които нямат валидно SteamID да получават XP, или просто да го запазва само докато излезнат. Това е и добър начин да ги накараш да ползват игра със SteamID, което е и по-лесно за банване по id.
Вариант №1: играчи без SteamID изобщо няма да получават ХР:
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <crxranks>
new bool:g_bIsValidSteam[33]
public plugin_init()
{
register_plugin("CRXRanks: Anti No-Steam", "1.0", "OciXCrom")
}
public client_authorized(id)
{
g_bIsValidSteam[id] = is_valid_steam(id)
}
public crxranks_user_receive_xp(id)
{
return g_bIsValidSteam[id] ? CRXRANKS_HANDLED : CRXRANKS_CONTINUE
}
bool:is_valid_steam(const id)
{
static szAuth[64]
get_user_authid(id, szAuth, charsmax(szAuth))
if(!equali(szAuth, "STEAM_", 6) || equal(szAuth, "STEAM_ID_LAN") || equal(szAuth, "STEAM_ID_PENDING"))
{
return false
}
return true
}
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <crxranks>
new bool:g_bIsValidSteam[33]
public plugin_init()
{
register_plugin("CRXRanks: Anti No-Steam", "1.0", "OciXCrom")
}
public client_authorized(id)
{
g_bIsValidSteam[id] = is_valid_steam(id)
if(!g_bIsValidSteam[id])
{
set_task(3.0, "reset_player_xp", id)
}
}
public reset_player_xp(id)
{
if(is_user_connected(id))
{
crxranks_set_user_xp(id, 0)
}
}
bool:is_valid_steam(const id)
{
static szAuth[64]
get_user_authid(id, szAuth, charsmax(szAuth))
if(!equali(szAuth, "STEAM_", 6) || equal(szAuth, "STEAM_ID_LAN") || equal(szAuth, "STEAM_ID_PENDING"))
{
return false
}
return true
}