ClotPh, в карте есть незначительные утечки внутри бж функций
правда они настолько не значительны что не влияют ни на что VVelikolepniy, функция Location создаёт точку
если точка была создана то её надо удалить
чего ты не делаешь
лучше не использовать точки а напрямую работать с координатами
а юнитов создавать циклом
так и группы удалять не придётся
и да
все локальные переменные после удаления объекта надо очищать
вот пример цикла
int i=0;
int countUnits=5; // количество юнитов
loop{
exitwhen i == countUnits
i++;
// тут делай создание юнита и прочие действия
}
Я просто хотел, что бы создавался именно ОТРЯД, что бы юниты шли строем, типа что бы мечники впереди, а целители сзади
этот способ работает только на версии варика ниже 1.24 т.к. использует RB
вставь себе в карту этот код
library handlecounter initializer InitTrig_HandleCounter
private timer Timer = CreateTimer()
private leaderboard HandleBoard
function HandleCounter_Update takes nothing returns nothing
local integer i = 0
local integer id
local location array P
local real result=0
loop
exitwhen i >= 50
set i = i + 1
set P[i] = Location(0,0)
set id = GetHandleId(P[i])
set result = result + (id-0x100000)
endloop
set result = result/i-i/2
loop
call RemoveLocation(P[i])
set P[i] = null
exitwhen i <= 1
set i = i - 1
endloop
call LeaderboardSetItemValue(HandleBoard,0,R2I(result))
endfunction
function HandleCounter_Actions takes nothing returns nothing
set HandleBoard = CreateLeaderboard()
call LeaderboardSetLabel(HandleBoard, "Счетчик")
call PlayerSetLeaderboard(GetLocalPlayer(),HandleBoard)
call LeaderboardDisplay(HandleBoard,true)
call LeaderboardAddItem(HandleBoard,"Хэндлы",0,Player(0))
call LeaderboardSetSizeByItemCount(HandleBoard,1)
call HandleCounter_Update()
call TimerStart(GetExpiredTimer(),0.05,true,function HandleCounter_Update)
endfunction
function InitTrig_HandleCounter takes nothing returns nothing
call TimerStart(Timer,0,false,function HandleCounter_Actions)
endfunction
endlibrary
Сори за тупость но зачем этот редактор JNGP нужен для кода? У меня офф варик просто, он обновился недавно, а этот дерактор НЕ РАБОТАЕТ с новой версией как там написано на его сайте.
А так я пользуюсь программой JassCraft
точки утекают все по-моему
группы надо не только разрушать но и обнулять
и после беглого просмотра не полная уверенность что в группы вообще везде правильно юниты добавляются
ты возьми систему в которой знаешь что утечек нет и адаптируй под себя
уж найти такую систему должен мочь
Да, найти систему без утечек я должен мочь.. но не могу(
Да. Но лучше запиши эти данные в глобальную переменную, это, вроде, оптимальнее, чем создавать каждый раз лок. переменные.
А и еще вопрос Я где то читал что юниты из отряда тоже остаются как переменные после смерти, это правда? Может тоже истить этих юнитов после смерти отдельным триггером?
Отчисти группу после использования call GroupClear(group). Возможно это поможет.
Кстати по такой же логике можно создать отряды по инициализации карты в глобальные переменные и вызывать в триггере их каждый раз)
VVelikolepniy, Да, нужно использовать RemoveLocation(твоя локация)
А также
call DestroyGroup (destr1)
set destr1 = null
RemoveLocation(твоя локация) но я же не присваивал переменную к локации, у меня там координаты сразу. Можно ли написать RemoveLocation(5300.00, 0.00), или мне нужно в начале триггера присваивать локальную переменную координатам, а потом вызывать на место локальной переменной, а потом писать RemoveLocation(МОЯ ЛОКАЛЬНАЯ ПЕРЕМЕННАЯ). так?
А и еще вопрос Я где то читал что юниты из отряда тоже остаются как переменные после смерти, это правда? Может тоже истить этих юнитов после смерти отдельным триггером?
VVelikolepniy, меньше раз в 10.
Ваш код одна большая утечка...
Но он же просто назначает точку как цент области, заставляет двигаться юнита к этой точке и удаляет точку. А я Создаю отряд по координатам, заставляю бжать отряд а потом удаляю отряд из памяти. Вы имеее ввиду что нужно удалять из памяти назначенные точки тоже?
Открыл по твоему совету Канди вар, и вот что увидел. Разве здесь не больше утечек, чем у меня? ClotPh:
точки утекают все по-моему
группы надо не только разрушать но и обнулять
и после беглого просмотра не полная уверенность что в группы вообще везде правильно юниты добавляются
ты возьми систему в которой знаешь что утечек нет и адаптируй под себя
уж найти такую систему должен мочь
Ну вот да, я пытаюсь найти сейчас, доту открываю но там такое месиво, пока ничего не понял)
Щаз еще посмотрю в функциях как ОБНУЛЯТЬ группы!
а как тебя забанить что бы ты у меня в темах не писал?
Но тут ledoed прав, утечек действительно много. Не буду я его за это банить
Вот сижу разбираюсь, но с функцией CreateNUnitsAtLoc получается вызывать несколько юнитов, а с функцией CreateUnit не получается. Я что то не так делаю или цикл нужен? Maniac_91:
Эм.. А зачем использовать ""Location(0.00, 5300.00)" ? Можно же без точек. Примерно так:
Ред. VVelikolepniy
» WarCraft 3 / Оптимизация кода на создание юнитов для МОБА игры
» WarCraft 3 / Оптимизация кода на создание юнитов для МОБА игры
» WarCraft 3 / Переделалка триггера для создания крипов приверно как в доте.
Extremator: а вот это полезно, спасибо!
ledoed: почему тебе до сих пор бан не дали детка? я вроде отправил сообщение
» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)
Ред. VVelikolepniy
» WarCraft 3 / Триггер для выявления утечек
А так я пользуюсь программой JassCraft
» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)
Ред. VVelikolepniy
» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)
» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)
» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)
А и еще вопрос Я где то читал что юниты из отряда тоже остаются как переменные после смерти, это правда? Может тоже истить этих юнитов после смерти отдельным триггером?
Ред. VVelikolepniy
» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)
Ред. VVelikolepniy
» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)
ClotPh: Ну вот да, я пытаюсь найти сейчас, доту открываю но там такое месиво, пока ничего не понял)
Щаз еще посмотрю в функциях как ОБНУЛЯТЬ группы!
Ред. VVelikolepniy
» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)
Maniac_91: И кстати CreateNUnitsAtLoc я не нашел в том мануале, что ты скинул. Нашел эту функцию из конвертации обычного триггера
» WarCraft 3 / Оптичизация кода на Jass
Ред. VVelikolepniy
» WarCraft 3 / Оптичизация кода на Jass