XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
inhuman89

offline
Опыт: 3,019
Активность:
помогите найти причину лагов в триггере
всем привет. собственно сабж:
почему возникают лаги мне не понятно точки вроде удаляю и чищу переменные...
то что свернуто - там пусто.
Старый 27.04.2010, 14:47
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
inhuman89,
надеюсь опять с скоростью дистанции (дамии скилла) не накосячил?
Старый 27.04.2010, 15:19
inhuman89

offline
Опыт: 3,019
Активность:
16GB, нет я сразу об этом подумал но каково было мое удивление когда я увидел что там стоит 10000...
Старый 27.04.2010, 15:23
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
ну значит это просто из-за гуи такое на нём лучше не делать
не удаляешь группы
Старый 27.04.2010, 15:27
McKenzza
Qt
offline
Опыт: 4,054
Активность:
утечки в пиках. Лучше создать группу, потом сделать над ней действия и удалить.
Старый 27.04.2010, 15:28
16GB
GhostOne User
offline
Опыт: 60,317
Активность:

вот так удаляй
Старый 27.04.2010, 15:29
Nekit1234007

offline
Опыт: 11,916
Активность:
DestroyGroup(GetLastCreatedGroup()) Т_Т
Старый 27.04.2010, 15:31
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
Nekit1234007,
чё не так?
Старый 27.04.2010, 15:32
Nekit1234007

offline
Опыт: 11,916
Активность:
То что твоя локалка вообще не к месту.
Старый 27.04.2010, 15:32
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
я понял уже ну от этого же хуже не будет?
Старый 27.04.2010, 15:33
Nekit1234007

offline
Опыт: 11,916
Активность:
Будет, время на создание локалки, присваивания и тп.
Старый 27.04.2010, 15:35
Helpmeplz

offline
Опыт: 11,738
Активность:
Nekit1234007, GetLastCreatedGroup() - это группа последних созданных юнитов, а не пикнутых...
Старый 27.04.2010, 15:37
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
а как надо?
16GB добавил:
Helpmeplz,
ответь
Старый 27.04.2010, 15:45
Helpmeplz

offline
Опыт: 11,738
Активность:
можно поставить вначале set bj_wantDestroyGroup = true
но я не уверен, потому что он может удалить группу в которую заносятся снаряды(или че там перемещается в триггере).
поэтому желательно использовать свободную переменную типа группа и в нее заносить этих пикнутых юнитов и после действий над ними удалять ее call RemoveGroup(udg_Group).
Старый 27.04.2010, 15:50
Stefler
MCA
offline
Опыт: 10,457
Активность:
Helpmeplz, тогда в эту группу нельзя будет больше никого заносить после 1ого такого действия!
Nekit1234007, трушные вещи говорит!
Старый 27.04.2010, 15:52
McKenzza
Qt
offline
Опыт: 4,054
Активность:
16GB,
local group g=присвоение
действия над группой
call DestroyGroup(g)
set g=null
Старый 27.04.2010, 15:52
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
F1shkA:
local group g=присвоение
действия над группой
call DestroyGroup(g)
set g=null
у мя так и сделано
Старый 27.04.2010, 15:53
inhuman89

offline
Опыт: 3,019
Активность:
я так и сделал, но лагов стало не намного меньше =)
В чем еще может таиться утечка?
Точки - удаляю (если не все то подскажите, у меня уже голова кругом идет)
Переменные типа юнит - обнуляю
Группы теперь удаляются.
Что еще?
вот так у меня:
Set TEMP_group = (Units within 70.00 of PROJ_next_p matching .... бла бла
Pick every unit in TEMP_group and do (Actions) ....
Custom script: call DestroyGroup( udg_TEMP_group )
Custom script: set udg_TEMP_group = null
Старый 27.04.2010, 15:55
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
лаги из-за удаления точек поробуй создовать 1к точек и все сразу удалять
Старый 27.04.2010, 15:58
Helpmeplz

offline
Опыт: 11,738
Активность:
Stefler, почему же?
мы создаем группу set Group = blablabla
проводим с ней действия и удаляем call DestroyGroup.
для следующего юнита в цикле создастся новая группа и произведутся те же действия.

факт в том, что лаги вызывает как минимум эта группа.
50 раз в секунду * 300 с * 0.62кб = 9мб оперативной памяти за 5 минут для одного игрока, при условии, что группа каждый раз пустая. А если в ней будет хотябы по 15 юнитов то это число можно спокойно удваивать.

но и то неособо много. возможно утечки вызывает что-то еще.
Старый 27.04.2010, 16:00
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 18:18.