Скрыть объявление
Гость, у нас на сайте появился медиа раздел где ты можешь поделиться своими медиа файлами с другими пользователями. Раздел работает в тестовом режиме.
Скрыть объявление
Гость, файловый архив восстановлен. Просьба сообщать о любых сбоях в его работе. Всем, кто наполнял его последние пару месцев просьба перезалить файлы, т.к., к сожалению, предыдущую версию базы данных невозможно было мигрировать на новую версию. Простите за эти неудобства!

[SCRIPT] Скрипт круговой обороны здания

Тема в разделе 'ArmA 2: Картостроение', создана пользователем Arigato, 28 янв 2014.

  1. Arigato

    Arigato Arigato Software

    Скрипт круговой обороны здания Arigato Defense Building (v1.1)

    Назначение скрипта: группа пехоты занимает указанное здание и ведет круговую оборону занятого объекта.



    Настройка скрипта:

    1. В init.sqf компилируем скрипт:
    Код:
    call compile preprocessFileLineNumbers "defense_building.sqf";
    В примере файл скрипта defense_building.sqf лежит в корне папки с миссией.
    2. Ставим в редакторе группы, каждому боту в свойствах выставляем "Особенности = Нет" (по умолчанию параметр равен "В строю").
    3. В нужный момент запускаем скрипт, передав ему имя группы или одного из ее членов и позицию здания, либо имя самого здания. Например:
    Код:
    [argt_leader1, getMarkerPos "argt_house"] call ARGT_DEFBUILD;
    Группа с лидером argt_leader1 побежит занимать здание, которое отмечено на карте маркером "argt_house".

    Юниты группы бегут к зданию и занимают в нем позиции. Могут занять позиции не только внутри здания, но и по периметру. Боты могут перемещаться внутри здания, меняя свои позиции.

    Демо миссия: вашему отряду необходимо завладеть зданием, которое заняла вражеская пехота. Противник может попытаться отбить здание обратно.
     

    Вложения:

    Последнее редактирование: 29 янв 2014
    • Нравится Нравится x 7
    • Не нравится Не нравится x 2
    • Список
  2.  
  3. В миссии-примере "defense_building.Takistan" создал вторую группу за красных (командир с именем "argt_leader2"), подальше. Сначала "синии" занимают дом, потом подтягиваються "красные" и начинают атаковать дом! "Играю" за красного, чувство новое, в команде зачищаю дом! ;)
    В init.sqf
    Код:
    [argt_leader2, getMarkerPos "argt_house"] spawn ARGT_DEFBUILD; //добавил вторую группу, красную.
    Получился типа такой "Сталинград" в одной комнате - синии, в другой красные. Один этаж - синии, другой - красные.

    Каждый бот занимает конкретно свою позицию в доме?
     
  4. Arigato

    Arigato Arigato Software

    В новой версии боты умеют перемещаться по зданию. Качай из первого поста темы.[DOUBLEPOST=1390940348,1390939341][/DOUBLEPOST]Результат зачистки дома:

    DOM.jpg
     
    • Не нравится Не нравится x 2
    • Нравится Нравится x 1
    • Список
  5. Эх раньше бы скрипт, в Арма 2 забросил перешел на 3. А помню как раз в том же городе рядом с ВВП в тех же зданиях вручную расставлял солдат по позициям у окон проемов и крышах, но приходилась DisableAI move всем ставить, а то разбегались собаки. И так квартал за кварталом, миллион человеко\часов убил. Теперь будете работать над 3 скриптом, зачистка города\ зачистка зданий?
     
  6. Arigato

    Arigato Arigato Software

    Dimon75 подсказал идею, и я ее успешно в последней демо-миссии реализовал: если натравить на одно здание две враждующие группы, то та, что займет здание первой, будет обороняться, а вторая будет штурмовать. В демо-миссии я добавил еще 3 группу, которая будет пытаться отбить здание после захвата. И все это делается одним и тем же скриптом :)
     
    • Нравится Нравится x 2
    • Не нравится Не нравится x 2
    • Список
  7. Любопытно, а как боты разбирают кому куда идти? Просто идут по buildingpos в порядке возрастания, 0 всегда вход, верхние этажи и крыша последние в номерных списках. Или рандомно идут на свой buildingpos. Так же есть дома в которых на позицию нельзя зайти с улицы, только телепортом не зависают ли боты когда не могут а должны попасть в недоступное место в таком здании? (для примера в городе черногорске это храм католический рядом с гостиницей высоткой и она тоже, потом элеватор у железной дороги). И есть ли еще какие алгоритмы движения в домах, кроме движения от buildingpos 1 к buildingpos 2. Повернется ли бот к врагу если спиной стоит, будет ли преследовать врагов и выйдет из здания, так как в боевом режиме они становятся крайне самостоятельными и покидают свои места, только и остается отключать им мозги что бы не бегали. В общем мысли в слух, пойду проверю как в Арма 3 ведут себя.
     
    Последнее редактирование: 29 янв 2014
  8. Arigato

    Arigato Arigato Software

    Основа скрипта buildingpos, есть точки, куда боты дойти не могут, они обычно остаются по периметру здания, но таким ботам в скрипте повышается вероятность смены позиции. То есть боты, которые дошли до точки, реже меняют позицию, чем те боты, что не смогли. В итоге практически все боты заходят внутрь дома и занимают позиции у окон и т.п.
    Поворачиваться буду, не поворачиваются они из-за DisableAI "move", я ее не использую.
    Поведение можно оценить по видео с версией 1.1 скрипта:

     
    • Не нравится Не нравится x 2
    • Нравится Нравится x 1
    • Список
  9. зы:
    В Арма 3 ведут себя замечательно, ни каких ошибок не выскакивает, боты занимают позиции в здании. А почему нужно в особенностях юнитов ставить "нет"?, поставил группу у них у всех по дефолту стоит в строю и все нормально разбрелись по комнатам. И хотелось бы вариант когда скрипт активируется по условию, что бы не держать солдат в здании пока врагам до этого здания 2 километра и возможно еще и с боем идти, для экономии ресурсов процессора. Что бы группа обороняющихся создавалась когда атакующие уже на подходе, но не ранее. Как бы в скрипте передать аргумент не имени лидера, а локальной группы обороняющихся? Можно конечно дать имя лидеру создаваемой группы но в команде создания call BIS_fnc_spawnGroup только имя группе задать. Насколько понимаю, а в скриптах понимаю очень мало имя командира argt_leader нужно только для инициализации его группы, потом все равно скрипт уже оперирует целой группой. В тригере активирующий создание группы обороны, что то вроде строки ppp = ["argt_leader2", "argt_house2"] call ARGT_DEFBUILD вот только потом как передать эти аргументы скрипту создания отряда и подключения к нему скрипта обороны здания не смогу ни как.
     
  10. Arigato

    Arigato Arigato Software

    Лучше ставить "Нет", в противном случае боты могут повернуться не в ту сторону. Но в случае боя они уже сами решат, куда смотреть, туда, где враг.

    А в чем проблема активировать скрипт по тригеру, а не в ините? Первым параметром может быть как любой боец группы, так и сама группа. В первом посте темы это описано. Только надо дать ботам время занять позиции. В демо-миссии у них очень мало времени, потому когда мы прибегаем, они еще только занимаются расстановкой. Хорошо бы активировать где-то за километр от наступающего противника.
     
    • Не нравится Не нравится x 2
    • Нравится Нравится x 1
    • Список
  11. Протестировал в Арма3 на сравнение средней fps с скриптом и без 52 vs 52 солдата в 4 группах на сторону и распределеных на 4 здания. И то же самое но только в обычном порядке без скрипта когда обороняющиеся стоят не в здании, а атакующие идут к ним по вейпоинту. Разницы большой не заметил, сильных проседаний fps из за скрипта не должно быть.

    При контакте потери обоих сторон почти одинаковы по началу пока выбивают солдат не занявших позиций внутри здания, находясь снаружи они более легкие цели так как чаще всего нет укрытий и они ограничены в их поисках, должны стоят по периметру. Поэтому бессмысленно держать большое количество юнитов на одно здание, лучше разделить на отряды поменьше и ими занять соседние здания. Для атакующих не эффективно использовать тот же скрипт для выдвижения к штурмуемому зданию. Так как по началу довольно бодро бегут но попав под обстрел и довольствуясь логикой что им прописана в скрипте, их передвижение очень сильно замедляется и вообще одни прячутся, другие долго стоят прикрывая или высматривая кого. Хотя тут им важней было бы наоборот максимально быстро сократить расстояния до дома. По этому рекомендую сначала использовать вейпоинт до окрестностей дома, а когда дойдя до вейпоинта попутно перестреляв с улицы кого попало, уже активировался скрипт из этого вейпоинта, и тогда штурмующие переходили в режим зачистки и добивали тех кто спрятался в глухих комнатах или раненых с перебитыми ногами которые ползают в коридорах и из за этого не видны с улицы. Тут бы даже лучше второй скрипт написать так как зачищающим нет нужды держать оборону им больше нужно просто пройтись по всем buildingpos в здании и выйти на улицу когда убедятся что противников не осталось в нем.
     
  12. Arigato

    Arigato Arigato Software

    Есть заготовка скрипта зачистки здания, но там те же проблемы, боты во время боя плохо управляемы, если им вообще не запретить движение.
     
    • Не нравится Не нравится x 2
    • Нравится Нравится x 1
    • Список
  13. NeGOD9IY

    NeGOD9IY В ДИСБАТЕ В ДИСБАТЕ

    интересно, ты бы сокращал максимально быстро расстояние с противником, засевшем в здании?
    все равно нормальной зачистки не получится.
    Ну не создан этот ИИ для боёвки в зданиях.
    Не будет он швыряться гранатами перед каждой комнатой и т.д. и т.п.
    А так скрипт ничё, норм!
     
  14. Arigato

    Arigato Arigato Software

    Гранатами точно швыряться не будет, потому как в зданиях гранаты нормально не работают в Арме. Да и поведение внутри зданий у ботов отупляющее, они какие-то слепые становятся, можно сзади подойти, а он не замечает и не оборачивается или просто заторможенный становится. Когда тестировал скрипт зачистки, то пустил группу ботов зачищать аул, в котором только я засел в одном из домов. В итоге всех перестрелял, как только они пытались войти в дверь комнаты.
     
    • Не нравится Не нравится x 2
    • Нравится Нравится x 1
    • Список
  15. NeGOD9IY

    NeGOD9IY В ДИСБАТЕ В ДИСБАТЕ

    во во.
    Они почему-то в домах ещё и на шаг переключаются.
     
  16. Arigato

    Arigato Arigato Software

    Чтобы в стену не врезаться, а то ведь для ботов стены проходимы, так на скорости можно через стену на улицу улететь. Они и пешком часто в стене оказываются.
     
  17. Вот только хотел узнать, как сделать, чтобы группа "argt_leader1" переходила от дома к дому!?

    Arigato сделал основу скриптом, а какие идеи прийдут по использованию, такие и миссии-примеры будут!?
     
  18. Arigato

    Arigato Arigato Software

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

    P.S. Все это делается ради кампании про Сирию, сюжет и заготовки серии миссий уже есть, хватит ли времени все реализовать, пока не известно.
     
    • Нравится Нравится x 2
    • Не нравится Не нравится x 2
    • Список
  19. NeGOD9IY

    NeGOD9IY В ДИСБАТЕ В ДИСБАТЕ

    Arigato!!!
    Я как-то делал скриптовую сцену зачистки здания.
    Там конечно пришлось повозиться с disable setdir playmove и прочее.
    Так вот. я о чём подумал.
    Ведь зданий по сути не так много. Я имею видов зданий.
    И для каждого их них вполне можно написать анимации, как два три бота зачищают его.
    Но вот хочу у тебя спросить, т.к. ты более шаришь во всём этом.
    Если даже запилить для каждого здания план зачистки, практически полностью скриптовой, то слишком сложно ли будет подобрать точку отсчёта такого скрипта?
    Ведь здания стоят под разными значениями setdir.
     
  20. УХ-тЫ война в сирии, оборона зданий и городов. в единой миссии, оооо не верю глазам :) УРА! скорей бы эту миссию! еслиб этот скрипт запилить модулем-
    1)как например модуль гражданских, машин, животных- или модуль битвы, где противник случайно появляется, но еще и лезит в здания!(хотя возможно не лучший вариант)
    2)модуль, при синхронизации с командиром отряда заставляет его лезть в ближайшее(ые) здание(ия) или типо того
    3) имхо наилучший и пологаю сложнейший-вейпоинт(как известно вейпоинт можно указать на здание, как на технику или юнита) и тип-оборонять здание(чем то похоже на тип"разойдись")
    вот такие идеи появились на лету, а скрипт очень хороший и важный! не бросай его, держись, обороняй свою идею,умение и скрипт:) ты молодец!
    а бисовцам чем портить единственное что у них было-реалистичность-создавая арму3 с не существующей техникой, оружием, и перенос войны византии с персией на грецию с иранов в 2030-ые года, лучшеб довели до ума арму 2 подобными скриптами, анимацией и др. сложными вещами!
     
  21. Arigato

    Arigato Arigato Software

    Предполагается кампания, а не миссия. Работы потихоньку идут.
     
    • Нравится Нравится x 2
    • Не нравится Не нравится x 2
    • Список

Поделиться этой страницей