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/ |