=begin
Script Name: Timer
Autor: Tajiin
Datum: 18/02/2014 | tt/mm/jjjj
Version: 3.0
Versions Datum: 24/05/2015
Beschreibung:
Mit diesem Script kann man beliebig viele Timer erstellen.
Script-Befehle(Event > 3 > Skript...):
$game_system.timer.set(i, t)
- Erstellt einen Timer.
- i: steht für den Index des Timers
- t: steht für die Zeit die der Timer herunterzählt. (in Sekunden)
$game_system.timer.check(i)
- Testet ob der Timer bereits abgelaufen ist.
- i: steht für den Index des Timers der überprüft werden soll.
$game_system.timer.get(i, v)
- Gibt euch den momentanen Wert eines Timers aus. (in Sekunden)
- i: steht für den Index des Timers dessen Wert ausgegeben werden soll.
$game_system.timer.stop(i)
- Stoppt einen Timer
- i: steht für den Index des Timers der gestoppt werden soll.
$game_system.timer.start(i)
- Startet einen gestoppten Timer
- i: steht für den Index des Timers der wieder gestartet werden soll.
$game_system.timer.stopped?(i)
- Teste einen Timer ob er gestoppt ist oder nicht. (True = gestoppt;
False = nicht gestoppt)
- i: steht für den Index des Timers der getestet werden soll.
Viel Spaß
=end
#==============================================================================
# ** DataManager
#------------------------------------------------------------------------------
# This module manages the database and game objects. Almost all of the
# global variables used by the game are initialized by this module.
#==============================================================================
module DataManager
class << self
alias taj_datamanager_creategameobjects_ijabsdi96 create_game_objects
#--------------------------------------------------------------------------
# * Create Game Objects
#--------------------------------------------------------------------------
def create_game_objects
taj_datamanager_creategameobjects_ijabsdi96
$game_system.timer = Timer.new
end
end
end
#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
# This class handles system data. It saves the disable state of saving and
# menus. Instances of this class are referenced by $game_system.
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :timer
end
#==============================================================================
# ** Game_Timer
#------------------------------------------------------------------------------
# This class handles timers. Instances of this class are referenced by
# $game_timer.
#==============================================================================
class Game_Timer
alias taj_gametimer_update_dd128 update
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
taj_gametimer_update_dd128
$game_system.timer.update
end
end
$imported = {} if $imported.nil?
$imported["Taj_Game_TimerCore"] = true
class Timer
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :timer
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@timer = Array.new()
end
#--------------------------------------------------------------------------
# * Set the timer
#--------------------------------------------------------------------------
def set(index, frames)
@timer[index] = Array.new
@timer[index][0] = frames*60
@timer[index][1] = false
end
#--------------------------------------------------------------------------
# * Set the timer
#--------------------------------------------------------------------------
def get(index, variable)
if !@timer[index].nil?
$game_variables[variable] = (@timer[index][0] / 60).round
else
msgbox_p("Error: TIMER EXITIERT NICHT! Index: " + index.to_s)
SceneManager.exit
end
end
#--------------------------------------------------------------------------
# * Stops a Timer
#--------------------------------------------------------------------------
def stop(index)
if !@timer[index].nil?
if !@timer[index][1]
@timer[index][1] = true
else
msgbox_p("Error: TIMER WURDE BEREITS GESTOPPT! Index: " + index.to_s)
SceneManager.exit
end
else
msgbox_p("Error: TIMER EXITIERT NICHT! Index: " + index.to_s)
SceneManager.exit
end
end
#--------------------------------------------------------------------------
# * Stops a Timer
#--------------------------------------------------------------------------
def start(index)
if !@timer[index].nil?
if @timer[index][1]
@timer[index][1] = false
else
msgbox_p("Error: TIMER IST BEREITS GESTARTET! Index: " + index.to_s)
SceneManager.exit
end
else
msgbox_p("Error: TIMER EXITIERT NICHT! Index: " + index.to_s)
SceneManager.exit
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
if @timer != Array.new
@timer.each_with_index do |t, i|
if !t.nil?
if !@timer[i][1]
@timer[i][0] -= 1 unless t[0] == 0
@timer[i][0] == nil if t[0] == 0
end
end
end
end
end
#--------------------------------------------------------------------------
# * Returns true if a Timer is Stopped
#--------------------------------------------------------------------------
def stopped?(index)
return @timer[index][1] if !@timer[index].nil?
msgbox_p("Error: TIMER EXITIERT NICHT! Index: " + index.to_s)
SceneManager.exit
end
#--------------------------------------------------------------------------
# * Check if Timer is ended
#--------------------------------------------------------------------------
def check(index)
if !@timer[index].nil?
return true if @timer[index][0] == 0
return false
else
msgbox_p("Error: TIMER EXITIERT NICHT! Index: " + index.to_s)
SceneManager.exit
end
end
end