Sansaney
Что??
offline
Опыт:
20,876Активность: |
First unit of Group
Я так понимаю, это ближайший юнит из этой группы. Тогда странно:
У меня триггер:
Если воин юзает такую то способность, то отдать ему приказ атаковать first unit в группе врагов на карте, у которых макс запас маны больше 0. Стоит воин, и две абсолютно одинаковые группы нейтралов, у которых есть мана. Одна группа заметно дальше от юнита, чем другая.
Ну так почему юнит бежит к дальней группе? |
27.07.2011, 01:50 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
prog
offline
Опыт:
32,865Активность: |
Sansaney, это юнит, вероятнее всего, первым попавший в группу! никакого отношения к расстоянию эта ф-ция не имеет |
27.07.2011, 02:03 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Msey
????
offline
Опыт:
67,346Активность: |
Sansaney, фильтры делай и не будет бежать |
27.07.2011, 05:35 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
Sansaney, по личным наблюдениям, функции пика пикают юнитов в группу по четверям в порядке возрастания, поэтому первый юнит в группе будет находится на позиции максимально близкой к 0 градусов относительно точки пика.
|
27.07.2011, 07:56 | #4
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
герои добавляются первыми 100%, потом уже крипы |
27.07.2011, 08:10 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sansaney
Что??
offline
Опыт:
20,876Активность: |
То есть получается, что функция опр., кто первый стоит в цепочке выбора (ну или как там ее) на интерфейсе... Что ж, а как тогда сделать этот триггер, чтобы срабатывало на ближнего? Msey, Поясни плиз, какие фильтры? |
27.07.2011, 09:08 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
Sansaney, сравнивай расстояния до юнитов и выясняй ближайшего. |
27.07.2011, 09:17 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Msey
????
offline
Опыт:
67,346Активность: |
|
27.07.2011, 12:10 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
prog:
16GB:
Последнее ближе к истине.. Юниты в группе располагаются по иерархии индексов, если говорить для мягкого мозга - юнит, который раньше появился на карте - будет FirstOfGroup(), по этому да, сначала идут герои, потом крипы. |
27.07.2011, 12:17 | #9
+2/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sansaney
Что??
offline
Опыт:
20,876Активность: |
Hanabishi:
Ого... Блин, я этого и боялся. То есть это каждого юнита на карте нужно проверять... а ну у которых есть мана... А ведь есть такая функция minimum из значений. Она мне поможет? |
27.07.2011, 14:54 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
А разница? Внутри неё всё равно тот же if a<b then... |
27.07.2011, 19:04 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sansaney
Что??
offline
Опыт:
20,876Активность: |
Так, то есть насколько я понял, нужно создать группу всех вражеских магов на карте. Затем брать рандомного воина, присваивать ему переменную, записывать расстояние между ним и целью в другую переменную и удалять этого воина из группы. Затем также с остальными, но уже проверяя, меньше ли у них расстояние. В итоге ждем, пока все воины кончатся и тогда нужная цель и будет последним записанным юнитом. Так? А выбирать лучше функцией-циклом, да? |
27.07.2011, 19:21 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
Sansaney, не совсем Вот держи пример, там поиск ближайшего реализован xgm.ru/forum/showpost.php?p=1060673&postcount=3 |
27.07.2011, 19:34 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
naxim
offline
Опыт:
10,186Активность: |
Sansaney:
prog: silumin: 16GB: Sansaney: Вы все неправы. В первую очередь открываем common.j и делем то, что ты поленился сделать: находим нужную функцию.
Как видим эта функция не принимает никаких точек и юнитов, только группу. Отсюда вопрос:
Где логика? Если ты считал что функция определяет расстояние между конкретным юнитов и юнитами из группы, то почему твоя функция не принимает этого юнита и даже точку его местонахождения? При чем тут вообще эта функция? Открываем редактор, создаем несколько юнитов в произвольном порядке (см. скрины ниже). Заходим в триггеры и специально заносим их в группу в порядке который легко запомнить. В данном примере слева направо (см. скрин триггера). Проверяем карту, обнаруживаем что функция возвращаает юнитов в том самом порядке, в котором они были созданы. Подобные извращения не занимают и 10 минут. Вывод очивиден:
Функция возвращает юнита из отряда с наименьшим порядковым номеров; на результат никак не влияет порядок занесения юнитов в отряд, их место нахождение, характеристики.
Те кто в этом сомневаются могут убедиться (должным образов изменив юнитов, порядок добавления и т.п.) на примере ниже, дабы не создавать свой собственный
Sansaney спасибо за то, что создал эту тему. Давно хотел узнать, как достать юнита при помощи его номера. Случаем не знаешь для этого этого специальной функции (в ЛС)? |
27.07.2011, 23:29 | #14
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|