Скажите, это очередной глюк армы или я могу что то делать не так. Агенты забили на мои команды и не хотят перемещаться.
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, далее делает владельцем этого объекта клиент, и отправляет назад клиенту ссылку на агента.
Вся кухня работает отлично, за исключением одного НО.
Агент не хочет выполнять команды с клиента, например, не хочет перемещаться в пространстве, когда ему даётся такая команда.
Кто подскажет, где грабли?











