Написал небольшой скриптик, который позволяет подвешивать события - в виде куска скрипта - на изменения свитчей и переменных. Возможно, кому-то, у кого фантазии побольше, чем у меня, пригодится.
Например, можно использовать для того, чтобы не забыть выполнить некоторые действия или не копипастить по похожим событиям операции проверки.
В приложенной демке скрипт используется для вызова Common Event по достижению переменной некоторого значения (по идее, common events смогут активироваться только свитчами). Соберите 5 цветочков на двух картах, и вызовется событие. Да, можно было в каждый цветок вставить проверку, но в моем случае - меньше кода и возможностей забыть эту проверку.
Скрипт
#===============================================================================
=begin
Autoevents
Скрипт позволяет подвесить вызов события (кусок скрипта)
на изменение переменных и свитчей.
Автор: caveman
История версий:
1.01 - Реализация для свитчей и переменных
Пример использования:
- проставление события переменной. пишем где-нибудь в autorune
$game_variables.set_event(1, "if $game_variables[1] == 5
$game_switches[1] = true
end")
это означает, что в игре, при получении переменной 1 значения 5,
свитчу 1 автоматически присвоится true
=end
class Game_Switches
def initialize
@data = []
@events = []
end
def set_event(switch_id, value)
if switch_id <= 5000
@events[switch_id] = value
end
end
def []=(switch_id, value)
if switch_id <= 5000
if @data[switch_id] != value
@data[switch_id] = value
if @events[switch_id] != nil
eval(@events[switch_id])
end
end
end
end
end
class Game_Variables
def initialize
@data = []
@events = []
end
def set_event(variable_id, value)
if variable_id <= 5000
@events[variable_id] = value
end
end
def []=(variable_id, value)
if variable_id <= 5000
if @data[variable_id] != value
@data[variable_id] = value
if @events[variable_id] != nil
eval(@events[variable_id])
end
end
end
end
end
демка
yadi.sk/d/3hBMYvX-6yMU6