Шаблонные события
Дополнение: Слияние параллельных событий
Template Events Addon: Merge parallel events
Информация:
Автор: DeadElf79
Версия скрипта: 1.0
Версия мейкера: VX Ace
Описание:
С помощью этого скрипта вы можете автоматически сливать в одно событие все параллельные события, которые удовлетворяют следующим условиям:
1. имеют одну и только одну страницу с условием выполнения "
Параллельно" (
Trigger установлен в значение
Parallel Process в английской версии).
2. имеют хотя бы одну команду, которую могут выполнить (то есть, их содержимое не пустое).
скрипт не будет затрагивать те ивенты, которые содержат более одной страницы, даже если одна или несколько из них выполняются как параллельные процессы.
Также стоит сказать, что объединение происходит только во время игры, в редакторе никаких изменений вы не увидите.
Установка:
1. Выберите версию кода ниже.
2. Установите скрипт
Шаблонные события, если выбрали версию "
как дополнение".
3. Пользуйтесь на здоровье.
ВАЖНОЕ ЗАМЕЧАНИЕ!
Если вы выбрали версию "как дополнение", то загрузка карты будет происходить следующим образом:
1. Загружается файл карты
2. Загружается графоний
3. Копируются события с карты шаблонов
3.1. Происходит слияние параллельных событий
4. Загружаются события и исполняются автораны
Таким образом, если у вас есть шаблоны параллельных процессов, вы можете расписать каждый шаблон на карте TEMPLATES, а потом добавить их на нужную карту и они сольются в одно событие. Таким образом, можно смешивать много разных параллельных событий в любой комбинации.
Демо:
Добавлю сюда ссылку, как только подготовлю.
Код установки скрипта как дополнение:
#==============================================================================
# Template Events Addon: Merge parallel events
# Version 1.0
# by DeadElf79
#==============================================================================
module De79TemplateEvents_Merge
MERGE_PARALLELS = true
end
class Game_Event
attr_accessor :list
end
class Game_Map
def parallels
@parallels ||= @events.values.select{ |event|
event.trigger == 4 && event.pages.size == 1 && not(event.empty?)
}
end
end
class Scene_Map < Scene_Base
alias de79_te_merge ask_every_te_addon
def ask_every_te_addon
de79_te_merge
if De79TemplateEvents_Merge::MERGE_PARALLELS
there_can_be_only_one = $game_map.parallels[0]
return unless there_can_be_only_one
for index in 1...$game_map.parallels.size
event = $game_map.parallels[ index ]
if event.list != nil
there_can_be_only_one.list += event.list
end
event.erase
end
end
end
end
Код установки скрипта как отдельный:
#==============================================================================
# Merge parallel events
# Version 1.0
# by DeadElf79
#==============================================================================
module De79Merge
MERGE_PARALLELS = true
end
class Game_Event
attr_accessor :list
end
class Game_Map
def parallels
@parallels ||= @events.values.select{ |event|
event.trigger == 4 && event.pages.size == 1 && not(event.empty?)
}
end
end
class Scene_Map < Scene_Base
def start
super
SceneManager.clear
$game_player.straighten
$game_map.refresh
$game_message.visible = false
merge_parallels
create_spriteset
create_all_windows
@menu_calling = false
end
def merge_parallels
if De79TemplateEvents_Merge::MERGE_PARALLELS
there_can_be_only_one = $game_map.parallels[0]
return unless there_can_be_only_one
for index in 1...$game_map.parallels.size
event = $game_map.parallels[ index ]
if event.list != nil
there_can_be_only_one.list += event.list
end
event.erase
end
end
end
end