collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: hellMinor's Simple Day and Night Script  (Gelesen 10145 mal)

Offline Onkel Hell

  • Sol Invictus
  • Administrator
  • VX-Kenner
  • ****
  • Beiträge: 562
  • You can't shoot me, I'm AIDS !
hellMinor's Simple Day and Night Script
« am: Februar 01, 2008, 09:29:43 »
Beschreibung :
Ein simples Tag und Nacht script was den Bildschirm automatisch färbt um einen Tag und Nacht effekt zu erzielen anhand der Schritte die man macht oder einem Zeitsystem

Last Update : v1.12 - 15.05.08
Changelog :
Spoiler for Hiden:
-----------------------------------------------------------------------------------
v1.12
-----------------------------------------------------------------------------------
nen kleinen lade und anzeigebug gefixed
-----------------------------------------------------------------------------------
v1.1
-----------------------------------------------------------------------------------
savebug und scene bug behoben
-----------------------------------------------------------------------------------
v1.0
-----------------------------------------------------------------------------------
versionssprung auf 1.0
passend zu dem simple mapname hab mich entschlossen die nightlights
öffentlich zu stellen.
mit den nightlights könnt ihr nachts automatisch lightmaps anzeigen
lassen sobald es nacht wird.
auf interior und dark interior karten werden sie direkt angezeigt während sie auf
exterior karten gefaded werden, also langsam eingeblended bzw ausgeblended
-----------------------------------------------------------------------------------
v0.3.3
-----------------------------------------------------------------------------------
da das script noch kleinere probleme mit der startzeit hatte hab ich $starting_time hinzugefügt
da gehört dann halt "day" ,"dawn","dusk" und "night" rein, default wert is nacht und das aus guten grunde
da ich übern frame_counter rechne verändere ich dem framecounter daher werden berechnungen übern framecounter dann falsch berechnet bzw die zeit verschiebt sich ABER
da im standard game nur einmal wirklich was damit angezeigt wird ist das nich weiter schlimm,
und zwar beim speichern wird die spielzeit angezeigt , hab nen kleinen hotfix bei gepackt der dort diesen
fehler behebt und somit wird die richtige spielzeit beim speichern angezeigt
ne anpassung an custom scripte die damit rechnen ist aber auch super einfach wie mein hotfix zeigt,
also braucht man sich da absolut keine sorgen zu machen
-----------------------------------------------------------------------------------
v0.3.2
-----------------------------------------------------------------------------------
die dark_interior funktion is jetz auch drin , einfach [dint] vor den kartennamen pappen und diese karte wird zu einer dark interior karte. Wozu ? z.b. für höhlen oder häußer in denen ja kein tag und nacht wechsel zu sehen ist aber auch kein licht sein sollte
desweiteren gibts jetz noch paar methoden um sich die zeit in eine game variable zu laden oder sons was damit zu machen
die tageszeit selbst kann man immernoch holen wie vorher, also if $day, if $night , if $dawn ,if $dusk wobei ich glaube das nichtmal viele gemerkt haben dass das geht
-----------------------------------------------------------------------------------
v0.3
-----------------------------------------------------------------------------------
Map-Detection funktion hinzugefügt , indem man [int] vor den kartennamen packt ,markiert man diese map als interior/indoor karte, man brauch nun das script nicht mehr abschalten sondern das script entscheidet selbst ob es den bildschirm färbt oder nicht

betritt man nun eine interior karte schaltet das script auf tag um, geht man wieder aus der interior karte heraus weiss das script welche zeit vergangen is und schaltet wieder auf die korrekte tageszeit um

ich hab das script zwar schon paar tage aber ich hab mich mal durchgerungen das doch zu posten,
vielleicht kanns ja doch irgendwer gebrauchen
-----------------------------------------------------------------------------------
v0.2.1
-----------------------------------------------------------------------------------
mehr einstellungsmöglichkeiten ,sowieso eine beschleunigung/verlangsamung für das zeitsystem
-----------------------------------------------------------------------------------
v0.2
ein kleines Zeitsystem ist jetz implementiert , ebenso wie 2 neue zeitliche perioden , sonnenaufgang und sonnenuntergang
-----------------------------------------------------------------------------------
Anmerkung :
Viele wird es stören wenn ihre Karten aufeinmal [dint]mapname bzw. [int]mapname heißen wenn sie
den Kartennamen irgendwo anzeigen lassen.
Deshalb hab ich ein Script erstellt welches den Kartennamen anzeigt und diese kleinen "beigaben"
zum namen ignoriert und den richtigen Kartennamen ausgibt
Dieses Script findet ihr hier : Simple Map-Name

Anleitung :
Viel gibts nich zu erklären, ich hab ein paar globale gesetzt die ihr
#===============================================================================
# Map-Detection F.A.Q.
#===============================================================================
# Wenn du auf einer interior/indoor karte bist, wo meistens keine tag und nacht
# effekte zu sehen sind packt einfach [int] vor den kartennamen.
# Das script sofort auf tag schalten wenn man eine solche karte betritt und alle
# screen tone effekte die dieses script verursachen würde werden ignoriert
#
# Während ihr auf einer interior karte seit wird die zeit weiterlaufen und sobald
# ihr die karte wieder verlasst wird auf die korrekte tageszeit umgeschaltet
#==============================================================================
# Nightslights F.A.Q.
#==============================================================================
# Erstellt ein Verzeichnis namens Nightlights in eurem Graphics - Verzeichnis und tut
# ein Bild mit dem selben namen und der selbe größe wie ihre Map hinein.
# Das Bild wird auf Exterior Maps eingeblended wenn es nacht wird und ausgeblended
# wenn es tag wird.
# Auf Interior und Dark-Interior Maps wird das Bild direkt angezeigt ohne Fader
#===============================================================================
# Get-Time F.A.Q.
#===============================================================================
# Wenn man die genaue Zeit braucht kann man dieses in ein Callscript packen
# um die genaue Uhrzeit zu bekommen :
# $game_variables[0001] = $dayandnight.getTime
# um die genaue Stunde zu bekommen :
# $game_variables[0001] = $dayandnight.getHour
# um die genaue Minute zu bekommen :
# $game_variables[0001] = $dayandnight.getMinute
#
# $game_variables[0001] entspricht der variable 0001 in eurer Datenbank.
# Wenn ihr eine andere variable benutzen wollt ändert das 0001 einfach in etwas >5000
#
#===============================================================================
# Main config
#------------------------------------------------------------------------------
  PIC_FORMAT = "png" # Format für die Nachtlichter
  $timesystem = 1       # Entscheidet welches System läuft
                        # 0 = Schritt-System
                        # 1 = Zeit-System
  $fadingtime = 4       # Entscheidet wie schnell der Screen-Tone einsetzt (in sekunden)
#------------------------------------------------------------------------------
  $dusktone = Tone.new(-68, -51, -9, 25)      # Dusk-Screen-Tone
  $nighttone = Tone.new(-136, -102, -17, 51)  # Night-Screen-Tone
  $dawntone = Tone.new(-20, -51, -68, 0)      # Dawn-Screen-Tone
  $daytone = Tone.new(0, 0, 0, 0)             # Day-Screen-Tone
#------------------------------------------------------------------------------
# Timesystem config
#------------------------------------------------------------------------------
  $starting_time = "night"  # Bestimmt die Startphase
                          # "day" für tag ,"dusk" für dämmerung
                          # "dawn" für sonnenaufgang und "night" für nacht
                          # Anmerkung : Der standardwert ist "night";
                          # ALLE anderen berechnungen mit dem Graphics.frame_counter
                          # werden hier von beeinflusst.
                          # Für die Speicherzeit liegt bereits ein hotfix bei
  $divider = 1          # Entscheidet wie schnell das Zeit-System läuft
                        # z.b. 2 = 2 mal so schnell (30 sekunden = 1 stunde)
                        # z.b. 0,5 = 2 mal so langsam (2 minuten = 1 stunde)
  $dusktime =   7       # schaltet auf sonnenuntergang bei $dusktime
  $daytime =    8       # schaltet auf tag bei $daytime
  $dawntime =   19      # schaltet auf sonnenuntergang bei $dawntime
  $nighttime =  20      # schaltet auf nacht bei $nighttime
#------------------------------------------------------------------------------
# Footstep config
#------------------------------------------------------------------------------
  $count = 0            # Zähler der Schritte
  $maxsteps = 200       # Wieviele Schritte zwischen den Phasen sind

Script v1.12
Spoiler for Hiden:
#==============================================================================
#  Simple Day and Night Script
#
#  Version : 1.12 - 15.05.08
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#  Description : A simple script which tones the screen to emulate a day and
#                night system on the basis of your footsteps or a time system.
#
#==============================================================================
#==============================================================================
# Map-Detection F.A.Q.
#==============================================================================
# If you have an interior map on which most likely no day and night effects
# are shown just put [int] to front of the mapname.
# When entering such a map the script will immediately change the screen tone
# to the $daytone and all tone changes done by the script will be ignored.
#
# Sometimes interior maps need to be dark ,i.e. caves, just put [dint]
# to the front of the mapname to mark this map as a dark interior map.
# The script while change the tone to the $nighttone instead of $daytone
#
# While in the interior map the time will still pass and when you leave the
# interior map it will tone the screen to the current game time
#==============================================================================
# Nightslights F.A.Q.
#==============================================================================
# Create a folder named Nightlights in your Graphics folder and put a picture
# with the same name,width and height as your map into it.
# The picture will automatically fade in when its night and fade out when its
# day as long as you are on an exterior map.
# On Interior and Dark Interior the picture will be shown directly.
#==============================================================================
# Get-Time F.A.Q.
#==============================================================================
# If you need to get current time, you can use this code in a call script.
# to get the current time :
# $game_variables[0001] = $dayandnight.getTime
# to get the current hour :
# $game_variables[0001] = $dayandnight.getHour
# or to get the current minute :
# $game_variables[0001] = $dayandnight.getMinute
#
# $game_variables[0001] will be for example the first variable in your database.
# To use another variable just change the 0001 to something >5000
#==============================================================================
# Main config
#==============================================================================
  PIC_FORMAT = "png" # Format for the Nightlight-Maps
  $timesystem = 1    # Determines which time system is active
                     # 0 = Footstep-System
                     # 1 = Time-System
  $fadingtime = 3    # How fast the tone changes (in seconds)
#------------------------------------------------------------------------------
  $dusktone = Tone.new(-68, -51, -9, 25)      # Dusk-Screen-Tone
  $nighttone = Tone.new(-136, -102, -17, 51)  # Night-Screen-Tone
  $dawntone = Tone.new(-20, -51, -68, 0)      # Dawn-Screen-Tone
  $daytone = Tone.new(0, 0, 0, 0)             # Day-Screen-Tone
#------------------------------------------------------------------------------
# Timesystem config
#------------------------------------------------------------------------------
  $starting_time = "day"  # Determines the starting phase
                          # "day" for day ,"dusk" for dusk
                          # "dawn" for dawn and "night" for night
                          # Notes : The default is "night",
                          # any other than night will change ALL calculations
                          # made with Graphics.frame_counter once !!!!!
                          
  $divider = 2            # Decides how fast the Time-System runs
                          # i.e. 2 = twice as fast (30 seconds = 1 hour)
                          # i.e. 0,5 = twice as slow (2 minutes = 1 hour)
                          
  $dawntime =   7         # turns into dawn on $dawntime
  $daytime =    8         # turns into day on $daytime
  $dusktime =   19        # turns into dusk on $dusktime
  $nighttime =  20        # turns into night on $nighttime
#------------------------------------------------------------------------------
# Footstep config
#------------------------------------------------------------------------------
  $count = 0            # Counter how many steps are made between one period
  $maxsteps = 200       # How many footsteps between each phase
#------------------------------------------------------------------------------
# boolean checks
#------------------------------------------------------------------------------
  $day = false           # Checker if its day
  $dusk = false          # Checker if its dusk
  $dawn = false          # Checker if its dawn
  $night = true          # Checker if its night
#==============================================================================
class DayAndNight < Game_Screen
#==============================================================================
  def change?
    if $count >= $maxsteps
      if $day
        doDusk
      end
      if $dusk
        doNight
      end
      if $night
        doDawn
      end
      if $dawn
        doDay
      end
    end
  end
#------------------------------------------------------------------------------
  def doNight
    if $dayandnight.exterior?
      $game_map.screen.start_tone_change($nighttone,$fadingtime*60)
    end
    $count = 0
    $day = false
    $dusk = false
    $dawn = false
    $night = true
  end
#------------------------------------------------------------------------------
  def doDay
    if $dayandnight.exterior?
      $game_map.screen.start_tone_change($daytone,$fadingtime*60)
    end
    $count = 0
    $day = true
    $night = false
    $dawn = false
    $dusk = false
  end
#------------------------------------------------------------------------------
  def doDawn
    if $dayandnight.exterior?
      $game_map.screen.start_tone_change($dawntone,$fadingtime*60)
    end
    $count = 0
    $day = false
    $night = false
    $dusk = false
    $dawn = true
  end
#------------------------------------------------------------------------------
  def doDusk
    if $dayandnight.exterior?
      $game_map.screen.start_tone_change($dusktone,$fadingtime*60)
    end
    $count = 0
    $day = false
    $night = false
    $dusk = true
    $dawn = false
  end
#------------------------------------------------------------------------------
  def updateclock
    clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
    hour = clocktime / 60 % 24
    minutes = clocktime % 60
    if hour == $dawntime && minutes == 0
      doDawn
    end
    if hour == $daytime && minutes == 0
      doDay
    end
    if hour == $dusktime && minutes == 0
      doDusk
    end
    if hour == $nighttime && minutes == 0
      doNight
    end
  end
#------------------------------------------------------------------------------
  def interior?
    if($game_map.name.index("[int]") != nil)
      return true
    end
  end
#------------------------------------------------------------------------------
  def exterior?
    if($game_map.name.index("[int]") == nil &&
      $game_map.name.index("[dint]") == nil)
      return true
    end
  end
#------------------------------------------------------------------------------
  def dark_interior?
    if($game_map.name.index("[dint]") != nil)
      return true
    end
  end
#------------------------------------------------------------------------------
  def get_state_tone
    if $dawn
      return $dawntone
    end
    if $day
      return $daytone
    end
    if $dusk
      return $dusktone
    end
    if $night
      return $nighttone
    end
  end
#------------------------------------------------------------------------------
  def getTime
    clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
    hour = clocktime / 60 % 24
    minutes = clocktime % 60
    return hour.to_s+":"+minutes.to_s
  end
#------------------------------------------------------------------------------
  def getHour
    clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
    hour = clocktime / 60 % 24
    return hour
  end
#------------------------------------------------------------------------------
  def getMinute
    clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
    minutes = clocktime % 60
    return minutes
  end
#------------------------------------------------------------------------------
  def show_mapname
  end
  
end
#==============================================================================
module Cache
#==============================================================================
  def self.nightlights(filename)
    load_bitmap("graphics/nightlights/", filename)
  end
  
end
#==============================================================================
class Game_Character
#==============================================================================
  def increase_steps
    @stop_count = 0
    if $timesystem == 0
      $count += 1
      $dayandnight.change?
    end
    update_bush_depth
  end
  
end
#==============================================================================
class Game_Map
#==============================================================================
  alias initialize_dayandnnight_adds initialize
  def initialize
    initialize_dayandnnight_adds
    $dayandnight = DayAndNight.new
  end

  def setup(map_id)
    @map_id = map_id
    @map = load_data(sprintf("Data/Map%03d.rvdata", @map_id))
    @display_x = 0
    @display_y = 0
    @passages = $data_system.passages
    referesh_vehicles
    setup_events
    setup_scroll
    setup_parallax
    setup_nightlights
    @need_refresh = false
  end
#------------------------------------------------------------------------------
  def setup_nightlights
    @nightlights_mapname = $game_map.name
    @nightlights_loop_x = 0
    @nightlights_loop_y = 0
    @nightlights_sx = 0
    @nightlights_sy = 0
    @nightlights_x = 0
    @nightlights_y = 0
  end
#------------------------------------------------------------------------------
  def update
    refresh if $game_map.need_refresh
    update_scroll
    update_events
    update_vehicles
    update_parallax
    if $timesystem == 1
      update_nightlights
      $dayandnight.updateclock
    end
    @screen.update
  end
#------------------------------------------------------------------------------
  def update_nightlights
    @nightlights_x += @nightlights_sx * 4 if @nightlights_loop_x
    @nightlights_y += @nightlights_sy * 4 if @nightlights_loop_y
  end
#------------------------------------------------------------------------------
  alias set_display_pos_adds set_display_pos
  def set_display_pos(x, y)
    set_display_pos_adds(x,y)
    @nightlights_x = x
    @nightlights_y = y
  end
#------------------------------------------------------------------------------
  def calc_nightlights_x(bitmap)
    if bitmap == nil
      return 0
    else
      w1 = bitmap.width - 544
      w2 = @map.width * 32 - 544
      if w1 <= 0 or w2 <= 0
        return 0
      else
        return @nightlights_x * w1 / w2 / 8
      end
    end
  end
#------------------------------------------------------------------------------
  def calc_nightlights_y(bitmap)
    if bitmap == nil
      return 0
    else
      h1 = bitmap.height - 416
      h2 = @map.height * 32 - 416
      if h1 <= 0 or h2 <= 0
        return 0
      else
        return @nightlights_y * h1 / h2 / 8
      end
    end
  end
#------------------------------------------------------------------------------
  def scroll_down(distance)
    if loop_vertical?
      @display_y += distance
      @display_y %= @map.height * 256
      @parallax_y += distance
      @nightlights_y += distance
    else
      last_y = @display_y
      @display_y = [@display_y + distance, (height - 13) * 256].min
      @parallax_y += @display_y - last_y
      @nightlights_y += @display_y - last_y
    end
  end
#------------------------------------------------------------------------------
  def scroll_left(distance)
    if loop_horizontal?
      @display_x += @map.width * 256 - distance
      @display_x %= @map.width * 256
      @parallax_x -= distance
      @nightlights_x -= distance
    else
      last_x = @display_x
      @display_x = [@display_x - distance, 0].max
      @parallax_x += @display_x - last_x
      @nightlights_x += @display_x - last_x
    end
  end
#------------------------------------------------------------------------------
  def scroll_right(distance)
    if loop_horizontal?
      @display_x += distance
      @display_x %= @map.width * 256
      @parallax_x += distance
      @nightlights_x += distance
    else
      last_x = @display_x
      @display_x = [@display_x + distance, (width - 17) * 256].min
      @parallax_x += @display_x - last_x
      @nightlights_x += @display_x - last_x
    end
  end
#------------------------------------------------------------------------------
  def scroll_up(distance)
    if loop_vertical?
      @display_y += @map.height * 256 - distance
      @display_y %= @map.height * 256
      @parallax_y -= distance
      @nightlights_y -= distance
    else
      last_y = @display_y
      @display_y = [@display_y - distance, 0].max
      @parallax_y += @display_y - last_y
      @nightlights_y += @display_y - last_y
    end
  end
#------------------------------------------------------------------------------
  def name
    $data_mapinfos[@map_id]
  end
    
end
#==============================================================================
class Scene_Map
#==============================================================================
  alias start_dayandnight_adds start
  def start
    start_dayandnight_adds
    nightlights?
  end

  def fadein(duration)
    Graphics.transition(0)
    if $dayandnight.interior?
      $game_map.screen.start_tone_change($daytone,1)
      $nightlights.opacity = 255
    else if $dayandnight.dark_interior?
      $game_map.screen.start_tone_change($nighttone,1)
      $nightlights.opacity = 255
    else if $dayandnight.exterior?
        $game_map.screen.start_tone_change($dayandnight.get_state_tone,1)
        nightlights?
      end
      end
    end
    for i in 0..duration-1
      Graphics.brightness = 255 * i / duration
      update_basic
    end
    Graphics.brightness = 255
  end
  
  def nightlights?
    $nightlights.opacity = 0 if $day
    $nightlights.opacity = 255 if $night
    $nightlights.opacity = 125 if $dawn or $dusk
  end
  
end
#==============================================================================
class Scene_Title
#==============================================================================
  alias load_database_additions load_database
  def load_database
    load_database_additions
    $data_mapinfos      = load_data("Data/MapInfos.rvdata")
    for key in $data_mapinfos.keys
      $data_mapinfos[key] = $data_mapinfos[key].name
    end
  end
  
  alias command_new_game_additions command_new_game
  def command_new_game
    command_new_game_additions
    $dayandnight = DayAndNight.new
    Graphics.frame_count += 25200/$divider if $starting_time == "dawn"
    Graphics.frame_count += 28800/$divider if $starting_time == "day"
    Graphics.frame_count += 68400/$divider if $starting_time == "dusk"    
  end
  
end
#==============================================================================
class Spriteset_Map
#==============================================================================
  def initialize
    create_viewports
    create_tilemap
    create_parallax
    create_characters
    create_shadow
    create_weather
    create_pictures
    create_timer
    create_nightlights
    update
  end
#-------------------------------------------------------------------------------
  def create_nightlights
    $nightlights = Plane.new(@viewport3)
    $nightlights.opacity = 0
  end
#-------------------------------------------------------------------------------
  alias dispose_addition dispose
  def dispose
    dispose_addition
    dispose_nightlights
  end
#-------------------------------------------------------------------------------
  def dispose_nightlights
    $nightlights.dispose
  end
#-------------------------------------------------------------------------------
  alias update_addition update
  def update
    update_addition
    update_nightlights
  end
#-------------------------------------------------------------------------------
  def update_fading
    if $dayandnight.exterior?
      $nightlights.opacity += 1 if $night and $nightlights.opacity <= 255
      $nightlights.opacity += 1 if $dusk and $nightlights.opacity <= 150
      $nightlights.opacity -= 1 if $dawn and $nightlights.opacity >= 100
      $nightlights.opacity -= 1 if $day and $nightlights.opacity >= 0
    else
      $nightlights.opacity = 255
    end
  end
#-------------------------------------------------------------------------------  
  def update_nightlights
    if @nightlights_mapname != $game_map.name
      @nightlights_mapname = $game_map.name
      if $nightlights.bitmap != nil
        $nightlights.bitmap.dispose
        $nightlights.bitmap = nil
      end
      if @nightlights_mapname != ""
        if File.exist?("Graphics/Nightlights/"+@nightlights_mapname+"."+PIC_FORMAT)
          $nightlights.bitmap = Cache.nightlights(@nightlights_mapname)
        end
      end
      Graphics.frame_reset
    end
    $nightlights.ox = $game_map.calc_nightlights_x($nightlights.bitmap)
    $nightlights.oy = $game_map.calc_nightlights_y($nightlights.bitmap)
    update_fading
  end
  
end
#===============================================================================
class Scene_File
#===============================================================================  
  alias write_save_data_dn_adds write_save_data
  def write_save_data(file)
    write_save_data_dn_adds(file)
    Marshal.dump($day,         file)
    Marshal.dump($dusk,        file)
    Marshal.dump($dawn,        file)
    Marshal.dump($night,       file)
  end
#-------------------------------------------------------------------------------  
  alias read_save_data_dn_adds read_save_data
  def read_save_data(file)
    read_save_data_dn_adds(file)
    $day         = Marshal.load(file)
    $dusk        = Marshal.load(file)
    $dawn        = Marshal.load(file)
    $night       = Marshal.load(file)
  end
  
end

#===============================================================================
# Game-Time-Hotfix
#===============================================================================
#===============================================================================
class Window_SaveFile < Window_Base
#===============================================================================
  def load_gamedata
    @time_stamp = Time.at(0)
    @file_exist = FileTest.exist?(@filename)
    if @file_exist
      file = File.open(@filename, "r")
      @time_stamp = file.mtime
      begin
        @characters     = Marshal.load(file)
        @frame_count    = Marshal.load(file)
        @last_bgm       = Marshal.load(file)
        @last_bgs       = Marshal.load(file)
        @game_system    = Marshal.load(file)
        @game_message   = Marshal.load(file)
        @game_switches  = Marshal.load(file)
        @game_variables = Marshal.load(file)
        case $starting_time
          when "night"
            @total_sec = @frame_count / Graphics.frame_rate
          when "dawn"
            @total_sec = (@frame_count-(25200/$divider)) / Graphics.frame_rate
          when "day"
            @total_sec = (@frame_count-(28800/$divider)) / Graphics.frame_rate
          when "dusk"
            @total_sec = (@frame_count-(68400/$divider)) / Graphics.frame_rate
        end
      rescue
        @file_exist = false
      ensure
        file.close
      end
    end
  end
  
end

Alte Scripte
Script v1.0
Spoiler for Hiden:
[code]#==============================================================================
#  Simple Day and Night Script
#
#  Version : 1.0 - 23.04.08
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#  Description : A simple script which tones the screen to emulate a day and
#                night system on the basis of your footsteps or a time system.
#
#==============================================================================
#==============================================================================
# Map-Detection F.A.Q.
#==============================================================================
# If you have an interior map on which most likely no day and night effects
# are shown just put [int] to front of the mapname.
# When entering such a map the script will immediately change the screen tone
# to the $daytone and all tone changes done by the script will be ignored.
#
# Sometimes interior maps need to be dark ,i.e. caves, just put [dint]
# to the front of the mapname to mark this map as a dark interior map.
# The script while change the tone to the $nighttone instead of $daytone
#
# While in the interior map the time will still pass and when you leave the
# interior map it will tone the screen to the current game time
#==============================================================================
# Nightslights F.A.Q.
#==============================================================================
# Create a folder named Nightlights in your Graphics folder and put a picture
# with the same name,width and height as your map into it.
# The picture will automatically fade in when its night and fade out when its
# day as long as you are on an exterior map.
# On Interior and Dark Interior the picture will be shown directly.
#==============================================================================
# Get-Time F.A.Q.
#==============================================================================
# If you need to get current time, you can use this code in a call script.
# to get the current time :
# $game_variables[0001] = $dayandnight.getTime
# to get the current hour :
# $game_variables[0001] = $dayandnight.getHour
# or to get the current minute :
# $game_variables[0001] = $dayandnight.getMinute
#
# $game_variables[0001] will be for example the first variable in your database.
# To use another variable just change the 0001 to something >5000
#==============================================================================
# Main config
#==============================================================================
  PIC_FORMAT = "png" # Format for the Nightlight-Maps
  $timesystem = 1    # Determines which time system is active
                     # 0 = Footstep-System
                     # 1 = Time-System
  $fadingtime = 3    # How fast the tone changes (in seconds)
#------------------------------------------------------------------------------
  $dusktone = Tone.new(-68, -51, -9, 25)      # Dusk-Screen-Tone
  $nighttone = Tone.new(-136, -102, -17, 51)  # Night-Screen-Tone
  $dawntone = Tone.new(-20, -51, -68, 0)      # Dawn-Screen-Tone
  $daytone = Tone.new(0, 0, 0, 0)             # Day-Screen-Tone
#------------------------------------------------------------------------------
# Timesystem config
#------------------------------------------------------------------------------
  $starting_time = "night"  # Determines the starting phase
                          # "day" for day ,"dusk" for dusk
                          # "dawn" for dawn and "night" for night
                          # Notes : The default is "night",
                          # any other than night will change ALL calculations
                          # made with Graphics.frame_counter once !!!!!
                          
  $divider = 2            # Decides how fast the Time-System runs
                          # i.e. 2 = twice as fast (30 seconds = 1 hour)
                          # i.e. 0,5 = twice as slow (2 minutes = 1 hour)
                          
  $dawntime =   7         # turns into dawn on $dawntime
  $daytime =    8         # turns into day on $daytime
  $dusktime =   19        # turns into dusk on $dusktime
  $nighttime =  20        # turns into night on $nighttime
#------------------------------------------------------------------------------
# Footstep config
#------------------------------------------------------------------------------
  $count = 0            # Counter how many steps are made between one period
  $maxsteps = 200       # How many footsteps between each phase
#------------------------------------------------------------------------------
# boolean checks
#------------------------------------------------------------------------------
  $day = false           # Checker if its day
  $dusk = false          # Checker if its dusk
  $dawn = false          # Checker if its dawn
  $night = true          # Checker if its night
#==============================================================================
class DayAndNight < Game_Screen
#==============================================================================
  def change?
    if $count >= $maxsteps
      if $day
        doDusk
      end
      if $dusk
        doNight
      end
      if $night
        doDawn
      end
      if $dawn
        doDay
      end
    end
  end
#------------------------------------------------------------------------------
  def doNight
    if $dayandnight.exterior?
      $game_map.screen.start_tone_change($nighttone,$fadingtime*60)
    end
    $count = 0
    $day = false
    $dusk = false
    $dawn = false
    $night = true
  end
#------------------------------------------------------------------------------
  def doDay
    if $dayandnight.exterior?
      $game_map.screen.start_tone_change($daytone,$fadingtime*60)
    end
    $count = 0
    $day = true
    $night = false
    $dawn = false
    $dusk = false
  end
#------------------------------------------------------------------------------
  def doDawn
    if $dayandnight.exterior?
      $game_map.screen.start_tone_change($dawntone,$fadingtime*60)
    end
    $count = 0
    $day = false
    $night = false
    $dusk = false
    $dawn = true
  end
#------------------------------------------------------------------------------
  def doDusk
    if $dayandnight.exterior?
      $game_map.screen.start_tone_change($dusktone,$fadingtime*60)
    end
    $count = 0
    $day = false
    $night = false
    $dusk = true
    $dawn = false
  end
#------------------------------------------------------------------------------
  def updateclock
    clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
    hour = clocktime / 60 % 24
    minutes = clocktime % 60
    if hour == $dawntime && minutes == 0
      doDawn
    end
    if hour == $daytime && minutes == 0
      doDay
    end
    if hour == $dusktime && minutes == 0
      doDusk
    end
    if hour == $nighttime && minutes == 0
      doNight
    end
  end
#------------------------------------------------------------------------------
  def interior?
    if($game_map.name.to_s.index("[int]") != nil)
      return true
    end
  end
#------------------------------------------------------------------------------
  def exterior?
    if($game_map.name.to_s.index("[int]") == nil &&
      $game_map.name.to_s.index("[dint]") == nil)
      return true
    end
  end
#------------------------------------------------------------------------------
  def dark_interior?
    if($game_map.name.to_s.index("[dint]") != nil)
      return true
    end
  end
#------------------------------------------------------------------------------
  def get_state_tone
    if $dawn
      return $dawntone
    end
    if $day
      return $daytone
    end
    if $dusk
      return $dusktone
    end
    if $night
      return $nighttone
    end
  end
#------------------------------------------------------------------------------
  def getTime
    clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
    hour = clocktime / 60 % 24
    minutes = clocktime % 60
    return hour.to_s+":"+minutes.to_s
  end
#------------------------------------------------------------------------------
  def getHour
    clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
    hour = clocktime / 60 % 24
    return hour
  end
#------------------------------------------------------------------------------
  def getMinute
    clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
    minutes = clocktime % 60
    return minutes
  end
#------------------------------------------------------------------------------
  def show_mapname
  end
  
end
#==============================================================================
module Cache
#==============================================================================
  def self.nightlights(filename)
    load_bitmap("graphics/nightlights/", filename)
  end
  
end
#==============================================================================
class Game_Character
#==============================================================================
  def increase_steps
    @stop_coun
« Letzte Änderung: Mai 15, 2008, 03:59:47 von hellMinor »
Verborgen in der Dunkelheit
Ich kenne nur die Einsamkeit
Auf das kein Gott mich sieht, ich bin ein Eremit


Mega Man Battle Engine


hellMinor's Simple Day and Night Script

ERZENGEL

  • Gast
hellMinor's Simple Day and Night Script
« Antwort #1 am: Februar 01, 2008, 12:50:22 »
Ich werde wohl in mein Spiel es verwenden, wenn du das Tag/Nacht-Skript mithilfe der Spielzeit läuft, denn das mit den Schritten finde ich unpraktisch und unlogisch, ist aber im Endeffekt ein wirklich nettes Tag/Nacht-Skript :)

hellMinor's Simple Day and Night Script

Talyana Meriweather Rahl

  • Gast
hellMinor's Simple Day and Night Script
« Antwort #2 am: Februar 01, 2008, 13:06:58 »
Ich finde das Echt Cool^^

Das mit der Spielzeit ist auch eine gute Idee was Erzengel hat xD aber schritte sind wir irgendwie lieber xDDD

Mal sehen was demnächst kommt^-^

hellMinor's Simple Day and Night Script

Agorax

  • Gast
hellMinor's Simple Day and Night Script
« Antwort #3 am: Februar 01, 2008, 13:13:53 »
Find ich auch richtig gut Tag/Nacht wechsel sind in Spielen immer gern gesehen.
Das macht das ganze dann etwas Realistischer.
Ich denke wenn es dann mit der Spielzeit geht werde ich es sicher benutzen :lol:

hellMinor's Simple Day and Night Script

Offline Onkel Hell

  • Sol Invictus
  • Administrator
  • VX-Kenner
  • ****
  • Beiträge: 562
  • You can't shoot me, I'm AIDS !
hellMinor's Simple Day and Night Script
« Antwort #4 am: Februar 01, 2008, 14:01:42 »
dabei wollt ich das erst garnich releasen weil ich dachte keiner brauchts^^
ich glaub ich setz das in meinem scheduler mal bissl nach oben
Verborgen in der Dunkelheit
Ich kenne nur die Einsamkeit
Auf das kein Gott mich sieht, ich bin ein Eremit


Mega Man Battle Engine


hellMinor's Simple Day and Night Script

Offline Snake

  • Moderator
  • VX-Kenner
  • ***
  • Beiträge: 538
  • Blubb, der Mod den keiner kennt! XD
hellMinor's Simple Day and Night Script
« Antwort #5 am: Februar 01, 2008, 20:51:19 »
n Tag-Nacht wechsel in nem game kommt immer gut^^
Wäre cool wenns nach der Spielzeit gehen würde.
Vor allem könnte man, ähnlich wie in zelda, z.b
versch. dinge nachts machen und andere eben tagsüber.
Zitat
Snake 23:50

ich lads schnell


Silvanus 23:50

bist ne geile sau
:)

hellMinor's Simple Day and Night Script

Offline Onkel Hell

  • Sol Invictus
  • Administrator
  • VX-Kenner
  • ****
  • Beiträge: 562
  • You can't shoot me, I'm AIDS !
hellMinor's Simple Day and Night Script
« Antwort #6 am: Februar 02, 2008, 13:59:01 »
hat einer von euch vllt gescheite screentone werte für sonnenaufgang und sonnenuntergang?
dann kann ich das zeitsystem nochma testen, dann sollte es fertig sein, hab nur keine gescheiten screentones
Verborgen in der Dunkelheit
Ich kenne nur die Einsamkeit
Auf das kein Gott mich sieht, ich bin ein Eremit


Mega Man Battle Engine


hellMinor's Simple Day and Night Script

Dainreth

  • Gast
hellMinor's Simple Day and Night Script
« Antwort #7 am: Februar 02, 2008, 14:13:22 »
Wieder ein nettes Skript hM, würde ich nutzen, aber ich mach das lieber auf Eventbasis ist mir immer etwas übersichtlicher sowas. Trotzdem mal wieder ein Lob und Danke für deine Mühe!

hellMinor's Simple Day and Night Script

Offline Baur

  • Mr. MACK-Tile
  • ***
  • Beiträge: 272
    • http://
hellMinor's Simple Day and Night Script
« Antwort #8 am: Februar 02, 2008, 14:48:45 »
Hast eigentlich Recht, Dainreth, da man über CE besser Vairiablen oder Switches für Tageszeit-Wechsel und Stunden generieren und die auch später in Events wieder einsetzen kann und so gut zeitabhängige Events machen kann.

Mir ist das CE basiert auch lieber, aber nichts gegen das Script.
« Letzte Änderung: Februar 02, 2008, 14:52:03 von Baur »
Formerly known as [size=]Rabu[/size] *g*

PS: In nächster Zeit selten im Forum. RL sucks.

hellMinor's Simple Day and Night Script

Offline Onkel Hell

  • Sol Invictus
  • Administrator
  • VX-Kenner
  • ****
  • Beiträge: 562
  • You can't shoot me, I'm AIDS !
hellMinor's Simple Day and Night Script
« Antwort #9 am: Februar 02, 2008, 15:29:15 »
hab trotzdem ein kleines update beim script gemacht,
zeitsystem is jetz mit drinne und man kann zwischen den beiden systemen wechseln
ebenso sind 2 neue zeitliche phasen drinne , sonnenaufgang und sonnenuntergang
Verborgen in der Dunkelheit
Ich kenne nur die Einsamkeit
Auf das kein Gott mich sieht, ich bin ein Eremit


Mega Man Battle Engine


hellMinor's Simple Day and Night Script

ERZENGEL

  • Gast
hellMinor's Simple Day and Night Script
« Antwort #10 am: Februar 02, 2008, 15:38:37 »
Dankesehr. Aber das 24 Minuten = 1 Tag ist, ist zu viel. Ich würde eher 7 Minuten = 1 Tag machen, wenn du es hinbekommst. 24 Minuten Spielzeit sind ja viel für ein RPG Maker-Spiel und wenn man ein Spiel auf 2 Stunden festgelegt hat, spielt man das Spiel in 4 (Spiel-)Tagen durch. Trotzdem gutes Skript auch wenn es andere Lösungen gibt.
« Letzte Änderung: Februar 02, 2008, 15:39:56 von ERZENGEL »

hellMinor's Simple Day and Night Script

Offline Onkel Hell

  • Sol Invictus
  • Administrator
  • VX-Kenner
  • ****
  • Beiträge: 562
  • You can't shoot me, I'm AIDS !
hellMinor's Simple Day and Night Script
« Antwort #11 am: Februar 02, 2008, 18:11:30 »
so habs nochmal geupdated , hab einfach paar mehr einstellungsmöglichkeiten hinzugefügt, zb kann man jetz über einen teiler selbst entscheiden wie schnell das zeit system läuft
Verborgen in der Dunkelheit
Ich kenne nur die Einsamkeit
Auf das kein Gott mich sieht, ich bin ein Eremit


Mega Man Battle Engine


hellMinor's Simple Day and Night Script

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
hellMinor's Simple Day and Night Script
« Antwort #12 am: Februar 02, 2008, 20:41:26 »
Hi

Hmm... Bei mir läuft das ganze bislang auf Eventbasis... Ich weiß also nicht, ob ich das Script nehmen sollte oder nicht.
Kann man die Uhr durch Callevents umstellen?

MFG Markus

hellMinor's Simple Day and Night Script

Offline Onkel Hell

  • Sol Invictus
  • Administrator
  • VX-Kenner
  • ****
  • Beiträge: 562
  • You can't shoot me, I'm AIDS !
hellMinor's Simple Day and Night Script
« Antwort #13 am: Februar 02, 2008, 23:01:17 »
in wie fern meinste uhr umstellen ? bisher läuft die uhr noch über den framezähler, das werd ich aber noch ändern bzw nen eigenen counter zwischenstellen, dann kann die uhr frei umgestellt werden
bisher kann man nur die einzelnen phasen direkt aktivieren , wie man das macht steht aber auch im script falls du das meintest
Verborgen in der Dunkelheit
Ich kenne nur die Einsamkeit
Auf das kein Gott mich sieht, ich bin ein Eremit


Mega Man Battle Engine


hellMinor's Simple Day and Night Script

woratana

  • Gast
hellMinor's Simple Day and Night Script
« Antwort #14 am: Februar 02, 2008, 23:57:00 »
This is nice~^^

I like the idea that you use step for day/night system, but I think it's not looks real if day/night system use steps.

The other thing is, to rewrite method, I suggest you to use alias.
Because it will be more compatible~^^

 


 Bild des Monats

rooftop party

Views: 3582
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal