Уроки CLEO. Урок №3: злим персонажа

4 июля 2012
Alexey1999, Flame

Содержание урока:

1. Предыстория

2. Программы

3. Находим оружие и его ID

4. Злим персонажа

1. Предыстория

В прошлом уроке мы с вами ставили персонажу анимацию. У меня была анимация танца dance_loop из пакета анимаций anim.img/dancing.ifp.

Сейчас мы дадим ему хорошее оружие, но какое — решать вам! В моём случае это будет помповое ружьё Shotgun.

Далее сделаем так, чтобы когда к нашему персонажу приблизишься слишком близко, он начинал вас убивать. На этом наш урок по установке персонажей на карту закончится, мы перейдём на следующий уровень сложности. Мы станем ставить анимации Сиджей и давать ему в руки что угодно, хоть дом!

Итак, начнём.

2. Программы

Нам потребуется программа GGMM (GTA Garage Mod Manager) (она предназначена изначально для просмотра и замены автомобилей, но также позволяет просматривать оружие) и Sanny Builder 3 (создание скриптов).

Установив и запустив GGMM, нам нужно будет найти оружие и выяснить его числовой идентификатор (ID).

2. Находим оружие и его ID

Но пока что перед нами главное окно программы, в котором отображается машина.

Нажимаем на кнопку Weapons.

Появился бронежилет. Но нам нужно другое, огнестрельное оружие. Перелистываем оружие с помощью стрелочек. Вот оно, ружьё, которое я собрался дать персонажу.

Название вы можете посмотреть чуть выше картинки. В моём случае это: CHROMEGUN. Название мы знаем, открываем наш созданный ранее скрипт в Sanny Builder и загружаем модель вот этой командой:

Model.Load(#CHROMEGUN)

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

{$VERSION 3.1.0027}

{$CLEO .cs}

//-------------MAIN---------------

:NONAME_1

Model.Load(#HMORI)

Model.Load(#CHROMEGUN)

04ED: load_animation "DANCING"

038B: load_requested_models

04EE: animation "DANCING" loaded

1@ = Actor.Create(CivMale, #HMORI, 2486.9573, -1656.5065, 13.3479)

Actor.Angle(1@) = 178.8208

wait 3000

0605: actor 1@ perform_animation_sequence "dance_loop" IFP_file "DANCING" 4.0 loop 1 0 0 0 time -1 // versionA

end_thread

Всё, теперь осталось лишь узнать ID оружия которое, вы выбрали. Это нужно сделать не закрывая Sanny Builder 3. Просто нажмите на "Справка", потом на "Помощь". У вас откроется отдельное окно.

Нажмите на "Статьи" и найдите там "Пикапы". Здесь вы найдёте ID своего оружия. У меня это будет — 25. Всё, ID узнали, можно закрывать справку.

Далее пишем в скрипте после анимации следующее:

01B2: give_actor 1@ weapon 25 ammo 1000 // Load the weapon model before using this

Там, где написано weapon, нужно написать ID своего оружия, а после ammo — патроны, точнее количество патронов. Я поставил 1000.

Всё, это сделали, мы дали прописанному персонажу оружие. Теперь позлим его.

4. Злим персонажа

Мы уже дали оружие нашему персонажу. Чтобы это проверить — скомпилируйте скрипт и зайдите в игру.

Теперь разозлим его! Для этого нам нужно снова вернуться к скрипту чтобы поставить в нем сферу вокруг нашего персонажа, и если Сиджей пересечёт её, персонаж будет гасить его из всех патронов, которые есть в дробаше!

Для этого прописываем следующее перед словом end_thread:

:NONAME_2

wait 0

if

0102: actor $PLAYER_ACTOR in_sphere 2486.9573 -1656.5065 13.3479 radius 10.0 10.0 10.0 sphere 0 stopped_on_foot

jf @NONAME_2

Это мы создали сферу. В конце нужно написать нужные координаты. В моём случае это 10.0 10.0 10.0

Далее, после слова jf @NONAME_2 нам надо прописать следующее:

0850: AS_actor 1@ follow_actor $PLAYER_ACTOR

05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR

Весь код после сделанных правок будет выглядеть так:

{$VERSION 3.1.0027}

{$CLEO .cs}

//-------------MAIN---------------

:NONAME_1

Model.Load(#HMORI)

Model.Load(#CHROMEGUN)

04ED: load_animation "DANCING"

038B: load_requested_models

04EE: animation "DANCING" loaded

1@ = Actor.Create(CivMale, #HMORI, 2486.9573, -1656.5065, 13.3479)

Actor.Angle(1@) = 178.8208

wait 3000

0605: actor 1@ perform_animation_sequence "dance_loop" IFP_file "DANCING" 4.0 loop 1 0 0 0 time -1 // versionA

01B2: give_actor 1@ weapon 25 ammo 1000 // Load the weapon model before using this

:NONAME_2

wait 0

if

0102: actor $PLAYER_ACTOR in_sphere 2486.9573 -1656.5065 13.3479 radius 10.0 10.0 10.0 sphere 0 stopped_on_foot

jf @NONAME_2

0605: actor 1@ perform_animation_sequence "dance_loop" IFP_file "DANCING" 4.0 loop 0 0 0 0 time 0 // versionA

0850: AS_actor 1@ follow_actor $PLAYER_ACTOR

05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR

end_thread

Теперь в игру, пробовать. Пересекая невидимую сферу, Сиджей будет злить персонажа, и тот будет стрелять в него.

Это был последний урок, посвящённый персонажам. В следующих уроках мы будем анимировать Сиджея и вручать ему в руки предметы (а также заставлять его их бросать).

Рекомендуемые файлы