silumin
offline
Опыт:
11,153Активность: |
Группы, функция-фильтр
Код действия динамического триггера:
Код:
Вобщем делаю спелл похожий на ульт Лича из доты. Все спеллы в моей мапе сделаны на сопряжённых массивах и на динамических триггерах при необходимости. Работа спелла (для незнакомых с ультом Лича из доты): Герой кастует спелл на Цель, от героя к Цели летит дамми, если расстояние до цели < 30 - Цель получает урон... Дальше хочу пикнуть группу враждебных юнитов, взять рандомного и перенаправить даммика на него... и так несколько раз. Так вот собственно вопрос, что мне написать в функции-фильтре вместо "???".....? Как мне получить ссылку на "подлетевшего" даммика? silumin добавил: Как вариант рассматриваю такое решение: триггерно убивать даммика, а в фильтре обращаться к даммику через GetDyingUnit(). [+] замечание от Hellfim: 4.5 (тема не в том разделе)
Отредактировано Hellfim, 20.09.2009 в 00:51. |
20.09.2009, 00:14 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
очевидно что через глобалку? не сработает, тригер юнит можно брать только в пределах одного потока |
20.09.2009, 00:31 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
agentex, в том и дело что даммик есть в глобалке (в массиве боевых единиц), но индекс массива остаётся "за кулисами"...
silumin добавил: От чего можно оттолкнуться в этом случае? |
20.09.2009, 01:13 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,700Активность: |
» код
Думаю должно работать =)
Hellfim добавил: О результатах работает или нет желательно сказать =) |
20.09.2009, 01:21 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
О, осенило! Такой вариант: в фильтре перебрать всех даммиков по ИД через луп, и проверять расстояние от даммика до GetFilterUnit(), если меньше 500, то возвращать фильтруемого юнита.
Как бы пойти от обратного, если юнит оказался пикнутым, то расстояние от даммика до него <= 500 и наоборот, расстояние от юнита до даммика тоже буде <= 500. |
20.09.2009, 01:26 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
df Hunter
Нападатель
offline
Опыт:
5,749Активность: |
запиши в глобалку индекс массива перед вызовом функции либо прикрепи к какому-нибудь хэндлу |
20.09.2009, 03:50 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
df Hunter, а если из 10 игроков все 10 взяли одного героя? Создавать 10 переменных для индексов, а потом опять гадать где какая?
Пока остановился на таком варианте, не без утечек, но всёже: Код:
|
20.09.2009, 09:51 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,700Активность: |
silumin, а я типо в игноре? -.- |
20.09.2009, 14:34 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
Hellfim, совсем нет, нисколько, я просто не люблю использовать чей-то код. А если чего-то не получается и нужна помощь, то только в рамках моего кода. Вот такой принцип чтоли... ))
Не в обиду. |
20.09.2009, 16:53 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,700Активность: |
silumin, ну его не обязательно тупо копировать =) Можно посмотреть как там все устроено и в следующий раз сделать так же. |
20.09.2009, 17:08 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
Hellfim, это само собой.
Я думаю, тему можно закрыть. |
20.09.2009, 19:07 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|