Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Нестандартные фишки скиллов на базе систем событий

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47906

  • Agckuu_Coceg
  • Agckuu_Coceg аватар
  • Вне сайта
  • Архитектор Миров
  • Простой Гинтокист с огромной внутренней ленью.
  • Сообщений: 1549
  • Спасибо получено: 329
  • Организатор конкурсов3 местоПобедитель конкурсаПисатель 2 место2 место Готв
Предупреждение: данные уроки требуют среднего знания об ивент-системах 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... ну и так далее.

На сегодня советы закончены. Теперь настал черёд вашей конструктивной критики и предложений. С вами был ваш сенсей, Адский Сосед.
Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Последнее редактирование: 13 года 3 мес. назад от Agckuu_Coceg.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: 100500, Cerberus, Kalivan

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47915

  • 100500
  • 100500 аватар
  • Вне сайта
  • Мастер
  • Сообщений: 132
  • Спасибо получено: 30
Спасибо, весьма полезная штука. А кое-что из этого будет очень кстати в моём проекте. Буду ждать продолжения, может ещё чего наизобретаешь))
Администратор запретил публиковать записи гостям.

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47937

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • 3 местоРазработчикПобедитель конкурсаПисательПисатель 2 место2 место Организатор конкурсов
По поводу сканирования:
Я бы посоветовал, чтобы скилл не просто вызывал коммон эвент, а ещё и накладывал некоторый стейт(поставить ему рейтинг 0). И в эвенте ставить не "Враг появился", а "Враг имеет статус такой-то". Такая система гораздо гибче, хотя бы потому что можно отсканировать только одного врага или всех сразу (в зависимости от Scope) и поставить различным врагам сопротивляемость скану (например, какой-то враг сканируется всегда, другой - в 40% случаев, а босс не сканируется вообще) просто меняя сопротивляемость стейту.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Agckuu_Coceg

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47938

  • Agckuu_Coceg
  • Agckuu_Coceg аватар
  • Вне сайта
  • Архитектор Миров
  • Простой Гинтокист с огромной внутренней ленью.
  • Сообщений: 1549
  • Спасибо получено: 329
  • Организатор конкурсов3 местоПобедитель конкурсаПисатель 2 место2 место Готв
А это между прочим, прекрасная идея для возможного чека того или иного врага... Только вывести данные на одного врага всё равно не получится.
Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Последнее редактирование: 13 года 3 мес. назад от Agckuu_Coceg.
Администратор запретил публиковать записи гостям.

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47939

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • 3 местоРазработчикПобедитель конкурсаПисательПисатель 2 место2 место Организатор конкурсов
Это единственная идея для чека того или иного врага :). Иначе, кроме как стейтами, последнего атакованного врага не отследить.
Отслеживание последнего атакующего монстра по количеству MP - работает тоже через пещеру меж двумя холмами, но я другого выхода не нашёл.
Администратор запретил публиковать записи гостям.

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47940

  • Agckuu_Coceg
  • Agckuu_Coceg аватар
  • Вне сайта
  • Архитектор Миров
  • Простой Гинтокист с огромной внутренней ленью.
  • Сообщений: 1549
  • Спасибо получено: 329
  • Организатор конкурсов3 местоПобедитель конкурсаПисатель 2 место2 место Готв
Иначе, кроме как стейтами, последнего атакованного врага не отследить.

Force Action - Last Target?!
Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Администратор запретил публиковать записи гостям.

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47941

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • 3 местоРазработчикПобедитель конкурсаПисательПисатель 2 место2 место Организатор конкурсов
Всё равно это система без обратной связи. Можно применить скилл, но всё равно так невозможно узнать, к кому он был применён. Невозможно получить HP/MP/статы/стейты врага.
Администратор запретил публиковать записи гостям.

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47942

  • Agckuu_Coceg
  • Agckuu_Coceg аватар
  • Вне сайта
  • Архитектор Миров
  • Простой Гинтокист с огромной внутренней ленью.
  • Сообщений: 1549
  • Спасибо получено: 329
  • Организатор конкурсов3 местоПобедитель конкурсаПисатель 2 место2 место Готв
Невозможно получить HP/MP/статы/стейты врага.

Но даже если ты выделишь конкретного врага, ты не сможешь выписать его HP\MP\Статы\Стейты отдельно, так как его позиция всё равно никаким образом не будет записана - в RMXP просто нет функции - записать в переменную позицию врага при применении Control Variables. Поэтому и невозможно создать сканирование на определённого врага посредством ивентов.
Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Последнее редактирование: 13 года 3 мес. назад от Agckuu_Coceg.
Администратор запретил публиковать записи гостям.

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47943

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • 3 местоРазработчикПобедитель конкурсаПисательПисатель 2 место2 место Организатор конкурсов
Почему нельзя? И Conditional Branch'и и Variabl'ы опираются на позицию врага или имя актора.

ЕСЛИ враг_1 СТЕЙТ Последняя цель
var_1 = враг_1.STR
ЕСЛИ враг_1 СТЕЙТ стейт_14
СООБЩЕНИЕ: "Страдает от стейт_14"
END
END
ЕСЛИ враг_2 СТЕЙТ Последняя цель
var_1 = враг_2.STR
ЕСЛИ враг_2 СТЕЙТ стейт_14
СООБЩЕНИЕ: "Страдает от стейт_14"
END
END
Администратор запретил публиковать записи гостям.

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47944

  • Agckuu_Coceg
  • Agckuu_Coceg аватар
  • Вне сайта
  • Архитектор Миров
  • Простой Гинтокист с огромной внутренней ленью.
  • Сообщений: 1549
  • Спасибо получено: 329
  • Организатор конкурсов3 местоПобедитель конкурсаПисатель 2 место2 место Готв
ЕСЛИ враг_1 СТЕЙТ Последняя цель
var_1 = враг_1.STR
ЕСЛИ враг_1 СТЕЙТ стейт_14
СООБЩЕНИЕ: "Страдает от стейт_14"
END
END
ЕСЛИ враг_2 СТЕЙТ Последняя цель
var_1 = враг_2.STR
ЕСЛИ враг_2 СТЕЙТ стейт_14
СООБЩЕНИЕ: "Страдает от стейт_14"
END
END

Честно говоря, я не понял ни черта из этого. Можно скриншот всей этой сотворённой системы, чтобы было более понятно? Потому что я до сих пор не могу вбить себе в голову, где ты нашёл:
СТЕЙТ Последняя цель
Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Последнее редактирование: 13 года 3 мес. назад от Agckuu_Coceg.
Администратор запретил публиковать записи гостям.

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47946

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • 3 местоРазработчикПобедитель конкурсаПисательПисатель 2 место2 место Организатор конкурсов
Это просто стейт, который накладываю при применении скилла. Создан искуственно, у меня идёт вторым.

Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Agckuu_Coceg

Нестандартные фишки скиллов на базе систем событий 13 года 3 мес. назад #47947

  • Agckuu_Coceg
  • Agckuu_Coceg аватар
  • Вне сайта
  • Архитектор Миров
  • Простой Гинтокист с огромной внутренней ленью.
  • Сообщений: 1549
  • Спасибо получено: 329
  • Организатор конкурсов3 местоПобедитель конкурсаПисатель 2 место2 место Готв
Да, я уже разобрался в схеме, пока ты делал скриншот. В принципе, это действительно логично выходит.
Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.197 секунд