Добавлен 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_Симфер
Точка не будет утекать, если хранить одну точку в глобальной переменной и для мгновенных операций перемещать ее и использовать дальше по назначению.
Всем спасибо вопрос можно закрывать