|
|
Модератор форума: GUNNER161, Panikaha |
Форум РЕДАКТОР - ArmA 3 Скрипты Спаун в радиусе А но не ближе Б.. |
Спаун в радиусе А но не ближе Б.. |
› Четверг
› 27.09.2018
› 23:20
› Сообщение #
Привет.
Подскажите знающие, можно ли организовать спаун объекта (либо что угодно) в радиусе не более A но не менее Б? То есть в эдаком кольце. Я использую колхозный, на мой взгляд, метод - сначала задаю позицию объекта при помощи SetPos и манипулирую с Random. Затем идет проверка на дистанцию. Выглядит это примерно так: dist = 0; //любое значение меньше 50 while {dist < 50} do { Object SetPos [(getpos spawnpos select 0) + random 100 - random 200, (getpos spawnpos select 1) + random 100 - random 200, 0]; dist = Object distance spawnpos; sleep 0.5; }; Есть ли более изящный метод? Возможно какая то функция? И еще пара вопросов по коду. 1) Команда sleep добавляет оптимизации коду или только хуже делает? 2) Если в теле while задавать локальную переменную, ее потом можно как то использовать за пределами цикла? (Ибо возникли проблемы с этим, а во второй арме кажется не беспокоило такое, либо я путаю что-то). Спасибо.
Spitfire
|
› Пятница
› 28.09.2018
› 17:32
› Сообщение #
Без SetPos не обойтись, но для запуска можно использовать триггер установленный на маркере респа.
условие триггера Player in thisList Команда sleep приостанавливает выполнение программы на указанное время. это время можно отдать другим программам. Объяви переменную Вне While, будет видна. Такая видимость переменных была установлена сразу с появлением формата SQF https://community.bistudio.com/wiki/Function |
› Понедельник
› 01.10.2018
› 10:58
› Сообщение #
Понял. Спасибо за развернутый ответ!
Добавлено (01.10.2018, 11:03)
Spitfire
|
› Понедельник
› 01.10.2018
› 20:12
› Сообщение #
Sleep - пауза, нужна там где нужно снизить скорость выполнения. Или выждать определённое время между действиями.
|
› Понедельник
› 01.10.2018
› 22:48
› Сообщение #
В некоторых случаях наблюдал фризы при выполнении циклов, которые лечились добавлением малого значения sleep. 0.1 - вполне достаточно.
|
| |||
| |||
Чат сайта |