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

Лидеры


Популярный контент

Показан контент с высокой репутацией 18.11.2016 в Сообщения

  1. 6 баллов
    ТЕХНИКУ ЭКИПАЖУ! Описание: Скрипт предназначен для ограничения доступа лиц, не причисленных к экипажу, от управления специализированной техникой. Принцип работы очень прост - вешаем Event Handler (Обработчик событий) на нужную технику/класс техники и каждый раз, когда в указанную вами технику кто то будет садиться, класс-нейм этого человека будет сравниваться с указанным в массиве. Список использованных команд и выражений: worldSize nearEntities ! && forEach addEventHandler moveOut switch assignedVehicleRole Рассмотрим пример: В данном примере рассмотрим принцип реализации скрипта и для наземной техники и для воздушных судов (вертолетов). В init.sqf вставляем следующий код: Разберем его по частям для того, чтобы понять, что за что отвечает: _arrayOfVeh = [worldSize/2,worldSize/2] nearEntities ["Tank", worldSize/sqrt 2]; _arrayOfHeli = [worldSize/2,worldSize/2] nearEntities ["Helicopter", worldSize/sqrt 2]; typesOfVehCrew = ["wog_ksor_sergeant", "wog_ksor_officer_armored", "wog_ksor_driver_armored", "wog_ksor_crew_commander", "wog_ksor_crew_gunner", "wog_ksor_crew_driver", "wog_army_ucp_crew_commander", "wog_army_ucp_crew_gunner", "wog_army_ucp_crew_driver", "wog_army_ucp_squadleader", "wog_army_ucp_officer", "wog_army_ucp_Plsg"]; typesOfVehHeli = ["wog_ru_Helipilot"]; EjectSeat = {if !(typeOf (_this select 1) in typesOfVehCrew) then {moveOut (_this select 1)};}; 1. Зададим 4 массива: а) _arrayOfVeh && _arrayOfHeli - с помощью nearEntities из центра карты будем искать всю технику с родительскими классами "Tank" (это танки, БМПшки и пр.) и "Helicopter" (соответственно вертолеты). Центр карты задаем в виде: [worldSize/2,worldSize/2] где worldSize - это функция (или скорее переменная), которая возвращает длину/ширину карты. Ну и соответственно делим длину и ширину на 2, таким образом получая координаты x и y для центра; последний worldSize/2, который идет в массиве после классов "Tank" и "Helicopter", есть радиус описанной окружности вокруг квадрата: б) Все, с наполнением массивов техникой мы покончили. Теперь зададим вручную два новых массива typesOfVehCrew и typesOfVehHeli. Если честно, сейчас я и не припомню, почему они не приватные. Видимо на момент написания возникали проблемы с их чтением в EH (Event Handler - будет объяснено ниже). В первый массив мы записываем класс-неймы (не путать с названием бойца) бойцов, которые могут управлять боевой наземной техникой с классом "Tank". В данном примере, это офицеры (КО) и непосредственно экипаж. Во второй массив вносим пилотов. 2. Зададим функцию EjectSeat, которая понадобится нам позже. Для тех, кто не совсем понимает, в чем разница между функцией и переменной, попытаюсь на пальцах объяснить разницу не претендуя на преподавательское искусство, ибо сам в некоторых моментах не силен -_- (в конце концов, можете сами почитать =)): Переменная, это такая коробочка на которой написано название. Она хранит в себе какой-то объект (число, массив, символ). Функция - фрагмент программного кода (подпрограмма), к которому можно обратиться из другого места программы. a = 1; - переменная _b = worldSize; - приватная переменная c = [0,1,2,3]; - переменная doCount = { count с; }; - функция. В ней содержит код, который посчитает кол-во элементов в массиве c Вторая часть: Здесь мы создаем 3 Event Handler'a Если мы обратимся к английскому словарю и дословно переведем Event - событие и Handler - обработчик, то получим Обработчик событий. Принцип его действия в арме довольно таки прост. Товарищи из BIS заранее подготовили для нас список действий, на которые можно повесить Event Hadler, дабы выполнять по завершению указанного действия свой код. Вам нужно зарядить снаряд в РПГ после выстрела? Воспользуйтесь EH на действие Fired. Хотите дать под пятую точку тому, кто не должен сидеть на месте стрелка танка? EH на GetIn в вашем распоряжении! Обращаю ваше внимание на то, что разные EH отрабатывают на разных объектах. Так например EH на действии "GetIn" должен висеть только на технике (таково его изначальное устройство и функционал). А вот если вы будете использовать "GetInMan" , то EH отрабатывать на человеке, а не на технике. Запутались? Это легко! EH "GetIn" в нашем примере работает на массив из техники -> _arrayOfHeli и _arrayOfVeh. Когда любой боец будет залезать в данную технику, EH будет передавать определенный массив данных. Для нас это будет выглядеть так: [класс техники, в которую залез боец, место которое он занял в машине (стрелок, водитель, пассажир), имя бойца, позиция на турели (у каждой техники это разный массив)]. EH "GetInMan" будет работать только на указанного/-ых вами игроков. Вам нужно сделать так, чтобы VIP не мог залезть в технику и уехать? Самое время повесить на него EH! Теперь, самое важное. Как я уже написал выше, когда вы создаете в своей миссии какой-либо EH, то после того, как будет совершено действие, на которое EH повешен, этот самый EH передаст игроку массив данных, которым вы сможете оперировать в своих целях. Разберемся на самом первом EH из примера: { _x addEventHandler ["GetIn", { if (((_this select 1) == "driver") && !((typeOf (_this select 2)) in typesOfVehCrew)) then { moveOut (_this select 2); }; }]; } forEach _arrayOfVeh; Синтаксис для создания EH: объект addEventHandler [Тип, {команда/код на выполнения после действия определенного типа}] _x это зарезервированная переменная для многих команд, в том числе и для команды forEach Таким образом, команда forEach будет перебирать каждый/-е объект/-ы из массива, который будет указан после него. Для того, чтобы нам не подставлять каждый раз класс-нейм техники, мы просто берем каждый класс-нейм автоматически с помощью forEach и подставляем его на место _x. Список таких переменных как _x и соответствующие им команды вы можете глянуть в блоге KK. Итак, создаем (addEventHandler) EH на действие "GetIn" (Войти в технику) и прикрепляем этот EH на все элементы массива _arrayOfVeh, каждый из которых подставится сам вместо _x. Дело за малым. Теперь, когда кто то залез в технику, мы должны понять, есть ли у него разрешение на то, чтобы сесть в эту технику и, если нет, то выгоняем. Еще раз напоминаю вам вид массива, который мы получим конкретно на EH "GetIn": [класс техники в которую залез боец, место которое он занял в машине (стрелок, водитель, пассажир), имя бойца, позиция на турели (у каждой техники это разный массив)] или на англ. [vehicle (object), position, unit, turret] Записываем простенькое условие: if (((_this select 1) == "driver") && !((typeOf (_this select 2)) in typesOfVehCrew)) then { moveOut (_this select 2); }; Если (игрок залез на водителя && игрок не находится в списке typesOfVehCrew) тогда { выкинуть этого игрока из машины}; где && - это символьная альтернатива союзу И; символ "!" является отрицанием, т.е. заменяет собою отрицание "не", _this select цифра - считываем нужный элемент массива. Нумерация элементов во всех массивах начинается с 0. В нашем массиве 4 элемента - [0,1,2,3]. Ну и далее по аналогии делаем тоже самое для вертолетов и для отслеживания на наземной технике момента, чтобы игрок не мог сесть еще и на стрелка. Заключительная часть: Нам осталось разобрать последнюю часть кода, которая отвечает за создание EH на действие "SeatSwitched" (пересесть): { _x addEventHandler ["SeatSwitched", { _assignedVehicleRoleArray = assignedVehicleRole (_this select 1); switch (_assignedVehicleRoleArray select 0) do { case "driver": { //driver call EjectSeat; }; case "Turret": { switch (str (_assignedVehicleRoleArray select 1)) do { case "[0]": { //gunner call EjectSeat; }; default {}; }; }; default {}; //cargo }; }]; } forEach _arrayOfVeh; Создание EH происходит по стандарту. Массив, который выводит EH: [техника на которую закреплен EH, место на которое пересел игрок, некорректно отрабатывающийся параметр] или на англ. [vehicle, unit1, unit2]; [0, 1, 2]; Создадим приватную переменную, в которую по действию "пересесть" будет записываться массив с названием места и номером туррели, на которое пересел игрок (т.к. в вертолете невозможно пересесть со стрелка на пилота и обратно, то данный EH подключаем только на наземную технику). Затем, используем switch. Эта команда будет искать в "case'-ах совпадения и если таковые будут найдены, то будет выполнен код. В нашем случае это работает так: //Переносы строк в представленном описании сделаны для вашего удобства при чтении switch (условие: выбрать 0й элемент массива _assignedVehicleRoleArray, в котором указано название места, на которое пересел игрок) делай { если условие совпадает с "driver" то тогда вызвать функцию EjectSeat, которая проверит, указан ли класс-нейм бойца, за которого играет игрок в качестве экипажа или нет и если нет, то выкинет его из техники }; Тот же самый ход был проделан и со стрелком, но там брали 1й элемент массива, т.к. с 0м при пересадке на стрелка были какие-то проблемы. На этом все. Хотелось охватить и представить как можно больше информации и донести ее доступно, дабы ею могли действительно воспользоваться. Надеюсь, получилось достаточно информативно и в то же время не сильно скомкано. Особую благодарность хотелось бы вынести г-у @StDIABLO, который помог во всем этом деле разобраться. P.S. Не уверен в корректной работе некоторых EH, в частности "SeatSwitched", ибо их работоспособность зависит от BIS'ов. Для более прошареных игроков - используйте альтернативные функции CBA
  2. 3 балла
    Toxik

    Enduring Freedom WOG 18.11.16 Оборона Синии

    Задача: Удержать оборону аэропорта в течении 2 часов. Ввод: Сторона красных: (Атака) 1х Водник 7х БМП 2 3х УАЗ 1х КАМАЗ (repair) 2x Су-25 Х-29 Сторона синих: (Оборона) 2x GMV M2 5x LAV 25A1 1x ATV 1х M923A2(repair) 2x A-10A (CBU-87) 1x M998 HMMWV 1x HMMWV MK19 Условия: Выигрыш Красных - Синих меньше 3 в синей зоне. Выигрыш Синих - Красных меньше 10. Нельзя нарушать границы (кроме самолётов). Нельзя заправлять самолёты из канистр. 2 часа на миссию. ПЛАН: План был таков -на Запад мы послали 1 отряд CCO для закрепления и обороны своих позиций что бы враг не добрался до триггера через Юго-Запад. -На Север мы послали 2 отделения это были Fox и RB , Fox просматривали как северную так и восточную часть,RB просматривали западную часть со стороны моста и противоположную сторону. -На Северо-Восток мы отправили MOR которые укрепились в городе и KND.TT что бы они укрепились в городе и обороняли его , их саперное отделение взорвало 3 моста которые отрезали путь технике через дорогу что сыграло большую роль. -На Восток мы отправили 1 наблюдателя из MOR что бы они наблюдали эту часть что бы там не начала переплывать техника. -В Зоне у нас осталось отделение RSG которое боролось до конца с противником. - У самолетов была свобода действий которая заключалась в обнаружении пехоты/техники и уничтожения вражеской авиации. Большую роль мы отдали Спецназу RSG( 1-2 А) и BE ( 1-1 M) , которые должны были обнаружить первыми технику противника. -BE повезло меньше так как они ан своей позиции так и не дождавшись противника должны были возвращаться в сторону триггера и помогать остальным. -Отметим Спецназ RSG который заметил множество техники и пехоты противника которое двигалось в сторону отрядов FOX | RB и MOR | KND.TT. После того как обнаружили что в принципе вся техника и пехота противника уже подошла и собирается переплывать Штаб издал указ всем войскам стягиваться в зону. Силы противника пошли большой атакой но потеряли много человек. RB и FOX приняли большой удар от противника но он выстояли . В заключении хотелось бы сказать: Большое Спасибо отряду RSG,а точнее его Спецподразделению которое обнаружило большое количевство,Отряду FOX ,KND.TT,MOR которые выдержали атаку противника со всех сторон. Еще большое спасибо хотели высказать отряду сапёров которые очень качественно заминировали Зону минами,которые на время но задержали противника. `` Наша стратегия сработала правда не так как мы думали. Проиграла наша сторона не из-за того что было множество потерь,а из-за того что было мало людей в зоне. Но мы довольны тем как сыграли все отряды и все равно на то что мы проиграли,не надо печалится.
  3. 2 балла
    Makaveli

    Обсуждение прошедших игр

  4. 2 балла
    Fenya

    Обсуждение прошедших игр

    [b][member=Azunyan][/b], да уйди уже 
  5. 2 балла
    Fenya

    Лопатино

    Экипаж БТР выкидывало прям на ходу. (Уж не знаю, это баг армы или фича миссии) Почини, пожалуйста.
  6. 2 балла
    Fenya

    Обсуждение прошедших игр

    Captain Cat, они не отказываются, они получают дозу у других диллеров.
  7. 2 балла
    Fenya

    Обсуждение прошедших игр

    [member=crabe], ну как бы преимуществ не дает, экипаж же убило!
  8. 2 балла
    Fenya

    Обещанного три года ждут.

    [member=Benya],
  9. 1 балл
    superaloe

    Enduring Freedom

    Enduring Freedom Просмотреть файл Автор supera1oe Добавлен 12/26/15 Категория WOG - ARMA 2 Количество участников 160 Год 2007 Остров Celle 2 Тип WOG Радио оснащение Полное В атаке ВС РФ В обороне USMC,U.S. Ranger Режим Захват/оборона
  10. 1 балл
    Arcued

    Enduring Freedom WOG 18.11.16 Оборона Синии

    Пообещал закотлетить, потом пообещал закотлетить быстро. Квест комплит. Хотя "некоторые" отделения и пытались всё испортить.
  11. 1 балл
    Agentos

    Обсуждение прошедших игр

    Пока ожидали вертушки в ангаре, народ покупал билеты на представление :D
  12. 1 балл
    wowrostov

    Нарушение п.3.2 игроком [13th] WoWrostov

    Движение было строго по меткам, но достигнув перевала был замечен контакт в данных населеных пунктах.было принято решение обеспечить прикрытие с фланга. Выставились и начали подавление вражеских огневых точек.(Приняли удар на себя) проставили метки скорректировали удар авиации.Тем самым обеспечили безопасный отход колонны и пехоты ,которая в свою очередь безопасно отошла на запад(на наших глазах) а так же техника..Далее заметили вражеские части с восточной стороны холма.Приняли бой сковали огнем противника. Как мы заметим по скриншотам, (а так же по дибрифингу) те отделения которые высадились на точках не встретили какого либо серьезного сопротивления.Так как весь удар приняло наше отделение.Полностью зачистили одно поселение после чего принялись к зачистке второго. Считаю что наши действия не как не могли повлиять на ход сражения,Более того они максимально сопутствовали выполнению плана. Все танки благополучно отошли на запад и до конца миссии так и не смогли добраться.Как и пехота которая находилась на западе. P.S Если КС считает что мои действия привели к поражению то ИЗВИНЯЮСЬ. На брифинге я имел мужество ,пока все в недоумении молчали и не могли сделать замечание КСу стороны сообщив ему, что нам необходимо удерживать три зоны на востоке ,а мы все силы стягиваем на запад ,так еще и атакуем будучи в обороне(ЗАВЕДОМО ПРОВАЛ). Это замечание КС принял в штыки и начал не обоснованно грубить.Но я не придал этому особого значения. Для принятия решения прошу членов ГУП детально проанализировать наши действия по дебрифингу,а потом принять решение обосновав его. Так как это рапорт считаю превышением должностных полномочий.(Личной неприязнью) В любом случае если это необходимо готов понести наказание, дальнейшее решение и анализ оставляю на плечи ГУП.
  13. 1 балл
    Rama

    Видео прошедших игр WOG Vietnam

  14. 1 балл
    krech

    2.3 Намеренный тимкилл

    Вину по части тимкилла признаю, виноват, извиняюсь. По части оскорбления - ЛИЧНО Я не оскорблял, мое видео это доказывает. Лишь объясню почему все это произошло. После выбивания вражеского ландака, мы с отрядником Феникосом побежали его чинить, дабы захватить. На видео видно, что человек на стрелке, которым и был господин Татарин, стреляет куда-то в землю, в небо, в Аллаха, видимо чтобы боезапас израсходовать, дабы не использовать технику вновь. Стоит заметить, что пулемет также очень сильно глушит, а Феникс был КО, что мешало координации. В общем, нам такой план пришелся не по душе, ибо техника была вполне рабочая - мы хотели ее использовать, и в процессе пояснения причин, по которым такое развитие событий нас не устраивало, Феникс в ходе чрезмерной эмоциональной нагрузки назвал стрелка ландака, коим являлся господин Татарин, "придурком", кажется. Я в беседе задействован не был, ибо из видео видно, как я бежал к машине. Я успел к кульминации действа, когда у господина Татарина была, видимо, задета гордость и он отчаянно сражался за свое место на стрелке. После этого последовал предупредительный выстрел в ногу от КО Феникса. Вылечив и обеспечив надежное понимание ситуации господину Татарину, мы думали уж, что недопонимание рассеяно и мы готовы отправляться в путь, но нет. Опять же господин Татарин не пожелал бросать полюбившееся место( по ходу опять сделав несколько очередей, как видно из видео), видимо дабы показать нам, что он окружен, но не сломлен! По мне, так имела место намеренная провокация. Ситуация накалялась, и я не придумал ничего лучше, чем разрядить ее, посредством контрольного выстрела в голову. Еще раз приношу извинения, зла не желал, обстоятельства были сильнее меня.
  15. 1 балл
    Hemfast

    Ванильные миссии на WOG A3.

    я бы вообще решал вопросы стенкой на стенку
  16. 1 балл
    Fenya

    Спартариат\Флудилка

    [b][member=JackReign][/b], будешь вести отсчет до его возвращения, как вел до его отправки?  :huh:
  17. 1 балл
    Fenya

    Обсуждение прошедших игр

    [b][member=ifreR][/b], учитывай что это арма2.
  18. 1 балл
    Fenya

    Обсуждение прошедших игр

    [member=Cookie], емнип, давно уже говорили что это граната.
  19. 1 балл
    Fenya

    Обсуждение прошедших игр

    [b][member=Cookie][/b], просто пбошки удалены На видосе видно что ты промахивался, не всегда, но все же.
  20. 1 балл
    Fenya

    Обсуждение прошедших игр

    [member=Russ Ivan],[member=Buddy_guy],  все джавы почему-то перелетали цель и улетали дальше. Я со стороны наблюдал за всеми пусками. Грузовик взорвался где-то через минуту после того, как там ракета пролетела(почему?).
  21. 1 балл
    Fenya

    Обещанного три года ждут.

    [member=dmb09], Кстати, зачем 2 одинаковые ссылки? Одна на WOGARMA2, другая в полезных.
  22. 1 балл
    Dgors

    1 Год Отряду RSG "SPARTA"

    1 год отряду RSG "SPARTA" Друзья, сегодня нам исполняется 1 год.  Ровно год назад собрались 3 человека которые решили основать отряд, надеясь пробиться в люди. Помнится мне, как мы подошли к Шокстеру и заявили о создании игровой группы, а уже спустя 2 часа одели на себя тэги и приписки. Чуть позже основной состав RSG"SPARTA" объединился с другой игровой группой SD - Siberian Division, таким образом нас стало уже 12 человек и как полноценная игровая группа в будущих перспективах стать отрядом, мы начали свою игру на проекте. Первое время как и любой игровой группе было непросто, в первую очередь из-за нового состава незнакомых людей. Но уже к началу сентября 2015 года мы достигли своей цели - мы получили статус отряда на проекте. За 1 год в жизни отряда произошло очень много событий и осталось немало воспоминаний, были и плохие моменты и хорошие. Как основатель и действующий командир отряда хочу поблагодарить всех, кто верил и продолжает верить в наш отряд, помогал нам или хотя бы не подставлял палки в колёса, а так же выражаю огромную благодарность проекту WOG и всем его участникам за многие и многие, а главное хорошие воспоминания и замечательное, интересное и достойное проведения досуга на проекте. Мы, спартанцы, очень надеемся что WOG а так же Арма 2 будут жить вечно! Ура!!!
  23. -1 балл
    TaTaRinBsB

    2.3 Намеренный тимкилл

    mWOG малые игры 08.11 2.3 Намеренное убийство игрока/игроков своей стороны (на видео четко видно) 5.1. "Спорно", назвал меня придурком на видео этого нет 5thPK_krech в отношении [IPT]TaTaRinBsB Доказательства (скриншоты, видео- или аудиозаписи).
  24. -1 балл
    Vincen

    Нарушение п.3.2 игроком [13th] WoWrostov

    Прошу так же принять во внимание, что командир отделения А1-3 [13th] WoWrostov по-мимо самовольных действий, так же единственный со старта и до момента смерти не отвечал на запросы штаба, что не позволило скоординировать А1-3 с двумя отрядами разведки. Так же прошу принять во внимание и тот факт, что к тому времени, как отделение А1-3 якобы обеспечило безопасный отход колонны и пехоты, все ключевые отделения уже стояли на своих позициях, обеспечивая прикрытие танкам и отряду поддержки с джавелинами.
  25. -1 балл
    c0ma

    Тег отряда для игрока

    Прошу снять тег FMF
×

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

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