В версии 0.3x появилось несколько новых функций, несколько из которых позволяют сменить текстуру у созданного объекта на текстуру, взятую с другого объекта.
Эта функция называется SetObjectMaterial.
Для примера создадим 2 объекта функцией CreateObject
Ко всем new
В OnGameModeInit/OnFilterScriptInit
Код
obj[0] = CreateObject(19366, 1806.74890, -1911.60120, 14.90524, 0.0, 0.0, 0.0);
obj[1] = CreateObject(19366, 1806.76611, -1915.66394, 14.90524, 0.0, 0.0, 0.0);
19366 - ID стены с текстурой темного дерева
Теперь нам нужно найти объект, текстуру которого мы будем использовать. Для нахождения текстур я использую программу SA-MP:Map Construction(более продвинутые могут воспользоваться TXD Workshop'ом).
Я выбрал одну из текстур авианосца.
Для изменения текстуры объекта нам нужно узнать название .txd-файла, в котором эта текстура находится.
Название .txd-файла указано в Texture
Теперь возвращаемся к нашим объектам.
После строк с объектами меняем текстуру только первому объекту
Код
SetObjectMaterial(obj[0], 0, 10770, "carrier_sfse", "ws_shipmetal4", 0xFFFFFFFF);
obj[0] - ID объекта
0 - индекс текстуры модели, которую мы меняем
10770 - ID модели, текстуру которой мы используем
"carrier_sfse" - название .txd-файла
"ws_shipmetal4" - название текстуры
0xFFFFFFFF - цвет текстуры(используется формат ARGB, не RGBA!!)
Компилируем, все должно получиться без ошибок. Запускаем сервер, заходим в игру и видим результат:
Первый объект изменил свою текстуру на более светлую. Теперь попробуем сменить цвет текстуры.
Для этого заменяем 0xFFFFFFFF на 0xFF47ffb8(не забываем про формат)
Теперь текстура стала зеленого цвета
Урок подготовлен специально для сайта www.SAMP-TEAM.com
© [S]ilverbac[k]
Копирование запрещено.