![]()
Sansaney
Что??
offline
Опыт:
20,876Активность: |
First unit of Group
Я так понимаю, это ближайший юнит из этой группы. Тогда странно:
У меня триггер:
Если воин юзает такую то способность, то отдать ему приказ атаковать first unit в группе врагов на карте, у которых макс запас маны больше 0. Стоит воин, и две абсолютно одинаковые группы нейтралов, у которых есть мана. Одна группа заметно дальше от юнита, чем другая.
Ну так почему юнит бежит к дальней группе? |
|
|
![]()
prog
offline
Опыт:
32,465Активность: |
Sansaney, это юнит, вероятнее всего, первым попавший в группу! никакого отношения к расстоянию эта ф-ция не имеет |
|
|
![]()
Msey
????
offline
Опыт:
66,991Активность: |
Sansaney, фильтры делай и не будет бежать |
|
|
![]()
silumin
offline
Опыт:
11,153Активность: |
Sansaney, по личным наблюдениям, функции пика пикают юнитов в группу по четверям в порядке возрастания, поэтому первый юнит в группе будет находится на позиции максимально близкой к 0 градусов относительно точки пика.
|
|
|
![]()
16GB
GhostOne User
offline
Опыт:
59,317Активность: |
герои добавляются первыми 100%, потом уже крипы |
|
|
![]()
Sansaney
Что??
offline
Опыт:
20,876Активность: |
То есть получается, что функция опр., кто первый стоит в цепочке выбора (ну или как там ее) на интерфейсе... Что ж, а как тогда сделать этот триггер, чтобы срабатывало на ближнего? Msey, Поясни плиз, какие фильтры? |
|
|
![]()
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
Sansaney, сравнивай расстояния до юнитов и выясняй ближайшего. |
|
|
![]()
Msey
????
offline
Опыт:
66,991Активность: |
|
|
|
![]()
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
prog:
16GB:
Последнее ближе к истине.. Юниты в группе располагаются по иерархии индексов, если говорить для мягкого мозга - юнит, который раньше появился на карте - будет FirstOfGroup(), по этому да, сначала идут герои, потом крипы. |
|
|
![]()
Sansaney
Что??
offline
Опыт:
20,876Активность: |
Hanabishi:
Ого... Блин, я этого и боялся. То есть это каждого юнита на карте нужно проверять... а ну у которых есть мана... А ведь есть такая функция minimum из значений. Она мне поможет? |
|
|
![]()
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
А разница? Внутри неё всё равно тот же if a<b then... |
|
|
![]()
Sansaney
Что??
offline
Опыт:
20,876Активность: |
Так, то есть насколько я понял, нужно создать группу всех вражеских магов на карте. Затем брать рандомного воина, присваивать ему переменную, записывать расстояние между ним и целью в другую переменную и удалять этого воина из группы. Затем также с остальными, но уже проверяя, меньше ли у них расстояние. В итоге ждем, пока все воины кончатся и тогда нужная цель и будет последним записанным юнитом. Так? А выбирать лучше функцией-циклом, да? |
|
|
![]()
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
Sansaney, не совсем Вот держи пример, там поиск ближайшего реализован xgm.ru/forum/showpost.php?p=1060673&postcount=3 |
|
|
![]()
naxim
offline
Опыт:
9,786Активность: |
Sansaney:
prog: silumin: 16GB: Sansaney: Вы все неправы. В первую очередь открываем common.j и делем то, что ты поленился сделать: находим нужную функцию.
Как видим эта функция не принимает никаких точек и юнитов, только группу. Отсюда вопрос:
Где логика? Если ты считал что функция определяет расстояние между конкретным юнитов и юнитами из группы, то почему твоя функция не принимает этого юнита и даже точку его местонахождения? При чем тут вообще эта функция? Открываем редактор, создаем несколько юнитов в произвольном порядке (см. скрины ниже). Заходим в триггеры и специально заносим их в группу в порядке который легко запомнить. В данном примере слева направо (см. скрин триггера). Проверяем карту, обнаруживаем что функция возвращаает юнитов в том самом порядке, в котором они были созданы. Подобные извращения не занимают и 10 минут. Вывод очивиден:
Функция возвращает юнита из отряда с наименьшим порядковым номеров; на результат никак не влияет порядок занесения юнитов в отряд, их место нахождение, характеристики.
Те кто в этом сомневаются могут убедиться (должным образов изменив юнитов, порядок добавления и т.п.) на примере ниже, дабы не создавать свой собственный
Sansaney спасибо за то, что создал эту тему. Давно хотел узнать, как достать юнита при помощи его номера. Случаем не знаешь для этого этого специальной функции (в ЛС)? |
|
|