Еще один скрипт, расширяющий возможности одной из базовых функций.
А именно таймера. Что конкретно дает этот скрипт?
Этот скрипт позволяет получить над таймером больше власти, а именно:
- Использовать для таймера свои спрайты.
- Менять шрифт, размер и цвет цифер.
- Упрвление скоростью таймера с помощью переменных.
- И так далее и тому подобное (смотреть в скрипте)
#------------------------------------------------------------------------------#
# Galv's Variable Timer Functions
#------------------------------------------------------------------------------#
# Для: RPGMAKER VX ACE
# Версия 1.2ru
#------------------------------------------------------------------------------#
# 2013-08-22 - Версия 1.2ru - Перевод strelokhalfer для rpg-maker.info
# 2012-10-24 - Версия 1.2 - исправлены алиасы
# 2012-09-28 - Версия 1.1 - Теперь таймер можно скрыть.
# (спасибо Falcao за совет)
# 2012-09-28 - Версия 1.0 - Релиз
#------------------------------------------------------------------------------#
#
# Этот скрипт позволяет получить над таймером больше власти, а именно:
# - Использовать для таймера свои спрайты.
# - Менять шрифт, размер и цвет цифр.
# - Управление скоростью таймера с помощью переменных.
# - И так далее и тому подобное (смотреть ниже)
#
#
# Ниже даны функции, которые надо вызывать в событии через "Скрипт...".
#------------------------------------------------------------------------------#
# Для заморозки таймера:
# $game_timer.freeze
#------------------------------------------------------------------------------#
# Для разморозки таймера:
# $game_timer.unfreeze
#------------------------------------------------------------------------------#
# Увеличить время (x - количество секунд):
# $game_timer.increase(x)
#------------------------------------------------------------------------------#
# Уменьшить время (x - количество секунд):
# $game_timer.decrease(x)
#------------------------------------------------------------------------------#
# Установить таймер равным значению переменной (y - ID переменной):
# $game_timer.set(y)
#------------------------------------------------------------------------------#
# Увеличить таймер на значение переменной (y - ID переменной):
# $game_timer.increase_var(y)
#------------------------------------------------------------------------------#
# Уменьшить таймер на значение переменной (y - ID переменной):
# $game_timer.decrease_var(y)
#------------------------------------------------------------------------------#
#
# Так же управление таймером через команды события продолжают работать.
# Пример: Запуск, Остановка, Условие, Приравнять переменную к значению таймера)
#
#------------------------------------------------------------------------------#
#------------------------------------------------------------------------------#
# !!! ВНИМАНИЕ - Я начинающий скриптер. Используйте на свой страх и риск!!!
#------------------------------------------------------------------------------#
$imported = {} if $imported.nil?
$imported["Variable_Timer"] = true
module Variable_Timer
#------------------------------------------------------------------------------#
# НАСТРОЙКИ СКРИПТА
#------------------------------------------------------------------------------#
TIME_SPEED_VAR = 1 # ID переменной, отвечающей за скорость.
# Меняйте ее во время игры для изменения таймера.
# Отриц. значение- таймер убывает,
# положительное - прибывает. 0 для паузы.
HIDE_TIMER_SWITCH = 1 # ID переключателя. Если активен, таймер скрыт.
ABORT_BATTLE = false # Если в битве таймер доходит до 0, то она
# отменяется. True - если нужно.
TIMER_GRAPHIC = "timer" # Графика должна лежать в Graphics/System
# Оставьте "", если графика не нужна.
TIMER_FONT = "Arial" # Шрифт таймера. "" для стандартного.
TEXT_SIZE = 28 # Размер(кегль) шрифта.
R = 0 # Цвет цифр, используется RGB
G = 255 # (red, green, blue)
B = 0
#------------------------------------------------------------------------------#
# КОНЕЦ НАСТРОЕК
#------------------------------------------------------------------------------#
end
class Game_Timer
#--------------------------------------------------------------------------
# * OVERWRITE Update
#--------------------------------------------------------------------------
def update
return if @freeze_time
if @working && @count > 0
@count += $game_variables[Variable_Timer::TIME_SPEED_VAR]
on_expire if @count == 0 && Variable_Timer::ABORT_BATTLE
end
if @working && @count < 0
@count = 0
end
end
def freeze
@freeze_time = true
end
def unfreeze
@freeze_time = false
end
def increase(time)
@count += time * Graphics.frame_rate
end
def decrease(time)
@count -= time * Graphics.frame_rate
end
def set(var)
@count = $game_variables[var] * Graphics.frame_rate
end
def increase_var(var)
@count += $game_variables[var] * Graphics.frame_rate
end
def decrease_var(var)
@count -= $game_variables[var] * Graphics.frame_rate
end
end # Game_Timer
class Sprite_Timer < Sprite
alias galv_vartimer_dispose dispose
def dispose
@timer_sprite.dispose if !@timer_sprite.nil?
galv_vartimer_dispose
end
def create_timer_sprite
@timer_sprite = Sprite.new
@timer_sprite.bitmap = Cache.system(Variable_Timer::TIMER_GRAPHIC)
@timer_sprite.opacity = 255
@timer_sprite.x = Graphics.width - @timer_sprite.bitmap.width
end
alias galv_vartimer_create_bitmap create_bitmap
def create_bitmap
galv_vartimer_create_bitmap
self.bitmap.font.name = Variable_Timer::TIMER_FONT unless Variable_Timer::TIMER_FONT == ""
self.bitmap.font.size = Variable_Timer::TEXT_SIZE
self.bitmap.font.color.set(Variable_Timer::R, Variable_Timer::G, Variable_Timer::B)
end
alias galv_vartimer_update_visibility update_visibility
def update_visibility
galv_vartimer_update_visibility
if $game_timer.working? && !$game_switches[Variable_Timer::HIDE_TIMER_SWITCH]
create_timer_sprite if @timer_sprite.nil? || @timer_sprite.disposed?
else
@timer_sprite.dispose if !@timer_sprite.nil?
self.visible = false
end
end
end # Sprite_Timer < Sprite
Демо прилагается.