Unreal Engine 4
https://uengine.ru/forum/

Откат скилов
https://uengine.ru/forum/viewtopic.php?f=3&t=21670
Страница 1 из 2

Автор:  logan [ 05 май 2019, 12:22 ]
Заголовок сообщения:  Откат скилов

К примеру перс имеет 5 скилов. Как оптимизировано сделать Cooldawn этих скилов? То есть, если бы были виджеты можно просто в элементе виджета ставить delay и проблем нет, создавая массив из этих элементов. Но если виджет не требуется. Каким типом создавать элемент массива? создавать массив акторов для этого? просто акторы используются при размещении их в сцене, а мне это не нужно. Можно ли это как-то иначе сделать(вся логика пишется в бп компоненте).

Автор:  Prytaleks [ 06 май 2019, 19:14 ]
Заголовок сообщения: 

это должен быть массив флоат, содержащий в себе значение задержки для каждого скила, этот массив может быть элементом структуры, также задержка для каждого скила может быть создана в логике с помощью select, тогда можно использовать переменую типа enumeration.
Также желательно использовать таймер, например для того, что бы можно было сохранить текущее время отката скилы, при выходе из игры.

Автор:  logan [ 07 май 2019, 09:44 ]
Заголовок сообщения: 

Prytaleks спс, но я не могу понять, как тогда для каждого элемента просчитывать откат одной функцией. Они ведь одновременно и с различными переменными откатываются.

Автор:  logan [ 07 май 2019, 14:46 ]
Заголовок сообщения: 

Изображение
Изображение
в фукции Set_Skill_Ready я ставлю set array element на 0. Но на ее инпуте должен быть свой индекс массива скилов, который не получится задавать. Если я правильно понял.

Автор:  Prytaleks [ 07 май 2019, 17:56 ]
Заголовок сообщения: 

вот пару вариантов как это должно выглядеть, это может выглядить иначе при работе с структурой.

Изображение

Автор:  logan [ 07 май 2019, 18:48 ]
Заголовок сообщения: 

Prytaleks ну с получением этих значений у меня нет (было бы стыдно спрашивать). Проблема в функции которую вызывает таймер. Как в ней задать индекс, функция же вызывается без возможности добавить входное значение (index в данном случае). Получается этот способ не подходит или я ошибаюсь?
Изображение

Автор:  Prytaleks [ 07 май 2019, 20:03 ]
Заголовок сообщения: 

у тебя по логике что ты что то хочешь записать в массив, но тебе ведь нужно получить, а не записать.

Автор:  logan [ 07 май 2019, 21:07 ]
Заголовок сообщения: 

Задача - при использовании скила начинать обратный отсчет для каждого скила. Запустил 1 потом 2 идут отсчеты одновременно.
Каков алгоритм в принтах?

Автор:  Prytaleks [ 07 май 2019, 23:24 ]
Заголовок сообщения: 

да, точно, видимо нужно испльзовать отдельный таймер, или таймлайн, или кривую, или иную логику, для каждого скила отдельно.

Алгоритм здесь может быть весьма разнообразным. Но суть по идее одна - хранить время отката и обрабатывать его, для каждого скила отдельно, тоесть понадобится массив для хранение данных, и массив(или select нода) с данными о максимальном времени для отката, можно еще добавить массив с булевыми переменными которые будут отвечать в кд скил или нет, но это не обязательно.
Сделай структу в которой будет, имя скила(enum), макс время для КД скила(флоат), время текущеее КД(флот), булевая переменная отвечающая что скил в КД, и попробуй поработать с ней.
Также это могут быть и отдельные массивы, если с структурами неудобно, или компонент, с нужными переменными. Массивы в структуре делать в данном случае не нужно, потом всю структуру проще сделать массивом.

Минимальный вариант, это массив с текущем временем(с ним и работать), и селект с параметрами в логике, ну и без основ примитивной математики здесь не обойтись.

p.s. Пяток таймлайнов, и почти ничего выдумывать не нужно, даже массив с макс временем для КД скилов не нужен. Это может быть сразу задано в свойствах таймлайна, также пусть таймлайн сразу возвращает от 0 до 100, где 100 это готовность скила. Это понадобится для анимации КД скила.
Перед выходом из игры получай текущие значения времени таймлайнов, и запускай таймлайн с нужного времени, при входе в игру, если требуется. Если таймлайн работает, значит скил в КД.

Изображение

Автор:  logan [ 08 май 2019, 07:44 ]
Заголовок сообщения: 

Prytaleks спс
Цитата:
можно еще добавить массив с булевыми переменными которые будут отвечать в кд скил или нет

в принципе до написания вопроса так и было сделано для каждого скила отдельно, думал можно более оптимизировано сделать.
Без знаний С++ скорее всего не выйдет.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/