Нашёл описание как убрать утечку полярных координат. Через Custom Script определяются переменные (которые Я определил без Custom Script-а), и опытным путём (менял на стандартную функцию) удалось установить что главная строчка не работает, всё остальное работает и это не нужно здесь приводить. Копирую вам прямо из Custom Script-а, как есть:
call MoveLocation(udg_GlobalCurrentPoint1, GetLocationX(udg_GlobalCurrentPoint1) + udg_GlobalCurrentReal1 * CosBJ(udg_GlobalCurrentAngle), GetLocationY(udg_GlobalCurrentPoint1) + udg_GlobalCurrentReal1 * SinBJ(udg_GlobalCurrentAngle))

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

Сделал так. Использую только MoveLocation..., можно даже вообще не удалять переменную точки а лишь двигать её, как курсор мыши, и указывать молниеносно и невидимо для всех триггеров одной точкой что и куда им делать. Все стрелы полетели как надо, в россыпь. Хотя когда Я делаю удаление точки в конце, это не отражается на следующем вызове триггера, так что можно и удалять, главное не удалять когда она ещё нужна до завершения триггера. Проверил на Хендлах, один Хендл создаётся один раз, чтобы объявить эту точку, а то что двигаю в цикле никак не прибавляет Хендлы. Получилась точка-указатель, как курсор мыши, и одной хватает, ведь Warcraft однопоточный. Оставлю ещё вопрос открытым на несколько часов, может Я не прав и кто-то меня поправит.

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
7
6 лет назад
0
quq_CCCP, Делаю полный скрин как есть, того участка кода на котором остановился, со всеми отключениями, как есть. Суть заклинания в том, что по краям карты появляются невидимые лучники, которые по этому триггеру выпускают стрелы, и они сыпятся как Дождь Стрел, и всё выглядит круто, их выбрать нельзя и не видно. Здесь три группы по 12 лучников, и 19 залпов, выпускают 684 стрелы, и им нужно указывать каждый раз случайную точку, куда летит каждая стрела вроссыпь, тут-то мне и нужны полярные координаты которые указывают случайные точки от места указанного заклинанием. И когда нужно использовать RemoveLocation ... происходит тихая остановка триггера, когда же Я использую просто set ... = null, всё идёт, но Я не знаю решает ли это проблему утечки. Я сделал появление Еретика, просто выбрал случайно юнита, чтобы понять сколько раз исполняется команда, один появился. Отключая эту функцию, появляется множество, что как бы намекает что проблема в ней.
На всякий случай делаю ещё два скрина того что до- этого блока кода, и того что после-,но не думаю что проблема там...
0
26
6 лет назад
0
мощно, удалять точку, а потом удивляться почему ничего не работает
0
7
6 лет назад
0
Hate, Ну так Я её удаляю в конце прохода! А потом новый проход цикла и снова объявляю переменную, уже для другого юнита. Однако если старую не удалить сразу, а просто перезаписать переменную новой точкой, то старая точка останется, и расплодится их целая уйма, тысячи будут. В том то и смысл чтобы удалять точки!
Hate, Вот как Я удаляю точку после каждого прохода! Чтобы надёжно было... Потом объявляю заново переменную. А как иначе?
Всё. Убрал полностью удаление точки. Включил снова MoveLocation... - не работает. Сижу ломаю голову дальше...
Загруженные файлы
0
18
6 лет назад
0
Если вылетает из-за длины строк - сокращай названия переменных.
0
7
6 лет назад
0
Сделал так. Использую только MoveLocation..., можно даже вообще не удалять переменную точки а лишь двигать её, как курсор мыши, и указывать молниеносно и невидимо для всех триггеров одной точкой что и куда им делать. Все стрелы полетели как надо, в россыпь. Хотя когда Я делаю удаление точки в конце, это не отражается на следующем вызове триггера, так что можно и удалять, главное не удалять когда она ещё нужна до завершения триггера. Проверил на Хендлах, один Хендл создаётся один раз, чтобы объявить эту точку, а то что двигаю в цикле никак не прибавляет Хендлы. Получилась точка-указатель, как курсор мыши, и одной хватает, ведь Warcraft однопоточный. Оставлю ещё вопрос открытым на несколько часов, может Я не прав и кто-то меня поправит.
Принятый ответ
0
29
6 лет назад
0
Прав, метод нормальный и рабочий, хоть и совершенно дурацкий, т.к. все можно делать тупо координатами.
0
7
6 лет назад
0
Doc, Поподробней напиши альтернативу. Посмотрим, может и впрямь откажусь.
И вдогонку вопрос, как написать в MoveLocation... координаты центра карты, чтобы объявить в начале инициализации карты как стартовую точку?
0
29
6 лет назад
0
Решение с координатами будет нормально работать на чистом джассе, т.к. все нативные функции кроме GetLocationZ принимают именно координаты.
0
7
6 лет назад
0
на чистом джассе
Тогда отбой! Я умышленно не работаю на jass-е сейчас. Обойдусь!
Про центр карты видимо не знаешь?
0
26
6 лет назад
0
стартовые координаты всегда нули..
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.