- Сообщений: 20
- Спасибо получено: 0
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
Предметы влияющие на переменные при их потреблении
- 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
Всем спасибо за внимание.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
v[1]=v[1]+3; 0
Это увеличит переменную1 на три, и потом нанесёт/вылечит (в зависимости от того, что поставишь) 0 урона.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Demon traveler
-
Автор темы
- Не в сети
- Забанен
-
- Сообщений: 20
- Спасибо получено: 0
Alx_Yago пишет: В формуле урона для предмета прописываешь что-нибудь вроде:
v[1]=v[1]+3; 0
Это увеличит переменную1 на три, и потом нанесёт/вылечит (в зависимости от того, что поставишь) 0 урона.
Не работает, персонаж не потребляет предмет, в Область действия использовал три варианта: Союзник, Вся партия, Пользователь
11 - номер переменной бодрость
Один урон я сделал так как показалось что персонаж не употребляет из-за него, или попытки вылечить здорового персонажа
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Demon traveler
-
Автор темы
- Не в сети
- Забанен
-
- Сообщений: 20
- Спасибо получено: 0
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Alx_Yago пишет: v[1]=v[1]+3; 0
Попробуйте вместо этого написать так:
$gameVariables.setValue(1, $gameVariables.value(1) + 3); 0
(Вместо 1 — номер переменной, вместо 3 — количество, которое добавлять.)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Demon traveler
-
Автор темы
- Не в сети
- Забанен
-
- Сообщений: 20
- Спасибо получено: 0
Всем спасибо
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Страшно неловко, я не проверил, прежде чем написал. Виноват!Попробуйте вместо этого написать так:
$gameVariables.setValue(1, $gameVariables.value(1) + 3); 0
А этот вариант работает.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Demon traveler
-
Автор темы
- Не в сети
- Забанен
-
- Сообщений: 20
- Спасибо получено: 0
Alx_Yago пишет:
Страшно неловко, я не проверил, прежде чем написал. Виноват!Попробуйте вместо этого написать так:
$gameVariables.setValue(1, $gameVariables.value(1) + 3); 0
А этот вариант работает.
Не беспокойтесь ваш код тоже работает, дело было в окне "Эффекты"
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Не беспокойтесь ваш код тоже работает, дело было в окне "Эффекты"
Не только. Неожиданно при тестах оказалось (реально я этого до сих пор не знал), что мой вариант не работает, если нужной переменной не было присвоено изначально хоть какого-то значения. То есть, для нормальной работы надо, чтобы в какой-то момент игры её приравняли хотя бы к нулю.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Demon traveler
-
Автор темы
- Не в сети
- Забанен
-
- Сообщений: 20
- Спасибо получено: 0
Еще раз спасибо.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
