Добавлен Enemy1PK
Почему когда я добавляю любое (if/then/else) в этот триггер, карта перестаёт запускаться?
Скил - временное добавление ловкости в зависимости от уровня способности, я хочу сделать еще чтобы пока старый бонус активен, новый не добавлялся.
Или чтобы он не добавлялся но обновил время действия бонуса.
Скил - временное добавление ловкости в зависимости от уровня способности, я хочу сделать еще чтобы пока старый бонус активен, новый не добавлялся.
Или чтобы он не добавлялся но обновил время действия бонуса.
Даже если все действия запихнуть в (if/then/else) карта перестает запускаться.
Принятый ответ
что-то не вижу на скрине как вы пытаетесь запихнуть в if/then/else. Почему должен угадывать
Предположение: ошибка - локальные переменные объявляются всегда первыми. Если там будет какое-то другое действие, а объявление локалок ниже, то это ошибка. Ты вперед, наверное, поставил действие "if/then/else", а потом начал объявлять что-то там,
Предположение: ошибка - локальные переменные объявляются всегда первыми. Если там будет какое-то другое действие, а объявление локалок ниже, то это ошибка. Ты вперед, наверное, поставил действие "if/then/else", а потом начал объявлять что-то там,
правильно
local unit u
if (условие) then
действие
endif
не правильно
if (условие) then
local unit u
endif
Локалки вначале функции всегда объявляются. Можете в код конвентировать и посмотреть.
вейты не юзайте лучше, используйте таймер. Он поток паузит, еще работает во время паузы, и не точен .
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW
Предположение: ошибка - локальные переменные объявляются всегда первыми. Если там будет какое-то другое действие, а объявление локалок ниже, то это ошибка. Ты вперед, наверное, поставил действие "if/then/else", а потом начал объявлять что-то там,
Отредактирован Enemy1PK
но я не понимаю как тут можно реализовать через таймер, если убирать бонус ловкость другим тригером с событием "таймер иссякает" то как таймер можно указать только глобальную переменную, а это вызывает баг даже когда 2 юнита использовали скил.
Отредактирован Raised
и таймер может вызывать на прямую функцию без использования триггеров
впрочем не обязательно использовать локальные таймеры
создай список юнитов
когда юнит применяет твою абилку проверяй есть ли он в списке и если нету то добавляй его в список и атач к нему число 300 (продолжительность бафа)
если он есть в списке то установи значение этого числа = 300
одним глобальным таймером пробегай по списку и уменьшай у каждого юнита это число на 1
если число достигло 0 то удаляй его из списка и отбирай ловкость
nvc123: а ты мне просто мозг взорвал, про таймеры не помешало бы уточнить.
как и про группы, я могу добавить юнита в группу, но как именно к нему присвоить число 300 и потом уменьшать у каждого.
Потому что в условиях есть только бесполезная функция buff равно buff.
надо блин, не то что по символу объяснять, а даже показывать где какие кнопки нажимать чтобы увидеть текстовые варианты тригеров.
тут без наставника не разобраться.
но очевидно что дополнительные ответы не упростят мне задачу.