zer0ne
offline
Опыт:
11,119Активность: |
GroupEnumUnitsInRange
у меня тут возникла проблема со спеллом, весь его код выложить не могу, потому что он на конкурс Spell Contest 2.
Код:
Вообщем функция GroupEnumUnitsInRange запускается только из "Trig_Actions", а из "Timer" не работает, нет никаких ошибок, просто не действует, хотя в "Timer" есть "EnumDestructablesInRect", она работает. Как мне запустить "GroupEnumUnitsInRange" из "Timer"? Если нужна еще какая то информация о коде пишите Отредактировано zer0ne, 30.09.2008 в 17:52. |
30.09.2008, 17:17 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
Код:
|
30.09.2008, 17:28 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zer0ne
offline
Опыт:
11,119Активность: |
Jon
я не совсем понял что тут, но на всякий случай говорю, что использую XAT и там есть call SetInt(t, integer(s)) перед call TimerStart(t, 1.2, false, function Timer), а в функции Timer есть Код:
и в Timer есть переменные s.___ и они работают |
30.09.2008, 17:33 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Что тебе нужно сделать в функции Timer? Пикнуть новых юнитов или пройтись по группе существующих? Если первое, то не вижу особой проблемы, аттачь на таймер структуру и по таймеру доставай оттуда x, y и пикай.
Код:
Вообще лучше выложить часть кода функции Timer, который имеет непосредственное отношение к этому (вызов пика юнитов, изменение передаваемых в него аргументов) |
30.09.2008, 17:35 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zer0ne
offline
Опыт:
11,119Активность: |
ShadoW DaemoN
у меня точная копия твоего кода, не работает, причем как я писал Цитата:
zer0ne добавил: Jon ок, сейчас допишу) |
|
30.09.2008, 17:37 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
также невижу в структуре точку target, и невижу как ты ее получаеш, я конешно понимаю это ниипацо совершено секретно, но хотябы правельность кода в вопросе нужно соблюдать, откуда можно знать толи есть это часть кода то ли ее нет...
[+] замечание от ADOLF: мат) я всетаки поймал тебя)
|
30.09.2008, 17:40 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Попробуй так (хотя имхо мало толку, но все же):
Код:
Первое выведенное на экран число должно быть больше 0. Jon, не придирайся по мелочам... И так ясно, что он там есть. иначе бы we выдал бы синтакс. ошибку. |
30.09.2008, 17:44 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zer0ne
offline
Опыт:
11,119Активность: |
Еще наверно нужно добавить: мне не надо GroupEnumUnitsInRange в Trig_Action, только в Timer, я так написал сдесь, что бы показать, что она толь от туда запускается
zer0ne добавил: ShadoW DaemoN 5 сек, сейчас попробую zer0ne добавил: вышло "1" |
30.09.2008, 17:50 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
Цитата:
zer0ne, ты опять не все написал, cnd - это че? как я понял это фильтр что создается заранее, покажика его, там есть функции подобные GetSpellAbilityUnit или подобные? |
|
30.09.2008, 17:54 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zer0ne
offline
Опыт:
11,119Активность: |
Код:
|
30.09.2008, 17:55 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
Цитата:
вот в этом вся проблема |
|
30.09.2008, 17:56 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zer0ne
offline
Опыт:
11,119Активность: |
Jon
А как ее решить? castunit мне нужен) |
30.09.2008, 17:57 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
создай спецальную глобальную переменую integer, я обычно ее называю IndexForGroup (используй эту переменую не для конкретного спела, а вообще для всех, т.е. не пересоздава ее)
создай в структуре юнита Caster присваевай структуре кастера (set s.Caster = GetSpellAbilityUnit()) перед использованием GroupEnumUnitsInRange(), присваевай глобальной целочисленой переменой индекс структуры (set IndexForGroup = s), в фильтре доставай структуру (local spell s = IndexForGroup) и получай отуда кастера Отредактировано Jon, 30.09.2008 в 18:11. |
30.09.2008, 17:58 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zer0ne
offline
Опыт:
11,119Активность: |
ок сейчас попробую |
30.09.2008, 18:05 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Жон прав. Добавлю еще, что в Trig_Actions фильтр работает нормально, так как пик юнитов напрямую вызывался из этой функции => доступны все событийные функции (типа GetSpellAbilityUnit, GetSpellAbilityId). |
30.09.2008, 18:24 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zer0ne
offline
Опыт:
11,119Активность: |
Ок, Jon, ShadoW DaemoN, спасибо, теперь все работает!
|
30.09.2008, 18:35 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
Цитата:
это как вариант... я лично использую более глобальный набор таких "глобалок" т.е. если тебе в фильтре надо получить только кастера то создавай глобалку юнит "кастер" и присвайвай значение ей, и обращайся к ней через фильтр (это будет немного правильнее) |
|
01.10.2008, 14:06 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|