Рейтинг - 5.0 (1)

Этот урок будет посвящен тюннингу, используя скриптинг.

Одним из главных нововведений в ГТА стал тюнинг транспорта. В первую очередь обращаю Ваше внимание на том, что не все автомобили могут быть тюнингированы и, к тому-же, некоторый тюнинг доступный только конкретной машине. Спойлер, колёса, бампера и т.п являются компонентами автомобиля. Количество таких компонентов зависит от автомобиля, что "прокачивается". В этом уроке мы попробуем тюнингировать #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Передний бампер ( forward bumper )
ntoНитро ( nitro )
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

Результат:

На этом урок окончен. =)


Теги: car component, Тюнинг транспорта, компоненты транспорта

Yurko_UA   (08.09.12 09:29)
А как открывать двери, капот и т.д. как в скриптах кенкинга?

wmysterio   (08.09.12 20:31)
Смотри Работа с частями автомобиля. Компоненты автомобиля не относятся к компонентам тюнинга

Cool_T   (31.03.14 10:52)
А когда номерной знак меняешь хоть что можно писать?

wmysterio   (31.03.14 11:09)
Любые символы английского алфавита и цифры, символ _. Общая длина 7 символов(возможно 8, не помню точно в этот момент)
Вход на сайт

Поиск
Категории раздела
Мини-чат
Пожалуйста, все вопросы по скриптингу задавать на форуме!
Наш опрос
Какие GTA вы прошли ( сюжетная линия )?
Всего ответов: 8
Активность на сайте
Пожертвования
Кошельки WebMoney:
U859420971000
R407741810602
Z331072372430
E314272616890
Друзья сайта
Полезные ресурсы
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили:
wmysterio, DK22Pac
Реклама