Перейти к содержанию

StDIABLO

Пользователи
  • Публикаций

    580
  • Зарегистрирован

  • Посещение

  • Победитель дней

    7

Сообщения, опубликованные StDIABLO


  1. Миссия обновлена до версии 1e

    1) Добавлена механика предварительного завершения миссии в пользу CSAT
    а) Добавлен ученый способный быстро активировать устройство (через терминал)
    б) Добавлен скрипты для взаимодействия с терминалом управления устройством
    в) Добавлены объекты радаров каждой стороны для поиска терминала управления на карте (и скрипты для остановки поиска)

    2) Замена Taru грузового на Taru со скамейками (отдельный модуль со скамейками убрал)
    3) Чистка дронов
    4) Полная очистка скриптов от лишних символов и потенциально не используемого кода.
    а) перенос в папку scripts
    5) Переписывание брифинга в соответствии с задачами миссии


  2. Миссия обновлена до версии 1d

    создание маркеров для объектов теперь локальное
    (сам скрипт переехал в брифинг дабы новый файл не городить из-за одной строчки кода)

    убраны случайно поставленные статические объекты Apex

  3. Миссия обновлена до версии 1c

    Мелкие правки текста (Спецназ теперь Спн)

    Доработка скрипта dlc_unlocker.sqf

    Было
    if (!(isNull(driver _vehicle)) && ...... \\экшен появляется когда никого нет на водителе (если ктото уже сидел на водителе игрок бы не смог зайти в машину)
    Стало
    if ((count (crew _vehicle) == [(typeOf _vehicle),true] call BIS_fnc_crewCount) && ...... \\экшен появляется до тех пор пока есть свободные места в машине

    Было
    {player moveInDriver (_this select 0)} \\сажало только водителя
    Стало
    {player moveInAny (_this select 0)} \\сажает на любое следующее свободное место (в т.ч. стрелка и командира)


  4. Открыть полигон


    Название: Silence
    Версия: 1s
    Остров: Chernarus
    Число слотов: 190
    Время начала: 04:45
    Время на миссию: 140 минут
    Стороны: NATO (Атака) vs CSAT (Оборона)

    Вводная

    Атака:

    Нашим разведспутником была замечена подозрительная активность CSAT в Чернорусском регионе, есть серьезные подозрения что под видом вывоза медицинского оборудования и раненых, из региона хотят вывести новое сверхсекретное оружие CSAT. Командование NATO решило организовать упреждающий удар по войскам CSAT, тем самым сорвав эвакуацию.
    Для реализации плана в регион был послана девятая авианосная ударная группа стран NATO во главе с USS Freedom


    Оборона:

    Поступила информация о том, что вероятный противник смог узнать расположение нашего секретного оружия. Необходимо срочно подготовить его к эвакуации.
    Расчетное время прибытия транспортного вертолета - два часа двадцать минут. Необходимо удержать аэродром любой ценой.


    Задачи

    Атака:
    1) Захватить минимум ТРИ из следующих зон:
    APLHA
    BRAVO
    CHARLIE
    DELTA
    2) Пресечь все возможные попытки запуска устройства.

    Оборона:
    Удержать минимум ДВЕ из следующих зон:
    1:Казармы
    2:Штаб
    3:Склад МТО
    4:Объект 16
    ИЛИ запустить устройство после 6:45 AM (или после 5:45 если была работа артилерии по аэродрому).

    Техника

    Атака:
    • AMV-7 Marshall - 4
    • CH-67 Huron - 1
    • CH-67 Huron (без оружия) - 1
    • Hunter - 2
    • Hunter (с тяж.пулеметом) - 2
    • M4 Scorcher - 1
    • MQ-12 Falcon - 1
    • Praetorian 1C - 1
    • Prowler (легкий) - 2
    • Prowler (с оружием) - 1
    • V-44 X Blackfish (автотранспорт) - 1
    • БПЛА Sentinel - 1
    • Внедорожник (ремонт) - 1
    • Грузовик-топливозаправщик - 1
    Оборона:
    • "Тайран" AR-2 - 1
    • BTR-K Kamysh - 2
    • Ifrit - 5
    • Ifrit (с тяж.пулеметом) - 2
    • Mi-290 Taru (сиденья) - 1
    • Qilin (без оружия) - 1
    • Qilin (с оружием) - 1
    • T-100 Varsuk - 2
    • Tempest (с боезапасом) - 1
    • ZSU-39 Tigris - 1
    • БПА "Саиф" RCWS - 1
    • Миномет Mk6 - 1
    • Ремонтный Tempest - 1
    • Топливозаправщик Tempest - 1
    • Транспортер Tempest (укрытый) - 1

  5. Не работает перезарядка техники от контейнеров

    Box_IND_AmmoVeh_F
    Box_East_AmmoVeh_F
    Box_NATO_AmmoVeh_F
    B_Slingload_01_Ammo_F
    Land_Pod_Heli_Transport_04_ammo_F

    В ванильной ace3 все нормально, а в сборке не появляется Экшн "Take ammo"


  6. Винс, у дартеров радиус "взрыва" метров 10.

    Как проверить:

    Ставим себя, ставим рядом дартер, стреляем по нему..... АЛЛАХ АКБАР

    Танки не взрывает, но пехоте ГГ.

    В ваниле нет проблемы.

    PS: если дартеры на аккумах от Samsung Galaxy Note 7 - проблемы нет.


  7. @Lex, @Sandy Спасибо за идеи, только код надо тогда будет оформить в  функцию. Типа

    [[arrayVehs],[arrayCrewClass],[arrayOfLockedPlaces]] call WOG_lockVehsCrew;

    ну для пользователей будет явно проще. Вопрос в том что: Если я захочу к примеру 1 закрыть технику, и например запретить разбор стационарного вооружения, функции в нашем виде будут конфликтовать.

    Получается нужен еще какой то обработчик. 

     

     


  8. я думал над этим и разбился на уровне - а если он не из cargo перелез а с командира,а если то место будет уже занято (невероятная ситуация: человек перелезает и в это же время на его место садится другой игрок), не закинет ли его на броню к примеру, давал бы SeatSwitched предыдущую позицию - отсылали бы назад....

    lockDriver/lockTurret - клева но у них эффект глобальный, а только для того чтобы запретить перелазить во время движения - жирно мне кажется, сюда же проблему в том  что если ездят только водитель и командир они должны беспрепятственно перелазить (если это возможно).

    По мне moveOut  это самый гуманный способ.

    Можно чекать менюшку игрока в машине и смотреть что он нажал (https://community.bistudio.com/wiki/Arma_3:_Event_Handlers/inGameUISetEventHandler#Action) сохранять его положение в стек и в EH Seat switch его извлекать и тогда у нас будет и новое место и старое (если надо игрока вернуть).

    Но емае, мы тут ради того чтобы человек не сел в ненужный слот СТОЛЬКО гомнокода наплодим, что овчинка выделки не стоит. Поэтому все гуманно, сел не туда - выход, сел не туда во время движения - в могилу.


  9. Точнее, SeatSwitched не отдает место откуда человек пересел ( EH returns both units switching seats) units, а не позиции с которых он пересел). Можно бы было его назад засовывать при попытке). Конечно можно чекать первое свободное место в cargo  и аутиста сажать туда, но это ж надо чекать...... а человек сам пересел.... не почитал что стоит скрипт- в могилу....


  10. 1. Пробовал в мультиплеере?

    2. Про****ан кусок кода который отвечает за посадку за стрелка (в оригинальном коде он есть)

     {
        _x addEventHandler ["GetIn", {
          if ((((_this select 1) + str(_this select 3)) == "gunner[0]") && !((typeOf (_this select 2)) in typesOfVehCrew)) then {
            moveOut (_this select 2);
          }
        }];
      } forEach _arrayOfVeh;

    3. выкидывает всех кто не находится в списке разрешенных. это нормально

    4. Пробовал в мультиплеере?


  11. 4 часа назад, DenusKO сказал:

    Может кто помочь или сказать что не так?

     

    0. или дай лог rpt или запусти игру с английским языком, т.к. на скрине непонятно в чем ошибка :)

    (на русcком пишет только в rpt)

    1. _arrayOfTank = ["WOG_LAV25_d"]; если это класс - тогда неправильно

    в твоем коде 

    _arrayOfTank = ["WOG_LAV25_d"]; WOG_LAV25_d - так называется одна единица техники (причем надо кавычки убрать) на которую и будет распространяться скрипт

    хочешь на 2- обзываешь 2 единицы и вписываешь в массив например:

    _arrayOfTank = [WOG_LAV25_d,a1,a2,a3]; //БЕЗ КАВЫЧЕК

    в оригинальном коде - технически это МАССИВ объектов,а не классов


  12. 3 часа назад, Vincen сказал:

    Тот же самый ход был проделан и со стрелком, но там брали 1й элемент массива, т.к. с 0м при пересадке на стрелка были какие-то проблемы. 

    сейчас объясню

    assignedVehicleRole может возвратить только это

    1. [] - Если не в технике (один из вариантов чека человека в технике)
    2. ["Driver"] - Сидит как водитель (слот водителя у нас в технике всегда один)
    3. ["Cargo"] (or ["Cargo", [turret path]] since Arma 3 1.31.127272) - Пассажир внутри (бтр к примеру) ИЛИ снаружи (на броне/в кузове) и если он может стрелять то можно получить его место (см turret path)
    4. ["Turret", [turret path]] - Внутренние слоты (стрелок/командир/негр заряжающий и т.д. все у кого есть возможность  крутить пушками техники) 

    т.к. водитель всегда один достаточно чекать 0 элемент массива (да он и единственный будет)

    но  если мы будем считывать turret мы всего лишь будем знать что он сидит на одной из турелей, а на какой - нам скажет первый элемент массива 0 - на стрелке 1 на командоре (к примеру, эти цифры всегда надо проверять т.к неизвестно как пожелала левая пятка аддонмейкера)

    вот и все

    ps

    Скрытый текст

     

    описаная окружность

    
    _arrayOfVeh = [worldSize/2,worldSize/2] nearEntities ["Tank", worldSize/sqrt 2]; 
    
    _arrayOfHeli = [worldSize/2,worldSize/2] nearEntities ["Helicopter", worldSize/sqrt 2];

    вписаная окружность

     

    
    _arrayOfVeh = [worldSize/2,worldSize/2] nearEntities ["Tank", worldSize/2];
    
    _arrayOfHeli = [worldSize/2,worldSize/2] nearEntities ["Helicopter", worldSize/2];
    

     

     

     

     

     


  13. Хочет ли администрация добавить немного боли в авиацию :) ?

    http://www.armaholic.com/page.php?id=24582


  14. В 19.09.2016 в 6:15 PM, supera1oe сказал:

    чем вырyбается CCRP?

     

    Только начал осваивать а-10с могу ошибаться, но на рус кнопка мейн моде свитч вроде при активном HUD as SOI вроде так (но там надо навастривать правильный режим сброса в DSMS)

     


  15. @Buddy_guy, я написал код для примера, не стоит воспринимать его в серьез :) (хоть он и может работать, но вылизывать его надо обязательно)

    да ты не можешь написать в триггере _array1, но можешь написать array1 (правильнее вообще не писать array1, а напрямую обращаться к thislist). Я бы в твоем случае запилил бы функцию которая возвращает true или false в условии триггера. Например:

    //поле активации тригеера 
    {(thislist call checkUnits)>0}
    
    //init.sqf
    checkUnits ={
    _array2 = [namedobj1,namedobj2];
    _anwser = count(_this) - count(_this-_array2);
    };

    Код надо проверить (без армейки я сча), но суть его такая.

     


  16. @Buddy_guy, лениво делать все красиво, написал в лоб :)

    _array1 = thislist // [unnamedobj1,unnamedobj2,namedobj1]
    _array2 = [namedobj1,namedobj2] //all named objects
    _array3 = _array1 - _array2 //[unnamedobj1,unnamedobj2]
    return = count(_array1) - count(_array3) // count of named objects in trigger area

     

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.