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


Фотография

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


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

#1 OFFLINE   Cooler58

Cooler58

    Мл.сержант

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

Отправлено 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

    Полковник

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

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

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


  • 1

#3 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 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

    Мл.сержант

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

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

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


  • 0

#5 OFFLINE   TankiSD

TankiSD

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

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

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

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

 

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

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

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

 

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

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

 

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


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

  • 0

#6 OFFLINE   Cooler58

Cooler58

    Мл.сержант

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

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

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


  • 0

#7 OFFLINE   TankiSD

TankiSD

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

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

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

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

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

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


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

  • 0

#8 OFFLINE   vlad333000

vlad333000

    Полковник

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

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

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

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

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

,

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


  • 0

#9 OFFLINE   vlad333000

vlad333000

    Полковник

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

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

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

#10 OFFLINE   Cooler58

Cooler58

    Мл.сержант

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

Отправлено 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

    Мл.сержант

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

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

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


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

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

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

 


  • 0

#12 OFFLINE   TankiSD

TankiSD

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

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

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

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

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

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

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

Понял?!) 


  • 0

#13 OFFLINE   Cooler58

Cooler58

    Мл.сержант

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

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

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


  • 0

#14 OFFLINE   moroz89

moroz89

    Мл.сержант

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

Отправлено Вчера, 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

    Рядовой

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

Отправлено Вчера, 20:32

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

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

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

Пример: 

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

Сообщение отредактировал ToxaBes: Вчера, 20:36

  • 0




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