[DUDA] Comandos
#1

Hola a todos, eh estado viendo algunos freeroam y necesito un cуdigo para que solo puedan usar comandos cada 2 segundos...

- EJ: /comandos
luego al 1 segundo (xD) le diga "solo puedes usar comandos cada 2 segundos"
Espero respuestas, gracias!
Reply
#2

Si no me equivoco seria con un timer o con GetTickCount .


pawn Код:
new NoFlood[MAX_PLAYERS];

public ResetearNoFlood(playerid)
{
    NoFlood[playerid] = 0;//devuelve el valor a cero
}


if(strcmp(cmd, "/comando", true) == 0)
{
if(NoFlood[playerid] == 1) return Message(playerid, COLOR, "Espera 10 segundos para volver a usar este comando");//si tiene la variable en 1 no le permite usar el cmd
NoFlood[playerid] = 1;//si tiene la variable en 0 se la setea en 1
SetTimerEx("ResetearNoFlood", 10000, false, "i", playerid);//activa el timer que se calcula en milisegundos(en este caso 10 segundos)
//demбs funciones del comando

return 1;
}
Reply
#3

Es mejor hacerlo sin timers.
pawn Код:
new flood[MAX_PLAYERS] = {0, ...};
if(!strcmp(cmdtext, "/comando", true))
{
    if(flood[playerid] < gettime())
    {
        // tu cуdigo.
        flood[playerid] = gettime() + 2;
    }
    else SendClientMessage(playerid, -1, "#");
}
Reply
#4

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Es mejor hacerlo sin timers.
pawn Код:
new flood[MAX_PLAYERS] = {0, ...};
if(!strcmp(cmdtext, "/comando", true))
{
    if(flood[playerid] < gettime())
    {
        // tu cуdigo.
        flood[playerid] = gettime() + 2;
    }
    else SendClientMessage(playerid, -1, "#");
}
Nunca se me habнa ocurrido hacerlo con gettime, jaja, yo lo hacнa siempre con GetTickCount.
Reply
#5

Uum no lo quiero para cada comando, lo quiero para todos, lo tratй de poner asн xDD y no me sirviу:
Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(AntiFloodComandos[playerid] < gettime())
    {
        GameTextForPlayer(playerid, "~w~solo puedes usar comandos cada 2 segundos!", 6000, 5);
        AntiFloodComandos[playerid] = gettime() + 2;
    }
return 0;
}
Reply
#6

Quote:
Originally Posted by Matyaas
Посмотреть сообщение
Uum no lo quiero para cada comando, lo quiero para todos, lo tratй de poner asн xDD y no me sirviу:
Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(AntiFloodComandos[playerid] < gettime())
    {
        GameTextForPlayer(playerid, "~w~solo puedes usar comandos cada 2 segundos!", 6000, 5);
        AntiFloodComandos[playerid] = gettime() + 2;
    }
return 0;
}
puedes tratar de ponerlo asн:

public OnPlayerCommandText(playerid, cmdtext[])
{
if(AntiFloodComandos[playerid] > gettime())
{
comando1
comando2
comando3...
}
else
{
GameTextForPlayer(playerid, "~w~solo puedes usar comandos cada 2 segundos!", 6000, 5);
AntiFloodComandos[playerid] = gettime() + 2;
}
return 0;
}
Reply
#7

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(AntiFloodComandos[playerid] > gettime())
    {
        GameTextForPlayer(playerid, "~w~solo puedes usar comandos cada 2 segundos!", 6000, 5);
        return 1;
    }
    AntiFloodComandos[playerid] = gettime() + 2;
    // tus comandos luego de esta linea.
    return 0;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)