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;
}
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])
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;
}
error 019: not a label: "stop"
//onplayerdeath
MinigunGranted[playerid] = false;
Quando ele sai do minigun ele pode pegar armas hackers que nгo detecta? Se for isso..
pawn Код:
|
Quando dou kill sou kickado, mais coloquei no comando que sai da arena e funcionou, obrigado +rep aos 2.
|
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; }
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);
}
}
}
}
}