Главная » Статьи » GTA:San Andreas » Скриптинг

Массивы
Массив-это что-то,чего много)))
Так,к делу,допустим нам нужно сделать 20 пикапов,или актёров,тачек,как это сделать, затратив минимум времени?
Ответ один-массивом! Для того,чтобы сделать массив,сначало нужно обьявить переменные,и др,т.е то,что будет использоваться в массиве.
Например мы хотим создать 10 тачек

var //сокращённо variable,т.е переменная.
$x_coord_for_array : float = 2512.5781 //координаты по оси X.
$y_coord_for_array : float = -1778.524 //координаты по оси Y.
$z_coord_for_array : float = 13.5469 //координаты по оси Z.
$cars_for_array: array 10 of Car //Обьявляем массив из 10 тачек.
end //заканчиваем обьявление переменных.

Теперь перейдём к созданию тачек в массиве:
for $index_of_array = 1 to 10 //устанавливаем цикл,который будет повторяться
10 раз.
$cars_for_array[$index_of_array] = Car.Create(#MODEL_ID,$x_coord_for_array,$y_coord_for_array,$z_coord_for_array)
//создём тачку,[$index_of_array]-это обозначает,что когда цикл будет
повторяться-тачек создасться 10, и к каждой можно будет обратиться.
Car.Angle($cars_for_array[$index_of_array]) = 180.0 //устанавливаем угол поворота тачки в 180 градусов.
$x_coord_for_array += -3.0 //вычитаем от переменной,отвечающеё за ось X, 3
единицы(для того,чтобы тачка создалась рядом с предыдущей на расстоянии в 3 единицы.
wait 250 //ждём 250 миллисекунд
end //заканчиваем цикл

А теперь перейдём к окончательному варианту:
:Array
wait 0
model.Load(#MANANA)
038B: load_requested_models

:Array_2
wait 0
if
model.Available(#MANANA)
jf @Array_2
var
$x_coord_for_array : float = 2512.5781
$y_coord_for_array : float = -1778.524
$z_coord_for_array : float = 13.5469
$cars_for_array: array 10 of Car
end
for $index_of_array = 1 to 10
$cars_for_array[$index_of_array] = Car.Create(#MANANA,$x_coord_for_array,$y_coord_for_array,$z_coord_for_array)
Car.Angle($cars_for_array[$index_of_array]) = 180.0
$x_coord_for_array += -3.0
wait 250
end
end_thread

Теперь рассмотрим тоже самое,но уже с актёрами,также обявляем все переменные,только вместо $cars_for_array: array 10 of Car напишем $act_for_array: array 10 of Actor и замените в цикле строчку $cars_for_array[$index_of_array] = Car.Create(#MANANA,$x_coord_for_array,$y_coord_for_array,$z_coord_for_array) на создание актёра:
$act_for_array[$index_of_array] = Actor.Create(Gang2,#MODEL_ID,$x_coord_for_array,$y_coord_for_array,$z_coord_for_array)
Вот пример:



:Array
wait 0
model.Load(#WMYBELL)
038B: load_requested_models

:Array_2
wait 0
if
model.Available(#WMYBELL)
jf @Array_2
var
$x_coord_for_array : float = 2512.5781
$y_coord_for_array : float = -1778.524
$z_coord_for_array : float = 13.5469
$act_for_array: array 10 of Actor
end
for $index_of_array = 1 to 10
$act_for_array[$index_of_array] = Actor.Create(Gang2,#WMYBELL,$x_coord_for_array,$y_coord_for_array,$z_coord_for_array)
$x_coord_for_array += -1.2
wait 250
end
end_thread

А также тоже самое но с обьектами:
теперь нужны строчки $obj_for_array: array 10 of Object и $obj_for_array[$index_of_array] = Object.Create(#KMB_ROCK,$x_coord_for_array,$y_coord_for_array,$z_coord_for_array) вместо старых
Вот пример:

:Array
wait 0
model.Load(#KMB_ROCK)
038B: load_requested_models

:Array_2
wait 0
if
model.Available(#KMB_ROCK)
jf @Array_2
var
$x_coord_for_array : float = 2512.5781
$y_coord_for_array : float = -1778.524
$z_coord_for_array : float = 13.5469
$obj_for_array: array 10 of Object
end
for $index_of_array = 1 to 10
$obj_for_array[$index_of_array] = Object.Create(#KMB_ROCK,$x_coord_for_array,$y_coord_for_array,$z_coord_for_array)
$x_coord_for_array += -1.2
wait 250
end
end_thread

Также чтобы обратиться к тому или иному обьекту из массива,примените нужный вам опкод,а у переменной напишите в скобках число,например:$obj_for_array[$index_of_array] - это изначально,обратимся к одному из обьектов $obj_for_array[1] и всё,эт просто очень)

  • В центр экрана
  • Свернуть
  • Восстановить
  • Закрыть окно
Категория: Скриптинг | Добавил: SKV1991 (03.07.2007) | Автор: Кирилл E
Просмотров: 1214 | Рейтинг: 5.0/2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]