SA-MP Forums Archive
[DUDA] Comandos - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [DUDA] Comandos (/showthread.php?tid=430508)



[DUDA] Comandos - Matyaas - 14.04.2013

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!


Respuesta: [DUDA] Comandos - -[R]hysi- - 14.04.2013

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;
}



Respuesta: [DUDA] Comandos - [J]ulian - 14.04.2013

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, "#");
}



Respuesta: [DUDA] Comandos - adri1 - 14.04.2013

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.


Respuesta: [DUDA] Comandos - Matyaas - 14.04.2013

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;
}



Re: Respuesta: [DUDA] Comandos - PolloMC - 14.04.2013

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;
}


Respuesta: [DUDA] Comandos - [J]ulian - 14.04.2013

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;
}