Я тут начал задумываться о том, что если карта будет большая, а полностью избежать всех утечек, почти невозможно, то стоит хотя бы, минимизировать их по максимуму. Особенно это касается часто повторяющихся действий... Скажите... Есть ли в этом триггере, который проверяет, область применения заклинания "пустышки", на наличие декораций определённого типа. Вроде как, варкрафт создаёт "точки" на любую ерунду которую захочет, и их нужно чистить. Как это сделать в этом триггере? Если имеется. И по возможности, пару действенных способов, обезопасить себя по максимуму, от подобного, на GUI. Заранее спасибо неравнодушным людям.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
3
1 год назад
0
2 утечки - region centered и target point of ability, их надо в отдельные переменные вешать, а потом вычищать.
Звук вроде как тоже считается утечкой не? После проигрывания надо удалить его.
0
18
1 год назад
Отредактирован EugeAl
0
gellin, если он локальный, но на гуи звуки глобальные все. Глобалки с именами gg_sound или gg_snd, что то из этого. Функция в джассе StartSound, которая тут из гуи пишется через PlaySoundBJ, не returns sound
0
6
1 год назад
Отредактирован Real60Hz
0
Чтоб избежать утечек здесь надо две переменные.
Точка (Location) и Регион (Rect).
Сначала задаешь точку и в нее заносишь Target point of ability being cast.
Потом создаешь Регион на основе этой точки.
Как я понял ты хочешь проверить есть ли на точке разрушаемый объект, то есть руда. Не совсем корректный способ ты выбрал, ибо если при такой проверке там будет не только руда, то может такой код и не сработать.
Чтобы сделать корректно надо в уже созданном регионе Pick every destructible in rect and do multiple actions. После чего снизу берешь if then else и делаешь проверку Destructible-type на свою руду и снизу делаешь нужный тебе код. Косяк такого подхода в том, что на каждую руду будет срабатывать проверка, чтобы сработало только на одну из нескольких, тебе лучше сделать логическую (boolean) переменную и через ее проверку когда первый раз отберешь нужную декорацию переключать логическую и таким образом будет срабатывать только на одну руду из допустим трех.
Забыл добавить. В конце всего чтобы почистить утечки надо сделать два кастомных скрипта.
custom script: call RemoveLocation(udg_название точки)
custom script: call RemoveRect(udg_название региона)
Если что спрашивай тут же в комментариях вопросы.
0
29
1 год назад
0
Real60Hz, желательно искать не рандомную, а ближайшую. И лучше это делать кодом, тогда можно вообще не париться с Location.
0
6
1 год назад
Отредактирован Real60Hz
0
Real60Hz, желательно искать не рандомную, а ближайшую. И лучше это делать кодом, тогда можно вообще не париться с Location.
Я не знаю в каком именно порядке варкрафт энамит, по-моему подозрению слева направо сверху вниз. Поэтому первой декорацией всегда будет одна и та же если энамить один и тот же рект.
Чтобы энамить ближайшую декорацию надо еще и расстояние в цикле сравнивать. Тут явно не уровень автора пока что.
upd. Хотя я и не представляю как искать ближайшую декорацию, с юнитами знаю как обойтись. А вот с декорациями -.-
Я и сам все кодом делаю сейчас, просто когда-то тоже на кастом скриптах и гуи переменных жил, для автора вопроса решил немного вспомнить.
0
29
1 год назад
0
Хотя я и не представляю как искать ближайшую декорацию
Недавно отвечал на вопрос. Там всё реализовано.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.