Массивы
Массивы представляют собой последовательный набор элементов одного типа (тип массива). К каждому элементу массива можно обратиться используя его индекс (порядковый номер элемента в массиве). Нумерация элементов начинается с нуля. Массивы доступны в 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 <имя массива>: 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 modified 22d ago