Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
- 0
-
Похожие публикации
-
Автор: SpiritWolf
Ребят, подскажите. К примеру, у меня есть массив.
_blabla = ["TrashTinCan", "PastaTinCan", ............]
Как мне сделать проверку, что хотябы один из элементов массива присутствует и отлавливать конкретно тот, на который пал выбор скрипта (К примеру, идет проверка инвентаря игрока)?
Надеюсь, я правильно объяснил и вы поймете :)
-
Автор: NoNameUltima
Массивы и циклы.
*Мб кому то будет полезно.
В. В чем различие цикла forEach от цикла for
О. Цикл forEach создает копию массива в памяти, и служит для быстрого поиска в массиве заданного элемента.
Но удалять внутри данного цикла элементы массива нельзя, т.к. будут смещены индексы, и изменится длина массива.(см. пример ниже для цикла for)
В. В чем отличие цикла
for "_i" from 0 to _xxx do
от цикла
for "_i" from _xxx to 0 step -1 do О. Цикл:
for "_i" from 0 to _xxx do Перебирает массив, и Вы можете менять элементы массива, но если Вам необходимо, внутри цикла удалять элементы массива, Вам необходим обратный цикл:
for "_i" from _xxx to 0 step -1 do Пример некорректного использования цикла:
for "_i" from 0 to _xxx do Предположим у вас есть массив:
_xxx = [0,2,9,0,2]; Как видим, в нем 4 элемента(счет идет с нуля).
Ваша задача, удалить элементы больше 1.
Неправильный цикл:
for "_i" from 0 to count _xxx do // Цикл от нуля и до 4(кол-во элементов массива) { if ( (_xxx select _i) > 1 ) then // Если текущий элемент больше 1 - { _xxx set [_i, -1]; // Заменить текущий элемент массива на -1 _xxx = _xxx - [-1]; // Удалить в массиве элемент [-1] }; };
При нулевой итерации цикла, будет взято цисло из массива = 0. Число больше 1 - Цикл переходит на следующую итерацию. Первая итерация - число будет = 2. Число больше 1 - Данный элемент будет удален. Следующая итерация возьмет число 0!!!
В. Почему 0, почему не 9?
О. После удаления элемента массива, его счетчик так же будет изменен, в следствии этого, т.к. элемента 1 равного 2, более не существует, его заменит элемент 2 равный 9.
И тут сразу 2 ошибки:
Мы пропустили элемент который должен был быть удален.
Цикл идет до 4 элементов, а у нас на втором шаге их уже стало 3, т.е. - вы получите ошибку скрипта, при доступе к несуществующему элементу списка. Правильный цикл:
for "_i" from (count _xxx) to 0 step -1 do // Цикл начиная с 4(кол-во элементов массива), и до нуля { if ( (_xxx select _i) > 1 ) then // Если текущий элемент больше 1 - { _xxx set [_i, -1]; // Заменить текущий элемент массива на -1 _xxx = _xxx - [-1]; // Удалить в массиве элемент [-1] }; }; -
Автор: CrazyClown
Добрый Вечер.
Ввиду нашествия читеров, решил таки подключить проверку подписей(На сервере большое количество аддонов).
Но, никак не могу найти документацию по созданию подписей для большого количества аддонов.
Если есть знающие люди, подскажите, пожалуйста, как сделать это правильно.
Все аддоны лежат в одной папке, @PapkaName
Аддонов около 100 штук. Подскажите, пожалуйста, что нужно сделать, и как? Большое спасибо.
-
-
Наш выбор
-
Создаем свой серверный мод. [DayZ 1.4 to Discontined]
123new опубликовал тему в Версия 1.0 и выше,
-
Увеличение карты х2
vitacite опубликовал тему в Картостроение,
Как проверить массив на пустоту? isNull ругается, что может проверять только объекты. Даже если сделаю isNull (МАССИВ select 0), то всё равно ругается.
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах