LazyLucky 30 Жалоба Опубликовано 18 ноября, 2015 Есть одна команда: unitOne ["USEWEAPON", <target vehicle>, <target unit>, <weapon index>] Если я все правильно понял, то: unitOne - стрелок <target vehicle> - цель для стрельбы <target unit> - оружие <weapon index> - режим стрельбы Как с поморью всего этого заставить стрелять статичный миномет без стрелка? Вариант с размещением объекта игровой логики (тот который в юнитах) в качестве стрелка у меня не сработал. logic action ["useWeapon",targ,wep,0]; targ - пустая техника wep - ванильный миномет(эйсовский не подходит сюда) Индексы перепробовал от -1 до 5. В рпт на этот счет тоже ничего нет. Fire и DoFire так же требует наличия стрелка в миномете. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
[KND] Kronos 1 433 Жалоба Опубликовано 18 ноября, 2015 Судя по примерам то <target vehicle> - цель для стрельбы техника которая будет стрелять <target unit> - оружиекто будет стрелять (определенный юнит или с определенного места в технике) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LazyLucky 30 Жалоба Опубликовано 18 ноября, 2015 Судя по примерам то А можно примеры? На бисовики приведена такая команда: gameLogic action ["useWeapon",vehicle unit1,unit1,0] Не думаю что получится застрелиться таким образом. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
[KND] Kronos 1 433 Жалоба Опубликовано 18 ноября, 2015 Не думаю что получится застрелиться таким образом. а причем тут это ? здесь вообще не ставится цель куда стрелять это команда просто позволяет сказать кому и как стрелять https://community.bistudio.com/wiki/Arma_3_Actions#UseWeapon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
crabe 10 340 Жалоба Опубликовано 18 ноября, 2015 Зачем стрелять из миномёта куда-то , если можно на нужном месте сразу спавнить взрывы какие угодно и при каких угодно условиях? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LazyLucky 30 Жалоба Опубликовано 18 ноября, 2015 (изменено) [member=Kronos], Вписал logic action ["useWeapon",wep,gunner wep,0]; Все равно не работает. Если что я про двойку говорю. [member=crabe],там не во взрывах дело, а в самом выстреле из миномета. Надо именно чтобы он выстрелил, остальное не так важно. UDP.Выстрел происходит, но только если за стрелком сидит какой либо юнит. UPD. sleep 5; "SMD_SLA_MP" createUnit [ getmarkerPos "111", group player, "gnr=this"]; gnr moveInGunner wep; sleep 20; logic action ["useWeapon",wep,gunner wep,0]; Эти 5 строчек вроде бы справляются со своей задачей. В связи с этим возникает следующий вопрос: как отреагирует вогологика на все это, посреди миссии? Изменено 18 ноября, 2015 пользователем LazyLucky Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
-[SF]- SigiL 614 Жалоба Опубликовано 19 ноября, 2015 Никак. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
crabe 10 340 Жалоба Опубликовано 19 ноября, 2015 (изменено) Главное бота из миномёта не выкидывать первые 600 секунд :) Надо именно чтобы он выстрелил, остальное не так важно. Думаю, всё это также легко симулируется и без бота и без миномёта. Наверное, надо боту мозги отключать или дружить со всеми, а то начнёт, понимаешь поливать с миномёта тех, кого не надо... Лучше бы рассказал зачем тебе это вообще нужно. Изменено 19 ноября, 2015 пользователем crabe Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
[A+] CaesarSalad 140 Жалоба Опубликовано 19 ноября, 2015 Не знаю где еще спросить, так что спрошу тут. Есть ли в сборке А3 этот автомобиль? [attachment=1105:arma2_vehicles_civilian_LadaLM.jpg] Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
crabe 10 340 Жалоба Опубликовано 19 ноября, 2015 [b][member=CaesarSalad][/b], есть Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
[DT] DeFeNDeR 1 075 Жалоба Опубликовано 19 ноября, 2015 (изменено) --- Изменено 19 ноября, 2015 пользователем Shockster Рецидив, временный бан на форуме 2 Jakeri и 1eon отреагировали на это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
[A+] CaesarSalad 140 Жалоба Опубликовано 19 ноября, 2015 Так есть или нет? Я про обычную А3, не ВТН. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
[DT] DeFeNDeR 1 075 Жалоба Опубликовано 19 ноября, 2015 Я про обычную А3 в сборке ВОГ А3 нет. 1 CaesarSalad отреагировал на это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DmitRich 147 Жалоба Опубликовано 19 ноября, 2015 (изменено) [member=CaesarSalad], http://cup-arma3.org/downloads/vehicle-pack/ может там есть? Изменено 19 ноября, 2015 пользователем DmitRich Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ram3esIV 2 217 Жалоба Опубликовано 30 ноября, 2015 Подскажите, должна ли такая конструкция работать? (_vehicle getVariable "AddActionCounter") = _vehicle addAction [ "start TSS", "TDA.sqf", [], 1, false, true, "teamSwitchPrev", "driver _target == player"]; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
StDIABLO 506 Жалоба Опубликовано 1 декабря, 2015 [b][member=RamZesIV][/b], работать должно, но имхо бессмысленно. т.к _actionId = object addAction [ "action title", "actionScript.sqf"] т.е в переменной перед равно где дальше будет addAction, будет хранится только ID. А у тебя там счетчик (судя по коду). И если ты хочешь додавить к счетчику, я бы сделал это в 2 хода. _actionId = object addAction [ "action title", "actionScript.sqf"]; object setVariable ["AddActionCounter" ,((object getVariable "AddActionCounter") +1),true]; //узнали и добавили и тут же опубликовали. object setVariable ["AddActionIdArray" ,((object getVariable "AddActionIdArray") +[_actionId]),true]; // возможно не прокатит но можно разбить на 2 строчки. 1 Ram3esIV отреагировал на это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ram3esIV 2 217 Жалоба Опубликовано 1 декабря, 2015 (изменено) Увеличение счетчика есть, я не стал его здесь писать. Спасибо, уже разобрался. Была какая-то ошибка, из-за которой эта конструкция не работала, а я предполагал, что должна. Массив не нужен, потому что эддэкшены будут удаляться без накопления очереди. Вообще все это намутил, чтобы включать и выключать скрипт через эддэкшен. Включил скрипт - эддэкшен удалился, счетчик апнулся и создался новый по новому id. Новый эддэкшен выключает скрипт, удаляет эддэкшен по апнутому id, снова апает счетчик и создает новый эддекшен, копию первого, но с другим id. И так циклическим - вкл/выкл с постоянным приращением счетчика id эддэкшенов. Как я понял, в арме иначе нельзя. Или есть нормальные варианты? Изменено 1 декабря, 2015 пользователем RamZesIV Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
StDIABLO 506 Жалоба Опубликовано 2 декабря, 2015 (изменено) [member=RamZesIV],чото ты мутишь :) (с моей колокольни) Включил скрипт - эддэкшен удалился, можно же удалить экшен прям из скрипта. К примеру тебе надо сделать экшон вкл/выкл чегото и чтобы они менялись. в ините _actionId = object addAction [ "enable action title", "enableActionScript.sqf"]; enableActionScript.sqf /* target (_this select 0): Object - the object which the action is assigned to caller (_this select 1): Object - the unit that activated the action ID (_this select 2): Number - ID of the activated action (same as ID returned by addAction) */ _object = _this select 0; // на чем висел экшон в нашем случае это object _caller = _this select 1; //кто вызвал - у нас в 99% случаях это будет player _actionId = _this select 2; // ID экшона, ОН ТОЧНО ТАКОЙЖЕ КАК И В init (код выше) //этот код не будет работать пока игрок не наждем на экшон а значит.. _object removeAction _actionId; //удаляем с техники (в твоем случае) экшон включения. _object addAction [ "disable action title", "disableActionScript.sqf"]; //экшон отключения //ниже полезная нагрузка скрипта enableActionScript disableActionScript.sqf /* target (_this select 0): Object - the object which the action is assigned to caller (_this select 1): Object - the unit that activated the action ID (_this select 2): Number - ID of the activated action (same as ID returned by addAction) */ _object = _this select 0; // на чем висел экшон в нашем случае это object _caller = _this select 1; //кто вызвал - у нас в 99% случаях это будет player _actionId = _this select 2; // ID экшона, ОН ТОЧНО ТАКОЙЖЕ КАК И В enableActionScript.sqf (код выше) //этот код не будет работать пока игрок не наждем на экшон а значит.. _object removeAction _actionId; //удаляем с техники (в твоем случае) экшон выключения. _object addAction [ "enable action title", "enableActionScript.sqf"]; //экшон включения //ниже полезная нагрузка скрипта disableActionScript.sqf ябы так сделал, топорно возможно, но пашет как часы. Заметь первая часть кода одинаковая - значит оформляешь как функцию... Изменено 2 декабря, 2015 пользователем StDIABLO 1 Ram3esIV отреагировал на это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
crabe 10 340 Жалоба Опубликовано 2 декабря, 2015 Рамзес, а зачем тебе постоянно удалять экшены? Чем не угодили старые? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
StDIABLO 506 Жалоба Опубликовано 2 декабря, 2015 (изменено) [member=crabe],очевидно чтобы небыло возможности включать 2 раза скрипт. Кстати реально можно же не удалять, а делать hide Изменено 2 декабря, 2015 пользователем StDIABLO Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
crabe 10 340 Жалоба Опубликовано 2 декабря, 2015 Хех, тогда зачем потом пересоздавать его с новым ID и вести подсчёты срабатываний? Тут что-то нечисто. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ram3esIV 2 217 Жалоба Опубликовано 2 декабря, 2015 (изменено) можно же не удалять, а делать hide Если речь о параметре hideOnUse самого эддэкшена, то он не пашет, эддэкшен никуда не девается. Не нашел причину. Поэтому он удаляется, а при создании нового, насколько я знаю, id автоматом увеличивается, поэтому у меня счетчик и приращивается. Только сейчас догнал, что приращивать нужно не 1, а 2, потому что одно приращивание на вкл, другое на выкл :army_yoba: А если заработает hideOnUse, то как потом, после выключения скрипта, снова сделать этот эддэкшен видимым? а зачем тебе постоянно удалять экшены? Чем не угодили старые? Включил ты термодымовую аппаратуру, а эддэкшен не пропал и жмешь, сколько влезет, каждый раз создавая новый скрипт генерации дыма. Ну и в качестве индикации. Пропал эддэкшен на вкл и вместо него эддэкшен на выкл - значит ТДА включена. можно же удалить экшен прям из скрипта. Так и сделано. При запуске скрипта он удаляет эддэкшен, а по завершении снова его создает. _actionId = _this select 2; // ID экшона, ОН ТОЧНО ТАКОЙЖЕ КАК И В init (код выше) С этим была какая-то засада, поэтому сделал счетчик. Попробую разобраться, может и правда фигней занимаюсь. Функции пока не освоил, не рискну - еще и из-за них на неделю зависну :D Изменено 2 декабря, 2015 пользователем RamZesIV Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
crabe 10 340 Жалоба Опубликовано 2 декабря, 2015 [b][member=RamZesIV][/b], Так как раз hideonUSE этим и занимается. Он убирает строчку при выборе, но не удаляет экшен и его опять можно юзать, покрутив колесом. По умолчанию, никаких телодвижений для этого не нужно, если ты этот экшен не удаляешь после первого прогона. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ram3esIV 2 217 Жалоба Опубликовано 2 декабря, 2015 (изменено) Если речь о параметре hideOnUse самого эддэкшена, то он не пашет, эддэкшен никуда не девается. Не нашел причину. А если заработает hideOnUse, то как потом, после выключения скрипта, снова сделать этот эддэкшен видимым? Неизвестно, сколько раз может быть использован этот скрипт на каком-нибудь "Медном тазу". У нас сейчас много миссий с большим количеством техники и захламлять память уже ненужными данными нежелательно или я ошибаюсь и заметной роли это не сыграет? А то ведь чуть лишнего здесь, чуть там, а в итоге потеря фпс. Не? Изменено 2 декабря, 2015 пользователем RamZesIV Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
crabe 10 340 Жалоба Опубликовано 2 декабря, 2015 [b][member=RamZesIV][/b], Разве один экшен не лучше постоянного спавна многих других? :) Все экшены в арме исполняют скрипты, которые зарыты в конфигах: сесть на пассажира, разложить треногу, зарядить снаряд. Большая часть, конечно, минимального размера и из пары команд. но всё равно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты