Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Operation Arrowhead Скрипты Радиус реакции вражеских войск |
Радиус реакции вражеских войск |
› Понедельник
› 05.09.2016
› 20:03
› Сообщение #
Вопрос который давно мучает меня. Никак не могу разобраться. Как сделать так что бы вражеские юниты и их техника имели меньший радиус при котором они меня замечают? Может есть скрипт такой или еще что нибудь?
|
› Понедельник
› 05.09.2016
› 20:36
› Сообщение #
addertu, может врагам skill уменьшить? (_enemy setSkill ["spotDistance", 0.1])
|
› Понедельник
› 05.09.2016
› 21:07
› Сообщение #
Вписал вражескому танку в поле Инициализация this setSkill ["spotDistance", 0.1];
В результате он заметил меня с 700 метров и тут же открыл огонь почти не промахиваясь. Может я не туда и не так вписал? Если пишу в место this _enemy то возникает окно с надписью "Локальная переменная в глобальном пространстве". |
› Понедельник
› 05.09.2016
› 21:53
› Сообщение #
this - было правильно. setSkill было предположением. По другому - не знаю... Где-то на форуме упоминался скрипт, в котором при наличии маскировочного костюма у бойца враг перестает его замечать издали, но в какой конкретно теме - не помню.
|
› Вторник
› 06.09.2016
› 02:15
› Сообщение #
Это обыгрывание setcaptive. Можно сделать на что угодно. На наличие костюма, на положение (стоя-лежа), на скорость и тд
|
› Вторник
› 06.09.2016
› 08:54
› Сообщение #
Не понял. Что за setcaptive? и как его обыграть и поможет ли это моей проблеме? Перетанут ли враги меня видеть на больших расстояниях?
|
› Вторник
› 06.09.2016
› 14:06
› Сообщение #
addertu, пока что существует единственный способ "запретить" ботам дальнозоркость - объявить цель (игрока) нейтральной (если setskill не действует).
Команда setcaptive это как раз и делает - переводит его в гражданскую фракцию, либо снимает этот перевод. При этом видят его все равно, но реагируют как на гражданских - то есть никак (если обратное не было прописано). Можно организовать простенький цикл для каждого врага: В инит вражине: _s = [this]execVM "file.sqf" file.sqf: _en = _this select 0; while {alive _en} do { if (_en distance player > 700) then {player setcaptive true} else {player setcaptive false}; sleep 0.5; }; Можно сделать цикл только для игрока, но здесь надо каждый раз обсчитывать массив врагов в некоем радиусе. Ну а потом можно и проапгрейдить. Добавить различную дистанцию для разных типов, для положения игрока и тп. |
› Вторник
› 06.09.2016
› 16:09
› Сообщение #
|
› Вторник
› 06.09.2016
› 21:02
› Сообщение #
andrucio, я сделал как ты сказал.
1. Вражескому танку в инит написал ту строку 2. Файл file.sqf с твоим содержимым внутри положил в папку C:\Users\ssssss\Documents\ArmA 2\missions\Experement_Arma2OA.utes Потом поставил врага на расстоянии 900 метров и он как полил по мне так и продолжает полить. Может еще что-то где-то надо дописать. Имя например? Меня смущает _s оно вроде не где не фигурирует. Может это надо написать в поле имя вражескому танку? Может я не туда положил файл file.sqf? |
› Вторник
› 06.09.2016
› 23:29
› Сообщение #
Скрипт должен быть в папке с миссией.
Да, ошибся. if (_en distance player < 700)..... |
› Среда
› 07.09.2016
› 09:38
› Сообщение #
Все равно не работает. А можно это реализовать в ините без дополнительного файла? Может так получится?
|
› Среда
› 07.09.2016
› 13:56
› Сообщение #
addertu, разницы нет. С файлом удобнее применять к нескольким единицам, чтоб не прописывать одно и то же.
И да, первый вариант был правильный _en distance player > 700 Ну попробуй без файла. _p = this spawn {while {alive _this} do {if (_this distance player > 700) then {player setcaptive true} else {player setcaptive false}; sleep 0.5;}}; _s = this spawn {while {true} do {hint str (_this distance player); sleep 1}} второй цикл - для показа дистанции, для теста |
› Среда
› 07.09.2016
› 17:31
› Сообщение #
Вписал это в инит вражескому танку. В результате в углу экрана появилось расстояние до меня но он все равно в меня стреляет. Может в место setcaptive нужно что-то другое вписать? Есть варианты?
|
› Среда
› 07.09.2016
› 18:08
› Сообщение #
Первый выстрел возможно проходит на автомате, еще до инициализации. Как только начинает работать цикл, все нормально.
|
› Среда
› 07.09.2016
› 18:36
› Сообщение #
Дело в том что если я играю за солдата то скрип работает но как только я с помощью буквы U переселяюсь в танк скрипт перестает работать. Как так? Можно сделать так что бы он продолжал работать? танку я задаю "Играть за командира, водителя и стрелка" Может в место player нужно вписать что-то другое?
|
| |||
Чат сайта |