Приветствую всех. Решил я немного поработать в WE WarCraft 3. Трудностей не возникало, пока я не решил создать способность с периодическим эффектом.
Способность:
Azure Roots, создана на основе Entangling Roots (первая способность героя-кентавра у эльфов).
Уровней - 3.
Урон в секунду - 0.
Длительность - 12/24/36.
Кулдаун - пока 1 (для тестов).
Все остальное без изменений.
Azure Roots, создана на основе Entangling Roots (первая способность героя-кентавра у эльфов).
Уровней - 3.
Урон в секунду - 0.
Длительность - 12/24/36.
Кулдаун - пока 1 (для тестов).
Все остальное без изменений.
Далее я стал использовать триггеры. Мне нужно, чтобы каждую секунду действия способности цели наносился урон в размере 2% от максимального запаса цели. Я создал триггер с использованием локальных переменных. Вот скриншоты:
При касте на 1 цель (то есть на время действия эффекта способность не кастуется на другие цели) все хорошо. Но вот если во время действия способности на одну цель скастовать способность на другую цель, эффект неполон: обоим целям наносится урон, но через некоторое время в один и тот же момент урон перестает наносится обоим целям, хотя он должен все еще наноситься. В чем же ошибка, друзья?
Принятый ответ
а нафига так много ифов?
если каждый лвл даёт по 12 пробегов цикла то не проще ли написать
цикл от 1 до 12*лвл способности
только лвл способности в локалке хранить надо
ошибка в том что в цикле используется глобальная переменная A
когда триггер работает он каждую секунду увеличивает значение A на 1
если триггер был запущен дважды то каждую секунду A увеличивается на 2
как только A достигает лимита(12*лвл способности) все циклы использующие переменную A завершаются
для того чтобы избавиться от этого бага надо юзать локальные переменные
у нас есть куча статей по локалкам, циклам, и прочей фигне
если каждый лвл даёт по 12 пробегов цикла то не проще ли написать
цикл от 1 до 12*лвл способности
только лвл способности в локалке хранить надо
ошибка в том что в цикле используется глобальная переменная A
когда триггер работает он каждую секунду увеличивает значение A на 1
если триггер был запущен дважды то каждую секунду A увеличивается на 2
как только A достигает лимита(12*лвл способности) все циклы использующие переменную A завершаются
для того чтобы избавиться от этого бага надо юзать локальные переменные
у нас есть куча статей по локалкам, циклам, и прочей фигне
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. nvc123
если каждый лвл даёт по 12 пробегов цикла то не проще ли написать
цикл от 1 до 12*лвл способности
только лвл способности в локалке хранить надо
ошибка в том что в цикле используется глобальная переменная A
когда триггер работает он каждую секунду увеличивает значение A на 1
если триггер был запущен дважды то каждую секунду A увеличивается на 2
как только A достигает лимита(12*лвл способности) все циклы использующие переменную A завершаются
для того чтобы избавиться от этого бага надо юзать локальные переменные
у нас есть куча статей по локалкам, циклам, и прочей фигне