Массивы бывают нескольких типов:
- вещественные
- целочисленные
- логические
Массивы бывают:
- одномерными
- двумерными
- трехмерными.
Кроме вышеперечисленных типов, существует массив, называемый enum - это массив переменных.
Одномерный массив
Одномерный массив объявляется в начале как обычная строка, затем следует оператор присваивания (=) и в фигурных скобках, через запятую пишутся значения ячеек. Число значений должно соответствовать числу в квадратных скобках, как это показано на примере ниже:
1 new pawn[5] = {347,782,632,437,721}; //одномерный массив целочисленного типа
В приведенном выше примере создан инициализированный массив из 5 ячеек, со своими значениями в каждой ячейке.
Обращаться по ним можно по индексам ячеек: 0, 1, 2, 3, 4. Последняя экстра – ячейка – 5 не используется никогда, она нужна для хранения идентификатора массива.
Поскольку массив эта виртуальная таблица, сейчас я научу вас обращаться к определенной ячейке данной таблицы и получать из нее данные или наоборот записывать в нее данные.
Итак, чтобы обратиться к ячейке со значением 782 (смотрите массив из первого примера), вы пишете ссылку на нее. Ссылка будет выглядеть следующим образом:
1 pawn[1]; //ссылаемся на ячейку со значением 782
Не забываем, что отсчет ячеек начинается с 0, поэтому в квадратных скобках стоит единица. Теперь мы можем делать все что угодно с данным значением. Присвоим значение этой ячейке, например – 394.
1 pawn[1] = 394; //теперь значение в ячейке изменилось на 394
То же самое, можно делать и с массивом вещественного типа. Он должен содержать только десятичные числа, и объявляется он следующим образом:
1 new Float:pawn[5] = {347.34,782.53,632.46,437.24,721.35}; //одномерный массив вещественного типа
Часто одномерные массивы используют для всех игроков, то есть создают большой массив с количеством u1103 ячеек равным максимальному количеству игроков на сервере. В языке Pawn уже предусмотрена встроенная константа MAX_PLAYERS, которая равно 500. Одномерные массивы для всех игроков создаются следующим образом:
1 new data[MAX_PLAYERS]; //одномерный массив для всех игроков
То есть мы создаем огромный массив из 500 ячеек. Чтобы обратиться к своей ячейке массива мы пишем следующее:
1 data[playerid]; //ссылка на ячейку игрока.
|