[FilterScript] Anti cheat 1.0 -
RedMF - 14.09.2016
Anti Cheat 1.0
Este anti Cheat esta em fase de desenvolvimento
__________________________________________________ ________________________
Previne o uso do
Skin bug nгo previne todos
Oque e Skin bug ?
Skin bug e um cheat que faz a skin ficar toda contorcida!
__________________________________________________ ________________________
Previne o uso do
Fly
Oque e Fly ?
Cheat que permite o player voar
__________________________________________________ ________________________
Bug's
0 Bugs achados
Creditos:
FilterScript desenvolvido por min
Download
PasteBin
Re: Anti cheat 1.0 -
Bruno13 - 14.09.2016
Nгo aconselho de maneira alguma a verificaзгo que estбs fazendo em OnPlayerUpdate, vc por acaso sabe qual a taxa de atualizaзгo dessa callback? Um timer com intervalo de 4-5 segundos seria mais que justo. Apontaria tambйm algumas faltas de otimizaзхes presentes nas verificaзхes, tambйm na funзгo IsPlayerInWater, que cria uma matriz local, em quanto poderia estar usando uma global e evitando processamento.
Contudo, bom trabalho.
Re: Anti cheat 1.0 - Carlos001 - 14.09.2016
Porque fez na OnPlayerUpdate? faz um time mano ficara bem melhor, й tambem porque criou 2 topicos? poderia apenas ter editado um colocando as coisas novas...
@Topic
Ficou bom, Parabйns.
Re: Anti cheat 1.0 -
ViDaLoKa1 - 14.09.2016
Realmente vocк precisa saber otimizar melhor seus cуdigos, fora isso fico muito bom. Parabйns!
Veja esses tуpico do DraKiNs, pode te ajudar:
Dicas e Truques e Otimizaзхes
Re: Anti cheat 1.0 -
XandyMello - 15.09.2016
PHP Code:
PlayerName(playerid)
{
static Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
return Name;
}
new VerificarAC[MAX_PLAYERS];
public OnPlayerUpdate(playerid)
{
static time;
time = gettime();
if(VerificarAC[playerid] < time)//Intervalo de 1 seg
{
AntiXiter(playerid);
VerificarAC[playerid] = time;
}
return true;
}
forward AntiXiter(playerid);
public AntiXiter(playerid)
{
static
string[100],
Float:x,
Float:y,
Float:z
;
if(GetPlayerWeapon(playerid) != WEAPON_PARACHUTE)
{
switch(GetPlayerAnimationIndex(playerid))
{
case 974, 968, 974, 959, 1539: {} //
default:
{
if(kickado[playerid] == 0)
{
kickado[playerid]++;
format(string, sizeof(string), "[ANTI-CHEAT]: %s foi kickado [Motivo: Skin Bug]", PlayerName(playerid));
SendClientMessageToAll(-1, string);
SetTimerEx("rkick", 500, false, "i", playerid);
print(string);
}
if(!IsPlayerInWater(playerid)
{
GetPlayerPos(playerid, x, y, z);
if(z > 14)
{
if(kickado[playerid] == 0)
{
kickado[playerid]++;
format(string, sizeof(string), "[ANTI-CHEAT]: %s foi kickado [Motivo: Fly]", PlayerName(playerid));
SendClientMessageToAll(-1, string);
SetTimerEx("rkick", 500, false, "i", playerid);
print(string);
}
}
}
}
}
}
}
Re: Anti cheat 1.0 -
RiqueP - 15.09.2016
Quote:
Originally Posted by XandyMello
Vocк poderia fazer esse anti xiter com settimer(contagens) e loops.
Exemplo:
PHP Code:
public OnGameModeInit()
{
SetTimer("AntiXiter", 2000, true);
return 1;
}
PlayerName(playerid) //usar para obter nomes
{
static Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
return Name;
}
forward AntiXiter();
public AntiXiter()
{
static
string[100],
Float:x,
Float:y,
Float:z
;
foreach(Player, playerid) //for(new playerid = 0; i < MAX_PLAYERS; ++i)
{
if(GetPlayerWeapon(playerid) != WEAPON_PARACHUTE)
{
if(GetPlayerAnimationIndex(playerid) != 974) continue;
if(GetPlayerAnimationIndex(playerid) != 968) continue;
if(GetPlayerAnimationIndex(playerid) != 974) continue;
if(kickado[playerid] == 0)
{
kickado[playerid]++;
format(string, sizeof(string), "[ANTI-CHEAT]: %s foi kickado [Motivo: Skin Bug]", PlayerName(playerid));
SendClientMessageToAll(-1, string);
SetTimerEx("rkick", 500, false, "i", playerid);
print(string);
}
}
else if(GetPlayerWeapon(playerid) != WEAPON_PARACHUTE && !IsPlayerInWater(playerid))
{
if(GetPlayerAnimationIndex(playerid) != 959) continue;
if(GetPlayerAnimationIndex(playerid) != 1539) continue;
GetPlayerPos(playerid, x, y, z);
if(z > 14)
{
if(kickado[playerid] == 0)
{
kickado[playerid]++;
format(string, sizeof(string), "[ANTI-CHEAT]: %s foi kickado [Motivo: Fly]", PlayerName(playerid));
SendClientMessageToAll(-1, string);
SetTimerEx("rkick", 500, false, "i", playerid);
print(string);
}
}
}
}
}
foreach й uma include que vocк usa para loops, ela faz as voltas de acordo com a quantidade de players que estгo online no servidor. Ou seja, bem mais rбpida, diferentemente do loops normal(for) que faz as voltas em todas as slot(valor do MAX_PLAYERS).
ps: Eu fiz algumas auteraзхes em seu cуdigo, pois estava muito mal otimizado!
ps2: Parabйns pelo anti xiter.
|
Ele nгo usa foreach e vocк compilou isso?
Re: Anti cheat 1.0 -
RiqueP - 15.09.2016
Pq o foreach estб declarado errado pelo que eu saiba.
PHP Code:
foreach(new i : Player)
Re: Anti cheat 1.0 -
RedMF - 15.09.2016
gente nгo se preocupem jб coloquei em um timer e para verificar todos os players online
logo sai update e novas funзхes.
Re: Anti cheat 1.0 - Carlos001 - 15.09.2016
Quote:
Originally Posted by XandyMello
|
Tambem uso o foreach assim
Re: Anti cheat 1.0 -
Bruno13 - 15.09.2016
Quote:
Originally Posted by RedMF
gente nгo se preocupem jб coloquei em um timer e para verificar todos os players online
logo sai update e novas funзхes.
|
Recomendaria o uso de um timer per-player do que um loop em um timer global...