Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • Не хотите БАН?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок
  • Загляните на торговую площадку

    Там вы можете купить
    Всё что касается игровых серверов
  • 0
SpiritWolf

Проверка массива

Ребят, подскажите. К примеру, у меня есть массив.

 

_blabla = ["TrashTinCan", "PastaTinCan", ............]

 

Как мне сделать проверку, что хотябы один из элементов массива присутствует и отлавливать конкретно тот, на который пал выбор скрипта (К примеру, идет проверка инвентаря игрока)?
Надеюсь, я правильно объяснил и вы поймете :)

Edited by SpiritWolf (see edit history)

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Ковырнул вики бисовскую:

 

_finder = magazines player find _trashArray;
        switch (_finder) do 
                                {
                                    case : "TrashTinCan" {_obj    =    "TrashTinCan"};

                                    case : "блабла" {_obj    =    "блабла"};

                                 };

 

В теории такой исход возможен?

Share this post


Link to post
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • 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. При выключении этого параметра зайти можно легко.
      Подскажите почему так? Ведь целая папка армы с эпочем скопирована полностью... на клиенте и на сервере они идентичны!
×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.