[Duda]їComo creo un sistema de hora?
#1

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
Reply
#2

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.
Reply
#3

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
Reply
#4

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);
}
Reply
#5

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

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.
Reply
#7

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
Reply
#8

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);
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)