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


Фотография

Боты зависают в воздухе после высадки.


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

#1 OFFLINE   Fixjunior

Fixjunior

    Ефрейтор

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

Отправлено 01 February 2021 - 18:50

После высадки из вертолета некоторые боты просто застывают в таком положении:

В чем может быть проблема?

Прикрепленные файлы


  • 0

#2 OFFLINE   Ibragim

Ibragim

    Сержант

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

Отправлено 01 February 2021 - 19:07

Как происходит высадка? Прыжок с парашютом, команда Спешиться, скрипт? 


  • 0

#3 OFFLINE   Fixjunior

Fixjunior

    Ефрейтор

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

Отправлено 01 February 2021 - 19:09

Как происходит высадка? Прыжок с парашютом, команда Спешиться, скрипт? 

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


  • 0

#4 OFFLINE   Ibragim

Ibragim

    Сержант

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

Отправлено 01 February 2021 - 19:40

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


Сообщение отредактировал Ibragim: 01 February 2021 - 19:40

  • 0

#5 OFFLINE   Fixjunior

Fixjunior

    Ефрейтор

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

Отправлено 01 February 2021 - 19:43

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

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

Прикрепленные файлы

  • Прикрепленный файл  waypoints.sqf   1.14К   2 Количество загрузок:

Сообщение отредактировал Fixjunior: 01 February 2021 - 19:49

  • 0

#6 OFFLINE   Ibragim

Ibragim

    Сержант

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

Отправлено 01 February 2021 - 20:05

Если _wp2 должен появляться после высадки, то проверка на высадку должна быть заключена в цикл waitUntil, иначе строка (units group1) findIf { _x in heli } == -1; не имеет смысла:

_wp1 = group heli addWaypoint [getPos helipad1, 0];
_wp1 setWaypointType "TR UNLOAD";
_wp1 setWaypointBehaviour "AWARE"; 

waitUntil 
	{
		(units group1) findIf { _x in heli } == -1;
	};
	
_wp2 = group1 addWaypoint [getPos helipad1, 0];
_wp2 setWaypointType "GETOUT";
_wp2 setWaypointBehaviour "AWARE";
_wp2 setWaypointStatements ["(units group1) findIf { _x in heli } == -1", ""];

_wp3 = group heli addWaypoint [[1550.32,7559.23,125.173], 0];
_wp3 setWaypointType "MOVE";

_wp4 = group heli2 addWaypoint [getPos helipad2, 0];
_wp4 setWaypointType "TR UNLOAD";
_wp4 setWaypointBehaviour "AWARE";

waitUntil 
	{
		(units group2) findIf { _x in heli2 } == -1;
	};
	
_wp5 = group2 addWaypoint [getPos helipad2, 0];
_wp5 setWaypointType "GETOUT";
_wp5 setWaypointBehaviour "AWARE";
_wp5 setWaypointStatements ["(units group2) findIf { _x in heli2 } == -1", ""];

_wp6 = group heli2 addWaypoint [[1477.2,7601.14,126.098], 0];
_wp6 setWaypointType "MOVE";

_wp7 = group1 addWaypoint [[1275.77,5944.1,0], 0];
_wp7 setWaypointType "DESTROY";
_wp7 setWaypointBehaviour "AWARE";

_wp8 = group2 addWaypoint [[1275.77,5944.1,0], 0];
_wp8 setWaypointType "DESTROY";
_wp8 setWaypointBehaviour "AWARE";

Также вместо GETOUT лучше поставить сразу вейпоинт MOVE на позицию после высадки, боты сами вылезут и двинутся к точке.


  • 0

#7 OFFLINE   Fixjunior

Fixjunior

    Ефрейтор

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

Отправлено 01 February 2021 - 20:22

Если _wp2 должен появляться после высадки, то проверка на высадку должна быть заключена в цикл waitUntil, иначе строка (units group1) findIf { _x in heli } == -1; не имеет смысла:

_wp1 = group heli addWaypoint [getPos helipad1, 0];
_wp1 setWaypointType "TR UNLOAD";
_wp1 setWaypointBehaviour "AWARE"; 

waitUntil 
	{
		(units group1) findIf { _x in heli } == -1;
	};
	
_wp2 = group1 addWaypoint [getPos helipad1, 0];
_wp2 setWaypointType "GETOUT";
_wp2 setWaypointBehaviour "AWARE";
_wp2 setWaypointStatements ["(units group1) findIf { _x in heli } == -1", ""];

_wp3 = group heli addWaypoint [[1550.32,7559.23,125.173], 0];
_wp3 setWaypointType "MOVE";

_wp4 = group heli2 addWaypoint [getPos helipad2, 0];
_wp4 setWaypointType "TR UNLOAD";
_wp4 setWaypointBehaviour "AWARE";

waitUntil 
	{
		(units group2) findIf { _x in heli2 } == -1;
	};
	
_wp5 = group2 addWaypoint [getPos helipad2, 0];
_wp5 setWaypointType "GETOUT";
_wp5 setWaypointBehaviour "AWARE";
_wp5 setWaypointStatements ["(units group2) findIf { _x in heli2 } == -1", ""];

_wp6 = group heli2 addWaypoint [[1477.2,7601.14,126.098], 0];
_wp6 setWaypointType "MOVE";

_wp7 = group1 addWaypoint [[1275.77,5944.1,0], 0];
_wp7 setWaypointType "DESTROY";
_wp7 setWaypointBehaviour "AWARE";

_wp8 = group2 addWaypoint [[1275.77,5944.1,0], 0];
_wp8 setWaypointType "DESTROY";
_wp8 setWaypointBehaviour "AWARE";

Также вместо GETOUT лучше поставить сразу вейпоинт MOVE на позицию после высадки, боты сами вылезут и двинутся к точке.

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


  • 0

#8 OFFLINE   Fixjunior

Fixjunior

    Ефрейтор

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

Отправлено 02 February 2021 - 00:03

Если _wp2 должен появляться после высадки, то проверка на высадку должна быть заключена в цикл waitUntil, иначе строка (units group1) findIf { _x in heli } == -1; не имеет смысла:

_wp1 = group heli addWaypoint [getPos helipad1, 0];
_wp1 setWaypointType "TR UNLOAD";
_wp1 setWaypointBehaviour "AWARE"; 

waitUntil 
	{
		(units group1) findIf { _x in heli } == -1;
	};
	
_wp2 = group1 addWaypoint [getPos helipad1, 0];
_wp2 setWaypointType "GETOUT";
_wp2 setWaypointBehaviour "AWARE";
_wp2 setWaypointStatements ["(units group1) findIf { _x in heli } == -1", ""];

_wp3 = group heli addWaypoint [[1550.32,7559.23,125.173], 0];
_wp3 setWaypointType "MOVE";

_wp4 = group heli2 addWaypoint [getPos helipad2, 0];
_wp4 setWaypointType "TR UNLOAD";
_wp4 setWaypointBehaviour "AWARE";

waitUntil 
	{
		(units group2) findIf { _x in heli2 } == -1;
	};
	
_wp5 = group2 addWaypoint [getPos helipad2, 0];
_wp5 setWaypointType "GETOUT";
_wp5 setWaypointBehaviour "AWARE";
_wp5 setWaypointStatements ["(units group2) findIf { _x in heli2 } == -1", ""];

_wp6 = group heli2 addWaypoint [[1477.2,7601.14,126.098], 0];
_wp6 setWaypointType "MOVE";

_wp7 = group1 addWaypoint [[1275.77,5944.1,0], 0];
_wp7 setWaypointType "DESTROY";
_wp7 setWaypointBehaviour "AWARE";

_wp8 = group2 addWaypoint [[1275.77,5944.1,0], 0];
_wp8 setWaypointType "DESTROY";
_wp8 setWaypointBehaviour "AWARE";

Также вместо GETOUT лучше поставить сразу вейпоинт MOVE на позицию после высадки, боты сами вылезут и двинутся к точке.

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


  • 0




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