Перейдём к командам.
020C: create_explosion_with_radius 7 at 1024.0 768.0 16.0 - создаёт взрыв радиусом 7 в за-
данных координатах,если сделаете большой радиус(начиная от 15 или 20),то взрыва вообще не
произойдёт.
014E: set_timer_to $Timer type 1 // устанавливает таймеру тип:
0 - при бавление по секунде единицы,
1 - отнимание по секунде единицы.
048B: unknown_car $Car timer $Timer - устанавливает на машину таймер
03C3: set_timer_with_text_to $Timer type 1 text 'BB_19' - запускает таймер
014F: stop_timer $Timer // останавливает таймер
Вот вам пример:
По истечению времени к деньгам игрока прибавится миллион:
create_thread @TimerOnly // создаём поток
:TimerOnly // начинаем поток
wait 0 // ждём 0 мс,если не напишем,то вылетит
$Time = 100000 // устанавливаем начальное время таймера
014E: set_timer_to $Time type 1 // устанавливаем тип таймера на "убывающий"
:TimerOnly_2 // создаём второй label нашего потока
wait 0 // ждём о мс (на всякий случай)
if // пишем обыкновенное одиночное условие
$Time < 1 // если время таймера меньше 1
jf @TimerOnly_2 // если время ещё больше,чем один,то переходим на начало
Player.Money($PLAYER_CHAR) += 1000000 // а если всё таки меньше,то прибавляем игроку
// деньги в размере 1000000 $
end_thread // и заканчиваем наш поток
$Model = car.Model($Car) - присваивание переменной $Model названия модели машины $Car
car.Id($Car) == #DOZER - поверка,явл. ли модель машины $Car равной #DOZER
00C0: set_current_time 18 0 - устанавливает игровое время на 18:00
015D: set_gamespeed 1.0 - не менее полезная команда,которая устанавливает скорость игры.
Вот пример:
create_thread @Prosto // создаём поток с именем Prosto
:Prosto // начинаем поток
wait 10 // ждём 10 мс,чтобы не вылетило
015D: set_gamespeed 1.0 // устанавливаем скорость на нормальную
if and // условие с выполнением всех подусловий(проверок)
player.Defined($PLAYER_CHAR) // проверка(игрок существует),на всякий случай
not actor.Driving($PLAYER_ACTOR) // проверка(игрок не за рулём)
82D8: not actor $PLAYER_ACTOR currentweapon == 34 // у актёра в руках не снайперка
82D8: not actor $PLAYER_ACTOR currentweapon == 35 // у актёра в руках не базука(1)
82D8: not actor $PLAYER_ACTOR currentweapon == 36 // у актёра в руках не базука(2)
jf @Prosto // если чего-нибудь не выполнилось,то переходим на начало
:Prosto_2 // создаём второй label
wait 10 // ждём 10 мс,на всякий случай
if // обыкновенное условие
00E1: key_pressed 0 6 // проверка(нажата клавиша "Прицел")
jf @Prosto // если это не правда,то перех. на начало,и там скорость становится обыкновенной
015D: set_gamespeed 0.25 // устанавливаем меньшую скорость игры
jump @Prosto_2 // и прыгаем в начало этого же label'a
wait 1000 - задержка выполнения потока на 1000 миллисекунд ( = 1 секунда )
thread 'Alex' - присваивает потоку имя(для удобства после декомпиляции),имя не может привы-
шать 7 букв,пишется сразу после начала потока
end_thread - заканчивает поток
jump@"Туда надо перейти" - переводит выполнение скрипта на label с именем "Туда надо перейти"
Чтобы заставить к-л актёра выполнять к-л действия последовательно используем это выражение:
0615: define_action_sequences 15@ // начало последовательности
05D3: AS_actor -1 go_to 2494.4622 -1680.92 13.3385 speed 4 3000 ms // действие послед-ти
05BC: AS_actor -1 jump 0 // действие послед-ти
0616: define_action_sequences_end 15@ // завершение последовательности
0618: assign_actor $Player_actor to_action_sequences 15@ // заставляет актёра $Player_actor
// делать действия послед-ти,заметьте,что в последовательности,действия применяются к актё-
// ру с именем -1 !!!
061B: remove_references_to_action_sequences 15@ // удаляем сведения о последовательности
Пинцип: Актёр идёт к точке,когда он там,то он прыгает.Если бы мы написали это без последо-
вательности,то актёр бы выполнил сразу последнее действие
Есть ещё такая замороченная вещь,как путь или scmpath,кто его как называет,это типа преды-
дущей последовательности,применяется,чтобы заставить актёра или машину пройтись/проехаться
по точкам с заданными координатами.Вот то,что относится к путям:
07C0: load_path 706 - загружает путь,их очень много,сами видите
05D6: clear_scmpath - очищает временный путь,если он существует
05D7: add_point_to_scmpath 2470.1248 -1661.6222 13.3293 - добаваляет точку в путь
05D8: AS_assign_scmpath to_actor $Act flags 4 0 - заставляет актёра следовать по пути
05EB: assign_vehicle $Car to_path 706 - заставляет машину следовать по определённому пути
04E0: car $Car abandon_path_radius 30 - будет считаться,что машина на точке,если она в ра-
диусе 30 от неё
0873: release_path 211 - удаляет путь из памяти
Вот вам пример,думаю,что поймёте:
create_thread @Test // создаём поток
:Test // начинаем поток
wait 2000 // ждём 2 сек
model.Load(#FAM1) // объявляем,нужную нам, модель
038B: load_requested_models // загружаем ранее обявленые модели
:Test2 // начинаем второй label этого потока
wait 0 // ждём 0 сек,если не напишем,то может вылетить
if // одиночное условие
model.Available(#FAM1) // проверка(модель нашего актёра уже загружена)
jf @Test2 // если проверка не выполнилась,то переходим в начало label'a
wait 3000 // ждём 3 сек.
actor.Create(50@,4,#fam1,2494.9099, -1682.17, 12.32) // создаём актёра перед домом CJ'я
05D6: clear_scmpath // очищаем путь,если создаёте новый,как сейчас,то писать необходимо
05D7: add_point_to_scmpath 2470.1248 -1661.6222 13.3293 // задаём точку(дом OG)
05D7: add_point_to_scmpath 2494.9099 -1682.17 12.32 // задаём точку (дом CJ'я)
05D7: add_point_to_scmpath 2470.1248 -1661.6222 13.3293 задаём точку(дом OG)
05D8: AS_assign_scmpath to_actor 50@ flags 4 0 // и вот этой командой заставляем актёра
end_thread // заканчиваем поток // идти по точкам,которые мы написали.
06C8: toggle_riot 1 - очень интерестная команда,она включает мочилову в Лос-Сантосе,такую,
как перед последней миссией : дома дымятся,пешеходы мочят всех подрят,тачки взрываются...
057E: make_radar_grey 1 - делает радар серым,т.е. на нём не видно ничего,кроме иконок.
0581: toggle_radar 1 - включает радар,если 0,то выключает.
0826: toggle_hud 1 - включает панель оружия,жизни... , если 0,то выключает.
075B: (unknown) 0 - увеличение радара (от 1 до 100)
0A1E: dump_screen 1 - делает скриншот
04FA: reset_interior_colors 1 - освежает интерьер с номером 1
07D0: $WEEKDAY = weekday - записывает в переменную рабочий день.
02D0: fire $Fire extinguished - проверка на потушенность определённого огня.
03DE: set_pedestrians_density_multiplier_to 0.0 - устанавливает частоту появмашин.
0425: $Var meters = $Var feet - переводит метры в шаги,а может даже не метры,а футы.
051E: $Radio = get_current_radio_station - записывает номер текущей радиостанции.
08DD: keep_stuff_after_wasted 0 - даёт возможность оставлять оружее после того,как игрока убили
08DE: keep_stuff_after_busted 0 - оставляет оружее после того,как Карла арестовали
08DF: override_restart_if_wasted_at -2570.5 1139.5 54.85 within_radius 1500.0 angle 160.0 - устанавливает
точку появляения игрока,после того как его убили в опред. месте.
08E0: override_restart_if_busted_at -1379.843 2635.74 54.4315 within_radius 1500.0 angle 170.6 - устанав-
ливает точку появления игрока после того,как его арестовали в опред. месте.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ну вот и всё,на этом я хочу закончить третью часть моего мануала,надеюсь,что Вам она понравилась,и что Вы нашли в ней для себя хоть чуть-чуть нового материла.
Заходите на наш форум http://GTAmaps.net/forum и http://Missions.GTAmaps.net, мы всегда будем рады Вам помочь,по важным вопросам обращаться на форум http://www.SannyBuilder.com .
Самый последний билд моего мануала будет всегда лежать на моей страничке :
http://www.Alexander.SannyBuilder.com .
Если Вам что-то надо будет от меня,то мои данные на страничке "О справочнике" .
Извините,но на этом всё .
С наилучшими пожеланиями Александр Корякин