Добавлен Nikitajoy
У меня есть регион в котором, в случайной точке спаунятся юниты, но регион полон объектов и юниты бывает попадают спауном в них, соответственно застревают там... Как этого избежать?
Принятый ответ
Работай с real (числа с запятой) вместо регионов, занеси в бд или проверяй условиями нужные координаты и выбирай.
Точка не будет утекать, если хранить одну точку в глобальной переменной и для мгновенных операций перемещать ее и использовать дальше по назначению.
Точка не будет утекать, если хранить одну точку в глобальной переменной и для мгновенных операций перемещать ее и использовать дальше по назначению.
- В шапку над триггерами вставляешь этот код:
function RegionInit takes nothing returns nothing
//17/11/2016
set udg_GL = Location(0.0, 0.0)
set udg_RegionNumber = GetRandomInt(1, 4) // выбрать количество регионов
set udg_RegionX1 = GetRectMinX(udg_Region[udg_RegionNumber])
set udg_RegionY1 = GetRectMinY(udg_Region[udg_RegionNumber])
set udg_RegionX2 = GetRectMaxX(udg_Region[udg_RegionNumber])
set udg_RegionY2 = GetRectMaxY(udg_Region[udg_RegionNumber])
endfunction
- Создаешь глобальные переменные типа:
- точка с названием GL
- регион массив с названием Region
- целочисленная с названием RegionNumber - для хранения номера выбранного региона
- реальное число с названиями RegionX1, RegionX2, RegionY1, RegionY1 - для хранения координат выбранного региона
call RegionInit()
- Перед каждым созданием юнита вставляешь кастом скрипт:
call MoveLocation(udg_GL, GetRandomReal(udg_RegionX1, udg_RegionX2), GetRandomReal(udg_RegionY1, udg_RegionY2))
В окне действия с созданием юнита используешь свою переменную GL
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Разбить регион на под регионы, чтобы те огибали всякие объекты. Затем эти регионы объединять в единый посредством переменных в триггерах. Если сделать все правильно, то прописанный регион становится единым. Затем уже через триггеры задаешь именно этот регион, который ты слепил из нескольких. Пример показан на приложеном графике.
Нашлепать кучу мелких регионов и работать с каждым вручную.
Проверять на проходимость можно с помощью создания предмета в нужной точке и сравнении фактических координат предмета с заданными.
Отредактирован Sozidar
Отредактирован JaBeN_Симфер
Точка не будет утекать, если хранить одну точку в глобальной переменной и для мгновенных операций перемещать ее и использовать дальше по назначению.
Всем спасибо вопрос можно закрывать