SA-MP Forums Archive
[Ajuda] Anti hack de armas - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Anti hack de armas (/showthread.php?tid=522527)



[Off] Anti hack de armas - zuero - 27.06.2014




Estava procurando um
anti-weapon hack e achei esse aqui \/ code :

pawn Код:
AntiCheatUpdate(playerid);
public AntiCheatUpdate(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;
default: goto stop;
}
format(stringx,128,"[Anti-Noob]: %s Foi kickado [motivo: Arma Proibida: %s ]",pName,ArmaNome);
SendClientMessageToAll(VERMELHO,stringx);
Kick(slot);
stop:
}
}
return true;
}
mas infelismente quanto vou para o /Minigun no meu servidor ele kicka
quem mata de minigun na arena para isso nao acontecer usei a variavel:

new bool:MinigunGranted[MAX_PLAYERS];


na public onplayerdeath coloquei :

MinigunGranted[playerid] = false;

e no comando /minigun coloquei : MinigunGranted[playerid] = true;

mas quem mata ou morre na arena de minigun e kickado mesmo assim como resolvo isso ?


Re: Anti hack de armas - MultiKill - 27.06.2014

Faзa ele verificar se o player estб na arena antes de chutar.
Exemplo:
pawn Код:
CMD:arena(playerid)
{
Exemplo[playerid] = true;
return 1;
}

if(Exemplo[playerid] == true)
{
//Nгo vai acontecer nada caso estiver na arena.
}
else
{
//Vai ser chutado por usar minigun sem estar na arena
}
E quando o player der spawn set a variбvel para falso.


Re: Anti hack de armas - zuero - 27.06.2014

sim eu ja tenho la tem no caso criei a variavel arena ta assim :

arena[playerid] = true;


e dentro do comando tem :

if(arena[playerid] == true)
{
Sendclientemessage.... Voce ja esta na arena !!
}

na public onplayerspawn nao tem a variavel

eu coloquei no onplayerdeath se por no onplayer spawn sera q vai funfa ?

mas pq usa else (mais) ??

vou colocar :

if(arena[playerid] == true)
{
//Nгo vai acontecer nada caso estiver na arena.
}
else
{
//Vai ser chutado por usar minigun sem estar na arena
}

no comando ??

vou la testar se der certo volto aqui para te dar + rep


Re: Anti hack de armas - MultiKill - 27.06.2014

Entгo faзa verificar se o player estб na arena antes de chutar o jogador.

Use:
pawn Код:
if(arena[playerid] == true)
Para ver se ele estб na arena e caso nгo esteja, retorne chutando o jogador.


Re: Anti hack de armas - zuero - 27.06.2014

Quote:
Originally Posted by MultiKill
Посмотреть сообщение
Entгo faзa verificar se o player estб na arena antes de chutar o jogador.

Use:
pawn Код:
if(arena[playerid] == true)
Para ver se ele estб na arena e caso nгo esteja, retorne chutando o jogador.

man nao entendi mas tipo vou colocar para verificar aonde ? no comando ? ou em uma das public citadas no post ?


Re: Anti hack de armas - MultiKill - 28.06.2014

Nesta parte:
pawn Код:
format(stringx,128,"[Anti-Noob]: %s Foi kickado [motivo: Arma Proibida: %s ]",pName,ArmaNome);
SendClientMessageToAll(VERMELHO,stringx);
Kick(slot);
stop:



Re: Anti hack de armas - zuero - 28.06.2014

Quote:
Originally Posted by MultiKill
Посмотреть сообщение
Nesta parte:
pawn Код:
format(stringx,128,"[Anti-Noob]: %s Foi kickado [motivo: Arma Proibida: %s ]",pName,ArmaNome);
SendClientMessageToAll(VERMELHO,stringx);
Kick(slot);
stop:
mas vou colocar if(arena[playerid] == true) em cima do format...... ou assim :

pawn Код:
if(arena[playerid] == true)
{
//Nгo vai acontecer nada caso estiver na arena.
}
else
{
//Vai ser chutado por usar minigun sem estar na arena
}
format(stringx,128,"[Anti-Noob]: %s Foi kickado [motivo: Arma Proibida: %s ]",pName,ArmaNome);
SendClientMessageToAll(VERMELHO,stringx);
Kick(slot);
stop:
assim ?? ou do modo citado acima ?



Vou tentar agora...
obrigado por estar me ajudando


Re: Anti hack de armas - zuero - 28.06.2014

man agora mudo o problema agora testei com meu amigo tudo ok mas soq ele nao e admin dei /dararma 2 38 9999
dei uma minigun para ele ele nao foi kickado


Re: Anti hack de armas - MultiKill - 28.06.2014

Tente assim:
pawn Код:
public AntiCheatUpdate(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;
                default: goto stop;
            }
            if(arena[playerid] == false)
            {
                format(stringx,128,"[Anti-Noob]: %s Foi kickado [motivo: Arma Proibida: %s ]",pName,ArmaNome);
                SendClientMessageToAll(VERMELHO,stringx);
                Kick(slot);
            }
            stop:
        }
    }
    return true;
}



Re: Anti hack de armas - zuero - 28.06.2014

Quote:
Originally Posted by MultiKill
Посмотреть сообщение
Tente assim:
pawn Код:
public AntiCheatUpdate(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;
                default: goto stop;
            }
            if(arena[playerid] == false)
            {
                format(stringx,128,"[Anti-Noob]: %s Foi kickado [motivo: Arma Proibida: %s ]",pName,ArmaNome);
                SendClientMessageToAll(VERMELHO,stringx);
                Kick(slot);
            }
            stop:
        }
    }
    return true;
}
mas nao vai kickar quem nao estiver na arena ??