O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Timer Discreto

Iniciado por Raizen, 28/03/2014 às 17:35

[box class=catbg2]
Timer Discreto
[/box]
Kyo Panda
Versão 1.1 - 10 de Novembro de 2010

[box class=catbg2]Sobre:[/box]
O Timer foi feito quando o Tio Kyo estava buscando um joguinho e queria ver o horário, logo para não dar alt+tab ta ai o script :).

[box class=catbg2]Instalação:[/box]

  • Cole o script acima do ▼ Principal e abaixo dos ▼ Scripts Adicionais no Editor de Scripts do RPG Maker VX
  • Configure no guia Configuração do script se julgar necessário.

[box class=catbg2]Utilização:[/box]
Utlize os seguintes comandos com o Comando de Evento Chamar Script em um Evento qualquer:

Discreet_Timer.show = true / false


* Para exibir ou ocultar o Timer. Onde true exibe e false esconde.

[box class=catbg2]Script:[/box]
Spoiler

#==============================================================================
# Timer Discreto [VX] 
#------------------------------------------------------------------------------
# Adiciona um pequeno Timer indicando a hora atual em seu projeto.
#------------------------------------------------------------------------------
# Site        : http://www.centrorpg.com
# Autor       : Kyo Panda 
# Versão      : 1.1
# Lançado em  : 10 de Novembro de 2010
#==============================================================================

#==============================================================================
# Como usar:
#------------------------------------------------------------------------------
# 
# #--------------------------------------------------------------------------
# # Instalação
# #--------------------------------------------------------------------------
#
# • Cole o script acima do "▼ Principal" e abaixo dos "▼ Script Adicionais" 
#   no Editor de Scripts do RPG Maker VX.
# 
# • Configure o script no guia "Configuração" logo abaixo.
#
# #--------------------------------------------------------------------------
# # Utilização
# #--------------------------------------------------------------------------
#
# • Utilize o código abaixo com o "Comando de Evento" "Chamar Script" num 
#   evento qualquer:
#
#   Discreet_Timer.show = true / false
#   * Para exibir ou ocultar o Timer. Onde true exibe e false esconde.
#
#==============================================================================

#==============================================================================
# Histórico de versões:
#------------------------------------------------------------------------------
# • Versão 1.1, 10 de Novembro de 2010:
#   * Adicionado a opção de definir o tempo de jogo como timer.
# • Versão 1.0, 10 de Novembro de 2010:
#   * Primeira versão do Timer Discreto.
#==============================================================================

#==============================================================================
# Discreet_Timer
#------------------------------------------------------------------------------
# Módulo de configuração para o script Timer Discreto.
#==============================================================================

module Discreet_Timer
  #--------------------------------------------------------------------------
  # Configuração
  #--------------------------------------------------------------------------
  
  # Defina aqui o método de contagem de tempo do timer.
  # 0 : Relógio com tempo real
  # 1 : Contagem de frames; Tempo de jogo
  METHOD = 0
  
  # Defina aqui as configurações relacionadas à fonte do Timer.
  FONT_NAME    = "Trebuchet MS"     # Nome da fonte
  FONT_SIZE    = 12                 # Tamanho da fonte
  FONT_OPACITY = 128                # Opacidade da fonte
  TEXT_ALIGN   = 1                  # Alinhamento do texto (0: <; 1: |; 2: >)

  # Defina aqui as configurações relativas à janela do Timer.
  # Eis o que cada valor representa:
  # X         : Posicionamento horizontal da janela
  # Y         : Posicionamento vertical da janela
  # Largura   : Largura da janela
  # Altura    : Altura da janela
  # Z         : Prioridade da janela
  # Opacidade : Opacidade da janela
  # Window    : Windowskin da janela
  
  #              [ X ,  Y , Lar, Alt,  Z , Opa,   "Window"  ]
  WINDOW_TIMER = [464, 372,  64,  44, 201,   0,   "Window"  ] 
  
  #--------------------------------------------------------------------------
  # Fim da configuração
  #--------------------------------------------------------------------------
  
  #--------------------------------------------------------------------------
  # Exibir relógio
  #--------------------------------------------------------------------------
  def self.show=(state)
    $game_temp.discreet_timer = state
  end
end
  
#==============================================================================
# Game_Temp
#------------------------------------------------------------------------------
# Esta classe controla dados que não são salvos pelo jogo, os dados temporários
# Pode ser acessada utilizando $game_temp
#==============================================================================

class Game_Temp
  #--------------------------------------------------------------------------
  # Variáveis públicas
  #--------------------------------------------------------------------------
  attr_accessor :discreet_timer
  #--------------------------------------------------------------------------
  # Alias da inicialização do objeto
  #--------------------------------------------------------------------------
  alias kpndt0001_initialize initialize
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    @discreet_timer = true
    kpndt0001_initialize
  end
end
    
#==============================================================================
# Window_Timer
#------------------------------------------------------------------------------
# Janela que exibe o relógio com o horário atual.
#==============================================================================

class Window_Timer < Window_Base
  #--------------------------------------------------------------------------
  # Inclusão das constantes e métodos do módulo Discreet_Timer
  #--------------------------------------------------------------------------
  include Discreet_Timer
  #--------------------------------------------------------------------------
  # Variáveis públicas
  #--------------------------------------------------------------------------
  attr_reader :hour                             # Horas
  attr_reader :min                              # Minutos
  attr_reader :sec                              # Segundos 
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    super(WINDOW_TIMER[0], WINDOW_TIMER[1], WINDOW_TIMER[2], WINDOW_TIMER[3])
    self.opacity = WINDOW_TIMER[5]
    self.contents = Bitmap.new(WINDOW_TIMER[2] - 32, WINDOW_TIMER[3] - 32)
    self.windowskin = Cache.system(WINDOW_TIMER[6]) 
    self.z = WINDOW_TIMER[4]
    @hour = 0
    @min = 0
    @sec = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # Atualização
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.name = FONT_NAME
    self.contents.font.size = FONT_SIZE
    self.contents.font.color.alpha = FONT_OPACITY
    case METHOD
    when 0
      @hour, @min, @sec = Time.now.hour, Time.now.min, Time.now.sec
    when 1
      frames = Graphics.frame_count / Graphics.frame_rate
      @hour, @min, @sec = frames / 60 / 60, frames / 60 % 60, frames % 60
    end
    text = sprintf("%02d:%02d:%02d", @hour, @min, @sec)
    self.contents.draw_text(0, 0, self.contents.width, FONT_SIZE, text, 
    TEXT_ALIGN)
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    self.visible = $game_temp.discreet_timer
    case METHOD
    when 0
      if @hour != Time.now.hour || Time.now.min != @min || Time.now.sec != 
        @sec
        refresh
      end
    when 1
      frames = Graphics.frame_count / Graphics.frame_rate
      if @hour != frames / 60 / 60 || @min != frames / 60 % 60 || @sec != 
        frames % 60
        refresh
      end
    end
  end
end

#==============================================================================
# Scene_Base
#------------------------------------------------------------------------------
# Classe superior à todas as classes Scene_.
#==============================================================================

class Scene_Base
  #--------------------------------------------------------------------------
  # Alias do processo principal
  #--------------------------------------------------------------------------
  alias kpndt0001_main main
  #--------------------------------------------------------------------------
  # Processo principal
  #--------------------------------------------------------------------------
  def main
    @timer_window = Window_Timer.new
    kpndt0001_main
    @timer_window.dispose
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    @timer_window.update
  end
end
[close]

[box class=catbg2]Screenshots:[/box]
Spoiler

[close]

[box class=catbg2]Histórico de Versões:[/box]
  • Versão 1.1, 10 de Novembro de 2010:
    Spoiler
    * Adicionado a opção de definir o tempo de jogo como timer.
    [close]
  • Versão 1.0, 10 de Novembro de 2010:
    Spoiler
    * Primeira versão do script.
    [close]

[box class=catbg2]Notas Finais:[/box]
Qualquer erro, dúvida ou sugestão sobre o script, comunique-me ou ao Kyo, que faremos o possível para atendê-los.