Добрый день.
Пытаюсь вот сделать одну способность и, для нее мне потребовалось узнать, сколько маны тратится на какую-либо способность.
То есть герой кастует спелл, а триггер должен узнать, сколько маны он потратил. Работать должно для любой способности.
Заранее благодарю)

Принятый ответ

Юнит приводит способность в действие
>> Взять количество текущей маны <<
>> Запустить таймер на 0.0, привязанный к игроку или герою <<
В другом триггере, где таймер истекает - отнимаем от переменной текущую ману и получаем потраченную.
Минус - если заклинание имеет время подготовки то фигня получится. Но можно запускать таймер не на 0 сек для конкретных заклинаний с временем подготовки.

Способ 2
Юнит начинает направлять способность
>> Взять количество текущей маны <<
Присвоить X[юнита] = нет
Ждать до условия "X[юнита] = да"
отнимаем от переменной текущую ману и получаем потраченную.
X[юнита] = да становится в другом триггере с событием "Юнит приводит способность в действие"
этот способ более практичен КАЗАЛОСЬ БЫ, но если юниту например выжгут ману, пока он подготавливает заклинание - то будет дезинфа. Да и нарегенить он успеет прилично, если время подготовки заклинания секунд 5 например.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
24
9 лет назад
Отредактирован Melissa
1
Юнит приводит способность в действие
>> Взять количество текущей маны <<
>> Запустить таймер на 0.0, привязанный к игроку или герою <<
В другом триггере, где таймер истекает - отнимаем от переменной текущую ману и получаем потраченную.
Минус - если заклинание имеет время подготовки то фигня получится. Но можно запускать таймер не на 0 сек для конкретных заклинаний с временем подготовки.

Способ 2
Юнит начинает направлять способность
>> Взять количество текущей маны <<
Присвоить X[юнита] = нет
Ждать до условия "X[юнита] = да"
отнимаем от переменной текущую ману и получаем потраченную.
X[юнита] = да становится в другом триггере с событием "Юнит приводит способность в действие"
этот способ более практичен КАЗАЛОСЬ БЫ, но если юниту например выжгут ману, пока он подготавливает заклинание - то будет дезинфа. Да и нарегенить он успеет прилично, если время подготовки заклинания секунд 5 например.
Принятый ответ
1
24
9 лет назад
1
Melissa, и оба способа дают только приблизительный результат. Например, для героя с высокой скоростью регенерации погрешность будет тем выше, чем быстрее он регенерирует ману. А если еще и совпадет так, что на героя в этот момент наложили какой-то эффект восстановления моны, то "потраченная" мана и вовсе в отрицательные значения уйти может.
0
24
9 лет назад
Отредактирован Melissa
0
prog, нет. 1 способ даёт точный результат, проверено мной лично, я добавлял Soul Ring в свои CM WARS. Время подготовки оговорено
0
9
9 лет назад
0
Melissa:
Юнит начинает направлять способность
>> Взять количество текущей маны <<
>> Запустить таймер на 0.0, привязанный к игроку или герою <<
В другом триггере, где таймер истекает - отнимаем от переменной текущую ману и получаем потраченную.
Минус - если заклинание имеет время подготовки то фигня получится. Но можно запускать таймер не на 0 сек для конкретных заклинаний с временем подготовки.

Способ 2
Юнит начинает направлять способность
>> Взять количество текущей маны <<
Присвоить X[юнита] = нет
Ждать до условия "X[юнита] = да"
отнимаем от переменной текущую ману и получаем потраченную.
X[юнита] = да становится в другом триггере с событием "Юнит приводит способность в действие"
этот способ более практичен КАЗАЛОСЬ БЫ, но если юниту например выжгут ману, пока он подготавливает заклинание - то будет дезинфа. Да и нарегенить он успеет прилично, если время подготовки заклинания секунд 5 например.
А можно описать первый способ более подробно "для тупых"?
0
24
9 лет назад
0
Melissa, он дает точный результат с погрешностью на любые изменения, которые успеют произойти с героем за это время. Это не так просто воспроизвести т.к. нужен идеально точный тайминг, но я сам пользовался таким триггером в свое время и сильно страдал от того, что игроки приловчились читерить и получать отрицательные значения.
0
24
9 лет назад
Отредактирован Melissa
0
Короче вот, у меня же наработка есть, причём муишная, ахах.
Показывает затраченную ману любого юнита
Здесь много ненужного текста про Soul Ring
Так стоп.
Вот что значит не заглядывать давно в редактор.
Событие стоит не начинает направлять, а приводит в действие, у меня в карте.
А это значит что багов вообще не будет. Вот скрины короче.
Во второй триггер добавляются события "Таймер истёк"
Я ещё думал, пока первый пост писал - из-за события "начинает направляет" немало таки багов может вырисоваться в разных ситуациях, как так у меня до сих пор всё идеально было?
Делай как на скринах и будет тебе счастье
Хотя подожди тебе соул ринг необязательно, те же просто узнать сколько мп затратилось, ща переделаю...
prog, хз каким ты там пользовался, но попробуй-ка найти изъян в этом способе.
Загруженные файлы
0
24
9 лет назад
0
Melissa, я бы поискал, но уже много лет как вар у меня на машине не стоит. Скажу только, что целенаправленно поймать момент когда активировался триггер и в него всадить изменение маны довольно сложно, а вот в долгосрочной перспективе это довольно неприятный баг, если на этой мехинике завязано что-то более заметное, чем сама шкала маны.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.