Войти на сайт

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

ТЕМА: Предметы влияющие на переменные при их потреблении

Предметы влияющие на переменные при их потреблении 4 года 6 мес. назад #117063

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
Всем доброго дня.

У меня в проекте, как думаю и у многих других, помимо стандартных характеристик таких как "Атака" "Ловкость" и т.д. имеются свои, к примеру "Репутация" и "Усталость". Сделанные они, а также другие дополнительные характеристики в виде переменных, и работают исправно - Усталый герой имеет дебаф состояние, а хорошая репутация дает пройти туда, куда кого попало не пускают.

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

1. Для каждого предмета который вносит изменение в переменную сделать отдельное Общее событие, ибо каждый предмет приносит разное количество изменении. К примеру Вино +1 Опьянению а Крепкая настойка +3 к Опьянению.

2. Создать общее событие которое будет при запуске предметом, определять какой предмет был использован и соответственно какая переменная получит плюс или минус и т.д. Но я не знаю как это реализовать, скорее через скрипт который бы определял какой предмет был употреблен, если конечно такое возможно, ибо обычное условие проверяет только наличие предмета в партии.

P.S Знаю что нельзя задавать больше одного вопроса за раз, но это по большей части дополнение к текущему. Насколько сильно нагружает игру количество одновременно работающих общих событии? На данном примере мне лучше сделать условно 10-15 событии каждому предмету который вносит изменение какой либо переменной, или лучше создать 1-о событие которое заменит эти 10-15 событии.

P.P.S На всякий случай, пример того как это должно работать
- Персонаж выпивает предмет Кофе, +30 к Бодрости(Переменная)
- Персонаж выпивает предмет Зелье Бодрости, +100 к Бодрости(Переменная)
- Персонаж выпивает предмет Вино, +1 к Опьянению(Переменная)
- Персонаж получил предмет Грамота, +10 к Репутации(Переменная) - Хотя тут наверное просто прибавку сделаю при её выдаче, ибо все равно должна прибавить один раз при получении.

Версия Rpg Maker MV 1.6.1

Всем спасибо за внимание.
Последнее редактирование: 4 года 6 мес. назад от Demon traveler. Причина: Чуть чуть грамматику поправил
Администратор запретил публиковать записи гостям.

Предметы влияющие на переменные при их потреблении 4 года 6 мес. назад #117065

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

v[1]=v[1]+3; 0

Это увеличит переменную1 на три, и потом нанесёт/вылечит (в зависимости от того, что поставишь) 0 урона.
Администратор запретил публиковать записи гостям.

Предметы влияющие на переменные при их потреблении 4 года 6 мес. назад #117066

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
Alx_Yago пишет:
В формуле урона для предмета прописываешь что-нибудь вроде:

v[1]=v[1]+3; 0

Это увеличит переменную1 на три, и потом нанесёт/вылечит (в зависимости от того, что поставишь) 0 урона.

Не работает, персонаж не потребляет предмет, в Область действия использовал три варианта: Союзник, Вся партия, Пользователь

11 - номер переменной бодрость

Один урон я сделал так как показалось что персонаж не употребляет из-за него, или попытки вылечить здорового персонажа
h85b9ab8.png
Последнее редактирование: 4 года 6 мес. назад от Demon traveler. Причина: Чуть чуть грамматику поправил
Администратор запретил публиковать записи гостям.

Предметы влияющие на переменные при их потреблении 4 года 6 мес. назад #117067

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
Или надо было как то более полностью
2.png
Администратор запретил публиковать записи гостям.

Предметы влияющие на переменные при их потреблении 4 года 6 мес. назад #117068

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2478
  • ПаладинРазработчикЗа 2 место на конкурсе маппингаОраторВетеранПоддержка ФондаУчитель2 место Программист RubyПроект месяца 3 место
Alx_Yago пишет:
v[1]=v[1]+3; 0

Попробуйте вместо этого написать так:

$gameVariables.setValue(1, $gameVariables.value(1) + 3); 0

(Вместо 1 — номер переменной, вместо 3 — количество, которое добавлять.)
Последнее редактирование: 4 года 6 мес. назад от Dmy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Alx_Yago

Предметы влияющие на переменные при их потреблении 4 года 6 мес. назад #117071

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

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

Предметы влияющие на переменные при их потреблении 4 года 6 мес. назад #117073

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

$gameVariables.setValue(1, $gameVariables.value(1) + 3); 0
Страшно неловко, я не проверил, прежде чем написал. Виноват!
А этот вариант работает.
Администратор запретил публиковать записи гостям.

Предметы влияющие на переменные при их потреблении 4 года 6 мес. назад #117074

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
Alx_Yago пишет:
Попробуйте вместо этого написать так:

$gameVariables.setValue(1, $gameVariables.value(1) + 3); 0
Страшно неловко, я не проверил, прежде чем написал. Виноват!
А этот вариант работает.

Не беспокойтесь ваш код тоже работает, дело было в окне "Эффекты"
Последнее редактирование: 4 года 6 мес. назад от Demon traveler. Причина: Правка
Администратор запретил публиковать записи гостям.

Предметы влияющие на переменные при их потреблении 4 года 6 мес. назад #117076

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

Не только. Неожиданно при тестах оказалось (реально я этого до сих пор не знал), что мой вариант не работает, если нужной переменной не было присвоено изначально хоть какого-то значения. То есть, для нормальной работы надо, чтобы в какой-то момент игры её приравняли хотя бы к нулю.
Администратор запретил публиковать записи гостям.

Предметы влияющие на переменные при их потреблении 4 года 6 мес. назад #117077

  • Demon traveler
  • Demon traveler аватар
  • Вне сайта
  • Познающий
  • Сообщений: 16
Понятно, это полезное дополнение.

Еще раз спасибо.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.193 секунд