[Ajuda] - Anti Weapon Hack
#1

Galera, peguei este anti-cheat aqui, mais ele nao funciona direito, apos ir no comando /minigun e sair ele nao eh kickado caso pegar uma arma proibida, e quando funciona ao entrar ele kicka o ID 0 logo na selecao de skin.

Obs. Teclado ta bugado aqui, nao reparem os erros de PT.

pawn Код:
public OnGameModeInit()
SetTimer ( "AntiCheatUpdate", 3000, 1 );
//------------------------------------------
//http://forum.sa-mp.com/archive/index.php/t-297903.html
new stringx[128];
AntiCheatUpdate();
public AntiCheatUpdate()
{
    new playerid;
    new slot = GetMaxPlayers();
    while(slot--)
    {
        if(IsPlayerConnected(slot) && !IsPlayerAdmin(slot) && !MinigunGranted[playerid])
        {
            new pName[MAX_PLAYER_NAME];
            new ArmaNome[17];
            GetPlayerName(slot, pName, sizeof(pName));
            switch(GetPlayerWeapon(slot))
            {
                case 35: ArmaNome = #Rocket Launcher;
                case 36: ArmaNome = #Bazuca;
                case 37: ArmaNome = #Lanзa Chamas;
                case 38: ArmaNome = #Minigun;
                case 39: ArmaNome = #Satchel Charge;
                case 40: ArmaNome = #Detonador;
                case 44: ArmaNome = #Visгo Noturna;
                case 45: ArmaNome = #Visгo Termal;
                case 18: ArmaNome = #Molotov Cocktail;
                case 17: ArmaNome = #Bomba de Gбs;
                default: goto stop;
            }
            format(stringx,128,"[ANTI-CHEAT]: %s Foi kickado pelo ADMIN-BOT [Motivo: Arma Proibida: %s ]",pName,ArmaNome);
            SendClientMessageToAll(0xFF8040AA,stringx);
            Kick(slot);
            stop:
        }
    }
    return true;
}
Para nao ser kickado na arena minigun/bazuca

pawn Код:
new bool:MinigunGranted[MAX_PLAYERS];//topo do GM

MinigunGranted[playerid] = false;//onplayerconnect

MinigunGranted[playerid] = true;//no comando /minigun


//no anti-cheat substitua a linha
if(IsPlayerConnected(slot) && !IsPlayerAdmin(slot))
//por
if(IsPlayerConnected(slot) && !IsPlayerAdmin(slot) && !MinigunGranted[playerid])
Reply
#2

pawn Код:
new stringx[128];
AntiCheatUpdate();
public AntiCheatUpdate()
{
    new playerid;
    new slot = GetMaxPlayers();
    while(slot--)
    {
        if(IsPlayerConnected(slot))
        {
            new pName[MAX_PLAYER_NAME];
            new ArmaNome[17];
            GetPlayerName(slot, pName, sizeof(pName));
            switch(GetPlayerWeapon(slot))
            {
                case 35: ArmaNome = #Rocket Launcher;
                case 36: ArmaNome = #Bazuca;
                case 37: ArmaNome = #Lanзa Chamas;
                case 38: ArmaNome = #Minigun;
                case 39: ArmaNome = #Satchel Charge;
                case 40: ArmaNome = #Detonador;
                case 44: ArmaNome = #Visгo Noturna;
                case 45: ArmaNome = #Visгo Termal;
                case 18: ArmaNome = #Molotov Cocktail;
                case 17: ArmaNome = #Bomba de Gбs;
                default: goto stop;
            }
            format(stringx,128,"[ANTI-CHEAT]: %s Foi kickado pelo ADMIN-BOT [Motivo: Arma Proibida: %s ]",pName,ArmaNome);
            SendClientMessageToAll(0xFF8040AA,stringx);
            Kick(slot);
     
        }
    }
    return true;
}
Reply
#3

pawn Код:
error 019: not a label: "stop"
Reply
#4

Quando ele sai do minigun ele pode pegar armas hackers que nгo detecta? Se for isso..

pawn Код:
//onplayerdeath
MinigunGranted[playerid] = false;
Reply
#5

Quote:
Originally Posted by zbt
Посмотреть сообщение
Quando ele sai do minigun ele pode pegar armas hackers que nгo detecta? Se for isso..

pawn Код:
//onplayerdeath
MinigunGranted[playerid] = false;
Quando dou kill sou kickado, mais coloquei no comando que sai da arena e funcionou, obrigado +rep aos 2.

#Edit- Ao dar reputacao pro zbt diz que tenho que dar a outra pessoa antes--` bug maluco.
Reply
#6

Quote:
Originally Posted by Luciano*
Посмотреть сообщение
Quando dou kill sou kickado, mais coloquei no comando que sai da arena e funcionou, obrigado +rep aos 2.
Hm, acho que quando o player morre , a arma continua na mгo dele, ai por isso ele й kickado, entгo tem que por no OnPlayerSpawn.
Reply
#7

Eu achei que tinha resolvido mais o problema voltou, toda vez quem alguem й kickado o proximo player que entrar й kickado no login. alguem tem ideia de como arrumar?

Ou se possivel um Codigo de um anti cheater bom que realmente funcione, porque esses da net sу da erros.
Reply
#8

http://www.solidfiles.com/d/2YSx/
Tб em inglкs mais so traduzir.
Reply
#9

Tenta...

Lб em cima
Код:
new Proibido[10] = {
35 || 36 || 37 || 38 || 39 || 40 || 44 || 45 || 18 || 17
};
Код:
public OnPlayerUpdate(playerid)
{
    if(GetPlayerWeapon(playerid) == Proibido)
    {
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pname,sizeof(pname));
    format(string,sizeof(string),"[SERVER]{FFFFFF}O player %s foi banido pelo Ant-Hack. [Weapon-Hack]",pname);
    }
    return 1;
}
Reply
#10

pawn Код:
new gArmas[]
{
    39, // coloqe os ids das armas..
    6
};


// OnGameModeInit
SetTimer("@AntiCheat", 100, true);



// Final...
forward @AntiCheat(); public @AntiCheat()
{
    for(new i, e = GetMaxPlayers();  i != e; ++i){
        if(IsPlayerConnected(i)){
            for(new w; w != sizeof(gArmas); ++w){
                if(GetPlayerWeapon(i) == gArmas[w]){
                    Kick(i);
                }
            }
        }
    }
}
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)