Перейти к содержимому


Фотография

Перекраска техники


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 OFFLINE   Armas

Armas

    Рядовой

  • Пользователи
  • 11 сообщений
  • Откуда:Moscow

Отправлено 07 August 2018 - 12:37

нужен скрипт позволяющий красить технику в какой либо цвет.
Спасибо.


  • 0

#2 OFFLINE   moroz89

moroz89

    Мл.сержант

  • Пользователи
  • 116 сообщений

Отправлено 07 August 2018 - 12:50

Наверное вы не в том разделе тему создали.
Если не ошибаюсь, вам нужна команда setObjectTexture
  • 0

#3 OFFLINE   Ego_Brain

Ego_Brain

    Ефрейтор

  • Пользователи
  • 49 сообщений
  • Откуда:Холмск

Отправлено 07 August 2018 - 12:53

нужен скрипт позволяющий красить технику в какой либо цвет.
Спасибо.

Писал смену текстур техники из набора, который поставляется с моделью. Думаю можно переделать, указать вместо текстур цвета и вызвать соответствующий BIS метод.

_colorTextures = [];
            
            if(count _colorConfigs > 0) then {
                _colorTextures pushback (getArray (configfile >> "CfgVehicles" >> typeof _veh >> "textureSources" >> configName (_colorConfigs select (lbCurSel 20015)) >> "textures"));
                
                _txtIndex = 0;
                {                    
                    _veh setObjectTextureGlobal [_txtIndex, _x];
                    _txtIndex = _txtIndex + 1;
                }    forEach (_colorTextures select 0);
            };

Извини что вырвано из контекста, но адаптируется под своё окружение элементарно.


Данный пример получается все доступные наборы текстур для объекта, и устанавливает выбранный набор.


  • 0

#4 OFFLINE   moroz89

moroz89

    Мл.сержант

  • Пользователи
  • 116 сообщений

Отправлено 07 August 2018 - 13:00


нужен скрипт позволяющий красить технику в какой либо цвет.
Спасибо.

Писал смену текстур техники из набора, который поставляется с моделью. Думаю можно переделать, указать вместо текстур цвета и вызвать соответствующий BIS метод.
_colorTextures = [];
            
            if(count _colorConfigs > 0) then {
                _colorTextures pushback (getArray (configfile >> "CfgVehicles" >> typeof _veh >> "textureSources" >> configName (_colorConfigs select (lbCurSel 20015)) >> "textures"));
                
                _txtIndex = 0;
                {                    
                    _veh setObjectTextureGlobal [_txtIndex, _x];
                    _txtIndex = _txtIndex + 1;
                }    forEach (_colorTextures select 0);
            };
Извини что вырвано из контекста, но адаптируется под своё окружение элементарно.

Данный пример получается все доступные наборы текстур для объекта, и устанавливает выбранный набор.
Правильно ли я понимаю, что для того, чтобы поменять текстуру, необходимо выбирать следующий элемент массива (senect 1 ... select N)?
  • 0

#5 OFFLINE   Ego_Brain

Ego_Brain

    Ефрейтор

  • Пользователи
  • 49 сообщений
  • Откуда:Холмск

Отправлено 07 August 2018 - 13:51

 

Данный пример получается все доступные наборы текстур для объекта, и устанавливает выбранный набор.
Правильно ли я понимаю, что для того, чтобы поменять текстуру, необходимо выбирать следующий элемент массива (senect 1 ... select N)?

 

Да правильно, главное нужного массива.

 

Посмотрел внимательней. Вначале необходимо извлечь доступные наборы текстур:

_colorConfigs = "true" configClasses (configfile >> "CfgVehicles" >> typeof _veh >> "textureSources");			

//-- _colorConfigs containes all object texture sets--

Здесь соответственно переменная _veh это ссылка на подопытный объект. Все доступные наборы извлечены и помещены в массив _colorConfigs.

Ну а далее заступает код, который я изначально привел. Нужно выбрать требуемый набор (индекс массива _colorConfigs):

_colorTextures = [];
			
if(count _colorConfigs > 0) then {
 _colorTextures pushback (getArray (configfile >> "CfgVehicles" >> typeof _veh >> "textureSources" >> configName (_colorConfigs select (lbCurSel 20015)) >> "textures"));
			
//--Участок кода ниже выполняет установку выбранного набора на объект-- 
_txtIndex = 0;
 {					
	_veh setObjectTextureGlobal [_txtIndex, _x];
	_txtIndex = _txtIndex + 1;
 }	forEach (_colorTextures select 0);
};

  • 1

#6 OFFLINE   xkor

xkor

    Рядовой

  • Пользователи
  • 4 сообщений
  • Откуда:Deeptown
  • Отряд:No

Отправлено 16 March 2019 - 12:30

помогите прикрутить его, мозги уже кипят


  • 0

#7 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 16 March 2019 - 17:40

что непонятно!?

_object = _this; // ссылка на объект которому меняем текстуры
_textures = ["texture\path\texture_1.paa", "texture\path\texture_2.paa", "texture\path\texture_3.paa"];

// или, сколько нужно поменять текстур, например одну
//_textures = ["texture\path\texture_1.paa"];

// или, объект имеет две текстуры, я хочу поменять вторую, первую оставить без изменения
//_textures = ["", "texture\path\texture_2.paa"];

{
	if !(_x == "") then {
		_object setObjectTextureGlobal [_foreachindex, _x];
	};
} foreach _textures;

ЗЫ

_foreachindex

системная переменная, не требует определения, принимает внутри итератора текущий индекс, автоматичестки.


Сообщение отредактировал SteelRat: 16 March 2019 - 18:23

  • 0

#8 OFFLINE   xkor

xkor

    Рядовой

  • Пользователи
  • 4 сообщений
  • Откуда:Deeptown
  • Отряд:No

Отправлено 17 March 2019 - 13:30

что непонятно!?

_object = _this; // ссылка на объект которому меняем текстуры
_textures = ["texture\path\texture_1.paa", "texture\path\texture_2.paa", "texture\path\texture_3.paa"];

// или, сколько нужно поменять текстур, например одну
//_textures = ["texture\path\texture_1.paa"];

// или, объект имеет две текстуры, я хочу поменять вторую, первую оставить без изменения
//_textures = ["", "texture\path\texture_2.paa"];

{
	if !(_x == "") then {
		_object setObjectTextureGlobal [_foreachindex, _x];
	};
} foreach _textures;

ЗЫ

_foreachindex

системная переменная, не требует определения, принимает внутри итератора текущий индекс, автоматичестки.

это в каком конфиге?


  • 0

#9 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 17 March 2019 - 21:49

 

это в каком конфиге?

Шутить изволите, Сударь !?

 

Начните ка лучше отсюда, и с самого начала. Тогда и подобных вопросов больше ни когда перед вами не станет.

https://arma3.ru/for...kriptopisaniiu/


  • 1




Яндекс.Метрика