TallerGamer
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

(Script) Dia-Noche segun hora de PC

Ir abajo

(Script) Dia-Noche segun hora de PC Empty (Script) Dia-Noche segun hora de PC

Mensaje  MasterMoonNight Mar Nov 08, 2011 9:29 pm

Se crea una nueva clase sobre Main, y se le pega este contenido: (tal cual)
Código:
]#=================================
# ■ class Game_Title                                                               
#    written by Deke
#    Rewiten by Near Fantastica
#--------------------------------------------------------------------
#======================================
class Game_Time

attr_accessor :minute_length

def initialize
@minute_length=60.0      #length of game minute in real seconds
@hour_length= 60.0      #minute in an hour
@day_length=24.0        #hours in a day
@month_length=30.0    #days in a month
@year_length=12.0      #months in a year
@minutes=0                #starting minute count
start_minute= $t.min
add_minutes(start_minute)
start_hour= $t.hour              #starting hour count
add_hours(start_hour)
start_day= 1                #starting day count
add_days(start_day)
start_month=1              #starting month count
add_months(start_month-1)
start_year= 1              #starting year count
add_years(start_year)
end

def add_minutes(minutes)
@minutes +=minutes
end

def add_hours(hours)
@minutes +=hours*@hour_length
end

def add_days(days)
@minutes += days*@hour_length*@day_length
end

def add_months(months)
@minutes +=months * @hour_length*@day_length*@month_length
end

def add_years(years)
@minutes += years * @hour_length*@day_length*@month_length * @year_length
end


def get_year
minutes=get_total_minutes
year=minutes / @hour_length / @day_length / @month_length  / @year_length
return year
end

def get_month
minutes=get_total_minutes
month=minutes / @hour_length / @day_length /  @month_length % @year_length + 1
return month
end

def get_day
minutes=get_total_minutes
day=minutes / @hour_length / @day_length % @month_length
return day
end 

def get_hour
minutes=get_total_minutes
hour=minutes / @hour_length % @day_length
return hour
end

def get_total_minutes
total_sec=Graphics.frame_count / Graphics.frame_rate
minute=(total_sec/@minute_length+@minutes)
return minute
end

def get_minute
minutes=get_total_minutes % @hour_length
return minutes
end

def get_tone
period_length=Math::PI*(get_hour / @day_length)
red_shift=  -100+ 115*Math.sin(period_length)
green_shift=  -140+ 155*Math.sin(period_length)
blue_shift=  -150+ 165*Math.sin(period_length)
return Tone.new(red_shift, green_shift, blue_shift, 0)
end

end # of class Game_Time 

#=======================================#
# ■ class Window_Time                                                            #
# written by Deke                                                                      #
#------------------------------------------------------------------------------#
#=======================================#
class Window_Time < Window_Base

#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 96)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $defaultfonttype  # "Time" window font
self.contents.font.size = $defaultfontsize
refresh
end

#--------------------------------------------------------------------------
def refresh
self.contents.clear
@total_sec = Graphics.frame_count / Graphics.frame_rate
@minute=$game_time.get_minute.floor
hour = $game_time.get_hour
pm_flag= hour >=12 ? true : false
hour= hour >= 12 ? hour-12 : hour
day=$game_time.get_day
month=$game_time.get_month
year=$game_time.get_year
if hour.floor==0
  text=sprintf("%02d:%02d",12,@minute)
else
  text=sprintf("%02d:%02d",hour,@minute)
end
if pm_flag
  text += " PM"
else
  text += " AM"
end
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120, 32, text, 2)
text = sprintf("%02d-%02d-%02d", month, day, year)
self.contents.font.color=system_color
self.contents.draw_text(4,32,120,32,text)
end

#--------------------------------------------------------------------------
def update
if $game_time.get_minute.floor != @minute
  refresh
end
end
end # of class

#=======================================
class Game_Temp
#--------------------------------------------------------------------------
# ● Refer setup to Game Temp
#--------------------------------------------------------------------------
alias dns_game_temp_initalize initialize
#--------------------------------------------------------------------------
# ● Refer the Attr
#--------------------------------------------------------------------------
attr_reader    :map_infos  #Added Lines
attr_reader    :outside_array  #Added Lines
#--------------------------------------------------------------------------
# ● Refer setup to Scene Map
#--------------------------------------------------------------------------
def initialize
dns_game_temp_initalize
@outside_array = Array.new
@map_infos = load_data("Data/MapInfos.rxdata")
for key in @map_infos.keys
    @outside_array[key] = @map_infos[key].name.include?("*")
end
end
end

#=======================================
class Scene_Map
#--------------------------------------------------------------------------
# ● Refer setup to Scene Map
#--------------------------------------------------------------------------
alias dns_scene_map_main main
alias dns_scene_map_update update
#--------------------------------------------------------------------------
# ● Main
#--------------------------------------------------------------------------
def main
  if $game_temp.outside_array[$game_map.map_id]
    tone=$game_time.get_tone
  @minute=$game_time.get_minute.floor
  $game_screen.start_tone_change(tone, 0)
end
dns_scene_map_main
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
  conditional1 =$game_temp.outside_array[$game_map.map_id] and $game_time.get_minute.floor != @minute
  conditional2 =$game_temp.outside_array[$game_map.map_id] and @current_id != $game_map.map_id
  if  conditional1 or conditional2   
        tone=$game_time.get_tone
        $game_screen.start_tone_change(tone, 0)
        @minute = $game_time.get_minute.floor
        $game_map.need_refresh=true
        @current_id=$game_map.map_id
  end
  if $game_temp.outside_array[$game_map.map_id] == false and @current_id != $game_map.map_id
    $game_screen.start_tone_change(Tone.new(0,0,0,0),0)
    @current_id=$game_map.map_id
end
dns_scene_map_update
end
end

#======================================================
class Scene_Title
#--------------------------------------------------------------------------
# ● Refer setup to Scene Map
#--------------------------------------------------------------------------
alias dns_scene_title_update update
#--------------------------------------------------------------------------
# ● Refer setup to Scene Map
#--------------------------------------------------------------------------
def update
$game_time=Game_Time.new
#Dubealex Addition (from XRXS) to show Map Name on screen
dns_scene_title_update
end
end

#========================================================
class Scene_Load
def read_save_data(file)
characters = Marshal.load(file)
Graphics.frame_count = Marshal.load(file)
$game_system        = Marshal.load(file)
$game_switches      = Marshal.load(file)
$game_variables    = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_screen        = Marshal.load(file)
$game_actors        = Marshal.load(file)
$game_party        = Marshal.load(file)
$game_troop        = Marshal.load(file)
$game_map          = Marshal.load(file)
$game_player        = Marshal.load(file)
$game_time          =Marshal.load(file) #Added Line
if $game_system.magic_number != $data_system.magic_number
  $game_map.setup($game_map.map_id)
  $game_player.center($game_player.x, $game_player.y)
end
$game_party.refresh
end
end # of Scene_Load updates

#=======================================================
class Scene_Save
def write_save_data(file)
characters = []
for i in 0...$game_party.actors.size
  actor = $game_party.actors[i]
  characters.push([actor.character_name, actor.character_hue])
end
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
$game_system.save_count += 1
$game_system.magic_number = $data_system.magic_number
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
Marshal.dump($game_time,file) # Added Line
end
end # of Scene_Save updates

#========================================================

class Game_Map
#--------------------------------------------------------------------------
# ● Refer the attr
#--------------------------------------------------------------------------
attr_reader  :outside
attr_reader  :map_id
#--------------------------------------------------------------------------
# ● Outside
#--------------------------------------------------------------------------
def outside
  return $game_temp.outside_array[@map_id]
end
end

Si no lo combinan con el de Reloj en tiempo real, entonces cambian donde dice:

Código:
start_minute= $t.min
add_minutes(start_minute)
start_hour= $t.hour              #starting hour count
add_hours(start_hour)

Por esto:
Código:

start_minute= 0 #Se puede modificar. Esto dice q se comienza con 0 min.
add_minutes(start_minute)
start_hour= 15              #Modificable. Esto dice q se comenza a las 15
add_hours(start_hour)
MasterMoonNight
MasterMoonNight
Moderador

Mensajes : 82
Fecha de inscripción : 06/11/2011
Edad : 28
Localización : Argentina

Volver arriba Ir abajo

(Script) Dia-Noche segun hora de PC Empty ...

Mensaje  Invitado Miér Nov 30, 2011 4:55 pm

sunny < ----- > Sleep

Invitado
Invitado


Volver arriba Ir abajo

Volver arriba

- Temas similares

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