Anti cheat 1.0
#1

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
IsPlayerInWater by stabker


Download
PasteBin

Versгo 1.1 Click aqui
Reply
#2

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.
Reply
#3

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.
Reply
#4

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
Reply
#5

PHP Code:

PlayerName
(playerid
{
     static 
Name[MAX_PLAYER_NAME];
     
GetPlayerName(playeridNameMAX_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 
9749689749591539: {} //
            
default:
            {
                if(
kickado[playerid] == 0)
                {
                    
kickado[playerid]++;
                    
format(stringsizeof(string), "[ANTI-CHEAT]: %s foi kickado [Motivo: Skin Bug]"PlayerName(playerid));
                    
SendClientMessageToAll(-1string);
                    
SetTimerEx("rkick"500false"i"playerid);
                    print(string);
                }
                if(!
IsPlayerInWater(playerid)
                {
                      
GetPlayerPos(playeridxyz);
                    if(
14)
                    {
                        if(
kickado[playerid] == 0)
                        {
                            
kickado[playerid]++;
                            
format(stringsizeof(string), "[ANTI-CHEAT]: %s foi kickado [Motivo: Fly]"PlayerName(playerid));
                            
SendClientMessageToAll(-1string);
                            
SetTimerEx("rkick"500false"i"playerid);
                            print(string);
                        }
                    }
                }
            }
        }
    }

Reply
#6

Quote:
Originally Posted by XandyMello
View Post
Vocк poderia fazer esse anti xiter com settimer(contagens) e loops.

Exemplo:

PHP Code:
public OnGameModeInit()
{
    
SetTimer("AntiXiter"2000true);
    return 
1;
}
PlayerName(playerid//usar para obter nomes
{
     static 
Name[MAX_PLAYER_NAME];
     
GetPlayerName(playeridNameMAX_PLAYER_NAME);
     return 
Name;
}
forward AntiXiter();
public 
AntiXiter()
{
    static
        
string[100],
        
Float:x,
        
Float:y,
        
Float:z
    
;
    foreach(
Playerplayerid//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(stringsizeof(string), "[ANTI-CHEAT]: %s foi kickado [Motivo: Skin Bug]"PlayerName(playerid));
                
SendClientMessageToAll(-1string);
                
SetTimerEx("rkick"500false"i"playerid);
                print(string);
            }
        }
        else if(
GetPlayerWeapon(playerid) != WEAPON_PARACHUTE && !IsPlayerInWater(playerid))
        {
            if(
GetPlayerAnimationIndex(playerid) != 959) continue;
            if(
GetPlayerAnimationIndex(playerid) != 1539) continue;
            
GetPlayerPos(playeridxyz);
            if(
14)
            {
                if(
kickado[playerid] == 0)
                {
                    
kickado[playerid]++;
                    
format(stringsizeof(string), "[ANTI-CHEAT]: %s foi kickado [Motivo: Fly]"PlayerName(playerid));
                    
SendClientMessageToAll(-1string);
                    
SetTimerEx("rkick"500false"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?
Reply
#7

Pq o foreach estб declarado errado pelo que eu saiba.
PHP Code:
foreach(new Player
Reply
#8

gente nгo se preocupem jб coloquei em um timer e para verificar todos os players online
logo sai update e novas funзхes.
Reply
#9

Quote:
Originally Posted by XandyMello
View Post
Nгo, a minha eu uso da maneira que coloquei acima.

Toma: http://www.4shared.com/file/rRydDWBzce/foreach.html?
Tambem uso o foreach assim
Quote:

foreach(Player,playerid)

Reply
#10

Quote:
Originally Posted by RedMF
View Post
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...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)