// Anti FakeKill Flood by RuNix
#include <a_samp>
new XDeaths[MAX_PLAYERS];
new LastDeath[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("\n----------------------------------------");
print(" Anti FakeKill Flood FilterScript by RuNix");
print("----------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
XDeaths[playerid] = 0;
LastDeath[playerid] = 0;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(XDeaths[playerid] == 0)
{
LastDeath[playerid] = gettime();
}
XDeaths[playerid]++;
if(XDeaths[playerid] == 5)
{
if((gettime() - LastDeath[playerid]) <= 5)
{
SendClientMessage(playerid,0,"{FFBF00}Hey n0b, flood your mother!");
BanEx(playerid,"Banned for FakeKill Flood");
}else
if((gettime() - LastDeath[playerid]) > 5)
{
XDeaths[playerid]=0;
}
}
return 1;
}
new bool:PlayerShotedPlayer[MAX_PLAYERS][MAX_PLAYERS]; //> (PlayerShotedPlayer[killer][player]) public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart) { if(issuerid != INVALID_PLAYER_ID && playerid != INVALID_PLAYER_ID) { PlayerShotedPlayer[issuerid][playerid] = true; //>issuerid gave damage to player id, so set variable true } return 1; } public OnPlayerDeath(playerid, killerid, reason) { if(killerid != INVALID_PLAYER_ID) { if(PlayerShotedPlayer[killerid][playerid] == false) { //Kick or ban playerid (cheater) Here } } //if playerid wasn't cheater so .. let's reset damage variable for(new i = 0; i < MAX_PLAYERS; i++) { PlayerShotedPlayer[i][playerid] = false; } return 1; }
you can check time between deaths with "GetTickCount()"
but for more accuracy: if i kill someone, i have to give damage to him/her ! so make a variable and check player has received any damage or no i'll give you a simple example (explained in code with comments) Код:
new bool:PlayerShotedPlayer[MAX_PLAYERS][MAX_PLAYERS]; //> (PlayerShotedPlayer[killer][player]) public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart) { if(issuerid != INVALID_PLAYER_ID && playerid != INVALID_PLAYER_ID) { PlayerShotedPlayer[issuerid][playerid] = true; //>issuerid gave damage to player id, so set variable true } return 1; } public OnPlayerDeath(playerid, killerid, reason) { if(killerid != INVALID_PLAYER_ID) { if(PlayerShotedPlayer[killerid][playerid] == false) { //Kick or ban playerid (cheater) Here } } //if playerid wasn't cheater so .. let's reset damage variable for(new i = 0; i < MAX_PLAYERS; i++) { PlayerShotedPlayer[i][playerid] = false; } return 1; } but please read code and learn Down With Cheaters ![]() ![]() Good Luck |