Запустил в новом редакторе карту, все работает, вроде даже загрузилась чуть быстрее, правда, там лагают пикчи послушников, иии... Анимация огня убойная, ну в принципе вопрос не за то, спецэффекты и сами там можете посмотреть.
Я запустил эту карту, тестил ее, ничего не предвещало беды, как юзнул я скилл, работающий как скиллшот, и тут все залагало, просто как жесть, невозможно не то что играть, даже выключить игру.
Я чекнул, все вроде на месте, если попасть этим скилшотом, то все хорошо, как только промахиваешься, все, игра лагает.
Вопрос, какого хрена?
P.S. скилл на 1.27b работал замечательно

Принятый ответ

затраты на ИНИЦИАЛИЗАЦИЮ локалки (байт-код это требует, но это проформа) - ничтожны, по любым меркам. А создание группы в цикле что в локалке, что в глобалке - это маразм
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
32
5 лет назад
2
Тут миллион утечек + зацикливпние если никуда не попал, ну кто так делает?
0
10
5 лет назад
0
quq_CCCP:
Тут миллион утечек + зацикливпние если никуда не попал, ну кто так делает?
Есть рекомендации? Как исправить?
0
26
5 лет назад
0
Поищи на сайте про удаление точек и групп, а то начал было подробно печатать, так много букв получилось, что самому страшно)
Нужно делать проверку проходимости позиции be1 первым действием во втором триггере, а самого be1 нужно в первом триггере задать. Если проходимость не позволяет летать, то стоп таймер и удалить be1.
0
10
5 лет назад
Отредактирован Taurenus
0
8gabriel8:
Поищи на сайте про удаление точек и групп, а то начал было подробно печатать, так много букв получилось, что самому страшно)
Нужно делать проверку проходимости позиции be1 первым действием во втором триггере, а самого be1 нужно в первом триггере задать. Если проходимость не позволяет летать, то стоп таймер и удалить be1.
B*ya я забыл 3 триггер
Загруженные файлы
1
8
5 лет назад
1
Вроде как Варкрафт к 1.31 стал более щепителен к утечкам из-за того что стал поддерживать 64 разряда. То есть, кол-во байтов, которое может утечь, увеличено в два раза.
0
10
5 лет назад
Отредактирован Taurenus
0
Еще вот что нашел, если ты попал по юниту, то все хорошо, если нет, то лагает, с каждым прожатием, все сильнее лагает, до этого, когда все залагало в первый раз, я юзнул способность только 1жды. И все зависло. Чем медленнее летит снаряд, тем больше нужно раз выстрелить чтоб залагало, отключил jass helper, все стало вроде нормально, включил обратно, включил оптимизатор и еще что то там, сначала было круто, но после 50-60 выстрела, было невозможно даже исправить все это. А да точно. Если ты попадал в цель во время лагов, до все проходило, но при повторном промахе, все опять лагало, только чуть хуже.
Tovio 8gabriel8: quq_CCCP:
2
26
5 лет назад
2
Taurenus, ещё раз повторю. Делай проверку проходимости и ищи про удаление точек и групп. Когда москиты не попадают в цель, то летят за край карты. Если в 1.27 всё нормально, а в 1.31 нет, значит там иначе обрабатывается вылет за карту и точки с группами, а они у тебя каждые 0.01 секунды создаются.
0
10
5 лет назад
0
8gabriel8:
Taurenus, ещё раз повторю. Делай проверку проходимости и ищи про удаление точек и групп. Когда москиты не попадают в цель, то летят за край карты. Если в 1.27 всё нормально, а в 1.31 нет, значит там иначе обрабатывается вылет за карту и точки с группами, а они у тебя каждые 0.01 секунды создаются.
Я кароче нашел траблу, я меня в карты, стоит, что каждый 7 умерший юнит - враг желтого игрока, идет в +1 к спавну новых желтых юнитов.
Кароче вся карта в желтых волках, все убрал их в исключение, вроде норм.
Но вот то, почему при попадании лаги исчезали, а при промахе хуже становилось. Учитывая что вся проблема в этом, короче очень странно.
0
28
5 лет назад
0
В 1.31 кол-во операций до обрубания больше.
0
19
5 лет назад
0
Короче не приводит способность в действие,а начинает направлять способность. Когда уже применяет позиция куда ты указал уже потеряна.Еще лучше создай и обнули точку,в которой собрался что то там сделать ,а еще лучше ипользуй координаты х y.Варкрафт туповатый и медленный,он многое просто Не успевает ,отсюда и лаги.
Второе .Pick every unit - это самая утечная утечка на свете.Создай группу пикнутых тобой юнитов и добавь в группу их,а потом удалишь эту переменную и группу
Третье.Пришел час использовать локалки,раз ты безумный триггерщик, просто потому,что запись в локалку происходит мгновенно,и можно перезаписывать хоть миллионы раз.Только не забудь потом обнулить локалку в конце функции,иначе потекет,как у моей бышей
0
28
5 лет назад
Отредактирован PT153
0
У тебя каждые 0.01 утекают локации и группы. Утечку группы можно убрать, поставив перед вызовом set bj_wantDestroy = true, для локаций нужно создать переменную и её постоянно чистить. Поставь период на 1. / 64. И зачем ты постоянно стартуешь периодический таймер, а внутри триггера его паузишь?

Ну и самое главное. Если вокруг пули в радиусе 80 есть N юнитов, то пуля нанесёт урон каждому в радиусе 150 N раз и будет создано N новых пуль.
0
29
5 лет назад
0
то запись в локалку происходит мгновенно
Запись в локалку ничем не отличается от записи в глобалку.

Чисто технически в глобалку писать ещё быстрее ибо не нужно выделять место для локалки.
0
19
5 лет назад
0
NazarPunk:
то запись в локалку происходит мгновенно
Запись в локалку ничем не отличается от записи в глобалку.

Чисто технически в глобалку писать ещё быстрее ибо не нужно выделять место для локалки.
Отличается.Во первых обращение в локалку быстрее.Я уже писал,что при написании из триггера глобалки просто могут не успеть,они и так не успевают.
0
29
5 лет назад
0
Во первых обращение в локалку быстрее
Почему?
SсRealm:
что при написании из триггера глобалки просто могут не успеть
Тесты в студию.
0
32
5 лет назад
0
Я бы не сказал что быстрее, мб поиск переменной будет быстрее, ибо пока он там найдет глобалку в самом начале, локалка же обьявляется вначале функции, аргументы функций чисто технически такие же локалки. Про не поспевание какой то несуразный бред, прошу разьеснить - а как это так?.
На объявления локалок требуется время, и память точно так же выделяется.
0
16
5 лет назад
0
что я ваще такое прочитал? локалки и глобалки - ваще похер игре, это всё в одном котле компилится
0
29
5 лет назад
0
локалки и глобалки - ваще похер игре
Не совсем. Например, если нужно 1\32 раза в секунду создавать группу, а потом её уничтожать, то проще завести глобальную группу и оперировать ей. Ведь логияно же, что на создание локальной переменной расходуюутся ресурсы.

Особенно заметна разница, когда в цикле вместо MovePoint создаётся точка и потом удаляется.
0
16
5 лет назад
Отредактирован DracoL1ch
0
затраты на ИНИЦИАЛИЗАЦИЮ локалки (байт-код это требует, но это проформа) - ничтожны, по любым меркам. А создание группы в цикле что в локалке, что в глобалке - это маразм
Принятый ответ
0
29
5 лет назад
0
А создание группы в цикле что в локалке, что в глобалке - это маразм
Этим маразмом все гуишники занимаются, когда снаряды делают))
Чтобы оставить комментарий, пожалуйста, войдите на сайт.