Доброго времени суток!
Полазив по различным сайтам нашел способ выбора ближайшего юнита к цели-инициатору - заносить в новую группу всех юнитов в нужном мне радиусе от инициатора и выбрать первого юнита из этой группы.
Возник вопрос - а как выбрать ближайшую разрушаемую декорацию к юниту? Например, приказать юниту двигаться к ближайшему разрушаемому объекту типа "бочонок"?

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

установить - min = 99999
выбрать все бочата в радиусе ....
если расстояние между позиция picked destr и позиция UNIT < min то
установить min - расстояние между ними
установить decor - выбранная декорация
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
24
9 лет назад
Отредактирован Melissa
1
установить - min = 99999
выбрать все бочата в радиусе ....
если расстояние между позиция picked destr и позиция UNIT < min то
установить min - расстояние между ними
установить decor - выбранная декорация
Принятый ответ
0
4
9 лет назад
0
А можно пояснить, как работает функция "выбрать все разрушаемое в радиусе..."?
Она выбирает все разрушаемые в радиусе и к каждому выбранному применяет указанные действия? По очереди?
И если по очереди, то "очередь" обозначается случайным образом или по какому-то принципу?
0
12
9 лет назад
0
SilweR:
А можно пояснить, как работает функция "выбрать все разрушаемое в радиусе..."?
Она выбирает все разрушаемые в радиусе и к каждому выбранному применяет указанные действия? По очереди?
И если по очереди, то "очередь" обозначается случайным образом или по какому-то принципу?
Она будет по каким-то своим мыслям находить объекты по очереди и применять к ним проверку. Т.е. если их 2к то все 2к проверит (пофиг если первый будет ближним). Однако замечу, что современном компьютере такие вычисления проходят за долю секунды. Надеюсь смог ответить на Ваш вопрос)
1
25
9 лет назад
Отредактирован Nosferoh
1
QmbINA, одна из функций ограничена 60-ю декорациями. Не помню, какая.
0
12
9 лет назад
0
Nosferoh:
QmbINA, одна из функций ограничена 60-ю декорациями. Не помню, какая.
Хммм... тоже не помню... В крайнем случае можно протестить. Или например как вариант можно ограничить радиус... Правда в лесу это сильно не поможет...
0
4
9 лет назад
0
QmbINA, хорошо, спасибо, сейчас попробую воплотить это в жизнь)
1
24
9 лет назад
Отредактирован Melissa
1
Событие "декорация внутри региона dies" регистрирует только первые 64 штуки
SilweR:
А можно пояснить, как работает функция "выбрать все разрушаемое в радиусе..."?
Она выбирает все разрушаемые в радиусе и к каждому выбранному применяет указанные действия По очереди

И если по очереди, то "очередь" обозначается случайным образом или по какому-то принципу?
возможно в порядке появления на карте, возмоджно по координатам, а зачем тебе ЭТО знать?
1
12
9 лет назад
Отредактирован QmbINA
1
Melissa:
Событие "декорация внутри региона dies" регистрирует только первые 64 штуки
беда)
Melissa:
возможно в порядке появления на карте, возмоджно по координатам, а зачем тебе ЭТО знать?
Если она выбирает по принципу от ближней (т.е. по определенным координатам бегает) то ближайшая будет первой. ТАким образом можно проще. Есть еще 1 способ

Смотри. Нужно делать не с большим радиусом а с маленьким и постепенно его увеличивать. Т.е. сначала 1, потом 2 и т.д. пока не встретятся разрушаемые объекты. ЕСли 1 - то он нужный, если несколько - то по выше описанной проверке. Не думаю что таким образом можно сразу найти более 30 объектов)
0
24
9 лет назад
0
беда)
Ничуть, ты можешь выбрать все декорации и Триггер - добавить новое событие - выбранная декорация dies
0
12
9 лет назад
0
Melissa:
беда)
Ничуть, ты можешь выбрать все декорации и Триггер - добавить новое событие - выбранная декорация dies
Ммм... мне больше подуше мой длинный способ
QmbINA:
Нужно делать не с большим радиусом а с маленьким и постепенно его увеличивать. Т.е. сначала 1, потом 2 и т.д. пока не встретятся разрушаемые объекты. ЕСли 1 - то он нужный, если несколько - то по выше описанной проверке. Не думаю что таким образом можно сразу найти более 30 объектов)
0
4
9 лет назад
Отредактирован SilweR
0
Melissa:
возможно в порядке появления на карте, возмоджно по координатам, а зачем тебе ЭТО знать?
для общего развития. Когда я сталкиваюсь с новой функцией, я стараюсь понять, как она работает. Если я буду бездумно копировать чужой код, чему я научусь?)
QmbINA:
Смотри. Нужно делать не с большим радиусом а с маленьким и постепенно его увеличивать. Т.е. сначала 1, потом 2 и т.д. пока не встретятся разрушаемые объекты. ЕСли 1 - то он нужный, если несколько - то по выше описанной проверке. Не думаю что таким образом можно сразу найти более 30 объектов)
Ага, так тоже попробую, это выглядит оптимальней)
0
24
9 лет назад
0
Ммм... мне больше подуше мой длинный способ
какой ещё твой длинный способ? я про альтернативу Melissa:
декорация внутри региона dies
0
12
9 лет назад
0
Ага, так тоже попробую, это выглядит оптимальней)
Ну как сказать. Минус этого метода в том, что если декорация будет на другом конце карты то он произведет уйму проверок. хотя если подумать, то первый вариант кроме уймы проверок требует еще поломать голову над ограничением
Melissa:
какой ещё твой длинный способ?
Нужно делать не с большим радиусом а с маленьким и постепенно его увеличивать. Т.е. сначала 1, потом 2 и т.д. пока не встретятся разрушаемые объекты. ЕСли 1 - то он нужный, если несколько - то по выше описанной проверке. Не думаю что таким образом можно сразу найти более 30 объектов)
0
24
9 лет назад
Отредактирован Melissa
0
, что кстати в некотором роде отходит от темы.
Событие "декор умирает" тут как бы не при чём
QmbINA,
Melissa:
выбрать все декорации и Триггер - добавить новое событие - выбранная декорация dies
Это альтернатива событию
Melissa:
декорация внутри региона dies
которое работает лишь с 64 штуками. Вспомнил об этом - Nosferoh, а отношения к нахождению ближайшей декорации это не имеет. А твой "длинный способ" относится именно к сабжу. Сечёшьочёмя?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.