SoC. Создаем худ маски — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(Новая страница: «===Теория=== Мне кажется многие задавались вопросом "Как же создать худ маски"? Немного пораз...») |
Monolith (обсуждение | вклад) (→Работа со скриптами) |
||
(не показаны 20 промежуточные версии 7 участников) | |||
Строка 2: | Строка 2: | ||
Мне кажется многие задавались вопросом "Как же создать худ маски"? | Мне кажется многие задавались вопросом "Как же создать худ маски"? | ||
Немного пораздумав, я создал функцию, которая крепит текстуру к определенному костюму. | Немного пораздумав, я создал функцию, которая крепит текстуру к определенному костюму. | ||
− | Опытным '''модмейкерам''' может показаться моя функция усложненной, но главное, что все '''работает и не | + | |
+ | Опытным '''модмейкерам''' может показаться моя функция усложненной, но главное, что все '''работает и не вылетает'''! | ||
===Практика=== | ===Практика=== | ||
Строка 8: | Строка 9: | ||
Первым делом в директории '''gamedata\scripts''' создайте файл с названием '''xr_mask.script''' | Первым делом в директории '''gamedata\scripts''' создайте файл с названием '''xr_mask.script''' | ||
− | Открываем его | + | |
− | <lua>function hud_gas() | + | Открываем его пишем: |
− | local | + | <lua>local mask_section = { |
− | + | ["stalker_outfit"] = true, | |
− | + | ["killer_outfit"] = true | |
− | + | } | |
− | + | ||
− | + | function hud_gas() | |
− | + | local outfit = db.actor:item_in_slot(6) | |
− | + | if outfit and mask_section[ outfit:section() ] then | |
− | + | get_hud():AddCustomStatic("hud_gasmask", true) | |
− | + | else | |
− | + | get_hud():RemoveCustomStatic("hud_gasmask") | |
− | + | end | |
− | + | ||
− | + | ||
− | + | ||
end</lua> | end</lua> | ||
Теперь поясню: | Теперь поясню: | ||
− | <lua>function hud_gas() | + | <lua>local mask_section = { -- таблица с секциями костюмов, которым добавляем худ маски |
− | local | + | ["stalker_outfit"] = true, |
− | + | ["killer_outfit"] = true | |
− | + | } | |
− | + | ||
− | + | function hud_gas() | |
− | + | local outfit = db.actor:item_in_slot(6) -- переменная костюма | |
− | + | if outfit -- одет костюм | |
− | + | and -- и | |
− | + | mask_section[ outfit:section() ] -- нужна маска | |
− | + | then | |
− | + | get_hud():AddCustomStatic("hud_gasmask", true) -- добавляем статик с текстурой маски | |
− | + | else -- иначе | |
− | + | get_hud():RemoveCustomStatic("hud_gasmask") -- удаляем статик маски | |
− | + | end | |
− | + | ||
end</lua> | end</lua> | ||
Теперь зайдем в '''bind_stalker.script''', который находится в '''gamedata\scripts''', | Теперь зайдем в '''bind_stalker.script''', который находится в '''gamedata\scripts''', | ||
найдем функцию: | найдем функцию: | ||
− | |||
function actor_binder:update(delta) | function actor_binder:update(delta) | ||
− | и после пишем: | + | и после пишем: xr_mask.hud_gas() |
− | xr_mask.hud_gas() | + | |
в итоге: | в итоге: | ||
− | function actor_binder:update(delta) | + | <lua>function actor_binder:update(delta) |
xr_mask.hud_gas() | xr_mask.hud_gas() | ||
object_binder.update(self, delta) | object_binder.update(self, delta) | ||
local time = time_global() | local time = time_global() | ||
− | game_stats.update (delta, self.object) | + | game_stats.update (delta, self.object)</lua> |
===Работа с XML - описателем=== | ===Работа с XML - описателем=== | ||
Строка 65: | Строка 60: | ||
и в самом конце перед строкой: </header> пишем: | и в самом конце перед строкой: </header> пишем: | ||
− | < | + | <xml><hud_gasmask x="0" y="0" width="1024" height="768" stretch="1"> |
<texture>hud\hud_gas</texture> | <texture>hud\hud_gas</texture> | ||
− | </ | + | </hud_gasmask></xml> |
Теперь поясню: | Теперь поясню: | ||
− | < | + | <xml><hud_gasmask x="0" y="0" width="1024" height="768" stretch="1"> |
− | <texture>hud\hud_gas</texture> -- | + | <texture>hud\hud_gas</texture> -- путь к файлу с текстурой маски. Посмотрите внимательно в скрипте мы указывали 'hud_gasmask' |
− | </ | + | </hud_gasmask></xml> |
===Текстура=== | ===Текстура=== | ||
Теперь заходим в '''gamedata\textures\ui''', находим файл с названием '''ui_mainmenu.dds'''. | Теперь заходим в '''gamedata\textures\ui''', находим файл с названием '''ui_mainmenu.dds'''. | ||
− | Копируем его, заходим в '''gamedata\textures\hud''' вставляем его и переминуем в '''hud_gas''' | + | Копируем его, заходим в '''gamedata\textures\hud''' вставляем его и переминуем в '''hud_gas.dds''' |
− | Открываем программой '''Adobe Photoshop''' и рисуем подходящую для вас | + | Открываем программой '''Adobe Photoshop''' и рисуем подходящую для вас маску. |
− | Вот и все! Начинаем новую игру ищем костюм сталкера или наемника, надеваем и видим вашу текстуру. | + | Как работать с текстурами описано в этой статье: |
− | + | ||
+ | http://www.stalkerin.gameru.net/wiki/index.php/Изменение%20текстур | ||
+ | |||
+ | Вот и все! Начинаем новую игру, ищем костюм сталкера или наемника, надеваем и видим вашу текстуру. | ||
===Автор: Weanchester=== | ===Автор: Weanchester=== | ||
+ | [[Категория:Скрипты]] [[Категория:Texturing]] |
Текущая версия на 14:25, 9 июня 2015
Содержание
Теория
Мне кажется многие задавались вопросом "Как же создать худ маски"? Немного пораздумав, я создал функцию, которая крепит текстуру к определенному костюму.
Опытным модмейкерам может показаться моя функция усложненной, но главное, что все работает и не вылетает!
Практика
Работа со скриптами
Первым делом в директории gamedata\scripts создайте файл с названием xr_mask.script
Открываем его пишем:
local mask_section = { ["stalker_outfit"] = true, ["killer_outfit"] = true } function hud_gas() local outfit = db.actor:item_in_slot(6) if outfit and mask_section[ outfit:section() ] then get_hud():AddCustomStatic("hud_gasmask", true) else get_hud():RemoveCustomStatic("hud_gasmask") end end
Теперь поясню:
local mask_section = { -- таблица с секциями костюмов, которым добавляем худ маски ["stalker_outfit"] = true, ["killer_outfit"] = true } function hud_gas() local outfit = db.actor:item_in_slot(6) -- переменная костюма if outfit -- одет костюм and -- и mask_section[ outfit:section() ] -- нужна маска then get_hud():AddCustomStatic("hud_gasmask", true) -- добавляем статик с текстурой маски else -- иначе get_hud():RemoveCustomStatic("hud_gasmask") -- удаляем статик маски end end
Теперь зайдем в bind_stalker.script, который находится в gamedata\scripts, найдем функцию: function actor_binder:update(delta) и после пишем: xr_mask.hud_gas() в итоге:
function actor_binder:update(delta) xr_mask.hud_gas() object_binder.update(self, delta) local time = time_global() game_stats.update (delta, self.object)
Работа с XML - описателем
Итак, заходим в директорию gamedata\config\ui, находим файл с названием ui_custom_msgs, открываем его и в самом конце перед строкой: </header> пишем:
<hud_gasmask x="0" y="0" width="1024" height="768" stretch="1"> <texture>hud\hud_gas</texture> </hud_gasmask>
Теперь поясню:
<hud_gasmask x="0" y="0" width="1024" height="768" stretch="1"> <texture>hud\hud_gas</texture> -- путь к файлу с текстурой маски. Посмотрите внимательно в скрипте мы указывали 'hud_gasmask' </hud_gasmask>
Текстура
Теперь заходим в gamedata\textures\ui, находим файл с названием ui_mainmenu.dds. Копируем его, заходим в gamedata\textures\hud вставляем его и переминуем в hud_gas.dds Открываем программой Adobe Photoshop и рисуем подходящую для вас маску. Как работать с текстурами описано в этой статье:
http://www.stalkerin.gameru.net/wiki/index.php/Изменение%20текстур
Вот и все! Начинаем новую игру, ищем костюм сталкера или наемника, надеваем и видим вашу текстуру.