Я не буду тут рассказывать,
что такое опкоды или переменные, или как компилировать скрипт, для этих
дурацких вопросов в Sanny Builder'e есть помощь, вызываемая по нажатию
на F12. Сегодня я опишу несколько опкодов для создания транспорта и их
использование. Создание транспортных средств - очень частая задача в
скриптинге. Начну с припаркованных машин:
014B:
$PARKED_BULLET = init_parked_car_generator #BULLET color -1 -1 1 alarm
0 door_lock 0 0 10000 at 2435.302 -1671.848 12.8007 angle 90.0
Этим опкодом создается генератор припаркованной машины. $PARKED_BULLET
- имя генератора, #BULLET - модель машины (загружать заранее НЕ надо),
color -1 -1 это цвет, цвета ниже, -1 -1 значит что цвет сам
сгенерируется игрой рандомно. alarm 0 это вероятность наличия в машине
сигнализации в процентах от 0 до 100, door_lock 0 0 отвечает за замки
на дверях. Тут первое число - вероятность запертости машины (опять в
процентах), а второе - реакция ментов на угон машины, 0 - вам дадут
звездочку, 1 - они не заметят угона. 10000 я не знаю что это такое, at
2435.302 -1671.848 12.8007 это собственно и есть координаты, в которых
создастся машина. angle 90.0 это, понятное дело, угол поворота в
градусах (0.0 - 360.0)
Но если вы просто напишете этот опкод, то
игра вылетит. Чтобы все было как надо, генератор надо еще и
активировать, вот этим опкодом
014C: set_parked_car_generator $PARKED_BULLET cars_to_generate_to 101
Тут $PARKED_BULLET - имя генератора, а 101 - вероятность появления машины (0 - никогда, 101 - всегда)
вот еще опкод с паркованными машинами, но я не тестировал:
09E2:
$PARKED_IMPEXPM_CARS[0] = parked_car_generator_w_numberplate #EUROS -1
-1 0 alarm 50 door_lock 0 0 10000 plate "IMPEXP__" at 0.0 0.0 0.0 angle
180.0
Поидее должен создать машину с номерным знаком "IMPEXP__", но я не тестировал
Чтобы создать не паркованую машину, а просто машину, используют эти опкоды
Car.Create(1@, #BULLET, X, Y, Z)
Создает машину 1@ в координатах X Y Z, модель надо загрузить, см ниже
Car.Angle(1@) = 180.0
устанавливает угол поворота, как на припаркованной машине
0229: set_car 1@ primary_color_to 11 secondary_color_to 0
ставит машине главный и второстепенный цвет
Car.RemoveReferences(1@)
полезный опкод, вычищает из памяти все сведения о машине 1@, превращая ее в простую случайную машину. после этого с ней нельзя
будет ничего делать. Вычищать память надо обязательно, иначе она кончится)))
Теперь о загрузке модели.
в целом создание машины с загрузкой модели выглядит так:
:vdriver // 1я метка
wait 0 // надо обязательно после начала метки нулевую задержку
model.load(#модель) //объявляем модель для загрузки.
038B: load_requested_models //этой командой и загружаются модели #модель
:vdriver2 // вторая метка
wait 0 // опять задержка 0
if //условие
model.Available(#модель) //собсна проверяем модель на доступность, чтобы не вылетело если она недоступна
jf @vdriver2 // иначе(если модель еще не загрузилась)перейти в начало метки
Car.Create(1@, #BULLET, X, Y, Z) // вот теперь можно создать машину
Car.Angle(1@) = 180.0 //ставим угол
0229: set_car 1@ primary_color_to 11 secondary_color_to 0 // ставим цвета
<делаем с машиной что нам надо>
<если она нам больше не нужна то>
Car.RemoveReferences(1@) // удаляем сведения о машине из памяти
Вот и всё.