Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок Добавление новых анимаций в SA-MP

OKStyle

Адвокат по делам семейным
Administrator
Wiki Team
Регистрация
4 Мар 2011
Сообщения
7,092
Лучшие ответы
226
Репутация
2,455
Награды
11
Ни для кого не секрет, что бесконечное множество анимаций из SA-MP не могут, порой, обеспечить отыгрыш той или иной ситуации на Role Play режиме. В этом уроке я покажу как добавить поддержку своих анимаций на вашем (или не вашем, как договоритесь) сервере, не заменяя стандартные.

Начнём с подготовки файла анимаций. Я буду описывать с нуля, а ниже расскажу как действовать, если уже скачали новые анимации.

1. Для начала нам понадобится GTA-SA Crazy IMG Editor от знакомого моего знакомого - CrazyVirus. Я буду использовать версию 1.0 Final.

-) Поскольку большинство нашей аудитории - русскоязычно, при открытии софта выставим русский язык, выбрав "Language" во вкладке "File". Скачивая архивы с софтом с некоторых русскоязычных порталов, кроме рекламы этих сайтов, мы получим *.ini-файл с настройками программы, поэтому, возможно, не понадобится переключать язык, так как кто-то это уже сделал своими шаловливыми ручками.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


а) Далее необходимо открыть *.img файл, выбрав "Открыть" во вкладке "Файл".

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


либо нажав на пиктограмму:

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


б) Выбираем ваш gta3.img файл

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


в) Откроется архив и вы увидите всё его содержимое: модели, текстуры, файлы коллизий, данных, расстановки объектов (бинарные *.ipl, но об этом в другой статье) и анимации. По-умолчанию они отсортированы по смещению.
ВНИМАНИЕ: если игра запущена - архив не откроется. Это касается и custom.img, если Вы в SA-MP'е.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


г) Поскольку нам нужно найти *.ifp файлы, отсортируем представленный набор файлов по типу, нажав на соответствующий заголовок сверху.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


д) Находим любой *.ifp файл (он будет третьим по порядку: сначала TXD, затем IPL, а после уже IFP), выделяем его.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


е) Теперь необходимо экспортировать его, выбрав "Извлечь" во вкладке "Правка"

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


или нажав на пиктограмму

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


или выбрав в контекстном меню, нажав на файле анимаций правой кнопкой мыши

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


Также работают и горячие клавиши: Ctrl + E. Почему E? Е - это Extract, т.е. извлечение. Также подходит и Export, что не меняет сути, но раз указано "Извлечь", будем придерживаться первого варианта.

2. Файл анимаций распакован. Теперь надо открыть его. Для этого нам понадобится GTA Animation Manager от Ryosuke839. В примере я буду использовать версию 0.11.

а) Открываем программу и выбираем "Open" во вкладке "IFP".

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


б) Выбираем наш файл с анимациями. Если у вас уже есть скаченный файл анимаций - далее информация касается и вас тоже.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


в) Можете сразу переименовать его в custom перед открытием. Внутри название библиотеки будет AIRPORT, если вы извлекли тот же файл, что и я. В принципе, не суть. Скаченные анимации обычно добавляются в библиотеку PED. Меняем название внутри, введя в соответствующее поле CUSTOM.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


г) Если это скаченный файл (например, этот), переименовываем нужную нам анимацию, например, в sexy_sit_one, выбрав "Rename" в контекстном меню конкретной анимации, появляющееся по нажатию на ней правой кнопкой мыши.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


Либо удаляем, если это экспортированный файл, выбрав "Delete" в том же контекстном меню.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


д) Если у вас экспортированный файл, берём скаченный и кидаем его в окно программы, а именно туда, откуда удаляли анимации.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


е) Вам предложат, что делать с анимациями: открыть кинутый файл (Open), добавить анимации из библиотеки в открытую библиотеку (Append) или заменить существующие (Replace). Нам нужен второй вариант, если мы собираем нашу библиотеку.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


P.S. Кстати говоря, в этой программе можно сразу посмотреть как будет применяться анимация:

а) Нажимаем на "Load Models" во вкладке "Preview"

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


б) Выбираем любой имеющийся у вас распакованный скин (*.dff должно лежать рядом с *.txd, чтобы текстуры загрузились). Распакованный - значит не в архиве zip/rar и иже с ними, и не в *.img файле. У меня нашёлся заключённый-мексиканец.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


Убрать модель можно выбрав Unload Model в той же вкладке "Preview".

ж) Теперь в нашей библиотеке часть стандартных, а часть новых анимаций, так как я упоминал ранее о том, что для сингла делают анимации, заменяя существующие. Ищем изменённую по названию или по превью.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


з) Возвращаемся к пункту г), то есть переименовываем нашу анимацию и сохраняем библиотеку, выбрав "Save" во вкладке "IFP".

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


P.P.S. Также можно посмотреть превью скаченного оружия, выбрав "Arm Weapon" во вкладке "Preview".

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


Поскольку оружия я не нашёл, у меня получился мексиканец-заключённый, вооружённый мексиканцем-заключённым :)

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


3. Вернёмся к анимациям. Теперь нужно наш новый *.ifp закинуть в custom.img.

а) Повторяем шаги а) и б) из пункта 1, только выбираем не gta3.img, а custom.img, находящийся в поддиректории SAMP в директории с установленной игрой GTA SA.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


б) Добавляем нашу библиотеку анимаций custom.ifp в custom.img, выбрав "Добавить" из вкладки "Правка"

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


или нажав на пиктограмму

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


в) Выбираем сохранённую библиотеку анимаций.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


г) Теперь наш файл анимаций будет виден SA-MP'ом. Закрываем программу, *.img архив сохранился автоматически.

Обкатывать мы будем всё на примере самой инновационной системе анимаций на диалогах.

а) Для начала выставим значение, характеризующее использование кастом-анимаций:
PHP:
#define USE_CUSTOM_ANIM 1
б) Далее укажем название библиотеки анимаций *.ifp (рекомендую использовать custom, чтобы было понятно). Поскольку мы выставили дефайн 1, вместо 0, отработает и следующий код для прогрузки анимаций:
PHP:
#if USE_CUSTOM_ANIM == 1
    ApplyAnimation(playerid, !"CUSTOM", !"null", 4.1, 0, 1, 1, 1, 1, 1);
#endif
в) Укажем названия анимаций из какой библиотеки будут добавлены в общий список:
PHP:
#if USE_CUSTOM_ANIM == 1
        strcat(animdlg, !"\nCUSTOM");
#endif
г) Укажем названия анимаций, содержащихся в вашей библиотеке:
PHP:
#if USE_CUSTOM_ANIM == 1
            else if(!strcmp(inputtext, !"CUSTOM"))
            {
                static const animcustom[1][13] = {
                    !"sexy_sit_one"
                };
                strcat(animdlg, !"Name\n");
                for(new i; i < sizeof(animcustom); i++)
                {
                    strcat(animdlg, animcustom[i]);
                    strcat(animdlg, !"\n");
                }
            }
#endif
д) Применим выбранную анимацию:
PHP:
#if USE_CUSTOM_ANIM == 1
            else if(strfind(inputtext, !"sexy") != -1) ApplyAnimation(playerid, !"CUSTOM", inputtext, 4.1, 0, 1, 1, 1, 1, 1); // рекомендую тут сделать префикс "CUSTOM_" и добавлять его к именам анимаций в библиотеке.
#endif
Теперь, перекомпилировав скрипт, закинув подготовленный custom.img в директорию SAMP в директории с GTA SA мы сможем использовать свои анимации в игре через диалог.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


ВНИМАНИЕ: неверное название анимации приведёт к крэшу клиента по следующему опкоду:

Exception At Address: 0x0048C3A9
Base: 0x03D10000

Registers:
EAX: 0x00000000 EBX: 0x0000FFFF ECX: 0x0177F50C EDX: 0x00000000
ESI: 0x01D09D50 EDI: 0x000004EE EBP: 0x0177F5BC ESP: 0x0177F490
EFLAGS: 0x00210246

Stack:
+0000: 0x0177F50C 0x00000000 0x000004EE 0x0177F5BC
+0010: 0x00000000 0x0177F5C4 0x00000000 0x00000000
+0020: 0x12964270 0x000007FF 0x000009AF 0x12964268
+0030: 0x01830000 0x00000000 0x00000020 0x000009AF
+0040: 0x12380000 0x0000042A 0x04EBFFFF 0x0183FFFF
+0050: 0x0177FFFF 0x0183FFFF 0x1296FFFF 0x1296FFFF
+0060: 0x36000036 0x00000000 0x01830000 0x77AF5D3A
+0070: 0x000003AA 0x59414C50 0x445F5245 0x5F584553
+0080: 0x00786946 0x00000000 0x00000000 0x00000000
+0090: 0x00000000 0x00002C1C 0x0177F700 0x3CC40FE5
+00A0: 0x3D94339A 0x3B83EC28 0xBCA5C1C9 0xB6798000
+00B0: 0x0177F590 0x0083821C 0xFFFFFFFF 0x00469EF7
+00C0: 0x77B1325C 0x7600F93F 0x00000000 0x0177F5AC
+00D0: 0x008384BA 0xFFFFFFFF 0x00469EF7 0x000004EE
+00E0: 0x0177F5C4 0x03DC22FE 0x03DC24B4 0x757B90B0
+00F0: 0x00000009 0x0177F738 0x00000000 0x0177F5C4
+0100: 0x00000007 0xFFFFD8F0 0x00000000 0x03DFC6FF
+0110: 0x00000000 0x0177F57C 0x0177EF54 0x0177F93C
+0120: 0x03DD74E4 0x03DFD330 0x00000000 0x0EE840E0
+0130: 0x03DB0CAF 0x03DFC6FC 0x0177F738 0x03DBD2C9
+0140: 0x0177F738 0x0177F938 0x00000001 0x0177F958
+0150: 0x0177F94C 0x03D2AAE4 0x0177F838 0x0177F738
+0160: 0x40833333 0x00000000 0x00000001 0x00000001
+0170: 0x00000001 0x00000001 0x13600C80 0x0407AAF8
+0180: 0x01010100 0x04030000 0x00000001 0x40833333
+0190: 0x000000C0 0x000000C0 0x000000BC 0x0177F958
+01A0: 0x00000000 0x0177F95C 0x40092100 0x0082E52B
+01B0: 0x00000020 0x0177F720 0x00000010 0x04EB1D88
+01C0: 0x00000001 0x00000020 0x00000010 0x0000007F
+01D0: 0x0177F70C 0x00833724 0x00833746 0x00833756
+01E0: 0x12965230 0x12870BA8 0x0000001F 0x0000007F
+01F0: 0x01010000 0x00000020 0x0004002A 0x0177F728
+0200: 0x127D712C 0x00000348 0x044B07D0 0x00000064
+0210: 0x00000020 0x00000348 0x01830000 0x128227F0
+0220: 0x12870528 0x00000000 0x00000000 0x044B0000
+0230: 0x00000002 0x00000000 0x00000069 0x044B0000
+0240: 0x044B02A4 0x00000000 0x00000340 0x044B1F5C
+0250: 0x00000000 0x01830000 0x044B1F58 0x044B0000
+0260: 0x0177F714 0x77AEF94E 0x127D72F8 0xBFA3061A
+0270: 0x00000000 0x00000000 0x00000340 0x0177F740

SCM Op: 0x4EE, lDbg: 1 LastRendObj: 0

Game Version: US 1.0

State Information: Ped Context: 0
Будьте внимательны.

ВНИМАНИЕ 2: Если вы не закинули мой кастомный файл с анимациями - отключите поддержку анимаций из библиотеки SEX, иначе будет крэш, как выше.

PHP:
#define USE_SEX_FIX_ANIM 0
Автор: OKStyle
 
Сверху Снизу