http://laska-samp.biz/articles/pawn-book/osnovy-skripttting/massivy
°•°•° Проект SAMP - Romashka [0.3e] ™18+™ °•°•° :: Теория :: Pawn :: Основы скриптинга

Массивы. Одномерный массив

Массивы бывают нескольких типов:

Массивы бывают:
Кроме вышеперечисленных типов, существует массив, называемый 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]; //ссылка на ячейку игрока.
 
 


Опубликовано 09 December 2013