Duda con el time
#1

Cree el comando /regalo, pero quiero que se active despuйs del dнa 25 de diciembre, como se ase esa funcion? si alguien me explica, o me da alguna base :v


їSe podrнa aser con un SetTimer en OnGameModeInit? o hay otra manera mas fasil
Reply
#2

https://sampwiki.blast.hk/wiki/Getdate :b hace que compruebe la fecha cada 5 minutos o 10 xD y asн le haces un label si es pasado eso
Reply
#3

Algo asi?

pawn Код:
new Dias = 10;      
new Horas = 4;     
new Minutos = 0;   

forward  CalcularTiempo();
public CalcularTiempo()
{

    {
    Minutos -= 1;
    Segundos = 60;
    return 1;
    }
    if(Minutos == 0)
    {
    Horas -= 1;
    Minutos = 60;
    return 1;
    }
    if(Horas == 0)
    {
    Dias -= 1;
    Horas = 24;
    return 1;
    }
    ActualizarTexto();
    return 1;
}

    SetTimer("CalcularTiempo", 1000, 1);
Hay creo que ya defini el tiempo, pero lo que no entiendo, en donde pongo el cmd:regalo?
Reply
#4

si lo que quieres es que el comando funcione solo ese dia, no es necesario un timer.
saludos.


pawn Код:
COMMAND:regalo(playerid, params[]) {
    new Year, Month, Day,  Hour, Minute, Second;
    getdate(Year, Month, Day);
    gettime(Hour, Minute, Second);
    if(Year != 2013 && Day != 25 && Month != 12) return SendClientMessage(playerid, -1, "no es navidad todavia!");
    if(Hour != 0 && Minute != 0 && Second != 0) return SendClientMessage(playerid, -1, "no son las 12!.");
    // ACA TU FUNCION
    return true;
}
https://sampwiki.blast.hk/wiki/Gettime
https://sampwiki.blast.hk/wiki/getdate

PD: viciosos!!, el 25 estaran jugando samp ? ¬¬ :P XDD
Reply
#5

Quote:
Originally Posted by Jejox
Посмотреть сообщение
Algo asi?

pawn Код:
new Dias = 10;      
new Horas = 4;     
new Minutos = 0;   

forward  CalcularTiempo();
public CalcularTiempo()
{

    {
    Minutos -= 1;
    Segundos = 60;
    return 1;
    }
    if(Minutos == 0)
    {
    Horas -= 1;
    Minutos = 60;
    return 1;
    }
    if(Horas == 0)
    {
    Dias -= 1;
    Horas = 24;
    return 1;
    }
    ActualizarTexto();
    return 1;
}

    SetTimer("CalcularTiempo", 1000, 1);
Hay creo que ya defini el tiempo, pero lo que no entiendo, en donde pongo el cmd:regalo?
Asн

pawn Код:
new TimerLala;
new EsFecha;
new Text3D:FechaEspecial;




public OnGameModeInit()
{
TimerLala = SetTimer("CalcularTiempo", 60*1000*10, true);
CalcularTiempo();
return 1;
}
forward CalcularTiempo();
public CalcularTiempo()
{
    new Anio,Mes,Dia;
    getdate(Anio, Mes, Dia);
    #pragma unused Anio
    if(Mes == 12 && Dia > 25 && Dia < 31+1)
    {
    EsFecha = 1;
    return KillTimer(TimerLala);
    }else
    {
    EsFecha = 0;
    }
    ActualizarLabel();
    return 1;
}

stock ActualizarLabel()
{
    if(EsFecha != 1)
    {
    DestroyDynamic3DTextLabel(FechaEspecial);
    FechaEspecial = CreateDynamic3DTextLabel("Aъn no es 26 de diciembre!",-1, x,y,z,15.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0,0);
    }
    else
    {
    DestroyDynamic3DTextLabel(FechaEspecial);
    FechaEspecial = CreateDynamic3DTextLabel("Ya es 26 de diciembre!",-1, x,y,z,15.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0,0);
    }
    return 1;
}

COMMAND:regalo(playerid, params[]) {
 
    if(EsFecha != 1) return SendClientMessage(playerid, -1, "No es navidad todavia!");

    // asd
    return true;
}

no lo probй xD
Reply
#6

recuerden que Gettime y getdate se actualiza segun los datos del ordenador.
para lo que quieres hacer no es necesario un timer.


https://sampwiki.blast.hk/wiki/Gettime
https://sampwiki.blast.hk/wiki/getdate
Reply
#7

Quote:
Originally Posted by Zume-Zero
Посмотреть сообщение
Asн

pawn Код:
new TimerLala;
new EsFecha;
new Text3D:FechaEspecial;




public OnGameModeInit()
{
TimerLala = SetTimer("CalcularTiempo", 60*1000*10, true);
CalcularTiempo();
return 1;
}
forward CalcularTiempo();
public CalcularTiempo()
{
    new Anio,Mes,Dia;
    getdate(Anio, Mes, Dia);
    #pragma unused Anio
    if(Mes == 12 && Dia > 25 && Dia < 31+1)
    {
    EsFecha = 1;
    return KillTimer(TimerLala);
    }else
    {
    EsFecha = 0;
    }
    ActualizarLabel();
    return 1;
}

stock ActualizarLabel()
{
    if(EsFecha != 1)
    {
    DestroyDynamic3DTextLabel(FechaEspecial);
    FechaEspecial = CreateDynamic3DTextLabel("Aъn no es 26 de diciembre!",-1, x,y,z,15.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0,0);
    }
    else
    {
    DestroyDynamic3DTextLabel(FechaEspecial);
    FechaEspecial = CreateDynamic3DTextLabel("Ya es 26 de diciembre!",-1, x,y,z,15.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0,0);
    }
    return 1;
}

COMMAND:regalo(playerid, params[]) {
 
    if(EsFecha != 1) return SendClientMessage(playerid, -1, "No es navidad todavia!");

    // asd
    return true;
}

no lo probй xD
gracias no sabia que se podia hacer de otra manera mas fasil Solo tengo un problema, porque no funciona el label? Solo dime eso y ya esta xD esque nunca trabaje con una funcion como esa/:

PD: OTACON, creo este sistema para que en navidad no aga falta editar el gm y poner el comando xD Porque la verdad que no voy a poder :P xD
Reply
#8

Quote:
Originally Posted by Jejox
Посмотреть сообщение
gracias no sabia que se podia hacer de otra manera mas fasil Solo tengo un problema, porque no funciona el label? Solo dime eso y ya esta xD esque nunca trabaje con una funcion como esa/:

PD: OTACON, creo este sistema para que en navidad no aga falta editar el gm y poner el comando xD Porque la verdad que no voy a poder :P xD
el timer lo tienes que utilizar si vas a actualizar y mostrar la informacion, osea mostra en el servidor que dia es y hora, si solo kieres hacer que no funcione el comando no hace falta el timer y no tienes que estar modificando nada una vez compilado.

cuando utilizen el comando verificara los datos y si no son correcto retornada el if.
saludos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)