Предупреждение: данные уроки требуют среднего знания об ивент-системах RPG Maker, в частности о правильном использовании переменных и общих событиях. Поэтому без чёткого знания о них вы мало чего поймёте, поэтому потренируйтесь сперва с их управлением.
Итак, здесь я решил собирать виды нестандартных решений в плане скиллов, сделанных на базе ивент-систем, которые я собирал за месяцы практики работы с ними. В частности, здесь вы можете спросить о том, как попробовать сделать тот или иной скилл на базе ивентов. К сожалению, некоторые возможности (а точнее невозможности) мэйкера делают этот процесс трудоёмким, и иногда довольно трудным в использовании.
Я использую для создания ивент-систем стандартный инструментарий RPG Maker XP, но это не означает, что вы не сможете использовать его на более позднем VX, а возможно и на более ранних RM2k и RM2k3. Поэтому данные туториалы можно назвать общими.
P.S. Данные ивент-системы могут быть применимы ко многим боевым (Стандартные, ATB, CTB, TBS), но нет уверенности относительно их работы в ABS-боевых. Если они всё же сработают - то считайте, что вам повезло.
Содержание (заполняется по мере заполнения статьи):
1.1. Комбинационная атака/скилл.
1.2. Скилл со случайным нанесением урона.
1.3. "Ящик Пандоры", или вызов случайного скилла.
1.4. Скилл сканирования.
Итак, приступим...
1.1. Комбинационная атака/скилл.
Итак, приступим с самого лёгкого по моему мнению туториала - создания скилла, вызывающего комбинационную атаку или комбинацию из скиллов на противника. Данная схема довольно легка в использовании и не требует особого мастерства. Для неё нам потребуется скилл, и одно общее событие под него.
1) Итак, создаём обычный скилл. Обязательные условия: Scope: One Enemy (Цель: Один враг) (это требуется в любом случае, даже если вы планируете навести скилл на множество противников), Ocassion: Only in Battle (Использование: Только в битве). В выборе общих событий скилла (Common Event) выбираем то ID события, которое мы собираемся пристегнуть к данному скиллу. Делать каких-то особых эффектов или урона для данного скила не надо, но не возбраняется - данный скилл служит исключительно для чека противника, которому будет наноситься ваша комбинационная атака.
Сохраняем.
2) Теперь заходим в панель общих событий и выбираем то, что мы выбрали для нашего скилла. Теперь создадим в нём простую систему. Вначале вызываем ивент Force Action. Для простой комбинационной атаки выбираем в нём:
Battler: Actor ID No. (здесь выбирается ID персонажа согласно его расположению в партии)
Action: Attack
Action Target: Last Target
Timing: Execute Now
Сохраняем.
Итог - мы получили первое звено цепочки атаки. Делать следующие звенья можно таким же образом, причём можно распоряжаться ими как угодно - число ударов в вашей комбинации ограничена вашим же собственным воображением.
То же самое и со скиллами. Здесь вам просто следует заменить в Force Action - Action: Attack на Action: Skill и выбрать нужный. Комбинировать их, а также использовать их вместе с обычными атаками не возбраняется. Также не запрещается использовать их на всю группу врагов в комбинации - для этого вам нужно лишь добавить в Scope скилла, находящегося внутри цепи All Enemies, и готово! К тому же, использовать атакующие по общей площади скиллы можно безгранично.
Если вы планируете добавить внутрь комбинации навык лечения или накладывания статов на своих союзников и себя - то это также вполне реально. Вам просто следует добавить скилл, в Scope которого добавлен One Ally (в данном случае скилл будет кастоваться на себя... скорее всего), All Allies или User - и вот комбинация атаки с лечением готова.
Навык подан!
1.2. Скилл со случайным уроном.
Итак, а мы сейчас создадим новый скилл - на этот раз со случайным эффектом. Учтите - данный скилл мазать не будет, поэтому заранее ознакомьтесь с этим.
Правда, вначале о грустном. Данный скилл не будет работать на выбранного вами противника. Почему? В стандартном инструментарии RPG Maker (по-крайней мере, XP) нет такой функции, как чек позиции врага. То есть его нельзя занести в переменную и использовать в качестве добавки в систему. Чего безусловно жаль. Правда это не отменяет того факта, что данный скилл можно использовать против одного противника, просто выбрать его вам не удастся. Такие дела.
Итак, мы хотим создать скилл, который будет наносить рандомный урон врагам. Для этого нам также потребуется один скилл и одно общее событие. В скилле мы вводим имя, эффекты, Ocassion: Only on Battle, ну и выбираем наше общее событие. В Scope можно добавить всё, что угодно - здесь оно не будет иметь принципиально никакого значения.
Итак, теперь об общем событии. Вначале мы вводим в него обычный вызов рандом-переменной:
Control Variables: (Управление переменными)
Variable: Single: Имя переменной, которую мы закрепим. (Переменная: Одиночная)
Operation: Set (Операция: = )
Operand: Random (Операнд: Случайно)
В качестве чисел в Random мы ставим минимальное и максимальное значение, наносимое нашим скиллом. Сохраняем результат.
Теперь, если мы хотим нанести урон от скилла одному противнику, то нам придётся создать брэнч (Ветвление условий). Создаём его и открываем третью страницу. Выбираем: Enemy (Враг): 1. is: Appeared (Появляется). Галочку с "set handling" не убираем.
Теперь внутри брэнча мы создаём ивент Deal Damage (Нанести урон). Выбираем Target (Цель): Enemy (Враг): 1. - Operand (Операнд): Variable (Переменная): ID вашей переменной, которую вы поставили ранее. Сохраняем.
Итог: у нас появился скилл, который будет наносить рандомный урон первому противнику, но это ещё не конец.
Создаём внутри брэнча ещё один брэнч, на этот раз с Enemy: 2. is: Appeared (Появляется), галочку вновь не убираем. В нём создаём Deal Damage и повторяем в нём действия, что мы делали ранее, за исключением Enemy: 2. Эти действия вам нужно повторять, пока вы не создадите последний брэнч c Deal Damage - Enemy: 8. is Appeared. в котором вы и убираете галочку. Если вы планируете делать меньшее количество врагов в группах, то делайте брэнчи до максимального количества ваших врагов. Делается это для того, чтобы скилл не пропадал впустую, если враги с ранних позиций уже уничтожены - скилл будет атаковать одного противника по строгому ряду, от первого до последнего.
С атакой по группе всё обстоит куда легче. Вам не нужно будет создавать брэнчи, достаточно ввести в Deal Damage - Entire Troop (Вся группа) вместо Enemy - и вот, скилл готов.
Итак, мы закончили. Сохраняем наши труды и идём дальше.
1.3. "Ящик Пандоры", или вызов случайного скилла.
Итак, в двух предыдущих работах мы рассматривали использование ивента Force Action и рандом-переменных в скиллах. Теперь мы совместим полученные нами навыки, и создадим скилл, который я назвал "Ящик Пандоры". Впрочем, вы можете назвать его как душе угодно, авторские права уж точно не сохранены. Данный скилл обладает способностью вызывать на врагов какой-либо случайный скилл, который будет выбран из коллекции. Для этого нам потребуется: набор скиллов, который мы задействуем в нашем "Ящике", один скилл и одно общее событие.
1) Создаём такой же скилл, который мы раньше использовали для комбинационных атак (Scope: One Enemy, Ocassion: Only in Battle, выбираем наш коммон). Сохраняем.
2) Теперь создаём внутри коммона рандом-переменную. В минимальном числе мы ставим 1, в максимальном - число скиллов, которые будут задействованы в "Ящике". Сохраняем.
3) Теперь создаём брэнч. Выбираем в ветке на первой странице: Variable (Переменная) - ID нащей переменной - Equal To (Равна) = 1. Галочку с set handling не убираем. Создаём, сохраняем.
4) Внутри брэнча мы создаём Force Action, и выставляем те же значения, что мы делали в комбинационных атаках:
Battler: Actor ID No. (здесь выбирается ID персонажа согласно его расположению в партии)
Action: Skill - ID нашего первого скилла в ящике.
Action Target: Last Target
Timing: Execute Now
5) Создаём новый брэнч внутри предыдущего. Повторяем действие 3 с изменением Equal To на 2.
6) Повторяем действие 4 с другим скиллом в Force Action.
7) Повторяем действия 5-6 с другими цифрами в Equal To по порядку и другими скиллами в Force Action, вплоть до последнего записанного нами в рандом-переменной. Галочку убираем, сохраняем.
8) Проверяем наш скилл.
9) ??????
10) ПРОФИТ!
1.4. Скилл сканирования.
Как многие помнят, в обычной DBS нет возможности поглядеть на HP и уж тем более SP противника. Исправляем эту досадную возможность путём внедрения обычного скилла-сканера, который будет показывать нам статы противника. Для этого нам потребуется несколько переменных (их количество зависит от того, сколько вы планируете выводить цифровой информации о статах на экран - я лично беру четыре: HP, SP, MaxHP, MaxSP), один скилл, и одно общее событие.
1) Создаём скилл. Scope здесь не будет иметь никакого значения, поэтому решайте сами. Occasion: Only in Battle. Эффекты, имя, затраты - по вашему усмотрению. Добавляем в него наш будущий коммон. Сохраняем.
2) Теперь откроем наш коммон. Создаём брэнч. Выбираем: Enemy (Враг): 1. is: Appeared (Появляется). Галочку с "set handling" не убираем.
3) Теперь внутри брэнча создаём переменные. Я указываю вам действия на четыре переменные.
Control Variables: Variable - Single - ID первой переменной: Operation - Set: Operand - Enemy. 1 - HP.
Control Variables: Variable - Single - ID второй переменной: Operation - Set: Operand - Enemy. 1 - MaxHP.
Control Variables: Variable - Single - ID третьей переменной: Operation - Set: Operand - Enemy. 1 - SP.
Control Variables: Variable - Single - ID четвёртой переменной: Operation - Set: Operand - Enemy. 1 - MaxSP.
4) Теперь создадим вызов сообщения. Оформлять его вы можете как угодно. Я лично к примеру сделал так:
Враг №1
Текущее HP: \V[ID первой переменной]/\V[ID второй переменной]
Текущее SP: \V[ID третей переменной]/\V[ID четвёртой переменной]
5) Теперь создадим новый брэнч вне (!) другого брэнча. Выбираем: Enemy (Враг): 2. is: Appeared (Появляется). Галочку с "set handling" также не убираем. Копируем в него ту же самую структуру, что в действиях 3-4, заменяя в переменных Enemy 1. на Enemy 2., а в тексте сообщения - №1 на №2.
6) Повторяем действие 5, заменяя числа на 3-8. Если у вас будет меньше восьми врагов в группе, делаете это вплоть до максимального их количества. Сохраняем. Проверяем скилл на наличие работы.
Готово. У нас появился скилл, который будет отображать текущие и маскимальные значения HP и SP всех наших врагов, один за другим. Чтобы добавить внутрь сообщения боестаты, необходимо создать ещё несколько переменных, работающих по тому же принципу - вам нужно выбрать в Control Variables - Enemy - STR, DEX, AGI... ну и так далее.
На сегодня советы закончены. Теперь настал черёд вашей конструктивной критики и предложений. С вами был ваш сенсей, Адский Сосед.