SA-MP Forums Archive
[Include] a_tiempos.inc > maneja tus tiempos a antojo - 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)
+----- Forum: Lanzamientos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=59)
+----- Thread: [Include] a_tiempos.inc > maneja tus tiempos a antojo (/showthread.php?tid=439112)



a_tiempos.inc > maneja tus tiempos a antojo - DesingMyCry - 23.05.2013

a_tiempos
v0.1 - 23/05/2013
Descripciуn

Funcionamiento

Utilizaciуn

pawn Код:
include>a_tiempos;
pawn Код:
#include <a_inc>
include>a_tiempos;
//include>a; //Incluir toda la librerнa
#include <a_inc2>
Funciones

Ejemplo

pawn Код:
#include <a_samp>
#include <a_inc>
include>a_tiempos;
#include <a_inc2>

new TCrear:restriccion_cmd[MAX_PLAYERS];

CMD:tele(playerid, params[])
{
    if(ETiempo(restriccion_cmd[playerid])) /*| o tambiйn "ETiempo(destriccion_cmd[playerid]) == true" |*/
    {
        //Pudo usar el comando

        //Le asignamos nuevamente un tiempo de 1 minuto
        ATiempo(restriccion_cmd[playerid], min_s(1)); //o "ATiempo(restriccion_cmd[playerid], 60)"

        //Le avisamos que usу el comando correctamente
        return SendClientMessage(playerid, -1, "Usaste el comando correctamente");
    }
    else
    {
        //Aun no pasa el tiempo (el minuto asignado)

        //Mensaje de error
        return SendClientMessage(playerid, -1, "Aun no pasan los 60 segundos");
    }
    return 1;
}
pawn Код:
#include <a_samp>
#include <a_inc>
include>a_tiempos;
#include <a_inc2>

new TCrear:restriccion_cmd[MAX_PLAYERS];

CMD:tele(playerid, params[])
{
    if(ETiempo(restriccion_cmd[playerid])) /*| o tambiйn "ETiempo(destriccion_cmd[playerid]) == true" |*/
    {
        //Pudo usar el comando

        //Le asignamos nuevamente un tiempo de 1 minuto
        ATiempo(restriccion_cmd[playerid], min_s(1)); //o "ATiempo(restriccion_cmd[playerid], 60)"

        //Le avisamos que usу el comando correctamente
        return SendClientMessage(playerid, -1, "Usaste el comando correctamente");
    }
    else
    {
        //Aun no pasa el tiempo (el minuto asignado)

        //Mensaje de error
        new error[62];
        format(error, sizeof error, "Hasta dentro de %d segundos, no puedes usar el comando", OTiempo(restriccion_cmd[playerid]);
        return SendClientMessage(playerid, -1, error);
    }
    return 1;
}
Descarga

Actualizaciones




Respuesta: a_tiempos.inc > maneja tus tiempos a antojo - JustBored - 23.05.2013

No entiendo la funcionalidad de este include. Osea їla idea es utilizar variables con un predeterminado periodo de tiempo referente a un timer? esto lo veo un poco como se dice en Argentina "al pedo" ya que lo ъnico que hace es establecer una variable con un determinado periodo de tiempo a otra variable. Osea supongo que serнa mбs sencillo usar operadores comunes, osea en ves de setear determinados valores serнa mбs fбcil usarlos con nъmeros comunes en ves de una funciуn.
Osea en ves de
pawn Код:
#include <a_samp>
#include <a_inc>
include>a_tiempos;
#include <a_inc2>

new TCrear:restriccion_cmd[MAX_PLAYERS];

CMD:tele(playerid, params[])
{
    if(ETiempo(restriccion_cmd[playerid])) /*| o tambiйn "ETiempo(destriccion_cmd[playerid]) == true" |*/
    {
        //Pudo usar el comando

        //Le asignamos nuevamente un tiempo de 1 minuto
        ATiempo(restriccion_cmd[playerid], min_s(1)); //o "ATiempo(restriccion_cmd[playerid], 60)"

        //Le avisamos que usу el comando correctamente
        return SendClientMessage(playerid, -1, "Usaste el comando correctamente");
    }
    else
    {
        //Aun no pasa el tiempo (el minuto asignado)

        //Mensaje de error
        return SendClientMessage(playerid, -1, "Aun no pasan los 60 segundos");
    }
    return 1;
}
Yo harнa algo masomenos asн
pawn Код:
#include <a_samp>
#include <a_inc>
include>a_tiempos;
#include <a_inc2>

new restriccion_cmd[MAX_PLAYERS], val=60000;

CMD:tele(playerid, params[])
{
    if(restriccion_cmd[playerid] >= val) /*| o tambiйn "ETiempo(destriccion_cmd[playerid]) == true" |*/
    {
        //Pudo usar el comando

        //Le asignamos nuevamente un tiempo de 1 minuto
        ATiempo(restriccion_cmd[playerid], min_s(1)); //o "ATiempo(restriccion_cmd[playerid], 60)"

        //Le avisamos que usу el comando correctamente
        return SendClientMessage(playerid, -1, "Usaste el comando correctamente");
    }
    else
    {
        //Aun no pasa el tiempo (el minuto asignado)

        //Mensaje de error
        return SendClientMessage(playerid, -1, "Aun no pasan los 60 segundos");
    }
    return 1;
}
Supongo que asн serнa mбs fбcil, no sй digo yo. Corrigeme si me equivoco.
Ah cierto favor de no darme -rep por una crнtica contructiva.


Respuesta: a_tiempos.inc > maneja tus tiempos a antojo - DesingMyCry - 23.05.2013

El include nisiquiera toca la funciуn "SetTimer" o "SetTimerEx" por lo que el cуdigo que dejas no funcionarнa. La razуn es simple: el uso en exceso de estas 2 funciones podria provocar LAG en el servidor.

Como dije, o quise decir, las variables no se actualizan segundo a segundo, nisiquiera se actualizan, estas solo guardan informaciуn que la interpretan en segundos y se suman y restan (y demбs operaciones aritmйticas bбsicas) para obtener los resultados que se muestran.

Si quieres, prueba ambas formas de uso, la que yo digo y la que tu dejaste.

La reputaciуn no te hace conocedor.



Respuesta: a_tiempos.inc > maneja tus tiempos a antojo - JustBored - 23.05.2013

Me autocorrijo, mirй el code del include y este no usa timers. Al principio pensй en eso, pero ahora veo que me equivoquй.


Respuesta: a_tiempos.inc > maneja tus tiempos a antojo - xSDx - 24.05.2013

Tengo una buena idea para este include, no se si te interese te la enviare por skype, esta bueno pero no le veo la diferencia con el uso de gettime()


Respuesta: a_tiempos.inc > maneja tus tiempos a antojo - DesingMyCry - 24.05.2013

Quote:
Originally Posted by xSDx
Посмотреть сообщение
Tengo una buena idea para este include, no se si te interese te la enviare por skype, esta bueno pero no le veo la diferencia con el uso de gettime()
Las librerias son para hacer el trabajo mas fбcil a los programadores, al igual que este include hace.
Incluso, el mismo ocupa la funciуn que citas. Solo que lo hace de una manera mas simple.



Re: Respuesta: a_tiempos.inc > maneja tus tiempos a antojo - Daniel-92 - 24.05.2013

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
Las librerias son para hacer el trabajo mas fбcil a los programadores, al igual que este include hace.
Incluso, el mismo ocupa la funciуn que citas. Solo que lo hace de una manera mas simple.
Si la idea es que sea fбcil de usar lo podrias hacer con PVars y macros asн la gente lo usaria mбs.


Respuesta: Re: Respuesta: a_tiempos.inc > maneja tus tiempos a antojo - DesingMyCry - 24.05.2013

Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
Si la idea es que sea fбcil de usar lo podrias hacer con PVars y macros asн la gente lo usaria mбs.
El uso de "PVars" podria ocacionar problemas con los nombres de las variables. Macros? a que te refieres? no es posible devolver valores binarios ni de otro tipo mediante un macro...


Respuesta: Re: Respuesta: a_tiempos.inc > maneja tus tiempos a antojo - Dreyfuz - 24.05.2013

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
El uso de "PVars" podria ocacionar problemas con los nombres de las variables. Macros? a que te refieres? no es posible devolver valores binarios ni de otro tipo mediante un macro...
con un macro no puedes definir binarios pero si hexadecimales, como cuando defines un color. Pero no entiendo para que quieres una macro que te defina un codigo binario.

Igual, muy buen trabajo. Te felizito, te daria +rep pero no me deja.


Re: Respuesta: Re: Respuesta: a_tiempos.inc > maneja tus tiempos a antojo - Daniel-92 - 24.05.2013

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
El uso de "PVars" podria ocacionar problemas con los nombres de las variables. Macros? a que te refieres? no es posible devolver valores binarios ni de otro tipo mediante un macro...
No veo donde puedan ocasionar problemas con los nombres.

Algo asн me referia.
pawn Код:
#define Restringido(%1,%2)      GetTickCount()<GetPVarInt(%1,%2)
#define Restringir(%1,%2,%3)    SetPVarInt(%1,%2,%3+GetTickCount())

//Ejemplo
if(!strcmp("/curarme",cmdtext,true)) {
    if(Restringido(playerid,"SALUD")) {
        SendClientMessage(playerid,-1,"Por favor espera el tiempo requerido para usar nuevamente este comando");
        return 1;
    }
    SetPlayerHealth(playerid,100.00);
    SendClientMessage(playerid,-1,"Te has curado, podrбs usar el comando nuevamente dentro de 1 minuto");
    Restringir(playerid,"SALUD",60000);
    return 1;
}
Mбs que todo por la facilidad de uso decia yo.