Светлая Зона и Академия RPG Maker - Светлый - Нужен скрипт (Привязки параметров к переменным) (1/1)

Войти на сайт

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

ТЕМА: Нужен скрипт (Привязки параметров к переменным)

Нужен скрипт (Привязки параметров к переменным) 6 мес. 1 нед. назад #102464

  • Kouta555
  • Kouta555 аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 412
  • Спасибо получено: 384
  • 2 место Проект месяца 2 местоВетеранПроект месяца 1 местоПроект месяца 3 местоПобедитель конкурса
Требуется следующее.
Есть параметры АТК, DEF и т.д. Мне требуется привязать к ним переменные, которые будут соответствовать параметрам и будут изменяться в зависимости от понижения или повышения. То есть, если я прописываю в эвенте увеличение параметра АТК на 1, который был раньше 10, то переменная под номером 21 меняла своё значение на 11. (Желательно переменные под номерами от 21 до 27.)


Для чего это нужно.
Например есть эвент, булыжник, который активируется, если у героя сила равняется 10 или больше.
Если параметр силы 9, то соответственно герой не сможет его сдвинуть, идём убиваем монстра или делаем другое действие, чтобы поднять параметр силы на 1 или больше. Как только сила стала нужного числа идём к булыжнику и сдвигаем его.
Так вот, эти самые переменные как раз и нужны, просто чтоб не делать проверку на параметры героя через эвент, а просто прописать в эвенте булыжника (Переменная 21-АТК=10)

Можно это, конечно реализовать и по другому, но это не удобно и громоздко.

Последнее редактирование: 6 мес. 1 нед. назад от Kouta555.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Нужен скрипт (Привязки параметров к переменным) 6 мес. 1 нед. назад #102465

  • DK
  • DK аватар
  • Вне сайта
  • Бог Светлого
  • Сообщений: 763
  • Спасибо получено: 814
  • РазработчикДаритель СтимкеяПроект месяца 2 местоПроект месяца 1 местоВетеранОратор2 место УчительПрограммистПроект месяца 3 место
Если Dmy возмется за это, то небольшой совет: переопределить метод value класса Game_Variables, который по нужному ид будет возвращать значение характеристики. Просто можно пойти по более сложному пути: обновлять переменную при изменении характеристики.

Напиши свой отзыв: dk-plugins.ru/feedback
Группа ВК: vk.com/dkplugins
Подписываемся в Instagram: instagram.com/denchikidze
Администратор запретил публиковать записи гостям.

Нужен скрипт (Привязки параметров к переменным) 6 мес. 1 нед. назад #102469

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 390
  • Спасибо получено: 538
  • РазработчикПроект месяца 3 местоВетеранУчительПоддержка Фонда
Вот самый простой вариант (для VX Ace):
class Game_Variables
  #первая переменная, в которую будет записан первый параметр (FIRST_PARAM)
  #остальные параметры (до LAST_PARAM) будут записаны в переменные после неё
  FIRST_VAR = 21
 
  #ID героя, параметры которого берутся:
  ACTOR_ID = 1
 
  #параметры такие:
  #0=MHP, 1=MMP, 2=ATK, 3=DEF, 4=MAT, 5=MDF, 6=AGI, 7=LUK
 
  #первый из записываемых параметров
  FIRST_PARAM = 1
  #последний из записываемых параметров
  LAST_PARAM = 7
 
  alias Kouta555_param_vars_access []
 
  def [](variable_id)
    last_var = FIRST_VAR + LAST_PARAM - FIRST_PARAM
    if (variable_id >= FIRST_VAR && variable_id <= last_var) then
      param_id = variable_id - FIRST_VAR + FIRST_PARAM
      return $game_actors[ACTOR_ID].param(param_id)
    else
      return Kouta555_param_vars_access variable_id
    end
  end
end

В строчке «FIRST_VAR=21» указывается первая переменная, в строчке «ACTOR_ID = 1» — номер героя, чьи параметры будут браться.

Если не менять настройки, то значения параметров будут в таких переменных: \V[21] = максимальная магическая энергия, \V[22] = атака, \V[23] = защита, \V[24] = магич. атака, \V[25] = магич. защита, \V[26] = скорость, \V[27] = удача.

P.S. Код у меня работает. Но я плохо знаю Руби, так что буду благодарен комментариям знатоков о том, как улучшить код.

P.P.S. Код скрипта в общественном достоянии согласно CC0. Его можно использовать где угодно, как угодно, никого нигде не указывая. Можно даже говорить, что сами его написали.
«я в чате, значит жив» (PanzerCat)
Последнее редактирование: 6 мес. 1 нед. назад от Dmy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kouta555, Amphilohiy

Нужен скрипт (Привязки параметров к переменным) 6 мес. 1 нед. назад #102475

  • Kouta555
  • Kouta555 аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 412
  • Спасибо получено: 384
  • 2 место Проект месяца 2 местоВетеранПроект месяца 1 местоПроект месяца 3 местоПобедитель конкурса
Прекрасно работает. Спасибо, сколько я тебе должен?

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

Нужен скрипт (Привязки параметров к переменным) 6 мес. 1 нед. назад #102476

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 390
  • Спасибо получено: 538
  • РазработчикПроект месяца 3 местоВетеранУчительПоддержка Фонда
Должен поработать над любой из своих игр. Нисколько, ты что. Это очень простой скрипт. :)
«я в чате, значит жив» (PanzerCat)
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kouta555
Время создания страницы: 0.463 секунд