Boa tarde, galera! Hoje trago a vocês um sistema de chat simples com um antiflood

Código:

#define TimerFlood 5000
new FloodAlert[MAX_PLAYERS],
 FloodTimer[MAX_PLAYERS];

public OnPlayerText(playerid, text[])
{
 new String[220], MGS[220];
 KillTimer(FloodTimer[playerid]);
 FloodTimer[playerid] = SetTimerEx("RemoveFlood", TimerFlood, 0, "i", playerid);
 if(FloodAlert[playerid] == 0)
 {
 format(String, sizeof String, "{848484} %s {E6E6E6}disse: %s", PlayerName(playerid), text);
 format(MGS, sizeof(MGS), "%s", text);
 SendClientMessageInRange(10.0, playerid, String, 0x848484, 0x848484, 0x848484, 0x848484, 0x848484);
 SetPlayerChatBubble(playerid, MGS, 0x00AAEEFF, 20.0, 10000);
 }
 FloodAlert[playerid] ++;
 return 0;
}

forward RemoveFlood(playerid);
public RemoveFlood(playerid)
{
 KillTimer(FloodTimer[playerid]);
 FloodAlert[playerid] = 0;
 if(!IsPlayerInAnyVehicle(playerid))
 {
 ClearAnimations(playerid);
 SetPlayerSpecialAction(playerid, 0);
 }
 return 1;
}

stock SendClientMessageInRange(Float:_r, playerid, const _s[],c1,c2,c3,c4,c5)//Fun��o que ira servir ao enviar mensagens
{
 new Float:_x, Float:_y, Float:_z;//Variaveis usadas para salvar a posi��o do playerid
 GetPlayerPos(playerid, _x, _y, _z);//Pegar a posi��o do jogador e salvar nas variaveis criadas acima
 for(new i; i < MAX_PLAYERS; i++)
 {
 if(GetPlayerVirtualWorld(i) != GetPlayerVirtualWorld(playerid))continue;//Pegar o virtual(realidade/) de todos os jogadores
 if(GetPlayerDistanceFromPoint(i,_x,_y,_z) < _r/16)//Pegar a distancia de um jogador para outro(Ponto)
 SendClientMessage(i, c1, _s);//Usado para enviar mensagem aos jogadores do(a) mesmo(a) virtual(realidade)
 else if(GetPlayerDistanceFromPoint(i,_x,_y,_z) < _r/8)//Pegar a distancia de um jogador para outro(Ponto)
 SendClientMessage(i, c2, _s);//Usado para enviar mensagem aos jogadores do(a) mesmo(a) virtual(realidade)
 else if(GetPlayerDistanceFromPoint(i,_x,_y,_z) < _r/4)//Pegar a distancia de um jogador para outro(Ponto)
 SendClientMessage(i, c3, _s);//Usado para enviar mensagem aos jogadores do(a) mesmo(a) virtual(realidade)
 else if(GetPlayerDistanceFromPoint(i,_x,_y,_z) < _r/2)//Pegar a distancia de um jogador para outro(Ponto)
 SendClientMessage(i, c4, _s);//Usado para enviar mensagem aos jogadores do(a) mesmo(a) virtual(realidade)
 else if(GetPlayerDistanceFromPoint(i,_x,_y,_z) < _r)//Pegar a distancia de um jogador para outro(Ponto)
 SendClientMessage(i, c5, _s);//Usado para enviar mensagem aos jogadores do(a) mesmo(a) virtual(realidade)
 }
 return true;
}

stock PlayerName(playerid)
{
 new Name[MAX_PLAYER_NAME];
 GetPlayerName(playerid, Name, sizeof Name);
 return Name;
}