Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Переодевание персонажа

Переодевание персонажа 4 года 7 мес. назад #116147

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
Здравствуйте
Прощу прощения если такой вопрос был, я осмотрел форум, но возможно пропустил ответ на данный вопрос.
Хочу сделать так чтобы при переодевании персонажа, вылезало сообщение и менялась моделька(графика) персонажа.

Провел несколько тестов, в основном использовал общее событие, так как данное действие должно работать в любой момент игры и в любой локации, но столкнулся с проблемой. Как я понял программа RpgMaker определяет условие "Если экипировано" ни как действие что - предмет был надет, а как действие что предмет надет, из-за чего собственно общее событие запускается и работает без остановки и игра парализуется.

Я сделал еще один тестовый проект чтобы протестировать данный момент. Один из вариантов был запуск через кнопку, которая запускает событие, оно выполняется и завершает работу. Но! Данный вариант не устраивает так как пока не подразумевается чтобы персонаж для переодевания бежал к условному шкафу, хоть технически это вариант решения, все же хочется найти иные способы. Ибо зачем тогда эти доспехи(одежда) в инвентаре.

Интересным я нашел то, что предметы могут запускать общее событие, и не возникают проблем бесконечной работы общего события. Так что я задумался если скрипт который позволяет запустить общее событие при надевания определенного доспеха(одежды), или двух вещей (Кираса+шлем).

Прощу прощения за излишние подробности, мне показалось что они могут быть полезными.

Цель: Написать скрипт или общее событие, чтобы персонаж при переодевании в любом месте игры менял графику персонажа и выводил сообщение о смене внешнего вида.

Пример:
*Персонаж экипирует Кирасу Стражника*
*Выходит сообщение:* - Теперь я почти похож на стражника
*Игра меняет графику персонажа*

Пример 2:
*Персонаж экипирует Кирасу Стражника и Шлем Стражника*
*Выходит сообщение:* - Теперь меня не отличить от стражника
*Игра меняет графику персонажа*


Я прикладываю тестовый проект в котором можно переодеть персонажа, но в данный момент для смены графики нужно использовать кнопку. Так же я внес условия в диалог с НПС, чтобы он отвечал исходя из экипированной одежды на персонаже, так как это будет играть роль основной в игре.

Заранее всем спасибо, и еще раз извиняюсь если такой вопрос на форуме уже был

Тестовая Игра
Последнее редактирование: 4 года 7 мес. назад от Demon traveler. Причина: Не вставилась ссылка
Администратор запретил публиковать записи гостям.

Переодевание персонажа 4 года 7 мес. назад #116148

  • MaltonTheWarrior
  • MaltonTheWarrior аватар
  • Вне сайта
  • Просветлённый
  • Любопытненький
  • Сообщений: 327
  • Спасибо получено: 340
  • 3 место ГотвВетеранПроект месяца 2 место1 место в Готв3 местоДаритель Стимкея
Слишком мало информации.
- Какая версия мейкера?
- Насколько объемно планируется использоваться данная фича? Ну, т.е. это планируется сделать ровно в 1 игровой момент - когда надо переодеться в стражника? Или же планируется, чтобы ЛЮБАЯ вещь при экипировании меняла графику персонажа?
В первом случае все возможно реализовать силами движка.
Во втором случае используй гугл и ищи необходимые тебе скрипты, по кодовой фразе "visual equipment".
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Demon traveler

Переодевание персонажа 4 года 7 мес. назад #116149

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
Слишком мало информации.
- Какая версия мейкера?
- Насколько объемно планируется использоваться данная фича? Ну, т.е. это планируется сделать ровно в 1 игровой момент - когда надо переодеться в стражника? Или же планируется, чтобы ЛЮБАЯ вещь при экипировании меняла графику персонажа?
В первом случае все возможно реализовать силами движка.
Во втором случае используй гугл и ищи необходимые тебе скрипты, по кодовой фразе "visual equipment".

- Версия Rpg Maker MV 1.6.1
- Много. В основном для решения задач не в лоб, другие диалоги и дополнительных ивентов.
(К примеру житель скорее согласиться попросить помощи у стражника, нежели у неизвестного ему путника)
- Технически да. Одежды специально мало так как среди неё только используемая для тех или иных переодевании и взаимодействии. В данный момент насчитал 7-мь "доспехов'

Благодарю, попробую найти в гугле visual equipment
Последнее редактирование: 4 года 7 мес. назад от Demon traveler. Причина: Чуть чуть грамматику поправил
Администратор запретил публиковать записи гостям.

Переодевание персонажа 4 года 7 мес. назад #116151

  • Alx_Yago
  • Alx_Yago аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1151
  • Спасибо получено: 2172
  • ОраторПроект года 3 место1 место в Обучающем конкурсе3 место в Обучающем конкурсе3 местоУчительРазработчикПроект месяца 1 местоПроект года 1 местоПаладин
Задачка решается стандартными средствами:

2020-04-13160414.jpg


Первый скрипт записывает в переменную 6 ("надето сейчас") ID брони, надетой на персонажа 1, если она вообще есть. У меня броня считается слотом [3], если что.

А потом идёт простая проверка: надето ли сейчас то же самое, что и раньше, и если нет, то дальше идёт проверка того, что именно было надето с комментариями, заменой графики персонажа и обновлением переменной с ID надетой брони.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: VarVarKa, Phileas, Natan_Exp, Demon traveler

Переодевание персонажа 4 года 7 мес. назад #116153

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
Задачка решается стандартными средствами:

2020-04-13160414.jpg

В целом понял мысль. Сделать две переменные которые отслеживают ID брони.

Первый скрипт записывает в переменную 6 ("надето сейчас") ID брони, надетой на персонажа 1, если она вообще есть. У меня броня считается слотом [3], если что.

А потом идёт простая проверка: надето ли сейчас то же самое, что и раньше, и если нет, то дальше идёт проверка того, что именно было надето с комментариями, заменой графики персонажа и обновлением переменной с ID надетой брони.

Благодарю за ответ с примером скрипта, пусть и немного смазанными скобками.
Я не совсем понимаю как именно записать первый скрипт в переменную. Сделать еще одно событие где будет написанно что переменая 6="скрипт"?

В данный момент программа меня не в пускает в игру.
Syntaxerror unexpected token

Вероятно даже в переписаний скрипта умудрился накосячить. Имеется ли у вас возможность передать демо в котором вы написали данное событие?
Последнее редактирование: 4 года 7 мес. назад от Demon traveler. Причина: Дополнительная информация
Администратор запретил публиковать записи гостям.

Переодевание персонажа 4 года 7 мес. назад #116154

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2731
  • Победитель конкурсаОратор3 место ГотвУчительКомпозиторОрганизатор конкурсов2 место 1 место в Готв
if ($gameActors.actor(1).equips()[3]) { $gameVariables.setValue(6, $gameActors.actor(1).equips()[3].id); } else { $gameVariables.setValue(6, 0); }
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Phileas, Alx_Yago, Demon traveler

Переодевание персонажа 4 года 7 мес. назад #116155

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
yuryol пишет:
if ($gameActors.actor(1).equips()[3]) { $gameVariables.setValue(6, $gameActors.actor(1).equips()[3].id); } else { $gameVariables.setValue(6, 0); }

Моя благодарность, все заработало! Займусь тестированием. :)
Администратор запретил публиковать записи гостям.

Переодевание персонажа 4 года 7 мес. назад #116156

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
Всех благодарю, скрипт работает исправно, но полагаю он работает с броней у которой Тип экипировки "Тело",но не затрагивает другие слоты, ибо даже если сделать отдельное условие с надеванием одной лишь шляпы, скрипт ничего не меняет.

В целом в данный момент кроме как Шлем стражника+Кираса стражника пока комплектов нет, и вроде не подразумевалось(персонаж не любит шлемы и без них справляется)), думаю, условно можно сделать Доспехи стражника(Тело) и меньше нагружать игру, да и это исключит проблемы если игрок попытается надеть шлем находясь в другой броне к которой этот шлем тем более не предназначен.

Ещё раз благодарю всех за помощь.
Последнее редактирование: 4 года 7 мес. назад от Demon traveler. Причина: Грамматически правки
Администратор запретил публиковать записи гостям.

Переодевание персонажа 4 года 7 мес. назад #116157

  • Alx_Yago
  • Alx_Yago аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1151
  • Спасибо получено: 2172
  • ОраторПроект года 3 место1 место в Обучающем конкурсе3 место в Обучающем конкурсе3 местоУчительРазработчикПроект месяца 1 местоПроект года 1 местоПаладин
Виноват, не учёл, что картинка ужмётся, да и про функцию для вставки кода не подумал. Вот тогда хотя бы более чёткая картинка просто на будущее:

2020-04-13160414f.jpg



Для проверки шляпы нужно заменить в "equips()[3]" тройку на другое число, которое соответствует слоту шлема. При таком вот раскладе:

2020-04-13202732.jpg


0 - это оружие, 1 - щит, 2 - шлем, 3 - доспех, 4 - кольцо.
Менять надо в обоих местах, иначе, скрипт станет выдавать ошибку, если в указанном слоте будет пусто.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Phileas, Demon traveler

Переодевание персонажа 4 года 7 мес. назад #116158

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
Alx_Yago пишет:
Виноват, не учёл, что картинка ужмётся, да и про функцию для вставки кода не подумал. Вот тогда хотя бы более чёткая картинка просто на будущее:

2020-04-13160414f.jpg



Для проверки шляпы нужно заменить в "equips()[3]" тройку на другое число, которое соответствует слоту шлема. При таком вот раскладе:

2020-04-13202732.jpg


0 - это оружие, 1 - щит, 2 - шлем, 3 - доспех, 4 - кольцо.
Менять надо в обоих местах, иначе, скрипт станет выдавать ошибку, если в указанном слоте будет пусто.

Спасибо за дополнительную инфу. За одно вспомнил про это меню с Типом экипировки, а то немного не понял к чему ссылается цифра 3, теперь еще лучше понял работу скрипта.
Администратор запретил публиковать записи гостям.

Переодевание персонажа 4 года 7 мес. назад #116160

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2731
  • Победитель конкурсаОратор3 место ГотвУчительКомпозиторОрганизатор конкурсов2 место 1 место в Готв
кстати скрипт проверяет экипировку первого персонажа в базе, поэтому если у тебя будет другой перс то скрипт не сработает.

лучше вместо первого персонажа в БД
$gameActors.actor(1)
использовать лидера партии
$gameParty.leader()
или порядковый номер персонажей в пати
$gameParty.members()[0]
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Alx_Yago

Переодевание персонажа 4 года 7 мес. назад #116174

  • akito66
  • akito66 аватар
  • Вне сайта
  • Светлый дракон
  • В Иркутске пески холодные, но когда ты рядом, мне становится теплее.
  • Сообщений: 850
  • Спасибо получено: 1511
  • ВетеранКомпозиторПроект месяца 3 местоПроект месяца 1 местоПаладинПроект месяца 2 местоОрганизатор конкурсовРазработчикУчительДаритель Стимкея


Есть вот такой плагин переодевания для

МВ. Меняет графику и чара и фейс.

github.com/RexGit/Visual-Equipment.



Последнее редактирование: 4 года 7 мес. назад от akito66.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.255 секунд