Better Game Timer

● ARCHIVED · READ-ONLY
Started by ashes999 6 posts View original ↗
  1. Description: some extensions on the in-game timer to make it more robust and easy to use:

    • You can add or subtract time from it
    • You can pause and resume
    • The timer auto-pauses when messages, choices, etc. are visible
    • In-game display turns red when time is under a certain threshold



    Demo:


    bmlTPH7.png


    Script: get it from GitHub. The initial version is below:

    Spoiler
    Spoiler




    #========================================================================
    # ** Better Game Timer
    # By: ashes999 (ashes999@yahoo.com)
    # Version: 0.1
    #------------------------------------------------------------------------
    # * Description:
    #
    # -- Some extensions to make the timer a bit more useful and friendly.
    # -- Original methods by Tsukihime (to add/lose time and pause/resume)
    # -- You can also make the game time recolour if time is under some value (eg. 30s)
    # -- via the CRITICAL_TIME_SECONDS constant.
    # -- Finally, the timer pauses when message boxes, choices, etc. are visible.
    # -- Author: ashes999 (ashes999@yahoo.com)
    # -- Version 1.0

    # Examples:
    # $game_timer.add_time(20) # adds 20 seconds
    # $game_timer.lose_time(15) # subtract 15 seconds
    # $game_timer.pause
    # $game_timer.resume
    #========================================================================

    # If remaining time is less than this many seconds, turn red. To disable, set to 0.
    CRITICAL_TIME_SECONDS = 5

    # End configuration

    class Game_Timer

    alias timer_plus_update update
    def update
    if !@pause
    timer_plus_update unless $game_message.visible
    end
    end

    # add more time, in seconds
    def add_time(count)
    @count += count * Graphics.frame_rate
    end

    # subtract time, in seconds
    def lose_time(count)
    @count = [@count - (count * Graphics.frame_rate), 0].max
    end

    def pause
    @pause = true
    end

    def resume
    @pause = false
    end
    end

    #==============================================================================
    # ** Sprite_Timer
    #------------------------------------------------------------------------------
    # This sprite is for timer displays. It monitors $game_timer and automatically
    # changes sprite states.
    #==============================================================================

    class Sprite_Timer < Sprite
    alias timer_plus_sprite_update update
    def update
    timer_plus_sprite_update
    update_color
    end

    def update_color
    if @total_sec > 0 && @total_sec <= CRITICAL_TIME_SECONDS
    self.bitmap.font.color.set(255, 0, 0)
    end
    end
    end



    Credits go to Tsukihime, who authored the original script here.
  2. is it possible to have this script working for RPG MAker MV? 
  3. VX Ace scripts are in Ruby. MV uses Javascript. It would require rewriting. I don't think it's difficult, but I don't have MV any more.
  4. Not sure if you're still there since this thread is old, but your github link is down, maybe you could fix it?


    This script would be perfect for what I need. :3
  5. @Aomarui sorry,  I renamed the repository. I updated the link and re-updated the embedded version in the spoiler tag.
  6. ashes999 said:
    @Aomarui sorry,  I renamed the repository. I updated the link and re-updated the embedded version in the spoiler tag.

    Oh my goodness, thank you so much! ^ ^


    Honestly, I wasn't sure I'd get a reply. :3


    Cheers!