Арма 3 как отдавать приказы ботам

Обновлено: 02.07.2024

btc

Привет ребята! После небольшой проделанной работы, я рад тому, что могу вам представить мой новый скрипт возрождения.
Помните, что это всего лишь Альфа, так что могут быть некоторые ошибки.

2. В init.sqf добавьте следующие:

3. В description.ext добавьте следующие:

По поводу Мобильного респауна:

Если вы не собираетесь его использовать, не забудьте оставить массив пустым в =BTC=_revive_init.sqf, иначе будут ошибки и скрипт не будет работать!
От линии 27 до 37:

Если хотите использовать:
Создайте на карте технику и дайте ей имя. (mobile_west_0 для примера)
Создайте по одному объекту на каждую из сторон и назовите их как хотите. (BTC_base_flag_west для примера)
Откройте =BTC=_revive_init.sqf и назначьте:

Более подробно в видео-инструкции:

Участники и Благодарности:

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

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

Нормальной сылки на скачивание файла нету. Скачиваем здесь!

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

а можно использовать этот скрипт, если просто играем на созданом зевс сервере?

2. В init.sqf добавьте следующие:

Автору респект за проделанную работу, скажу сразу не пробовал, нет нужды.

Я вот что хочу сказать, давать подобные имена файлам

я бы назвал не очень хорошей идеей, как представить себя полно и других способов.

Во первых, если не юзать копипаст, то легко можно и ошибиться в написании, и куда приятнее иметь дело с более коротким именем файла, как пример

Во вторых, да хватит наверное и первого)

btc

=BTC= Revive

Привет ребята! После небольшой проделанной работы, я рад тому, что могу вам представить мой новый скрипт возрождения.
Помните, что это всего лишь Альфа, так что могут быть некоторые ошибки.

Особенности:

Установка:

2. В init.sqf добавьте следующие:

3. В description.ext добавьте следующие:

По поводу Мобильного респауна:

Если вы не собираетесь его использовать, не забудьте оставить массив пустым в =BTC=_revive_init.sqf, иначе будут ошибки и скрипт не будет работать!
От линии 27 до 37:

Если хотите использовать:
Создайте на карте технику и дайте ей имя. (mobile_west_0 для примера)
Создайте по одному объекту на каждую из сторон и назовите их как хотите. (BTC_base_flag_west для примера)
Откройте =BTC=_revive_init.sqf и назначьте:

Более подробно в видео-инструкции:

Известные проблемы:

Участники и Благодарности:

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

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

Нормальной сылки на скачивание файла нету. Скачиваем здесь!

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

Скрипт респавна ботов, их снаряжение и маршрутные точки

photo thumb 2456

Чтобы поменять ботам снаряжение, можно использовать команды вроде addWeapon, addMagazine, addBackpack, addUniform, addVest и их варианты с remove (т.е. removeWeapon и т.д.). То есть, в твой скрипт можно будет дописать:

Для удаления трупа, можно написать следующее при создании ботов:

Тогда труп будет немедленно удаляться после смерти бота. Если нужна задержка, вызывай из ивент хендлера скрипт, в котором будет использоваться команда sleep (в коде самого ивента ее использовать нельзя).

Писал это все не проверяя параллельно в самой Арме, так что может где-то накосячил.

Прошу помощи профессионалов, помогите доработать скрипт до желаемого. Вот так он выглядит сейчас:

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

Чтобы поменять ботам снаряжение, можно использовать команды вроде addWeapon, addMagazine, addBackpack, addUniform, addVest и их варианты с remove (т.е. removeWeapon и т.д.). То есть, в твой скрипт можно будет дописать:

Маршрутные точки создаются при помощи команды addWaypoint и затем настраиваются при помощи setWaypoint.

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

Для удаления трупа, можно написать следующее при создании ботов:

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

Тогда труп будет немедленно удаляться после смерти бота. Если нужна задержка, вызывай из ивент хендлера скрипт, в котором будет использоваться команда sleep (в коде самого ивента ее использовать нельзя).

Писал это все не проверяя параллельно в самой Арме, так что может где-то накосячил.

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

Чтобы поменять ботам снаряжение, можно использовать команды вроде addWeapon, addMagazine, addBackpack, addUniform, addVest и их варианты с remove (т.е. removeWeapon и т.д.). То есть, в твой скрипт можно будет дописать:

Маршрутные точки создаются при помощи команды addWaypoint и затем настраиваются при помощи setWaypoint.

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

Для удаления трупа, можно написать следующее при создании ботов:

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

Тогда труп будет немедленно удаляться после смерти бота. Если нужна задержка, вызывай из ивент хендлера скрипт, в котором будет использоваться команда sleep (в коде самого ивента ее использовать нельзя).

Писал это все не проверяя параллельно в самой Арме, так что может где-то накосячил.

На счет респавна ты прав с помощью повторяющегося триггера

1

Судя по примерам в sqf используется тот же самый синтаксис и все правила написания скрипта в целом что и sqs?

Нет. Они похожи, но нет. Советую ознакомиться с матераилами, представленными вот здесь:

Если же вы умеете в английский, то не лишним будет пройтись по первоисточникам,- они содержат ссылки на похожий и относящийся к теме материал. Правда, в БИСовской документации неприлично много ошибок, и зачастую, если просто взять их пример, то работать не будет.

P.S. А для тех, кто только-только начинает нырять в скрипты, скоро выйдет самоучитель, от нуля до готового скрипта с объяснениями.

P.S. А для тех, кто только-только начинает нырять в скрипты, скоро выйдет самоучитель, от нуля до готового скрипта с объяснениями.

Это бы было отлично, я надеюсь он будет тут выложен?

1

Это бы было отлично, я надеюсь он будет тут выложен?

Да, разумеется. Он в трёх частях, и первую часть я намерен выложить уже в эти выходные.

Да, разумеется. Он в трёх частях, и первую часть я намерен выложить уже в эти выходные.

Надеюсь у меня хватит ума, чтобы понять все что там будет изложено и наконец то начать воплощать свои задумки в жизнь)

Используй вот этот вариант createUnit как описано тут:

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

Подскажи что не так делаю? По указанной ссылке скопировал пример и теперь пытаюсь его подогнать под нужный мне эффект:

Странно но вот так

А вот сочетание этой команды и

1

Запятую нужно удалить обязательно, иначе ошибка.

Djon , я бы добавил команду sleep чтобы дать время, а то возможно идет пропуск команд, когда юнит еще в процессе создания. Другого объяснения пока не приходит в голову.

Обычный createUnit вроде как не возвращает значения, поэтому unit1 не определен и соответственно манипуляции с инвентарем не проходят. Нужно использовать createUnit array вот таким образом:

Это увы не помогает(

А присваивается ли убитым ботам какое то общее имя или значение к которому можно обратиться? к примеру возможно ли сделать глобальную команду на удаление трупов? с командой задержки Sleep попробую разобраться сам, а то у вас и так времени отнял много)

Да, извини, из универа пишу, поэтому поторопился и не дописал команду правильно. Отредактировал пост.

По поводу аргументов createUnitArray:

Юнит появится на точке с указанными координатами. Если массив маркеров не пустой, то юнит появится случайным образом на одном из маркеров. Если указан радиус больше нуля, то юнит появится случайным образом в круге указанного радиуса, с центром в выбранной точке.

Да, извини, из универа пишу, поэтому поторопился и не дописал команду правильно. Отредактировал пост.

но увы не работает, хотя триггер видит имя unit1.

Наверно это слишком просто?))

Исправил) триггер с инитом not alive unit1 и активацией скрипта, в скрипте

Ну то есть, ты можешь своим ботам задавать при создании ивент хендлер

В общем, посмотри пример,прикрепил к посту.

Arma 3 как сделать возрождение ботов

Еще возник такой вопрос:

Но на деле получается так:меня убивают, идет отсчет 5 секунд, и происходит постепенно удаление камеры. Идет оно больше 5 секунд.
Как сделать, чтоб отсчет прошел и я возродился.

И второй вопрос по телепорту на мобильную базу. Я делал так:
скрипт в файле teleport.sqf:

// Move them 5m behind the MHQ.
_worldPos = mhq1 modelToWorld [0,-5,0];
_caller setPos [_worldPos select 0, _worldPos select 1, 0];

А в инициализации мобилки прописал:

Но после того, как меня подорвали на мобилке, я стал телепортироваться в океан. Хотя мобилка стоит на базе.

if((time-_lastUsedTime) > (_respawndelay*2)) then
;

if(((damage _veh) > 0.9) || _abandoned) then
;
_veh setDir _startdir;

_abandoned = false;
_lastUsedTime = time;

Спаун ботов. Указываем им что делать дальше. Группы и группы в технике (подкрепления).

ArmA 3 Screenshot 2018.10.15 19.43.35.34

Конечно же, это не единственные варианты, но они работают и работают хорошо.
Кроме того, в некоторых примерах можно заменить вейпоинты на createGuardedPoint.

Сразу обращу внимание, что когда вы впервые объявляете переменную, пишите перед ней private. Как подсказал один опытный человек — это не только нужно, но и делает это всё быстрее. А скорость выполнения команд — это всегда хорошо для любой миссии.
Так же, заметьте что в случае с формацией

и радиусом завершения вейпоинта

_wp setWaypointCompletionRadius 10;

Это писать необязательно. Так как:

формация по умолчанию = WEDGE
А радиус завершения вейпоинта по умолчанию = 10 метрам.

Например, нам надо сделать двойку, которая будет патрулировать по определённым точкам.
Для начала зайдём в просмотр конфигураций в редакторе, и найдём нужную нам группу.
Например:

Это будет гранатомётчик (подствольник) и стрелок в его подчинении.

После этого, пишем следующее в нашем файле sqf для спауна ботов:

Патрульная двойка:

Код в чистом виде:

Код с расшифровкой:

Наполнение территории патрулями. Спаун на случайных (заданных) точках:

Теперь у нас есть патрульные по периметру, но нам нужно наполнить какую-то территорию патрулями. Делаем вот что:
Код в чистом виде:

Код с расшифровкой:

Патрули. Спаун на одной позиции:

А если вы не хотите что бы точки выбирались случайно, то пишем так:
Код в чистом виде:

Код с расшифровкой:

Спаун группы. Стоят:

Код с расшифровкой:

И наконец-то нам нужны подкрепления. Наши или что бы врагам приехали новые бойцы.
Вот тут я честно задолбался искать верный вариант. И очень хочется поблагодарить одного чудесного человека (просил не называть его имени) за помощь с этим скриптом.
Как оказалось, всё очень просто. Но искал я не там.
И так, пишем вот это:

Подкрепления прибывающие на транспорте. Выгрузка в заданной точке:

Код в чистом виде:

Код с расшифровкой:

Если надо оставить водителя на месте, или вообще экипаж техники, например БМП. Пишем в начале предыдущего примера так:
С пояснениями по изменениям:

Кастомная группа:

Если хотим заспаунить кастомную группу, ибо нам конфиги от BIS`ов могут не понравится для наших целей, пишем вот так:
Код в чистом виде:

Код с расшифровкой:

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

Наше видео на эту тему (показан старый форум, сейчас тут этот сайт):

Читайте также: