PDA

Просмотр полной версии : [Урок] Замена текстур у стандартных объектов GTA San Andreas



Axemarron4ik
02.08.2014, 03:00
Добрый день дорогие пользователи портала Pro-Pawn.ru. Сейчас я вам расскажу как можно заменить текстуры у стандартных зданий в всеми нами любимой Гта'шки.
Для этого нам понадобятся следующие программки:

1. Map Construction (Ссылка на скачивание) (http://g.zeos.in/?q=%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20txd%20workshop)
2. TxD WorkShop (Ссылка на скачивание) (http://pro-pawn.ru/showthread.php?2125-Map-Construction)
3. Pawno
4. SAMP + Gta San Andreas

:trollface:

И так приступим к делу:
Открываем "Map Construction" и нажимаем "Load"

http://s45.radikal.ru/i109/1408/44/4fc19878b06f.jpg

Ищем тот объект у которого будим заменять текстуру. В моем случае это будет здание ЖД Вокзала.

http://s019.radikal.ru/i600/1408/b3/1a42fd1e4448.jpg

Выделяем его и копируем.

http://s60.radikal.ru/i169/1408/64/e46a451b9d53.jpg

Еще раз выделяем наш объект и открываем вкладку "Movеment" и копируем координату "Z" - то-есть высота, и изменяем ее на +5-10 единиц.

http://s018.radikal.ru/i519/1408/a4/6252baf41d48.jpg

Как вы видите объект поднялся, теперь выделяем объект которые находится под ним, и удаляем его.

http://s016.radikal.ru/i335/1408/cf/380a7c543433.jpg

Снова выделяем объект которые мы подняли, опять же заходим во вкладку "Movement" и вставляем координату которую мы скопировали ранее.

http://s018.radikal.ru/i506/1408/7a/825936458166.jpg

Теперь наш объект готов к замене текстур. Нажимаем 2 раза на наш готовы объект, и выделяем название текстуры.

http://s009.radikal.ru/i309/1408/07/31eaf5cdb279.jpg

Сворачиваем "Map Construction" и открываем "TxD WorkShop".

http://s015.radikal.ru/i332/1408/d4/7a7af74d744a.jpg

Нажимаем на кнопку "Open IMG" и открываем Файл "gta3.img"

http://i074.radikal.ru/1408/2b/6968f55711c1.jpg

В окошке поиска мы вводим название файла с текстурами, и ищем ту текстуру которую мы будим заменять.

http://s019.radikal.ru/i625/1408/a5/cf8d6d5eb74b.jpg

Теперь открываем опять "Map Construction" Если у вас еще открыто свойства предмета то в верхнем окошке мы ищем название нашей текстуры. Нам нужно запомнить номер "Material". У меня будет номер = 5.

http://s020.radikal.ru/i707/1408/c1/229d1d4cf185.jpg

Теперь открываем вкладку "Show Code" и копируем код. Теперь можно закрыть программу, так же на больше не понадобится "TxD WorkShop", мы его тоже закрываем.

http://s41.radikal.ru/i093/1408/da/94d19b9ce6d1.jpg

Настало время писать код. Открываем "Pawno" и в поиске вбиваем "public OnPlayerConnect(playerid)" и ищем следующую строчку "RemoveBuildingForPlayer" и в конец добавляем нашу. Я уже добавил так что не буду менять.

http://s020.radikal.ru/i717/1408/16/fce088c3a488.jpg
http://s018.radikal.ru/i505/1408/c2/cb40ba76023f.jpg
http://i079.radikal.ru/1408/77/fe832e2ac0da.jpg

Теперь идем в "public OnGameModeInit()" к нашим объектам. Создаем переменную(Любую) и пишем сколько будет у нее объектов. Если мы заменяем один то пишем 1. На следующую строчку вставляем наш объект и перед ним пишем нашу переменную и "[0] =" (Doroga[0] = Create..). Теперь напишем строчку с заменой текстуры.

http://s56.radikal.ru/i152/1408/5f/006a9134a4f8.jpg
http://s019.radikal.ru/i618/1408/17/55dd8e0a863f.jpg
http://s45.radikal.ru/i107/1408/d0/fc8adeae82c0.jpg



new Doroga[2];
Doroga[0] = CreateObject(5033, 1745.20313, -1882.85156, 26.14060, 0.00000, 0.00000, 0.00000);
SetObjectMaterial(Doroga[0], 5, 9495, "vict_sfw", "newall10_seamless", 0);

SetObjectMaterial(Doroga[0], Material id (Который мы смотрели в "Map Construction"), id Файла Текстуры, "Название Файла Текстуры", "И название Самой Текстуры", Цвет Текстуры);


Текстуры можно найти здесь: Жмякни (http://textures.future-elife.com/)

Все теперь компилируем мод и смотрим что у нас получилось.

http://s019.radikal.ru/i601/1408/ed/da8e9c6a6077.png

Можно еще сделать так:

http://s020.radikal.ru/i709/1408/a0/1a965ef497e7.png

Вот так это все легко. С Вами был "Axemarron4ik". Пока.

P.S. Кому я помог и кому понравился мой урок, не ленитесь и ставьте "Спасибо".
P.S.S. Прошу камнями не кидаться, так как подобного я не видел (Я не считаю замену текстур). Я так думаю что многие даже да такого не догадались бы.

Axemarron4ik
03.08.2014, 00:00
Подыму!!! Комментируем, а то не одного комментария нету!!!

Osetin
03.08.2014, 00:06
Не плохой урок, нужно будет попробовать в ней поработать.

underwoker
03.08.2014, 01:01
Последний скрин подкинул идею) Спасибо!)

Camelot
03.08.2014, 02:06
Делал раньше так, только разочаровался в том, что объект пропадает и вместо него дырка.

Axemarron4ik
03.08.2014, 11:45
Не плохой урок, нужно будет попробовать в ней поработать.

Спасибо. Идеей создания урока послужила эта работа:

[MAP] Мэрия LS как на Flagman RP (http://pro-pawn.ru/showthread.php?9790-%D0%9C%D1%8D%D1%80%D0%B8%D1%8F-LS-%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0-Flagman-RP)


Последний скрин подкинул идею) Спасибо!)

Всегда пожалуйста.


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

Используй CreateObject а не CreateDynamicObject. Будут быстрее прорисовываться. Плюс таких объектов не много от силы 100-200 штук получится если ты будишь у многих зданий менять текстуры, а лимит на 1000.

Camelot
03.08.2014, 12:30
Используй CreateObject а не CreateDynamicObject. Будут быстрее прорисовываться. Плюс таких объектов не много от силы 100-200 штук получится если ты будишь у многих зданий менять текстуры, а лимит на 1000.

Сам маппер по-жизни. Знаю что это такое, но это не то( Использую данную функцию только для интов. А вообще, молодец. Про сайт с текстурами не знал. Раньше через Конструктор узнавал.

Axemarron4ik
03.08.2014, 15:28
Сам маппер по-жизни. Знаю что это такое, но это не то( Использую данную функцию только для интов. А вообще, молодец. Про сайт с текстурами не знал. Раньше через Конструктор узнавал.

Я тоже раньше не знал про него, но друг подсказал, а CreateObject лучше всего использовать для пола в интерьерах, что-бы не падать сквозь текстуры, а остальные объекты можно сделать на CreateDynamicObject (Я имею ввиду потолок, стены, мебель и т.д), или можно сделать все на CreateDynamicObject, и при телепорте по пикапу замораживать игрока на пару секунд, для прогрузки объектов.

P.S. Спасибо! :good:

MR_BEN
03.08.2014, 15:58
Ссылки перепутал вверху(txd workshop ищет map construction,map construction ищет txd workshop )

Axemarron4ik
03.08.2014, 16:35
Ссылки перепутал вверху(txd workshop ищет map construction,map construction ищет txd workshop )

Сейчас исправлю. Спать тогда уже хотел! :)

DeimoS
16.08.2014, 04:56
Используй CreateObject а не CreateDynamicObject. Будут быстрее прорисовываться. Плюс таких объектов не много от силы 100-200 штук получится если ты будишь у многих зданий менять текстуры, а лимит на 1000.

При использовании CreateObject и CreateDynamicObject вместе, вы уменьшаете лимиты объектов, которые стример может прогрузить вокруг игрока. То есть, если у вас лимитом стоит 500 объектов и вы создадите 500 полов через CreateObject, объекты стримера игрок больше не увидит. Так что злоупотреблять не стоит :)

~N1cE
18.11.2014, 00:18
Почему-то выкаблучивается :С В чем дело?

C:\Users\Admin\Desktop\SternLife\gamemodes\sl.pwn(9086) : error 017: undefined symbol "SetObjectMaterial"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

sanyaretro
22.02.2019, 22:10
Спасибо урок ! А как код будет выглядеть если у меня несколько текстур на одном объекте ???!!! Допустим здание !

pocharka_ls = CreateDynamicObject(11008, 1297.3591, -1336.5802, 19.3129, 0.0000, 0.0000, 180.0000);//pocharka


SetDynamicObjectMaterial(pocharka_ls, 0, 0, "INVALID", "INVALID", -10370049);
SetDynamicObjectMaterial(pocharka_ls, 1, 0, "INVALID", "INVALID", -6927616);
SetDynamicObjectMaterial(pocharka_ls, 2, 0, "INVALID", "INVALID", -6927616);
SetDynamicObjectMaterial(pocharka_ls, 3, 0, "INVALID", "INVALID", -256);
SetDynamicObjectMaterial(pocharka_ls, 4, 0, "INVALID", "INVALID", -16777216);
SetDynamicObjectMaterial(pocharka_ls, 5, 0, "INVALID", "INVALID", -1);
SetDynamicObjectMaterial(pocharka_ls, 6, 0, "INVALID", "INVALID", -1);