Need help?
Create a topic in the appropriate section
Don't write everything in the chat!Take a look at the marketplace
There you can buy
everything related to game serversDon't want a ban?
Please read our rules
Don't disturb the order!Sell or buy?
Use services of the guarantor
We will make your deal safe



- 0
-
Similar Content
-
By
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] }; }; -
By CrazyClown
Добрый Вечер.
Ввиду нашествия читеров, решил таки подключить проверку подписей(На сервере большое количество аддонов).
Но, никак не могу найти документацию по созданию подписей для большого количества аддонов.
Если есть знающие люди, подскажите, пожалуйста, как сделать это правильно.
Все аддоны лежат в одной папке, @PapkaName
Аддонов около 100 штук. Подскажите, пожалуйста, что нужно сделать, и как? Большое спасибо.
-
By SkeepRyder
Как мне это можно реализовать? Сам триггер работает, но проблема в том, что боты не спавнятся, когда игрок в него входит, т.е нет постоянной проверки, пытался реализовать не получилось, поэтому прошу помощи.
-
By exploadead
Всем привет!
Ситуация такая - есть арма 1.58 и эпоч 0.3.8.0, сборка скопирована на другой компьютер.
На первом запущен сервер без каких либо модов кроме эпоча. Батлай включен.
При включении параметра проверки подписей - verifySignatures = 2 на сервер нельзя зайти, кикает батлай с ошибкой Unknown game version. При выключении этого параметра зайти можно легко.
Подскажите почему так? Ведь целая папка армы с эпочем скопирована полностью... на клиенте и на сервере они идентичны!
-
-
Our picks
Ребят, подскажите. К примеру, у меня есть массив.
_blabla = ["TrashTinCan", "PastaTinCan", ............]
Как мне сделать проверку, что хотябы один из элементов массива присутствует и отлавливать конкретно тот, на который пал выбор скрипта (К примеру, идет проверка инвентаря игрока)?
Edited by SpiritWolf (see edit history)Надеюсь, я правильно объяснил и вы поймете :)
Share this post
Link to post
Share on other sites