несколько условий выборки

finalER2000

Активный участник
Регистрация
29 Май 2023
Сообщения
13
возможно ли сделать несколько условий выборки?
Пример: надо нанести урон челику у которого ник НЕ %default% и он должен находится на расстоянии от какого то блока
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
639
В общем? Реально. Через массивы.
Можно так: Сначала выбираешь всех игроков условия 1, добавляешь их в массив 1, затем условия 2 - добавляешь в массив 2, затем условие 3 - в массив 3, и так далее. После всех манипуляций нужно найти пересечение ВСЕХ массивов. Но я считаю такой способ сложным, вот другой:
Фильтруешь людей по условию 1 и добавляешь в массив 1. Затем циклом сравниваешь все никнеймы из массива 1 со вторым условием и тех, кто не прошел это условие - удаляешь из массива. Так пока не закончишь.
В конце концов у тебя есть массив никнеймов. Ты делаешь обычную выборку "Выбрать всех игроков, у кого ник ..."
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
373
В общем? Реально. Через массивы.
Можно так: Сначала выбираешь всех игроков условия 1, добавляешь их в массив 1, затем условия 2 - добавляешь в массив 2, затем условие 3 - в массив 3, и так далее. После всех манипуляций нужно найти пересечение ВСЕХ массивов. Но я считаю такой способ сложным, вот другой:
Фильтруешь людей по условию 1 и добавляешь в массив 1. Затем циклом сравниваешь все никнеймы из массива 1 со вторым условием и тех, кто не прошел это условие - удаляешь из массива. Так пока не закончишь.
В конце концов у тебя есть массив никнеймов. Ты делаешь обычную выборку "Выбрать всех игроков, у кого ник ..."
какие массивы
подвинься, старче

вот код на млкт без массивов:
JavaScript:
PlayerEvent(damagePlayer) {
    select.all;
    var `%selected%_sort` = 0;
    select.player.ifPlayer.nameEquals<not>("%default%");
    var.plus(`%selected%_sort`);
    select.player.ifPlayer.nearLocation(locations=l`0 0 0`, number=10) // Тут проверка "если игрок рядом"
    var.plus(`%selected%_sort`);
    select.player.ifVar.equals(`%selected%_sort`, 2);
    player.damage(10); // Тут дамаг
}
 
Сверху