Войти на сайт

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

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

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

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


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

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

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

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

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

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2477
  • ПаладинПрограммист RubyПоддержка ФондаВетеранПроект месяца 3 местоРазработчикЗа 2 место на конкурсе маппингаУчительОратор2 место
Вот самый простой вариант (для 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. Его можно использовать где угодно, как угодно, никого нигде не указывая. Можно даже говорить, что сами его написали.
Последнее редактирование: 6 года 1 мес. назад от Dmy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kouta555, Amphilohiy

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

  • Kouta555
  • Kouta555 аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 576
  • Спасибо получено: 835
  • Победитель конкурсаОраторПроект месяца 2 местоПроект месяца 1 местоРазработчикПроект месяца 3 местоВетеран2 место
Прекрасно работает. Спасибо, сколько я тебе должен?
Администратор запретил публиковать записи гостям.

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

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2477
  • ПаладинПрограммист RubyПоддержка ФондаВетеранПроект месяца 3 местоРазработчикЗа 2 место на конкурсе маппингаУчительОратор2 место
Должен поработать над любой из своих игр. Нисколько, ты что. Это очень простой скрипт. :)
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kouta555
Время создания страницы: 0.173 секунд