Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

Programar eventos en función de la hora del sistema

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP Programar eventos en función de la hora del sistema

Mensaje por silvanash el 2012-11-09, 19:37

Estaba mirando cosas en Google (San Google) para responder al chaval que quería hacer eventos con la fecha del sistema y encontré algo muy interesante.

Enlace

Ahí te explican que RMXP, por defecto, viene preparado para leer la hora del sistema. Además, te explican cómo convertir la lectura de la hora en tres variables para poder hacer un draw_text en una window.

Haciendo una pequeña modificación de eso podrías hacer engines muy interesante. Sólo habría que hacer un pequeño script que leyera la hora del sistema, la descompusiera en hora, minutos, segundos e hiciera que tres variables tomaran esos valores.

Se podría hacer un evento común que llamara a ese script, y luego usando un montón de condiciones y efectos, programar eventos en función de la hora real del PC (como los juegos de Pokémon, que tenían día y noche acordes con la hora real).

Sólo es una idea, a ver si a alguien le resulta útil (ya que no conseguí ayudar a aquel chaval).
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 194

Gracias : 247

Volver arriba Ir abajo

RPG Maker XP Re: Programar eventos en función de la hora del sistema

Mensaje por Wecoc el 2012-11-09, 20:24

No hace falta script para descomponer y es bastante sencillo, además el pokemon essentials mismo trae un ejemplo para usar eso creo.
Puedes hacerlo así:
Time.now.strftime("algo")

Donde ese algo puede ser %A, %a, %W (atención las comillas tienen que estar)... hay un montón de posibilidades, porque se puede poner más de una dentro de las comillas.

¿Qué es cada letra? Mira en las instrucciones, busca Time y dentro busca strftime, allí hay toda la lista.

Ejemplo:
Time.now.strftime("%A %d of %B, %Y") # => Friday 09 of November, 2012

Todo esto con el tiempo actual, Time.now, que normalmente será el que se usará en engines. ¿Pero y si quiero info de un tiempo que no es el actual? Pues en el RTP lo hace por ejemplo con Time.at(0) para la fecha del load (guardada en su momento como Time.now en el save). Todo lo demás va igual. Existen mtime, atime y muchos más pero para esto no hace falta entrar en ellos....

Info adicional (atención; tocho):
El pokemon essentials (el que yo tengo al menos) trae algo aún más interesante, y es que te marca a parte de la hora, el LUGAR donde estás en realidad (ciudad) buscando en una web externa tu IP, aunque a veces falla así que para usarlo de engine (si es que se puede encontrar alguna utilidad de eso a parte de asustar un poco al jugador xD) conviene tener un plan B por si la web no te encuentra.

Para más info consultar este evento en Test Map 2:


PD.- Utilidad estúpida random chistosa; que si estas jugando desde Australia te salga el juego lleno de eventos canguro xDD, o que si estas jugando desde alguna parte cerca del mar, el chara lleve gafas de buceo y/o bañador aunque él esté en tierra firme xDD ¡Oh sí, de aquí se pueden sacar cosas MUY estúpidas! xDDD
avatar
Wecoc
Administrador
Administrador



Créditos 12241

Gracias : 639

Volver arriba Ir abajo

RPG Maker XP Re: Programar eventos en función de la hora del sistema

Mensaje por UlisesBritos el 2012-11-10, 15:10

Hola! Tratando de poner que se regale un objeto, cada viernes en mi juego, dependiendo de la fecha del pc, con el time.now.strftime("%A") == Friday
me tira este error
Error:
---------------------------
Pokemon Essentials
---------------------------
Exception: RuntimeError

Message: Script error within event 6, map 2 (Lappet Town):

Exception: NameError

Message: (eval):1:in `pbExecuteScript'uninitialized constant Interpreter::Friday

***Full script:

Time.now.strftime("%A") == Friday

Interpreter:243:in `pbExecuteScript'

Interpreter:788:in `eval'

Interpreter:243:in `pbExecuteScript'

Interpreter:788:in `command_111'

Interpreter:320:in `execute_command'

Interpreter:193:in `update'

Interpreter:106:in `loop'

Interpreter:198:in `update'

Scene_Map:103:in `update'

Scene_Map:101:in `loop'



Interpreter:276:in `pbExecuteScript'

Interpreter:788:in `command_111'

Interpreter:320:in `execute_command'

Interpreter:193:in `update'

Interpreter:106:in `loop'

Interpreter:198:in `update'

Scene_Map:103:in `update'

Scene_Map:101:in `loop'

Scene_Map:114:in `update'

Scene_Map:68:in `main'



This exception was logged in

C:\Users\Ulises\Saved Games/Pokemon Essentials/errorlog.txt.

Press Ctrl+C to copy this message to the clipboard.
---------------------------
Aceptar
---------------------------
avatar
UlisesBritos
Iniciado
Iniciado

0/3

Créditos 8

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: Programar eventos en función de la hora del sistema

Mensaje por Wecoc el 2012-11-10, 15:43

Bueno no sé si el Pokesentials funciona igual que el default, y el rollo que solté era para el default. El strftime es para una string (por eso lo de str, es decir, para que escriba "Friday", no para que lo devuelva y poder comprobarlo)
Para mirar si es o no viernes sería así:

time.now.wday == 5

wday son los días de la semana mientra que mday los días del mes.
Con wday no estoy seguro pero creo que van así:
0 --> Domingo
1 --> Lunes
2 --> Martes
3 --> Miércoles
4 --> Jueves
5 --> Viernes
6 --> Sábado

Tienes toda la info en las instrucciones del maker.
avatar
Wecoc
Administrador
Administrador



Créditos 12241

Gracias : 639

Volver arriba Ir abajo

RPG Maker XP Re: Programar eventos en función de la hora del sistema

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.