00080. Тюнинг транспорта, работа с компонентами тюнинга
Тюнинг транспорта, работа с компонентами тюнинга|Этот урок будет посвящен тюннингу, используя скриптинг.|wmysterio|wmysterio||||Одним из главных нововведений в ГТА стал тюнинг транспорта. В первую очередь обращаю Ваше внимание на том, что не все автомобили могут быть тюнингированы и, к тому-же, некоторый тюнинг доступный только конкретной машине. Спойлер, колёса, бампера и т.п являются компонентами автомобиля. Количество таких компонентов зависит от автомобиля, что "прокачивается". В этом уроке мы попробуем тюнингировать #ELEGY.
Первое, что нужно сделать - узнать какие компоненты доступны для тюнинга. Для этого откроем файл "carmods.dat" любым текстовым редактором и ищем строку, которая начинается с ELEGY:
elegy, exh_a_l, exh_c_l, fbmp_a_l, fbmp_c_l, nto_b_l, nto_b_s, nto_b_tw, rbmp_a_l, rbmp_c_l, rf_a_l, rf_c_l, spl_a_l_b, spl_c_l_b, wg_l_a_l, wg_l_c_l
Каждой запятоц выделено компонент, доступный для тюнинга. Во многих случаях компоненты начинаются с одного префикса:
**nto**_b_l **nto**_b_s **nto**_b_tw
В таких случаях можно выбрать только один компонент из этих префиксов ( думаю вы видели, что можно выбрать только один тип нитро ). Для Вас ( чтобы Вы не парились какой префикс что значит ) я сделал таблицу некоторых префиксов, которые обозначают компонент:
exh
Выхлопная труба
fbmp
Передний бампер ( **f**orward **b**u**mp**er )
nto
Нитро ( **n**i**t**r**o** )
rbmp
Задний бампер
spl
Спойлер
Существуют и другие компоненты, но Вы уже сами протестируете их. Я только привел пример этих префиксов. Суть этой информации в том, что бы не делать ошибок при загрузке компонентов. Мне иногда приходят письма об этих компонентах и как же удивляются адресанты когда я им отвечаю, что "нельзя загружать два одинаковых компонента", хотя как они пишут: "Эти компоненты находятся в списке". Отвечаю наперёд: можно использовать только один компонент из одинаковых префиксов.
Это теория. Советую вам обратить большое внимание на это, так как это поможет вам миновать ошибки. Перейдём к опкодам:
06E9: load_car_component #rbmp_c_l // загрузить компонент
06EA: car_component #rbmp_c_l available // проверка "Загрузился ли компонент?"
06E7: 1@ = add_car_component #rbmp_c_l to_car 0@ // устанавливает компонент транспорту
Здесь: 1@ - в эту переменную будет записан компонент #rbmp_c_l - модель загруженного компонента 0@ - наш автомобиль
Как только компонент прицеплен к машине, можем смело очищать память игры от загруженной модели компонента:
06EB: release_car_component #rbmp_c_l
Наш скрипт будет примерно таким:
{$CLEO}
0000:
:1
thread '1'
wait 0
06E9: load_car_component #rbmp_c_l
model.Load(#ELEGY)
038B: load_requested_models
:1_1
wait 0
if AND
06EA: car_component #rbmp_c_l available
model.Available(#ELEGY)
jf @1_1
0@ = car.Create(#ELEGY, 2493.1716, -1667.1075, 12.3437)
car.Angle(0@) = 178.0475
model.Destroy(#ELEGY)
06E7: 1@ = add_car_component #rbmp_c_l to_car 0@
06EB: release_car_component #rbmp_c_l
0A93: end_custom_thread
Результат нашего тюнинга:
Как видим, задний бампер успешно поставлен!
Кроме загрузки компонентов, возможно давать автомобилю некоторые примочки. Рассмотрим несколько опкодов из этой категории ( компонентов загружать не нужно ):
09E9: car 0@ add_single_nitro // установить одноразовый нитроускоритель
07FF: set_car 0@ hydraulics 1 // установить гидравлику
0216: enable_taxi 0@ light 1 // включает или выключает значок "Такси" на машине ( только для машин такси )
0572: enable_taxi_nitros 1 // опкод включает нитро во всех такси
Есть ещё проверка "Машина имеет гидравлику?":
0803: car 0@ have_hydraulics
Одпокы для работы с покраской:
06ED: set_car 0@ paintjob 2
0988: get_car 0@ paintjob 1@
Опкод установит/получит тачке необходимую покраску ( они ещё называются винилы ).
Здесь: 0@ - машина 2 - номер винила. Диапазон винил: от 0 до 2. Если поставить число больше или меньше, то покраска не поставится. Тоже самое касается автомобилей, которые не поддерживают перекраски винил 1@ - в эту переменную будет занесен номер текущей покраски опкодоа 06ED
Опкоды, для работы с цветом машины:
0229: set_car 0@ primary_color_to 11 secondary_color_to 0 // задать основные цвета
03F3: get_car 0@ primary_color_to 1@ secondary_color_to 2@ // получить основные цвета
Так же существуют и такие странные опкоды:
0A11: set_car 0@ tertiary_color_to 11 quaternary_color_to 0 // задать вторичные цвета
0A12: get_car 0@ tertiary_color_to 1@ quaternary_color_to 2@ // получить вторичные цвета
Это как бы 3-й и 4-й цвет ( используется не некоторых автомобилях ). Также мы можем задать номерной знак автомобилю опкодом:
0674: set_car_model #ELEGY numberplate "AA_TELL"
Здесь: #ELEGY - модель транспорта. Использовать опкод нужно перед созданием машины "AA_TELL" - текст номерного знака. Не всегда работает и обычно меняются только задние номера
Ну и напоследок давайте прокачаем наш ELEGY:
{$CLEO}
0000:
:1
thread '1'
wait 0
06E9: load_car_component #rbmp_c_l
06E9: load_car_component #spl_a_l_b
model.Load(#ELEGY)
038B: load_requested_models
:1_1
wait 0
if AND
06EA: car_component #rbmp_c_l available
06EA: car_component #spl_a_l_b available
model.Available(#ELEGY)
jf @1_1
0@ = car.Create(#ELEGY, 2493.1716, -1667.1075, 12.3437)
car.Angle(0@) = 178.0475
model.Destroy(#ELEGY)
06E7: 1@ = add_car_component #rbmp_c_l to_car 0@
06E7: 2@ = add_car_component #spl_a_l_b to_car 0@
06EB: release_car_component #rbmp_c_l
06EB: release_car_component #spl_a_l_b
09E9: car 0@ add_single_nitro
07FF: set_car 0@ hydraulics 1
06ED: set_car 0@ paintjob 1
0A93: end_custom_thread
Результат:
На этом урок окончен. =)|2567|1|0|56885858png
500300
400240``\|90309845
png500
300400
240``||tjuning_transporta_rabota_s_komponentami|1499755417
Last updated
Was this helpful?