Массив-это что-то,чего много))) Так,к делу,допустим нам нужно сделать 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_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_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] и всё,эт просто очень)