/* ANTI BUNNY HOPPING SYSTEME
MADE BY "HAMZA"
DO NOT REMOVE THE CREDIT
*/
#include
#include
#define COLOR_RED 0xFF0000AA
public OnFilterScriptInit()
{
print("\n =========================================");
print(" ====== ANTI BUNNY-HOPPING loaded! =======");
print(" =========================================\n");
}
new BunnyHopping;
new AlreadyWarned;
new BunnyHoppingAgain;
public OnPlayerConnect(playerid)
{
new name, file;
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "Users/%s.ini", name);
if(dini_Exists(file))
{
AlreadyWarned = dini_Int(file, "AlreadyWarned");
}
else
{
dini_Create(file);
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new name, file;
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),"Users/%s.ini", name);
if(dini_Exists(file))
{
dini_IntSet(file, "AlreadyWarned", AlreadyWarned);
}
if(BunnyHopping <= 2)
{
KillTimer(BunnyHoppingAgain);
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if((newkeys == KEY_JUMP) || (newkeys & KEY_SPRINT) && (newkeys & KEY_JUMP) || (newkeys & KEY_UP) && (newkeys & KEY_JUMP) || (newkeys & KEY_DOWN) && (newkeys & KEY_JUMP) || (newkeys & KEY_WALK) && (newkeys & KEY_JUMP) || (newkeys & KEY_LEFT) && (newkeys & KEY_JUMP) || (newkeys & KEY_RIGHT) && (newkeys & KEY_JUMP))
{
if(!IsPlayerInAnyVehicle(playerid))
{
new name, string;
if(BunnyHopping == 0)
{
BunnyHopping = 1;
BunnyHoppingAgain = SetTimerEx("CheckForBunnyHopping",5000,0,"i",playerid);
return 1;
}
if(BunnyHopping == 1)
{
KillTimer(BunnyHoppingAgain);
BunnyHopping = 2;
BunnyHoppingAgain = SetTimerEx("CheckForBunnyHopping",5000,0,"i",playerid);
SendClientMessage(playerid, COLOR_RED, "Don't Bunny Hop please");
return 1;
}
if(BunnyHopping == 2 && AlreadyWarned == 0)
{
BunnyHopping = 0;
AlreadyWarned ++;
KillTimer(BunnyHoppingAgain);
SendClientMessage(playerid, COLOR_RED, "You have been reported to admins.");
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), " %s: Possibly Bunny Hopping. ", name);
// SendClientMessage(admin, COLOR_RED, string); // Change it, You got to forward "string" to admin online.
return 1;
}
if(BunnyHopping == 2 && AlreadyWarned >= 1)
{
BunnyHopping = 0;
AlreadyWarned ++;
KillTimer(BunnyHoppingAgain);
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), ": %s has been warned %d Times, and yet he is still bunny hopping. ", name, AlreadyWarned);
// SendClientMessage(admin, COLOR_RED, string); // Change it, All you got to do, is forward "string" up to admin.
return 1;
}
}
}
return 1;
}
forward CheckForBunnyHopping(playerid);
public CheckForBunnyHopping(playerid)
{
BunnyHopping = 0;
return 1;
}
Cela FS.
