Создал предмет, при применении которого на указанную цель (на друзей указывать нельзя), она теряет 75 + 0.5*Разум героя, едениц здоровья и прибавляете их себе. После 8-ми секунд украденное вами здоровье и мана у жертвы вернётся назад (по той же формуле).

Исключение если цель погибла - вы ни чего не возвращаете.

P.S: Проверял способность, спецэффект работает, а свап хп - нет.
Пробовал заменить переменную Swaper на "Выбранный юнит" (то есть тот, на которого наводят - не работает всё равно)
Сами тригеры

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

Что такое "Дебаг"
на экран выводят отладочные сообщение. Когда триггер срабатывает, ты об этом не знаешь. Ты не видишь этого, тк все действия внутри игры. А сработал ли триггер, мб вообще не работает (пример забыл включить триггер)? Поэтому выводят на экран. Или другая ситуация: почему то условие не работает, проверяем прокатило ли условие: тоже самое в блоке условия вставляют действие вывода сообщения игроку.
if b then //если условие b прокатило
 выводим сообщение "прокатило условие b"
else //иначе 
 выводим сообщение "условие b не прокатило" //будем знать что триггер хоть работает
endif
будем знать что условия прокатывает или нет. Мб у вас условие багованное, один раз на jass такое написал, обрывалось или не работало. Сообщение никакого не выводило.

Или допустим нужно знать какие числа или строки у вас, как считает, считает ли вообще? тоже выводишь на экран результат строки или число
где его взять
в триггере в действии в разделе "игра" можно сообщение выводить

так можешь еще проверять переменные вариковские. например, если не знаешь что за переменная. скажем какой юнит хранится под этой переменной как trigger unit. выводи имя юнита на экран, выведут название типа например "пехотинец", который вызвал каст (будешь знать что вызвал футман а не бугай. И значит trigger unit - кастер итд). про потоки это мой анализ, но как бы локалки делай как в статье про локи, это с опытом придет
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
2
5 лет назад
Отредактирован Dimetrius
0
Extremator:
Вообще эту способность, основу взял из ролика челика, на ютубе смотрел как он делает спел, который лечит раз в секунду определённое количество (например 50 + 0.2*Разум героя).
И тут я подумал, может сделать свап, прикольный предмет, не разу не видел такой ещё в кастомках, может где-то и есть, (именно предмет, который отбирает хп и ману, а после возвращает), чисто так для сражения разнообразия решил добавить.
1
27
5 лет назад
Отредактирован MpW
1
пример давно объяснял новичку как работают переменные. это не глобальные переменные а вар. константы.

что не понятно спрашивай. статья Hate вообще то для новичков. со временем привыкнешь, и сам на jass потом перейдешь
Загруженные файлы
0
2
5 лет назад
Отредактирован Dimetrius
0
Steal nerves:
пример давно объяснял новичку как работают переменные. это не глобальные переменные а вар. константы.

что не понятно спрашивай. статья вообще то для новичков
Что такое "Дебаг" и где его взять? . - .
0
27
5 лет назад
Отредактирован MpW
0
Что такое "Дебаг"
на экран выводят отладочные сообщение. Когда триггер срабатывает, ты об этом не знаешь. Ты не видишь этого, тк все действия внутри игры. А сработал ли триггер, мб вообще не работает (пример забыл включить триггер)? Поэтому выводят на экран. Или другая ситуация: почему то условие не работает, проверяем прокатило ли условие: тоже самое в блоке условия вставляют действие вывода сообщения игроку.
if b then //если условие b прокатило
 выводим сообщение "прокатило условие b"
else //иначе 
 выводим сообщение "условие b не прокатило" //будем знать что триггер хоть работает
endif
будем знать что условия прокатывает или нет. Мб у вас условие багованное, один раз на jass такое написал, обрывалось или не работало. Сообщение никакого не выводило.

Или допустим нужно знать какие числа или строки у вас, как считает, считает ли вообще? тоже выводишь на экран результат строки или число
где его взять
в триггере в действии в разделе "игра" можно сообщение выводить

так можешь еще проверять переменные вариковские. например, если не знаешь что за переменная. скажем какой юнит хранится под этой переменной как trigger unit. выводи имя юнита на экран, выведут название типа например "пехотинец", который вызвал каст (будешь знать что вызвал футман а не бугай. И значит trigger unit - кастер итд). про потоки это мой анализ, но как бы локалки делай как в статье про локи, это с опытом придет
Принятый ответ
2
26
5 лет назад
2
Всё описанное, конечно, хорошо, но следует указать новичку на все минусы реализации триггера.
Во-первых, из-за глобальных переменных предмет на карте может быть лишь один, при этом его перезарядка не должна сбрасываться после передачи другому герою, который сразу же применит его, переписав переменные.
Во-вторых, здоровье и мана не поднимутся выше максимума, то есть возможна ситуация, когда, например, герой без 50 хп свапает у юнита 100 хп, получает максимум здоровья, а через 8 секунд у него отнимутся 100 хп.
В-третьих, прибавку здоровья и маны надо поставить выше Ждать 8 сек.
В-четвёртых, ты не удалишь оба созданных спецэффекта, поставив два раза Удалить (Последний спецэффект). Так ты два раза удаляешь второй.

В первом случае следовало бы сделать триггер для нескольких героев одновременно, но это очень много информации, потому что вариантов реализации тоже много: через локальные переменные, через хеш-таблицу, через массивы и более экзотические. Просто конкретно для твоего случая с твоей первой триггерной способностью достаточно самым первым действием поставить Триггер - Отключить триггер (Этот триггер), а в самый конец Триггер - Включить триггер (Этот триггер), так ты не прервёшь действия самого триггера, а отключишь его срабатывание до включения.
Во втором случае можно было бы попробовать похимичить со способностью Похищение жизни/маны, поставив там интервал пополнения 0.01 сек., запуская таймер на 0.75+(половина Разума разделить на сто), но сойдёт и так, как у тебя сейчас.
В третьем понятно, но в триггерах способностей лучше не использовать Ждать, так как тикает и в состоянии паузы игры, меньше 0.10 сек. не задать, Ждать и Ждать (игровое время) различаются по скорости, в итоге при смене скорости игры действие способности будет немного различаться, что в некоторых случаях очень критично.
В четвёртом нужно сохранять спецэффекты в переменные.
2
26
5 лет назад
2
8gabriel8:
Всё описанное, конечно, хорошо, но следует указать новичку на все минусы реализации триггера.
Ооо, и кто же это сделает?! кто? кто этот смельчак? ктоооо жеее ооооон?????
тык
Серьёзно, КТО ?!
из-за глобальных переменных предмет на карте может быть лишь один
Причина не в типе используемых переменных, а в реализации.
Это большая разница.
1
26
5 лет назад
1
Extremator, что за сарказм?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.