Массивы

Массивы представляют собой последовательный набор элементов одного типа (тип массива). К каждому элементу массива можно обратиться используя его индекс (порядковый номер элемента в массиве). Нумерация элементов начинается с нуля. Массивы доступны в San Andreas, LCS и VCS.

Общий синтаксис

San Andreas:

<имя массива>(<индекс>,<размер><тип>)

<имя массива>: локальная или глобальная переменная <индекс>: локальная или глобальная переменная, содержащая индекс элемента, который нужно прочитать или изменить <размер>: целое число от 1 до 255 (включительно) <тип>: одна из букв i f s v:

Буква

Тип элемента

Размер элемента (в байтах)

i

целое число

4

f

дробное число

4

s

строковый литерал

8

v

строковый литерал

16

Пример:

$index = 0
$array($index,10i) = 1

Liberty City Stories, Vice City Stories:

<имя массива>(<индекс>,<размер>)

В LCS и VCS длина элементов массивов может быть только 4 байта. Поэтому нет необходимости указывать тип массива при обращении к его элементам.

Пример:

$index = 0
$array($index,10) = 1

Объявление массивов

Массивы, как и отдельные переменные, могут быть объявлены при помощи ключевого слова var:

var <имя массива>: array <размер> of <тип>

Пример:

var $FloatArray: array 10 of Float

Массивы с элементами примитивного типа могут быть объявлены при помощи короткой записи вида:

<тип> <имя массива>[<размер>]

Допустимыми типами в таком объявлении являются Int, Float, String, LongString:

int intArray[10]
float floatArray[10]
string stringArray[10]
longstring longStringArray[10]

Обращение к элементам массива после объявления

После объявления массива можно обращаться к его элементам, используя квадратные скобки:

var $FloatArray: array 10 of Float

$index = 0

// увеличить значение первого элемента на 100
$FloatArray[$index] += 100.0

// аналогично
$FloatArray[0] += 100.0

С массивами, содержащими строковые литералы, можно работать используя строковые переменные:

// задаем значения для первых трех элементов массива $strings
s$strings[0] = 'str1'
s$strings[1] = 'str2'
s$strings[2] = 'str3'

Массив может быть объявлен как коллекция экземпляров класса, его методы будут доступны для каждого элемента:

var $players: array 2 of Player

$players[0].Build 

По умолчанию в режиме GTA SA дизассемблер выводит элементы массива с целочисленными константами. В LCS и VCS эта возможность присутствует, но по умолчанию выключена. Отладочная опция CONSTANT_INDEXES позволяет включить или выключить эту возможность.

Last updated