Reloj.
#1

Tengo este cуdigo:
pawn Код:
new Minute;
new Hour;

public OnGameModeInit()
{
    SetWorldTime(6);
    Hour = 6;
    Minute = 0;
    SetTimer("Time", 2000, true);
    return 1;
}

dcmd_time(playerid, params[])
{
    #pragma unused params
    new string[10];
    format(string, sizeof(string)," > Time: %d", Hour, Minute);}
    SendClientMessage(playerid, COLOR_WHITE, string);
    return 1;
}

forward Time();
public Time()
{
    Minute ++;
    if(Minute == 60)
    {
        Minute = 0;
        Hour ++;
    }
    if(Hour == 24)
    {
        Minute = 0;
        Hour 0;
    }
    SetWorldTime(Hour);
}
Lo que quiero es que un minuto sea un segundo, y 60 minutos sean 1 hora.

En este reloj que tengo nunca avanza, siempre se queda en 6:00 y cuando pasan 2 segundos cambia a 6:01 y despuйs vuelve a 6:00.
Reply
#2

pawn Код:
new Minute;
new Hour;

public OnGameModeInit()
{
    SetWorldTime(6);
    Hour = 6;
    Minute = 0;
    SetTimer("Time", 1000, true);// si quieres que sea un segundo debe estar asi
    return 1;
}

dcmd_time(playerid, params[])
{
    #pragma unused params
    new string[10];
    format(string, sizeof(string)," > Time: %d", Hour, Minute);}
    SendClientMessage(playerid, COLOR_WHITE, string);
    return 1;
}

forward Time();
public Time()
{
    Minute ++;
    if(Minute == 60)
    {
        Minute = 0;
        Hour ++;
    }
    if(Hour == 24)
    {
        Minute = 0;
        Hour 0;
    }
    SetWorldTime(Hour);
    SetTimer("Time", 1000, true);//aqui haces que el tiempo siga corriendo ya que solo pones la variable al iniciar el gm
}
Prueba esto no se si funcione pero trata de hacerlo como te digo, solo ejecutas el public al iniciar el gm tienes que hacer que el public se ejecute cada segundo...
Reply
#3

El 'true' del Timer hace que siga y no pare.
Reply
#4

intentaste la funcion
creo que no para pero corriendo en negativo -1 -2 -3 ajajajajajajaajaj en fin si ya lo intentaste y no funciono mi consejo, esperemos que te ayude alguien que si sepa jajjajjaja....
Saludosssssssssssss
Reply
#5

Si mejor. :B
Reply
#6

Amigo te cuento que probe el codigo y funciono como tu quieres, te cuento en el pawn
pawn Код:
new Minute;
new Hour;

public OnGameModeInit()
{
    SetWorldTime(6);
    Hour = 6;
    Minute = 0;
    SetTimer("Time", 1000, true);//lo del segundo es obvio
    return 1;
}

dcmd_time(playerid, params[])
{
    #pragma unused params
    new string[20];//el string debe ser mas grande ya que son mas de 10 caracteres
    format(string, sizeof(string)," > Time: %d:%d", Hour, Minute);//aqui tenias una llave de mas y solo le dabas formato a hour
    SendClientMessage(playerid, COLOR_WHITE, string);
    return 1;
}

forward Time();
public Time()
{
    Minute ++;
    if(Minute == 60)
    {
        Minute = 0;
        Hour ++;
    }
    if(Hour == 24)
    {
        Minute = 0;
        Hour = 0;////y por ultimo aca te falta un =
    }
    SetWorldTime(Hour);
}
A mi me funciona perfecto, si lo tienes igual y no te funciona puede que haya algo en el gm o un filterscript que afecte a la hora y haga un lado tu funcion y se ejecute otra...
saludosssssssssssssssssssssssssssssssss
Reply
#7

Eso que me acabas de decir, hizo que mi computadora fallara. :3
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)