SoC. Создаем худ маски — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

SoC. Создаем худ маски — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
(Работа со скриптами)
(Работа со скриптами)
 
(не показаны 12 промежуточные версии 6 участников)
Строка 9: Строка 9:
  
 
Первым делом в директории '''gamedata\scripts''' создайте файл с названием '''xr_mask.script'''
 
Первым делом в директории '''gamedata\scripts''' создайте файл с названием '''xr_mask.script'''
Открываем его и пишем:
+
 
<lua>function hud_gas()
+
Открываем его пишем:
   local slot = db.actor:item_in_slot(6)
+
<lua>local mask_section = {
  local object = db.actor:object("stalker_outfit") or db.actor:object("killer_outfit")
+
["stalker_outfit"] = true,
      if slot ~= nil and object ~= nil then
+
["killer_outfit"] = true
                local hud = get_hud()
+
}
                local custom_static = hud:GetCustomStatic("hud_gas")
+
 
                if custom_static == nil then
+
function hud_gas()
                        hud:AddCustomStatic("hud_gas", true)
+
   local outfit = db.actor:item_in_slot(6)
                end
+
    if outfit and mask_section[ outfit:section() ] then
        else
+
            get_hud():AddCustomStatic("hud_gasmask", true)
                local hud = get_hud()
+
    else
                local custom_static = hud:GetCustomStatic("hud_gas")
+
            get_hud():RemoveCustomStatic("hud_gasmask")
                if custom_static ~= nil then
+
    end
                        hud:RemoveCustomStatic("hud_gas")
+
                end
+
        end
+
 
end</lua>
 
end</lua>
  
 
Теперь поясню:
 
Теперь поясню:
<lua>function hud_gas() -- функция
+
<lua>local mask_section = { -- таблица с секциями костюмов, которым добавляем худ маски
   local slot = db.actor:item_in_slot(6) -- переменная - слот костюмов
+
["stalker_outfit"] = true,
  local object = db.actor:object("stalker_outfit") or db.actor:object("killer_outfit") -- переменная объектов, если именно этот костюм одет, запускаем текстуру
+
["killer_outfit"] = true
      if slot ~= nil and object ~= nil then -- соединяем переменную - слот костюмов и переменную объектов
+
}
                local hud = get_hud() -- переменная худа
+
 
                local custom_static = hud:GetCustomStatic("hud_gas") -- переменная худа в XML - описателе
+
function hud_gas()
                if custom_static == nil then -- проверяем переменную худа в XML - описателе
+
   local outfit = db.actor:item_in_slot(6) -- переменная костюма
                        hud:AddCustomStatic("hud_gas", true) -- тоже самое переменная худа в XML - описателе и ниже тому подобное
+
    if  outfit -- одет костюм
                end
+
        and -- и
        else
+
        mask_section[ outfit:section() ] -- нужна маска
                local hud = get_hud()
+
    then
                local custom_static = hud:GetCustomStatic("hud_gas")
+
            get_hud():AddCustomStatic("hud_gasmask", true) -- добавляем статик с текстурой маски
                if custom_static ~= nil then
+
    else -- иначе
                        hud:RemoveCustomStatic("hud_gas")
+
            get_hud():RemoveCustomStatic("hud_gasmask") -- удаляем статик маски
                end
+
    end
        end
+
 
end</lua>
 
end</lua>
  
Строка 64: Строка 60:
 
и в самом конце перед строкой: </header> пишем:
 
и в самом конце перед строкой: </header> пишем:
  
<pre><hud_gas x="0" y="0" width="1024" height="768" stretch="1">
+
<xml><hud_gasmask x="0" y="0" width="1024" height="768" stretch="1">
 
     <texture>hud\hud_gas</texture>
 
     <texture>hud\hud_gas</texture>
   </hud_gas></pre>
+
   </hud_gasmask></xml>
  
 
Теперь поясню:
 
Теперь поясню:
  
<pre><hud_gas x="0" y="0" width="1024" height="768" stretch="1">
+
<xml><hud_gasmask x="0" y="0" width="1024" height="768" stretch="1">
     <texture>hud\hud_gas</texture> -- текстура маски. Посмотрите внимательно в скрипте мы указывали '''hud_gas'''
+
     <texture>hud\hud_gas</texture> -- путь к файлу с текстурой маски. Посмотрите внимательно в скрипте мы указывали 'hud_gasmask'
   </hud_gas></pre>
+
   </hud_gasmask></xml>
  
 
===Текстура===
 
===Текстура===
Строка 80: Строка 76:
 
Открываем программой '''Adobe Photoshop''' и рисуем подходящую для вас маску.
 
Открываем программой '''Adobe Photoshop''' и рисуем подходящую для вас маску.
 
Как работать с текстурами описано в этой статье:
 
Как работать с текстурами описано в этой статье:
http://www.stalkerin.gameru.net/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83%D1%80
+
 
 +
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текстур

Вот и все! Начинаем новую игру, ищем костюм сталкера или наемника, надеваем и видим вашу текстуру.

Автор: Weanchester

Другие места
LANGUAGE