keyl

Добавление картинки в модпак (TXD-архив)

В теме 27 сообщений

В этой теме вы узнаете... 

Многие у меня лично, да и на форумах, спрашивали: "Как сделать логотип как на ГринТече?" (GreenTechRP - проект в CRMP). А сделать это очень просто, нужно всего лишь навсего добавить картинку в модпак (txd) и в моде уже использовать как стандартную картинку из стандартной библиотеки TXD, т.е. : название_библиотеки(txd):название_самого_тд


От вас потребуется:

  1. Фотошоп (здесь рекомендуется использовать AdobePhotoshopCS6, так как все примеры даны именно на нем)
  2. TXD WorkShop
  3. Тестовый мод <ИЛИ> ваш основной мод. 

От слов к действиям: 

Урок можно поделить на две части: работа в Фотошопе и работа в TXD WorkShop. 

Приступим к первой части. 

  1. Открываем Ваш графический редактор и создаете изображение. Для примера возьмем 600 на 600 точек. 
    Спойлер

    Screenshot_1.png

     

  2. Далее вы можете приступать к оформлению вашего изображения.
  3. После того как вы сделали свой шедевр, вам необходимо добавить альфа-канал. Для примера возьмем AdobePhotoshopCS6. Нажимаем "Выделение -> загрузить выделенную область". 
    ПРИМЕЧАНИЕ: если у текста есть обводка, то для нанесения альфа-канала необходимо сначала преобразовать его (текст) в смарт-объект. 
    После жмем "Выделение -> Сохранить выделенную область". Название может быть произвольным. 
    Далее нажимаем на "глаз" у альфа-канала, т.е. делаем его невидимым. 
  4. После вы можете сохранить свою работу в формате TGA (В случае с фотошоп кс6: "Файл -> Сохранить как - Формат targa (tga)")

На этом первая часть урока завершена. Мы на полпути у финиша. Переходим ко второй части урока, работе с TXD WorkShop. 

  1. Открываем TXD WorkShop и добавляем созданный в Фотошопе файл. 
  2. Выбираем: "Image -> Decompress ALL Image"
  3. Выбираем: "Image -> Compress ALL Image"
  4. Сохраняем готовый файл в директорию. Если хотите использовать с модпаком, то сохраняйте по пути: /путь к игре/multiplayer_browser_cr/custom/, если же вы хотите просто протестировать это ТОЛЬКО у себя на компьютере, сохраняйте по пути: /путь к игре/models/txd

Далее вы можете заходить на тестовый (Ipleomax) или другой сервер и пробовать добавлять. 

На этом все. 


Над темой работали: 

Автор теоретического материала (фотошоп): Первый

Корректор: @DEST

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DEST  проблемка, и так всегда, и через игру добавляется такой рисунок, делал так же вроде

Спойлер

zALTBMSHZNw.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Timur_Top проблема в некорректности самого рисунка? 

В фотошопе он был нормальным? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DEST В фш он был нормальным, и да, когда импортирую в воркшоп tga файл, вылазиет ошибка: floating point division by zero

Добавил alpha, в картинке текста нету, а изображение png было.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Timur_Top попробуйте обновить версию TXD Work Shop

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DEST Я добавил alpha и в название в конец а добавил, отображается только картинка

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Timur_Top невидимым слоем alpha сделали? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DEST Не понял

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 часов назад, DEST сказал:

После того как вы сделали свой шедевр, вам необходимо добавить альфа-канал. Для примера возьмем AdobePhotoshopCS6. Нажимаем "Выделение -> загрузить выделенную область". 
ПРИМЕЧАНИЕ: если у текста есть обводка, то для нанесения альфа-канала необходимо сначала преобразовать его (текст) в смарт-объект. 
После жмем "Выделение -> Сохранить выделенную область". Название может быть произвольным. 
Далее нажимаем на "глаз" у альфа-канала, т.е. делаем его невидимым. 

 

Справа сбоку есть управление слоями в PhotoshopCS6

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DEST Фон нужно сделать невидимым?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DEST Возник такой вопрос, как найти теперь саму текстуру в TDEditor?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Nicinen подключаешь мод-пак, а точнее, эту библиотеку TXD, которую ты создал, и вводишь: "mp_name-modpack:image_name" по такому шаблону. Можешь её сразу кинуть в TXD в папке с игрой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно видео урок? не много не понятно как это все будет происходить 

к примеру у меня уже есть даже готовый фон и  иконка и сделал фш я загрузил в Txd изменил к примеру там фон итд и что дальше? как мне это сделать в Iplemax и залить к себе на сервер SAMP 

было подробней на видео примере вашем как до что 

Отредактировано пользователем Rafael_Rosse

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Rafael_Rosse зачем делать урок по элементарной теме? В TDE добавляешь спрайт, растягиваешь до нужных размеров, сохраняешь, добавляешь в мод и в названии пишешь как теме описывается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
25 минут назад, SCRIPTMAN сказал:

@Rafael_Rosse зачем делать урок по элементарной теме? В TDE добавляешь спрайт, растягиваешь до нужных размеров, сохраняешь, добавляешь в мод и в названии пишешь как теме описывается.

ты хоть понял что сказал? у меня даже тд не нарисован я обычный фон (Слово удалено системой) куда запинаю? 

жду видео урока или тема без полезная и не понятная

у меня фон есть и иконка допустим фотошопе ну и что дальше? я сделал фон итд а текстдрав кто делать будет как это все хуякнуть 

итд 

и в мод куда потом залить итд  В МОД SAMP САМП GTA 

 

ДА И У МЕНЯ НЕТУ НОРМАЛЬНОГО ТДЕ КОТОРЫЙ С МОДЕЛЯМИ НАЙТИ НЕ МОГУ ИТД 

Отредактировано пользователем Rafael_Rosse

Заметка от Shakoladka , создано

Не обязательно писать большими буквами(Caps) достаточно просто сделать предложение/слово жирным текстом

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Rafael_Rosse TDEditor v2.3, в интернете введи. Бомбить на меня тут не надо, я всё доступно объяснил, иди лучше русский язык подтяни. Неужели трудно самому сделать TextDraw Sprite? Сделал, изменил на нужную позицию и размер, сохранил, добавил в мод, ввёл имя библиотеки и название картинки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, SCRIPTMAN сказал:

@Rafael_Rosse TDEditor v2.3, в интернете введи. Бомбить на меня тут не надо, я всё доступно объяснил, иди лучше русский язык подтяни. Неужели трудно самому сделать TextDraw Sprite? Сделал, изменил на нужную позицию и размер, сохранил, добавил в мод, ввёл имя библиотеки и название картинки.

как сделать TextDraw Sprite как туда добавить чтобы я в тде спрайт нажал выбрал и у меня на экране появилась это моя картинка ? свою картинку обьяснишь поставлю лайки на все пост итд надеюсь теперь ясно выяснился? 

Отредактировано пользователем Rafael_Rosse
Причина: Дополнил текст

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще вопрос всем игрокам видно будет моя картинка? который я сделаю? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Rafael_Rosse, только если все установят модпак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, odosenok сказал:

@Rafael_Rosse, только если все установят модпак.

а как  без мод пака в сампе сделать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Rafael_Rosse, свою картинку - никак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, odosenok сказал:

@Rafael_Rosse, свою картинку - никак.

как так  если вон даймонд рп  не реклама пример кристал как то сделали и когда скачиваю чистую где не будь гта их кристал не проподает в сампе 

hZPd-cSyq0k.jpg.8b32b9a3d247377d5ea7b0eef37a7a73.jpg

Отредактировано пользователем Rafael_Rosse
Причина: Дополнил текст

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Rafael_Rosse Это не картинка

Отредактировано пользователем Nicinen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 часов назад, Rafael_Rosse сказал:

а как  без мод пака в сампе сделать

Вот есть утилита, которая конвертирует картинку в TD, но естественно с потерей качества - https://forum.sa-mp.com/showthread.php?t=274064

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, DEST сказал:

Вот есть утилита, которая конвертирует картинку в TD, но естественно с потерей качества - https://forum.sa-mp.com/showthread.php?t=274064

иё все  будут видеть игроки? без модпака? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Chopick
      От Chopick
      Всем здравствуйте! Делаю систему домов/бизнесов по туториалу knox know с плагином GoodArea. Есть проблема, если заходишь в интерьер бизнеса, то когда выходишь спавнит почему-то на пикап дома.

      Вот енумы:
       
      #define MAX_HOUSES 1000 #define MAX_BIZS 1000 enum house {         hID,         STREAMER_TAG_PICKUP:hPICKUP,         STREAMER_TAG_AREA:hAREA,         hOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:hTEXT[256],         STREAMER_TAG_MAP_ICON:hICON,         hPRICE,         hCLASS,         hINTERIOR,         Float:hX,         Float:hY,         Float:hZ,         Float:hA,         hCONDITION // Закрыт/Открыт } new House[MAX_HOUSES][house]; new Houses; new HouseGroup; enum biz {         bID,         STREAMER_TAG_PICKUP:bPICKUP,         STREAMER_TAG_AREA:bAREA,         bOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:bTEXT[256],         STREAMER_TAG_MAP_ICON:bICON,         bNAME[25],         bPRICE,         bTYPE,         bINTERIOR,         Float:bX,         Float:bY,         Float:bZ,         Float:bA } new Biz[MAX_BIZS][biz]; new Bizs; new BizGroup; enum interior_info {         intID,         intNAME[41],         intINTERIOR,         Float:intX,         Float:intY,         Float:intZ,         Float:intA,         STREAMER_TAG_AREA:intAREA } new Interior[MAX_INTERIORS][interior_info]; new Interiors; new InteriorGroup; Вот что у меня в OnGameModeInit:
      HouseGroup = CreateGroupGoodAreas(GoodArea:HouseEnter); InteriorGroup = CreateGroupGoodAreas(GoodArea:InteriorExit); BizGroup = CreateGroupGoodAreas(GoodArea:BizArea);  
      Вот стоки:
      GAResponse:HouseEnter(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                 if(House[index][hCONDITION] > 0 && House[index][hOWNER] == player_info[playerid][NAME] || House[index][hCONDITION] == 0)                 {                                         GoToInterior(playerid, House[index][hINTERIOR]);                                         SetPlayerVirtualWorld(playerid, index);                                 }                                 else if(House[index][hCONDITION] > 0 && House[index][hOWNER] != player_info[playerid][NAME]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Этот дом закрыт на ключ!");                         }                 }                 case GA_RESPONSE_ENTER:                 {                     if(House[index][hOWNER] == 0)                     {                         CreateNoOwnerHouseTD(playerid);                         for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                         {                             PlayerTextDrawShow(playerid, NoOwnerTextDraw_PTD[playerid][i]);                                 }                                 new price[8];                                 format(price, sizeof(price), "%d$", House[index][hPRICE]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][2], price);                                 new id[9];                                 format(id, sizeof(id), "%d", House[index][hID]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][0], id);                                 switch(House[index][hCLASS])                                 {                                     case 1: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "A");                                     case 2: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "B");                                     case 3: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "C");                                 }                                 for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                         {                             TextDrawShowForPlayer(playerid, NoOwnerTextDraw_TD[i]);                                 }                         }                 }                 case GA_RESPONSE_LEAVE:                 {                 for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                 {                     PlayerTextDrawHide(playerid, NoOwnerTextDraw_PTD[playerid][i]);                         }                         for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                 {                     TextDrawHideForPlayer(playerid, NoOwnerTextDraw_TD[i]);                         }                 }         }         return 1; } GAResponse:BizArea(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                     GoToInteriorBiz(playerid, Biz[index][bINTERIOR]);                                 SetPlayerVirtualWorld(playerid, index);                 }                 }         }         return 1; } GAResponse:InteriorExit(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 new world = GetPlayerVirtualWorld(playerid);                 if(key & KEY_WALK)                 {                     if(world < MAX_HOUSES)                     {                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, House[world][hX], House[world][hY], House[world][hZ]);                             SetPlayerFacingAngle(playerid, House[world][hA]);                                 }                                 else if(world < MAX_HOUSES + MAX_BIZS)                     {                         world -= MAX_HOUSES;                                         printf("%d index world", world);                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, Biz[world][bX], Biz[world][bY], Biz[world][bZ]);                             SetPlayerFacingAngle(playerid, Biz[world][bA]);                                 }                         }                         if(key & KEY_CTRL_BACK)                         {                             if(player_info[playerid][HOUSE] != House[world][hID]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Вы не владелец данного дома!");                             new dialog[256];                                 format(dialog, sizeof(dialog),                                         "{ffd900}[1]{ffffff}Информация о доме\n\                                         {ffd900}[2]{ffffff}%s дом",                                 (House[world][hCONDITION] == 1) ? ("{00ff00}Открыть") : ("{ff0000}Закрыть"));                             SPD(playerid, DLG_HMENU, DIALOG_STYLE_LIST, "{ffd900}Меню дома", dialog, "Выбрать", "Закрыть");                             return 1;                         }                 }         }         return 1; } stock GoToInterior(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода\n\                         Нажмите \"H\", чтобы открыть меню дома");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; } stock GoToInteriorBiz(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; }  
       
      Что мне делать, подскажите пожалуйста?
    • Jdjdjd
      От Jdjdjd
      Как сделать открытие закрытие ворот в Радмир рп на копии,и куд а нужно вставлять код?
       
    • Мемен Томорли
      От Мемен Томорли
      Как создать команду /warns чтобы игрок смог просматривать активные варны у персонажа ??
      Типо как на Малиновка ЛП
    • Jocker
      От Jocker
      каждый бич может открыть меню парковки, тут есть проверка но она не работает, хелп плиз
       
      Код:   if IsPlayerInRangeOfPoint(playerid, 1.5, -2390.5017, 2702.4512, 14.5300) *then { if !TeamDuty{playerid} && PI[playerid][pMember]==2 != TEAM_RCPD *then return SCM(playerid, -1, "Вы не сост в организации."); SPD(playerid, 22222, DIALOG_STYLE_LIST, "{BE2D2D}Фракционная парковка","1. Tesla [3 ранг]\n\ 2. Tesla (3 ранг)\n\ 3. Skoda (4 ранг)\n\ 4. Skoda(4 ранг)\n\ 5. Audi (5 ранг)\n\ 6. Audi (5 ранг)\n\ 7. Mersedes (6 ранг)\n\ 8. Mersedes (6 ранг)\n\ 9. Тачка (7 ранг)\n\ 10. Тест (7 ранг)", "Выбрать", "Отмена"); }
      надо сделать чтобы бомж и типы с других организаций не смогли открыть парк. меню
      но оставить проверку на дежурство (teamduty)
    • Akcent RolePlay
      От Akcent RolePlay
      Akcent RolePlay — многопользовательская онлайн-игра, погружающая игроков в атмосферу Советского Союза, где каждый может ощутить уникальный вкус истории, культуры и общественной жизни этой великой страны. Игра предлагает широкий спектр возможностей для взаимодействия с окружающим миром, включая реализацию ролей, от трудяг на заводах до высокопоставленных партийных чиновников.

      Игроки могут выбирать свои профессии, создавать семьи и участвовать в политической жизни, принимая участие в выборах и обсуждениях, что добавляет элемент стратегии и реализма. Роскошные улицы Москвы в 80-х, многолюдные рынки и уютные дворы становятся идеальной площадкой для серьезных разборок, дружеских встреч и неожиданных событий.

      Кроме того, Akcent RolePlay включает в себя разнообразные квесты, позволяющие познавать не только игровой сюжет, но и элементы настоящей истории, такие как важные события, культурные достижения и социальные изменения того времени. Разнообразие игровых механизмов и глубокая проработка персонажей делают каждую сессию уникальной и насыщенной, погружая игроков в многослойный и яркий мир Советского Союза.