VISION MAKER

viernes, 21 de noviembre de 2008

DIA Y NOCHE EN TIEMPO REAL.


DIA Y NOCHE EN TIEMPO REAL. by venomus de www.baseavalancha.mforos.com

aqui un script para que anochezca en nuestros juegos cada tanto tiempo y amanezca como en la vida real.

pss le eh editado un poco por que al guardar y cargar pega errores.


#=======================================#
# â–�  class Game_Title                                                                 #
#     written by Deke
#     Rewiten by Near Fantastica
#     Tweaked by Silentdragon
#------------------------------------------------------------------------------#
#=======================================#
class Game_Time

attr_accessor :minute_length
attr_accessor :hours
attr_accessor :minutess
attr_accessor :timess

def initialize
 @minute_length=2.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
 @timess=Time.now           #Real-Time Tweak
 @hours=timess.strftime("%H").to_i #Real Hours
 @minutess=timess.strftime("%M").to_i #Real Min
end

def get_time
 @timess=Time.now           #Real-Time Tweak
 @hours=timess.strftime("%H").to_i #Real Hours
 @minutess=timess.strftime("%M").to_i #Real Min
end
def get_tone
 get_time
 hour=hours
 minutes=minutess + hour*@hour_length
 phase_shift=Math::PI*(minutes/(@hour_length*@day_length))
 illumination=  -150+ 165*Math.sin(phase_shift)
 tone=Tone.new(illumination,illumination,illumination,0)
 return tone
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
  $game_time.get_time
  self.contents.clear
  @total_sec = Graphics.frame_count / Graphics.frame_rate
  @minute=$game_time.minutess
  hour = $game_time.hours
  pm_flag= hour >=12 ? true : false
  hour= hour >= 12 ? hour-12 : hour
  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)
end

#--------------------------------------------------------------------------
def update
  $game_time.get_time
  if $game_time.minutess != @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
    $game_time.get_time
     @minute=$game_time.minutess
     $game_screen.start_tone_change(tone, 0)
   end
       # スプライトセットを作æˆ?
   @spriteset = Spriteset_Map.new
   # メッセージウィンドウを作
�
   @message_window = Window_Message.new
   # トランジション実行
   Graphics.transition
   # メインループ
   loop do
     $light_effects.refresh
     # ゲーãƒ� ç”»é?¢ã‚’æ›´æ–°
     Graphics.update
     # å…¥å� ›æƒ…å� ±ã‚’æ›´æ–°
     Input.update
     # フレーãƒ� æ›´æ–°
     update
     # ç”»é?¢ã?Œåˆ‡ã‚� 替ã‚?ã?£ã?Ÿã‚‰ãƒ«ãƒ¼ãƒ—を中断
     if $scene != self
       break
     end
   end
   # トランジション準備
   Graphics.freeze
   # スプライトセットを解放
   @spriteset.dispose
   # メッセージウィンドウを解
放
   @message_window.dispose
   # タイトル画é?¢ã?«åˆ‡ã‚� 替ã?ˆä¸­ã?®å� ´å?ˆ
   if $scene.is_a?(Scene_Title)
     # ç”»é?¢ã‚’フェードアウト
     Graphics.transition
     Graphics.freeze
   end
   $light_effects.hide
 end
 #--------------------------------------------------------------------------
 # â—? Update
 #--------------------------------------------------------------------------
 def update
   $game_time.get_time
   $light_effects.update
    conditional1 =$game_temp.outside_array[$game_map.map_id] and $game_time.minutess != @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.minutess
          $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 Game_Map
 #--------------------------------------------------------------------------
 # â—? Refer the attr
 #--------------------------------------------------------------------------
 attr_reader   :outside
 attr_reader   :map_id
 #--------------------------------------------------------------------------
 # â—? Outside
 #--------------------------------------------------------------------------
 def outside
    return $game_temp.outside_array[@map_id]
 end
end

#==============================================================================
# â–�  Light Effect System
#------------------------------------------------------------------------------
#  By: Near Fantastica
#   Date: 13/2/05
#
#   Addes light Effects to the DNS so objects glow and have ground effect lighting...
#==============================================================================

class Light_Effect_System
 #--------------------------------------------------------------------------
 # â—? Refer the attr
 #--------------------------------------------------------------------------
 attr_accessor    :picture_le
 attr_accessor    :event_list
 attr_accessor    :type_list
 #--------------------------------------------------------------------------
 # â—? Initialization
 #--------------------------------------------------------------------------
 def initialize
   @event_counter = 0
   @picture_le = Array.new
   @event_list = Array.new
   @type_list = Array.new
 end
 #--------------------------------------------------------------------------
 # â—? Setup Light Effects on Map Change
 #--------------------------------------------------------------------------
 def setup
   # Setup Event Max
   @event_counter = 0
   for i in 1..999
     if $game_map.map.events[i].id > @event_counter
       @event_counter = $game_map.map.events[i].id
     end
   end
   #
   for i in 1..@event_counter
     if  $game_map.map.events[i] == nil
       next
     end
     case $game_map.map.events[i].name
     when "Ground"
       ground(i)
     when "Fire"
       fire(i)
     when "Lamp Post"
       lamp(i)
     when "Left Lantern"
       left_lantern(i)
     when "Right Lantern"
       right_lantern(i)
     end
   end
 end
 #--------------------------------------------------------------------------
 # â—? Updates the Array based on time of day
 #--------------------------------------------------------------------------
 def update
   $game_time.get_time
   if $game_time.hours > 7 and $game_time.hours < 14
     hide
   else
     show
   end
 end
 #--------------------------------------------------------------------------
 # â—? Updates the XY of the sprites
 #--------------------------------------------------------------------------
 def refresh
   for i in 0..$light_effects.picture_le.size - 1
     case $light_effects.type_list[i]
     when "Ground"
       $light_effects.picture_le[i].x = ($game_map.events[$light_effects.event_list[i]].real_x - 200 - $game_map.display_x) / 4
       $light_effects.picture_le[i].y = ($game_map.events[$light_effects.event_list[i]].real_y - 200 - $game_map.display_y) / 4
       $light_effects.picture_le[i].visible = true
     when "Fire"
       $light_effects.picture_le[i].x = ($game_map.events[$light_effects.event_list[i]].real_x - 300 - $game_map.display_x) / 4
       $light_effects.picture_le[i].y = ($game_map.events[$light_effects.event_list[i]].real_y - 300 - $game_map.display_y) / 4
       $light_effects.picture_le[i].visible = true
     when "Left Lamp Post"
      $light_effects.picture_le[i].x = (-0.25 * $game_map.display_x) +
($game_map.events[$light_effects.event_list[i]].x * 32) - 5
     
$light_effects.picture_le[i].y = (-0.25 * $game_map.display_y) +
($game_map.events[$light_effects.event_list[i]].y * 32) - 15
     when "Right Lamp Post"
      $light_effects.picture_le[i].x = (-0.25 * $game_map.display_x) +
($game_map.events[$light_effects.event_list[i]].x * 32) - 25
     
$light_effects.picture_le[i].y = (-0.25 * $game_map.display_y) +
($game_map.events[$light_effects.event_list[i]].y * 32) - 15
       $light_effects.picture_le[i].visible = true
     when "Left Lantern"
      $light_effects.picture_le[i].x = (-0.25 * $game_map.display_x) +
($game_map.events[$light_effects.event_list[i]].x * 32) - 20
     
  $light_effects.picture_le[i].y = (-0.25 * $game_map.display_y) +
($game_map.events[$light_effects.event_list[i]].y * 32) - 5
         $light_effects.picture_le[i].visible = true
     when "Right Lantern"
      $light_effects.picture_le[i].x = (-0.25 * $game_map.display_x) +
($game_map.events[$light_effects.event_list[i]].x * 32) - 10
     
$light_effects.picture_le[i].y = (-0.25 * $game_map.display_y) +
($game_map.events[$light_effects.event_list[i]].y * 32) - 5
       $light_effects.picture_le[i].visible = true
     end
   end
 end
 #--------------------------------------------------------------------------
 # â—? Redraws the Array
 #--------------------------------------------------------------------------
 def redraw
   if @picture_le != []
     for i in 0..@picture_le.size - 1
       @picture_le[i].bitmap.dispose
     end
     @picture_le = Array.new
     @event_list = Array.new
     @type_list = Array.new
   end
 end
 #--------------------------------------------------------------------------
 # â—? Shows Array
 #--------------------------------------------------------------------------
 def show
   if @picture_le != []
     for i in 0..@picture_le.size - 1
       @picture_le[i].visible = true
     end
   end
 end
 #--------------------------------------------------------------------------
 # â—? Hides Array
 #--------------------------------------------------------------------------
 def hide
   if @picture_le != []
     for i in 0..@picture_le.size - 1
        @picture_le[i].visible = false
     end
   end
 end
 #--------------------------------------------------------------------------
 # â—? Setup Light Effects for Ground
 #--------------------------------------------------------------------------
 def ground(event_index)
   light_effects = Sprite.new
   light_effects.bitmap = RPG::Cache.picture("LE.PNG")
   light_effects.zoom_x = 200 / 100.0
   light_effects.zoom_y = 200 / 100.0
   light_effects.z = 1000
   light_effects.opacity = 50
   light_effects.visible = false
   @picture_le.push(light_effects)
   @event_list.push(event_index)
   @type_list.push("Ground")
 end
 #--------------------------------------------------------------------------
 # â—? Setup Light Effects for Fire
 #--------------------------------------------------------------------------
 def fire(event_index)
   light_effects = Sprite.new
   light_effects.bitmap = RPG::Cache.picture("LE.PNG")
   light_effects.zoom_x = 300 / 100.0
   light_effects.zoom_y = 300 / 100.0
   light_effects.z = 1000
   light_effects.opacity = 100
   light_effects.visible = false
   @picture_le.push(light_effects)
   @event_list.push(event_index)
   @type_list.push("Fire")
 end
 #--------------------------------------------------------------------------
 # â—? Setup Light Effects for Lamp
 #--------------------------------------------------------------------------
 def lamp(event_index)
   light_effects = Sprite.new
   light_effects.bitmap = RPG::Cache.picture("LE.PNG")
   light_effects.z = 1000
   light_effects.opacity = 100
   light_effects.visible = false
   @picture_le.push(light_effects)
   @event_list.push(event_index)
   @type_list.push("Left Lamp Post")
   light_effects = Sprite.new
   light_effects.bitmap = RPG::Cache.picture("LE.PNG")
   light_effects.z = 1000
   light_effects.opacity = 100
   light_effects.visible = false
   @picture_le.push(light_effects)
   @event_list.push(event_index)
   @type_list.push("Right Lamp Post")
 end
 #--------------------------------------------------------------------------
 # â—? Setup Light Effects for Lantern
 #--------------------------------------------------------------------------
 def left_lantern(event_index)
   light_effects = Sprite.new
   light_effects.bitmap = RPG::Cache.picture("LE.PNG")
   light_effects.z = 1000
   light_effects.opacity = 150
   light_effects.visible = false
   @picture_le.push(light_effects)
   @event_list.push(event_index)
   @type_list.push("Left Lantern")
 end
   #--------------------------------------------------------------------------
 # â—? Setup Light Effects for Lantern
 #--------------------------------------------------------------------------
 def right_lantern(event_index)
   light_effects = Sprite.new
   light_effects.bitmap = RPG::Cache.picture("LE.PNG")
   light_effects.z = 1000
   light_effects.opacity = 150
   light_effects.visible = false
   @picture_le.push(light_effects)
   @event_list.push(event_index)
   @type_list.push("Right Lantern")
 end
end

#==============================================================================
# â–�  Game_Map
#------------------------------------------------------------------------------
#  Add defenision of the names to Game Map Class
#==============================================================================

class Game_Map
 #--------------------------------------------------------------------------
 # â—? Refer the attr
 #--------------------------------------------------------------------------
 attr_accessor :map
 #--------------------------------------------------------------------------
 # â—? Refer setup to Game Map
 #--------------------------------------------------------------------------
 alias les_game_map_setup setup
 #--------------------------------------------------------------------------
 # â—? Refers the Map Setup
 #--------------------------------------------------------------------------
 def setup(map_id)
   $light_effects.redraw
   les_game_map_setup(map_id)
   $light_effects.setup
 end
end

#==============================================================================
# â–�  Scene_Title
#------------------------------------------------------------------------------
#  It is the class which processes the title picture
#==============================================================================

class Scene_Title
#--------------------------------------------------------------------------
# â—? Refer setup to Scene Title
#--------------------------------------------------------------------------
alias les_scene_title_update update
#--------------------------------------------------------------------------
# â—? Sets up the ABS
#--------------------------------------------------------------------------
def update
  $light_effects = Light_Effect_System.new
  les_scene_title_update
end
end



Tags: script, venomus

Comentarios

Añadir un comentario