Я делаю способность пасивку, когда с врагом рядом нет союзников то владельцу пасивки должен доваться баф на урон и скорость атаки. Я в принципе понимаю как сделать это , но не знаю какое нужно условие. Если рядом с врагом нет союзников то? Или как-то по другому, подскажите.

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

В гуи есть такая замечательная команда в разделе целочисленной - кол-во юнитов группе. Единственное, что в ней нельзя отфильтровать не нужных. На jass это сделать проще.
Как работает эта команда - кол-о юнитов группе? там счетчик есть, записан в глобалку. он сначала обнуляется. А потом запускаем цикл, берет каждого юнита и циклом прибавляет. Если не можете юзать jass, то сделайте свой на гуи. Сначала пикаете вокруг героя с фильтром в группу g. Потом используете эту команду "кол-во юнитов в группе g"
по идее, тут не нужен нам счетчик. Есть команда "первый юнит в группе g" (FirstOfGroup), если она пуста, значит и юнитов в ней нет

можно через CustomScript ввести несколько строчек
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
26
4 года назад
0
Тебе тут скорее всего нужен будет таймер.
Каждую секунду (это самое оптимальное) проверять юнитов вокруг героя.
Если в результате отфильтровки таких юнитов будет больше 0 - то снимаешь бафф, иначе - даёшь его (так же можно добавить момент когда юниты есть, но бафф уже имеется - тогда действия никакие не нужны).
0
8
4 года назад
0
Extremator:
Тебе тут скорее всего нужен будет таймер.
Каждую секунду (это самое оптимальное) проверять юнитов вокруг героя.
Если в результате отфильтровки таких юнитов будет больше 0 - то снимаешь бафф, иначе - даёшь его (так же можно добавить момент когда юниты есть, но бафф уже имеется - тогда действия никакие не нужны).
А как юнитов проверять вокруг врага?
0
26
4 года назад
0
Qulore, ну вообще - просто выбор юнитов вокруг точки.
Новое действие - Отряд - Действие с юнитами в (все юниты в радиусе 500 от точки А)
Точкой А будет "позиция юнита" через переменную и всеми вытекающими от обращения
Внутри поставить если/тогда/иначе, в нём список условий (друг/живой/и т.п.) и действие на добавление "выбранного юнита" в отдельную группу.
Дальше, если в этой группе больше 0 юнитов - чистишь группу. Отнимаешь бонусы.
Иначе (если в ней нет юнитов) - даёшь бафф и бонус (но только если бонуса у юнита ещё нет).
Как-то так... у меня где-то был пример с абилкой-пассивкой, которая даёт атаку за каждого врага рядом... Я его лет 10 назал делал, могу скинуть чисто ради ознакомления.
0
13
4 года назад
0
Extremator:
Qulore, ну вообще - просто выбор юнитов вокруг точки.
Новое действие - Отряд - Действие с юнитами в (все юниты в радиусе 500 от точки А)
Точкой А будет "позиция юнита" через переменную и всеми вытекающими от обращения
Внутри поставить если/тогда/иначе, в нём список условий (друг/живой/и т.п.) и действие на добавление "выбранного юнита" в отдельную группу.
Дальше, если в этой группе больше 0 юнитов - чистишь группу. Отнимаешь бонусы.
Иначе (если в ней нет юнитов) - даёшь бафф и бонус (но только если бонуса у юнита ещё нет).
Как-то так... у меня где-то был пример с абилкой-пассивкой, которая даёт атаку за каждого врага рядом... Я его лет 10 назал делал, могу скинуть чисто ради ознакомления.
Больше 1 юнитов*. Самого юнита вокруг которого будет проверка занесет в группу.
0
26
4 года назад
0
Esea:
Больше 1 юнитов*. Самого юнита вокруг которого будет проверка занесет в группу.
Ну по идеи сам юнит не должен проходить фильтрацию... не?
0
17
4 года назад
0
Просто дай союзникам любую ауру и проверяй её эффект, через условия логического сравнения . Если союзников рядом нет, то и ауры тоже, а значит давать баф можно.

Можно даже ещё проще, дать союзникам ауру дебафа (усилив при это героя) и когда рядом союзники, герой возвращается к обычным параметрам ( компенсируя усилением).
0
26
4 года назад
0
world_editor, что-то вообще не просто, какой-то гемор ему советуешь.
0
8
4 года назад
0
Я попробую сделать пару из приведенных примеров. Если что я напишу.

Extremator:
Qulore, ну вообще - просто выбор юнитов вокруг точки.
Новое действие - Отряд - Действие с юнитами в (все юниты в радиусе 500 от точки А)
Точкой А будет "позиция юнита" через переменную и всеми вытекающими от обращения
Внутри поставить если/тогда/иначе, в нём список условий (друг/живой/и т.п.) и действие на добавление "выбранного юнита" в отдельную группу.
Дальше, если в этой группе больше 0 юнитов - чистишь группу. Отнимаешь бонусы.
Иначе (если в ней нет юнитов) - даёшь бафф и бонус (но только если бонуса у юнита ещё нет).
Как-то так... у меня где-то был пример с абилкой-пассивкой, которая даёт атаку за каждого врага рядом... Я его лет 10 назал делал, могу скинуть чисто ради ознакомления.
Я не имею опыта с "Отрядами", и у меня возникло пару вопросов
  1. После того как я добавил действия если/тогда/иначе, то я не понимаю какое нужно условие типо если юниты в отряде твои союзники то... если юниты в отряде нейтральные крипы то... наверное как-то так, но я не знаю таких условий(наверное оно там есть, но я не знал ничего с отрядами)
  2. "и действие на добавление "выбранного юнита" в отдельную группу." Это нужно юнита у которого будет пасивка на доп урон запихать в другой отряд, как(по переменным наверное), зачем?
  3. "Иначе (если в ней нет юнитов) - даёшь бафф и бонус (но только если бонуса у юнита ещё нет)." Тут не понял. Если в группе юнитов нету юнитов то давать баф, но юнит же будет 1 тот, который 1(без союзников).
Загруженные файлы
0
8
4 года назад
0
Qulore:
Я попробую сделать пару из приведенных примеров. Если что я напишу.

Extremator:
Qulore, ну вообще - просто выбор юнитов вокруг точки.
Новое действие - Отряд - Действие с юнитами в (все юниты в радиусе 500 от точки А)
Точкой А будет "позиция юнита" через переменную и всеми вытекающими от обращения
Внутри поставить если/тогда/иначе, в нём список условий (друг/живой/и т.п.) и действие на добавление "выбранного юнита" в отдельную группу.
Дальше, если в этой группе больше 0 юнитов - чистишь группу. Отнимаешь бонусы.
Иначе (если в ней нет юнитов) - даёшь бафф и бонус (но только если бонуса у юнита ещё нет).
Как-то так... у меня где-то был пример с абилкой-пассивкой, которая даёт атаку за каждого врага рядом... Я его лет 10 назал делал, могу скинуть чисто ради ознакомления.
Я не имею опыта с "Отрядами", и у меня возникло пару вопросов
  1. После того как я добавил действия если/тогда/иначе, то я не понимаю какое нужно условие типо если юниты в отряде твои союзники то... если юниты в отряде нейтральные крипы то... наверное как-то так, но я не знаю таких условий(наверное оно там есть, но я не знал ничего с отрядами)
  2. "и действие на добавление "выбранного юнита" в отдельную группу." Это нужно юнита у которого будет пасивка на доп урон запихать в другой отряд, как(по переменным наверное), зачем?
  3. "Иначе (если в ней нет юнитов) - даёшь бафф и бонус (но только если бонуса у юнита ещё нет)." Тут не понял. Если в группе юнитов нету юнитов то давать баф, но юнит же будет 1 тот, который 1(без союзников).
Я правда не знаю
1
27
4 года назад
Отредактирован MpW
1
В гуи есть такая замечательная команда в разделе целочисленной - кол-во юнитов группе. Единственное, что в ней нельзя отфильтровать не нужных. На jass это сделать проще.
Как работает эта команда - кол-о юнитов группе? там счетчик есть, записан в глобалку. он сначала обнуляется. А потом запускаем цикл, берет каждого юнита и циклом прибавляет. Если не можете юзать jass, то сделайте свой на гуи. Сначала пикаете вокруг героя с фильтром в группу g. Потом используете эту команду "кол-во юнитов в группе g"
по идее, тут не нужен нам счетчик. Есть команда "первый юнит в группе g" (FirstOfGroup), если она пуста, значит и юнитов в ней нет

можно через CustomScript ввести несколько строчек
Принятый ответ
0
13
4 года назад
Отредактирован Esea
0
Extremator:
Esea:
Больше 1 юнитов*. Самого юнита вокруг которого будет проверка занесет в группу.
Ну по идеи сам юнит не должен проходить фильтрацию... не?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.