じ☆ve冰风 发表于 2026-7-26 18:51:41

ToggleTimer XP

ToggleTimer XP

by Kyonides​

Introduction

Do you want to be able to show or hide the default game timer?
Then don't wait anymore and start using my script right away!


It also includes a feature to let you set its horizontal alignment with ease.

Please read the embedded comments before using it.

The Script

                Ruby:       
# * ToggleTimer XP * #
#   Scripter : Kyonides
#   2024-11-28

# This scriptlet allows you to show or hide the default timer.
# It lets you set its horizontal alignment as well.
# There are just 2 CONSTANTS that you need to configure here.

# Warning! 3 Methods Have Been Modified #
# Sprite_Timer: initialize & update
# Interpreter:command_124 (Control Timer)

# * Script Calls * #
# - Show Timer - #
# $game_system.show_timer = true

# - Hide Timer - #
# $game_system.show_timer = false

# - Align Timer - #
# Alignment Options: 0 or :left, 1 or :center & 2 or :right
# Example:
# $game_system.align_timer = :left

# OPTIONAL: Set Hidden Timer #
# hidden_timer(minutes, seconds)

module KTimer
DEFAULT_VISIBLE = true
# Alignment Options: 0 or :left, 1 or :center & 2 or :right
ALIGN_X = :right
end

class Game_System
alias :kyon_toggle_timer_gm_sys_init :initialize
def initialize
    kyon_toggle_timer_gm_sys_init
    @show_timer = KTimer::DEFAULT_VISIBLE
    @align_timer = KTimer::ALIGN_X
end
attr_accessor :show_timer, :align_timer
end

class Sprite_Timer
def initialize
    super
    @width = 88
    self.bitmap = Bitmap.new(@width, 48)
    self.bitmap.font.name = "Arial"
    self.bitmap.font.size = 32
    refresh_align_x
    self.y = 0
    self.z = 500
    update
end

def refresh_align_x
    case @align_x = $game_system.align_timer
    when 0, :left
      self.x = 0
    when 1, :center
      self.x = 320 - @width / 2
    when 2, :right
      self.x = 640 - @width
    end
end

def update
    super
    return unless $game_system.timer_working
    self.visible = $game_system.show_timer
    if $game_system.align_timer != @align_x
      refresh_align_x
    end
    if $game_system.timer / Graphics.frame_rate != @total_sec
      self.bitmap.clear
      @total_sec = $game_system.timer / Graphics.frame_rate
      min = @total_sec / 60
      sec = @total_sec % 60
      text = sprintf("%02d:%02d", min, sec)
      self.bitmap.font.color.set(255, 255, 255)
      self.bitmap.draw_text(self.bitmap.rect, text, 1)
    end
end
end

class Interpreter
def command_124
    if @parameters == 0
      $game_system.timer = @parameters * Graphics.frame_rate
      $game_system.timer_working = true
    end
    if @parameters == 1
      $game_system.timer_working = false
      $game_system.show_timer = false
    end
    true
end

def hidden_timer(min, sec)
    time = min * 60 + sec
    $game_system.timer = time * Graphics.frame_rate
    $game_system.timer_working = true
    $game_system.show_timer = false
    true
end
end


Terms & Conditions

Free for use in ANY game.
Due credit is acceptable.
Mention this forum as well.
That's it!



本贴来自国际rpgmaker官方论坛作者:kyonides处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/toggletimer-xp.173539/
页: [1]
查看完整版本: ToggleTimer XP