SoC. Добавление пси-выброса на Янтарь — S.T.A.L.K.E.R. Inside Wiki

SoC. Добавление пси-выброса на Янтарь

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

Перейти к: навигация, поиск

В этот туторе я (Valeras(Добряк)) хочу объяснить, как добавить похожий пси-выброс на Янтарь как в ЧН. Правда есть один недостаток. Он появляется всегда в начале, как загружаешь любой сейв на Янтаре, но думаю, это не сильный недостаток. Автор не я, благодарность Shadows за скрипт выброса из его "Shadows Addon" aka Phantoms Zone.


Ну что ж, начнём.


Создаём функцию пси-выброса


Для этого создаём новый скрипт. Пускай yantar_psy_blowout.script и пишем туда:


function update()
yantar_psy_blowout()
end

local next_blowout = 0
local effects_off = 0
function yantar_psy_blowout()
if level.name()=="l08_yantar" then ; имя локации, на которой будет пси-выброс
if not has_alife_info("yan_labx16_switcher_3_end") and next_blowout < time_global() then
next_blowout = time_global() + 300000 ; время между пси-выбросами
effects_off = time_global() + 30000 ; его длительность
db.actor.psy_health = -0.45 ; количество здоровья, которое отнимается при нём
play_sound([[characters_voice\scenario\yantar\psy_voices_1]]) ; ссылка на звук во время пси-выброса
play_sound([[ambient\blowout]]) ; звук начала выброса
level.add_call(yantar_psy_blowout_timer, yantar_psy_blowout_off)
level.add_pp_effector("psy_antenna.ppe", 1875, true)
level.add_pp_effector("yantar_underground_psi.ppe", 1876, false)
level.add_cam_effector("camera_effects\\shell_shock.anm", 396, false, "")
level.add_cam_effector("camera_effects\\earthquake.anm", 397, false, "")
end
end
end

function yantar_psy_blowout_timer()
return time_global() > effects_off
end

function yantar_psy_blowout_off()
level.remove_pp_effector(1875)
end

function play_sound(sound,obj)
if obj == nil then obj = db.actor end
snd = xr_sound.get_safe_sound_object(sound)
snd:play_no_feedback(obj,sound_object.s2d,0,vector(),1.0)
end

Регистрация в bind_stalker.script


Открываем bind_stalker.script и находим
--' Вывод сообщения о большой радиации
if self.object.radiation >= 0.7 then
local hud = get_hud()
local custom_static = hud:GetCustomStatic("cs_radiation_danger")
if custom_static == nil then
hud:AddCustomStatic("cs_radiation_danger", true)
hud:GetCustomStatic("cs_radiation_danger"):wnd():SetTextST("st_radiation_danger")
end
else
local hud = get_hud()
local custom_static = hud:GetCustomStatic("cs_radiation_danger")
if custom_static ~= nil then
hud:RemoveCustomStatic("cs_radiation_danger")
end
end


И пишем это:


yantar_psy_blowout.update()


Всё, готово. Правда вам необходимо добавить звук blowout.ogg


Качаем его отсюда http://rusfolder.com/33743634 и добавляем в sounds/ambient
Всё, готово. Идите и проверяйте!) Удачи.

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