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

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

Ответ
 
4go10_frank

offline
Опыт: 2,089
Активность:
Утечки в Moving System
Вот в карте реализовано движение прожектилов (сильно переделанный Moving System от ViRuS'а, спасибо ему если заглянет сюды =)) сделано на GUI + Custom Script. Проблема, как уже наверно поняли, в утечках (H2I код в карте прилагается). Вроде все возможные точки, спецеффекты, юниты и группы удаляю, но бесполезно (конветировал в Jass, заменял на локалки переменные типа точка - та же фигня) если кто нибудь знает в чем проблема - исправьте пожалуйста.
И еще вопрос в тему: какой адрес памяти (H2I) не должен быть превышен до конца карты?
Прикрепленные файлы
Тип файла: w3x Leaks.w3x (24.1 Кбайт, 29 просмотров )
Старый 14.08.2008, 16:57
Sebra

offline
Опыт: 5,603
Активность:
Код:
(Distance between (Position of unit[(Integer A)]) and position[(Integer A)]) больС?Рµ (>) (speed[(Integer A)] / 5.00)
Create a special effect at (Position of unit[(Integer A)]) using bounceeff[(Integer A)]
Set angle[(Integer A)] = (Angle from position[(Integer A)] to (Position of unit[(Integer A)]))
Set damagegroup = (Units within (range[(Integer A)] + 25.00) of (Position of unit[(Integer A)]))

Создают и теряют позиции - location
Вобщем "Position of unit" в качестве аргумента создаёт "точку".
Далее эту "точку" никто не удаляет. Всё, она "утекла".

Не знаю, насколько "утечлива" работа с группами, но мой тебе совет:
Бросай эти GUI триггеры, учись jassу.

Язык буржуйский тоже учи - пригодится.

Отредактировано Sebra, 14.08.2008 в 19:30.
Старый 14.08.2008, 19:04
4go10_frank

offline
Опыт: 2,089
Активность:
Sebra, спасиб за советы :)
джас знаю на уровне локалок + function list, этого достаточно?
Старый 14.08.2008, 21:01
Sebra

offline
Опыт: 5,603
Активность:
Да пожалуйста.
Если сумеешь убрать эти утечки, посмотри, будут ли ещё. Я не сильно смотрел.
Сдаётся мне, группы тоже будут утекать.
Шагай дальше: ifы, loopы, callы. Что понимаешь?
Дальше типы: триггеры, таймеры, регионы, группы, ...
Дальше баги (обход и использование), сторонние утилиты (JNGP, оптимизаторы...).
И не забывай смотреть, что делают другие.
Старый 14.08.2008, 23:27
alexkill

offline
Опыт: 18,872
Активность:
Не знаю, для чего ты выводишь на экран хэндл таймера (что вообще-то не нужно, ну да ладно), но эту проверку можно организовать и в другом (статичном) триггере(с событием Map Init etc.), не создавая висящий динамический.

Теперь об утечках:
Тебе же, кажется, нужна эта система для спеллов? Как я тебе писал в другой теме, движение прожектила нужно организовываать только при необходимости (при касте и т.п), а не постоянно-периодически (у тебя действия выполняются каждые 0,02 сек.). Код при этом сократится до 20-30 строк.

Ближе о них же:

Цитата:
Сообщение от 4go10_frank
Вроде все возможные точки, спецеффекты, юниты и группы удаляю, но бесполезно (конветировал в Jass, заменял на локалки переменные типа точка - та же фигня) если кто нибудь знает в чем проблема - исправьте пожалуйста.


Не юзай локации - для этого есть координаты.

И, наконец, очень близко:
BJ - и этим все сказано.
Старый 15.08.2008, 10:51
agentex

offline
Опыт: 34,834
Активность:
не согласен с Sebra, JNGP и оптимизаторы могут и новичкам быть полезны, ведь разметка синтаксиса намного упрощает работу с кодом
Старый 15.08.2008, 12:13
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
BJ - и этим все сказано.

И что BJ? Чем он в данный момент мешает?
Старый 15.08.2008, 12:23
alexkill

offline
Опыт: 18,872
Активность:
Цитата:
Сообщение от ScorpioT1000
И что BJ? Чем он в данный момент мешает?


по какому поводу сабж? гуи == бж
Старый 15.08.2008, 12:31
agentex

offline
Опыт: 34,834
Активность:
Цитата:
Сообщение от alexkill
по какому поводу сабж? гуи == бж

эээ вообще то это не так. довольно много действий ГУИ имеют под собой native.
Притом БЖ не всегда вызывает утечки и др траблы, надо смотреть конкретную функцию
Старый 15.08.2008, 12:45
alexkill

offline
Опыт: 18,872
Активность:
agentex, такое впечатление, что ты даже не смотрел систему.

Тем более, что я писал применительно к данному случаю.

А за туториал по гуи - спасибо.
Старый 15.08.2008, 12:51
Sebra

offline
Опыт: 5,603
Активность:
Цитата:
не согласен с Sebra, JNGP и оптимизаторы могут и новичкам быть полезны, ведь разметка синтаксиса намного упрощает работу с кодом
Не согласен до запятой, :) с остальным согласен.

Цитата:
А за туториал по гуи - спасибо.
Присоединяюсь, пару интересных вещей увидел.

Система кривовата, но я ожидал более худшего.

Что-то 4go10_frank молчит, отключился?
Старый 15.08.2008, 18:21
4go10_frank

offline
Опыт: 2,089
Активность:
Эт самое, я думал тему уже давно закрыли xD сорри
короч господа я перевел GUI2ДЖАС, минут тридцать поизвращался над кодом и в итоге убрал ВСЕ утечки (ну или почти все, адрес памяти увеличится за 10 минут максимум на 500-600 при безостановочном движении снаряда (в оригинальном мовинг систем адрес увеличивался на 600 секунд за 8-9) причем почти без локалок, вот теперь думаю выложить в барахолку, тк возможностей больше, утечек меньше (естесно везде будет указана благодарность ВиРуСу) что скажете?
Старый 15.08.2008, 21:10
Sebra

offline
Опыт: 5,603
Активность:
Цитата:
за 10 минут максимум на 500-600

Что-то осталось в обработке столкновений.
Старый 15.08.2008, 22:05
4go10_frank

offline
Опыт: 2,089
Активность:
Мб но там я тоже подкорректил, вообще я забыл - у меня период стоит 0.02, в оригинальном мовинг систем 0.04 =) честно я офигел что гуи2джас так легко оптимизировать
нащет столкновений: правильно ли делаю - создаю спецэффект и тут же удаляю путем GetLastCreated... ?
Ну вобщем ща состряпую карту с пояснениями и выложу в наработки
Старый 15.08.2008, 22:14
Sebra

offline
Опыт: 5,603
Активность:
Цитата:
правильно ли делаю - создаю спецэффект и тут же удаляю путем GetLastCreated...
Вполне, получаешь анимацию смерти.

Цитата:
у меня период стоит 0.02, в оригинальном мовинг систем 0.04
оставь 0.04

Думаю там проблема с утечками в переборе групп.
Старый 15.08.2008, 23:34
Ответ

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

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

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

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



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