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

Предметы влияющие на переменные при их потреблении

Больше
5 года 11 мес. назад - 5 года 11 мес. назад #117063 от Demon traveler
Всем доброго дня.

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

Но, при внесении и редактировании предметов я не заметил, что предметы не могут как либо напрямую влиять на переменные, а единственный способ внесения изменений в переменную возможно только через запуск общего события. Вариант с состоянием не подходит, ибо состояния и так уже снимаются при определенном повышений той или иной переменной (К примеру ГГ поспал восстановил +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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Разработчик 3 место 3 место в Обучающем конкурсе Учитель Оратор 1 место в Обучающем конкурсе Паладин Проект года 3 место Проект года 1 место
Больше
5 года 11 мес. назад #117065 от Alx_Yago
В формуле урона для предмета прописываешь что-нибудь вроде:

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
5 года 11 мес. назад - 5 года 11 мес. назад #117066 от Demon traveler

Alx_Yago пишет: В формуле урона для предмета прописываешь что-нибудь вроде:

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

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


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

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
5 года 11 мес. назад #117067 от Demon traveler
Или надо было как то более полностью

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Ветеран Поддержка Фонда Разработчик Проект месяца 3 место Учитель Оратор Даритель Стимкея 2 место За 2 место на конкурсе маппинга Программист Ruby Паладин
Больше
5 года 11 мес. назад - 5 года 11 мес. назад #117068 от Dmy

Alx_Yago пишет: v[1]=v[1]+3; 0


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

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

(Вместо 1 — номер переменной, вместо 3 — количество, которое добавлять.)
Последнее редактирование: 5 года 11 мес. назад пользователем Dmy.
Спасибо сказали: Alx_Yago

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
5 года 11 мес. назад #117071 от Demon traveler
Хм. Похоже обе формулы работают, и дело было в отсутствие хоть какого то эффекта в окне "Эффекты"

Всем спасибо

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Разработчик 3 место 3 место в Обучающем конкурсе Учитель Оратор 1 место в Обучающем конкурсе Паладин Проект года 3 место Проект года 1 место
Больше
5 года 11 мес. назад #117073 от Alx_Yago

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

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

Страшно неловко, я не проверил, прежде чем написал. Виноват!
А этот вариант работает.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
5 года 11 мес. назад - 5 года 11 мес. назад #117074 от Demon traveler

Alx_Yago пишет:

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

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

Страшно неловко, я не проверил, прежде чем написал. Виноват!
А этот вариант работает.


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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Разработчик 3 место 3 место в Обучающем конкурсе Учитель Оратор 1 место в Обучающем конкурсе Паладин Проект года 3 место Проект года 1 место
Больше
5 года 11 мес. назад #117076 от Alx_Yago

Не беспокойтесь ваш код тоже работает, дело было в окне "Эффекты"


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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
5 года 11 мес. назад #117077 от Demon traveler
Понятно, это полезное дополнение.

Еще раз спасибо.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.110 секунд
Работает на Kunena форум