У меня карта с множеством волн, проблема складывается из за утечки, которая появляется во время их долгого спавна где то на 50 мин игры. Уже и пробовал вынести локации отдельно в глобальне для уменьшения утечек, но все же текут именно Handle созданных юнитов, хотя при их смерти юниты удаляются. Карта делается на Jass. Ставил счетчик и при волнах, было множество утечек Handle. С этими волнами юнитов, возможно хоть как то бороться, знаю если скопировать юнита в редакторе, он будет иметь одинаков handle, такое нельзя как то использовать в карте, что бы для юнитов не создавались новые, переменная у меня одна, для юнитов(глобальная), что бы избежать частого создания, просто обнуляється в конце всех действий.
Или все таки придется усиливать монстров и делать их количество к минимуму, сейчас их не особо много бегает., но теперь начинаю думать и это уменьшить.

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

Ну еще и 100500 юнитов могут начать лагать, 60+ на игрока которые куда то бегут уже не хорошо.
Так же советую сделать всех юнитов суммонами, чтобы они не разлагались
call UnitApplayTimedLife( unit, 'BFig', 0.00 ) это существенно снизит нагрузку на движок
P.S в ваших юнитах совсем не разобрался, какой то кавардак - нету четкого разделения на юнитов для волн, боссы, суммоны героев, герои игроков....
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
8 лет назад
0
Ну про волы поподробнее, то у вас там не все так уж явно, с верху вниз пробежался и глянул, еще у вас походу крипы спаунятся постоянно?
0
6
8 лет назад
Отредактирован FlyTab
0
quq_CCCP:
Ну про волы поподробнее, то у вас там не все так уж явно, с верху вниз пробежался и глянул, еще у вас походу крипы спаунятся постоянно?
В зависимости от того сколько разрушенных костяных заводов, сначала 3 раза переключаються, отключая предыдущий спавн, а последний добавляется, дополнительно к предпоследнему. На центре когда атакуешь баззу отключаются пред последние и включается центральный финальный, последние с големами остаются. Функция в первом триггере. Переключения в SwitchAttacker, пока там не было никаких правок.
0
32
8 лет назад
0
Ну еще и 100500 юнитов могут начать лагать, 60+ на игрока которые куда то бегут уже не хорошо.
Так же советую сделать всех юнитов суммонами, чтобы они не разлагались
call UnitApplayTimedLife( unit, 'BFig', 0.00 ) это существенно снизит нагрузку на движок
P.S в ваших юнитах совсем не разобрался, какой то кавардак - нету четкого разделения на юнитов для волн, боссы, суммоны героев, герои игроков....
Принятый ответ
0
20
8 лет назад
0
Так же советую сделать всех юнитов суммонами, чтобы они не разлагались
call UnitApplayTimedLife( unit, 'BFig', 0.00 ) это существенно снизит нагрузку на движок
Мм... Дай сабж с такой инфой почитать.
0
32
8 лет назад
0
Diaboliko:
Так же советую сделать всех юнитов суммонами, чтобы они не разлагались
call UnitApplayTimedLife( unit, 'BFig', 0.00 ) это существенно снизит нагрузку на движок
Мм... Дай сабж с такой инфой почитать.
У говорящего с думами вызови волка и убей, кости останутся ? (нет, вызванные не разлагаются а сразу каюк, без кишков и крови)
0
16
8 лет назад
0
quq_CCCP, а если в редакторе просто поубирать галочки «разлагается», разве не то же самое будет?
0
6
8 лет назад
0
avuremybe:
quq_CCCP, а если в редакторе просто поубирать галочки «разлагается», разве не то же самое будет?
Мне все равно их убивать нужно, игра тормозит с командами если юнитов на карте больше какого то n-го количества и они попадают в ступор и идут по 3 шага, было такое до таймера смерти.
quq_CCCP:
Ну еще и 100500 юнитов могут начать лагать, 60+ на игрока которые куда то бегут уже не хорошо.
Так же советую сделать всех юнитов суммонами, чтобы они не разлагались
call UnitApplayTimedLife( unit, 'BFig', 0.00 ) это существенно снизит нагрузку на движок
P.S в ваших юнитах совсем не разобрался, какой то кавардак - нету четкого разделения на юнитов для волн, боссы, суммоны героев, герои игроков....
За ту команду не знаю, вроде как она хуже 'BTLF', так как при этой команде юниты умирают без эффектов, а здесь они вызывают молнию и на примере Дамми юнитов уже плохо получается.
Подправил пока, тот что вы дали удалил там эффект молний из заклинания.
1
7
8 лет назад
Отредактирован Ige
1
игра тормозит с командами если юнитов на карте больше какого то n-го количества и они попадают в ступор и идут по 3 шага, было такое до таймера смерти.
FlyTab, можно распределить монстров между игроками, тогда они не будут так "тупить". Используй нейтралов для этой цели.

И дело тут не в утечках, это баг/фича самого варкрафта
0
6
8 лет назад
Отредактирован FlyTab
0
Если хорошо разбираетесь помогите с утечкой 6 Handle в способности Волна Силы (Вождя минотавров), называется "Trigger0PowerWave" в способностях триггер. Уже кажись все перепробовал, но меньше 6 никогда не становится.
Количество переменных уменьшил до двух и Хеш таблицы. Но ниже 6 никак не падает, хотя хеш чиститься точно, после действий.
Загруженные файлы
1
7
8 лет назад
Отредактирован Ige
1
FlyTab, создаёшь точки (location) и не удаляешь их

здесь
SaveUnitHandle(Hash,GetHandleId(GetExpiredTimer()),6,CreateUnitAtLoc(LoadPlayerHandle(Hash,GetHandleId(GetExpiredTimer()),4), 'h005', Location(LoadReal(Hash,GetHandleId(GetExpiredTimer()),2), LoadReal(Hash,GetHandleId(GetExpiredTimer()),3)), LoadReal(Hash,GetHandleId(GetExpiredTimer()),1) ))

SaveUnitHandle(Hash,GetHandleId(GetExpiredTimer()),7,CreateUnitAtLoc(LoadPlayerHandle(Hash,GetHandleId(GetExpiredTimer()),4), 'h005', Location(LoadReal(Hash,GetHandleId(GetExpiredTimer()),2), LoadReal(Hash,GetHandleId(GetExpiredTimer()),3)), (LoadReal(Hash,GetHandleId(GetExpiredTimer()),1) - 45.00)))

SaveUnitHandle(Hash,GetHandleId(GetExpiredTimer()),8,CreateUnitAtLoc(LoadPlayerHandle(Hash,GetHandleId(GetExpiredTimer()),4), 'h005', Location(LoadReal(Hash,GetHandleId(GetExpiredTimer()),2), LoadReal(Hash,GetHandleId(GetExpiredTimer()),3)), (LoadReal(Hash,GetHandleId(GetExpiredTimer()),1) + 45.00)))
и здесь
        call IssuePointOrderLoc(LoadUnitHandle(Hash,GetHandleId(GetExpiredTimer()),6+IntVarA1), OrderId2String(852125), Location(LoadReal(Hash,GetHandleId(GetExpiredTimer()),2), LoadReal(Hash,GetHandleId(GetExpiredTimer()),3)))
0
6
8 лет назад
0
Ige:
FlyTab, создаёшь точки (location) и не удаляешь их

здесь
SaveUnitHandle(Hash,GetHandleId(GetExpiredTimer()),6,CreateUnitAtLoc(LoadPlayerHandle(Hash,GetHandleId(GetExpiredTimer()),4), 'h005', Location(LoadReal(Hash,GetHandleId(GetExpiredTimer()),2), LoadReal(Hash,GetHandleId(GetExpiredTimer()),3)), LoadReal(Hash,GetHandleId(GetExpiredTimer()),1) ))

SaveUnitHandle(Hash,GetHandleId(GetExpiredTimer()),7,CreateUnitAtLoc(LoadPlayerHandle(Hash,GetHandleId(GetExpiredTimer()),4), 'h005', Location(LoadReal(Hash,GetHandleId(GetExpiredTimer()),2), LoadReal(Hash,GetHandleId(GetExpiredTimer()),3)), (LoadReal(Hash,GetHandleId(GetExpiredTimer()),1) - 45.00)))

SaveUnitHandle(Hash,GetHandleId(GetExpiredTimer()),8,CreateUnitAtLoc(LoadPlayerHandle(Hash,GetHandleId(GetExpiredTimer()),4), 'h005', Location(LoadReal(Hash,GetHandleId(GetExpiredTimer()),2), LoadReal(Hash,GetHandleId(GetExpiredTimer()),3)), (LoadReal(Hash,GetHandleId(GetExpiredTimer()),1) + 45.00)))
и здесь
        call IssuePointOrderLoc(LoadUnitHandle(Hash,GetHandleId(GetExpiredTimer()),6+IntVarA1), OrderId2String(852125), Location(LoadReal(Hash,GetHandleId(GetExpiredTimer()),2), LoadReal(Hash,GetHandleId(GetExpiredTimer()),3)))
Даже при таком изменении где то течет на 2 Handle, узнать бы где :(
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.