Перейти к содержимому


Фотография

Рандомный спаун предметов на заданной территории


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 OFFLINE   Melnik

Melnik

    Ст. Прапорщик

  • Пользователи
  • 749 сообщений
  • Откуда:Россия

Отправлено 09 July 2013 - 15:14

Хочу сделать рандомное появление ящиков при каждом новом запуске миссии, но недостаток опыта берёт своё.

Я, если честно, уже голову сломал)

 

К примеру:

Есть маркер с заданным радиусом и на территории этого маркера есть несколько предметов (возможно и 1).

Нужно что бы при каждом новом запуске миссии эти предметы появлялись рандомно (в случайном месте на территории маркера)

 

Вот вариант который я нашёл. Он немного отличается от сказано выше.

 

Скрипт выглядит так:

private ["_distance", "_direction", "_randomPos"];_distance = [1,500] BIS_fnc_randomInt; // Случайное расстояние между 1 и 500 м._direction - (0,359] BIS_fnc_randomInt; // Случайное направление в диапазоне от 0 до 359 градусов._randomPos = [myObject, _distance, _direction] call BIS_fnc_relPos; // Положение на случайное расстояние и произвольном направлении от myObject (переименовать myObject, как это требуется).

В этой строке видимо ошибка (красным выделил) - _direction [color=#ff0000;]- ([/color]0,359] BIS_fnc_randomInt;  это я правил как [color=#ff0000;]= [[/color]

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

Как я понял, автор объединил 2 функции и указал расстояние [color=#0000cd;]_distance (500 метров) [/color]и радиус окружности [color=#0000ff;]_direction (395 градусов) [/color]от объекта который он ставит на карте и называет [color=#0000ff;]myObject [/color]- в данном случае (хотя можно выставить своё имя)

 

И если я правильно понял...

Далее нужно назвать этот скрипт как-то, например random.sqf и поместить в папку миссии. Разместить на карте объект и имя объекта поместить в скрипт. Далее этот объект должен случайным образом появляться на заданном в скрипте расстоянии.  

 

 

Но это не работает!

Что не так? Или есть другой скрипт на эту тему?

 

Заранее спасибо. 


Сообщение отредактировал Melnik: 09 July 2013 - 15:19

  • 0

#2 OFFLINE   WAF3R

WAF3R

    Майор

  • ex. Администратор
  • 2234 сообщений

Отправлено 09 July 2013 - 15:27

А параметр placement radius чем не устраивает?


  • 1

#3 OFFLINE   Nkey

Nkey

    Старшина

  • Пользователи
  • 413 сообщений
  • Откуда:Минск

Отправлено 09 July 2013 - 16:18

А параметр placement radius чем не устраивает?

Угу, используется для потерянного БТР на meeting engagement - все работает.
  • 0

#4 OFFLINE   Melnik

Melnik

    Ст. Прапорщик

  • Пользователи
  • 749 сообщений
  • Откуда:Россия

Отправлено 09 July 2013 - 16:45

Вот за что я вас ценю, так это за развёрнутые ответы...


  • 0

#5 OFFLINE   Nkey

Nkey

    Старшина

  • Пользователи
  • 413 сообщений
  • Откуда:Минск

Отправлено 09 July 2013 - 17:13

Вот за что я вас ценю, так это за развёрнутые ответы...

placement radius Если кликнуть дважды по объекту на карте, там можно менять параметр placement radius - радиус в случайной точке в котором появится объект. Только тут говорят, что возможно не работает для объектов под водой:

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

3.com/view.php?id=5821 Вот тут есть видео вроде -
  • 0

#6 OFFLINE   Melnik

Melnik

    Ст. Прапорщик

  • Пользователи
  • 749 сообщений
  • Откуда:Россия

Отправлено 09 July 2013 - 18:01

Только тут говорят, что возможно не работает для объектов под водой:

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

3.com/view.php?id=5821

 

Если често, я на него никогда внимания не обращал)

Но, увы, под вой не арбайтает((


Сообщение отредактировал Melnik: 09 July 2013 - 18:01

  • 0

#7 OFFLINE   Nkey

Nkey

    Старшина

  • Пользователи
  • 413 сообщений
  • Откуда:Минск

Отправлено 09 July 2013 - 18:08

Но, увы, под вой не арбайтает((

Есть такая идея - можно поставить их на высоте метров двадцати - пока будет ожидание старта они и плюхнутся в воду :)
  • 0

#8 OFFLINE   Melnik

Melnik

    Ст. Прапорщик

  • Пользователи
  • 749 сообщений
  • Откуда:Россия

Отправлено 09 July 2013 - 18:41

 Есть такая идея - можно поставить их на высоте метров двадцати - пока будет ожидание старта они и плюхнутся в воду :)

Уже пробовал. Они и так над водой появляются. Если радиус попадает на берег, то появляется на берегу. Если радиус целиком над водой, то просто плюхается в центре радиуса. 


Сообщение отредактировал Melnik: 09 July 2013 - 18:42

  • 0

#9 OFFLINE   Nkey

Nkey

    Старшина

  • Пользователи
  • 413 сообщений
  • Откуда:Минск

Отправлено 09 July 2013 - 20:52

А работает

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

, если поставить в инициализацию?
  • 1

#10 OFFLINE   Melnik

Melnik

    Ст. Прапорщик

  • Пользователи
  • 749 сообщений
  • Откуда:Россия

Отправлено 09 July 2013 - 21:34

А работает

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

, если поставить в инициализацию?

Безнадёга.

Просто падает в центральную точку радиуса с заданной высоты. 

 

_____________________

 

Временно решил проблему с помощью этого: 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

В инициализации предмета прописал:

this setVehiclePosition [[1000,2000], ["Pos1","Pos2","Pos3"], 0]

Где:

[1000,2000] - координаты по сетке X и Y на карте

["Pos1","Pos2","Pos3"] - имена маркеров расставленных на карте

 

 

Получается, что предмет (где бы он не находился в редакторе) при старте миссии появляется в координатах или в центре одного из маркеров.

Всё это действует и над водой. Объект появляется на поверхности и если не умеет плавать, то погружается под воду.

 

МИНУСЫ:

1. Для миссии поиска нужно ставить маркеры с размером 0 (невидимые)

2. Иногда предмет появляется несколько раз подрядят в одном месте. 

3. Предмет появляется только в центре маркера.

 

____________________________

 

Вчера решил таки проблему полностью.

 

Скрипт вписываемый в поле инициализации объекта должен выглядеть так:

this setVehiclePosition [[1000,2000], ["imyaMarkera"], +100];

Где:

[color=#ff8c00;][1000,2000] [/color]- координаты одной из точек появления X и Y (например внутри радиуса) 

[color=#ff8c00;]["imyaMarkera"][/color] - имя маркера внутри которого происходит появление предмета в случайном месте

[color=#ff8c00;], +100][/color] - размер радиуса маркера [color=#b22222;](можно конечно поставить просто точку и указать в этом параметре радиусрасстояние на территории которого будет появляться объект)[/color]

 

Всё это работает! И особенно радует, что я сам до этого допёр))

 

 

Думаю если сделать так:

this setVehiclePosition [[1000,2000], ["Pos1","Pos2","Pos3"], +100]

Предмет появится в указанном радиусе от центра одного из маркеров.

[color=#800080;]Спасибо Nkey, навёл на тропу)) Нашёл эту функцию в похожих на страничке с setPos[/color].

 

 


Сообщение отредактировал Melnik: 12 July 2013 - 09:41

  • 0




Яндекс.Метрика