Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
Утечки от группы
Вызывает ли функция "Pick Every Unit In Unit Group" утечки? а то непойму где у меня утечки... делал на ГУИ, но обнулял переменные.
Отредактировано Ninbous, 18.05.2009 в 20:22. |
18.05.2009, 20:16 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dave_wwid
offline
Опыт:
12,954Активность: |
Вызывает. Пикнутые враги героя должны по идее давать лаг. Скорее надо писать через локальные переменные. Или добавлять их в группу с переменной(глобальной) и чистить эту группу ИМХО. |
18.05.2009, 20:31 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
dave_wwid Как писать через локальные переменные если все равно придется пикать всех юнитов через Pick Every Unit In Unit Group?
|
18.05.2009, 20:53 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FEARSTARTER
desert eagle
offline
Опыт:
19,364Активность: |
Правильней сначало присваивать переменной например "grupp" = юниты в радиусе такомто, после чего пикать юнитов в этой переменной, и после этой функции удалять группу
_ViRus_ добавил: и еще функция перемещения юнита тоже вызывает утечки |
18.05.2009, 21:21 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
_ViRus_ А у меня перемещяются через SetUnitX/Y читал что ето самая быстрая из всех функций перемещений
|
18.05.2009, 23:14 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт:
8,394Активность: |
Ninbous ты создаешь локацию не удаляя её вот тебе и утечка, ту её просто обнуляешь а надо
call RemoveLocation(udg_Point[i]) и вот еще , разве в цикле должен быть integer a не Integer A? |
19.05.2009, 09:22 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dave_wwid
offline
Опыт:
12,954Активность: |
Цитата:
Имелась в виду локальная группа. И в твоей системе это не прокатит. Обьявление переменной, добавление в группу действия и очиста группы должны быть в одном триггере при локалках. А ответ подробный имхо уже дали и _Virus_ по группе и ELDAR по удалению локации. |
|
19.05.2009, 13:56 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
ELDAR Спасибо, чето я забыл удалять точки, integer это глобаляная переменная.
Можно код пример чтобы он прокатил? Ninbous добавил: Код:
Вот я перевел в жасс и соединил 2 функции в одну, создал локальную группу заносил в нее юнитов, но GetEnumUnit() неработает, как мне взять пикнутых юнитов в группе? |
19.05.2009, 20:43 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт:
8,394Активность: |
Цитата:
false, local group g = CreateGroup() а в конце call DestroyGroup(g) set g = null и перелобай весь код в человеческий |
|
20.05.2009, 09:35 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dave_wwid
offline
Опыт:
12,954Активность: |
Цитата:
Почему не просто call DestroyGroup? |
|
20.05.2009, 15:37 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SRes
1110101000
offline
Опыт:
9,997Активность: |
Ссылка на группу в памяти остается, если не обнулить, а это == утечка. |
20.05.2009, 15:45 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
А можно вместо
Код:
Код:
И еще сделал как сказал ELDAR все равно юниты не пикаются и не мувятся, мб GetEnumUnit() неработает? как мне из группы g пикнуть каждого юнита и мувить его? |
20.05.2009, 17:06 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexkill
offline
Опыт:
18,872Активность: |
Ninbous
потому что обратиться к GetEnumUnit() можно только в callback-функции Код:
в целом реализация спелла сделана неправильно. двигать боевых единиц нужно при помощи перидиоческого таймера с интервалом в 0,05 сек (как я понял из первого поста), а не в цикле, как реализовано у тебя в коде. |
20.05.2009, 17:14 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
Вот код тригера который мувит юнитов, всё еще есть утечки.
Код:
Ninbous добавил: alexkill сделал через Callback Ninbous добавил: Мб нада упростить функцию перемещения? |
20.05.2009, 19:47 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт:
8,394Активность: |
Цитата:
ацтой Код:
|
|
20.05.2009, 20:00 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
ELDAR Спасиб, а по поводу утечек можеш ченить сказать?
Ninbous добавил: Код:
Вот еще немного оптимизировал, утечек стало меньше намного, но все равно они есть, кто еще ченить ожет подсказать? Jon подскажи ченить плз =) |
20.05.2009, 21:52 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Freezen
Тут должен быть бред
offline
Опыт:
2,517Активность: |
Ninbous
Обнуления ставь в конце, после endifa |
20.05.2009, 22:49 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SRes
1110101000
offline
Опыт:
9,997Активность: |
|
21.05.2009, 10:25 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
SResFreezen Поставил обнуление
Спасибо всем, вроде норм, лаги все равно есть, но уже не такие как были. Ninbous добавил: А и еще один вопрос: Нада обнулять GetEnumUnit ()? |
21.05.2009, 15:27 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexkill
offline
Опыт:
18,872Активность: |
вот как нужно было делать (шаблон, скажем так)
» раскрыть Код:
чтоб я доделал до конца, пусть автор скажет, когда нужно паузить таймер Отредактировано alexkill, 21.05.2009 в 16:22. |
21.05.2009, 15:31 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|