Делаем новые миссии. CLEO - скрипты, cutscene, статьи, программы. Игровые новости.
 
31.1.13 13:11 |

Массивы. Часть 1

Раздел: Основы скриптинга | Автор: yelmi | Рейтинг: 10.00 (1) | Хитов 4871
В GTA SA массив имеет вид <Имя массива>(<имя индексной переменной>,<размер массива><тип>).
<Имя массива>: локальная или глобальная переменная.
<Имя индексной переменной>: любая переменная, значение этой переменной должно быть целым числом (integer).
<Размер массива >: любое целое число больше нуля.
<Тип>: буквы i f s v обозначающие один из типов массива:

i: integer, только целые значения, размер элемента 4 байта
[b]f
: float, дробные значения, размер элемента 4 байта
s: string, строки с фиксированной длиной 8 байтов
v: longstring, строки с фиксированной длиной 16 байтов
Код
Код:
6@ = 0;
while 001B: 4 > 6@
wait 0
0085: 0@(6@,4i) = 6@ // (int)
inc(6@)
end
соответствует записи
0006: 0@ = 0 //6@ = 0
0006: 1@ = 1 //6@ = 1
0006: 2@ = 2 //6@ = 2
0006: 3@ = 3 //6@ = 3

Это означает что, если вы объявили массив 0@(6@,4i), то переменные 0@, 1@, 2@ и 3@, грубо говоря, являются элементами этого массива. Для тех, кто сомневается в этом, приведу пример:
Код:
{$CLEO}
0000:
wait 2000
0006: 0@ = 0
0006: 1@ = 1
0006: 2@ = 2
0006: 3@ = 3

:MASS
6@ = 0
while 001B: 4 > 6@
wait 0
01E5: show_text_1number_highpriority GXT 'BJ_0' number 0@(6@,4i) time 2000 flag 1
wait 2000
03D5: remove_text 'BJ_0'
inc(6@)
end
0A93: end_custom_thread


Компилируем, запускаем. Смотрим результат.

Заменим предыдущий вариант на этот код:

Код:
{$CLEO}
0000:
wait 2000

:MASS
6@ = 0
while 001B: 4 > 6@
wait 0
0085: 0@(6@,4i) = 6@ // (int)
inc(6@)
end
01E5: show_text_1number_highpriority GXT 'BJ_0' number 0@ time 2000 flag 1
wait 2000
03D5: remove_text 'BJ_0'
01E5: show_text_1number_highpriority GXT 'BJ_0' number 1@ time 2000 style 1
wait 2000
03D5: remove_text 'BJ_0'
01E5: show_text_1number_highpriority GXT 'BJ_0' number 2@ time 2000 style 1
wait 2000
03D5: remove_text 'BJ_0'
01E5: show_text_1number_highpriority GXT 'BJ_0' number 3@ time 2000 style 1
wait 2000
03D5: remove_text 'BJ_0'
0A93: end_custom_thread

Компилируем, запускаем. Результат соответствует предыдущему коду.
Убеждаемся в том, что при объявлении массива 0@(6@,4i), переменные 0@, 1@, 2@ и 3@ являются элементами этого массива. Это правило относится к типам массивов i и f.

Продолжение следует…

 

  1 2 3 4 5 6 7 8 9 10  

Родственные ссылки
» Другие статьи раздела Основы скриптинга
» Эта статья от пользователя yelmi

5 cамых читаемых статей из раздела Основы скриптинга:
» Работа со звуками в GTA San Andreas
» Директивы
» Контроль клавиатуры
» External Script – что это такое и как с ним работать?
» Панель, или список товаров. Часть II.

5 последних статей раздела Основы скриптинга:
» Директивы
» Дополнительные команды
» Ключевые слова
» Классы
» Циклы

¤ Перевести статью в страницу для печати
¤ Послать эту cтатью другу

MyArticles 0.6 beta for RUNCMS: by RunCms.ru


Реклама

Вверх     Вернуться на главную. Вход в Систему. Статьи. Скачать. Миссии. ФОРУМ Обратная связь.   
   
   
   
   
- Генерация страницы: 0.13 секунд -