Содержание урока: 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 Теперь в игру, пробовать. Пересекая невидимую сферу, Сиджей будет злить персонажа, и тот будет стрелять в него.
Это был последний урок, посвящённый персонажам. В следующих уроках мы будем анимировать Сиджея и вручать ему в руки предметы (а также заставлять его их бросать).