Time (partie 1)
Time(partie 1)
-Introduction
Oui, je tiens beaucoup à la notion du temps! Cette conversion de l'event vers le script est pour le moins difficile, elle sera en plusieurs parties gérant differentes notions. Cette première partie est le coeur du système de temps. Elle contient les fonctions de base que je surchargerai par la suite et le "grand incrémenteur", la méthode qui incrémente tout. Sur mon ordi, il tourne bien à 60 FPS avec tout les autres scripts que j'ai posté récemment. Cependant, je ne connais pas encore l'impact de tout le système de temps avec les ajouts encore inachevés. Pour limiter l'impact de l'incrementation du temps, elle se fait dans un thread secondaire: $time_runner.
-Description
Ce script est le coeur de temps, mais n'a pas beaucoup de manifestation en soi. Ce sont les ajouts qui viendront qui lui donner corps. Pour le moment, il incrémente seulement les variables de base: minutes, heures, jours, semaines, mois, années.
Les mois (donc les années) et les semaines sont customisables.
Il peut afficher l'heure, si vous avez un accessoire particulier. Son rythme d'incrémentation maximal est de une heure par seconde, la vitesse courante d'une minute par seconde. Ralentissable au possible. Fontionne aussi en années négatives.
Il a des raccourcis de message. Il peut vous permettre de faire sonner les horloges... et c'est déjà pas mal.
-Installation
Ce script n'échappe pas à la régle du "copiez en dessous de material".
Il n'a pas de nécéssité particulière.
-Utilisation
Le temps est une notion assez particulière. La customiser peut être à double tranchant.
Configuration:
Regardons le module de configuration:
Code: |
#Module de configuration |
Bon, il est assez conséquent. Regardons les données (DATAS)
Code: |
#Module de configuration |
ASTRAL_YEAR correspond à la "vraie" durée d'une année: dans le calendrier Grégorien les années bissextiles sont un peu plus compliquée que dans le calendrier Julien. 365,25 est la valeur d'une année Julienne. Cette différence d'apparence insignifiante fera varier des paramètres comme les saisons très doucement sur 400 ans... (cela explique en parti pourquoi le premier jour des saisons, n'est pas toujours le même mais oscille entre 4 jours, même si le 21 est le plus récurent.
Je me suis sans doute embeter pour rien, mais bon ça ne représente pas beaucoup de code en plus.
nota: les saisons sont absentes de ce script mais sont prévues pour le suivant...
DECALAGE, c'est le décalage à l'origine de l'année calendaire avec l'année astronomique. Je considère que l'année astronomique commence le premier jour de la première saison (le Printemps)...
CALENDAR est bien la structure de l'année. Vous pouvez ajouter un mois ou en supprimer un, les rallonger ou les raccourcirs, les rendre sensibles aux années bissextiles, ou non. Pour faire la dernière action, il suffit de rajouter une seconde valeur de durée, comparez Février aux autres mois.
WEEK est la structure de la semaine, tout aussi customisable.
Les valeurs "INIT" sont les valeurs de départ de l'horloge.
Le reste du module correspond à de l'adressage, donc ce n'est pas difficile de comprendre.
Fonctionnalités:
- Mettre en route le temps:
Il suffit d'activer l'interrupteur à l'adresse RUNNING par défaut 1. Pour le stopper, il suffit de le désactiver.
- Modifier le rythme:
Dans un appel de script, écrivez:
$game_time.time_speed( speed, limite)
speed correspond au nombre de secondes incrémentées par frame.
limite correspond au nombre de secondes pour incrémenter une minute.
Ainsi quand speed = limite vous êtes à la vitesse maximale.
nota: je n'ai pas remarqué de lag causé par le changement de vitesse, ou inputable à la vitesse, même maximale. Le lag que j'avais pu repéré était au niveau de l'affichage, mais il est normalement solutioné.
- Saut temporel:
Pour faire un saut temporel, je vous conseil:
- de stopper le temps
- de modifier les variables correspondantes comme des variables normales
- d'appeller un script: $game_time.verif
(en réalité, il s'agit plus d'une update, qu'une vérif. Il vérifie bien vos valeurs, mais il met à jour certaines variables muettes)
- de remettre en marche le temps
- Raccourci de message:
Il y a plusieurs raccourcis.
Pour l'heure, c'est \TH[mode], le mode correspond à 24 ou 12, par défaut c'est 24.
Pour la date, c'est \TD[forme], il y a beaucoup de forme:
0: Lundi
1: Lundi 23 Septembre
2: 23 Septembre 1390
3: 23/09/90
4: 23/09/1390
5: Lundi 23 Septembre 1390
6: Lun 23/09/90
Pour le mois \TM[id] renvois le nom du mois, si non complété, il renvois le mois actuel.
- La montre:
Il suffit de compléter les tableaux pour rendre l'accessoire apte à donner l'heure. Selon dans quel tableau, il se trouve, l'affichage sera different (même ordre que le raccourci de date).
- La sonnerie:
La sonnerie est une variable qui possède le nombre de l'heure en mode 12h, tant que les minutes ne dépassent pas la valeur de l'heure en mode 12h, sinon la variable est toujours égale à 0. Un event avec comme trigger "la variable sonnerie est superieure à 1", s'activera à chaque début d'heure. Il vous suffit de lui donner le déplacement automatique de jouer un beep, puis d'attendre 59 frames en boucle. Il biiiippera le nombre d'heures.
#===============================================================================-Le script Spoiler:
Code:
#
#
# TIME.v3
#
#
#===============================================================================
#
#By Vincentmhd
#http://vincentmhdmaker.canalblog.com/
#3/09/09
#
#
#
#
#
#=====================================NOTE======================================
#
#
#-------------------------------------------------------------------------------
#
#Ce script génére une notion de temps fictive dans votre jeu. Il possède une
#boucle principale qui incrémente le temps et le calendrier. Le calendrier
#utilisé est le calendrier Grégorien. Chaque variable importante est contenue
#dans une $game_variables[] dont l'adresse est modifiable dans le module de
#configuration.
#Le calendrier comprend comme notions:
#les minutes, les heures, les jours, les mois, les années.
#
#A ces notions, les jours de la semaines s'ajoutent.
#-------------------------------------------------------------------------------
#
#Le temps en soit n'a pas de manifestation autre que les variables, et les
#switches. Les manifestations les plus vives seront ajoutées par d'autres
#scripts complémentaires.
#
#-------------------------------------------------------------------------------
#
#Utilisation:
#Le temps s'initialise aux valeurs enregistrées pendant l'écran titre. Le temps
#est dans une variable globale nommée $game_time. Un interrupteur signifie si le
#temps doit s'écouler ou non: RUNNING.
#
#Pour modifier la date, il suffit de jouer directement avec les variables. Une
#méthode de vérification existe. Elle fait les conversions nécéssaires au bon
#déroulement du script. Je vous conseille fortement de stopper le temps, de
#faire les modifications, de les vérifier, puis de réactiver le temps...
#
#Le temps est accelérable et ralentissable. Le rythme du temps dépend de
#l'incrémentation des secondes, qui sont muettes, autant de par le nombre de
#secondes incrémentées en une frame, et de par le nombre de secondes dans une
#minute. la méthode time_speed(speed, limit =60) s'occupe de cela.
#
#
#-------------------------------------------------------------------------------
#A cette gestion, des fonctionnalités ont étées ajoutées:
#
#Sonnerie: une variable contient la valeur de l'heure en mode 12 et qu'au moment
# de sonner. Sinon, elle contient 0.
#
#Ecriture: Deux surcharges du Window_message vous permettent d'écrire l'heure ou
# la date directement en message.
#
#Affichage: Le temps est affichable, par une fenêtre. Cependant, il faut une
# montre pour avoir l'heure. C'est la montre de forme la plus élevée
# qui conditionne l'affichage: Avoir 5 montres ne change rien.
# L'affichage risque d'être aberrant en année négative.
# l'affichage est aussi soumis à un interrupteur pour cacher la
# fenêtre (genre si vous stoppez le temps durant une cut-scene).
#-------------------------------------------------------------------------------
#
#Le temps est customisable. Outre les noms modifiables, il y a le nombre de
#mois, le nombre de jours dans ceci, s'ils sont sensibles à l'année bissextile,
#combien de jours dure une année "astrale", le nombre de jours dans la semaines.
#
#Je tiens juste à vous mettre en garde, customiser un calendrier, n'est
#pas aussi simple que vous pourriez être tenté de le penser.
#
#-------------------------------------------------------------------------------
module Custom_Time
#Module de configuration
#=====================================DATAS=====================================
ASTRAL_YEAR =365.2422
DECALAGE =79.25
CALENDAR =[["Janvier",31],["Février",28,29],["Mars",31],["Avril",30],["Mai",31],["Juin",30],["Juillet",31],["Août",31],["Septembre",30],["Octobre",31],["Novembre",30],["Décembre",31]]
WEEK =["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"]
INIT_MINUTE =23
INIT_HOUR =22
INIT_DAY =28
INIT_MONTH =2
INIT_YEAR =1604
#===================================ADRESSAGE===================================
#Id des variables principales
MINUTES =1
HOURS =2
DAYS =3
MONTHS =4
YEARS =5
#Id des variables secondaires
DAY_WEEK =6 #Le jour de la semaine
H_MODE_12 =7 #L'heure en mode 12h
SONNERIE =8 #Le nbs de sonneries à jouer
#Id des Montres
EQUIP_NV1 =[23] # Heure
EQUIP_NV2 =[] # Heure + Js
EQUIP_NV3 =[] # Heure + Js J Ms
EQUIP_NV4 =[] # Heure + J Ms An
EQUIP_NV5 =[24] # Heure + J/Ms/An[2]
EQUIP_NV6 =[] # Heure + J/Ms/An[4]
EQUIP_NV7 =[] # Heure + Js J Ms An
EQUIP_NV8 =[30] # Heure + Js[3] J/Ms/An[2]
#Id des switches
RUNNING = 1 #Si le temps s'écoule
HIDE_TIME = 2 #Si la montre s'affiche
#===============================================================================
class Mhd_Time
attr_accessor :secondes, :speed, :incrementation, :total_day, :astral_day
def initialize
@secondes = 0
@speed = 1
@incrementation = 60
@total_day = 0
@astral_day = 0
init
end
#=============================#
# Incrémentation du temps #
#=============================#
#Appelée à chaque frame, c'est la méthode principale.
#Elle incrémente les secondes et les autres variables
#en cascade.
#Elle est appelée par Game_map update ainsi le temps
#ne s'incémente que sur la map.
def run
if $game_switches[RUNNING]
secondes_update
if @secondes >= @incrementation
@secondes-= @incrementation
minutes_update
if $game_variables[MINUTES]>=60
$game_variables[MINUTES]-=60
hours_update
if $game_variables[HOURS]>= 24
$game_variables[HOURS]-=24
days_update
month_limite = month_size?()
if ($game_variables[DAYS] > month_limite)
$game_variables[DAYS]-= month_limite
months_update
if $game_variables[MONTHS] > CALENDAR.size
$game_variables[MONTHS]-=CALENDAR.size
years_update
end
end
week_update
astral_update
$time_window.day_refresh
end
end
$time_window.minute_refresh
$time_window.update
end
end
end
#=============================#
# Initialisation #
#=============================#
#Elle assigne les premières valeurs avant même
#le chargement de données, ainsi charger écrase
#les valeurs initiatiales
#Appelée à l'écran titre
def init
$game_variables[MINUTES] = INIT_MINUTE
$game_variables[HOURS] = INIT_HOUR
$game_variables[DAYS] = INIT_DAY
$game_variables[MONTHS] = INIT_MONTH
$game_variables[YEARS] = INIT_YEAR
setup
end
#=============================#
# Verif #
#=============================#
#verification des valeurs
#la différence entre le 2 tient au fait que verif
#ne peut s'appeler que sur la map
#car elle nécéssite l'existance de la fenêtre.
def setup
verif_pos
verif_neg
verif_zero
@total_day = total_day?()
astral_calculate
week_update
hours_12_update
if $game_variables[MINUTES] < $game_variables[H_MODE_12]
sonnerie_On
end
end
def verif
setup
$time_window.minute_refresh
$time_window.day_refresh
$time_window.update
end
#=============================#
# Update de temps #
#=============================#
#Updates appelée par l'incrémenteur
def secondes_update
@secondes += @speed
end
def minutes_update
$game_variables[MINUTES] +=1
sonnerie_Off
end
def hours_update
$game_variables[HOURS]+=1
hours_12_update
sonnerie_On
end
def hours_12_update
if $game_variables[HOURS]> 12
$game_variables[H_MODE_12] = $game_variables[HOURS] - 12
else
$game_variables[H_MODE_12] = $game_variables[HOURS]
end
end
def days_update
$game_variables[DAYS]+= 1
@total_day +=1
end
#comme les secondes, @astral_day et @total_day
#ne sont pas enresgistrées dans une variable
#car non exploitables en events.
#Elles sont calculées une première fois par les vérificateurs.
#leurs calculs assez lourd donc autant le faire le moins possible.
#l'incrémenteur se contante d'incrémenter, son rôle quoi.
def astral_update
@astral_day += 1
if @astral_day > ASTRAL_YEAR
@astral_day -= ASTRAL_YEAR
end
end
def week_update
$game_variables[DAY_WEEK] = day_week?()
end
def months_update
$game_variables[MONTHS]+= 1
end
def years_update
$game_variables[YEARS]+= 1
end
#===============================#
# Méthodes usuelles #
#===============================#
def bissextile?(year)
if year%4 ==0
if year%100 ==0
if year%400 ==0
return true
else
return false
end
else
return true
end
else
false
end
end
def month_size?(month =$game_variables[MONTHS], year=$game_variables[YEARS])
if bissextile?(year)&&(CALENDAR[month-1].size == 3)
return CALENDAR[month-1][2]
else
return CALENDAR[month-1][1]
end
end
#il y a peut être des erreurs dans cette fonction
#dans le sens notion de durée, d'interval et de date
def total_day?(day=$game_variables[DAYS], month=$game_variables[MONTHS], year=$game_variables[YEARS])
#année positive
if year> 0
result = (year-1)*ASTRAL_YEAR #l'année 0 n'existe pas donc 1/1/1 = 1 jour, et non pas 366j
month -=1
while month > 0
result += month_size?(month, year)
month -= 1
end
result += (day-1)
return result
#année négative
elsif year< 0
result = year*(-ASTRAL_YEAR)
month -=1
while month > 0
result -= month_size?(month, year)
month -= 1
end
result -= (day-1)
return result
else
#année 0? erreur mais on continue car non fatale
print("TIME::ERROR year 0 met")
month -=1
while month > 0
result += month_size?(month, year)
month -= 1
end
result += (day-1)
return result
end
end
def day_week?(day= @total_day, year=$game_variables[YEARS])
day%=WEEK.size
if year<0
day-=(WEEK.size -1)
day*=-1
end
return (day).to_i
end
#le jour astral servira aux météos et à la gestion lumineuse
#si je l'inclus maintenant c'est pour laisser le choix
#à une personne d'installer les saisons sans la gst lumineuse
#ou inverse
def astral_calculate
if $game_variables[YEARS]>= 0
@astral_day = (@total_day - DECALAGE)% ASTRAL_YEAR
else
@astral_day = (@total_day + DECALAGE)% ASTRAL_YEAR
@astral_day = ASTRAL_YEAR - @astral_day
end
if (@astral_day < 0)
@astral_day = ASTRAL_YEAR + @astral_day
end
end
#==================================#
# Méthodes de la Sonnerie #
#==================================#
#Expliqué en en tête
def sonnerie_On
$game_variables[SONNERIE] = $game_variables[H_MODE_12]
$game_map.refresh
end
def sonnerie_Off
if $game_variables[MINUTES] >= ($game_variables[SONNERIE])
if $game_variables[SONNERIE] != 0
$game_variables[SONNERIE] = 0
$game_map.refresh
end
end
end
#==================================#
# Méthodes de rapidité #
#==================================#
#modification de la vitesse
def time_speed(speed, limit = 60)
@speed = speed
@incrementation = limit
end
#==================================#
# Méthodes d'écriture #
#==================================#
def write_hour(mode = 24)
hour = ""
if(mode == 24)
if $game_variables[HOURS] < 10
hour = " "
end
hour += $game_variables[HOURS].to_s
else
if $game_variables[H_MODE_12] < 10
hour = " "
end
hour += $game_variables[H_MODE_12].to_s
end
hour += "h"
if ($game_variables[MINUTES]) < 10
hour += "0"
end
hour += ($game_variables[MINUTES]).to_s
return hour
end
#horriblement scripté mais plus simple pour la window
def write_date(forme = 3)
date = ""
case forme
when 0
date += WEEK[$game_variables[DAY_WEEK]]
when 1
date += WEEK[$game_variables[DAY_WEEK]]
date += " "
date += $game_variables[DAYS].to_s
date += " "
date += CALENDAR[$game_variables[MONTHS]-1][0]
when 2
date += $game_variables[DAYS].to_s
date += " "
date += CALENDAR[$game_variables[MONTHS]-1][0]
date += " "
date += $game_variables[YEARS].to_s
when 3
date += $game_variables[DAYS].to_s
date += "/"
if $game_variables[MONTHS]<10
date += "0"
end
date += $game_variables[MONTHS].to_s
date += "/"
if (($game_variables[YEARS].to_i)%100)<10
date += "0"
end
date += (($game_variables[YEARS].to_i)%100).to_s
when 4
date += $game_variables[DAYS].to_s
date += "/"
date += $game_variables[MONTHS].to_s
date += "/"
if ($game_variables[YEARS])<10
date += "0"
end
date += $game_variables[YEARS].to_s
when 5
date += WEEK[$game_variables[DAY_WEEK]]
date += " "
date += $game_variables[DAYS].to_s
date += " "
date += CALENDAR[$game_variables[MONTHS]-1][0]
date += " "
date += $game_variables[YEARS].to_s
else
date += WEEK[$game_variables[DAY_WEEK]][0,3]
date += " "
date += $game_variables[DAYS].to_s
date += "/"
if $game_variables[MONTHS]<10
date += "0"
end
date += $game_variables[MONTHS].to_s
date += "/"
if (($game_variables[YEARS].to_i)%100)<10
date += "0"
end
date += (($game_variables[YEARS].to_i)%100).to_s
end
return date
end
def write_month(id = $game_variables[MONTHS])
return CALENDAR[id][0]
end
#==================================#
# Méthodes de vérification #
#==================================#
#gymnastique mentale!
def verif_zero
if $game_variables[YEARS] ==0
$game_variables[YEARS] =1
end
if $game_variables[MONTHS] == 0
$game_variables[MONTHS] = 1
end
if $game_variables[DAYS] == 0
$game_variables[DAYS] = 1
end
end
def verif_pos
if $game_variables[MINUTES]>= 60
$game_variables[HOURS]+= $game_variables[MINUTES]/60
$game_variables[HOURS] =$game_variables[HOURS]
$game_variables[MINUTES]%=60
end
if $game_variables[HOURS]>= 24
$game_variables[DAYS]+= $game_variables[HOURS]/24
$game_variables[DAYS] = $game_variables[DAYS]
$game_variables[HOURS]%=24
end
#les mois avant les jours car le nombre de jours
#dans le mois dépend des année et du mois
if $game_variables[MONTHS]>CALENDAR.size
$game_variables[YEARS] += $game_variables[MONTHS]/CALENDAR.size
$game_variables[MONTHS]%= CALENDAR.size
end
while $game_variables[DAYS] > month_size?()
$game_variables[DAYS] -=month_size?()
$game_variables[MONTHS]-=1
end
#revérification car modifications du mois...
if $game_variables[MONTHS]>CALENDAR.size
$game_variables[YEARS] += $game_variables[MONTHS]/CALENDAR.size
$game_variables[MONTHS]%= CALENDAR.size
end
#je dois revérifier les jours car le mois à changé...
#non ce n'est pas infini mais c'est long.
while $game_variables[DAYS] > month_size?()
$game_variables[DAYS] -=month_size?()
$game_variables[MONTHS]-=1
end
end
def verif_neg
while $game_variables[MINUTES] < 0
$game_variables[MINUTES] +=60
$game_variables[HOURS] -=1
end
while $game_variables[HOURS] < 0
$game_variables[HOURS] +=24
$game_variables[DAYS] -=1
end
while $game_variables[MONTHS] <=0
$game_variables[YEARS]-=1
$game_variables[MONTHS] += CALENDAR.size
end
while $game_variables[DAYS] <=0
$game_variables[MONTHS]-=1
if $game_variables[MONTHS] ==0
$game_variables[YEARS]-=1
$game_variables[MONTHS] += CALENDAR.size
end
$game_variables[DAYS] += month_size?()
end
end
end
#==================================#
# Window #
#==================================#
class Time_Window < Window_Base
def initialize
super(362, 0, 192, 120)
@forme = 0
@heure = ""
@date = ""
forme?
visible?
refresh
end
#détermine quel affichage en fonction de l'équipement
#Appelé à la fermeture de Scene_equip
def forme?
@forme = 0
for i in 0...EQUIP_NV1.size
for actor_id in 0...$game_party.members.size
actor = $game_party.members[actor_id]
if(actor.armors.include?($data_armors[EQUIP_NV1[i]]))
@forme = 1
end
end
end
for i in 0...EQUIP_NV2.size
for actor_id in 0...$game_party.members.size
actor = $game_party.members[actor_id]
if(actor.armors.include?($data_armors[EQUIP_NV2[i]]))
@forme = 2
end
end
end
for i in 0...EQUIP_NV3.size
for actor_id in 0...$game_party.members.size
actor = $game_party.members[actor_id]
if(actor.armors.include?($data_armors[EQUIP_NV3[i]]))
@forme = 3
end
end
end
for i in 0...EQUIP_NV4.size
for actor_id in 0...$game_party.members.size
actor = $game_party.members[actor_id]
if(actor.armors.include?($data_armors[EQUIP_NV4[i]]))
@forme = 4
end
end
end
for i in 0...EQUIP_NV5.size
for actor_id in 0...$game_party.members.size
actor = $game_party.members[actor_id]
if(actor.armors.include?($data_armors[EQUIP_NV5[i]]))
@forme = 5
end
end
end
for i in 0...EQUIP_NV6.size
for actor_id in 0...$game_party.members.size
actor = $game_party.members[actor_id]
if(actor.armors.include?($data_armors[EQUIP_NV6[i]]))
@forme = 6
end
end
end
for i in 0...EQUIP_NV7.size
for actor_id in 0...$game_party.members.size
actor = $game_party.members[actor_id]
if(actor.armors.include?($data_armors[EQUIP_NV7[i]]))
@forme = 7
end
end
end
for i in 0...EQUIP_NV8.size
for actor_id in 0...$game_party.members.size
actor = $game_party.members[actor_id]
if(actor.armors.include?($data_armors[EQUIP_NV8[i]]))
@forme = 8
end
end
end
end
def minute_refresh
@heure = $game_time.write_hour()
end
def day_refresh
if (@forme > 1)
@date = $game_time.write_date(@forme -2)
else
@date = ""
end
end
def window_refresh
#redimension la fenêtre
#appelée au jour
txt_size = 0
if (((@date.size) * 8) >= (((@heure.size) * 8)+ 24))
txt_size = 32 + (@date.size * 8)
else
txt_size = ((@heure.size) *8) +24 + 32
end
self.x = 544 - txt_size
self.y = 0
self.width = txt_size
if(@date == "")
self.height = 32 + WLH
else
self.height = 32 + WLH*2
end
create_contents
end
def visible?
if (!$game_switches[HIDE_TIME]== true)&&(@forme != 0)
self.visible = true
else
self.visible = false
end
end
def draw_window
self.contents.clear
x = 0
y = 0
if(@date != "")
self.contents.draw_text( x, y, @date.size * 8, 18, @date, 1)
x = ((self.width - 32) - (((@heure.size) *8) +24))
y = WLH
end
self.contents.draw_text(x , y, @heure.size * 8, 18, @heure , 1)
x += @heure.size * 8
self.draw_icon(188, x + 2, y - 2)
end
def refresh
minute_refresh
day_refresh
window_refresh
draw_window
end
def update
super
draw_window
end
end
end
#==================================#
# Alias #
#==================================#
class Window_Message
alias time_convert_special_characters convert_special_characters
def convert_special_characters
time_convert_special_characters
@text.gsub!(/\\TH\[(\d+)\]/i) { $game_time.write_hour($1.to_i) }
@text.gsub!(/\\TD\[(\d+)\]/i) { $game_time.write_date($1.to_i) }
@text.gsub!(/\\TM\[(\d+)\]/i) { $game_time.write_month($1.to_i) }
end
end
class Scene_Title
alias vincentmhd_time_create_game_objects create_game_objects
def create_game_objects
vincentmhd_time_create_game_objects
$game_time = Custom_Time::Mhd_Time.new
end
end
class Scene_Equip
alias time_scene_equip_terminate terminate
def terminate
time_scene_equip_terminate
#juste rafraichir
$time_window.forme?
$time_window.minute_refresh
$time_window.day_refresh
end
end
class Scene_Map
alias vincentmhd_time_update update
def update
$time_runner = Thread.new {$game_time.run}
vincentmhd_time_update
end
alias time_window_start start
def start
time_window_start
$time_window = Custom_Time::Time_Window.new
end
def refrech
alias time_window_map_refresh refresh
$time_window.visible?
end
alias time_window_terminate terminate
def terminate
$time_window.dispose
time_window_terminate
end
end