SA-MP Forums Archive
[Duda]їComo creo un sistema de hora? - 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]їComo creo un sistema de hora? (/showthread.php?tid=481872)



[Duda]їComo creo un sistema de hora? - ValenRatti - 18.12.2013

Buenas, quisiera saber como hacer para crear un sistema de hora para un servidor Roleplay, y como haria para que en una hora determinada cambie y se haga de noche? Gracias de antemano
PD: No es un pedido, sino que me digan como hacerlo para yo hacer el script


Respuesta: [Duda]їComo creo un sistema de hora? - OTACON - 18.12.2013

https://sampwiki.blast.hk/wiki/Gettime
https://sampwiki.blast.hk/wiki/SetWorldTime

pawn Код:
#include <a_samp>
#include <zcmd>
static Hour, Minute, Second;

COMMAND:hora(playerid, params[]){
    new data[100];
    gettime(Hour, Minute, Second);
    SetWorldTime(Hour); // <------
    format(data,sizeof(data),"Hora:%02d Minutos:%02d Segundos:%02d", Hour, Minute, Second);
    GameTextForPlayer(playerid,data,5000,1);
    return true;
}
o puedes usar directamente el filterscript que viene por defecto en los archivos de samp, se llama gl_realtime
saludos.



Re: [Duda]їComo creo un sistema de hora? - ValenRatti - 18.12.2013

Gracias Otacon, en ese caso la hora seria la misma para todos los usuarios? Y como haria para que en una determinada hora se haga de noche? Saludos y muchisimas gracias


Respuesta: [Duda]їComo creo un sistema de hora? - OTACON - 18.12.2013

si, SetWorldTime es global.
pero no en tendi bien lo que quieres hacer pero...

tienes que usar SetWorldTime para determinar la hora y asi se haga de noche o de dia segun la hora que coloques.

pero si quieres que se coloque solo debes colocar el gettime y SetWorldTime en un timer.

ejemplo:


pawn Код:
#include <a_samp>
static Hour, Minute, Second;

public OnFilterScriptInit(){
    SetTimer("Actualizar_Hora", 1000, true);
    return true;
}

forward Actualizar_Hora();
public Actualizar_Hora(){
    gettime(Hour, Minute, Second);
    SetWorldTime(Hour);
}



Re: [Duda]їComo creo un sistema de hora? - ValenRatti - 18.12.2013

Ah, creo que entendi, con SetWorldTime se actualiza si es de noche o de dia? Gracias otacon


Respuesta: [Duda]їComo creo un sistema de hora? - OTACON - 18.12.2013

exacto.

gettime verifica la hora del ordenador donde se encuentra el GM.
SetWorldTime se la establece al serividor para que tenga la misma hora que el ordenador.

y por obvias razones si son las 10 de la noche sera de noche en el servidor.

saludos.



Re: [Duda]їComo creo un sistema de hora? - ValenRatti - 19.12.2013

Otacon perdon que caiga un dia despues pero yo lo hice en un textdraw lo de la hora, їpara que se actualice todo el tiempo tengo que hacer un timer desde que se conecta para que actualice los minutos?
Seria:
SetTimerEx("SurfingFix", 60 * 1000 , 1, "i", p); ??
Gracias de antemano


Respuesta: [Duda]їComo creo un sistema de hora? - OTACON - 19.12.2013

pawn Код:
#include <a_samp>

static Hour, Minute, Second,
MatarActualizar_Hora[MAX_PLAYERS];

public OnPlayerSpawn(playerid){
    KillTimer(MatarActualizar_Hora[playerid]);
    MatarActualizar_Hora[playerid] = SetTimerEx("Actualizar_Hora", 1*1000 , true, "i", playerid);
    TextDrawShowForPlayer(playerid, TU_TEXTDRAW);
    return true;
}
public OnPlayerDisconnect(playerid, reason){
    KillTimer(MatarActualizar_Hora[playerid]);
    TextDrawHideForPlayer(playerid, TU_TEXTDRAW);
    return true;
}
forward Actualizar_Horaplayerid();
public Actualizar_Hora(playerid){
    new data[100];
    gettime(Hour, Minute, Second);
    SetWorldTime(Hour);
    format(data, sizeof(data), "Hora:%02d Minutos:%02d Segundos:%02d", Hour, Minute, Second);
    TextDrawSetString(TU_TEXTDRAW, data);
}