Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Скрипты "Respawn" и Скрипт генерирущий ботов (Создание ботов солдат на ходу) |
"Respawn" и Скрипт генерирущий ботов |
› Четверг
› 03.07.2014
› 18:27
› Сообщение #
Блин, спасибо! Вылетело из головы!
Сделал, но, не работает, не респаются боты вокруг главного бота, ну и оружие тоже не появляется. Изначальный скрипт, ботов респает. Bot_W0 = ["B_G_Soldier_F","B_G_Soldier_M_F","B_G_Soldier_lite_F","B_G_Soldier_LAT_F"]; _amb = []; _am1 = ["hlc_30Rnd_762x39_b_ak", "hlc_30Rnd_762x39_b_ak", "hlc_30Rnd_762x39_b_ak"]; _aw1 = ["hlc_rifle_ak74"]; _am2 = ["hlc_30Rnd_762x39_b_ak", "hlc_30Rnd_762x39_b_ak", "hlc_30Rnd_762x39_b_ak"];_aw2 = ["hlc_rifle_ak47"]; private ["_ps","_gr"]; While {true} do { { if (count units _x < 3) then { _ps = waypointPosition [_x, 0]; _gr = _x; { _amb = call compile format ["[_am%1, _ab%1]", floor (random 3.6)]; _un = _gr createUnit [_x,_ps, [], 30, "FORM"] _un removeAllWeapons; {_un addMagazine _x} forEach (_amb select 0); {_un addWeapon _x} forEach (_amb select 1); _un selectWeapon PrimaryWeapon _un; } forEach Bot_W0; }; sleep 5; } forEach [GW_0,GW_1,GW_2,GW_3,GW_4]; sleep 5; }; |
› Четверг
› 03.07.2014
› 19:19
› Сообщение #
проверил, исправил
число в переменных _am0, _aw0 - начинать с 0 число в (random 1.9)] ставить - кол-во списков - 0.1 не забывать ; в конце строки Bot_W0 = ["B_G_Soldier_F","B_G_Soldier_M_F","B_G_Soldier_lite_F","B_G_Soldier_LAT_F"]; _amb = []; _am0 = [hlc_30Rnd_762x39_b_ak]; _aw0 = [hlc_rifle_ak74]; _am1 = [hlc_30Rnd_762x39_b_ak];_aw1 = [hlc_rifle_ak47]; private ["_ps","_gr"]; While {true} do { { if (count units _x < 3) then { _ps = waypointPosition [_x, 0]; _gr = _x; { _amb = call compile format ["[_am%1, _aw%1]", floor (random 1.9)]; _un = _gr createUnit [_x,_ps, [], 30, "FORM"]; removeAllWeapons _un; {_un addMagazine _x} forEach (_amb select 0); {_un addWeapon _x} forEach (_amb select 1); _un selectWeapon PrimaryWeapon _un; } forEach Bot_W0; }; sleep 5; } forEach [GW_0,GW_1,GW_2,GW_3,GW_4]; sleep 5; }; |
› Четверг
› 03.07.2014
› 19:56
› Сообщение #
Отлично!, просто изумительно! Большое человеческое спасибо!
Единственное хочу попросить помочь, каким образом прописать дымовые шашки и гранаты?! |
› Четверг
› 03.07.2014
› 20:08
› Сообщение #
|
› Понедельник
› 07.07.2014
› 16:10
› Сообщение #
Slon Большое тебе спасибо!
Добавлено (07.07.2014, 16:10) |
› Понедельник
› 07.07.2014
› 17:22
› Сообщение #
пару десятков можеш запустить без проблем, а дальше следи за ФПС.
|
› Понедельник
› 08.12.2014
› 08:49
› Сообщение #
Slon, а можно сделать другие стороны?
|
› Вторник
› 08.12.2015
› 18:09
› Сообщение #
Всем привет!Начинаю делать миссии, но пока с трудом разбираюсь.
Идея такая: Изначально стоит бот.Он должен стоять как статуя не реагируя ни на что. После его смерти на его месте должен появиться бот с такими же параметрами. Для это использовал пример Слона с небольшим дополнением в виде команды disableAI. Впринципе все работает но: 1)бот респавнится только через 30 сек,хотелось бы как то самому задавать время. 2)изанчально бот стоит не реагируя ни на что (работает команда disableAI).После смерти новый бот начинает двигаться,он не перенял от предвшественника команду disableAI. Помогите исправить эти 2 пункта. Пример того что я написал: Можно использовать уже существующие группы ботов установленых на карте для этого, ставиш бота , рисуеш ему вэйпоинты. В инит боту пишеш this disableAI "ANIM"; - убрал анимацию бота чтоб не двигался. Gr5 = Group this; - в переменную сохраняется название и группа этого бота Mesto5 = getPos this; - в переменную сохраняется место где стоит бот Vzvod5 = ["B_Soldier_F"]; пополнять отряд будет тригер условие count units Gr5 < 1 - если в группе осталось меньше 1 бота активация {_x createUnit [Mesto5, Gr5]} forEach Vzvod5 |
› Вторник
› 08.12.2015
› 18:17
› Сообщение #
для создания бота используй вариант
https://community.bistudio.com/wiki/createUnit_array в итоге { _unit = Gr5 createUnit [_x, Mesto5, [], 0, "CAN_COLLIDE"]; _unit disableAI "ANIM"; } forEach Vzvod5; |
› Понедельник
› 14.12.2015
› 05:13
› Сообщение #
Все сделал,работает). Но бот респавнится только 1 раз (после гибели второго никто не появляется),в чем может быть причина?
Прикладываю миссию,как оно у меня получилось. Добавлено (14.12.2015, 05:05) Добавлено (14.12.2015, 05:13) |
› Понедельник
› 14.12.2015
› 07:38
› Сообщение #
|
› Понедельник
› 14.12.2015
› 14:21
› Сообщение #
Идея рабочая, но появился один момент:когда бот респавнится скорее всего ему дается новое имя и поэтому условие перестает работать так как оно обращается к старому имени Bot.
|
› Понедельник
› 14.12.2015
› 16:09
› Сообщение #
Bot = Gr5 createUnit ["B_Soldier_F", Mesto5, [], 0, "CAN_COLLIDE"]; Bot disableAI "ANIM"; publicVariable "Bot";
|
› Вторник
› 15.12.2015
› 20:43
› Сообщение #
Большое спасибо! Ты лучший! Все работает,теперь я примерно понимаю как это все работает.Буду пробовать что-то новое.
|
› Среда
› 16.03.2016
› 17:27
› Сообщение #
2 вопроса, связанные с высотой респа
1) как задать высоту респа бота (ботов), респящихся по команде createUnit, где там писать команду, задающую высоту объекта thissetPosATL [getPosATL this select 0, getPosATL this select 1, 0]. большая просьба написать пример всего скрипта. миссия примерно такая -2-этажный дом нужно зачистить. при подходе к нему игроков или ботов срабатывает триггер (однократно), который создает нескольких одиночных ботов в этом доме, на 1 и 2 этажах. и вот нужно задать им высоту, иначе они все появятся на крыше. и еще надо задать направление куда они будут смотреть, смысл, чтобы боты, появившиеся перед окном, смотрели в окно, и из него стреляли. и положение бота - стоя, т.е. setunitposUP. все для этого я сам могу сделать, за исключением высоты, т.е. я создаю триггер, в нем команду для респа ботов, маркеры на тех местах где они появятся, но они появятся на крыше. вся сложность в том, что я не знаю как и куда вписать команду thissetPosATL... т.е. в каком виде она будет в ините триггера? сейчас так: в триггере {_xcreateUnit [Mesto1, Gr0, "this AddWeapon ""binocular""", 0.7]} forEach Vzvod0 в файле init.sqs Gr0 =createGroup RESISTANCE; Vzvod0 = ["GUE_Soldier_1"]; Mesto1 = getMarkerPos "mk"; а, да еще, нужно же чтобы один триггер создал ботов на нескольких местах. значит - Mesto1 =getMarkerPos "mk", getMarkerPos "mk1", getMarkerPos "mk2" и т.д.? 2) вопрос по респу в сетевой миссии, тоже связанный с высотой респа игроков. как сделать чтобы игроки респились в здании? я ставлю маркер респа на здании, на этом маркере несколько ботов (это будут слоты для игроков), пишу им в инит команду задающую высоту, и при первом респе, т.е. при входе в игру, игрок появляется на заданной высоте. но при возрождении это уже не работает, и при последующих возрождениях они респятся на крыше. 2.1. и здесь еще вопрос по респу игроков в МПмиссии, как в некоторых миссиях так сделано, что боты в виде которых респятся игроки, не находятся на самом респе, а где-то в др. месте карты, или их вообще на карте нет. они прописаны каким-то сриптом?
Труд есть дело чести, дело славы, дело доблести и геройства!
|
| |||
Чат сайта |