Рейтинг - 4.0 (4)

Мы продолжаем изучать скриптинг. Этот урок посвящен анимациям. Мы научимся основным командам для проигрывания анимаций а так-же сделаем третью миссию с использованием анимацией.

Если вы не читали урок о GTA Animation Manager, то советую прочитать руководство к этой программе.

Для начала научимся загружать анимации. Сделать это можно командой:

04ED: load_animation "LOWRIDER"
Здесь:
"LOWRIDER" — название ifp-файла ( см. рисунок ниже )

После этого нам обязательно нужно проверить: "загружена ли она?". Эта проверка осуществляется опкодом:

04EE: animation "LOWRIDER" loaded

После загрузки можно использовать анимации, что содержаться в ifp-файлах ( см. рисунок ниже ):

Теперь, что бы какой то актёр проиграл эту анимацию, нужно использовать опкод:

0605: actor 0@ perform_animation "M_SMKLEAN_LOOP" IFP "LOWRIDER" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 670
Здесь:
0@ — Имя переменной для актёра
"prtial_gngtlkB" — название анимации
"LOWRIDER" — название IFP-файла
4.0 и 0 0 0 0 — оставляйте так, далее мы детально изучим эти параметры
670 — время воспроизведения. Если поставить больше, то анимация будет повторяться. Длина любой анимации на рисунку выше выделено зелёным цветом

Если мы загрузили анимацию, то естественно нам её нужно выгрузить с памяти когда она не нужна. Делается это опкодом:

04EF: release_animation "LOWRIDER"

Рассмотрим анимации, которые НЕ нужно загружать и НЕ нужно выгружать. Это анимации "PED.IFP", так как она загружается вместе с игрой и постоянно используется:

Рассмотрим другую анимацию - анимация телефона ( когда СЖ достаёт или прячет телефон ). Что бы актёр доставал телефон, используйте опкод:

0729: AS_actor $PLAYER_ACTOR hold_cellphone 1
Здесь:
$PLAYER_ACTOR - имя переменной актёра
1 - достать телефон, 0 - спрятать

После этого опкода обычно делают задержку в 2000 милисекунд, чтобы актёр окончательно взял телефон и приложил его к уху, или спрятал его в карман.

Так же актёра можно заставить говорить:

0967: actor 0@ move_mouth 4000 ms
Здесь:
0@ - хендл актёра
4000 - время, сколько нужно шевелить губами

И опкод, который заставляет прекратить актёра шевелить губами:

0968: actor 0@ stop_mouth

Есть ещё похожий опкод, который заставляет актёра шевелить губами, но это имеет вид больше жевания, нежели разговора:

05BA: AS_actor 2@ move_mouth 4000 ms

Так же актёров можно заставить сидеть. Делается это опкодом:

06B0: AS_actor 41@ sit_down 4000 ms
Здесь:
41@ - имя переменной для актёра
4000 - указывается время, то есть сколько времени должен сидеть актёр

Так же актёра можно заставить прыгать:

05BC: AS_actor 1@ jump 1
Здесь:
1@ - имя переменной для актёра
1 - стиль прыжка. Так и оставляйте единицу, так как разницы между стилями не заметил

Что бы заставить актёра присесть, используйте опкод:

04EB: AS_actor 65@ crouch 1
Здесь:
65@ - имя переменной для актёра
1 - заставляет актёра присесть, если поставить 0 - то заставляет актёра встать

Существует ещё проверка на приседание актёра:

0597: actor $PLAYER_ACTOR crouching

Так же есть полезная проверка на выполнение актёром какой-то анимации:

0611: actor 2@ performing_animation "LRGIRL_IDLE_TO_L0"
Здесь:
2@ - хэндл актёра
"LRGIRL_IDLE_TO_L0" - имя анимации ( не IFP )

Вот мы рассмотрели основные команды для работы с анимациями. Давайте теперь напишем миссию и сделаем ролик, в котором СЖ-ю звонят, он берет трубку и ему сообщают, что возле Гроув есть Баллас и его нужно убить:

// WMYSTERIO, ru-script.3dn.ru

DEFINE OBJECTS 1
DEFINE OBJECT SANNY BUILDER 3.04 

DEFINE MISSIONS 3
DEFINE MISSION 0 AT @MISSION_0 // 1 
DEFINE MISSION 1 AT @MISSION_1 // 2
DEFINE MISSION 2 AT @MISSION_2 // 3 -- наш новый скрипт
 
DEFINE EXTERNAL_SCRIPTS 0

DEFINE UNKNOWN_EMPTY_SEGMENT 0

DEFINE UNKNOWN_THREADS_MEMORY 3072

{$VERSION 3.1.0027}

//-------------MAIN---------------
thread 'MAIN'
set_wb_check_to 0
set_weather 0
select_interior 0
fade 0 0
0180: set_on_mission_flag_to $ONMISSION
00C0: set_current_time_hours_to 8 minutes_to 0
04E4: unknown_refresh_game_renderer_at 2491.1572 -1670.3434
Camera.SetAtPos(2491.1572, -1670.3434, 12.3359)
$PLAYER_CHAR = Player.Create(#NULL, 2491.1572, -1670.3434, 12.3359)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
Actor.Angle($PLAYER_ACTOR) = 66.3548
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group
Camera.SetBehindPlayer
Player.SetClothes($PLAYER_CHAR, "WORKTRCAMOGRN", "WORKTR", 2)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCGANG", "SNEAKER", 3)
Player.SetClothes($PLAYER_CHAR, "TSHIRTERISORN", "TSHIRT", 0) 
Player.Build($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
$TRAMPLIN = object.Create(#AD_JUMP, 2480.5842, -1721.8175, 12.5488)
object.Angle($TRAMPLIN) = 180.0
object.SetImmunities($TRAMPLIN, 1, 1, 1, 1, 1)
Object.Indestructibility($TRAMPLIN) = False
Object.RemoveFromMissionCleanupList($TRAMPLIN)
0879: enable_gang_wars 1
076C: set_zone 'GAN1' gang 1 density_to 40 
076C: set_zone 'GAN2' gang 1 density_to 80 
076C: set_zone 'IWD1' gang 0 density_to 40 
076C: set_zone 'IWD2' gang 0 density_to 80 
076C: set_zone 'IWD3A' gang 2 density_to 40 
076C: set_zone 'IWD3B' gang 2 density_to 80 
0237: set_gang 0 weapons_to 22 31 14 
0237: set_gang 1 weapons_to 30 28 17 
0237: set_gang 2 weapons_to 36 15 27 
0746: set_acquaintance 4 of_actors_pedtype 7 to_actors_pedtype 6
0746: set_acquaintance 4 of_actors_pedtype 8 to_actors_pedtype 6
0746: set_acquaintance 4 of_actors_pedtype 9 to_actors_pedtype 6
0746: set_acquaintance 4 of_actors_pedtype 6 to_actors_pedtype 7
0746: set_acquaintance 4 of_actors_pedtype 6 to_actors_pedtype 8
0746: set_acquaintance 4 of_actors_pedtype 6 to_actors_pedtype 9
0746: set_acquaintance 4 of_actors_pedtype 7 to_actors_pedtype 8
0746: set_acquaintance 4 of_actors_pedtype 7 to_actors_pedtype 9
0746: set_acquaintance 4 of_actors_pedtype 8 to_actors_pedtype 7
0746: set_acquaintance 4 of_actors_pedtype 8 to_actors_pedtype 9
0746: set_acquaintance 4 of_actors_pedtype 9 to_actors_pedtype 7
0746: set_acquaintance 4 of_actors_pedtype 9 to_actors_pedtype 8
0746: set_acquaintance 4 of_actors_pedtype 7 to_actors_pedtype 0
0746: set_acquaintance 0 of_actors_pedtype 8 to_actors_pedtype 0
0746: set_acquaintance 4 of_actors_pedtype 9 to_actors_pedtype 0
0767: set_zone 'MARKST' popcycle_group_for_peds_and_cars_to 14
0767: set_zone 'UNITY' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'LAIR1' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'LAIR2A' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'LAIR2B' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'LBAG1' popcycle_group_for_peds_and_cars_to 19 
0767: set_zone 'LBAG2' popcycle_group_for_peds_and_cars_to 19 
0767: set_zone 'LBAG3' popcycle_group_for_peds_and_cars_to 19 
0767: set_zone 'BLUF1A' popcycle_group_for_peds_and_cars_to 10 
0767: set_zone 'BLUF2' popcycle_group_for_peds_and_cars_to 10 
0767: set_zone 'SUN1' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'SUN1' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'SUN3A' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'SUN3B' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'SUN3C' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'SUN4' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'COM1A' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'COM1B' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'COM2' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'COM3' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'COM4' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'PER1' popcycle_group_for_peds_and_cars_to 9
0767: set_zone 'CHC1A' popcycle_group_for_peds_and_cars_to 6 
0767: set_zone 'CHC1B' popcycle_group_for_peds_and_cars_to 6 
0767: set_zone 'CHC2A' popcycle_group_for_peds_and_cars_to 6 
0767: set_zone 'CHC2B' popcycle_group_for_peds_and_cars_to 6 
0767: set_zone 'CHC3' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'CHC4A' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'CHC4B' popcycle_group_for_peds_and_cars_to 7 
0874: set_zone 'CHC1A' popcycle_group_for_peds_to 9 
0874: set_zone 'CHC1B' popcycle_group_for_peds_to 9 
0874: set_zone 'CHC2A' popcycle_group_for_peds_to 9 
0874: set_zone 'CHC2B' popcycle_group_for_peds_to 9 
0874: set_zone 'CHC3' popcycle_group_for_peds_to 9 
0874: set_zone 'CHC4A' popcycle_group_for_peds_to 9 
0874: set_zone 'CHC4B' popcycle_group_for_peds_to 9 
0767: set_zone 'CONF1A' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'CONF1B' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'THALL1' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'LDOC1A' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LDOC1B' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LDOC2' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LDOC3A' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LDOC3B' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LDOC3C' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LDOC4' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LDT1A' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'LDT1B' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'LDT1C' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'LDT3' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'LDT4' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'LDT5' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'LDT6' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'LDT7' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'EBE1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'EBE2A' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'EBE2B' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'EBE3C' popcycle_group_for_peds_and_cars_to 8 
0767: set_zone 'ELCO1' popcycle_group_for_peds_and_cars_to 6 
0767: set_zone 'ELCO2' popcycle_group_for_peds_and_cars_to 7 
0874: set_zone 'ELCO1' popcycle_group_for_peds_to 9 
0874: set_zone 'ELCO2' popcycle_group_for_peds_to 9 
0767: set_zone 'GAN1' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'GAN2' popcycle_group_for_peds_and_cars_to 7 
0874: set_zone 'GAN1' popcycle_group_for_peds_to 1 
0874: set_zone 'GAN2' popcycle_group_for_peds_to 1 
0767: set_zone 'GLN1' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'GLN2A' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'LIND1A' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'LIND1B' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LIND2A' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LIND2B' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LIND3' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'IWD1' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'IWD2' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'IWD3A' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'IWD3B' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'IWD4' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'IWD5' popcycle_group_for_peds_and_cars_to 7 
0874: set_zone 'IWD1' popcycle_group_for_peds_to 1 
0874: set_zone 'IWD2' popcycle_group_for_peds_to 1 
0874: set_zone 'IWD3A' popcycle_group_for_peds_to 1 
0874: set_zone 'IWD3B' popcycle_group_for_peds_to 1 
0874: set_zone 'IWD4' popcycle_group_for_peds_to 1 
0874: set_zone 'IWD5' popcycle_group_for_peds_to 1 
0767: set_zone 'JEF1A' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JEF1B' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JEF2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JEF3A' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JEF3B' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JEF3C' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'LFL1A' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'LFL1B' popcycle_group_for_peds_and_cars_to 7 
0874: set_zone 'LFL1A' popcycle_group_for_peds_to 9 
0874: set_zone 'LFL1B' popcycle_group_for_peds_to 9 
0767: set_zone 'LMEX1A' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'LMEX1B' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'ELS1A' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'ELS1B' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'ELS2' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'ELS3A' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'ELS3B' popcycle_group_for_peds_and_cars_to 7 
0767: set_zone 'ELS4' popcycle_group_for_peds_and_cars_to 7 
0874: set_zone 'ELS1A' popcycle_group_for_peds_to 10 
0874: set_zone 'ELS1B' popcycle_group_for_peds_to 10 
0874: set_zone 'ELS2' popcycle_group_for_peds_to 10 
0874: set_zone 'ELS3A' popcycle_group_for_peds_to 10 
0874: set_zone 'ELS3B' popcycle_group_for_peds_to 10 
0874: set_zone 'ELS4' popcycle_group_for_peds_to 10 
0767: set_zone 'MAR1' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'MAR2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'MAR3' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'MKT1' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'MKT2' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'MKT3' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'MKT4' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'MUL1A' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'MUL1B' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'MUL1C' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'MUL2A' popcycle_group_for_peds_and_cars_to 10 
0767: set_zone 'MUL2B' popcycle_group_for_peds_and_cars_to 10 
0767: set_zone 'MUL3' popcycle_group_for_peds_and_cars_to 10 
0767: set_zone 'MUL4' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'MUL5A' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'MUL5B' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'MUL5C' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'MUL6' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'MUL7A' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'MUL7B' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'PLS' popcycle_group_for_peds_and_cars_to 8
0767: set_zone 'RIH1A' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'RIH1B' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'RIH2' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'RIH3A' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'RIH3B' popcycle_group_for_peds_and_cars_to 15 
0767: set_zone 'RIH4' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'RIH5A' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'RIH6B' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'RIH5A' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'RIH6B' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'ROD1A' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'ROD1B' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'ROD1C' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'ROD2A' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'ROD2B' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'ROD3A' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'ROD3B' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'ROD4A' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'ROD4B' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'ROD4C' popcycle_group_for_peds_and_cars_to 14 
0767: set_zone 'ROD5A' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'ROD5B' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'SMB1' popcycle_group_for_peds_and_cars_to 8 
0767: set_zone 'SMB2' popcycle_group_for_peds_and_cars_to 8 
0767: set_zone 'VIN2' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'VIN3' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'VIN1A' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'VIN1B' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'VERO1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'VERO2' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'VERO3' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'VERO4A' popcycle_group_for_peds_and_cars_to 8 
0767: set_zone 'VERO4B' popcycle_group_for_peds_and_cars_to 8 
0767: set_zone 'CRANB' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'CALT' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'SUNMA' popcycle_group_for_peds_and_cars_to 4
0767: set_zone 'SUNNN' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'BATTP' popcycle_group_for_peds_and_cars_to 2
0767: set_zone 'ESPN1' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'ESPN2' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'ESPN3' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'BAYV' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'PARA' popcycle_group_for_peds_and_cars_to 4
0767: set_zone 'JUNIHO' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'JUNIHI' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'CIVI' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'CHINA' popcycle_group_for_peds_and_cars_to 9
0874: set_zone 'CHINA' popcycle_group_for_peds_to 6
0767: set_zone 'SFDWT1' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'SFDWT2' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'SFDWT3' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'SFDWT4' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'SFDWT5' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'SFDWT6' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'FINA' popcycle_group_for_peds_and_cars_to 0
0767: set_zone 'CITYS' popcycle_group_for_peds_and_cars_to 0
0767: set_zone 'WESTP1' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'WESTP2' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'WESTP3' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'THEA1' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'THEA2' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'THEA3' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'GARC' popcycle_group_for_peds_and_cars_to 7
0767: set_zone 'HASH' popcycle_group_for_peds_and_cars_to 6
0767: set_zone 'OCEAF1' popcycle_group_for_peds_and_cars_to 8 
0767: set_zone 'OCEAF2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'OCEAF3' popcycle_group_for_peds_and_cars_to 8 
0767: set_zone 'DOH1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'DOH2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'CUNTC1' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'CUNTC2' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'CUNTC3' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'SFGLF1' popcycle_group_for_peds_and_cars_to 17 
0767: set_zone 'SFGLF2' popcycle_group_for_peds_and_cars_to 17 
0767: set_zone 'SFGLF3' popcycle_group_for_peds_and_cars_to 17 
0767: set_zone 'SFGLF4' popcycle_group_for_peds_and_cars_to 17 
0767: set_zone 'HILLP' popcycle_group_for_peds_and_cars_to 10
0767: set_zone 'SILLY1' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'SILLY2' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'SILLY3' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'SILLY4' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'SFAIR1' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'SFAIR2' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'SFAIR3' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'SFAIR4' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'SFAIR5' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'SFBAG1' popcycle_group_for_peds_and_cars_to 19 
0767: set_zone 'SFBAG2' popcycle_group_for_peds_and_cars_to 19 
0767: set_zone 'SFBAG3' popcycle_group_for_peds_and_cars_to 19 
0767: set_zone 'EASB1' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'EASB2' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'ESPE1' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'ESPE2' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'ESPE3' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'LINDEN' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'YELLOW' popcycle_group_for_peds_and_cars_to 4
0767: set_zone 'BFC1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'BFC2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'RIE' popcycle_group_for_peds_and_cars_to 0
0767: set_zone 'LDM' popcycle_group_for_peds_and_cars_to 6
0767: set_zone 'RSW1' popcycle_group_for_peds_and_cars_to 6 
0767: set_zone 'RSW2' popcycle_group_for_peds_and_cars_to 6 
0767: set_zone 'RSE' popcycle_group_for_peds_and_cars_to 6
0767: set_zone 'LDS' popcycle_group_for_peds_and_cars_to 11
0767: set_zone 'SRY' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'JTS1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTS2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'LVA1' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LVA2' popcycle_group_for_peds_and_cars_to 18 
0767: set_zone 'LVA3' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'LVA4' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'VAIR1' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'VAIR2' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'VAIR3' popcycle_group_for_peds_and_cars_to 16 
0767: set_zone 'LVBAG' popcycle_group_for_peds_and_cars_to 19 
0767: set_zone 'GGC1' popcycle_group_for_peds_and_cars_to 10 
0767: set_zone 'GGC2' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'BFLD1' popcycle_group_for_peds_and_cars_to 10 
0767: set_zone 'BFLD2' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'WWE' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'WWE1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'PINT' popcycle_group_for_peds_and_cars_to 5
0767: set_zone 'YBELL2' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'YBELL1' popcycle_group_for_peds_and_cars_to 17 
0767: set_zone 'JTW1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTW2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTN1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTN2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTN3' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTN4' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTN5' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTN6' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTN7' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTN8' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTE1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTE2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTE3' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'JTE4' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'HGP' popcycle_group_for_peds_and_cars_to 4
0767: set_zone 'SPIN' popcycle_group_for_peds_and_cars_to 11
0767: set_zone 'BINT1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'BINT2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'BINT3' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'BINT4' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'PRP1' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'PRP2' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'PRP3' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'PRP4' popcycle_group_for_peds_and_cars_to 4 
0767: set_zone 'REDE1' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'REDE2' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'REDE3' popcycle_group_for_peds_and_cars_to 2 
0767: set_zone 'REDW1' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'REDW2' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'REDW3' popcycle_group_for_peds_and_cars_to 11 
0767: set_zone 'REDW4' popcycle_group_for_peds_and_cars_to 5 
0767: set_zone 'ROCE1' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'ROCE2' popcycle_group_for_peds_and_cars_to 0 
0767: set_zone 'OVS' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'CREE' popcycle_group_for_peds_and_cars_to 9
0767: set_zone 'STRIP1' popcycle_group_for_peds_and_cars_to 12 
0767: set_zone 'STRIP2' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'STRIP3' popcycle_group_for_peds_and_cars_to 12 
0767: set_zone 'STRIP4' popcycle_group_for_peds_and_cars_to 12 
0767: set_zone 'PILL1' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'PILL2' popcycle_group_for_peds_and_cars_to 9 
0767: set_zone 'RING' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'ISLE' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'STAR1' popcycle_group_for_peds_and_cars_to 12 
0767: set_zone 'STAR2' popcycle_group_for_peds_and_cars_to 12 
0767: set_zone 'ROY' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'CAM' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'LOT' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'PIRA' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'VISA1' popcycle_group_for_peds_and_cars_to 12 
0767: set_zone 'VISA2' popcycle_group_for_peds_and_cars_to 12 
0767: set_zone 'CALI1' popcycle_group_for_peds_and_cars_to 12 
0767: set_zone 'CALI2' popcycle_group_for_peds_and_cars_to 12 
0767: set_zone 'DRAG' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'PINK' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'HIGH' popcycle_group_for_peds_and_cars_to 12
0767: set_zone 'CONST1' popcycle_group_for_peds_and_cars_to 18 
0767: set_zone 'ANGPI' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'SHACA' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'BACKO' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'BEACO' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'FARM' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'PALO' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'MONT' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'MONT1' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'MTCHI1' popcycle_group_for_peds_and_cars_to 3 
0767: set_zone 'MTCHI2' popcycle_group_for_peds_and_cars_to 3 
0767: set_zone 'MTCHI3' popcycle_group_for_peds_and_cars_to 3 
0767: set_zone 'MTCHI4' popcycle_group_for_peds_and_cars_to 3 
0767: set_zone 'HBARNS' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'DILLI' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'TOPFA' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'BLUEB' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'BLUEB1' popcycle_group_for_peds_and_cars_to 3 
0767: set_zone 'PANOP' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'BLUAC' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'CREEK' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'CREEK1' popcycle_group_for_peds_and_cars_to 3 
0767: set_zone 'MAKO' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'TOPFA' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'FERN' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'NROCK' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'HANKY' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'LEAFY' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'RED' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'FLINTC' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'WHET' popcycle_group_for_peds_and_cars_to 3
0767: set_zone 'BIGE' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'ELQUE' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'BARRA' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'CARSO' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'PAYAS' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'PROBE' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'ELCA' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'FLINTR' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'ARCO' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'VALLE' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'FLINTI' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'MONINT' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'ROBINT' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'TOM' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'ALDEA' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'BRUJA' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'ROBAD' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'BONE' popcycle_group_for_peds_and_cars_to 1
0767: set_zone 'HAUL' popcycle_group_for_peds_and_cars_to 18
0767: set_zone 'QUARY' popcycle_group_for_peds_and_cars_to 18
0767: set_zone 'OCTAN' popcycle_group_for_peds_and_cars_to 18
0767: set_zone 'PALMS' popcycle_group_for_peds_and_cars_to 18
0767: set_zone 'EBAY' popcycle_group_for_peds_and_cars_to 18
0767: set_zone 'EBAY2' popcycle_group_for_peds_and_cars_to 18 
0767: set_zone 'DAM' popcycle_group_for_peds_and_cars_to 18
014B: $MY_CAR = init_parked_car_generator #BULLET color -1 -1 0 alarm 0 door_lock 0 1 10000 at 2474.2131 -1690.8783 12.1239 angle 180.0
014C: set_parked_car_generator $MY_CAR cars_to_generate_to 101
0213: $PICKUP_0001 = create_pickup #BODYARMOUR type 15 at 2491.0 -1685.8561 13.5107
032B: $PICKUP_0002 = create_weapon_pickup #MINIGUN group 15 ammo 60 at 2493.0 -1685.8561 13.5107 
02E1: $PICKUP_0003 = create_cash_pickup 500 at 2495.0 -1685.8561 13.5107 permanence_flag 1 
04A6: $PICKUP_0004 = create_asset_money_pickup_at 2497.0 -1685.8561 13.5107 money 10000 10000
016C: restart_if_wasted_at 2027.77 -1420.52 15.99 angle 137.0 town_number 0 
016C: restart_if_wasted_at 1180.85 -1325.57 12.58 angle 271.4 town_number 0
016D: restart_if_busted_at 1550.68 -1675.49 14.51 angle 90.0 town_number 0
016C: restart_if_wasted_at 1244.437 331.2261 18.5547 angle 7.5465 town_number 1
016D: restart_if_busted_at 632.2344 -571.7104 15.3515 angle 267.2 town_number 1
016C: restart_if_wasted_at -2199.719 -2308.075 29.6181 angle 322.8928 town_number 1
016D: restart_if_busted_at -2163.829 -2387.817 29.625 angle 134.2066 town_number 1
016C: restart_if_wasted_at -2670.285 616.4364 13.4531 angle 183.1042 town_number 1
016D: restart_if_busted_at -1605.792 716.8598 11.0241 angle 355.2978 town_number 1
016C: restart_if_wasted_at -316.3832 1056.045 18.7344 angle 1.6017 town_number 2
016D: restart_if_busted_at -212.1889 979.4168 18.3219 angle 278.0478 town_number 2
016C: restart_if_wasted_at -1514.823 2527.119 54.7443 angle 2.3546 town_number 2
016D: restart_if_busted_at -1393.072 2633.116 54.9491 angle 86.0424 town_number 2
016C: restart_if_wasted_at 1578.446 1770.682 9.8358 angle 99.7567 town_number 2
016D: restart_if_busted_at 2337.083 2453.802 13.9765 angle 90.7643 town_number 2
fade 1 0
create_thread @SAVE 
create_thread @STARTER
create_thread @STARTER_NEW
create_thread @STARTER_3 // наш новый код
end_thread 

:SAVE
thread 'SAVE'
wait 0
if AND
$ONMISSION == 0
0AB0: key_pressed 115
then
03D8: show_save_screen 
wait 250
end
jump @SAVE

:STARTER 
thread 'STARTER'
wait 0
$ICON = marker.CreateIconAndSphere(15, 2287.793, -1667.109, 15.0317)

:STARTER_1
wait 0
if AND
$ONMISSION == 0
00EC: actor $PLAYER_ACTOR 0 near_point 2287.793 -1667.109 radius 15.0317 3.0 
jf @STARTER_1
marker.Disable($ICON)
00BA: show_text_styled GXT 'MIS_01' time 1000 style 2 
start_mission 0
end_thread

:STARTER_NEW 
thread 'STARTER_NEW'
wait 0
$ICON_NEW = marker.CreateIconAndSphere(38, 2510.8367, -1672.7837, 12.442)

:STARTER_NEW_1
wait 0
if AND
$ONMISSION == 0
0102: actor $PLAYER_ACTOR in_sphere 2510.8367 -1672.7837 12.442 radius 2.0 2.0 2.0 sphere 0 stopped_on_foot 
jf @STARTER_NEW_1
if AND
8741: not actor $PLAYER_ACTOR busted 
not actor.Dead($PLAYER_ACTOR)
jf @STARTER_NEW_1
if
not actor.Driving($PLAYER_ACTOR)
jf @STARTER_NEW_1
marker.Disable($ICON_NEW)
00BA: show_text_styled GXT 'MIS_02' time 1000 style 2 
start_mission 1
end_thread

:STARTER_3 
thread 'STARTER_3'
wait 0
$ICON3 = marker.CreateIconAndSphere(28, 2486.7761, -1650.9607, 12.4845)

:STARTER_3_1
wait 0
if AND
$ONMISSION == 0
0102: actor $PLAYER_ACTOR in_sphere 2486.7761 -1650.9607 12.4845 radius 2.0 2.0 2.0 sphere 0 stopped_on_foot 
jf @STARTER_3_1
if AND
8741: not actor $PLAYER_ACTOR busted 
not actor.Dead($PLAYER_ACTOR)
jf @STARTER_3_1
if
not actor.Driving($PLAYER_ACTOR)
jf @STARTER_3_1
marker.Disable($ICON3)
player.CanMove($PLAYER_CHAR) = false
actor.SetImmunities($PLAYER_ACTOR, 1, 1, 1, 1, 1)
00BA: show_text_styled GXT 'MIS_03' time 1000 style 2 
fade 0 2000
wait 2000
start_mission 2
end_thread

//-------------Mission 0---------------
// Originally: MISSION_0

:MISSION_0
thread 'MISSION_0'
gosub @MISSION_0_29_57 
if 
wasted_or_busted 
jf @MISSION_0_29_46 
gosub @MISSION_0_29_144 

:MISSION_0_29_46
$ONMISSION = 0 
mission_cleanup 
end_thread 

:MISSION_0_29_57
increment_mission_attempts 
$ONMISSION = 1 
018A: 1@ = create_checkpoint_at 2184.3604 -1774.8608 12.3665
03BC: 2@ = create_sphere_at 2184.3604 -1774.8608 12.3665 radius 2.0 
00BB: show_text_lowpriority GXT 'MS_0101' time 3000 flag 1

:MISSION_0_A
wait 0
if
00EC: actor $PLAYER_ACTOR 0 near_point 2184.3604 -1774.8608 radius 12.3665 3.0
jf @MISSION_0_A
marker.Disable(1@)
03BD: destroy_sphere 2@ 
model.Load(#BARREL4)
038B: load_requested_models 

:MISSION_0_B
wait 0
if
model.Available(#BARREL4)
jf @MISSION_0_B
0@ = object.Create(#BARREL4, 2153.9919, -1796.8591, 12.5507)
object.Angle(0@) = 277.5201
model.Destroy(#BARREL4)
3@ = marker.CreateAboveObject(0@)
00BB: show_text_lowpriority GXT 'MS_0102' time 3000 flag 1

:MISSION_0_C
wait 0
if
0366: object 0@ damaged
jf @MISSION_0_C
0318: set_latest_mission_passed 'MIS_01' 
01E3: show_text_1number_styled GXT 'M_PASS' number 5000 time 4000 style 1 
Player.Money($PLAYER_CHAR) += 5000
play_music 1
gosub @MISSION_0_END
create_thread @STARTER
return 

:MISSION_0_29_144
wait 0 
gosub @MISSION_0_END
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1 
create_thread @STARTER
return

:MISSION_0_END
wait 0
if
03CA: object 0@ exists
then
object.RemoveReferences(0@)
object.Destroy(0@)
end 
marker.Disable(1@)
marker.Disable(3@)
03BD: destroy_sphere 2@ 
return 

//-------------Mission 1---------------
// Originally: MISSION_1

:MISSION_1
thread 'MISSION_1'
gosub @MISSION_1_29_57 
if 
wasted_or_busted 
jf @MISSION_1_29_46 
gosub @MISSION_1_29_144 

:MISSION_1_29_46
$ONMISSION = 0 
mission_cleanup 
end_thread 

:MISSION_1_29_57
increment_mission_attempts 
$ONMISSION = 1 
actor.SetImmunities($PLAYER_ACTOR, 1, 1, 1, 1, 1)
player.CanMove($PLAYER_CHAR) = false
0169: set_fade_color_RGB 0 128 128 
016A: fade 0 time 1000 
wait 3000
03DE: set_pedestrians_density_multiplier_to 0.0 
01EB: set_traffic_density_multiplier_to 0.0 
0395: clear_area 0 at 2506.3228 -1666.5116 12.3863 radius 300.0 
0826: enable_hud 0 
02A3: enable_widescreen 1 
model.Load(#GREENWOO)
038B: load_requested_models 

:MISSION_1_A
wait 0
if
model.Available(#GREENWOO)
jf @MISSION_1_A
0@ = car.Create(#GREENWOO, 2506.3228, -1666.5116, 12.3863)
car.Angle(0@) = 90.795
car.SetImmunities(0@, 1, 1, 1, 1, 1)
model.Destroy(#GREENWOO)
05CB: AS_actor $PLAYER_ACTOR enter_car 0@ as_driver 0 ms 

:MISSION_1_B
wait 0
if
actor.InCar($PLAYER_ACTOR, 0@)
jf @MISSION_1_B
04E4: unknown_refresh_game_renderer_at 2501.5085 -1669.8973
Camera.SetAtPos(2501.5085, -1669.8973, 13.3562)
Camera.SetPosition(2501.5085, -1669.8973, 13.3562, 0.0, 0.0, 0.0)
Camera.PointAt(2506.3228, -1666.5116, 12.3863, 2)
wait 2000
03E6: remove_text_box 
00BE: text_clear_all 
016A: fade 1 time 1000
wait 1000
00BC: show_text_highpriority GXT 'MS01_01' time 4000 flag 1 
wait 4000
0936: set_camera 2501.5085 -1669.8973 13.3562 position_to 2501.0186 -1665.4775 13.3554 time 7000 drop_mode 1 
0920: point_camera 2506.3228 -1666.5116 12.3863 transverse_to 2506.3228 -1666.5116 12.3863 time 7000 mode 1 
wait 6990 
Camera.SetPosition(2501.0186, -1665.4775, 13.3554, 0.0, 0.0, 0.0)
Camera.PointAt(2506.3228, -1666.5116, 12.3863, 2) 
00BC: show_text_highpriority GXT 'MS01_02' time 5000 flag 1 
wait 5000
0169: set_fade_color_RGB 0 128 128 
016A: fade 0 time 1000 
wait 1000
car.RemoveReferences(0@)
03DE: set_pedestrians_density_multiplier_to 1.0 
01EB: set_traffic_density_multiplier_to 1.0 
0826: enable_hud 1 
02A3: enable_widescreen 0 
Camera.Restore_WithJumpCut
Camera.SetBehindPlayer 
03E6: remove_text_box 
00BE: text_clear_all 
wait 2000
0169: set_fade_color_RGB 0 128 128 
016A: fade 1 time 1000 
actor.SetImmunities($PLAYER_ACTOR, 0, 0, 0, 0, 0)
player.CanMove($PLAYER_CHAR) = true
0318: set_latest_mission_passed 'MIS_02' 
01E3: show_text_1number_styled GXT 'M_PASS' number 5000 time 4000 style 1 
Player.Money($PLAYER_CHAR) += 5000
play_music 1
gosub @MISSION_1_END
create_thread @STARTER_NEW
return 

:MISSION_1_29_144
wait 0 
gosub @MISSION_1_END
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1 
create_thread @STARTER_NEW 
return

:MISSION_1_END
wait 0 
return 

// код новой миссии
//-------------Mission 2---------------
// Originally: MISSION_2

:MISSION_2
thread 'MISSION_2'
gosub @MISSION_2_29_57 
if 
wasted_or_busted 
jf @MISSION_2_29_46 
gosub @MISSION_2_29_144 

:MISSION_2_29_46
$ONMISSION = 0 
mission_cleanup 
end_thread 

:MISSION_2_29_57
increment_mission_attempts 
$ONMISSION = 1 
03DE: set_pedestrians_density_multiplier_to 0.0 
01EB: set_traffic_density_multiplier_to 0.0 
0395: clear_area 0 at 2478.7612 -1651.6365 13.4687 radius 300.0 
0826: enable_hud 0 
02A3: enable_widescreen 1 
model.Load(#CELLPHONE)
038B: load_requested_models 

:MISSION_2_A
wait 0
if
model.Available(#CELLPHONE)
jf @MISSION_2_A
actor.PutAt($PLAYER_ACTOR, 2478.7612, -1651.6365, 13.4687)
actor.Angle($PLAYER_ACTOR) = 108.0285
04E4: unknown_refresh_game_renderer_at 2476.7725 -1655.647
Camera.SetAtPos(2476.7725, -1655.647, 13.3275)
Camera.SetPosition(2476.7725, -1655.647, 13.3275, 0.0, 0.0, 0.0)
Camera.PointAt(2478.7612, -1651.6365, 13.4687, 2)
wait 2000
03E6: remove_text_box 
00BE: text_clear_all 
016A: fade 1 time 1000
wait 1000
0729: AS_actor $PLAYER_ACTOR hold_cellphone 1 
wait 2000
00BC: show_text_highpriority GXT 'MS03_01' time 6000 flag 1 
wait 6000
0967: actor $PLAYER_ACTOR move_mouth 4000 ms 
00BC: show_text_highpriority GXT 'MS03_02' time 4000 flag 1
wait 4000 
0968: actor $PLAYER_ACTOR stop_mouth 
0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 
wait 2000
016A: fade 0 time 1000
wait 2000
03DE: set_pedestrians_density_multiplier_to 1.0 
01EB: set_traffic_density_multiplier_to 1.0 
0826: enable_hud 1 
02A3: enable_widescreen 0 

:MISSION_2_B
wait 0
model.Load(#BALLAS1)
038B: load_requested_models 

:MISSION_2_C
wait 0
if
model.Available(#BALLAS1)
jf @MISSION_2_C
0@ = actor.Create(8, #BALLAS1, 2419.8154, -1687.3512, 13.7861)
actor.SetImmunities(0@, 1, 1, 1, 1, 1) 
actor.Angle(0@) = 359.3008
actor.Health(0@) = 500
1@ = marker.CreateAboveActor(0@)
Camera.Restore_WithJumpCut
Camera.SetBehindPlayer 
03E6: remove_text_box 
00BE: text_clear_all
016A: fade 1 time 1000 
wait 1000
actor.SetImmunities($PLAYER_ACTOR, 0, 0, 0, 0, 0)
player.CanMove($PLAYER_CHAR) = true
00BC: show_text_highpriority GXT 'MS03_03' time 3000 flag 1 

:MISSION_2_D
wait 0
if
00F2: actor $PLAYER_ACTOR near_actor 0@ radius 4.0 4.0 0 
jf @MISSION_2_D
actor.SetImmunities($PLAYER_ACTOR, 1, 1, 1, 1, 1)
player.CanMove($PLAYER_CHAR) = false
016A: fade 0 time 1000
wait 1000
actor.PutAt($PLAYER_ACTOR, 2419.7251, -1683.7125, 13.7646)
actor.Angle($PLAYER_ACTOR) = 180.0
actor.PutAt(0@, 2419.8154, -1687.3512, 13.7861)
actor.Angle(0@) = 0.0
04E4: unknown_refresh_game_renderer_at 2419.7251 -1683.7125
Camera.SetAtPos(2419.7251, -1683.7125, 14.7626)
Camera.SetPosition(2419.7251, -1683.7125, 14.7626, 0.0, 0.0, 0.0)
Camera.PointAt(2420.2771, -1686.0566, 13.7886, 2)
0826: enable_hud 0 
02A3: enable_widescreen 1
04ED: load_animation "BAR" 

:MISSION_2_E
wait 0
if
04EE: animation "BAR" loaded 
jf @MISSION_2_E
wait 1500
016A: fade 1 time 1000
wait 1000
0967: actor 0@ move_mouth 3500 ms 
0605: actor 0@ perform_animation_sequence "Barcustom_order" IFP_file "BAR" 4.0 loop 0 0 0 0 time 3500 
00BC: show_text_highpriority GXT 'MS03_04' time 3500 flag 1
wait 3500
0968: actor 0@ stop_mouth 
0967: actor $PLAYER_ACTOR move_mouth 2330 ms 
0605: actor $PLAYER_ACTOR perform_animation_sequence "Barserve_loop" IFP_file "BAR" 4.0 loop 0 0 0 0 time 2330
00BC: show_text_highpriority GXT 'MS03_05' time 2330 flag 1
wait 2330
0968: actor $PLAYER_ACTOR stop_mouth 
016A: fade 0 time 1000
wait 1000 
04EF: release_animation "BAR" 
0826: enable_hud 1 
02A3: enable_widescreen 0
Camera.Restore_WithJumpCut
Camera.SetBehindPlayer 
03E6: remove_text_box 
00BE: text_clear_all
wait 1500
016A: fade 1 time 1000
wait 1000 
05E2: AS_actor 0@ kill_actor $PLAYER_ACTOR 
actor.SetImmunities(0@, 0, 0, 0, 0, 0)
actor.SetImmunities($PLAYER_ACTOR, 0, 0, 0, 0, 0)
player.CanMove($PLAYER_CHAR) = true

:MISSION_2_F
wait 0
if
actor.Dead(0@)
jf @MISSION_2_F
marker.Disable(1@)
wait 2000
0318: set_latest_mission_passed 'MIS_03' 
01E3: show_text_1number_styled GXT 'M_PASS' number 10000 time 4000 style 1 
Player.Money($PLAYER_CHAR) += 10000
play_music 1
gosub @MISSION_2_END
create_thread @STARTER_3
return 

:MISSION_2_29_144
wait 0 
gosub @MISSION_2_END
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1 
create_thread @STARTER_3 
return

:MISSION_2_END
wait 0 
if
075C: marker 1@ enabled 
then
marker.Disable(1@)
end
if
056D: actor 0@ defined
then
actor.RemoveReferences(0@)
actor.DestroyInstantly(0@)
end
return

Неплохо вышло, только камера во втором ролике не совсем корректно стоит. Ваша задача - сделать её нормальной :)


KiLLeR96   (27.03.12 10:55)
а сигареты где? biggrin

wmysterio   (28.03.12 13:40)
я не стал писать об анимации "SMOKING" и сигаретах, так как я планирую в будущем сделать урок о том, как цеплять объекты к актёрам. smile вот там пример с сигаретами и станут одним из примеров smile
Вход на сайт

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

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

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