Созерцатель
offline
Опыт:
82Активность: |
Вопрос по утечкам - редактор WCIII
Доброго времени суток, такой вот вопрос возник, вызовет ли это утечку? Если да, как удалить область которая создается (если создается) при "RectFromCenterSizeBJ(p), 1000.00, 1000.00)" ? Спасибо.
function removeitem takes nothing returns nothing
call RemoveItem( GetEnumItem() ) endfunction function Trig_q_Actions takes nothing returns nothing local location p call EnumItemsInRectBJ( RectFromCenterSizeBJ(p), 1000.00, 1000.00), function removeitem ) call removeLocation (p) endfunction |
02.02.2015, 13:45 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Buulichkaa
Делаю спеллы за еду
offline
Опыт:
20,171Активность: |
если в близзард.ж вы нашли ф-ию которая создает объекты - то просто разверните эту функцию, записывая объекты в переменные и удаляя когда надо |
02.02.2015, 13:50 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Созерцатель
offline
Опыт:
82Активность: |
дружище, я ничего не понял... Есть действие удаляющее именно область? |
02.02.2015, 13:55 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
call RemoveRect(udg_Rect) |
02.02.2015, 14:09 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Созерцатель
offline
Опыт:
82Активность: |
Спасибо!
Еще вопрос...
как сделать чтобы юнит подбирал выбранный предмет без глобалок (как то типо так) function removeitem takes nothing returns nothing call IssueTargetItemOrder( u, "smart", GetEnumItem() ) endfunction function Trig_q_Actions takes nothing returns nothing local unit u local location p call EnumItemsInRectBJ( RectFromCenterSizeBJ(p), 1000.00, 1000.00), function removeitem ) call removeLocation (p) endfunction ведь локалка задается только в одной функции а вот так сделать нельзя... function removeitem takes unit u returns nothing ибо call EnumItemsInRectBJ( RectFromCenterSizeBJ(p), 1000.00, 1000.00), function removeitem (u) ) работать не будет... Отредактировано Созерцатель, 02.02.2015 в 14:29. |
02.02.2015, 14:22 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
Глобалки в функциях использовать можно, насколько я знаю. А также можно передвигать регион с места на место, дабы не создавать и не удалять каждый раз. |
02.02.2015, 14:34 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Созерцатель
offline
Опыт:
82Активность: |
с ними я уже сделал) вопрос как сделать с локалками то же самое)) за идею передвижения большое спасибо! |
02.02.2015, 14:37 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
С точками то же самое кстати можно, правда в стандартном ГУИ там нет функции. Чета call movelocation(точка, икс игрек). Насчёт локалок хз, у меня странная аллергия на них ещё с дельфи. |
02.02.2015, 14:56 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,700Активность: |
Созерцатель, так безусловно делать нельзя, и ваш пример один из случаев, когда стоит использовать глобальные переменные. Также, стоит заметить, что несмотря на то, что вы вызвали функцию RemoceLocation(p) утечка всё равно осталась, т.к. перед выходом из функции необходимо обнулить все переменные с типом handle (это unit, location и т.п., т.е. игровые объекты). Обнуление делается, например, так: set p=null |
02.02.2015, 14:58 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Созерцатель
offline
Опыт:
82Активность: |
Спасибо за ответы, друзья, буду делать через глобалки. Про обнуление знаю, просто не написал в примере) вопрос исчерпан. |
02.02.2015, 15:14 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
А я вам скажу, что все стандартные кампании делались на BJ с этими вашими страшными и ужасными "утечками" и замечательно игрались на древнем железе начала 2000... Нет , там конечно не делались вещи, которые делаются сейчас, но вы не должны столько времени уделять этим самым утечкам в 2015. |
02.02.2015, 15:23 | #11
+4/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Созерцатель
offline
Опыт:
82Активность: |
ADOLF, согласен) просто карта вылетает, предварительно полчаса игры терпит и усё... хочется до конца чтобы игралась, уже все утечки возможные перебрал и пофиксил, но вот с этими bj вопрос у меня и возник |
02.02.2015, 15:43 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,266Активность: |
ADOLF, в кампаниях то какраз вроде локации удалялись и групы, близзы таки позаботились о основных источников утечек, в картах от близзов куча темповых глобалок куда и записывают хендлы которые нужно а после удаляют.... |
02.02.2015, 17:56 | #13
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
посмотри cj_antibj_base.j на основе этого построено - устраняет часть утечек бж в гуи еще есть экспериментальная ALL.j - она вообще не дает утекать локациям (и прочему, даже в гуи!), но могут потеряться "постоянные" объекты, поэтому их надо помечать специально |
02.02.2015, 20:44 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Созерцатель
offline
Опыт:
82Активность: |
к сожалению не дружу с cjass и vjass и редактор у меня стандартный варовский)) |
03.02.2015, 06:41 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Удали его тогда)))))))))))0000000000000000 |
03.02.2015, 08:33 | #16
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Созерцатель
offline
Опыт:
82Активность: |
да нее брось, не удалю, помогает коротать вечера |
03.02.2015, 09:50 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Созерцатель:
От утечек карты не вылетают, но начинают тормозить. Может надо было начать с вылетов?
ADOLF добавил:
В случайном порядке открыл Undead04.w3m из RoC, ничего не удаляется, ничего не обнуляется, точки берутся как центр региона, и тому подобное. С другой стороны, там как будто нет каких либо периодических действий, поэтому нагрузка таки меньше. |
03.02.2015, 11:42 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
У близзов норм код только в гоначках |
03.02.2015, 12:28 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
В гоночках свое движение, поэтому там и есть чему течь. |
03.02.2015, 12:44 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|