arma 3 как открыть меню действий в
Action Menu на клавиши
Заметил, что некоторые функции в игре можно выполнить только с помощью Action Menu, например открыть двери или использовать аптечку. В настройках управления клавиши назначить на эти действия не смог.
Подскажите, есть возможность назначить клавиши на действия из Action Menu? Как это сделать?
Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание
Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание
BIS огорчают, как можно было не добавить возможность биндить клваиши для открывания дверей, посадки в транспорт.
например открыть двери
А нажатие на колесико мыши чем не устраивает?
например открыть двери
А нажатие на колесико мыши чем не устраивает?
ruPal, Если вы стоите перед дверью, то нажатие на среднюю кнопку либо не сделает ничего, либо откроет дверь.
Или произведет перезарядку, если магазин пуст; вылечит тебя, если ты ранен и есть медпакет, или приведет к мисклику, который может выполнить любое из действий из Action Menu.
Если даже была бы эта возможность у вас бы не хватило кнопок на клавиатуре, чтобы это сделать.
Хватило бы и еще осталось. 101 клавиша по умолчанию + возможность назначения сочетаний клавиш.
Это искусственное ограничение, которое изрядно портит игру.
Или произведет перезарядку, если магазин пуст; вылечит тебя, если ты ранен и есть медпакет, или приведет к мисклику, который может выполнить любое из действий из Action Menu.
Есть только проблема, что иконка по открытию двери или подниманию на лестницу выскакивает при близком расстоянии, а при прокрутке в Action menu она доступна при большем расстоянии. Но я думаю эта проблема известна и уже описана на баг-трекере.
Хватило бы и еще осталось. 101 клавиша по умолчанию + возможность назначения сочетаний клавиш.
Это искусственное ограничение, которое изрядно портит игру.
из 101 большинство заняты, а до остальных ваша рука дотянется за большее время, чем за то, как вы нажмёте на колесико мыши или выберете пункт из action menu
PR9INICHEK, я доказывать Вам ничего не собираюсь. Я задал вопрос и хотел получить на него ответ, а не фразы в виде: «Сам дурак».
Вам удобно, так пользуйтесь на здоровье. Мне не удобно, вот я тему поднял.
Добавление в игру возможности назначать клавиши на перечисленные действия никак не ущемят Вашу возможность все делать по клику на среднюю кнопку мышки, успокойтесь.
PR9INICHEK, я доказывать Вам ничего не собираюсь. Я задал вопрос и хотел получить на него ответ, а не фразы в виде: «Сам дурак».
Вам удобно, так пользуйтесь на здоровье. Мне не удобно, вот я тему поднял.
Добавление в игру возможности назначать клавиши на перечисленные действия никак не ущемят Вашу возможность все делать по клику на среднюю кнопку мышки, успокойтесь.
Я вам и ответил. СКМ это и есть клавиша у Action menu.
Лучше СКМ вы всё равно ничего не придумаете.
О добавлениях в игру новых возможностей общаются на баг-трекере в постах связанных с Feature Request.
Если не знаете английского, то сюда
СКМ это и есть клавиша у Action menu.
Кэп, я это не спрашивал.
На данный момент мне нужно:
Теперь доступно объясните мне как выполнять эти действия не заходя в Action Menu. При этом мне нужно, когда я, например, возле двери и горит символ «открыть/закрыть дверь» по нажатию кнопки 2 выполнилось именно лечение, а дверь так и осталась нетронутой.
Лучше СКМ вы всё равно ничего не придумаете.
Уже придумал, см. выше.
Попрошу дальше не разводить флуд в теме, вопрос в первом сообщении задан точный.
Кэп, я это не спрашивал. На данный момент мне нужно:
Теперь доступно объясните мне как выполнять эти действия не заходя в Action Menu. При этом мне нужно, когда я, например, возле двери и горит символ «открыть/закрыть дверь» по нажатию кнопки 2 выполнилось именно лечение, а дверь так и осталась нетронутой.
Просите это у БИСов а так пользуйтесь СКМ для большинства ситуации в силу дизайнерских решений она работает правильно, либо качайте моды.
BIS огорчают, как можно было не добавить возможность биндить клваиши для открывания дверей, посадки в транспорт.
Забиндить то можете, но если это ваш экшен, скажем так)
Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание
Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание
defined in bin.pbo (e.g. «moveForward»). Adding available shortcut will bind corresponding keyboard key to this action. Shortcut availability can be tested with
Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание
command. Default value: «»
SteelRat, Так ведь это не будет работать в миссиях, где такое не прописано.
SteelRat, Так ведь это не будет работать в миссиях, где такое не прописано.
А вообще, всегда существуют, на первый взгляд дурацкие, но на деле быстрые реализации.
Вы собрались открыть дверь? Но словили пулю в ляжку, и теперь перед вами маячит медицинский экшен, не беда! Крутанули колесо мыши и клацнули по правой кнопке мыши, и перед вами снова вожделенный экшен, дёшево и сердито, менее секунды действия!
Arma 3 как открыть меню действий в
Вот нашел как добавить в менюшку действие лечится
200?’200px’:»+(this.scrollHeight+5)+’px’);»> Для этого мы используем скрипт. В редакторе мы создаем миссию, сохраняем ее и направляемся в:
C:\Documents and Settings\ Ваше имя\Мои документы\ArmA Other Profiles\Ваше имя в АрмА\missions
Здесь Вы находите свою сохраненную миссию и создаете в блокноте, текстовый файл
PlrLeshenie.sqs
в который копируете следующее:
oi = _this select 0
kvo=1
#povtor
?kvo>3:exit
@(Getdammage oi == 0)
@(Getdammage oi > 0.3)
?not(alive oi): exit
id0=oi Addaction [localize «STR_ID1″,»sanitar.sqs»]
kvo=kvo+1
goto «povtor»
Перед сохранением называем наш текстовый файл:
Создаем в блокноте, 2й текстовый файл
sanitar.sqs
в который копируете следующее:
oi removeAction id0
oi action [«HEAL»,oi]
9
?not(alive oi): exit
oi setDammage 0
exit
Теперь в Вашей миссии должен быть файл: StringTable.csv ( если вы не знаете, что это за файл, ищем соответствующий раздел и читаем). В этом файле необходимо выделить строку под наш текст:
Подскажите как добавить в меню действий проигрывание анимации, например отдать честь и т.д.
Чтобы была команда в меню «отдать честь», нажимаешь и проигрывалась анимация и чтобы работала не единоразово.
Очень нужно так как загорелся сделать ролик, но с ботами очень тяжко работать, а так в сетевой с друзьями получится быстрее и качественнее.
ArmA III — Командование группой
Основы
Командование ИИ является важной частью игры. Этот раздел содержит полезную информацию о командовании команды.
находится главное меню для команд. Команды из этого меню будут выполняться каждым подразделением вашей команды. Чтобы запросить одну единицу, наведите курсор на эту единицу, и вы должны увидеть число с именем этой особи. Таким образом, если число равно 4, команда меню для этого устройства будет находиться под клавишей F4.
Если вы хотите, чтобы подразделение переместилось в определенное место, перейдите в меню команд этого подразделения и выберите «Переместить туда». Теперь используйте перекрестие и наведите его на то место, куда вы хотите переместить это подразделение, а затем снова нажмите «Переместить туда».
Теперь откройте меню Move, войдя в меню команд одного из ваших юнитов и нажав клавишу 1. Команды в этом меню:
Вернуться к формированию — все юниты возвращаются к формированию по умолчанию.
Advance — выбранный отряд будет продвигаться вперед на несколько метров вперед.
Оставайтесь на месте — выбранный отряд будет стоять за вами в строю.
Левый фланг — выбранный юнит переместится на ваш левый фланг.
Правый фланг — выбранный юнит переместится на ваш правый фланг.
Стоп — выбранный юнит остановится и останется в этом положении, пока вы не скажете ему двигаться.
Подожди меня — если выбранный отряд далеко впереди тебя, он остановится и подождет, пока ты не доберешься туда.
Найти укрытие — во время контакта с противником выбранный юнит начинает искать укрытие.
Атака
Еще одно важное меню — Атака. Откройте его, войдя в меню команд одного из ваших юнитов, а затем нажмите клавишу 3. Команды в этом меню:
Open Fire — выбранные юниты открывают огонь по отмеченным врагам.
Hold Fire — выбранные юниты будут держать огонь.
Огонь — если выбранное подразделение находится под командой «Удержание огня», но у него все еще отмечены враги, то команда «Огонь» заставит выбранное подразделение открыть огонь и вернуться в режим «Удержание огня» после того, как враг будет убит.
Engage — выбранный отряд начнет преследовать отмеченного врага, покидая строй. Он вернется после того, как враг будет убит.
Участвуйте по желанию — выбранный юнит будет сражаться с каждым отмеченным врагом
Отключение — выбранный отряд, получивший команды «Захватить», вернется в строй.
Scan horizon — выбранные юниты будут сканировать горизонт в поисках врага.
Наблюдать направление — выбранный блок будет тщательно сканировать направление, которое вы выбрали.
Нацеливание
Вы можете сделать то же самое, но не увидев врага. Выберите устройство, войдите в его командное меню и нажмите клавишу 2. Вы увидите меню со списком врагов, которые находятся в поле зрения этого подразделения. Выберите одного из врагов и нажмите «Открыть огонь».
Транспортные средства
Следующее меню — Mount. Вы можете открыть его, зайдя в меню команд одного из ваших юнитов, а затем нажмите клавишу 4. Команды в этом меню позволят вам отправлять юниты на выбранный автомобиль на разных позициях.
Чтобы отправить отряд в транспортное средство, наведите прицел на выбранное транспортное средство, а затем нажмите «Получить в (транспортное средство)» — вы увидите меню, из которого вы можете выбрать положение, в которое вы хотите направить это подразделение.
Вы также можете командовать подразделением, чтобы вести машину в выбранном месте. Отправьте юнит на место водителя выбранного транспортного средства, войдите в меню команд этого юнита и затем нажмите «Переместить туда» в нужном месте, куда должен пойти этот юнит.
Помощь
Чтобы вылечить раненого юнита, в вашей команде должен быть медик. Зайдите в меню команд вашего медика и нажмите клавишу 6. Если один из ваших юнитов ранен, вы должны увидеть команду под названием Лечить (юнит).
Боевые режимы
Следующее полезное меню — режим боя. Войдите в командное меню одного из ваших юнитов, а затем нажмите клавишу 7.
Стелс — выбранные юниты перейдут в стелс-режим и будут стараться не шуметь и держать огонь.
Безопасный — выбранные юниты перейдут в безопасный режим и будут избегать перестрелки.
Встать — выбранные юниты перейдут в положение стоя.
Оставайтесь на корточках — выбранные юниты перейдут в положение приседания.
Зайди в сторону — выбранные юниты перейдут в лежачее положение.
Скопируйте мою позицию — выбранные юниты перейдут в позицию, в которой вы находитесь в данный момент.
Как запустить функцию на клиенте
Уже всю голову сломал с этим вопросом..
Не знаю, правильно называю или нет. в общем есть вот эта функция:
Её нужно запустить с сервера на клиенте.
Если _unit это серверный игрок, то функция запускается нормально. Но если игрок это клиент, запуска нет.
Для начала нужно передать эту функцию на клиент.
И после этого уже можно вызывать на клиенте, еще можно только определенному клиенту её передать с помощью
Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание
Добавил эту строчку, но ничего не поменялось.
Или вызываться оно должно как-то по другому?
0-0 сказал(а):
Добавил эту строчку, но ничего не поменялось.
Файл со скриптом есть на клиенте.
Порядок мне не важен. она там вообще никак не запускается))
Вот всё полностью, а то может я как-то не так объясняю, я хз:
Вот этот файл запускается при старте:
Из него запускается файл PiRstart.sqf
В котором добавляется отслеживание попадания в юнита.
Из него уже запускается PiR0.sqf. В котором уже распределяются ранения для игрока на типы и запускается нужный эффект.
И вот до этого момента всё работает. но из раздела, где у меня там подписано «Эффект крови», на клиенте должен запускаться EyeEffect0.sqf. И вот он, не запускается.
Смотрите, publicVariable передает глобальную переменную всем клиентам, её нужно инициализировать при запуске сервера, далее на клиенте должны быть все функции которые используются в том коде, который вы передали.
Исходя из этого когда, функции которые используются в той, которую вы передали, существуют только на сервере, это говорит нам то, что они в ифе isServer, поэтому оно не будет работать так как на клиенте этих функций нет. И вообще, немного непонятно, зачем вам с сервера передавать функции, «забивая канал», если они есть на клиенте, инициализируйте их на клиенте, и перестройте скрипты под них, было бы конечно легче если бы была еще информация что и от куда запускается, и что где находится.
0-0 , вопрос 1: файл со скриптом есть среди файлов клиента?
One thing you definitely don’t want is to allow passing of a code over network and then letting all client machines to execute this code. Mainly because this is an invitation to all sorts of hacks and exploits and also because transferring chunks of code over network is pretty bad for bandwidth.
0-0 , вопрос 1: файл со скриптом есть среди файлов клиента?
Это мод, который, соответственно, стоит у каждого игрока.
Смотрите, publicVariable передает глобальную переменную всем клиентам, её нужно инициализировать при запуске сервера, далее на клиенте должны быть все функции которые используются в том коде, который вы передали.
Я уже разобрался в чём был у меня затык) Оказывается функция запускалась) Но не передавалась переменная, которая в функции стояла на проверке) По этому и не было эффекта.
У меня не стоит задачи бороться с хакерами)
У меня не стоит задачи бороться с хакерами)
У меня не стоит задачи бороться с хакерами)
Мы играем своим очень небольшим коллективом) По этому нет смысла переживать об этом)
А то что выложу мод в общий доступ, предупрежу, что бы использовали на свой страх и риск.
Исходя из этого когда, функции которые используются в той, которую вы передали, существуют только на сервере, это говорит нам то, что они в ифе isServer, поэтому оно не будет работать так как на клиенте этих функций нет. И вообще, немного непонятно, зачем вам с сервера передавать функции, «забивая канал», если они есть на клиенте, инициализируйте их на клиенте, и перестройте скрипты под них, было бы конечно легче если бы была еще информация что и от куда запускается, и что где находится.
Ну я уже с пониманием проблемы всё перестрою, а потом выложу сюда мод. Если не тяжело посмотрите, может подскажите как рационализировать.
Единственное с чем я могу согласиться, так это с первым пунктом, второй мне кажется лишний. Если у человека есть экзекутор, то ему не нужны какие-то там функции менять, он может их сам создать.
На сколько мне известно, процесс армы без допольнительных действий, не обнаружит, BE его скрывает, и если у человека есть способ его «расскрыть», то в таком случае он может уже делать что угодно, и передача данных по сети ему не сильно нужна.
О чём был вообще то весь спор то).
Есть отработанные временем методы реализации игрового процесса на арме.
Функции, что нужно клиенту должно компилиться у клиента, что нужно серверу должно компилиться у сервера, что нужно и клиенту и серверу должно компилиться и там и там, и самый плодово-выгодный вариант вызова кода сервером на клиенте и наоборот, это вызов уже скомпилированной по месту функции с передачей требуемых параметров, дёшево и сердито. Так же это даёт возможность на той же стороне сервера, реализовать одну вызываемую функцию-интерфейс, которой отдать разрешение на запуск, и из этой функции интерфейса уже мониторить на валидность вызываемый клиентом код и сами параметры, что само по себе уже работает на стороне сервера как элемент защиты на предмет санкционированого доступа клиента к функционалу серверной стороны.
Исходя из этого когда, функции которые используются в той, которую вы передали, существуют только на сервере, это говорит нам то, что они в ифе isServer, поэтому оно не будет работать так как на клиенте этих функций нет. И вообще, немного непонятно, зачем вам с сервера передавать функции, «забивая канал», если они есть на клиенте, инициализируйте их на клиенте, и перестройте скрипты под них, было бы конечно легче если бы была еще информация что и от куда запускается, и что где находится.
В общем, я вроде бы доделал) Надо ещё конечно тестировать, но на первый взгляд всё работает) Как уж это реализовано технически.. я старался как мог, но наверное для вменяемого человека, это будет выглядеть ужасно)))))
Сам мод про разные реакции на попадания. Вот один из примеров:
А вот ссылка на тестовую версию мода:
Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание
Там рядом с ПБОшкой разархивированная папка где можно посмотреть скрипты.
Стартовый скрипт это PiRInit.sqf. Ну а дальше он запускает следующий, тот следующий ну и тд)
Там рядом с ПБОшкой разархивированная папка где можно посмотреть скрипты.
Там рядом с ПБОшкой разархивированная папка где можно посмотреть скрипты.
Затем что мне так удобней его писать)) Заархивировал как у самого оно лежало и пояснил, что есть разархивированная папка)
Потому что я так и не понял как вызвать функцию, написанную в конфиге)
Авторы: BIS Wiki, я, и неравнодушные ребята из нашего прекрасного Discord сообщества.
AddAction — может показаться чем-то непонятным, и что это вообще такое.
А на самом деле всё просто. Это то самое меню, в котором вы выбираете действие (на колёсико).
Например: установить заряд, открыть дверь, взять что-то.
ВАЖНО:
Код, который выполняется по нажатию этой кнопки — выполняется локально для игрока её нажавшего.
Кроме того, его можно добавлять как всем, так и персонально какому либо игроку.
Причём сделать это «налету», прямо в процессе игры.
Чтобы добавить конкретному пользователю экшн на ящике мы пишем:
А ещё, его можно добавлять определённой стороне, например, только красным.
Полное описание remoteExec, на BIS Wiki.
На бики есть вот такая справка по этой команде:
Синтаксис:
То есть на выходе, мы получим вот такой код:
Тут написано вот что:
Title — заголовок. А именно, название самой кнопки, которую мы делаем тут (пункт меню на колёсико).
Кроме того, его можно и подкрасить, примерно таким образом:
Script — тот скрипт, который будет выполнятся при нажатии на этот пункт меню. Должен быть в формате SQS (морально устарел в 2007 году) или SQF
Туда могут быть переданы параметры.
Priority: Number — (Необязательно, по умолчанию 1.5) значение приоритета действия. Действия будут расположены в порядке убывания в соответствии с этим значением. Каждое игровое действие имеет заданное значение приоритета. Значение может быть отрицательной или десятичной дробью. Действия с одинаковыми значениями будут расположены в том порядке, в котором они были сделаны, самые новые внизу. Чем больше число, тем выше будет действие в меню. Типичный диапазон: от 0 (низкий приоритет. Например: «Выйти») до 6 (высокий приоритет. Например: «Авто-зависание включено»)
shortcut: String — (Необязательно, по умолчанию «») одно из key names, определенных в bin.pbo (например, «moveForward«). Добавление доступного ярлыка свяжет соответствующую клавишу с этим действием. Доступность ярлыков можно проверить с помощью команды inputAction.
Например, это как кнопка «включить автозависание» в вертолёте, где оно доступно и на колёсико в меню, и на кнопку X.
condition: String — (Необязательно, по умолчанию «true») код сценария, который должен возвращать true, чтобы отображалось действие. Специальные переменные, передаваемые в код скрипта:
В «» надо написать условие, как пишем в if. Условие должно возвращать true либо false.
В условие по умолчанию включены два параметра:
_this — тот кто вызывает экшн
и
_target — объект на котором привязан экшн
Пример:
Экшн будет показываться, если вызывающий на стороне красных:
Пример 2:
Если объект на котором весит экшн не поврежден, то экшен не будет виден:
radius: Number — (Необязательно, по умолчанию 50) 3D- расстояние в метрах, на котором должен быть активирован объект, активирующий действие.
-1 отключает этот радиус.
То есть, если не указать, то этот пункт меню будет виден на расстоянии 50 метров от объекта на котором он есть.
-1 — максимальная дистанция проверки условия. Проверка условия обладает следующими свойствами:
Оптимально:
1 метр — в упор
2 метра — на расстоянии вытянутой руки
Так что не пропускайте, и указывайте сколько надо.
selection: String — (Необязательно, по умолчанию «») именованное выделение в геометрии LOD, к которому прикреплено действие
В общем мы получаем по итогу вот такой код:
Конечно же этот код можно и нужно менять под свои запросы.
Выше описано как это делается.
Есть ещё вариант, когда после нажатия на кнопку которую видно всем, будет появляться кнопка видная только тому кто нажал.
В данном случае, появится машина (класснейм надо указать), и у неё будут кнопки:
Которые будут видны только тому, кто «купил» (нажал первую кнопку) эту технику.
Если другой игрок так же «купит» (нажмёт эту кнопку на стенде магазина) — то у него будут свои кнопки
Которые не будут действовать на технику другого игрока.
Очень надеюсь что эта статья будет вам полезна.
Ну если что-то не поняли, то заходите в наш Discord, там вам всегда помогут.