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

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

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

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

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

так можешь еще проверять переменные вариковские. например, если не знаешь что за переменная. скажем какой юнит хранится под этой переменной как trigger unit. выводи имя юнита на экран, выведут название типа например "пехотинец", который вызвал каст (будешь знать что вызвал футман а не бугай. И значит trigger unit - кастер итд). про потоки это мой анализ, но как бы локалки делай как в статье про локи, это с опытом придет



Просмотров: 102

» Лучшие комментарии


XGM Bot #1 - 1 неделю назад 0
Похожие вопросы:

» ответ
Было на вин 10, проверь апдейты винды и драйверов, переставь или откатись - должно помочь.
» ответ
Steal nerves:
В натуре баг такой? Проверил только что. Улучшение эльфам можно не делать на доспехи. Короче эльфы читеры
» ответ
Потому что вы блокируете мультишот. Запрет спеллбука не запрещает способности, находящиеся в нем. Но запрет самих способностей, внезапно, запрещает их.
» ответ
Автокастовые способности не работают у активных предметов.Сам каст абилку нужно делать триггерно дамиком, а способностях предмета пустышка через Канал
» ответ
Прочитал в другой теме, что это и правда нереально, стандартный ИИ не знает канал.

prog #2 - 1 неделю назад 2
Выбранный юнит это совсем другое и никакого отношения не имеет к цели применения способности.
Dimetrius #3 - 1 неделю назад (отредактировано ) 0
prog:
Выбранный юнит это совсем другое и никакого отношения не имеет к цели применения способности.
Я просто не нашёл другой альтернативы, там нет что-то вроде "Выбранная цель способности" или "Выбранная цель предмета"
Steal nerves #4 - 1 неделю назад (отредактировано ) 1
Dimetrius, прог намекает там переменную "выбранный" поменять на "цель способности" или как там называется. читай подсказки под переменными, они срабатывают по событию
Dimetrius #5 - 1 неделю назад (отредактировано ) 0
Steal nerves:
Dimetrius, прог намекает там переменную "выбранный" поменять на "цель способности" или как там называется. читай подсказки под переменными, они срабатывают по событию
Есть альтернатива, как можно сделать чтоб работал спел, может без переменной как-то обойтись, или ещё что-то?
Раз 10 уже пролистал все возможные варианты которые выдаёт тригер, друг сказал "Попробуй через Jass", а я вообще не разбираюсь в нём.

» Вот все возможные варианты
прикреплены файлы
Extremator #6 - 1 неделю назад (отредактировано ) 0
Dimetrius, там есть юнит триггера или юнит-инициатор, а вот выше него на 2-3 строки есть ЦЕЛИ, одна из них - цель приказа" (работает при событиях приказов), а вторая - **цель каста способности* (работает при событиях каста).
Вот тебе и нужен тот юнит, который является в данной ситуации целью каста.
Факт 1: Заменить "ждать" на второе, которое ждёт "игровое время". Вэйт сам по себе далёк от идеала, но обычный вэйт будет работать не по игровому времени, а по реальному (это часто вызывает неожиданные баги).
Факт 2: Создаваемые таким образом спецэффекты нужно своевременно удалять, а не так как ты это делаешь. Создал и тут же удалил. Либо создал, записал, подождал, и только потом удалил (+обнуление переменной).
Факт 3: Уменьшая ХП юнита ты можешь его случайно убить... нужно делать проверку и на это тоже. А такая смерть не считается убийством, а нельзя отловить кто убил юнита (напрямую офк).
» Если вкрадце...
Первое - записал в переменную сколько надо отнять.
Второе - если ХП юнита меньше чем записанное число, то записываешь новое
лучше записать что-то смежное... например "текущее ХП юнита - 1.50"
тогда у юнита останется 1.5хп
Третье - отнимаешь столько ХП, сколько записал ранее.

. . .

Dimetrius, у тебя это Реакция на событие - ПУСТОЕ МЕСТО
Mechanicus #7 - 1 неделю назад 6
Dimetrius, меньше таким руссификатором пользуйся.
Extremator #8 - 1 неделю назад (отредактировано ) 1
Dimetrius:
друг сказал "Попробуй через Jass"
Такой себе друг )))
PT153 #9 - 1 неделю назад 1
Третье - отнимаешь столько ХП, сколько записал ранее.
Можно урон наносить.
Dimetrius #10 - 1 неделю назад (отредактировано ) 0
Extremator:
Dimetrius, там есть юнит триггера или юнит-инициатор, а вот выше него на 2-3 строки есть ЦЕЛИ, одна из них - цель приказа" (работает при событиях приказов), а вторая - **цель каста способности* (работает при событиях каста).
Вот тебе и нужен тот юнит, который является в данной ситуации целью каста.
Факт 1: Заменить "ждать" на второе, которое ждёт "игровое время". Вэйт сам по себе далёк от идеала, но обычный вэйт будет работать не по игровому времени, а по реальному (это часто вызывает неожиданные баги).
Факт 2: Создаваемые таким образом спецэффекты нужно своевременно удалять, а не так как ты это делаешь. Создал и тут же удалил. Либо создал, записал, подождал, и только потом удалил (+обнуление переменной).
Факт 3: Уменьшая ХП юнита ты можешь его случайно убить... нужно делать проверку и на это тоже. А такая смерть не считается убийством, а нельзя отловить кто убил юнита (напрямую офк).
» Если вкрадце...
Первое - записал в переменную сколько надо отнять.
Второе - если ХП юнита меньше чем записанное число, то записываешь новое
лучше записать что-то смежное... например "текущее ХП юнита - 1.50"
тогда у юнита останется 1.5хп
Третье - отнимаешь столько ХП, сколько записал ранее.

. . .

Dimetrius, у тебя это Реакция на событие - ПУСТОЕ МЕСТО
Ни шо не понял, по правде говоря.
Я до этого вообще с переменными не работал, можно сказать первый день вот только что начал, до этого не делал абилки вообще ни разу через тригеры.
Если не сложно, можешь скинуть что надо делать, что-то вроде:
Юнит -- Применяет способность
 Уловие: ...
И тому подобное, либо вкратце.
Extremator #11 - 1 неделю назад (отредактировано ) 0
Dimetrius:
Скачивал от сюда, парень в какой-то теме писал, говорил, что всё ок, и отзывы были положительные.
Они все кривые... Но это лучше чем ничего... если на дворе 2007й... интернет ещё до сих пор не у всех есть, а у тебя из вариантов только:
смартфон + опера мини + сайт промт
бот переводчик в ICQ
словарь по англ. со школы
и всё...
Тогда да, такой руссификатор и правда помогает наладить понимание редактора.
PT153 #13 - 1 неделю назад 3
Только FNWE более-менее нормально локализован, все остальные лучше не использовать.
Extremator #14 - 1 неделю назад (отредактировано ) 0
PT153:
Можно урон наносить.
Можно, если число не должно быть статичным.
А если сделать через урон, то можно и лечить именно на столько, сколько цель впитает урона (больше/меньше номинала). И/или вкрутить лимиты.
Dimetrius #15 - 1 неделю назад (отредактировано ) 0
Extremator:
Вообще эту способность, основу взял из ролика челика, на ютубе смотрел как он делает спел, который лечит раз в секунду определённое количество (например 50 + 0.2*Разум героя).
И тут я подумал, может сделать свап, прикольный предмет, не разу не видел такой ещё в кастомках, может где-то и есть, (именно предмет, который отбирает хп и ману, а после возвращает), чисто так для сражения разнообразия решил добавить.
Steal nerves #16 - 1 неделю назад (отредактировано ) 1
пример давно объяснял новичку как работают переменные. это не глобальные переменные а вар. константы.

что не понятно спрашивай. статья Hate вообще то для новичков. со временем привыкнешь, и сам на jass потом перейдешь
прикреплены файлы
Dimetrius #17 - 1 неделю назад (отредактировано ) 0
Steal nerves:
пример давно объяснял новичку как работают переменные. это не глобальные переменные а вар. константы.

что не понятно спрашивай. статья вообще то для новичков
Что такое "Дебаг" и где его взять? . - .
Steal nerves #18 - 1 неделю назад (отредактировано ) 0

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

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

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

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