Не магу найти нормальный скрипт покупки техники, оружия и ботов как в Альфа версии. Даже не знаю как он называется, что очень затрудняет поиски.
Я портировал его в 1.0 версию но кроме оружия там нечего купить нельзя. Так как вся техника здесь уже переименована а самому переписывать. Не знаю как да и парится не собираюсь.
Помогите с такой ситуацией, пожалуйста: есть отделение солдат, есть нейтральная (пустая) машина. Требуется чтобы один из бойцов отделения занял место водителя (решено использованием команды MoveInDriver для одного из бойцов по достижении вейтпоинта) и отправился по заданию независимо от прочих членов отряда. Проще говоря, нужно либо расформировать подразделение, либо вывести одного бойца из его состава. Как?
HarryWorner, ага, пасибки! Только что накопал это же решение. Но теперь новая проблема - солдатик снова следует за командиром группы (автоприсоединение к старшему по званию?),а мне нужно, чтобы он сел в машину и отправился в самостоятельное путешествие. Как сделать, чтобы он не возвращался в строй, а сел в машину и уехал? И, кстати, в машину то я его посадить могу, а вот как вейпоинты дальше раскидать?! Машина то пустой объект! Помогите разобраться - как мне обращаться к своему солдатику после отделения от группы и как ему вейпоинты дальше назначать (собственно именно это и интересует, ибо прописывать все его дальнейшие действия только и исключительно скриптами - мне знаний не хватает).
VIRrusR, написал пример, но для этого использовал внешний скрипт который назвал NewWaypoints.sqf чтобы создать вейпоинты динамически. Откроете блокнотом и посмотрите что и как. Все описано с помощью комментариев.
Машина то пустой объект!
Нужно выделить юнита либо его вейпоинт, чтобы потом продолжить добавлять вейпоинты для этого юнита. Если выделить пустой объект, то вейпоинт этому пустому объекту создать не получиться.
HarryWorner, ещё раз спасибо! Попробую разобраться...
Ур-р-р-р-р-рря-я-а-а-а-а-а-а-а!!! Получилось! Не, ну Вы прикиньте, а? Получилось!!!
Как я и предполагал проблема была в непонимании синтаксиса скрипта!
Вобщем, поматюкавшись и упёршись рогом в грунт, отправился переводить каждое слово из примера, предложенного уважаемым HarryWorner`ом, за что ему ещё раз огромаднейшее спасибище! Не вдаваясь в подробности вписал вот это прямо в поле "При активации" вейпоинта:
Во чего оно надо было!
[Joe] join grpNull; // Солдат Джо выводится из состава подразделения;
JoeGRP=(group Joe) // Группируем новое подразделение из солдата Джо;
WP1=JoeGRP addWaypoint [getpos Zamak,0]; // Добавляем вейпоинт подразделению Джо к грузовику;
WP1 setWaypointType "GETIN"; // Устанавливаем тип вейпоинта "сесть" для подразделения Джо;
WP1 setWaypointCompletionRadius 5; // Устанавливаем радиус завершения вейпоинта равным 5;
WP1 setWaypointStatements ["true","{Joe assignAsDriver Zamak} forEach units this; units this orderGetIn true"]; //Задаём условие выполнения вейпоинта - сесть в машину на место водителя (не буду врать - не совсем пока разобрался с параметрами);
WP2=JoeGRP addWaypoint [VIRrusR,1]; // Добавляем вейпоинт для Джо "остановиться в радиусе метра от VIRrusR`а (можно использовать привязку к любому объекту);
Здесь:
Joe - многострадальный солдат Джо, состоящий в группе;
И всё поехало! Отделение солдат подбегает к грузовику и убегает дальше, оставив солдата Джо, который садится за руль и едет к наблюдающему за всем этим игроку VIRrusR.
P.S. Поубирал паузы и вывод строкового значения - так и не понял что оно выводит? Численность подразделения Джо? Очень трудно разбираться - описание команд кругом на английском... И надо всё же разбираться с синтаксисом - без этого, видимо, никак.
P.P.S. Недостаток метода в том, что в дальнейшем придётся обращаться к Джо только и исключительно через скрипты - редактор не отображает его вейпоинты вообще никак , т.е. всякий раз, когда Вы захотите чтобы Джо куда то отправился, Вам придётся дописывать конструкцию _wp[_x]=JoeGRP addWaypoint [] , что крайне неудобно, если вписывать скрипт прямо в условие "при активации" вейпоинта в редакторе - значит без внешних скриптов не обойтись, либо использовать конструкцию для одного-двух действий.
Rain^^, я тоже долго пробовал запустить это в АА3, в итоге мне кажется что БИСы сломали эту функцию как например работу с биноклями. Лучше поискать другой вариант реализации. Например добавлять экшен с хоткеем.
Всем привет, знающие люди, необходимо сделать так, чтобы атакующие войска, при потерях не отступали назад а продолжали наступление до последнего любой ценой!
Другими словами как отключить "сыкливость" ботов??
Не помню от куда взял данный скрип на респ техники, но с ним возникла проблема. В редакторе все работает нормально, но как только создаю сервер и ко мне заходят люди, твориться невообразимое. После уничтожения данной техники убираются ее "останки" после заданного времени как и положено, но вместо одной уничтоженной единицы, появляются сразу несколько таких же в одном месте, и естественно сразу взрываются и разлетаются по всей карте. И цикл снова повторяется, может кто подскажет что исправить?
Звучит так, как будто этот скрипт работает сразу у всех клиентов, и каждый клиент спавнит машинку в одном и том же месте. Я так понял, скрипт рекурсивно сам себя вызывает, но как он изначально запускается?
Ну тогда все понятно. Init.sqf отрабатывает у всех игроков при заходе на сервер. Чтобы скрипт работал только на сервере, попробуй сделать так:
if (isServer) then
{
v1 execVM "scripts\vehresp.sqf";
v2 execVM "scripts\vehresp.sqf";
v3 execVM "scripts\vehresp.sqf";
};
Также хочу заметить, что в Арме 3 есть специальный модуль (F7) для респавна техники (находится в категории Multiplayer). Вероятно, использовать его будет эффективнее, чем самописные скрипты.
hipp0cat, проверил, теперь все правильно работает, с модулем тоже попробую разобраться, огромное спасибо!
И еще одна проблемка: на моем полигоне стоит скрипт изменения погоды и времени, но опять же все это меняется у клиента, возможно ли сделать, так чтоб изменения происходили на сервере (для всех)?
И еще одна проблемка: на моем полигоне стоит скрипт изменения погоды и времени, но опять же все это меняется у клиента, возможно ли сделать, так чтоб изменения происходили на сервере (для всех)? test.png
Как вариант - создать обработчик глобальной переменной для всех клиентов.
Т.е. когда кто-то меняет погоду, он будет сообщать об изменениях остальным игрокам с помощью этой самой переменной.