Игрострой - создание 2D и 3D игр. Конструкторы, модели, текстуры фоны и движки. Скачать бесплатно и без регистрации. Работа с UDK, Unity и многое другое.


Воскресенье, 28.04.2024, 00:47
Приветствую Вас Гость | RSS
Игрострой
Главная
Регистрация
Вход

Игрострой - создать игру самому легко!

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » RPG Maker » RPG Maker VX Ace » Создаем простую JRPG (Процесс создания игры и реализация механик.)
Создаем простую JRPG
SERPENT1987Дата: Среда, 14.12.2022, 19:24 | Сообщение # 1
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
В данной теме мы будем шаг за шагом создавать свою игру. Тайлы мы не будем рассматривать, а основной упор будет именно на скриптовую часть. Раз вы намерены разобраться со скриптами, то нарисовать карту из ресурсов смочь должны. А вот именно применение переключателей,событий и функций будет рассмотрено. Если вы хотите повторить данные шаги то внимательно относитесь к положениям переключателей, названиям переменных итд. Иначе может ничего не работать. В данной теме я буду рассматривать именно RPGMaker VX Ace лицензионную версию (в Steam она дешевле 200р., но если вы используете пиратскую, то отличия могут быть). Соответственно руссификацию я не устанавливал. В целом думаю все будет понятно, но с вопросами всегда можно обратиться на форум ;-) Называться будет проект "РПГ Форум". Так-как то что получится в результате именно для данного раздела и создано. И скорее всего релиз будет доступен для скачивания здесь. Приступим к написанию первой JRPG!

Цель создания данной игры, это своего рода цикл уроков по RPG Maker VX Ace, но он актуален во многом и для других частей данного конструктора JRPG игр. Это практика для меня и познавательный материал для тех, кто только приступает к изучению данного конструктора игр. Какие-то идеи вы тут сможете почерпнуть, поймете как и что работает. Это именно курс для начинающих. Тем кто давно имеет дело с RPG Maker вряд ли откроется Америка. Тут нет работы с RGSS. Просто базовые аспекты


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Среда, 14.12.2022, 19:42 | Сообщение # 2
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Для начала нарисуем простейшую карту с персонажем, как на скрине ниже.



Далее переместим персонажа в угол карты и поставим рядом горы что бы у него не было возможности уйти другим путем, кроме нужного нам. В этих же горах создадим Event. В нем мы создадим приветствие игроку.



Возможно на скрине будет не очень хорошо виден скрипт, поэтому дублирую текстом.

--------------------------------------------------------
Слева внизу блок "Trigger" в нем вместо "Action Button" ставим "Autorun". Это позволит сработать скрипту автоматически. 

В теле скрипта (двойной клик левой кнопкой мыши по нужной строке и выбираем нужное) "Text": "Приветствуем в РПГ Форум" следите за переносами строки, редактор переносит как попало. С новой строки в том же действии "Это простая JRPG для обучения основам!".
Control Self Switch A: On
Это нужно для остановки скрипта, так как мы создаем вторую страницу и оставляем тело скрипта пустым, а условием запуска ставим Self Switch A On.

Таким образом приветствие покажется только один раз.

Вторая страница Event.

 

Все Event можно переименовывать (а порой и нужно для удобства). В верхнем левом углу белое поле с надпись EV001 - Переименуем на "Greetings" (Приветствие). Теперь мы всегда будем знать что самый первый скрипт этот и если понадобиться добавить функцию запускающуюся сразу после приветствия (например таймер или уровень заражения области) то легче всего это сделать прям из этого скрипта. Мы правда обойдемся без этого.
Прикрепления: 9207948.png (156.3 Kb) · 7223843.png (169.3 Kb) · 2074392.png (166.4 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Среда, 14.12.2022, 21:51 | Сообщение # 3
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Какая же РПГ обходится без развязок сюжета и прочего? Так что сейчас мы поставим игрока перед выбором: Заплатить несколько монет демону или же драться с ним. 

Для начала создадим Event. Лучше всего его поместить там, где игрок не сможет его обойти (горы были нужны именно для этого). Сперва нам нужен текст подобного плана в Evente:

"Вы встретили небольшого демона. Он просит у вас
несколько золотых монет. Если вы откажетесь дать их ему, 
он готов броситься в драку."



Текст может быть каким угодно, но он должен отражать суть событий.  

Далее создадим выбор для игрока



Для этого в скрипте надо добавить функцию: "Show Choices" (Показать выбор)

В этой функции у нас есть варианты при том или ином выборе игрока. 

Я подготовил слабого демона равного по статам монстру "Slime", что бы убить его не составляло проблем.

Теперь когда все подготовлено на надо вписать в скрипт следующее: 



В первом случае если игрок выберет вариант "Заплатить" мы отнимаем 10 золота.
При сражении мы направляем игрока на экран битвы против нашего демона.

Обратите внимание что скрипт опять же заканчивается направлением на вторую страницу. А вот метод срабатывания скрипта уже от касания игрока с самим Eventом. 

Но что бы все работало корректно надо дать игроку монеты и проконтролировать их наличие.  Теперь нам придется перейти к скрипту "Greetings" и в нем реализовать добавление 10 монет игроку. Для этого выбираем функцию "Change gold". Работаем с Operand, а не с Variable!

Для реализации проверки поможет "Conditional Branch" там много подпунктов для проверок. Так что советую поизучать. Нас же интересует проверка золота у игрока. 

И так модернизируем скрипт так:



Теперь мы не только проверяем количество золота, но и принудительно запускаем бой, если золота нет.

Теперь вы наглядно понимаете логику разветвлений. Жаль движок позволяет не более 4 выборов за раз сделать, но можно вложить выбор в выбор и хоть 500 вариантов будет.
Прикрепления: 7427442.png (222.3 Kb) · 1837043.png (172.7 Kb) · 6729395.png (176.6 Kb) · 5574309.png (179.2 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Четверг, 15.12.2022, 19:12 | Сообщение # 4
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Какая же РПГ без НИП (NPC)? Теоретически конечно можно, но мы то делаем канон с кучей аспектов. Соответственно добавим сразу НПС! Назовем его "Мистер Фёст" (Отсылка к фильму "Человек с бульвара Капуцинок"). Он то и будет давать на это задание. Создадим Event со следующими настройками:



Обратите внимание, что установлена графика и в "Options" установлено "Fixed Direction" - это для того что бы персонаж спокойно стоял, а не бежал на месте.

Теперь напишем сам скрипт:

В первую очередь пользуемся функцией "Show Text". В ней мы напишем реплики персонажа и установим портрет (в прошлом при создании привественного текста мы этого не делали).



Далее создаем выбор "Show Choice". Соответственно мы соглашаемся принять задание или нет.

Сперва нам нужно создать "Event" сражения со слаймами, на случай если игрок примет задание. Он совсем простой, но поместить его надо туда, где игрок не сможет его коснуться. Это нужно на случай отказа от квеста. 

Для нашего квеста нам придется так же поработать с "Data Base" (доступна по нажатию F9). В ней мы создадим копию Slime. Все отличие от обычного слайма будет в дропе. В нем будет заложена "Slime Part". Данный предмет необходим для контроля выполнения задания.



Теперь настроим квестового слайма и создадим ему отдельную группу, иначе бой будет с обычными слаймами, не имеющими спец дропа.



Дроп я выделил на экране редактирования монстра.



Скрипт в одну строчку "Battle Processing: Slime x2". Теперь возвращаемся к скрипту задания.

Выглядит он после всех модификаций так:



При согласии игрока на задание, Event будет перемещен на карту и станет доступен игроку. При отказе же подобного не произойдет. 

Далее нам нужна вторая страница Eventa НПС. На ней мы проводим проверку наличия предмета и повышаем Атаку героя на две единицы, если он принес "Часть слайма".



Теперь вы понимаете принцип создания квестов в RPG Maker VX Ace. Так же теперь сможете изменить характеристику героя, удалить предмет из инвентаря, для избежания зацикливания получения награды. Большой простор для фантазии. Ну и поработали немного с Data Base. В целом игра становится похожа на классическую JRPG со всеми базовыми элементами.
Прикрепления: 6202909.png (167.4 Kb) · 4554592.png (230.9 Kb) · 0986672.png (166.6 Kb) · 6778741.png (164.0 Kb) · 6239188.png (174.3 Kb) · 8366008.png (176.7 Kb) · 0658707.png (172.1 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Пятница, 16.12.2022, 20:19 | Сообщение # 5
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
В большинстве своем, жанр RPG (а JRPG в него так же входит) стал весьма примитивным и не может похвастаться истинным ролеплейем. Пробуем это исправить в нашей игре. Введем внутреннее понятие "Карма". Для этого просто выделим одну переменную и назовем её "Karma". Для этого просто в самом первом нашем "Event"e определим переменную и сделаем её равной нолю. 



Теперь у нас есть внутренний параметр, невидимый игроку. Что мы можем с ним делать? Очень многое. Ведь переменную можно использовать для большинства условий или функций. Для начала сделаем простейший рост кармы за убийство демона. 
Для этого снова откроем Event  "Lesser Demon" (Если кто запамятовал, то это демон который просит дать ему монеты). В нем произведем небольшие изменения, что бы при сражении с Демоном карма увеличилась. 



Теперь при сражении с Демоном "Карма" увеличится на 1 пункт. (Для тех кто мало знаком ещё с RPG Maker VX Ace: При действии с переменной надо выбрать "Add", а не "Set" - Add увеличит значение переменной, в то время как Set его изменит на указанное число!)

Но так же надо учесть что игрок может и помочь Демону монетами, а значит Карма ухудшится должна. Ещё раз изменяем скрипт "Lesser Demon".



В случае уменьшения значения переменной требуется установить переключатель на "Sub" (Substract - вычитание).

Теперь у нас есть карма и она положительная. Нам же хочется что бы она на что-то влияла? Давайте и создадим что-то, что будет зависеть от кармы. Например новый Event. 

Что бы игрок его точно не прошел мимо, надо выбрать удобное положение. Для этого слегка разнообразим нашу карту, что бы она стала более приятной и наполненной, и в тоже время не дала игроку обойти нужную точку. Я выбрал такой вариант:



В любом случае игрок наступит на плитку с Ивентом. А далее собственно сам Event "Lucky Coin".



Разбираем скрипт:

Если переменная "Karma" больше или равна 0 (то есть положительная или нейтральная, то игроку будет выведено сообщение "Удача вам улыбается, вы нашли счастливую монету!"

Далее мы добавляем игроку +2 золота.

Если карма меньше 0 то игроку будет выведено сообщение "Неудачный день! Вы наступили в коровью лепёшку."
И на этом скрипт завершится. Не забывайте отключить скрипт использование Self Switch и созданием второй страницы.

Для справки: RPG Maker VX Ace, а так же прочие части, по умолчанию начинают обработку Event с последней страницы - например если страниц 5, то первой он проверит 5 страницу, потом 4 итд. Остановка проверки происходит тогда, когда найдена страница, которая сработает в данный момент. Например у нас вторая страница сработает только после того, как будет обработана первая и Self Switch A будет On. Пока он Off (все свитчи по умолчанию Off) игра будет обрабатывать первую страницу. Но как только он станет On по сути станет срабатывать пустая страница Event. Соответственно мы избежим дюпа Ивента и игрок не сможет его повторить (Если же Ивент постоянный, то там просто не нужны лишние страницы. Например Ивент Магазина или Лекаря.).
Прикрепления: 3619027.png (201.4 Kb) · 9598971.png (180.7 Kb) · 8668929.png (185.6 Kb) · 5837255.png (226.4 Kb) · 3820182.png (177.4 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Суббота, 17.12.2022, 19:47 | Сообщение # 6
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Теперь у нас уже есть много всего, но золото же нам нужно для чего-то. Самое простое - создать магазин. Установим его на нашей карте:



Далее создадим Event нашего магазина. Назовем его просто Shop. И первым же действием в скрипте будет "Shop Processing"



В "Shop Processing" настроим простенький магазин, где продается улучшенный топор. 



Этому скрипту не потребуется Self Switch и вторая страница, потому как этот магазин у нас статичный и он доступен всегда. 



В магазине можно установить цену "Standart" или "Specify". Стандартная цена в свойствах предмета описана. А специфическую мы устанавливаем сами. У нас немного иной баланс игры и стандартная цена в начале "500 Gold" будет неподъемной для игрока. Потому лучше её снизить или же давать игроку больше золота за задания, монстров итд. Это лишь один из вариантов магазина.
Прикрепления: 8740739.png (230.2 Kb) · 5562688.png (214.6 Kb) · 9984448.png (221.2 Kb) · 0075854.png (169.3 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Суббота, 17.12.2022, 20:14 | Сообщение # 7
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Какая RPG обходится без подземелий? Да никакая. Всегда надо лезть в пещеры\руины\склепы\ (нужное подчеркнуть). Мы не будем уходить от традиций и создадим своё подземелье. Для этого нам нужна новая карта.



Я нарисовал простую карту, добавил на неё подземную воду и стены, дабы она смотрелась более интересно. 



В принципе теперь можно вернутся к первой карте, которую я переименовал в "Start".

Теперь нам нужен Event (назовем его "Dung1"). В нем напишем сперва текст:

"Вы видите странную пещеру.
Хотите спуститься в неё?"

Далее выбор: "Спуститься" или "Уйти".

Если игрок решит спуститься, нам нужно перенаправить его в подземелье:



Функция "Transfer Player" позволяет перенести игрока на любую карту игры, в любую точку карты. 

Если персонаж решит Уйти от пещеры, то действия не нужны.

Теперь переходим к редактированию карты "Dungeon 1". В ней нам нужен Event, возвращающий игрока на поверхность. "Return" неплохое название для него, так что это и напишем в названии. В ивенте ставим текст:

"Вы хотите вернутся на поверхность?"

Далее выбор:

"Вернуться" или "Остаться"

Event похож на "Dung1"



В итоге получаем вот такой ивент. Поскольку они статичные (работают постоянно) то отключать их не надо, если они конечно по задумке не разовые. В итоге за несколько нетрудных шагов мы приблизили проект к настоящей РПГ игре. Конечно карты пустые, монстров, боссов, НПС и магазинов мало, предметов даже не делали. Но все базовые механики присущие жанру мы реализовали. Но это не конец, так-как хочется больше разных примеров и механик ввести в данную обучающую рпг. Конструктор RPG Maker VX Ace дает гораздо больше простора для творчества, нежели тут применено.
Прикрепления: 6289301.png (155.5 Kb) · 5185531.png (410.9 Kb) · 0309900.png (217.7 Kb) · 8590840.png (300.2 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Воскресенье, 18.12.2022, 20:24 | Сообщение # 8
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Теперь мы вспомним ещё один элемент РПГ, который крайне важен. Ведь герою надо добывать экипировку и золото. Да, у нас есть монстры, которым мы можем как угодно настроить дроп, но почему бы не сделать сундук сокровищ? Но для сундука ещё бы и ключ не помешал! Сперва его и создадим.



Ключ можно дать игроку разными способами: найти на земле, купить в магазине, получить как награду за выполнение задания итд. Я решил так: Сундук стоит в подземелье (карта Dungeon 1) то самое логичное и типовое - ключ выпадет с убитого Босса подземелья. Создадим и его!



Я назвал Босса "Мастер шпаг" и дал ему характеристики на 30% выше чем у слайма (в среднем). Он все таки босс, значит должен быть толстым. Так же добавим его в новый отряд для того, что бы была возможность создать бой с ним. Теперь создадим Event "Boss Fight". 



Все. Теперь игрок может сразиться с Боссом подземелья за вожделенный ключ. Переходим к созданию самого сундука. Это ивент. Назовем его Treasure Chest.

Вписал я небольшой текст при открытии сундука, иначе как игрок узнает награду:

"Вы открыли сундук!
Ваша награда 200 золота и зелье здоровья!"

Если игрок не имеет ключа, он увидит текст:

"Вам нужен Красный Ключ."



Если мы не хотим что бы сундук просто исчез, то тут есть варианты. Я решил сделать так, что появляется спрайт открытого сундука и при попытке с ним взаимодействовать, он выдаст текст:

"Кто-то уже забрал все отсюда."

Для этого была создана вторая страница с вот такими параметрами:



Вот так легко и просто создан сундук, требующий ключ и содержащий в себе награду двух типов - золото и предмет. Так что ничего сложного нет, но ключевой элемент РПГ мы добавили. Можно на базе этого легко сделать и сундук без ключа. Или например ломающийся ящик, бочку и.т.д. Так что и этот момент легко реализуем в RPG Maker VX Ace. и главное нам до сих пор не потребовался ни разу RGSS. И не потребуется вообще. Поскольку "РПГ Форум" это незатейливая РПГ в несколько карт и без сюжета. Её цель научить основам и показать как можно больше примеров.
Прикрепления: 4449100.png (283.0 Kb) · 9106710.png (313.5 Kb) · 8373090.png (281.7 Kb) · 7350440.png (289.6 Kb) · 7781434.png (282.9 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Понедельник, 19.12.2022, 19:50 | Сообщение # 9
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Большинство любят наличие камней\свитков возвращения, телепортирующих персонажа в город. Давайте и мы создадим такой "Камень Возвращения". Благо это реализуется достаточно просто. 

Сперва в Data Base создадим используемый бесконечный предмет (но вы можете сделать и тратящийся предмет если захотите).



Важные настройки предмета:

Consume: No (предмет не исчезает после применения)
Effects: Common Event "Teleport"

Как создать Common Event? В Data Base для этого отдельная вкладка. Выглядит же сам Event "Teleport" вот так: 



И теперь этот Event будет вызываться когда используемый предмет "Камень Возвращения". Пожалуй это одна из самых простых вещей что мы делали за эти уроки, но это очень важный элемент. Ведь иметь возможность быстро вернуться в поселение весьма круто. Здесь я отправляю персонажа к "Магазину", который создавался ранее, но отправить можно на любую карту, в любую точу.
Прикрепления: 0223614.png (168.7 Kb) · 3487682.png (150.6 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Понедельник, 19.12.2022, 20:18 | Сообщение # 10
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Иметь возможность вернуться в город круто. Но если будет несколько городов и игрок должен возвращаться в ближайший или тот, который он сам выберет. Предположим что города есть и на карте "Start" и на карте "Dungeon 1". Вариантов реализации как идей может быть много. Допустим что город возвращения задаем мы. Тогда есть самый простой метод:

Сперва выделим 3 переменные:

City
PointX
PontY

Все они целочисленные (а иных в RPG Maker и нет). В них поместим Id карты и позиции клетки, куда будем перемещать героя.

Сперва создадим Event в нужной нам карте, где находится условный город. Этот Event нам нужен что бы узнать Id карты и позицию клетки.



Поле точки назначения в функции Transfer Player содержит данные клетки и ID карты, куда мы хотим телепортировать игрока. Записываем их.

Map ID: 004 (City)
009 - PointX
010 - PointY

Значения переменных мы знаем. Теперь переходим в Common Event "Teleport"

Выбираем функцию "Transfer player" и изменяем её как на скрине ниже:



Теперь осталось решить маленькую проблему - как задать значения переменных!Тоже легко и просто. Ведь у нас есть ивент на перемещение игрока в подземелье. Его и задействуем.



Теперь значения переменных будут соответствовать точке на карте "Dungeon 1". Но если вы попытаетесь использовать предмет раньше, чем сработает этот Event, то вы получите ошибку, о том что карты с ID 000 не существует. Почему так? Потому что по умолчанию значение всех переменных равно нулю. Что б этого не произошло можно либо сразу задать значения переменных в стартовом Ивенте, либо в Common Event "Teleport" предусмотреть условие. Второй вариант я рассмотрю, а первый и так думаю понятен. Я решил что если у игрока не задана точка телепорта (переменная "City" = 0) то логично выдать ему текст:

"Вы ещё не посетили город и 
вам некуда переместиться."

В итоге Ивент получается таким:



Вот такие чудеса телепортации мы заложили в нашу простенькую JRPG. Конечно можно создать систему Way Point как в Diablo 2 или же систему телепортации как в Lineage 2. все вполне себе просто и реализуемо. И вы сами легко догадаетесь до метода реализации подобного функционала игры. RPG Maker VX Ace это Easy to Learn, Hard to be Master (Легко научиться, сложно стать мастером). Уж слишком много простора и функционала. А если вы дойдёте до изучения RGSS и Ruby - то вы сможете сделать что угодно на нем. Ну а если у вас есть вопросы по системам телепортации или ещё каким-то фишкам - ждем на форуме с вопросами.
Прикрепления: 1442845.png (345.5 Kb) · 5943506.png (318.4 Kb) · 5818706.png (177.5 Kb) · 4291368.png (154.9 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Среда, 21.12.2022, 20:39 | Сообщение # 11
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Крафт очень популярен в RPG и MMORPG, равно как и сбор ресурсов. Стоит реализовать добычу руды. Сперва создадим предмет: "Кирка". Не будт же персонаж добывать метал голыми руками.



Простой предмет из стандартного RTP RPG Maker VX Ace. В принципе все есть на скриншоте, разжевывать принцип создания нет смысла. Далее дадим "Кирку" нашему игроку. Лучше всего сейчас это реализовать в ивенте "Greetings". 



Теперь на старте наш игрок получит кирку. Далее нам нужно создать и залежи железной руды. Вариантов масса, но я остановлюсь на простейшем.

Назовем ивент "Iron Ore" и поместим его на карту.



Я постепенно наполняю карту, поэтому забиваю свободное пространство. Сейчас нам потребуется ещё и предмет "Железная руда".



Предмет похож на кирку и отличается лишь названием и файлом графики. Он неиспользуемый, так как используемой будет залежь руды.



Этот скрипт выглядит сложнее, но не сложнее чем все прочие. В частности в нем реализовано условие наличия предмета "Кирка" у игрока.

В нем мы спрашиваем игрока: Добыть руду или уйти? 

Если игрок добывает руду, то сперва присваиваем переменной "Ore" случайное значение 1 или 2 при помощи функции "Random". Далее создаем предмет "Железная руда", а в качестве количества у нас переменная "Ore". Таким образом игрок получить 1 или 2 руды, случайным образом. 

И так мы создали базу для добычи ресурсов. Инструмент и тип ресурса для добычи придумать не сложно, равно как и реализовать всю цепочку действий. Конечно можно добавить проверку наличия "Кирки" у игрока при помощи функции "Conditional Branch", а так же реализовать текст, на случай если у игрока нет кирки. Но вы уже и сами все это можете сделать, поэтому я и не стал париться над этими функциями в примере.
Прикрепления: 4840283.png (170.6 Kb) · 0589374.png (174.7 Kb) · 5574453.png (251.5 Kb) · 3824915.png (169.6 Kb) · 9143793.png (178.2 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Четверг, 22.12.2022, 15:28 | Сообщение # 12
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Вчера мы научились создавать ресурсы и добывать их. Сегодня можно приступить к реализации крафта. Мы реализуем крафт через "станок" (станок это любое сооружение для обработки ресурсов: печь, плавильня, пилорама, котел алхимика итд). Можно конечно придумать разные варианты реализации крафта без использования RGSS, но станки легче всего.

Поскольку у нас есть железная руда, то мы можем переплавить её в слитки. Этот скрипт будет сложнее предыдущих, так что читайте все внимательнее. Сперва создадим ивент "Furnace". Это будет плавильная печь для металлов.



Теперь когда мы создали сам ивент, пришло время его наполнить рецептами крафта. Самое мудрое - спросить игрока что он хочет скрафтить. И мы спросим. Но сперва надо сделать предмет "Слиток железа". 



Я использовал иконку льда из стандартного RTP RPG Maker VX Ace, так как графика не столь критична для обучающего проекта.

Теперь сам скрипт переплавки: 



На скрине часть скрипта на 3 типа руды, а в продолжении ещё 4 типа:



Где и какие данные на что заменить и так понятно. Теперь вы можете реализовать любой крафт через станки. Но в заключение я добавлю как проверить наличие нескольких разных предметов.



Конечно такие громоздкие if конструкции выглядят ужасно, но банального синтаксиса проверки нескольких условий в Мейкере нет. Так что все проверяем отдельно. Но если нет какого-то компонента, то мы сообщаем игроку о его нехватке. В то время как при проверке двух и более условий разом мы бы громоздили ещё больше ненужного кода для этого.
Прикрепления: 9006364.png (253.0 Kb) · 8444083.png (171.1 Kb) · 1155188.png (189.2 Kb) · 1005224.png (185.3 Kb) · 5286580.png (186.1 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Пятница, 23.12.2022, 13:12 | Сообщение # 13
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
Пришло время сделать работу посерьезнее и создать нестандартный дроп, ведь ограничение в три типа выпадающих предметов нас явно не устроит. Особенно если ваш ориентир дроп в таких играх как: Diablo 2, Sacred, Grim Dawn... Вариативность лута можно достигнуть при помощи Event'ов. Сперва понадобиться Common Event подобного типа:







Да, ивент на километр, но его нужно настроить 1 раз для каждой таблицы предметов. 

Сперва нужно определить какие предметы при каких условиях выпадут. Я это расписал подробно на скриншотах, так что думаю что понятно и так. Две переменные принимают случайное значение и это значение определяет какой предмет вам выпадет и сколько предметов будет. Для максимальной вариативности стоит проводить процедуру рандомизации переменной Item Type перед каждым условием с Item Qty. 

Далее уже настраиваем лутание монстров Ивентом. Создадим ивент Lootable Monster.

На первой странице обычный "Battle Processing" и включение Self Switch A.



Вторая страница как раз нас интересует больше. На ней мы и организовываем процесс сбора лута с трупа монстра.



Все просто, мы обыскиваем (ну или нет) труп монстра в поисках добычи. Это запускает наш Common Event "Custom Loot" и мы получаем предметы. Если вы хотите уведомить игрока о полученных предметах, то используйте простейший "Show Text" и в нем выводите всю информацию.  Таким образом можно настроить сколько угодно таких систем и в каждом ивенте боя с монстром его запускать. Прелесть таких "Common Event"  в том, что они создаются для всей игры, а не для отдельной карты. И если в трех картах лут одинаковый с монстров, то достаточно раз написать такой Common Event и не расписывать все это в каждом Ивенте сражения с монстром. Эта система далека от идеала, но её оптимизировать под себя сможет каждый.
Прикрепления: 3359063.png (166.8 Kb) · 8519864.png (164.6 Kb) · 2851317.png (162.3 Kb) · 7100879.png (171.2 Kb) · 1211842.png (175.1 Kb)


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
SERPENT1987Дата: Суббота, 24.12.2022, 17:09 | Сообщение # 14
Подполковник
Группа: Администраторы
Сообщений: 100
Репутация: 0
Статус: Offline
В этот раз небольшое отступление. Я расскажу как сделать систему сражения со случайным монстром, на случай если кто-то не догадался сам.

Все просто, достаточно прочитать пост выше и понимание придет само.

Обойдемся без скринов, а просто объясню принцип.

Создаем Common Event, в нем прописываем присваивание случайного значения переменной. Далее на основе выпавшего значения запускаем "Battle Processing" с нужными нам монстрами. В Event на карте просто заносим вызов созданного Common Event. Если же бой со случайным монстром планируется запустить только один раз, то Common Event нет смысла делать, все делаем в событии на карте сразу.

К сожалению с графикой сложнее, но и тут есть вариант. 

Для этого в ивенте Greetings можно выдавать случайное значение переменной и таким образом управлять активными страницами Event'ов. Это своего рода рандомная генерация событий на карте. Просто в нужных ивентах проводить проверку не на Self Switch, а на Variable = X. 

Все гениальное просто, даже рандомная генерация мира в RPG Maker VX Ace.


Работа с World Editor, RPG Maker, UDK и прочие фишки.
 
Форум » RPG Maker » RPG Maker VX Ace » Создаем простую JRPG (Процесс создания игры и реализация механик.)
  • Страница 1 из 1
  • 1
Поиск:


igrostroi.3dn.ru - Создавай игры! © 2024
Бесплатный хостинг uCoz

Вы можете скачать текстуры, модели, 2D и 3D движки и конструкторы игр бесплатно. Всё для создания игр разных жанров и направлений. Иконки, мануалы, скрипты и код.
UDK, Unity, HTML, Java.