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


Фотография

Динамическая позиция


Лучший Ответ Cooler58 , 23 April 2019 - 21:30

Распакуйте attachicon.gifhunting.Altis.rar в папку mpmissions чтобы получился путь mpmissions/hunting.Altis/mission.sqm

Затем в редакторе выберите миссию hunting.Altis и запустите сетевую игру. Отряд противника будет все время следовать за Вами.

ToxaBes, спасибо Вам огромное. Действительно всё работает. Теперь буду разбираться в синтаксисе строчек и наверное уберу спавн, потому что "духи" терпеливо кастомизировались и в редакторе в готовых образцах отсутствуют. Но это уже лирика. Еще раз спасибо!

Перейти к сообщению


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

#1 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 11 April 2019 - 21:42

Здравствуйте уважаемые друзья! Далеко ушел в забой, руки устали, опустил отбойный молоток (на секунду). Не получается реализовать, чтобы в мультиплеере вражеский отряд (отряды) догоняли игрока где бы он ни находился. Все команды, включающие в себя основу типа "move getPos player", работают только на начальной позиции игрока. Если уйти с места респауна, то вражеские боты всё равно припрутся на респаун. И с этими командами возюкался:

[_groupOne, 1] setWPPos

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

"MarkerOne";

[_grp, 2] setWaypointPosition [

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

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

, 0];

_wp setWaypointPosition [

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

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

, -1];

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


  • 0

#2 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 12 April 2019 - 18:17

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


  • 2

#3 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 12 April 2019 - 18:33

ЗЫ

Сам не проверял, но, как вариант можно попробовать указать для вайпойнта не позицию, а ссылку на игрока. Вполне вероятно в этом случае AI будет отслеживать текущую позицию плаера.

[_grp, 2] setWaypointPosition [player, 10];

ЗЫ 2

Вот решение

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

Но нужно учитывать этот нюанс в комментарии к команде

Use this command to associate a transport with "GETIN" waypoint, other types of waypoints might work or might not. If you have different type of waypoint to start with, make it a "GETIN" type with


Сообщение отредактировал SteelRat: 12 April 2019 - 18:35

  • 0

#4 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 18 April 2019 - 19:58

К сожалению не срабатывает ничего. Боты просто приходят на позицию спавна игрока, которого уже там не давно, и стоят.


  • 0

#5 OFFLINE   TankiSD

TankiSD

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

  • Пользователи
  • 680 сообщений

Отправлено 18 April 2019 - 21:04

Экспериментируй с 

 

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

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

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

 

И да, скорее всего придётся заюзать всё в цикл, где-то ставь на 15-30 секунд, дабы не перегружать ботов частой командой, они тогда тормозить будут. Вообще подгони под расстояние. Быть может обновление команды двигаться, можно будет делать через минуту. 

В цикл то сможешь записать?

 

p.s. блин, я оказывается всё позабыл  :sad:


Сообщение отредактировал TankiSD: 18 April 2019 - 21:04

  • 0

#6 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 18 April 2019 - 21:11

попробую коротенький sqf написать. doMove сразу скажу - не пойдет, будет гоняться только лидер группы (почему-то)


  • 0

#7 OFFLINE   TankiSD

TankiSD

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

  • Пользователи
  • 680 сообщений

Отправлено 18 April 2019 - 21:12

А ты до этого без sqf чтоль пилил? 

За командиром боты должны автоматически тащиться >_>

Херани через костыль, пропиши всей группе сразу :D ;-)


Сообщение отредактировал TankiSD: 18 April 2019 - 21:13

  • 0

#8 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 18 April 2019 - 21:22

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

указываете того, за кем нужно следовать.
Или командами:

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

,

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


  • 0

#9 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 18 April 2019 - 21:41

Ну а если цель нужно укакошить, то делаем первый вариант с маршрутной точкой, просто меняем ее на MOVE
  • 0

#10 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 18 April 2019 - 21:51

Ну а если цель нужно укакошить, то делаем первый вариант с маршрутной точкой, просто меняем ее на MOVE

да вражеские боты и так укокошат, если догонят.


А ты до этого без sqf чтоль пилил? 

За командиром боты должны автоматически тащиться >_>

Херани через костыль, пропиши всей группе сразу :D ;-)

набросал в sqf вот такое: for "_i" from 0 to 9 do  
{group leader10 move getPos p11;
sleep 30}; В итоге боты прибегают только на место спавна игрока (р11), а дальше опять стоят.


  • 0

#11 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 18 April 2019 - 22:07

Я наверное неправильно сформулировал запрос и вас запутал, виноват. Всё это нужно для простого действия, чтобы вражеские боты гонялись по всей карте за игроком где бы он не находился. Мне казалось что в Арме это просто реализовать, но судя по всем экспериментам понимаю, что на смену позиции игрока вражеские боты никак не реагируют, за исключением случаев когда бой между ними уже был.


и с помощью команды

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

стоят на своей изначальной позиции как вкопанные

 


  • 0

#12 OFFLINE   TankiSD

TankiSD

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

  • Пользователи
  • 680 сообщений

Отправлено 18 April 2019 - 22:12

Я кажется понял почему.

Ты ведь для мультиплеера пилишь миссию.

А в мультиплеере PLAYER дохрена. Т.е. игроков то много, либо ИИ не понимает кто такой player.

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

Понял?!) 


  • 0

#13 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 18 April 2019 - 23:26

р11 - это имя игрока, т.е я пробовал и player и р11


  • 0

#14 OFFLINE   moroz89

moroz89

    Мл.сержант

  • Пользователи
  • 116 сообщений

Отправлено 19 April 2019 - 07:16

Попробуй такой цикл (пише с телефона, нет формы для кода):
_grp = group leader10;
_wp = _grp addWaypoint [getPos p11, 0];
while {count units _grp > 0} do {
_wp setWaypointPosition [getPos p11, -1];
uiSleep 30;
};
  • 0

#15 OFFLINE   ToxaBes

ToxaBes

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 19 April 2019 - 20:32

Используй функцию 

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

 которая специально создана под эту задачу.

Пример: 

[group p11, group leader10, 60] call BIS_fnc_stalk;

Сообщение отредактировал ToxaBes: 19 April 2019 - 20:36

  • 0

#16 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 20 April 2019 - 13:35

Попробуй такой цикл (пише с телефона, нет формы для кода):
_grp = group leader10;
_wp = _grp addWaypoint [getPos p11, 0];
while {count units _grp > 0} do {
_wp setWaypointPosition [getPos p11, -1];
uiSleep 30;
};

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


  • 0

#17 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 20 April 2019 - 14:18

 

Используй функцию 

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

 которая специально создана под эту задачу.

Пример: 

[group p11, group leader10, 60] call BIS_fnc_stalk;

ToxaBes, перепробовал все варианты в ВИКИ, но что то не идут они вообще никуда. Ваш вариант вроде понятен и прост и ошибок не выдает при вызове через инит.sqf в отличие от БИСовских вариантов, но тоже стоят на с места.


  • 0

#18 OFFLINE   TankiSD

TankiSD

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

  • Пользователи
  • 680 сообщений

Отправлено 20 April 2019 - 15:16

Попробуй тогда добавить dotarget dofire


  • 0

#19 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 20 April 2019 - 15:19

Всё-таки я убедился, что маршрутная точка "найти и уничтожить" с радиусом во всю карту РУЛИТ в этом вопросе. ВСЁ работает как часы и очень реалистично боты передвигаются (вроде и потеряли игрока, но в то же время и ищут в нужном направлении). Так что друзья, если не найдем больше рабочих вариантов, то можно закрывать тему с решением вопроса постановкой указанной маршрутной точки.


  • 0

#20 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 20 April 2019 - 15:24

Попробуй тогда добавить dotarget dofire

TankiSD, это я пробовал еще год назад. Если игрок на одном конце карты, а боты на другом, то ничего не работает. Зато эти команды отлично работают при нападении вражеских ботов на нашу колонну, и стреляют в приоритете по бронетехнике с присвоенными именами. типа group Talib10 doFire btr1


  • 0




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