Уроки 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

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

Це був останній урок, присвячений персонажам. У наступних уроках ми будемо анімувати Сіджея і вручати йому в руки предмети (а також змушувати його їх кидати).

Рекомендовані файли