Создание атак на базу
|
|
djsergey › Четверг
› 07.12.2017
› 09:34
› Сообщение # 1
Рядовой
В увольнительной
- Группа:
- Пользователи
- Сообщений:
- 13
Здравствуйте.Простите если тема уже повторяется,но не смог найти то что нужно.Вопрос в общем такого плана: На карте черноруссия установлена база,вокруг базы созданы группы врагов,с маршрутными точками к базе+созданы группы авиации за картой.Так вот помогите кто может,как сделать так чтобы эти группы появлялись каждые 20 минут и начинали атаковать базу???Помогите подробней-что,как и куда прописать.
|
Slon › Четверг
› 07.12.2017
› 14:58
› Сообщение # 2
Генералиссимус
В увольнительной
- Группа:
- Модератор
- Сообщений:
- 3709
- Титул:
- Спец по скриптам
|
djsergey › Пятница
› 08.12.2017
› 12:07
› Сообщение # 3
Рядовой
В увольнительной
- Группа:
- Пользователи
- Сообщений:
- 13
Спасибо большое Slon,буду пробовать)))Добавлено (08.12.2017, 12:07) --------------------------------------------- Помоги мне разобраться подробней,собрать всё в кучу так сказать))))) Получается мне нужно создать маркеры танков столько сколько мне нужно назвав их tank1,tank2,tank3 и т.д. Потом создать файл с названием createVehicle.sqf и прописать в нём - While {true} do { _pos=getMarkerPos "tank"; _Group= createGroup East;
_tank1 = "T90" createVehicle _pos; _tank1 setDir 270; _un1="RU_Soldier_Crew" createUnit [_pos, _Group, "this moveindriver _tank1", 0.7]; _un2="RU_Soldier_Crew" createUnit [_pos, _Group, " this moveingunner _tank1", 0.7]; _un3="RU_Soldier_Crew" createUnit [_pos, _Group, " this moveincommander _tank1", 0.7]; WaitUntil {not alive _tank1}; sleep 360;
{deleteVehicle _x} forEach [_tank1,_un1,_un2,_un3];
}; Правильно? Или я опять туплю))))
|
Slon › Пятница
› 08.12.2017
› 21:59
› Сообщение # 4
Генералиссимус
В увольнительной
- Группа:
- Модератор
- Сообщений:
- 3709
- Титул:
- Спец по скриптам
Создавать группу нужно до цикла, её хватит на всю игру. И координаты маркера достаточно один раз определить (если конечно он не бегает ))создавать ботов лучше другой командой.
вот так с изменениями
_pos=getMarkerPos "tank1"; _Group= createGroup East;
Тут надо создать маршрут из поинтов
While {true} do {
_tank1 = "T90" createVehicle _pos; _tank1 setDir 270;
_un1 = _Group createUnit ["RU_Soldier_Crew", _pos, [], 0, "FORM"]; _un1 moveindriver _tank1; _un2 = _Group createUnit ["RU_Soldier_Crew", _pos, [], 0, "FORM"]; _un2 moveingunner _tank1; _un3 = _Group createUnit ["RU_Soldier_Crew", _pos, [], 0, "FORM"]; _un3 moveincommander _tank1;
_Group setCurrentWaypoint [_Group, 1];
WaitUntil {not alive _tank1}; sleep 360;
{deleteVehicle _x} forEach [_tank1,_un1,_un2,_un3];
};
Ну и главное, им нужен маршрут. Перезапуск маршрута производится командой _Group setCurrentWaypoint [_Group, 1];
|
djsergey › Воскресенье
› 10.12.2017
› 00:52
› Сообщение # 5
Рядовой
В увольнительной
- Группа:
- Пользователи
- Сообщений:
- 13
Прости Slon я новичок в создании такого рода,больше изменял готовое,так что не сердись если туплю))) Немного не понял.Если я создаю группу танков,задаю им маршрут движения,обзываю группу tank1,Потом создать файл с названием createVehicle.sqf,прописать твой скрипт.Так?А инициализация для этой группы как выглядеть будет?Или ещё надо маркер создавать? Если тебе не сложно,просто объясни как по порядку нужно всё делать,а то я думаю буду мудрить сам долго))) Спасибо что откликнулся и помогаешь разобраться)))
|
Slon › Воскресенье
› 10.12.2017
› 06:15
› Сообщение # 6
Генералиссимус
В увольнительной
- Группа:
- Модератор
- Сообщений:
- 3709
- Титул:
- Спец по скриптам
Я тебе дал ссылки на объяснения. читай, там всё есть.
|
djsergey › Понедельник
› 11.12.2017
› 11:32
› Сообщение # 7
Рядовой
В увольнительной
- Группа:
- Пользователи
- Сообщений:
- 13
Хорошо,попробую разобраться)Добавлено (11.12.2017, 11:32) --------------------------------------------- Короче я тормоз))) Я хочу сделать группы техники которые будут атаковать базу с промежутком в 15 минут,это тоже делается скриптом? Или можно создав группы на карт,сделать чтобы они появлялись снова?
Со скриптом техники не получается,я изменил сторону,но боты не появляются.Танк стоит пустой-
_pos=getMarkerPos "tank1"; _Group= createGroup West; While {true} do { p=[_Group,"point","DESTROY","normal","line"] execvm "create_vep.sqf";
_tank1 = "M1A1" createVehicle _pos; _tank1 setDir 70;
_un1 = _Group createUnit ["USMC_Soldier_Crew", _pos, [], 0, "FORM"]; _un1 moveindriver _tank1; _un2 = _Group createUnit ["USMC_Soldier_Crew", _pos, [], 0, "FORM"]; _un2 moveingunner _tank1; _un3 = _Group createUnit ["USMC_Soldier_Crew", _pos, [], 0, "FORM"]; _un3 moveincommander _tank1;
_Group setCurrentWaypoint [_Group, 1];
WaitUntil {not alive _tank1}; sleep 360;
{deleteVehicle _x} forEach [_tank1,_un1,_un2,_un3];
};
|
Slon › Понедельник
› 11.12.2017
› 18:34
› Сообщение # 8
Генералиссимус
В увольнительной
- Группа:
- Модератор
- Сообщений:
- 3709
- Титул:
- Спец по скриптам
Цитата djsergey ( ) Или можно создав группы на карт,сделать чтобы они появлялись снова? Если бы сходил по ссылкам, то не задавал это вопрос. Там именно так и сделано. . . Я скопировал твой скрипт и запустил у себя без строки > p=[_Group,"point","DESTROY","normal","line"] execvm "create_vep.sqf";<
Заработало сразу, без правок. Ну конечно они никуда не едут потому что у них нет маршрута.
|
djsergey › Вторник
› 12.12.2017
› 00:21
› Сообщение # 9
Рядовой
В увольнительной
- Группа:
- Пользователи
- Сообщений:
- 13
Там в ссылках создаётся маркер на единичную технику ведь?! Прости может я просто не внимательно смотрел:( Хорошо,но эта строчка и есть ведь маршрут - p=[_Group,"point","DESTROY","normal","line"] execvm "create_vep.sqf"; Ведь по ссылкам,так и прописывают маршрут Или кинь ссылку как создать маршрут. Просто я пытаюсь разобраться в карте, но там сделано всё как то по другому. И похожего не могу найти в файлах. Или может ты подскажешь,где искать,а то там слишком много файлов,и я ещё не всё изучил к чему относиться конкретно,карта 10 городов черноруссия.Добавлено (12.12.2017, 00:21) --------------------------------------------- А вроде нашёл по поводу маршрута, по этой ссылке - http://arma.at.ua/forum/47-8603-1
|
Slon › Вторник
› 12.12.2017
› 09:37
› Сообщение # 10
Генералиссимус
В увольнительной
- Группа:
- Модератор
- Сообщений:
- 3709
- Титул:
- Спец по скриптам
|
djsergey › Четверг
› 14.12.2017
› 11:23
› Сообщение # 11
Рядовой
В увольнительной
- Группа:
- Пользователи
- Сообщений:
- 13
Я немного запутался.Подскажи,я создал группы танков,пехоты и авиации за синих,создал триггер для активации, и построил маршруты.Теперь я так понимаю мне нужно каждую технику прописать скриптом который указан выше.Правильно? Или скрипт на респаун синих авиации и танков разный?
|
Slon › Четверг
› 14.12.2017
› 20:48
› Сообщение # 12
Генералиссимус
В увольнительной
- Группа:
- Модератор
- Сообщений:
- 3709
- Титул:
- Спец по скриптам
Тот скрипт что ты написал, создаёт танк с экипажем (и всё) а если танк взорван через минуту делает новый (и всё).
Если ты хочш чтобы то что ты поставил на карту периодически возраждалось в таком же виде, то нужен другой скрипт.
|
djsergey › Пятница
› 15.12.2017
› 02:02
› Сообщение # 13
Рядовой
В увольнительной
- Группа:
- Пользователи
- Сообщений:
- 13
А можешь подсказать скрипт под группы техники и авиации?
|
Slon › Пятница
› 15.12.2017
› 12:57
› Сообщение # 14
Генералиссимус
В увольнительной
- Группа:
- Модератор
- Сообщений:
- 3709
- Титул:
- Спец по скриптам
|
djsergey › Вторник
› 19.12.2017
› 09:42
› Сообщение # 15
Рядовой
В увольнительной
- Группа:
- Пользователи
- Сообщений:
- 13
Нашёл такой скрипт,он подойдёт для респауна групп? Если да,то помоги его дописать чтобы она была вражеская)))Или он чисто под выделенную технику?Добавлено (19.12.2017, 09:41) --------------------------------------------- */ if (!isServer) exitWith {};
// Define variables _unit = _this select 0; _delay = if (count _this > 1) then {_this select 1} else {30}; _deserted = if (count _this > 2) then {_this select 2} else {120}; _respawns = if (count _this > 3) then {_this select 3} else {0}; _explode = if (count _this > 4) then {_this select 4} else {false}; _dynamic = if (count _this > 5) then {_this select 5} else {false}; _unitinit = if (count _this > 6) then {_this select 6} else {}; _haveinit = if (count _this > 6) then {true} else {false};
_hasname = false; _unitname = vehicleVarName _unit; if (isNil _unitname) then {_hasname = false;} else {_hasname = true;}; _noend = true; _run = true; _rounds = 0;
if (_delay < 0) then {_delay = 0}; if (_deserted < 0) then {_deserted = 0}; if (_respawns <= 0) then {_respawns= 0; _noend = true;}; if (_respawns > 0) then {_noend = false};
_dir = getDir _unit; _position = getPosASL _unit; _type = typeOf _unit; _dead = false; _nodelay = false;
// Start monitoring the vehicle while {_run} do { sleep (2 + random 10); if ((getDammage _unit > 0.8) and ({alive _x} count crew _unit == 0)) then {_dead = true};
// Check if the vehicle is deserted. if (_deserted > 0) then { if ((getPosASL _unit distance _position > 10) and ({alive _x} count crew _unit == 0) and (getDammage _unit < 0.8)) then { _timeout = time + _deserted; sleep 0.1; waitUntil {_timeout < time or !alive _unit or {alive _x} count crew _unit > 0}; if ({alive _x} count crew _unit > 0) then {_dead = false}; if ({alive _x} count crew _unit == 0) then {_dead = true; _nodelay =true}; if !(alive _unit) then {_dead = true; _nodelay = false}; }; };
// Respawn vehicle if (_dead) then { if (_nodelay) then {sleep 0.1; _nodelay = false;} else {sleep _delay;}; if (_dynamic) then {_position = getPosASL _unit; _dir = getDir _unit;}; if (_explode) then {_effect = "M_TOW_AT" createVehicle getPosASL _unit; _effect setPosASL getPosASL _unit;}; sleep 0.1;
deleteVehicle _unit; sleep 2; _unit = _type createVehicle _position; _unit setPosASL _position; _unit setDir _dir;
if (_haveinit) then {_unit setVehicleInit format ["%1;", _unitinit]; processInitCommands;}; if (_hasname) then {_unit setVehicleInit format ["%1 = this; this setVehicleVarName ""%1""",_unitname]; processInitCommands;}; _dead = false;
// Check respawn amount if !(_noend) then {_rounds = _rounds + 1}; if ((_rounds == _respawns) and !(_noend)) then {_run = false;}; }; }; Добавлено (19.12.2017, 09:42) --------------------------------------------- Описание такое - Описание: Данный скрипт возрождает технику если она была уничтожена или её покинули пассажиры и водитель. Техника может быть возрождена на точке, где она стояла в момент начала игры (есть опция по динамическому возрождению, см. ниже.) Скрипт работает с любой техникой. В строку инициализации к технике пишем: veh = [this]execVM "vehicle.sqf"Синтаксис. Вам доступны некоторые настройки: veh = [this, Задержка, Таймер_пустой_техники, Количество_респов, Эффекты, Статический_Динамический, "INIT"] execVM "vehicle.sqf" Установки по умолчанию: Респаун происходит через 30 секунд после уничтожения техники Респаун происходит через 120 секунд после того, как технику покинул последний пассажир Количество респов неограничено Респ происходит без доп. эффектов Статический респаун.
НАСТРОЙКИ Задержка: По умолчанию задержка респа составляет 30 сек. после уничтожения, вы можете установить любую задержку (в секундах). Пример установки 15-и секундной задержки: veh = [this, 15] execVM "vehicle.sqf" Таймер_пустой_техники: По умолчанию установлен респ покинутой, но не уничтоженной техники через 120 секунд. Для изменения этого параметра впишите сперва время респа для уничтоженной техники, затем - для покинутой. Значение 0 (ноль) отключит таймер, и покинутая техника так и будет стоять на том же месте, где её оставили. Этот пример сделает респ уничтоженной техники через 15 сек. либо через 50 секунд после её покидания: veh = [this, 15, 50] execVM "vehicle.sqf" Количество_респов: По умолчанию кол-во респов не ограничено. Если требуется лимитировать респы - установите цифровое значение, но прежде пропишите предыдущие параметры (0 = неограниченоне кол-во респов). veh = [this, 15, 10, 5] execVM "vehicle.sqf" Эффекты: Значение TRUE добавит специальный эффект взрыва при респауне. По умолчанию стоит параметр FALSE, при котором техника просто исчезает. veh = [this, 15, 10, 5, TRUE] execVM "vehicle.sqf" Статический_Динамический: По умолчанию респ происходит по статическому принципу - техника отреспится в точке её установки на момент начала игры. Вы можете сделать динамический респаун - техника реснётся на том же месте, где и была уничтожена. Для этого следует прописать вае предыдущие параметры, и в значении Статический_Динамический пропишите 1. Если требуется статический респ - не указывайте ничего вообще.This one veh = [this, 15, 10, 1] execVM "vehicle.sqf" INIT: Если вы хотите добавить какие-то особенности через INIT для респящейся техники - сперва прописываете все вышеописанные параметры далее прописываете требуемые значения INIT. Они должны находиться в выражении [] и заключены в кавычки "". Пример: veh = [this, 15, 10, 5, TRUE, FALSE, "this setDammage 0.5"] execVM "vehicle.sqf"
|