Cоздание худа с запотевание стекла.
Сначала лезем в \gamedata\scripts, создаем там, например, mask_hud.script и в созданном файле пишем:
local currhud
local curr_tex

local hud_tbl = {
exo_outfit = "hud_exo" ,
scientific_outfit = "hud_sci" ,
dolg_scientific_outfit = "hud_sci"

}

local current_static
local static_enabled
local current_zoom=1
local update_hud=false

function set_hud_tex(static,enabled)
local zoom=67.5/device().fov
zoom=(zoom-1)*1.5+1
if zoom<1.001 then
zoom=1.001
end
local stretchy.75/(math.floor(device().aspect_ratio*1000)/1000)
if stretchy<1 then stretchy=1 end
local rect={x=-768*zoom+768,y=(-512*zoom+512)*stretchy-(stretchy-1)*300,w=1024*zoom,h=768*zoom*stretchy}
set_blurs(enabled and curr_tex~="hud_sci" and static~=nil,rect)
if enabled==static_enabled and current_static==static and
zoom==current_zoom and (not update_hud) then
return
end
update_hud=false
current_zoom=zoom
local need_change=false
if current_static~=static then
if current_static then
get_hud():RemoveCustomStatic(current_static)
end
if static then
get_hud():AddCustomStatic(static)
end
need_change=true
current_static=static
end
local wnd=get_hud():GetCustomStatic(current_static) and
get_hud():GetCustomStatic(current_static):wnd()
if (not enabled) and wnd then
wnd:SetWidth(0)
elseif wnd then
wnd:SetWndRect(Frect():set(rect.x,rect.y,rect.w,rect.h))
end
static_enabled=enabled
end

local blurs=nil
local blurval -- уровень запотевания от 0 до 1
local blurlt -- время последнего обновления
local blurcyctime -- время начала последнего цикла дыхания (выдох)
local blurlastphase

function set_blurs(enabled,rect)
if (not blurs) or get_hud():GetCustomStatic("hud_blur1")==nil then
blurs={}
for i=1,4 do
get_hud():AddCustomStatic("hud_blur"..i)
blurs[i]=get_hud():GetCustomStatic("hud_blur"..i):wnd()
blurs[i]:SetWidth(0)
end
end
if not enabled then
for i=1,4 do
blurs[i]:SetWidth(0)
end
return
end

-- Циклы в зависимости от силы дыхания: 0->1->0 0->1->2->4->5->0 0->1->2->3->4->5->0 5->4->3->4->5 4->3->4
local power=db.actor.power
local period=1.0+power*power*1.0 -- текущая частота дыхания от 30 до 120 циклов в минуту
local expirt.3
local breathpower=3

local delta=(time_global()-blurlt)/1000 -- дельта в секундах
local phase=(time_global()-blurcyctime)/1000 -- фаза дыхательного цикла в сек.
blurlt=time_global()
if phase>period then
phase=phase%period
blurcyctime=blurlt-phase*1000
end
if blurlastphase>phase then
blurlastphase
end

local blurdelta=delta*-0.7 -- работа вентилляции
if blurlastphase blurdelta=blurdelta+(phase-blurlastphase)*breathpower
elseif blurlastphase blurdelta=blurdelta+(expirt-blurlastphase)*breathpower
end
blurlastphase=phase

blurval=blurval+blurdelta
if blurval>0.999 then
blurval.999
elseif blurval<0 then
blurval
end

local tm=math.floor(blurval*3)
local tmn=(tm+1)
local v=blurval*3-math.floor(blurval*3)
v=1-v
local v1=1-v
if tm~ then
blurs[tm]:SetColor(GetARGB(v*255,255,255,255))
end
if tmn~ then
blurs[tmn]:SetColor(GetARGB(v1*255,255,255,255))
end
for i=1,4 do
if i==tm or i==tmn then
blurs[i]:SetWndRect(Frect():set(rect.x,rect.y,rect.w,rect.h))
else
blurs[i]:SetWndRect(Frect():set(rect.x,rect.y,0,0))
end
end
end

local freemem = 0
function time_count()
if db.actor ~= nil then
local chkfreetime = time_global()
if freemem == 0 then freemem = time_global() + 100 end
if chkfreetime > freemem then
freemem = 0
check_hud()
end
end
end

function check_hud()
local hudotf=db.actor:get_current_outfit()
local hudotf_id="nil"
if hudotf then
hudotf_id=hudotf:section()
end
local tex
if hudotf_id then
tex = hud_tbl[hudotf_id]
end
curr_tex=tex
local act_it=db.actor:active_item()

if db.actor.health>0 and not (act_it and act_it:section()=="wpn_binoc" and device().fov<50) and device().fov>30 then
set_hud_tex(tex,true)
else
set_hud_tex(tex,false)
end
end

Сохраняем.
Поясню, что в local hud_tbl:
exo_outfit - костюм;
hud_exo - текстура
Таким образом, здесь можно сделать сколько угодно костюмов и масок к ним.

Далее нам нужно зарегистрировать наш скрипт и функции в нем. В папке scripts находим xr_detector.script и ищем там функцию function actor_detector:update() , затем после нее пишем:
mask_hud.script.time_count()

Получится примерно так:
function actor_detector:update()

mask_hud.script.time_count()

Все, со скриптами закончено.

Теперь в \config\ui ищем файл ui_custom_msgs.ltx и в конце, перед пишем:

hud\breath1

hud\breath2

hud\breath5

hud\breath3

hud\breath4

hud\hud_sci

hud\hud_exo

Сохраняем. Теперь кое-что поясню: первая неразделимая часть - это текстуры запотевания. Их не трогаем. А hud_sci и hud_exo - текстуры самих масок. Их вы можете сделать сколько угодно, при этом записать их в вашем созданном скрипте, в local hud_tbl.

Плюсануть
Поделиться
Класснуть
Запинить
Категория: Полезные статьи | Добавил: Djokers (31.01.2013)
Просмотров: 859 | Комментарии: 1 | Рейтинг: 3.0/2
Всего комментариев: 1
1 PaulGray
8894
  (20.06.2013 22:14)
wacko все равно не получилось

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Мини-профиль
Добрый вечер, Прохожий

К сожалению, наша видеокамера не распознала Вас. Предъявите документы или зарегистрируйтесь.
Интернет без назойливой рекламы! Скачай AdBlock!

Логин:
Пароль:

Меню сайта
Расширенное меню


Меню категорий

Энциклопедия [32]
Статьи о сталкере [15]
Полезные статьи [36]
Любительские рассказы [22]
Уроки моддинга [1]

Мини-чат

Новые сообщения на форуме
ПДА Страж (Roza)
Дата: 07.12.2016
Бар "Припять"
Дата: 07.12.2016
Ролевой мир
Дата: 06.12.2016
vk.com
Дата: 06.12.2016
Ночь в ЧЗО
Дата: 06.12.2016
Бар 100 Рентген
Дата: 06.12.2016

Поиск

Группа Вконтакте (new)

Статистика
Stalker Mods - лучший сайт по Сталкеру! Мир Геймеров В тылу врага, моды, аддоны и другое! Новости общение и многое другое, у нас на exelent731.ucoz.ru
Новости,файлы,общение и многое другое, у нас на world-survarium.ucoz.ru   Все в Бар-Реатор Тот самый S.T.A.L.K.E.R.

Моды Тени Чернобыля, Чистое Небо, Зов Припяти. Карты, Читы, Прохождение модовСкрипты, Графика, Шаблоны, Моды, Патчи, Ролевая - Всё для настоящего сталкера!
Все для игры Stalker. Моды, патчи, трейнеры, читы, сохранения, билды.
Онлайн всего: 8
Гостей: 7
Пользователей: 1
Serviceubb
Нас сегодня посетили:
Hardtmuth, Roza, 7sasha777, korsak, Gluck, XemorDio, Бармен, Silence30, steklodelxcy, Сталкер_Ильяс, Serviceyae, StraNNik, fedor412, August4u, Serviceubb, volt23, JamesTaivy, AnthonyTulge, SnaG1987, проблема, StAlKeR_odinochka, shtock

Хостинг от uCoz | Design by XemorDio | MODSTALKER © 2009-2016