Пытаюсь сделать триггер, который раз в 5 секунд, если юнит находится на определённой высоте и выше, будет получать минус -30% здоровья. В условиях нашёл только один подходящий по названию, но... он не сработал в тестовом триггере
Может, кто-то знает подходящие условия?

Клифф это высота рельефа, т.е. уклона, она будет меняться каждый раз когда юнит поднимается или спускается двигаясь по карте в зависимости от рельефа, при этом даже не важно летающий ли он или плавающий, всё одно. Максимум что из этого можно выжать - сравнивать высоту клиффов между двумя юнитами (или юнитом и точкой), что бы определить кто стоит выше/ниже, для реализации чего-то вроде стандартных промахов или подобного.
У юнитов так же есть высота полёта - это такой параметр, который равен текущему расстоянию от поверхности земли под ногами юнита и до высоты, на которую поднята его модель. Она имеется у всех юнитов, но отлична от нуля лишь у тех, которые в стандарте имеют летающий или парящий тип движения. Например, когда Друид-ворон трансформируется его высота так же плавно меняется, ибо в облике эльфа высота нулевая, а в облике птицы - ... ну где-то 200-300 наверно, не знаю точно. Эту высоту можно регулировать триггерно, но работает только с теми юнитам, которые имеют указанные выше типы движения (или хотя бы могут превратиться в того, кто таким владеет, в чём собственно и заключается метод поднятия в воздух изначально НЕ летающих юнитов, например под действием триггерных скиллов).
Так же в игре имеется еще одна высота - высота точки на рельефе. Она равняется значению абсолютной высоты конкретной точки на рельефе относительно общего нуля. Её можно получить функцией GetLocationZ(point), где point - конкретная точка.
Для получения и сравнения абсолютных высот юнитов можно использовать высоту точки на рельефе + высоту полёта юнита. В первую очередь это применимо для создания эффекта молнии, высота которого регулируется (по XYZ, вместо XY), а не определяется автоматически высотой рельефа (при XY).
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
Ну серьезно, эта задача даже слишком простая чтобы спрашивать о ней.
Какой юнит то? Допустим все юниты.
Таймером каждые 5 секунд перебирать всех юнитов на карте и если они находятся на определенной высоте, ставить им хп на минус 30% от текущего.
Правда если ты реально додумался будучи гуишником, делать карту в редакторе рефоржа, нормально ты вряд ли сделаешь. Нужно будет костылить, ибо даже вот это условие у тебя - "Позиция юнита" создает локацию каждый раз, что является серьезной утечкой учитывая что ты будешь перебирать всех юнитов каждые 5 секунд.
Просто у меня вот в редакторе есть такое же условие но не на локацию а на координаты XY, а у тебя скорее всего нет, значит нужно ставить локацию в переменную, использовать её и потом разрушать.
Если хочешь страдать/костылить, то лучше сразу на хайве спрашивать, там в этом очень хорошо разбираются потому что тоже используют редактор рефоржа, даже готовое решение подгонят а не на словах объяснят.
Ну а если по умному делать, то или Jass или хотя бы кастомный гуи использовать.
26
Yae Miko:
эта задача даже слишком простая чтобы спрашивать о ней
Не бывает простых или сложных задач. Всё относительно твоих собственных знаний/умений. Начинать развернутый ответ с указания на "простоту" так же бессмысленно, как и спорить что это якобы имеет смысл.
перебирать всех юнитов на карте и если они находятся на определенной высоте
Надо перебирать не всех юнитов, а только тех для которых данный эффект уместен, иначе это бесполезная нагрузка.
ставить им хп на минус 30% от текущего
Вариант с "минус 30% от текущего" никогда не убьёт юнита, т.к. часть от числа никогда не будет равна нулю, а вот значение менее 0.405 - может, но оно так же будет перебиваться регенерацией (если она у юнита имеется). Здесь куча нюансов. Да и скорее всего автору нужно всё же не от текущего.
нормально ты вряд ли сделаешь. Нужно будет костылить, ибо даже вот это условие у тебя - "Позиция юнита" создает локацию каждый раз
Всю дорогу костылили костылями и на GUI и на Jass'е, еще за долго до рефорджа. И все утечки тем или иным образом устраннялись, в обоих случаях, но немного разным инструментом - где-то чистится, где-то и вовсе недопускается.
Просто у меня вот в редакторе есть такое же условие но не на локацию а на координаты XY, а у тебя скорее всего нет
Вместо того что бы говорить человеку чего у него нет и что есть у тебя, лучше бы объяснил "почему" и чего именно у него нет, и как ему это получить. Вместо пустословия нужно заниматься развитием и образованием юзеров, а не плодить показуху и позерство. Скажи ему прямым текстом где и какой редактор ему желательно скачать и как им пользоваться.
Нет желания? Тогда молчи.
Если хочешь страдать/костылить, то лучше сразу на хайве спрашивать, там в этом очень хорошо разбираются
Действительно. Зачем нам свой сайт с русскоговорящим комьюнити, когда мы всегда можем просто посылать людей сразу на хайв, м?
1
Надо перебирать не всех юнитов, а только тех для которых данный эффект уместен, иначе это бесполезная нагрузка.
Да? Ну попробуй перебери только конкретных юнитов, скинешь потом пример.
Речь в этот момент шла о переборе всех юнитов т.к автор не указал что нужно проверить только героев, если мы говорим о героях, то можно проходится чисто по массиву с героями, но когда речь идет о различных проверках типа "живые юниты/юниты игрока" ты в любом случае вынужден перебирать всех юнитов в радиусе/области и потом уже отсекать их через условия.
Вариант с "минус 30% от текущего" никогда не убьёт юнита
Опять же, автор не указал подробное тз и был предложен вариант на своё усмотрение, никто не знает хотел он отнимать от максимального или текущего, никто не знает хотел ли он чтобы это было уроном и реагировало на резисты, не смог задать вопрос правильно - получил такой же ответ.
Всю дорогу костылили костылями и на GUI и на Jass'е, еще за долго до рефорджа. И все утечки тем или иным образом устраннялись, в обоих случаях, но немного разным инструментом - где-то чистится, где-то и вовсе недопускается.
Ну продолжай костылить дальше, мне то что с того? Я лично не создаю новую локацию просто чтобы потом использовать её для создания юнита и тд, а потом еще чтобы пришлось её разрушать, у меня для этого есть функции с координатами. Никто на jass тоже такой фигней не страдает, так что эти слова оспорить невозможно - нормально на обычном гуи не сделаешь. Просто воды налил без причины.
Вместо того что бы говорить человеку чего у него нет и что есть у тебя, лучше бы объяснил "почему" и чего именно у него нет, и как ему это получить. Вместо пустословия нужно заниматься развитием и образованием юзеров, а не плодить показуху и позерство. Скажи ему прямым текстом где и какой редактор ему желательно скачать и как им пользоваться.
Нет желания? Тогда молчи.
Я не рекламный агент чьих-то инструментов или карт, я конечно могу этим заняться, но сначала, хотелось бы поговорить об оплате. Вот если человек сам спросит чем я пользуюсь и почему, тогда я отвечу, если попросит помочь настроить или разобраться, я могу помочь, но меня пока не спрашивали. Так же как и тебя кстати, никто не спрашивал но ты решил влезть осознав гордость от того что "давний пользователь" но видимо ты забыл что большинство людей годами сидят на таких сайтах без реги, потому что заходят в такие места как раз чтобы получать информацию, так что у тебя надо мной нет никакого превосходства в опыте.
Я конечно согласен что лучше бы заниматься полезными вещами а не позерством, но тебе не кажется что с твоей стороны это прозвучало слишком уж лицемерно? Я же не первый год тут в readonly сижу, поэтому знаю что подобное высказывание это не более чем издевательство. Давай может быть вместе посмотрим комментарии, например, от nazarpunk? или многие другие где гуишникам предлагается учить jass, который оказывается такой легкий и простой что аж большинство людей до сих пор используют гуи и русские триггеры, а если кто-то не хочет то над ним просто смеются, т.к гуи = позор.
Просто как-то странно читать подобные слова, почему если тут никто не следовал этим очевидным истинам, ты решил сказать об этом именно мне? Почему ты решил именно меня заткнуть, а не тех кто этого действительно заслуживал?
Действительно. Зачем нам свой сайт с русскоговорящим комьюнити, когда мы всегда можем просто посылать людей сразу на хайв, м?
А почему нет? Судя по предыдущим вопросам, он делает карту на рефорже, там как раз большинство людей с рефоржа, тем более он гуишник, а там над гуишниками не то что не смеются, им прям готовые решения зачастую дают, очевидно же что ему там будет проще получить то что он хочет.
Люди всегда стараются выбирать лучшие варианты, это норма, нет смысла разводить руками и говорить "а как это, а может вы не будете уходить, у нас же есть своё, зачем вам чужое?" тут либо пытаешься выиграть конкуренцию либо нет, нет - значит это никому не надо, всё нормально.
Одно дело когда не знаешь о других вариантах, а другое когда знаешь, я вот тоже когда-то сидел на jngp и на eurobattle/iccup, потому что не знал лучших аналогов, а теперь просто выбираю лучшее для себя.
26
Yae Miko:
Да? Ну попробуй перебери только конкретных юнитов, скинешь потом пример.
Конкретные юниты на то и конкретные, что они конкретизируются/проверяются заранее и отфильтровываются туда, где проверка будет проходить исключительно дня них.
автор не указал что нужно
Опять же, автор не указал подробное тз
Поэтому ты решил внести конкретики от себя.
Ну продолжай костылить дальше, мне то что с того? Я лично ...
Твоим личным мнением никто не интересовался.
Я не рекламный агент
хотелось бы поговорить об оплате
Это в другое заведение.
но меня пока не спрашивал
Как видишь, и не спросят.
тебе не кажется
Нет, не кажется.
Давай может быть вместе посмотрим комментарии, например, от nazarpunk?
Ну вот ты в его стиле и ответил. Не это ли и есть лицемерие?
Почему ты решил именно меня заткнуть
Потому что я дал развернутый ответ, который с твоим ничего отщего не имеет, как и информационной ценности для вопращающего в общем и целом.
говорить "а как это, а может вы не будете уходить, у нас же есть своё, зачем вам чужое?"
Об этом речи не шло вообще. Свои интерпритации более можешь не оглашать.
1
Ну вот ты в его стиле и ответил. Не это ли и есть лицемерие?
В его стиле ответил сейчас ты а не я, просто там вообще всё печально с кукухой, а у тебя пока еще сойдет, ну кроме того что ты токсик и лицемер.
Если так много свободного времени что готов тратить его на жалкие попытки унизить кого-то в интернете, лучше бы делом занялся, а то так и проживешь никому не нужным злобным затворником.
Твоим личным мнением никто не интересовался.
Если ты не заметил, это ты первый мне написал, а не я тебе, получается что именно твоим мнением никто не интересовался, но ты очень захотел его озвучить.
Как видишь, и не спросят.
И что с того? Не спросят значит не нужно, главное потом не винить других в том что сам промолчал когда мог спросить. Не понимаю, к чему этот жалкий выпад с плохо прикрытой пассивной агрессией.
Потому что я дал развернутый ответ, который с твоим ничего отщего не имеет, как и информационной ценности для вопращающего в общем и целом.
Вопрос был в том, почему ты сагрился на рандома который впервые начал что-то писать, а не на ваших старичков которые тут творили всё что вздумается и давали ну прям совсем бесполезные и токсичные ответы. Я как-бы ничего такого плохого не писал, рыбу не дал, но подсказал где ей могут поделиться, про утечку подсказал, плохо что ли?
Раз ты боишься и увиливаешь от вопроса, давай я отвечу за тебя: Потому что ты испугался затыкать тех кто этого действительно заслуживал, на своих огрызаться не гоже, за это ведь и последствия могут быть.
Ты бы хоть внимание обращал на корректор текста, а не выдавал перлы в духе "вопращающего"
Тот неловкий момент когда очень сильно хотел кого-то унизить но даже не знаешь как обращаться с языком на котором пишешь, как же много веса в твоих "славах".
Я тебе советую прекратить уже этот балаган пока еще больше не опозорился, ты уже должен был понять что ловить тебе здесь нечего. Молод ты еще, чтобы со мной конфликтовать, оставь свой подростковый максимализм, не нужна тебе такая машина, брат ©.
26
Yae Miko, приходя сюда ты должен давать ответы на поставленные вопросы, а не сопли тут свои размазывать на весь экран.
Тот неловкий момент, когда очень сильно хотел кого-то унизить, но даже не знаешь, как обращаться с языком, на котором пишешь. Как же много веса в твоих "словах".
1
приходя сюда ты должен давать ответы на поставленные вопросы, а не сопли тут свои размазывать на весь экран.
Тот неловкий момент, когда очень сильно хотел кого-то унизить, но даже не знаешь, как обращаться с языком, на котором пишешь. Как же много веса в твоих "словах".
Рад конечно что ты такой самостоятельный что научился просить совета у чат jpt, который и помог неучу вроде тебя составить некий анализ текста. Однако запятые и точки не могут являться ошибками где-либо за пределами тестов и заданий по Русскому языку. Человек сам решает где именно сделать паузу, а где - закончить предложение. "Казнить, нельзя помиловать" как раз об этом, хотя откуда детям об этом знать.
Но вот то что ты даже не смог догадаться что "славах" это был сарказм основанный на твоей нелепой безграмотности, это конечно кринж века. Как ты вообще додумался с такими заурядными умственными способностями до кого-либо докапываться? Хотя очевидно что именно поэтому ты и пришел к этой "великолепной" идее.
Так дерзко говорил что нужно заниматься развитием юзеров, но что ты первым сделал когда сюда пришел? Решил докопаться до новичка и разыграть героя. А потом еще так упорно и нелепо пытался отбрехаться всеми правдами и неправдами, дескать прав он был, а я оказывается сопли размазываю на весь экран. А я то думал что размазывание соплей это когда ты на кого-то беспочвенно наехал, не вывез и потом начал съезжать всеми силами, заместо того чтобы признать свою неправоту и извиниться.
Ну да ладно, не мне все таки жить с такой головой, да и спорить с тем чьи слова не имеют веса - бессмысленно, тот кто себя не уважает, других тоже уважать не будет, не умеет. Для себя я понял что здесь сидеть - только время тратить. Хорошо развиваешь юзеров, просто минус 1 на ровном месте. Надеюсь это не будут удалять чтобы осталось напоминание как тебя рандом на лопатки уложил.
18
Ну скорее всего у тебя не динамичные высоты. В нужных точках проставь регионы, и событие на вход в каждый из регионов и одно действие которое отнимает входящему юниту здоровье
26
Принятый ответ
Клифф это высота рельефа, т.е. уклона, она будет меняться каждый раз когда юнит поднимается или спускается двигаясь по карте в зависимости от рельефа, при этом даже не важно летающий ли он или плавающий, всё одно. Максимум что из этого можно выжать - сравнивать высоту клиффов между двумя юнитами (или юнитом и точкой), что бы определить кто стоит выше/ниже, для реализации чего-то вроде стандартных промахов или подобного.
У юнитов так же есть высота полёта - это такой параметр, который равен текущему расстоянию от поверхности земли под ногами юнита и до высоты, на которую поднята его модель. Она имеется у всех юнитов, но отлична от нуля лишь у тех, которые в стандарте имеют летающий или парящий тип движения. Например, когда Друид-ворон трансформируется его высота так же плавно меняется, ибо в облике эльфа высота нулевая, а в облике птицы - ... ну где-то 200-300 наверно, не знаю точно. Эту высоту можно регулировать триггерно, но работает только с теми юнитам, которые имеют указанные выше типы движения (или хотя бы могут превратиться в того, кто таким владеет, в чём собственно и заключается метод поднятия в воздух изначально НЕ летающих юнитов, например под действием триггерных скиллов).
Так же в игре имеется еще одна высота - высота точки на рельефе. Она равняется значению абсолютной высоты конкретной точки на рельефе относительно общего нуля. Её можно получить функцией GetLocationZ(point), где point - конкретная точка.
Для получения и сравнения абсолютных высот юнитов можно использовать высоту точки на рельефе + высоту полёта юнита. В первую очередь это применимо для создания эффекта молнии, высота которого регулируется (по XYZ, вместо XY), а не определяется автоматически высотой рельефа (при XY).
Чтобы оставить комментарий, пожалуйста, войдите на сайт.