Вертаюсь к старому стилю вопросов. Как говорится, вопрос уже в названии. Пытаюсь замутить такую штуку - Древо Войны выращивает энтов и прочих прямо из рядом стоящих деревьев. А так же обладает способностью оные самые затраченные деревья выращивать по новой. Ради удобство игрока, хочу автоматизировать эту систему - чтобы выращивал случайное дерево из уже использованных. Добавлю в задачу того, что древ войны может быть много и построено оно может где угодно рядом с деревьями. В редакторе триггеров нашел только возможность выбрать случайное разрушаемое из региона :/

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

Тебе нужно выбрать дерево из ближайшего окружения?

Ты можешь выбрать все декорации используя эту же функцию. Только в фильтре сравнивай расстояние между древом войны и выбранным деревом, если расстояние между ними меньше радиуса (сам укажешь).
есть функция выбора в круге EnumDestructablesInCircleBJ
есть функция рандома в регионе RandomDestructableInRectBJ

r - реальное число, радиус обхвата деревьев
count - целое число, счетчик деревьев, показывает кол-во выбранных деревьев вокруг древа войны в радиусе r. Необходимое для рандома, функции рандома необходимо указать пределы от и до. А так ты не знаешь сколько будет, поэтому счетчик введен
d [...] - декорация, массив декорации. Сюда можно запихивать подходящие по условию декорации.
u - юнит, древо войны
Можно использовать EnumDestructablesInRect как и в функции EnumDestructablesInCircleBJ, по сути описываю принцип ее действия. В функции выбираем все декорации на карте, то есть в игровой области карты bj_mapInitialPlayableArea. Но используйте фильтр, функцию. Там сравниваете (расстояние между u и GetFilterDestructable() ) <= r. И добавляете подходящую выбранную декорацию в массив d и прибавляете единичку к счетчику, можно прям фильтре. А потом рандомите число, и выбираете подходящую декорацию. все. можно переменных этих не вводить, а сразу рандомить как в RandomDestructableInRectBJ немного переделать на круг
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
27
4 года назад
Отредактирован MpW
0
Тебе нужно выбрать дерево из ближайшего окружения?

Ты можешь выбрать все декорации используя эту же функцию. Только в фильтре сравнивай расстояние между древом войны и выбранным деревом, если расстояние между ними меньше радиуса (сам укажешь).
есть функция выбора в круге EnumDestructablesInCircleBJ
есть функция рандома в регионе RandomDestructableInRectBJ

r - реальное число, радиус обхвата деревьев
count - целое число, счетчик деревьев, показывает кол-во выбранных деревьев вокруг древа войны в радиусе r. Необходимое для рандома, функции рандома необходимо указать пределы от и до. А так ты не знаешь сколько будет, поэтому счетчик введен
d [...] - декорация, массив декорации. Сюда можно запихивать подходящие по условию декорации.
u - юнит, древо войны
Можно использовать EnumDestructablesInRect как и в функции EnumDestructablesInCircleBJ, по сути описываю принцип ее действия. В функции выбираем все декорации на карте, то есть в игровой области карты bj_mapInitialPlayableArea. Но используйте фильтр, функцию. Там сравниваете (расстояние между u и GetFilterDestructable() ) <= r. И добавляете подходящую выбранную декорацию в массив d и прибавляете единичку к счетчику, можно прям фильтре. А потом рандомите число, и выбираете подходящую декорацию. все. можно переменных этих не вводить, а сразу рандомить как в RandomDestructableInRectBJ немного переделать на круг
Принятый ответ
0
11
4 года назад
0
Steal nerves:
Тебе нужно выбрать дерево из ближайшего окружения?

Ты можешь выбрать все декорации используя эту же функцию. Только в фильтре сравнивай расстояние между древом войны и выбранным деревом, если расстояние между ними меньше радиуса (сам укажешь).
есть функция выбора в круге EnumDestructablesInCircleBJ
есть функция рандома в регионе RandomDestructableInRectBJ

r - реальное число, радиус обхвата деревьев
count - целое число, счетчик деревьев, показывает кол-во выбранных деревьев вокруг древа войны в радиусе r. Необходимое для рандома, функции рандома необходимо указать пределы от и до. А так ты не знаешь сколько будет, поэтому счетчик введен
d [...] - декорация, массив декорации. Сюда можно запихивать подходящие по условию декорации.
u - юнит, древо войны
Можно использовать EnumDestructablesInRect как и в функции EnumDestructablesInCircleBJ, по сути описываю принцип ее действия. В функции выбираем все декорации на карте, то есть в игровой области карты bj_mapInitialPlayableArea. Но используйте фильтр, функцию. Там сравниваете (расстояние между u и GetFilterDestructable() ) <= r. И добавляете подходящую выбранную декорацию в массив d и прибавляете единичку к счетчику, можно прям фильтре. А потом рандомите число, и выбираете подходящую декорацию. все. можно переменных этих не вводить, а сразу рандомить как в RandomDestructableInRectBJ немного переделать на круг
Cпасибо, сейчас попробую)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.