Detector de tiempo por comando
#1

Buenas, їexistirнa alguna funciуn como para evitar el uso de Macros (HKB)?

No sй, que me podrнan recomendar, yo pensй en un timer y usar la funciуn OnPlayerCommandText, pero no sй que dicen ustedes, porque por ejemplo, hacer que sуlo se enviй un mensaje por segundo, no estarнa bien, porque hay gente que escribe IC rбpido, y escribe varios comandos necesarios. Me refiero por ejemplo, a hacer algo preciso como para evitar 3 comandos/mensajes en 2 segundos.
Reply
#2

pawn Код:
new AntiMacros[MAX_PLAYERS];

public AntiMacros(playerid)
{
    AntiMacros[playerid] = 0;
}

YCMD:me(playerid, params[], help)
{
if (help) SendClientMessage(playerid, 0xFF0000AA, "Para hacer roles "); // Esto no sale si se usa el comando
else
{
if(!sscanf(params, "s[128]", params[0]))
{

if(AntiMacros[playerid] == 1) return Message(playerid, COLOR_GRAD2, "Espera 10 segundos para volver a usar el /me!");
new string[128];
format(string, sizeof(string), "* %s %s.", NombreJugador(playerid), params[0]);
ProxDetector(30.0, playerid, string, COLOR_PURPURA,COLOR_PURPURA,COLOR_PURPURA,COLOR_PURPURA,COLOR_PURPURA);
AntiMacros[playerid] = 1;
SetTimerEx("AntiMacros", 10000, false, "i", playerid);//aqui por ejeemplo son 10 segundos en milisegundos
}
else SendClientMessage(playerid, COLOR_GRAD2, "Utilize: /me <Acciуn>");
}
return 1;
}
Ahi tienes un ejemplo,si lo quieres para todos los comandos simplemente utiliza


pawn Код:
if(AntiMacros[playerid] == 1) return Message(playerid, COLOR_GRAD2, "Espera 10 segundos para volver a usar el comando!");
Dentro de OnPlayerCommandText
Reply
#3

Eso que envнaste, por ejemplo, hace que sуlo se pueda enviar un /me cada 10 segundos?
Reply
#4

Exacto ,en el ejemplo que te di con un comando /me solo afecta a ese comando.Puedes hacerlo con cada comando pero si solo vas a hacerlo con algunos comandos te recomiendo crear una variable para cada comando para no generar un bug ,como por ejemplo que quieres usar el /do y no te deja porque ya usaste el /me .
Reply
#5

O sea, AntiMacros 2, AntiMacros 3?

En fin, me sirviу, +rep
Reply
#6

Pero al usar un settimerex el servidor ntendra lag por cada vez que un usuario lo use.. Te recoomiendo qe leas mi tutorial sobre el uso del GetTickCount no te andara con lag y tendras mejores resultados saludos!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)