Arrumei o no-reload ..
pawn Code:
#include <a_samp>////////////////////////////////////////////////////////////////////////////////////// #### ######## ###### ######## ######## ### ## ##// ## ## ## ## ## ## ## ## ## ### ###// ## ## ## ## ## ## ## ## #### ####// ## ######## ###### ## ###### ## ## ## ### ##// ## ## ## ## ## ######### ## ##// ## ## ## ## ## ## ## ## ## ##// #### ## ###### ## ######## ## ## ## ##////// Criado por Bruno da Silva (iPs DraKiNs)//// Acesse meu blog sobre programaзгo http://www.brunodasilva.com.br////// -----------------------------------//// Detectar:// bots, ataques/// fake kill// flood chat// publicacao chat// ofensa chat// freeze hack// score hack// money hack// state hack// car teleport// anti ammo hack, noreload,// anti weapon hack, high ping//// ------------------------------------//// http://www.brunodasilva.com.br//// Ingresse tambйm na [iPs]TeaM// wwww.ips-team.forumeiros.com////////////////////////////////////////////////////////////////////////////////////// ------------------------#define Hook%0(%1) \ stock %0_Ex
(%1
)// ------------------------#define varGet(%0) \ getproperty(0,
%0
)// ------------------------#define varSet(%0,%1) \ setproperty(0,
%0,
%1
)// --------------------------enum { // Anti DDos Bots PLAYER_BOT_LEVEL3,
PLAYER_BOT_LEVEL2,
PLAYER_BOT_LEVEL1,
// Anti Cleo4 Fake-kill PLAYER_DEATHFLOOD_LEVEL3,
PLAYER_DEATHFLOOD_LEVEL2,
PLAYER_DEATHFLOOD_LEVEL1,
// Anti Bug Cars PLAYER_SURF_VEHICLE,
PLAYER_CAR_TELEPORT,
PLAYER_STATE_HACK,
// Ammo Weapon PLAYER_NORELOAD_HACK,
PLAYER_WEAPON_HACK,
PLAYER_AMMO_HACK,
// hackings PLAYER_FREEZE_HACK,
PLAYER_SCORE_HACK,
PLAYER_MONEY_HACK,
// Text Chat PLAYER_PUBLISH_TEXT,
PLAYER_OFFEND_TEXT,
PLAYER_FLOOD_TEXT,
// pos cheat PLAYER_TELEPORT_HACK,
PLAYER_AIRBREAK_HACK,
// outros PLAYER_HIGH_PING
}#define INVALID_CHAT_BLOCK#define MAX_STRING_CHAT (128)#define WEAPON_SLOT_HACK (015)#define SERVER_SIDE_DELAY (002)#define MAX_DISTANCE_DEF (83.1)#define MAX_PING (800)// =============================================================================//// OBSERVAЗхES IMPORTANTES:// #define INVALID_CHAT_BLOCK// Em caso de nгo quiser bloquear o texto em caso de texto invбlido// Texto invбlido, spam, flood, palavreado, ofensa, publicaзгo. etc// Ping acima de 1 segundo (1000 ms) poderб ocorrer graves problemas de precisгo no anti cheater.// Em caso de ping muito elevado aconselha-se o uso de SERVER_SIDE_DELAY elevado para maior precisгo// SERVER_SIDE_DELAY equivale ao tempo de delay entre o uso de uma funзгo registrada// que influencia no detectamento do anti cheater. Aconselhбvel 1 a 5 segundos.// Dependendo da conexгo do servidor vocк coloca maior delay ou menor dealay// MAX_DISTANCE_DEF й essencial para busca e detecзгo de anti-teleport e air break// O nъmero padrгo foi calculado e nгo houve bugs por parte do sistema// A ъnica coisa que pode influenciar serб o sistema de SetPlayerPos. Mas o SERVER_SIDE_DELAY supriu isto com precisгo// Este sistema apenas detecta cheaters. Й aconselhavйl a checagem de um administrador humano antes de aplicar o banimento.// ========================================================================================================new connect
= -1;
new Float:g_ucPos
[4];
new databaseIP
[MAX_PLAYERS
][20];
new Float:g_diferencasAngle
[MAX_VEHICLES
];
stock resetBot
(o
);
stock registerBot
(p
);
stock registrarJogador
(playerid
);
// ---------------------------------------------// Nesta parte aparecem funзхes hookeadas// Elas sгo essenciais para ter controle server-side detalhado// Essencial para qualquer anti-hack. Controle minucioso// ---------------------------------------------Hook GivePlayerMoney
(playerid, value
){ return SetPVarInt
(playerid,
#registerMoney, GetPVarInt(playerid, #registerMoney) + value), GivePlayerMoney(playerid, value);}// ---------------------------------------------Hook SetPlayerScore
(playerid, value
){ return SetPVarInt
(playerid,
#registerScore, value), SetPlayerScore(playerid, value);}// ---------------------------------------------Hook PutPlayerInVehicle
(playerid,vehicleid,seatid
){ return SetPVarInt
(playerid,
#registerState, gettime()-SERVER_SIDE_DELAY), PutPlayerInVehicle(playerid, vehicleid, seatid);}// ---------------------------------------------Hook SetPlayerPos
(playerid,
Float:x,
Float:y,
Float:z
){ return SetPVarInt
(playerid,
"tposSet",
gettime()), SetPlayerPos
(playerid, x, y, z
);
}Hook GivePlayerWeapon
(playerid, weaponid, ammo
){ return SetPVarInt
(playerid,
#ammoTime, gettime()), GivePlayerWeapon(playerid, weaponid, ammo), SetPVarInt(playerid, getWeaponNameID(weaponid), ammo + GetPVarInt(playerid, getWeaponNameID(weaponid)));}stock getWeaponNameID
(id
){ static stringWeapon
[12];
return format(stringWeapon,
12,
"wepid%d", id
), stringWeapon;
}// ---------------------------------------------Hook TogglePlayerControllable
(playerid,
bool:control
){ if(control
) { static Float:x,
Float:y,
Float:z;
GetPlayerPos
(playerid,x, y, z
);
SetPVarFloat
(playerid,
"xposControll", x
),
SetPVarFloat
(playerid,
"yposControll", y
),
SetPVarFloat
(playerid,
"zposControll", z
);
} else { SetPVarFloat
(playerid,
"xposControll",
0.0);
SetPVarFloat
(playerid,
"yposControll",
0.0);
SetPVarFloat
(playerid,
"zposControll",
0.0);
} return SetPVarInt
(playerid,
"PlayerControllable",
_:control
), TogglePlayerControllable
(playerid, control
);
}// ---------------------------------------------Hook SetPlayerHealth
(playerid,
Float:health
){ return SetPVarFloat
(playerid,
"healthServerside", health
), SetPlayerHealth
(playerid, health
);
}// ---------------------------------------------Hook SetPlayerArmour
(playerid,
Float:armour
){ return SetPVarFloat
(playerid,
"armourServerside", armour
), SetPlayerArmour
(playerid, armour
);
}// ---------------------------------------------public OnPlayerConnect
(playerid
){ // registrar conexгo logo que o jogador entra return registrarJogador
(playerid
);
}public OnFilterScriptInit
(){ // parte importante para registrar cada jogador em timers e variбveis no inicio do game mode // em caso de reloadfs / loadfs for(new i; i
!= MAX_PLAYERS; i
++) if(IsPlayerConnected
(i
)) registrarJogador
(i
);
}public OnPlayerDisconnect
(playerid, reason
){ // Nгo retire estб parte. Isto serve para nгo enviar mensagens de desconecзгo quando o player й bot ddos if(GetPVarInt
(playerid,
#jogadorDisponivel)) return false; return true;
}stock armaBranca
(armaid
) { switch(armaid
) { case 16,
17,
18,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43: return false;
} return true;
}new const palavreado
[][24] = { "daputa",
"babaca",
"baitola",
"piranha",
"bicha",
"bichona",
"biscat",
"bitch",
"bix",
"boiola",
"boiolona",
"buceta",
"bucetudo",
"cuzona",
"bund",
"burr",
"fude",
"cacet",
"viad",
"caral",
"vadi",
"carai",
"rola",
"chup",
"idiot",
"corno",
"nocu",
"eucu",
"ocu",
"cusa",
"cusi",
"cuza",
"cuzinho",
"piroca",
"embecil",
"fdp",
"foda",
"fode",
"fuck",
"fud",
"hetard",
"homo",
"imbess",
"jegu",
"kacet",
"karai",
"karaleo",
"kct",
"kral",
"krl",
"noku",
"lasarent",
"lazarent",
"mula",
"otari",
"pnc",
"pereb",
"penis",
"pint",
"prosti",
"punhet",
"put",
"retardado",
"tnc",
"viad",
"viadi",
"vsf",
"vtnc",
"sobe",
"vogelz",
"baranga",
"vagab",
"broxa",
"ignorant",
"comed",
"ejacu",
"prosti",
"cachorr",
"surub",
"peni",
"chup",
"pau",
"viad",
"perere",
"bucet",
"bicha.",
"bixa",
"gay",
"desgra",
"troxa",
"tomanocu",
"seucu"};
public OnPlayerText
(playerid, text
[]){ /*--------------------------------------------------
*
* Anti Publicaзгo de IP Inteligente
* Usando OnPlayerText com manipulaзгo de strings e outros
* A precisгo deste sistema estб em torno de 95%
*
* Detecta: 127.0.0.1 | 1 2 7 . 0 0 1 etc
-------------------------------------------------*/ static szText
[MAX_STRING_CHAT
], numerosNochat, j;
numerosNochat
= -1, j
= -1;
for(new i; text
[i
]; i
++) { if(text
[i
] >= '0' && '9' >= text
[i
]) { numerosNochat
++ ;
if(numerosNochat
>= 8) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_PUBLISH_TEXT
);
#if defined INVALID_CHAT_BLOCK return false;
#endif } } switch(text
[i
]) { case '0':{ szText
[j
] = 'o'; j
++;
continue;
} case '1':{ szText
[j
] = 'i'; j
++;
continue;
} case '2':{ szText
[j
] = 'z'; j
++;
continue;
} case '3':{ szText
[j
] = 'e'; j
++;
continue;
} case '4':{ szText
[j
] = 'a'; j
++;
continue;
} case '5':{ szText
[j
] = 's'; j
++;
continue;
} case '6':{ szText
[j
] = 'g'; j
++;
continue;
} case '7':{ szText
[j
] = 't'; j
++;
continue;
} case '8':{ szText
[j
] = 'b'; j
++;
continue;
} case 65 ..
90,
97 ..
122: { szText
[j
] = tolower(text
[i
]); j
++;
continue;
} } } /*--------------------------------------------------
*
* Anti Palavreado Inteligente
* Usando OnPlayerText com manipulaзгo de strings e outros
* A precisгo deste sistema estб em torno de 85%
*
* Detecta: buceta, b - u c |e t-a, buc 3 7 4 etc
-------------------------------------------------*/ for(new i
= 0; i
< sizeof(palavreado
); i
++) { if(strfind(szText, palavreado
[i
], false
) != -1) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_OFFEND_TEXT
);
#if defined INVALID_CHAT_BLOCK return false;
#endif } } /*--------------------------------------------------
*
* Anti Flood
* Usando OnPlayerText com gettime e outros
* A precisгo deste sistema estб em torno de 95%
*
-------------------------------------------------*/ if(gettime() - GetPVarInt
(playerid,
#floodChat) < 3) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_FLOOD_TEXT
);
#if defined INVALID_CHAT_BLOCK return false;
#endif } SetPVarInt
(playerid,
#floodChat, gettime()); return true;
}public resetBot
(o
){ varSet
(databaseIP
[o
],
0);
return databaseIP
[o
][0] = EOS;
}public registerBot
(p
){ /*--------------------------------------------------
*
* Anti DDos Bots
* Usando GetPlayerPing/OnPlayerConnect com gettime e outros
* A precisгo deste sistema estб dividido em partes
*
* PLAYER_BOT_LEVEL1 -> 70%
* PLAYER_BOT_LEVEL2 -> 90%
* PLAYER_BOT_LEVEL3 -> 100%
*
*
-------------------------------------------------*/ if(GetPlayerPing
(p
) != 0xffff
&& GetPlayerPing
(p
) != 0) SetPVarInt
(p,
#jogadorDisponivel, 1); if(IsPlayerConnected
(p
) && GetPlayerPing
(p
) == 0xffff
) { static tmpip
[20];
GetPlayerIp
(p, tmpip,
20);
if(0x1c5
> gettime() - varGet
(tmpip
)) { tmpip
[strlen(tmpip
)-1] = 'x';
if(varGet
(tmpip
) > 3) { return CallLocalFunction
("OnPlayerHacking",
"ii", p, PLAYER_BOT_LEVEL3
);
} CallLocalFunction
("OnPlayerHacking",
"ii", p, PLAYER_BOT_LEVEL2
);
} CallLocalFunction
("OnPlayerHacking",
"ii", p, PLAYER_BOT_LEVEL1
);
SetTimerEx
("registerBot",
700, false,
#i , p); } return false;
}public registrarJogador
(playerid
){ static tmpip
[20];
g_diferencasAngle
[playerid
] = 0;
GetPlayerIp
(playerid, tmpip,
20);
varSet
(tmpip,
gettime());
++connect;
if(connect
== MAX_PLAYERS
- 1) { for(connect
= 0; databaseIP
[connect
][0]; connect
++) continue;
} SetTimerEx
("resetBot",
50000, false,
"i", connect
);
tmpip
[strlen(tmpip
)-1] = 'x';
format(databaseIP
[connect
],
20, tmpip
);
varSet
(tmpip, varGet
(tmpip
) +1);
SetTimerEx
(#pdataCheck, 1000, true, "i", playerid); return SetTimerEx
("registerBot",
700, false,
#i , playerid);}public OnPlayerDeath
(playerid,killerid,reason
){ /*--------------------------------------------------
*
* Anti Fake Kill
* Usando OnPlayerDeath com gettime e outros
* A precisгo deste sistema estб dividido em partes
*
* PLAYER_DEATHFLOOD_LEVEL1 -> 070%
* PLAYER_DEATHFLOOD_LEVEL2 -> 090%
* PLAYER_DEATHFLOOD_LEVEL3 -> 100%
*
*
-------------------------------------------------*/ if(gettime() - GetPVarInt
(playerid,
#registerDeath) < 20) { if(GetPVarInt
(playerid,
#registerValDeath) > 15) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_DEATHFLOOD_LEVEL1
);
} if(gettime() - GetPVarInt
(playerid,
#registerDeath) < 2) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_DEATHFLOOD_LEVEL2
);
} if(gettime() - GetPVarInt
(playerid,
#registerDeath) < 5) { if(GetPVarInt
(playerid,
#registerValDeath) > 3) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_DEATHFLOOD_LEVEL3
);
} } } SetPVarInt
(playerid,
#registerDeath, gettime()); SetPVarInt
(playerid,
#registerValDeath, GetPVarInt(playerid, #registerValDeath) +1); return true;
}public OnPlayerUpdate
(playerid
){ /*--------------------------------------------------
*
* Anti Ping Alto
* Usando GetPlayerScore com variбveis server sided
* A precisгo deste sistema fica em torno de 90%
*
-------------------------------------------------*/ if(GetPlayerPing
(playerid
) > MAX_PING
) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_HIGH_PING
);
} /*--------------------------------------------------
*
* Anti Score Hack
* Usando GetPlayerScore com variбveis server sided
* A precisгo deste sistema fica em torno de 100%
*
-------------------------------------------------*/ if(GetPlayerScore
(playerid
) < GetPVarInt
(playerid,
#registerScore)) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_SCORE_HACK
);
} /*--------------------------------------------------
*
* Anti Money Hack
* Usando GetPlayerMoney com variбveis server sided
* A precisгo deste sistema fica em torno de 100%
*
-------------------------------------------------*/ if(GetPlayerMoney
(playerid
) < GetPVarInt
(playerid,
#registerMoney)) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_MONEY_HACK
);
} static armaJogador;
armaJogador
= GetPlayerWeapon
(playerid
);
/*--------------------------------------------------
*
* Anti Weapons Hack - Weapons Ammo Hack
* Usando GetWeaponAmmo com variбveis server sided
* A precisгo deste sistema fica em torno de 85%
*
-------------------------------------------------*/ if(!armaBranca
(armaJogador
) && (GetPVarInt
(playerid, getWeaponNameID
(armaJogador
)) == 0 && GetPlayerAmmo
(playerid
) > 1 ||
(GetPlayerAmmo
(playerid
) > (GetPVarInt
(playerid, getWeaponNameID
(GetPlayerWeapon
(playerid
))) +10) > 0 ||
(GetPlayerAmmo
(playerid
) < 0 && GetPVarInt
(playerid, getWeaponNameID
(GetPlayerWeapon
(playerid
))) < 9999)))) { static intid;
intid
= GetPlayerInterior
(playerid
);
if(intid
!= 1 && intid
!= 7 && intid
!= 4 && intid
!= 6) { if(GetPVarInt
(playerid, getWeaponNameID
(armaJogador
)) == 0 && gettime() - GetPVarInt
(playerid,
#ammoTime) > 1) { if(GetPVarInt
(playerid,
#warnAmmo) == WEAPON_SLOT_HACK) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_AMMO_HACK
);
SetPVarInt
(playerid,
#warnAmmo, 0); SetPVarInt
(playerid, getWeaponNameID
(armaJogador
), GetPlayerAmmo
(playerid
));
} SetPVarInt
(playerid,
#warnAmmo, GetPVarInt(playerid, #warnAmmo) +1); } else if((gettime() - GetPVarInt
(playerid,
#ammoTime)) > 1) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_WEAPON_HACK
);
SetPVarInt
(playerid,
#warnAmmo, 0); SetPVarInt
(playerid, getWeaponNameID
(GetPlayerWeapon
(playerid
)), GetPlayerAmmo
(playerid
));
} } else { SetPVarInt
(playerid, getWeaponNameID
(GetPlayerWeapon
(playerid
)), GetPlayerAmmo
(playerid
));
} } SetPVarInt
(playerid,
#registerMoney, GetPlayerMoney(playerid)); SetPVarInt
(playerid,
#registerScore, GetPlayerScore(playerid)); /*--------------------------------------------------
*
* Anti Freeze Hack
* Usando GetPlayerPos com variбveis server sided
* A precisгo deste sistema fica em torno de 90%
*
-------------------------------------------------*/ static Float:x,
Float:y,
Float:z;
if(GetPVarInt
(playerid,
"PlayerControllable")) { GetPlayerPos
(playerid, x, y, z
);
if((GetPVarFloat
(playerid,
"xposControll") != x
) ||
(GetPVarFloat
(playerid,
"yposControll") != y
) ||
(GetPVarFloat
(playerid,
"zposControll") != z
)) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_FREEZE_HACK
);
} } else { GetPlayerPos
(playerid, x, y, z
);
if(GetPVarFloat
(playerid,
"xposSet") != 0 && GetPVarFloat
(playerid,
"yposSet") != 0 && GetPVarFloat
(playerid,
"zposSet") != 0) { new Float:MAX_DISTANCE
= MAX_DISTANCE_DEF;
x
= GetPVarFloat
(playerid,
"xposSet") - x;
y
= GetPVarFloat
(playerid,
"yposSet") - y;
z
= GetPVarFloat
(playerid,
"zposSet") - z;
if(GetPlayerState
(playerid
) == PLAYER_STATE_ONFOOT
&& GetPlayerSurfingVehicleID
(playerid
) == INVALID_VEHICLE_ID
){ MAX_DISTANCE
= 20.0;
} if((x
> MAX_DISTANCE || x
< -MAX_DISTANCE
) ||
(y
> MAX_DISTANCE || y
< -MAX_DISTANCE
) ||
(z
> MAX_DISTANCE || z
< -MAX_DISTANCE
)) { if(gettime() - GetPVarInt
(playerid,
"tposSet") > 3) { GetPlayerPos
(playerid, x, y, z
);
SetPlayerPos
(playerid, x, y, z
+ 1.0);
SetTimerEx
(#pCheckPos, 500, false, "ifff", playerid, x, y, z); } } MAX_DISTANCE
= MAX_DISTANCE_DEF;
} GetPlayerPos
(playerid, x, y, z
);
SetPVarFloat
(playerid,
"xposSet", x
);
SetPVarFloat
(playerid,
"yposSet", y
);
SetPVarFloat
(playerid,
"zposSet", z
);
} return true;
}pCheckPos
(i,
Float:x,
Float:y,
Float:z
);
public pCheckPos
(i,
Float:x,
Float:y,
Float:z
) { /*--------------------------------------------------
*
* Anti Teleport Hack
* Usando GetPlayerPos com variбveis server sided
* A precisгo deste sistema fica em torno de 85%
*
-------------------------------------------------*/ if(IsPlayerInRangeOfPoint
(i,
2.012837, x, y, z
)) { CallLocalFunction
("OnPlayerHacking",
"ii", i, PLAYER_TELEPORT_HACK
);
} /*--------------------------------------------------
*
* Anti AirBreak Hack
* Usando GetPlayerPos e SetPlayerPos com variбveis server sided
* A precisгo deste sistema fica em torno de 95%
*
-------------------------------------------------*/ else { CallLocalFunction
("OnPlayerHacking",
"ii", i, PLAYER_AIRBREAK_HACK
);
} return true;
}public OnPlayerKeyStateChange
(playerid, newkeys, oldkeys
) { /*--------------------------------------------------
*
* Anti No-Reload
* Usando GetWeaponState e GetWeaponAmmo
* A precisгo deste sistema fica em torno de 90%
*
-------------------------------------------------*/ static armaJogador;
armaJogador
= GetPlayerWeapon
(playerid
);
if((((newkeys
& (KEY_FIRE
)) == (KEY_FIRE
)) && ((oldkeys
& (KEY_FIRE
)) != (KEY_FIRE
)))) { if(GetPlayerWeaponState
(playerid
) != 3) { if(!armaBranca
(armaJogador
) && GetPlayerAmmo
(playerid
) == GetPVarInt
(playerid, getWeaponNameID
(armaJogador
))) { SetPVarInt
(playerid,
"keyFire", GetPVarInt
(playerid,
"keyFire") +1);
if(GetPVarInt
(playerid,
"keyFire") >= WEAPON_SLOT_HACK
) { SetPVarInt
(playerid,
#keyFire, 0); CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_NORELOAD_HACK
);
} } } else { SetPVarInt
(playerid,
#keyFire, 0); } } return true;
}public OnPlayerStateChange
(playerid, newstate, oldstate
){ /*--------------------------------------------------
*
* Anti State Hack
* Usando OnPlayerStateChange com gettime
* A precisгo deste sistema fica em torno de 95%
*
-------------------------------------------------*/ if(newstate
== PLAYER_STATE_DRIVER
) { if(gettime() - GetPVarInt
(playerid,
#registerState) < 2) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_STATE_HACK
);
} SetPVarInt
(playerid,
#registerState, gettime()); } return 1;
}public OnUnoccupiedVehicleUpdate
(vehicleid, playerid, passenger_seat
){ /*--------------------------------------------------
*
* Anti Surfer Vehicle
* Usando OnUnoccupiedVehicleUpdate com gettime e outros
* A precisгo deste sistema fica em torno de 85%
*
-------------------------------------------------*/ GetVehiclePos
(vehicleid, g_ucPos
[0], g_ucPos
[1], g_ucPos
[2]);
if(IsPlayerInRangeOfPoint
(playerid,
4.0, g_ucPos
[0], g_ucPos
[1], g_ucPos
[2])) { GetVehicleZAngle
(vehicleid, g_ucPos
[3]);
if(g_diferencasAngle
[vehicleid
] != g_ucPos
[3]) { if(!IsPlayerInAnyVehicle
(playerid
)) { GetPlayerPos
(vehicleid, g_ucPos
[1], g_ucPos
[1], g_ucPos
[3]);
if(g_ucPos
[3] > g_ucPos
[2]) { SetPVarInt
(playerid,
#registrosUAF, GetPVarInt(playerid, #registrosUAF) +1); if(GetPVarInt
(playerid,
#registrosUAF) > 15) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_SURF_VEHICLE
);
} } } } g_diferencasAngle
[vehicleid
] = g_ucPos
[3];
return true;
} /*--------------------------------------------------
*
* Anti Teleport Vehicle
* Usando OnUnoccupiedVehicleUpdate com gettime e outros
* A precisгo deste sistema fica em torno de 85%
*
-------------------------------------------------*/ else if(!IsPlayerInRangeOfPoint
(playerid,
100.0, g_ucPos
[0], g_ucPos
[1], g_ucPos
[2])) { if(!IsPlayerInAnyVehicle
(playerid
)) { CallLocalFunction
("OnPlayerHacking",
"ii", playerid, PLAYER_CAR_TELEPORT
);
} } return true;
}#define GivePlayerMoney GivePlayerMoney_Ex#define SetPlayerScore SetPlayerScore_Ex#define PutPlayerInVehicle PutPlayerInVehicle_Ex#define PutPlayerInVehicle PutPlayerInVehicle_Ex#define SetPlayerArmour SetPlayerArmour_Ex#define SetPlayerHealth SetPlayerHealth_Ex#define TogglePlayerControllable TogglePlayerControllable_Ex#define GivePlayerWeapon GivePlayerWeapon_Ex/*
Exemplo de uso para OnPlayerHacking
INCLUDE AINDA NГO TERMINADA. FALTA CRIAR ITENS ANTI HACKINGS E HOOKEAR PUBLICAS !!!
*/forward OnPlayerHacking
(playerid, hackid
);
public OnPlayerHacking
(playerid, hackid
) { if(hackid
== PLAYER_BOT_LEVEL1
) { SendClientMessage
(playerid,
-1,
"noob para de ddos no meu sv ");
Kick
(playerid
);
} if(hackid
== PLAYER_BOT_LEVEL2
) { SendClientMessage
(playerid,
-1,
"noob para de ddos no meu sv ");
Kick
(playerid
);
} if(hackid
== PLAYER_BOT_LEVEL3
) { SendClientMessage
(playerid,
-1,
"noob para de ddos no meu sv BAN ");
BanEx
(playerid,
"fdppp");
} if(hackid
== PLAYER_DEATHFLOOD_LEVEL1 || PLAYER_DEATHFLOOD_LEVEL2
== hackid || PLAYER_DEATHFLOOD_LEVEL3
== hackid
) { SendClientMessage
(playerid,
-1,
"noob para de fake kill");
} if(hackid
== PLAYER_SURF_VEHICLE
) { SendClientMessage
(playerid,
-1,
"noob para de surf vehicle");
} if(hackid
== PLAYER_SURF_VEHICLE
) { SendClientMessage
(playerid,
-1,
"noob para de surf vehicle");
} if(hackid
== PLAYER_CAR_TELEPORT
) { SendClientMessage
(playerid,
-1,
"noob para de car teleport");
} if(hackid
== PLAYER_STATE_HACK
) { SendClientMessage
(playerid,
-1,
"noob para de state hack");
} if(hackid
== PLAYER_FREEZE_HACK
) { SendClientMessage
(playerid,
-1,
"noob para de freeze hack");
} if(hackid
== PLAYER_SCORE_HACK
) { SendClientMessage
(playerid,
-1,
"noob para de score hack");
} if(hackid
== PLAYER_MONEY_HACK
) { SendClientMessage
(playerid,
-1,
"noob para de money hack");
} if(hackid
== PLAYER_PUBLISH_TEXT
) { SendClientMessage
(playerid,
-1,
"ninguem quer entrar no teu sv noob");
} if(hackid
== PLAYER_OFFEND_TEXT
) { SendClientMessage
(playerid,
-1,
"vtnc, para de ofende os outros fdp");
} if(hackid
== PLAYER_FLOOD_TEXT
) { SendClientMessage
(playerid,
-1,
"calma ai mermгo, rlx cuca");
} if(hackid
== PLAYER_TELEPORT_HACK
) { SendClientMessage
(playerid,
-1,
"preguiзoso, USA CARRO mas nгo teleport !!1");
} if(hackid
== PLAYER_WEAPON_HACK
) { SendClientMessage
(playerid,
-1,
"nгo usa weapon hack po");
} if(hackid
== PLAYER_AMMO_HACK
) { SendClientMessage
(playerid,
-1,
"fdp nao usa ammo hack");
} if(hackid
== PLAYER_NORELOAD_HACK
) { SendClientMessage
(playerid,
-1,
"fdp nao usa no reload hack");
} if(hackid
== PLAYER_AIRBREAK_HACK
) { SendClientMessage
(playerid,
-1,
"fdp para de usa no airbreak hack");
} return true;
}
Sim й verdade. Sinto muito, mas vai ficar assim