Posts: 407
Threads: 131
Joined: Apr 2011
Reputation:
0
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
Posts: 4,930
Threads: 467
Joined: Dec 2010
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.
Posts: 407
Threads: 131
Joined: Apr 2011
Reputation:
0
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
Posts: 4,930
Threads: 467
Joined: Dec 2010
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);
}
Posts: 407
Threads: 131
Joined: Apr 2011
Reputation:
0
Ah, creo que entendi, con SetWorldTime se actualiza si es de noche o de dia? Gracias otacon
Posts: 4,930
Threads: 467
Joined: Dec 2010
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.
Posts: 407
Threads: 131
Joined: Apr 2011
Reputation:
0
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
Posts: 4,930
Threads: 467
Joined: Dec 2010
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);
}