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

Добро пожаловать на проект
Weekly Open Games

Weekly Open Games — это проект для людей, которым интересен хардкорный тип игры. Мы стараемся максимально эффективно использовать структуру, слабые и сильные стороны, а также технику и вооружение различных сторон конфликта, но не ставим перед собой цель провести 100% сбалансированного боестолкновения. Командная игра, командное взаимодействие — фундамент нашего проекта.
О проекте WOG Как начать играть Правила серверов
Regool

Помогите пожалуйста со скриптом на завершение миссии при выходе из триггера

Рекомендуемые сообщения

Здравствуйте! Хотелось бы задать вопрос по скриптингу в Arma 3. "if (triggerActivated landing == true) && (Player1 != Present) || (Player2 != Present) || (Player3 != Present) || (Player4 != Present) then { true; };" - данные, набранные на клавиатуре буквы, при тесте выдают ошибку перед первыми "&&". Суть самого скрипта в том, что-бы если активирован тригер "landing" и какой-либо из юнитов не находится в триггере, под которым написан этот скрипт, срабатывал этот самый триггер. Надо сделать так, что-бы игрок сначала смог зайти в сам триггер, а потом уже все. Ломаю голову пол дня, помогите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну как минимум условные выражения должны быть в скобках от if до then.

if ( (... && ...) || (... != ...) ) then {};

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, Liquid сказал:

Ну как минимум условные выражения должны быть в скобках от if до then.

if ( (... && ...) || (... != ...) ) then {};

Спасибо, а есть еще что-нибудь еще, что неправильно или все в принципе выглядит как удар по клавиатуре?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, Liquid сказал:

Ну как минимум условные выражения должны быть в скобках от if до then.

if ( (... && ...) || (... != ...) ) then {};

Хоть ошибки больше не выдает, но все равно почему-то не робит :/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
59 минут назад, Liquid сказал:

Ну как минимум условные выражения должны быть в скобках от if до then.

if ( (... && ...) || (... != ...) ) then {};

А && случаем не приоритетнее, чем || ? Если да, то не хватает скобок, которые отделяют вторую часть &&

Изменено пользователем Octopus

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 часов назад, Octopus сказал:

А && случаем не приоритетнее, чем || ? Если да, то не хватает скобок, которые отделяют вторую часть &&

Тут вопрос, как мне кажется, больше в том, что игра не может понять, где именно игрок должен присутствовать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не шарю за триггеры к сожалению. Да и идея не очень понятна. Может так сойдет.

if (isServer) then {
    [] spawn {
        private _run = true;
        private _playersInAreaPrev = [];
        while {_run} do {
            private _playersInAreaNow = allUnits inAreaArray "marker_1";

            if (count _playersInAreaNow - count _playersInAreaPrev < 0) then {
                hint format ["%1 missing", _playersInAreaPrev - _playersInAreaNow];
            };

            _playersInAreaPrev = +(allUnits inAreaArray "marker_1");
            sleep 1;
        };
    };
};

 

14 часов назад, Octopus сказал:

А && случаем не приоритетнее, чем || ? Если да, то не хватает скобок, которые отделяют вторую часть &&

1) Я наугад значки лепил лишь бы показать что нужны общие скобки.
2) Скобки же и нужны чтобы определять приоритеты. Не вижу ничего плохого в выражении: 
if ( (... && ...) || (... != ...) ) then {};
Если ( (кот рыжий и мурлычет) или хотя бы (кот не убегает) ), то {взять на руки}.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Liquid сказал:

Я не шарю за триггеры к сожалению. Да и идея не очень понятна. Может так сойдет.


if (isServer) then {
    [] spawn {
        private _run = true;
        private _playersInAreaPrev = [];
        while {_run} do {
            private _playersInAreaNow = allUnits inAreaArray "marker_1";

            if (count _playersInAreaNow - count _playersInAreaPrev < 0) then {
                hint format ["%1 missing", _playersInAreaPrev - _playersInAreaNow];
            };

            _playersInAreaPrev = +(allUnits inAreaArray "marker_1");
            sleep 1;
        };
    };
};

 

1) Я наугад значки лепил лишь бы показать что нужны общие скобки.
2) Скобки же и нужны чтобы определять приоритеты. Не вижу ничего плохого в выражении: 
if ( (... && ...) || (... != ...) ) then {};
Если ( (кот рыжий и мурлычет) или хотя бы (кот не убегает) ), то {взять на руки}.

Что-то ничего непонятно 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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