Посмертие или не смертельная смерть. RPG Maker XP
Шаг нулевой. Предисловие.
В вашей игре смерть не является фатальной? Геймовер – это только начало? Надоело расставлять параметр if lose у монстров? Ваш персонаж может регенерировать 12 раз? Тогда этот туториал для вас. Пользуясь случаем, передаю пламенный привет Доктору из одного культового британского сериала.
Шаг первый. Ресурсы.
Определите один свич для запуска посмертных Эвентов и одну переменную для подсчета количества смертей. Пусть это будут 1 и 27 %).
Шаг второй. Собираем кусочки кода.
Войдем в редактор Скриптов. В разделе Game_System найдем строчку:
attr_accessor :magic_number
Вставим после нее:
attr_accessor :after_death_map_id, :after_death_map_coords
Теперь найдем:
@magic_number = 0
Вставим после:
@after_death_map_id = nil
@after_death_map_coords = [0, 0]
Йе-е-е. третья часть сделана.
Перейдем в раздел Scene_Gameover. Найдем там:
def update
И безжалостно сотрем все между этой строчкой и двумя последними end.
Теперь под def update вставим:
#--------------------------------
if Input.trigger?(Input::C)
unless $game_system.after_death_map_id.nil?
$game_temp.gameover = false
$game_temp.in_battle = false
$game_map.setup($game_system.after_death_map_id)
coords = $game_system.after_death_map_coords
$game_player.moveto(coords[0], coords[1])
$game_player.straighten
$game_party.actors.each {|actor| actor.recover_all}
$game_map.update
$game_variables[27] += 1
$game_switches[1] = true
$scene = Scene_Map.new
$game_map.autoplay
$game_system.timer_working = false
$game_map.refresh
end
end
#---------------------------------
Где в строках:
$game_variables[27] += 1
$game_switches[1] = true
Заменим 27 и 1 на номера вашей переменной и свича.
Шаг третий. Эвентинг.
В необходимом месте вызываем скрипт:
$game_system.after_death_map_id = 1
$game_system.after_death_map_coords = [2, 3]
Где 1 – номер карты, куда будем перемещать персонажа после смерти, а 2 и 3 – номера тайлов на карте. Все это можно посмотреть в статусной строке редактора.
Один из вариантов использования:
У Эвента стоит автозапуск по свичу 1. Когда персонажи умирают свич 1 включается, на один увеличивает счетчик смертей и игрока переносит к некой заданной точке. Выполняется эвент, характеристики персонажа падают на количество смертей. Свич смерти выключается до следующей смерти.
Шаг четвертый. Жуки.
Простой вызов GameOver’a приводит к трагическим последствиям, а именно – переносит игрока на заданную точку. Показывает заданное геймоверное изображение. Повторяет этот процесс.
Поэтому, создаем Общий эвент, где запрещаем доступ к меню и показываем изображение-геймовер. В конце игры просто вызываем этот эвент вместо стандартного геймовера.
Шаг последний. Послесловие.
При прикручивании не смертельной смерти к вашей игре подумайте, действительно ли она вписывается в общий концепт игры. Ммм, и конечно же пример, он же демо:
urbandreams.net.ru/project38.rar
При использовании туториала упоминать мое имя в вашей игре не обязательно. Туториал может быть размещен на других сайтах только с моего разрешения. Порталам rpg-maker.info и urbandreams.net.ru разрешение не требуется.
Your faithful friend, Balmung.