Bom pelo oque eu entendi й mais ou menos assim, fiz este cуdigo por cima porйm nгo sou muito aprofundado neste assunto de anti hack. Se funcionar bem, se nгo funcionar pelo menos tentei ajudar
° No comeзo do GM:
PHP код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
forward AntWeaponHack();
new bool:checkArma[MAX_PLAYERS] = false;
new idArma[MAX_PLAYERS] = 0;
° Em OnGameModeInit:
PHP код:
SetTimer("AntWeaponHack", 3000,1);
° Em OnPlayerDisconnect:
PHP код:
idArma[playerid] = 0;
checkArma[playerid] = false;
° No final do GameMode:
PHP код:
public AntWeaponHack()
{
new aname[MAX_PLAYER_NAME], string[124];
for(new i; i < MAX_PLAYERS; i++)
{
if(GetPlayerWeapon(i) == idArma[i])
{
if(checkArma[i] == true)
{
}
else
{
GetPlayerName(i, aname,sizeof(aname));
format(string, sizeof(string),"[ADM-BOT] O(A) player %s foi banido(a) por usar weapon hack!", aname);
SendClientMessageToAll(-1, string);
return Ban(i);
}
}
else
{
if(checkArma[i] == true)
{
}
else
{
GetPlayerName(i, aname,sizeof(aname));
format(string, sizeof(string),"[ADM-BOT] O(A) player %s foi banido(a) por usar weapon hack!", aname);
SendClientMessageToAll(-1, string);
return Ban(i);
}
}
}
return 1;
}
° Nгo sei qual processador de comandos vocк usa, mas jб fiz este em zcmd, caso nгo use este processador adapte no seu:
PHP код:
CMD:dararma(playerid, params[]) {
new idplayer, idarma, municao, aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], string[124];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Vocк nгo tem acesso a este comando!");
if(!IsPlayerConnected(idplayer)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Este player nгo estб conectado!");
GetPlayerName(playerid, aname,sizeof(aname));
GetPlayerName(idplayer, pname,sizeof(pname));
if(sscanf(params, "ddd", idplayer, idarma, municao)) return SendClientMessage(playerid, -1, "[ ERRO ] Digite: /dararma [id do player] [id da arma] [municao]");
GivePlayerWeapon(idplayer, idarma, municao);
format(string, sizeof(string), "* O(A) administrador(a) %s te deu a arma ID: %d", aname, idarma);
SendClientMessage(idplayer, -1, string);
format(string, sizeof(string), "* %s vocк setou a arma ID: %d para o(a) player %s", aname, idarma, pname);
SendClientMessage(playerid, -1, string);
idArma[idplayer] = idarma;
checkArma[idplayer] = true;
return 1;
}
Obs: Sei que estб faltando vбrias coisas neste cуdigo, Porйm se nгo me engano irб verificar sу oque o player estiver na mгo. Quem quiser adaptar as novas coisas vгo dando quote para ajudar o membro.