1. Предыстория 2. Программы 3. Находим объект или оружие 4. Даем в руки объект или оружие
1. Предыстория
Вы наверняка хотите, чтобы главный герой брал что-то в руки, например оружие. Это очень легко!
Если кратко, нужно прописать в скрипте команду 01B2: give_actor $PLAYER_ACTOR weapon 25 ammo 1000 // Load the weapon model before using this. Вместо 25 вы ставите ID оружия (можно посмотреть в справке: Помощь > Статьи > Пикапы), вместо 1000 вы должны поставить любое число, хоть 1000000! Это количество патронов.
Но мы сейчас заинтересованы в том, чтобы дать герою именно объект, а не оружие. Например, бутылку. В любом случае, ниже мы подробно рассмотрим оба варианта.
2. Программы
Нам потребуются такие программы: Sanny Builder 3 (создание скриптов), Map Editor (редактор локации, но мы будем только узнавать о нужных объектах из него) и GMM (в которой мы узнаем ID оружия, если будем вручать герою не объект, а оружие).
3. Находим объект или оружие
Итак, мы начнём искать для начала обычный объект. Для этого скачайте и установите Map Editor, зайдите в программу, укажите путь к игре и нажмите ОК. В первый раз программа может вылететь, во второй раз всё пройдёт гладко!
Когда вы зашли, вы не увидите ничего кроме пустого окна, но нажмите на Scene и у вас появится окно с частями мира GTA SA. Но лучше не открывать все файлы сразу, видеокарта и оперативная память слишком загрузятся.
Чтобы полетать по окрестностям или интерьерам GTA SA, ставьте галочку на любой из частей мира. Полетайте и найдите свой объект, а потом кликните дважды по нем, он будет выделен красным.
Объект нашли, теперь надо записать его ID (числовой идентификатор). Он отображается там, где показано на нижнем рисунке.
ID моего объекта – 1520. Значит, мне можно закрывать Map Editor и уже делать скрипт.
Для продолжения создания скрипта, который вручит герою в руки объект переходите к разделу статьи №4. А если вы хотите вручить в руки герою не объект, а оружие — читайте ниже.
Узнаем ID оружия. Для этого установим GMMM, откроем программу, войдем в меню Weapons и отыщем там нужное оружие.
Я выбрал катану. Так как в прошлом уроке я ставил анимацию медитации, катана подойдёт очень хорошо! Теперь нам осталось сделать скрипт.
4. Даем в руки объект или оружие
Передача персонажу объекта или оружия очень схожи, но есть отличие. Для того чтобы дать, например, выбранный ранее объект (бутылка), нужно писать Model.Load(1520), а чтобы дать оружие, нужно написать Model.Load(#katana) (также, чтобы дать оружие в руки, надо обозначить его как переменную, о чем ниже).
Итак, начнём! Сначала разберемся, как давать в руки объект, а потом как давать оружие.
Открываем наш начатый уже в прошлых уроках скрипт, и в части, в которой мы пишем, какие вещи скрипту нужно загрузить, прописываем код, указывающий на загрузку нужной модели:
Model.Load(1520)
Весь скрипт выглядит так:
Потом нужно сделать так, чтобы когда герой исполняет какую-то анимацию (как прикреплять анимацию я писал в предыдущем уроке), объект сам появлялся в руках.
Можете проверить в игре. Всё, давать в руки объект во время проигрывания анимации мы научились.
Теперь разберемся как давать в руки оружие.
Для этого пишем в скрипте, как загружать наше оружие: Model.Load(#KATANA)
Теперь делаем катану переходной, пишем это после строчки:
0812: AS_actor $Player_actor perform_animation "Tai_Chi_in" IFP_file "PARK" 4.0 loopA 1 lockX 1 lockY 1 lockF 0 time -1 // version
Тут пишем: 0781: get_weapon_with_ID 8 model_to 22@
8 – это ID катаны, ID вы можете узнать из справки (см. выше). Значит, теперь катана является переходной 22@, а дальше делать нужно всё так же, как мы ставили бутылку, только заменяя названия и цифры.
Это туда, где мы писали 0781: get_weapon_with_ID 8 model_to 22@, только обязательно после: