SoC. Добавление пси-выброса на Янтарь
Материал из S.T.A.L.K.E.R. Inside Wiki
Версия от 22:09, 4 декабря 2012; 46.72.40.244 (обсуждение)
В этот туторе я (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
Всё, готово. Идите и проверяйте!) Удачи.