Уважаемый SS_Panzer_Division, привет! С пасхой тебя
Цитата SS_Panzer_Division (
)
Есть ли какой то способ установить ОПРЕДЕЛЕННО ТОЧНЫЙ маршрут боту (технике)? Ведь маршрутные точки особо не ограничиваю бота в перемещении между началом и концом пути =\ он может идти так, а потом так, а потом еще как-нибудь и это мешает созданию разных сцен... Расковыряв миссии BIS'ов я нашел там текстовик с координатами перемещения самолета, там было так много цифр, что у меня закружилась голова =D неужели необходимо вручную высчитывать координаты в пространстве и потом пускать по ним самолет? Подскажите способы создания !ТОЧНЫХ! маршрутов, заранее спасибо =)
Скажу сразу, такой способ есть, но разрабатывался он специально для авиации. С наземной техникой работает очень плохо - колеса не крутятся, машина примитивно движется исключительно за счёт череды SetPos'ов.
Используется через функции BIS_fnc_UnitCapture & BIS_fnc_UnitPlay (наверное, ты уже видел у бисов).
На самом деле там есть еще несколько почти одноименных функций, подробнее можешь посмотреть в библиотеке функций в редакторе.
В качестве примера приведу хорошее использование от некоего palyarmerc.
Код
flyone = [VehicleName, time_in_seconds] spawn BIS_fnc_UnitCapture;
after recording hit F1
Drop to desktop and open and copy to Notepad
NOTE: await the sometimes very SLOW copy from clipboard to notepad
Name your file path.sqf
Add this to the start of the code in path.sqf exactly as you see
_Path1 =
Add this to the end of the code in path.sqf exactly as you see
;[VehicleName, _Path1] spawn BIS_fnc_UnitPlay;
In your mission init.sqf have
if (IsServer) then {
myPath = compile preprocessFile "path.sqf";
};
In the editor, or in any script you call it thus
drivername moveindriver vehicleName;
rec = [] spawn MyPath;
Just place a driver with drivername and the vehicle with vehiclename away from the play area and it should work.
Выше приведено хорошее использование, но можно сделать проще (и хуже).
Упрощенный рецепт такой:
1. [VehicleName, time_in_seconds] spawn BIS_fnc_UnitCapture;
2. Открываешь Init.sqf , пишешь в начало Way =
3. Затем нажимаешь CTRL+V и после этого ставишь ;
4. В нужном тебе месте (в триггере или дальше в ините, если хочешь чтобы анимация производилась сразу после старта миссии)
[VehicleName, Way] spawn BIS_fnc_UnitPlay;
!!!При этом хочу добавить, что долгая запись генерирует ОЧЕНЬ много текста (300 секунд сгенерируют 300-400КБ). Если всю эту муть брутально попытаться вставить в скрипт, то скрипт сильно разжиреет и его исполнение будет запускаться очень долго.
Поэтому при таком "плохом" использовании применение UnitCapture лучше свести к минимуму.
Подробнее почитай тут http://www.flashpoint.ru/threads....2 . Заодно расскажи, не добавили ли там еще поддержку наземной техники.