PDA

Просмотр полной версии : [Мануал] Подгрузка JPG, PNG и прочих изображений как TextDraw [с client-side]



MassonNN
08.01.2020, 12:40
Добрый день. С развитием сампа в сторону создания собственных лаунчеров понимаю, что актуальность данной темы будет возрастать. Способ, который я покажу Вам очень прост, а главное не требует спец навыков в моддинге или скриптинге.

Итак. Я покажу способ подгружать собственные изображения форматов JPG, PNG и т.д. как текстдрав на ваш сервер с лаунчером или собственной сборкой для проекта.

Шаг 1. Установка необходимого софта.

Скачиваем Magic.TXD (https://libertycity.ru/files/gta-san-andreas/94452-magic.txd-1.0-redaktor-txd-arkhivov.html)
Устанавливаем его (тут все как обычно).

Шаг 2. Конвертация в TXD.

Заходим в Magic.TXD и нажимаем на файл - новый.

https://i.imgur.com/LM6toFo.png

Далее создаем новый проект как показано на скриншоте

https://i.imgur.com/MP11WRh.png


Добавляем необходимые нам изображения через Правка - Добавить

https://i.imgur.com/68rRnEI.png


Можете поиграться с настройками, а можете, как я, ничего не делать. Нажимаем "Добавить".

Вы можете добавить сразу несколько изображений в один TXD архив, по аналогии с этим.

https://i.imgur.com/xcBQUl6.png


Я добавлю свой форумный аватар. Теперь нажимаем Файл - Сохранить как.
Указываем следующую директорию:

Ваша папка с гта/models/txd


и нажимаем сохранить.


Шаг 3. Вызов текстдрава.

Теперь переходим к вызову этого текстдрава в игре. Для этого мы, например, будем вызывать наш текстдрав, когда игрок заходит в игру.

Создаем переменные, желательно в начале после всех include:


new Text:avatar; // в моем случае будет только одна переменная



Теперь создаем текстдрав. Делать я это буду в OnGamemodeInit, Вам тоже советую.

avatar = TextDrawCreate(241.222534, 185.499969, "avatar:pocket_tv");
// где avatar - название библиотеки TXD, а pocket_tv - название конкретного изображения
TextDrawTextSize(avatar, 177.569564, 96.833297);
TextDrawAlignment(avatar, 1);
TextDrawColor(avatar, -1);
TextDrawSetShadow(avatar, 248);
TextDrawSetOutline(avatar, 0);
TextDrawFont(avatar, 4); // Обязательно указываем 4 шрифт,
//остальные параметры необязательны и под ваш вкус и цвет



Ну и где хотим показываем игроку текстдрав, как я уже сказал, я буду это делать при подключении к серверу:

TextDrawShowForPlayer(playerid, avatar);


Шаг 4. Результат.


Вот такой текстдрав получается. У меня немного кривой, надеюсь Вы сможете сделать их крутыми! Удачи!


https://i.imgur.com/73w8Qwu.png


Автор: MassonNN (Nestyreff)

- - - Добавлено - - -

К слову. Данные текстдравы не нагружают ваш сервер больше, чем обычные спрайты. Данные текстдравы в зависимости от уровня текстуринга могут давать разное качество. Если у Вас есть directx 9 (а он есть у многих), то можно подгружать даже HD изображения. С кликабельностью проблем пока не было.

Если у игрока нет текстдрава в папке с игрой, то он просто не покажется. Не крашит.

geneff
14.01.2020, 18:43
Вау, больше спасибо за мануал. Как раз начал интересоватся как это все работает :thank_you:

Fallen A.
16.01.2020, 00:26
Особенно с помощью реализации лончера это будет актуально. Жаль, что движок GTA SA уже слишком устарел.