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