PT153, а в чем я не прав? человек говорит, что у него ~1000 точек создается в минуту, а он даже не понимает, что половина из них даже не обрабатывается
БЕЗДЫРИ, это что за хрень вообще тут написана??????? call RemoveLocation(p) - алло? она вообще-то утечки создает)))
call MoveLocation(p, GetLocationX(p) + r* CosBJ(a), GetLocationY(p) + r * SinBJ(a)) - это че типо, триггеры конвертировал - умеешь в jass? что за позор! Используйте нативные функции.
Если кто-то очень далек от любого программирования, точки представляют собой ссылочный тип. Если ты удалишь точку, то она удалится их всех твоих переменных на карте. Нужно использовать x,y.
И вот эта хрень еще подается, как устранение утечек, удалите этот позор!
в общем дикпик справляется нереально, мы с ним заменили уже множество скриптов, 0 ошибок от него. Все скрипты компалятся. Он даже, не спрашивая заменяет BJ на нативки.
Про утечки и нативки я понял абсолютно все. Я бы с удовольствием писал бы все сам и буду писать. Но исправлять 1000 скриптов вручную - это жесть.
IzobretatelBoom:
ну я же тебя спросил, где утечка, а ты вообще ничего не понимаешь... биджей, сиджей какие-то
а по итогу оказывается, что call DestroyGroup ( GetLastCreatedGroup() ) - я здесь еще 3 утечки наплодил
и он мне это все расписал, и я все понял, а ты и дальше будешь думать, что утечки в bj))))
Короче Дипсик все решил, буду теперь писать напрямую ему. Вот реально, тупо не юзал ии-шники, потому что думал они не настолько сейчас продвинуты. Еще он сказал скинуть ему весь код карты, он одним скриптом все перепишет без утечек за секунду.
Вот его решение.
set a = GetUnitLoc(GetTriggerUnit())
set g = GetUnitsInRangeOfLocAll(400.00, a, Condition(function prorokvelenc))
call ForGroupBJ(g, function prorokvelenc)
call DestroyGroup(g)
call RemoveLocation(a)
set a = null
set g = null
Почитал про утечки, принцип понял. Скажите, пожалуйста, знающие люди.
Вот этот вызов оставит утечки?
set a = GetUnitLoc(GetTriggerUnit())
call ForGroupBJ( GetUnitsInRangeOfLocMatching(400.00, a, Condition(function prorokvelenC)), function prorokvelenA )
call DestroyGroup ( GetLastCreatedGroup() )
call RemoveLocation ( a)
set a = null
или группу обязательно до этого в переменную пихать?
Tredor46, то есть это не временно отключает триггер? на что тогда влияет функция DisableTrigger? EnableTrigger включает триггеры, которые были отключены в редакторе?
Снова вернул новые оперативки (3400MHz) и снизил их скорость до значения старых (2.666) MHz. Работает стабильно, так что вероятнее всего именно скорость оперативки приводила к ошибке. Сейчас буду тестировать на скорости 3000 MHz.
После того, как я вычистил весь комп, включая оперативу, и фаталки не исчезли. Решил вернуть свою старую память и вуаля, не вылетает больше. Похоже Рефорджед очень плохо работает с железом, по непонятным причинам вылетало из-за оперативной памяти, которая и быстрее и с большим запасом.
выставка на минимальные не помогла, попробую на старых плажках сыграть, если их еще не продали. Касательно первого варианта я вообще все почти с компа стер и с оперативки.
konvan5, я тестирую сейчас только Reforged, поскольку под него сейчас карта. Еще залез крч сейчас в файлы оперативки, по-моему чистка кэша игры в какой-то момент времени моей работы с Warcraft помогала.
» Game Dev / Brain Race - Гонка Умов
» Game Dev / Brain Race - Гонка Умов
» WarCraft 3 / Gothic pack
» WarCraft 3 / 10. Оптимизация: утечки памяти
» WarCraft 3 / 10. Оптимизация: утечки памяти
call MoveLocation(p, GetLocationX(p) + r* CosBJ(a), GetLocationY(p) + r * SinBJ(a)) - это че типо, триггеры конвертировал - умеешь в jass? что за позор! Используйте нативные функции.
Если кто-то очень далек от любого программирования, точки представляют собой ссылочный тип. Если ты удалишь точку, то она удалится их всех твоих переменных на карте. Нужно использовать x,y.
И вот эта хрень еще подается, как устранение утечек, удалите этот позор!
» WarCraft 3 / Вылетает карта
» WarCraft 3 / Вылетает карта
ну я же тебя спросил, где утечка, а ты вообще ничего не понимаешь... биджей, сиджей какие-то
а по итогу оказывается, что call DestroyGroup ( GetLastCreatedGroup() ) - я здесь еще 3 утечки наплодил
и он мне это все расписал, и я все понял, а ты и дальше будешь думать, что утечки в bj))))
» WarCraft 3 / Вылетает карта
Вот его решение.
set a = GetUnitLoc(GetTriggerUnit())
set g = GetUnitsInRangeOfLocAll(400.00, a, Condition(function prorokvelenc))
call ForGroupBJ(g, function prorokvelenc)
call DestroyGroup(g)
call RemoveLocation(a)
set a = null
set g = null
» WarCraft 3 / Вылетает карта
» WarCraft 3 / Вылетает карта
» WarCraft 3 / Вылетает карта
» WarCraft 3 / Вылетает карта
Вот этот вызов оставит утечки?
set a = GetUnitLoc(GetTriggerUnit())
call ForGroupBJ( GetUnitsInRangeOfLocMatching(400.00, a, Condition(function prorokvelenC)), function prorokvelenA )
call DestroyGroup ( GetLastCreatedGroup() )
call RemoveLocation ( a)
set a = null
» Game Dev / Brain Race - Гонка Умов
» WarCraft 3 / Удаляются ли юниты из карты после разложения?
» WarCraft 3 / Redemption 2.05j
Ред. TeX13
» WarCraft 3 / Что вообще делает в триггере Initially on?
» Game Dev / Brain Race - Гонка Умов
» WarCraft 3 / Краши игры спустя примерно 5 минут Reforged
» WarCraft 3 / Краши игры спустя примерно 5 минут Reforged
» WarCraft 3 / Краши игры спустя примерно 5 минут Reforged
» WarCraft 3 / Краши игры спустя примерно 5 минут Reforged
» WarCraft 3 / Краши игры спустя примерно 5 минут Reforged
» WarCraft 3 / Redemption 2.05j
» WarCraft 3 / Redemption 2.05j