[Tutorial] Uso De GetTickCount
#1

Uso De GetTickCount

Que Es GetTickCountї
Simplemente Es Un Contador De Tiempo (Por Asi Decirlo) Que Mide El Tiempo Cada Vez Que Se Manda a Llamar Una Funcion

Para Que Usarloї
Puedes Usarlo En Vez De SetTimerEx o SetTimer (Algunos Casos) Asi Se Reduce el Lag Ya Que SetTimerEx o SetTimer Ejecutan Un Temporizador en El Servidor y GetTickCount Solo Mide El Tiempo Cada Vez Que Es Llamado Con Esto Reducirias el Lag Notablemente si Son Muchos SetTimerEx

Comenzemos Con Un Ejemplo Con SetTimerEx
pawn Код:
new Variable[MAX_PLAYERS];
    public OnPlayerConnect(playerid)
        {
            Variable[playerid]=0;
            return 1;
        }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
        if(strcmp(cmdtext, "/prueba", true) == 0)
            {
            if (Variable[playerid]==1) return SendClientMessage(playerid,0,"Aun Esta en Progreso !");
            else
                {
                SendClientMessage(playerid,0,"La Variable Esta En 0");
                SetTimerEx("Listo", 10000, false, "i", playerid);
                Variable[playerid]=1;
                }
            return 1;
            }
        return 0;
    }
    forward Listo(playerid);
    public Listo(playerid)
        {
            Variable[playerid]=0;
            return 0;
        }

Ahora Con GetTickCount
pawn Код:
new Variable[MAX_PLAYERS];
    public OnPlayerConnect(playerid)
        {
            Variable[playerid]=0;
            return 1;
        }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
        if(strcmp(cmdtext, "/prueba", true) == 0)
            {
            if(Listo(playerid)) return SendClientMessage(playerid,0,"Aun Esta en Progreso !");
            else
                {
                Variable[playerid]=GetTickCount();
                SendClientMessage(playerid,0,"La Variable Esta En 0");
                }
            return 1;
            }
        return 0;
    }
    stock Listo(playerid)
    {
        if(GetTickCount() - Variable[playerid] < 10000)
            return 1;

        return 0;
    }
Se Nota La Diferenciaї Con Esto Podran Disminuir El Lag Pero Solo En Algunas Funciones Puede Ser Usada Solo Cuando Es Llamada No Cuando Debe Ser Llamada Me Explicoї Osea Si Vas a Usar un AntiFlood Por lo General Es Muy Util Pero Si Es Una Funcion Que Debe Avisar Algo al Jugador No Funcionara


Basicamente Se Usa GetTickCount En Dos Pasos
pawn Код:
//Paso 1:
    Variable[playerid]=GetTickCount();
    //Aqui La Variable Que Tengamos Se Iguala a El Tiempo De GetTickCount
    //Cuando Ejecutamos Una Instruccion

//Paso 2:
    GetTickCount() - Variable[playerid] < 10000)
    //Aqui Con Un if Checamos Si El Tiempo Menos El Tiempo De La Variable
    //Tomada Anteriormente Es Menor a 10000.. Si Lo Es Esto Continuara
    //De Lo Contrario Se Detendra Hasta Que Se Vuelva a Medir el Tiempo
    //Y Sea Este El Necesario (10000 ms)
Es Mi Primer Tutorial Si tienen Dudas o Algo Esta Mal Seria Muy Amable Que Me Lo Hagan Saber Para Corregirlo... Los Codigos no Eh Tenido Tiempo De Probarlos Son Solo Ejemplos... Si Creen Que Debo Agregarle o Quitarle Algo Tambien Haganmelo Saber Gracias
Reply


Messages In This Thread
Uso De GetTickCount - by Shiny_David - 08.07.2012, 02:57
Respuesta: Uso De GetTickCount - by dannypanda05 - 08.07.2012, 15:43
Respuesta: Uso De GetTickCount - by Shiny_David - 08.07.2012, 16:18
Respuesta: Uso De GetTickCount - by dannypanda05 - 08.07.2012, 16:51
Respuesta: Uso De GetTickCount - by Shiny_David - 08.07.2012, 16:58
Respuesta: Uso De GetTickCount - by dannypanda05 - 09.07.2012, 01:15
Respuesta: Uso De GetTickCount - by Shiny_David - 09.07.2012, 04:16
Respuesta: Uso De GetTickCount - by Matyaas - 09.07.2012, 20:01
Respuesta: Uso De GetTickCount - by Shiny_David - 09.07.2012, 23:09
Respuesta: Uso De GetTickCount - by CaptainMactavish - 18.07.2012, 03:15

Forum Jump:


Users browsing this thread: 3 Guest(s)