Скажите, это очередной глюк армы или я могу что то делать не так. Агенты забили на мои команды и не хотят перемещаться.
person moveTo position
#1 OFFLINE
Отправлено 12 May 2014 - 22:16
#2 OFFLINE
Отправлено 12 May 2014 - 22:36
Дас! Разобрался, вот этого им не сделал.
_agent disableAI "FSM";
Сообщение отредактировал SteelRat: 12 May 2014 - 22:36
#3 OFFLINE
Отправлено 12 May 2014 - 23:39
Да вот возник ещё вопрос. А агентов можно заставить водить транспорт?
#4 OFFLINE
Отправлено 13 May 2014 - 00:50
Да вот возник ещё вопрос. А агентов можно заставить водить транспорт?
можно!
#5 OFFLINE
Отправлено 13 May 2014 - 01:05
можно!
Исчерпывающий ответ! А я Бабушка Ванга! Приятно познакомится, и я очень умею читать мысли на расстоянии.
#6 OFFLINE
Отправлено 13 May 2014 - 01:39
ну как спросил так и ответили, надо точнее задавать вопрос.
#7 OFFLINE
Отправлено 13 May 2014 - 17:01
ну как спросил так и ответили, надо точнее задавать вопрос.
В отношении персонально к вам буду придерживаться таких же утверждений. Впредь избавьте меня от ваших ответов. Удачи!
#8 OFFLINE
Отправлено 15 May 2014 - 19:47
Ну что же поделаешь, раз мутные ответы приходят только от служителей тайных сект, которые не желают делится сокровенным, придётся очередной раз самому и ответить на свой вопрос.
Да вот возник ещё вопрос. А агентов можно заставить водить транспорт?
Да, их вполне можно уломать это делать и даже совсем не сложно, и вот собственно кодик, ну так, по развлечься )
_mypos = getposATL player; _dir = getdir player; _mypos = [(_mypos select 0)+15*sin(_dir),(_mypos select 1)+15*cos(_dir), (_mypos select 2)]; _veh = "C_Quadbike_01_F" createVehicle _mypos; _agent = createAgent ["C_man_1", _mypos, [], 0, "NONE"]; _agent disableAI "FSM"; sleep 0.1; [_veh,player, ["cargo"]] call BIS_fnc_moveIn; [_veh, _agent, ["driver"]] call BIS_fnc_moveIn; sleep 1; _centerPos = getPosATL _veh; _vpPos = _centerPos; _checkTime = time; PTm_Loop = true; while {PTm_Loop} do { if ((_agent distance _vpPos < 8) or (time > _checkTime)) then { _checkTime = time + 20; _vpPos = [ (_centerPos select 0) + ([-100,-80,-60,-40,-20,0,20,40,60,80,100] call BIS_fnc_selectRandom), (_centerPos select 1) + ([-100,-80,-60,-40,-20,0,20,40,60,80,100] call BIS_fnc_selectRandom), (_centerPos select 2) ]; systemChat format["%1", _vpPos]; _agent MoveTo _vpPos; }; sleep 1; };
#9 OFFLINE
Отправлено 19 May 2014 - 00:04
А как заставить юнита сесть в транспорт и ехать в другую точку когда у него уже есть вэйпойнты (тобишь допустим юнит тупо патрулирует по циклу и по тревоге он садиться в транспорт и едет в другую точку)? addwaypoint и action почему-то не пашут
#10 OFFLINE
Отправлено 19 May 2014 - 06:58
Артем, такое можно сделать при помощи тригера, где в "тип" написано "переключить" (синхронизируешь его с вейпойнтом, который идет после "зациклить")А как заставить юнита сесть в транспорт и ехать в другую точку когда у него уже есть вэйпойнты (тобишь допустим юнит тупо патрулирует по циклу и по тревоге он садиться в транспорт и едет в другую точку)? addwaypoint и action почему-то не пашут
В итоге: при активации триггера, он делает вейпойнт, который стоит после "зациклить", выполненым и маршрут переключается дальше.
Сообщение отредактировал vlad333000: 19 May 2014 - 09:10
#11 OFFLINE
Отправлено 03 June 2014 - 17:29
Не могу понять где подвох.
На клиенте вызываю такую функцию
_fnc_createAgent = { _unitClass = _this select 0; _pos = _this select 1; _agent = objNull; if (isMultiplayer) then { if (isServer) then { _agent = createAgent [_unitClass, _pos, [], 0, "NONE"]; } else { systemChat "Send server code"; [[[_unitClass, _pos, player], { _agent = createAgent [(_this select 0), (_this select 1), [], 0, "NONE"]; _agent disableAI "FSM"; _agent setOwner owner (_this select 2); [[[_agent],{PTm_unitLink = (_this select 0)}],"BIS_fnc_spawn",owner (_this select 2),false] spawn BIS_fnc_MP; }],"BIS_fnc_spawn",false,false] spawn BIS_fnc_MP; waitUntil {sleep 0.2; !isNil "PTm_unitLink"}; _agent = PTm_unitLink; PTm_unitLink = Nil; systemChat "Agent created"; }; } else { _agent = createAgent [_unitClass, _pos, [], 0, "NONE"]; }; _agent };
Эта функция в мультиплеере отправляет на сервер этот код
[[[_unitClass, _pos, player], { _agent = createAgent [(_this select 0), (_this select 1), [], 0, "NONE"]; _agent disableAI "FSM"; _agent setOwner owner (_this select 2); [[[_agent],{PTm_unitLink = (_this select 0)}],"BIS_fnc_spawn",owner (_this select 2),false] spawn BIS_fnc_MP; }],"BIS_fnc_spawn",false,false] spawn BIS_fnc_MP;
Который создаёт на сервере объект AGENT, далее делает владельцем этого объекта клиент, и отправляет назад клиенту ссылку на агента.
Вся кухня работает отлично, за исключением одного НО.
Агент не хочет выполнять команды с клиента, например, не хочет перемещаться в пространстве, когда ему даётся такая команда.
Кто подскажет, где грабли?