26.07.2012, 00:51
Como eu ando vendo que tem muita gente ainda pedindo anti bots fiz um bem simples.
Vocк pode adicionar nicks de bots a lista de nick completo ou nick parcial.
Vocк pode limitar as conexхes por IP tambйm.
Vocк pode adicionar nicks de bots a lista de nick completo ou nick parcial.
Vocк pode limitar as conexхes por IP tambйm.
pawn Код:
#include a_samp
const MAX_CON_PERM = 5;
const NENHUMA = 0;
const BAN = 1;
const KICK = 2;
enum eNick
{
NickO[24],
NickT[24],
punicao,
};
static stock BotNickInteiro[][eNick] =
{
// nick do bot nick para trocar punicao
{ "aux", "[bot]", KICK},
{ "con", "[bot]", KICK }
};
static stock BotNickParcial[][eNick] =
{
// nick parcial do bot nick para trocar punicao
{ "niex", "[bot]", KICK },
{ "botz", "[bot]", KICK }
};
public OnPlayerConnect(playerid)
{
new nick[24], ip[30];
GetPlayerName(playerid, nick, sizeof nick);
GetPlayerIp(playerid, ip, sizeof ip);
for(new i = 0; i < sizeof BotNickInteiro; i++)
{
if(strcmp(nick, BotNickInteiro[i][NickO], true ) == 0)
{
printf("> Bot Detect: %s[%d] - %s", nick, playerid, ip);
format(nick, sizeof(nick), "%s%d", BotNickInteiro[i][NickT], playerid);
SetPlayerName(playerid, nick);
if(BotNickInteiro[i][punicao] == KICK) Kick(playerid);
else if(BotNickInteiro[i][punicao] == BAN) BanEx(playerid, "BOT");
else if(BotNickInteiro[i][punicao] == NENHUMA) printf("> Nenhuma acao foi feita com o BOT: %s[%d] - %s", nick, playerid, ip);
}
}
for(new i = 0; i < sizeof BotNickParcial; i++)
{
if(strfind(nick, BotNickParcial[i][NickO], true ) != -1)
{
printf("> Bot Detect: %s[%d] - %s", nick, playerid, ip);
format(nick, sizeof(nick), "%s%d", BotNickParcial[i][NickT], playerid);
SetPlayerName(playerid, nick);
if(BotNickParcial[i][punicao] == KICK) Kick(playerid);
else if(BotNickParcial[i][punicao] == BAN) BanEx(playerid, "BOT");
else if(BotNickParcial[i][punicao] == NENHUMA) printf("> Nenhuma acao foi feita com o BOT: %s[%d] - %s", nick, playerid, ip);
}
}
new ipget[30], ips;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
GetPlayerIp(i, ipget, sizeof ipget);
if(strcmp(ipget, ip, true) == 0)
{
ips++;
}
}
}
if(ips > MAX_CON_PERM)
{
printf("> Conexao excedida %s[%d] - %s", nick, playerid, ip);
Kick(playerid);
}
return 1;
}