XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > StarCraft (только чтение)> Галактическая академия
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
Харгард
Epic
offline
Опыт: 7,829
Активность:
Динамическая смена стоимости способности и ее кулдауна
Задача: необходимо чтобы временный баф (или характеристика с предмета) изменял стоимость нескольких способностей и их кулдауны.
Никак не могу подобрать подходящий инструмент для этого.

Бихейвьер "баф" и "атрибут" не имеют параметров для управления ценой конкретных абилок.
Можно это сделать апргейдами, но очень уж много мороки с их откатами.
Есть еще замечательный триггер Catalog Field Value Set, но хочется сделать это в РО.

Что я пропустил?
Старый 07.04.2014, 16:19
Duke911

offline
Опыт: 3,907
Активность:
Cамый простой способ это дублировать способность, изменить её как тебе нужно, а затем создать для каждой из них требования: первая видна только когда баффа нет, вторая видна только когда бафф есть. Однако этот способ трудоёмок, если бафать нам нужно много способностей.
Старый 08.04.2014, 07:51
Харгард
Epic
offline
Опыт: 7,829
Активность:
Duke911, этот способ я даже не рассматривал.
Он очень трудоемок (создавать копии для каждой абилки), чреват ошибками и негибок (об этом ниже)
Мне нужно, чтобы стоимость/кд могут иметь разные значения, в зависимости от стаков бафа или количества характеристики героя.

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

Код:
Events
        Unit - Any Unit has MyBehavior change Create
        Unit - Any Unit has  MyBehavior change Destroy
    Local Variables
        Unit = (Triggering unit) <Unit>
        Player = (Owner of Unit) <Integer>
        Behavior = (Triggering behavior) <Game Link - Behavior>
    Conditions
    Actions
        General - If (Conditions) then do (Actions) else do (Actions)
            If
                (Unit has Behavior) == True
            Then
                Catalog - Set value of Abilities MyAbility Cost[0].Cooldown.TimeUse for player Player to "1.5"
            Else
                Catalog - Set value of Abilities MyAbility Cost[0].Cooldown.TimeUse for player Player to "3"
Старый 08.04.2014, 14:06
Duke911

offline
Опыт: 3,907
Активность:
Ну если тебе нужно для вообще всех абилок, то в обычном баффе есть поле которое влияет на все кулдауны впринципе.
Если только для части способностей, то наверное без триггеров не обойтись.
Старый 08.04.2014, 19:04

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 22:54.