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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
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, узнать бы где :(
0
7
8 лет назад
0
FlyTab, как раз 6 выходит, последняя функция выполняется 3 раза, т.к. находится в цикле
    loop 
        exitwhen  IntVarA1 > 2
		//
        call IssuePointOrderLoc(LoadUnitHandle(Hash,GetHandleId(GetExpiredTimer()),6+IntVarA1), OrderId2String(852125), Location(LoadReal(Hash,GetHandleId(GetExpiredTimer()),2), LoadReal(Hash,GetHandleId(GetExpiredTimer()),3)))
		//
        set IntVarA1 = IntVarA1 + 1
    endloop
0
6
8 лет назад
0
Ige:
FlyTab, как раз 6 выходит, последняя функция выполняется 3 раза, т.к. находится в цикле
    loop 
        exitwhen  IntVarA1 > 2
		//
        call IssuePointOrderLoc(LoadUnitHandle(Hash,GetHandleId(GetExpiredTimer()),6+IntVarA1), OrderId2String(852125), Location(LoadReal(Hash,GetHandleId(GetExpiredTimer()),2), LoadReal(Hash,GetHandleId(GetExpiredTimer()),3)))
		//
        set IntVarA1 = IntVarA1 + 1
    endloop
Уже выловил утечку, да уж, при цикле оказывается терялась ссылка на локацию и потому даляло 1 шт, вместо 3 и вот оттуда 2шт лишних, теперь нету спасибо.
quq_CCCP:
Ну еще и 100500 юнитов могут начать лагать, 60+ на игрока которые куда то бегут уже не хорошо.
Так же советую сделать всех юнитов суммонами, чтобы они не разлагались
call UnitApplayTimedLife( unit, 'BFig', 0.00 ) это существенно снизит нагрузку на движок
P.S в ваших юнитах совсем не разобрался, какой то кавардак - нету четкого разделения на юнитов для волн, боссы, суммоны героев, герои игроков....
Это как раз то что искал, проверил при спавне 200 монстров, Handle удалялись как положено и возвращались в исходное состояние, тем самым лишая проблемы. Тему закрываю.
Ige:
игра тормозит с командами если юнитов на карте больше какого то n-го количества и они попадают в ступор и идут по 3 шага, было такое до таймера смерти.
FlyTab, можно распределить монстров между игроками, тогда они не будут так "тупить". Используй нейтралов для этой цели.

И дело тут не в утечках, это баг/фича самого варкрафта
Я из за этого отказался от команды Атака, при которой был полезный эффект в виде, кастования магии врагами.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.