OKStyle
| Дата: Пятница, 02.01.2015, 03:03 | Сообщение # 1 |
 Архивариус
Группа: Администраторы
Зарегистрирован: 19.02.2011
Сообщений: 125
Репутация: 8
Статус: Offline
| Многие, наверное, видели мою реализацию меню амму-нации на кликабельных текстдравах (текстурах), поэтому настало время рассказать о технологии использования кастомных TXD-файлов. Для реализации иконок оружия нужно поместить в папку \models\tхd свой *.tхd файл. А что будет, если игроку вывести это меню, если у него в папке с игрой нет необходимого файла? Ничего... Иконок в этом случае игроку видно не будет, и правильной работы системы тоже не будет. Поэтому нужно отслеживать, есть ли необходимые для работы файлы.
Этап № 1. Создание текстуры.
Если вы делаете не амму-нацию или вас не устраивают стандартные иконки оружия (например, хотите из Вайс-Сити или из GTA 3, 4, 5) - необходимо создавать новые текстуры.
1. Запускаем TXD WorkShop (я использую TXD Workshop 5.0 (beerbearbee edition) Build 290312 by Jernej L.); 2. Создадим новый файл: нажимаем File->New (Ctrl + N); 3. Выбираем 16 (можно и другие, но я выбираю всегда 16); 4. Затем нажимаем Import; 5. Выбираем вашу картинку; 6. Когда она загрузилась - Properties; 7. Убираем галочку с Alpha; 8. Меняем название; 9. Save TXD; 10. Кидаем ваш *.txd файл в <папка с гта>\models\txd
Этап № 2. Изменение версии клиента.
1. Открываем samp.dll Hex-редактором; 2. Переходим на смещение 000cdab4:04(для 0.3x R1, в ином случае ищем текст "0.3x", на втором вхождении меняем); 3. Меняем 0.3x на любую понравившуюся(хоть АААА, но только латиницей и только 4 символа); 4. Сохраняем;
Этап № 3. Скрипт проверки.
Код new Text:ctext; // создаем переменную для текстдрава #define PATH "x:y" // где x - название вашего файла без расширения, а y - название картинки внутри него; #define CLIENT_VER "0.3z-R3" // версия клиента (поставленная на втором этапе)
...
ctext = TextDrawCreate(320, 240, PATH); TextDrawFont(ctext, 4); TextDrawTextSize(ctext, 31, 27);
...
if(strcmp(cmdtext,"/showtxtdraw",true) == 0) { new version[32]; GetPlayerVersion(playerid, version, sizeof(version)); // получаем версию if(strcmp(version, CLIENT_VER, true) != 0) return SendClientMessage(playerid, 0xFFFFFFFF, "У вас не установлены дополнительные необходимые для игры компоненты!"); TextDrawShowForPlayer(playerid, ctest); return 1; }
Теперь при вводе команды /showtxtdraw покажется ваша картинка. Для того, чтобы избежать захламления папки GTA SA, рекомендую помещать новые текстуры в файл CUSTOM.IMG, а не папку txd.
Авторы: OKStyle, Games, Max1548.
|
|
| |