Полезное

Мы Вконтакте

Discord канал

#
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 1
Приветствую всех! Знающие люди, можете помочь с созданием логики для характеристик персонажа в рпг игре.
Всего будет 4 характеристики:
1)Сила(Максимальный запас хп и регенерация их же);
2)Ловкость(Скорость бега, шанс уклонения, скорость атаки);
3)Интелект(Максимум маны и регенерация её);
4)Меткость(Думаю тут и так всё ясно).
Заранее спасибо!)
Аватара пользователя
Пользователь
Сообщения: 12
Перед тем как читать все ниженаписанное советую посмотреть видеоуроки Флакки (в частности все уроки по блупринтам - их там около 50) и записи его стримов ( в особенности "урок по созданию жизненных показателей" и "стрим по созданию survival shooter" - в нем есть инфа по созданию зачатков ролевой системы). на все вопросы буду отвечать предельно кратко т.к. мне влом писать несколько страниц текста. Если ты совсем новичок и толком не знаком с работой переменных - я еще раз советую прислушаться к написанному выше, т.к. написанное ниже тебе не даст никакой полезной информации. Итак:
Создай актор компонент. в нем пропиши всю логику.
1) Если у тебя есть простейшая логика поведения хп и переменная "max hp" (ну или с другим названием, но с той же сутью) - то просто задаешь переменную сила (интеджер), которая ссылается на "max hp" и увеличивает ее.
2) С ловкостью всё несколько сложнее. По идее: для увеличения скорости бега надо делать каст на чарактера, на его мувмент компонент и взаимодействовать с его max walk speed. с шансом уклонения (тут уже чисто теоретически) надо создать рандом флоат в заданном интервале чисел где 0 - это действие не прошло, а 10 - это действие прошло. Далее запустить рандомизатор в заданном интервале. при росте ловкости этот интервал нужно сокращать - т.е. при шансе попадания в 50% интервал будет от 5 до 10, при 70% 0 от "7 до 10". со скоростью атаки нужно создать таймер атаки с флоат переменной "hit per sec" и при росте ловкости эту переменную увеличивать
3) см. пункт 1 - всё абсолютно идентично
4) Принцип по идее тот же, что и у уклонения.
Аватара пользователя
Пользователь
Сообщения: 4069
Zrufus писал(а):
Приветствую всех! Знающие люди, можете помочь с созданием логики для характеристик персонажа в рпг игре.
Всего будет 4 характеристики:
1)Сила(Максимальный запас хп и регенерация их же);
2)Ловкость(Скорость бега, шанс уклонения, скорость атаки);
3)Интелект(Максимум маны и регенерация её);
4)Меткость(Думаю тут и так всё ясно).
Заранее спасибо!)


для начала создай массив типа интежер или флоат, где значение по индексу 0 это будет сила, индекс 1 - ловкость и т.д., меняй значения в этом массиве при повышении уровня например, получай значение из массива, и производи нужные действия в зависимости от данных в этом массиве. например ускорить анимацию, например ловкость / 4 + 1, полученное значение подключить к Play Rate в аним БП.
Аватара пользователя
Пользователь
Сообщения: 237
Каждая характеристика это наследник класса Skills, например.
При увеличении характеристики (сила, например) метод, управляющий увеличением (изменением) силы действует на максимальных ХП и скорость регенерации.
То есть когда ты меняешь характеристику силы у тебя сразу меняется и ХР и скорость регенерации.
Так же работают и все остальные характеристики (скилы в смысле).
Почему от родительского Skills? Да потому что вся механика (изменение) скила заложена там. Ты просто вызываешь метод Force::ChangeSkill(int newAmount), например.
И если это метод вызван у скила Force (сила), то внутри переопределенного метода (предполагается что ты знаешь что такое пепреопределение) происходит коррекция хп и скорости регенерации, а если вызываешь тот же метод у другого скила, то внутри метода меняются другие характеристики.
Плюс величина влияния скила на характеристики перса может меняться от текущего значения скила. Но это тоже закладывается в сам метод, отвечающий за изменение скила.
Это вкратце.
Такую механику можно делать как на блупринтах, так и на плюсах.

Можно не использовать наследования и переопределение, если ты не понимаешь что это такое. Можно сделать манагера скилов (SkillManager), который управляет скилами и уже в нем вызывать методы изменения конкретных скилов (ChangeForce(int) и т.д.). Но сами методы работают как я сказал выше: скил управляет по факту параметрами игрока. Тогда все расчеты внутри логики игрока не меняются.


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница