Suporte ao desenvolvimento de jogos!


    Basic Game Time + Night/Day v1.3

    Compartilhe
    avatar
    Hatsurugi
    Diva
    Diva

    Mensagens : 236
    Créditos : 125

    Basic Game Time + Night/Day v1.3

    Mensagem por Hatsurugi em Qui Abr 19, 2012 6:00 pm

    Introdução


    Este script traz uma seria de chamadas em uma variavel conheçida como: Tempo de Jogo, trazendo os efeitos de Dia ou noite dependendo dos minutos transcorridos.

    Caracteristicas
    - Contem um relógio, de canto.
    - Tempo de dia e noite customizável.

    Screenshot


    Spoiler:

    Script

    Código:
    #Basic Game Time + Night/Day
    #----------#
    #Features: Provides a series of functions to set and recall current game time
    #          as well customizable tints based on current game time to give the
    #          appearance of night and day.
    #
    #Usage:  Script calls:
    #          GameTime::minute?  - returns the current minute
    #          GameTime::hour?    - returns the current hour
    #          GameTime::set(time) - sets the game time to time, in frames (max:1440)
    #          GameTime::change(time) - increments the game time! (can be negative)
    #       
    #Customization: Set below, in comments.
    #
    #Examples: GameTime::set(360)
    #
    #----------#
    #-- Script by: V.M of D.T
    #--- Free to use in any project with credit given

    #---Game Clock---#
    #USE_CLOCK to true to display game time clock
    #CLOCK_POSITION for position of clock
    #  1 = topleft, 2 = topright, 3 = bottomleft, 4 = bottomright
    #CLOCK_TOGGLE is any input button available, see the INPUT help file for options
    #------#
    USE_CLOCK      = true
    CLOCK_POSITION  = 4
    CLOCK_TOGGLE    = :SHIFT

    module GameTime
      #---Game Time Details---#
      #Number of frames in a game minute, 60 frames = 1 second
      TIME_COUNT      = 60
      #Sets whether to tint screen based on game time
      USE_TINT        = true

      #True to pause time while not in map or while during a message
      PAUSE_IN_COMBAT  = false
      PAUSE_NOT_IN_MAP = true
      PAUSE_IN_MESSAGE = true

      #Sets time frames of tints by minute count, one day is 1440 minutes
      # 0 = 12am, 360 = 6am, 720 = 12pm, 1080 = 6pm  etc...
      PRESUNRISE_TIME = 240
      SUNRISE_TIME    = 360
      NOONSTART_TIME  = 660
      NOONEND_TIME    = 900
      PRESUNSET_TIME  = 1080
      SUNSET_TIME    = 1260
      MIDNIGHT_TIME  = 60  #Must be greater than 0

      #Sets custome tints
      PRESUNRISE_TONE = Tone.new(-75,-75,0,50)
      SUNRISE_TONE    = Tone.new(0,0,0,0)
      NOONSTART_TONE  = Tone.new(45,45,0,-25)
      NOONEND_TONE    = Tone.new(0,0,0,0)
      PRESUNSET_TONE  = Tone.new(-50,-50,0,25)
      SUNSET_TONE    = Tone.new(-75,-100,0,75)
      MIDNIGHT_TONE  = Tone.new(-125,-125,0,125)

      #Include the ids of any maps not to be tinted based on time
      # Usually reserved for indoor maps
      NOTINTMAPS = [2]
      #---END---#

      def self.init
        $game_time = 0
      end
      def self.update
        case SceneManager::scene_is?(Scene_Map)
        when true
          if $game_message.visible == true && PAUSE_IN_MESSAGE then else
          $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
        when false
          if SceneManager::scene_is?(Scene_Battle) && PAUSE_IN_COMBAT != true
          $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
        end
        if $game_time == 1440 then $game_time = 0 end
        GameTime::tint
      end
      def self.hour?
        return $game_time / 60
      end
      def self.minute?
        return $game_time % 60
      end
      def self.time?
        meri = "AM"
        hour = GameTime::hour?
        minute = GameTime::minute?
        if hour > 11 then meri = "PM" end
        if hour == 0 then hour = 12; meri = "AM" end
        if hour > 12 then hour -= 12 end
        if hour < 10 then hour = " " + hour.to_s else hour.to_s end
        if minute < 10 then minute = "0" + minute.to_s else minute.to_s end
        return hour.to_s + ":" + minute.to_s + " " + meri
      end
      def self.set(number)
        $game_time = number if number < 1440
        GameTime::tint(0)
      end
      def self.change(number)
        $game_time += number
        $game_time -= 1440 if $game_time > 1440
        $game_time += 1440 if $game_time < 0
        GameTime::tint(0)
      end
      def self.tint(tint = 60)
        if USE_TINT != true then return end
        for i in NOTINTMAPS
          if $game_map.map_id == i
            $game_map.screen.start_tone_change(Tone.new(0,0,0,0),0)
            return
          end
        end
        if SceneManager::scene_is?(Scene_Map) then else return end
        case $game_time
        when PRESUNRISE_TIME .. SUNRISE_TIME
          $game_map.screen.start_tone_change(PRESUNRISE_TONE, tint)
        when SUNRISE_TIME .. NOONSTART_TIME
          $game_map.screen.start_tone_change(SUNRISE_TONE, tint)
        when NOONSTART_TIME .. NOONEND_TIME
          $game_map.screen.start_tone_change(NOONSTART_TONE, tint)
        when NOONEND_TIME .. PRESUNSET_TIME
          $game_map.screen.start_tone_change(NOONEND_TONE, tint)
        when PRESUNSET_TIME .. SUNSET_TIME
          $game_map.screen.start_tone_change(PRESUNSET_TONE, tint)
        when SUNSET_TIME .. 1440
          $game_map.screen.start_tone_change(SUNSET_TONE, tint)
        when 0 .. MIDNIGHT_TIME
          $game_map.screen.start_tone_change(SUNSET_TONE, tint)
        when MIDNIGHT_TIME .. PRESUNRISE_TIME
          $game_map.screen.start_tone_change(MIDNIGHT_TONE, tint)
        end
      end

      class Window_Clock < Window_Base
        def initialize
          case CLOCK_POSITION
          when 1
            super(0,0,115,56)
          when 2
            super(429,0,115,56)
          when 3
            super(0,360,115,56)
          when 4
            super(429,360,115,56)
          end
        end
        def update
          self.contents.clear
          self.contents.draw_text(0,0,100,24,GameTime::time?)
        end
      end

    end

    module DataManager
      class << self
      alias gametime_msc make_save_contents
      alias gametime_esc extract_save_contents
      end
      def self.make_save_contents
        contents = gametime_msc
        contents[:gametime] = $game_time
        contents
      end
      def self.extract_save_contents(contents)
        gametime_esc(contents)
        $game_time = contents[:gametime]
      end
    end


    class Scene_Map < Scene_Base
      alias gametime_post_transfer post_transfer
      alias gametime_create_all_windows create_all_windows
      alias gametime_update_map update
      def post_transfer
        GameTime::tint(0)
        gametime_post_transfer
      end
      def create_all_windows
        gametime_create_all_windows
        @gametimeclock = GameTime::Window_Clock.new if USE_CLOCK
      end
      def update
        gametime_update_map
        @gametimeclock.update if @gametimeclock.nil? == false
        if Input.trigger?(CLOCK_TOGGLE)
          @gametimeclock.visible ? @gametimeclock.visible = false : @gametimeclock.visible = true
        end
      end
    end

    class Scene_Base
      alias gametime_update update
      def update
        gametime_update
        GameTime::update
      end
    end

    GameTime::init

    Creditos


    - A Vlue por criar o Script;

    - A Hatsurugi por postar na Aldeia.


    Espero que seja muito bem usado.

    De sua atiradora

    Hatsurugi


    _________________
    Fanbars:

    Guild:

    Project:





    Minha deusa:



    avatar
    wallace123
    Aldeia Friend
    Aldeia Friend

    Medalhas :
    Mensagens : 1172
    Créditos : 38

    Re: Basic Game Time + Night/Day v1.3

    Mensagem por wallace123 em Qui Abr 19, 2012 6:14 pm

    uma pergunta :
    A hora é real ?


    _________________
    https://www.facebook.com/wallace.o.b
    Curta, interaja, compartilhe. :)
    avatar
    Hatsurugi
    Diva
    Diva

    Mensagens : 236
    Créditos : 125

    Re: Basic Game Time + Night/Day v1.3

    Mensagem por Hatsurugi em Qui Abr 19, 2012 6:18 pm

    Não ela é definida pelo Script.


    _________________
    Fanbars:

    Guild:

    Project:





    Minha deusa:



    avatar
    RD12
    Lenda
    Lenda

    Medalhas :
    Mensagens : 1966
    Créditos : 741

    Re: Basic Game Time + Night/Day v1.3

    Mensagem por RD12 em Qui Abr 19, 2012 6:24 pm

    Legal continue trazendo scripts de Ace para nós, você é uma das poucas que movimentam a área. Não muito inovador esse script e é fácil de se fazer.
    Dúvida: A hora não é real né? Pela olhada rápida que dei nos scripts não né.
    edit já vi a resposta .-.

    Conteúdo patrocinado

    Re: Basic Game Time + Night/Day v1.3

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sab Fev 17, 2018 5:59 pm