Модератор форума: Slon |
Форум » РЕДАКТОР - ArmA 2 » Скрипты » Вопросы по скриптописанию (Тонкости написания скриптов) |
Вопросы по скриптописанию |
› Четверг
› 24.10.2013
› 11:44
› Сообщение #
Как развернуть строй группы на какой-либо объект (на маркер)? Смысл в том, что прибывшая обороняться группа разворачивается в направлении возможной атаки. Пробовал doWatch, но бойцы только на месте разворачиваются.
|
› Четверг
› 24.10.2013
› 15:12
› Сообщение #
Индеец, развернуть строй
http://community.bistudio.com/wiki/setFormDir |
› Четверг
› 24.10.2013
› 20:41
› Сообщение #
|
› Пятница
› 25.10.2013
› 19:05
› Сообщение #
alex70-03, нет, параметр target: Object команды doFire.Если только описать свою фунцию которая будет выбирать цель на текущий момент из массива объектов целей, рандомно или по каким-то приоритетным свойствам цели
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Пятница
› 25.10.2013
› 19:38
› Сообщение #
|
› Понедельник
› 28.10.2013
› 20:54
› Сообщение #
Пытаюсь выделить из группы, бойцов с гранатометами. Перебрал кучу примеров - ничего не выходит. Может есть у кого подходящий скрипт? Пока есть вот что:
// Активация: at = [лидер группы] execVM "antitank_group.sqf" _leader = _this select 0; //группа лидера _grONE = group _leader; //бойцы группы _unit = units _grONE; //резервируем массив для противотанковой группы _antiTankGroup = []; _i = 0; _j = count _unit; //для всех бойцов группы while {_i<_j} do { //оружие бойца _weapon = (weapons _unit select _i); //имя бойца _nameUnit = name (_unit select _i); //если у бойца есть гранатомет, зачислить его в противотанковую группу if(getText (configFile >> "CfgWeapons">>_weapon>>"recoil") == "launcherBase") then { if (_nameUnit in _antiTankGroup) then {} else {_antiTankGroup set [count _antiTankGroup, _nameUnit]}; }; //следующий боец _i = _i + 1; }; hint str _antiTankGroup; Не работает. |
› Понедельник
› 28.10.2013
› 21:10
› Сообщение #
Индеец, а зачем name в коде? name выдает имя, прописанное в дескрипшене в секции CfgIdentities, причем если не используется setIdentity, оно может быть каким угодно. Юниты именованные?
Сообщение отредактировал andrucio - Понедельник, 28.10.2013, 21:10
|
› Понедельник
› 28.10.2013
› 21:14
› Сообщение #
две ошибки
1 тут система ошибается при чтении, это читается так _weapon = (weapons _unit select _i); а раз _unit-массив, то ошибка. меняем последовательность выполнения, пишем так _weapon = weapons (_unit select _i); - оружие- бота под номером _i 2 _weapon - это массив , а нужно название (getText (configFile >> "CfgWeapons" >> _weapon >> "recoil") == "launcherBase") прально так if ({getText (configFile >> "CfgWeapons" >> _x >> "recoil" ) == "launcherBase"} count _weapon > 0) then в сокрощённом варианте выглядит так _antiTankGroup = []; { if({getText (configFile >> "CfgWeapons" >> _x >> "recoil" ) == "launcherBase"} count weapons _x > 0) then { _antiTankGroup set [count _antiTankGroup, name _x] }; } forEach (units ( _this select 0)); hint str _antiTankGroup; |
› Понедельник
› 28.10.2013
› 21:58
› Сообщение #
Извините за глупость, но мозг остановился. Заменил _nameUnit на (_unit select _i) , сделал поправки 1 и 2, согласно примеру Slonа. Появился хинт с пустым массивом, хотя, понятно, гранатометчики в группе есть.
|
› Понедельник
› 28.10.2013
› 22:03
› Сообщение #
|
› Вторник
› 29.10.2013
› 00:33
› Сообщение #
Цитата это где я такое советовал? |
› Вторник
› 29.10.2013
› 02:26
› Сообщение #
Индеец, ну я не истина в последней инстанции:)
просто вариант предположил.. вместо _nameUnit = name (_unit select _i); написать _nameUnit = _unit select _i; но если убирать name, тогда отсюда тоже.. _antiTankGroup set [count _antiTankGroup, name _x] 3.11. Запрещается применять красный цвет в сообщениях и подписях (Данный цвет могут использовать только модераторы и администраторы). Сообщение отредактировал KazaK - Вторник, 29.10.2013, 09:28
|
› Четверг
› 07.11.2013
› 02:04
› Сообщение #
Каким образом вернуть бойца на позицию? Прописал в скрипте:
_un = _this select 0; _pos = getPos _un; _posBox = getPos _box; _un move _posBox; _un move _pos; Стоит боец, смотрит на ящик, возвращаться не собирается. Как заставить? И второй вопрос: как заставить бойца стоять на месте? А то подносчик боеприпасов с двумя гранатами к РПГ торопится к гранотометчику, а он ну убегать и прятаться! |
› Четверг
› 07.11.2013
› 02:26
› Сообщение #
_un = _this select 0; _pos = getPos _un; _posBox = getPos _box; _un move _posBox; _un move _pos; Цитата _un move _posBox; _un move _pos; сразу в два места бежать? а не разорвётся? а если поочереди, то поинты ставь, плюс ещё один - зациклить, да с условиями один - побежал когда снаряды нужны второй у ящика - когда снаряд взял. запрет боту http://community.bistudio.com/wiki/disableAI бегать _un disableAI "MOVE" |
› Четверг
› 07.11.2013
› 11:46
› Сообщение #
у меня есть скрипт на предмете. Когда уничтожают предмет, скрипт должен переставать работать. Я сделал триггер, прописал в условие not (alive p1). Что я должен прописать в активации?
|
| |||
Чат сайта |