Flood Control - Administre infinitas maneiras de floods em seu servidor! -
steki. - 28.04.2012
Introduзгo
Todos sabemos que a galerinha dos flooders jб teve uma boa diversгo causando com os RPGs (lol).
Esse script promete corrigir tanto flood de chat, quanto de comandos, kills e quaisquiser outras coisas. Basta configurar o script.
Funcionalidades
O script trata indiscriminadamente todo o tipo de 'input' gerado pelo player (com exceзгo do death flood). Excedendo os limites impostos pelo scripter, OnPlayerFlood й chamada.
OnPlayerFlood(playerid, source, row):- playerid - Auto explicativo
- source - A origem. Pode ser tanto chat, comandos, quanto gerado pelo usuбrio
- row - O nъmero de mensagens enviadas (agora que eu percebi que isto й um pouco redundante)
Exemplo:
pawn Код:
public OnPlayerFlood(playerid, source, row)
{
if(source == FLOOD_SOURCE_DEATH)
Ban(playerid);
if(source == FLOOD_SOURCE_CHAT)
{
SendClientMessage(playerid, -1, "Hб uma tolerвncia de apenas " MAX_MESSAGES_PER_INTERVAL " mensagens a cada " FLOOD_NEW_ROW_INTERVAL "ms!");
}
return 1;
}
public OnPlayerText(playerid, text[])
{
flood_MessageHandler(playerid, FLOOD_SOURCE_CHAT);
return 1;
}
Lembrando que й preciso a funзгo flood_MessageHandler para ser 'contada' a mensagem.
flood_MessageHandler(playerid, source):- playerid - Auto explicativo
- source - A origem, que serб mostrada no OnPlayerFlood, se exceder o mбximo de mensagens.
Para configurar, visite o codigo fonte do script. Й bem уbvio.
Ah. Isso nгo й tгo simples como uma mensagem a cada segundo. Vocк pode abrir uma tolerвncia de 10 mensagens por segundo, nгo deixando a jogabilidade chata, mas tambйm nгo fodendo com a porra toda.
E й bem recomendбvel banir logo o infeliz, se a resposta for FLOOD_SOURCE_DEATH.
Pastebin
Exemplo:
pawn Код:
#include <a_samp>
#include <fcontrol>
new gPlayerMutado[MAX_PLAYERS];
public OnPlayerText(playerid, text[])
{
// Faz com que seja contada essa mensagem e, caso extrapole o limite
// a OnPlayerFlood seja chamada
flood_HandleMessage(playerid, FLOOD_SOURCE_CHAT);
// Se o player ainda estб mutado
if(gPlayerMutado[playerid] > gettime())
{
SendClientMessage(playerid, -1, "Vocк ainda estб mutado por flood!");
return 0;
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
flood_HandleMessage(playerid, FLOOD_SOURCE_COMMAND);
if(gPlayerMutado[playerid] > gettime())
{
SendClientMessage(playerid, -1, "Vocк ainda estб mutado por flood!");
return 0;
}
// Comandos aqui
if(!strcmp("/testeflood", cmdtext, true))
{
SendClientMessage(playerid, -1, "Este foi o /testeflood!");
}
return 0;
}
public OnPlayerFlood(playerid, source, row)
{
// Se o player estб floodando fake deaths
if(source == FLOOD_SOURCE_DEATH)
{
SendClientMessage(playerid, -1, " - Vocк foi banido por death spam!");
BanEx(playerid, "Death Spam");
}
// Se o player floodou tanto o chat, quando comando
else if(source == FLOOD_SOURCE_CHAT || source == FLOOD_SOURCE_COMMAND)
{
SendClientMessage(playerid, -1, "Vocк foi mutado pelos prуximos 15 segundos por flood!");
gPlayerMutado[playerid] = gettime() + 15;
}
return 1;
}
Dъvidas? Poste aqui!
Re: Flood Control - Administre infinitas maneiras de floods em seu servidor! -
Dolby - 28.04.2012
Fodastico cara,parabens,a lуgica ficou muito boa.
Re: Flood Control - Administre infinitas maneiras de floods em seu servidor! -
Caio_Freeze - 28.04.2012
Уtimo Gostei parabens :P
Re: Flood Control - Administre infinitas maneiras de floods em seu servidor! -
steki. - 28.04.2012
Quote:
Originally Posted by Gustavo_Araujo
Fodastico cara,parabens,a lуgica ficou muito boa.
|
Mais rбpido que eu o_O
Re: Flood Control - Administre infinitas maneiras de floods em seu servidor! -
zSuYaNw - 28.04.2012
Gostei =)
Vocк utilizou TickCount no lugar de GetTickCount, isto pra min me fascina,
porque muitas pessoas usam GetTickCount nгo sabendo que ela prejudica
o servidor.
Bom trabalho.
Re: Flood Control - Administre infinitas maneiras de floods em seu servidor! -
Skream - 28.04.2012
Quote:
Originally Posted by [Full]Garfield[XDB]
Gostei =)
Vocк utilizou TickCount no lugar de GetTickCount, isto pra min me fascina,
porque muitas pessoas usam GetTickCount nгo sabendo que ela prejudica
o servidor.
Bom trabalho.
|
Os dois retornam o up-time do servidorl, tickcount vai causar os msm problemas que o GetTickCount quando ultrapassar os 32-bits.
Stewie, tenho de avisar sobre o Fake kill que direciona o playerid & o killerid na OnPlayerDeath.
Bom, acho que deve rever este script, eu jб vi o prуprio DM da FoCo ter problemas com esse fakekill, se o cara colocar para banir e um cara com esse cleo entrar ele poderб banir o servidor inteiro.
Re: Flood Control - Administre infinitas maneiras de floods em seu servidor! -
steki. - 28.04.2012
Quote:
Originally Posted by Caio_Freeze
eu nгo intendi como usa й so clocar a include e aquelas public no GM/FS e ja era?
|
Quote:
Originally Posted by Skream
Os dois retornam o up-time do servidorl, tickcount vai causar os msm problemas que o GetTickCount quando ultrapassar os 32-bits.
Stewie, tenho de avisar sobre o Fake kill que direciona o playerid & o killerid na OnPlayerDeath.
Bom, acho que deve rever este script, eu jб vi o prуprio DM da FoCo ter problemas com esse fakekill, se o cara colocar para banir e um cara com esse cleo entrar ele poderб banir o servidor inteiro.
|
O GetTickCount retorna o tempo em ms da carga do kernel, enquanto o tickcount retorna a carga do servidor.
Atй onde eu saiba, nгo tem como morrer como se fosse outro player, mas meu script apenas detecta esse 'flood'. Se vocк quiser banir, fica a seu critйrio.
Re: Flood Control - Administre infinitas maneiras de floods em seu servidor! -
Caio_Freeze - 28.04.2012
Quote:
Originally Posted by Skream
Os dois retornam o up-time do servidorl, tickcount vai causar os msm problemas que o GetTickCount quando ultrapassar os 32-bits.
Stewie, tenho de avisar sobre o Fake kill que direciona o playerid & o killerid na OnPlayerDeath.
Bom, acho que deve rever este script, eu jб vi o prуprio DM da FoCo ter problemas com esse fakekill, se o cara colocar para banir e um cara com esse cleo entrar ele poderб banir o servidor inteiro.
|
mais esse fake kill nгo й cleo й apenas um software.
@Stewie
Como uso ele em zcmd?
Re: Flood Control - Administre infinitas maneiras de floods em seu servidor! -
Skream - 28.04.2012
Quote:
Originally Posted by Caio_Freeze
mais esse fake kill nгo й cleo й apenas um software.
@Stewie
Como uso ele em zcmd?
|
Achei que era Cleo, mas na lуgica isso nгo faz a menor diferenзa.
Re: Flood Control - Administre infinitas maneiras de floods em seu servidor! -
steki. - 28.04.2012
Quote:
Originally Posted by Caio_Freeze
mais esse fake kill nгo й cleo й apenas um software.
@Stewie
Como uso ele em zcmd?
|
coloque flood_HandleMessage(playerid, FLOOD_SOURCE_COMMAND); em OnCommandRecieved.