Я тут начал задумываться о том, что если карта будет большая, а полностью избежать всех утечек, почти невозможно, то стоит хотя бы, минимизировать их по максимуму. Особенно это касается часто повторяющихся действий... Скажите... Есть ли в этом триггере, который проверяет, область применения заклинания "пустышки", на наличие декораций определённого типа. Вроде как, варкрафт создаёт "точки" на любую ерунду которую захочет, и их нужно чистить. Как это сделать в этом триггере? Если имеется. И по возможности, пару действенных способов, обезопасить себя по максимуму, от подобного, на GUI. Заранее спасибо неравнодушным людям.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
10
1 год назад
0
вот
Загруженные файлы
1
29
1 год назад
1
а полностью избежать всех утечек, почти невозможно
С чего бы это?
обезопасить себя по максимуму, от подобного, на GUI
Перейти на jass / vjass / zinc.
0
22
1 год назад
Отредактирован PROSHELDOTU
0
всё возможно
утечка, это если ты создал объект, а потом не удалил, когда он больше не нужен
хуже всего если это происходит вызовом каждые 0.01 сек
в триггерах должны быть действие в категории Точка, с ними взаимодействуй
к моему удивлению, у меня в версии 1.31 такой категории триггеров тупо нет 0_0
хотя она мне и никогда не была нужна, очень давно в 99% случаев юзаю тупа координаты
вот для работы с точкой:
native Location					takes real x, real y returns location
native RemoveLocation		takes location whichLocation returns nothing
native MoveLocation			takes location whichLocation, real newX, real newY returns nothing
native GetLocationX			takes location whichLocation returns real
native GetLocationY			takes location whichLocation returns real

Есть ли утечки, в этом простом триггере?
есть две, но не значительные, особенно если способность Добыть будет вызываться всего раз в минуту
точка и область
0
29
1 год назад
0
к моему удивлению, у меня в версии 1.31 такой категории триггеров тупо нет 0_0
Потому что её добавили в JNGP пробросив нативку. У меня всё руки не доходят все нативки добавить в JNGP.
0
22
1 год назад
0
Потому что её добавили в JNGP
та и пофиг ) код рулез
0
18
1 год назад
0
2 утечки - region centered и target point of ability, их надо в отдельные переменные вешать, а потом вычищать.
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
Хотя я и не представляю как искать ближайшую декорацию
Недавно отвечал на вопрос. Там всё реализовано.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.