Сповіщення
Очистити все
15.10.2023 12:59
Створюєте скрипт ім'я_файлу.script , туди пишете:
function use_snd ( obj ) local obj_sect = obj:section ( ) local snd if obj_sect == 'ваш предмет' then snd = [ [ Шлях_до_звуку_відносно_папки_sounds ] ] elseif obj_sect == 'ваш предмет' then snd = [ [ Шлях_до_звуку_відносно_папки_sounds ] ] elseif obj_sect == 'ваш предмет' then snd = [ [ Шлях_до_звуку_відносно_папки_sounds ] ] elseif obj_sect == 'ваш предмет' then snd = [ [ Шлях_до_звуку_відносно_папки_sounds ] ] end if snd then local snd_obj = xr_sound.get_safe_sound_object ( snd ) snd_obj:play_no_feedback ( db.actor, sound_object.s2d, 0 , vector ( ) , 1.0 ) end end
Більш компактний варіант:
local tSound = { medkit = "interface \\ inv_medkit" , kolbasa = "interface \ inv_food" , vodka = "interface \\ inv_vodka" , energy_drink = "interface \\ inv_softdrink" , bandage = "interface \\ inv_bandage" , antirad = "interface \\ inv_pills" } ( замість зазначених у таблиці предметів і звуків можна вказати свої ) function use_snd ( obj ) if obj and tSound [ obj:section ( ) ] local snd = xr_sound.get_safe_sound_object ( tSound [ obj :section ( ) ] ) if snd the snd:play_no_feedback ( db.actor, sound_object . vector ( ) , 2.0 ) end end end
Зберігаємо.
Відкриваємо bind_stalker.script і в функцію function actor_binder:net_destroy() пишемо:
self.object:set_callback ( callback.use_object, nil )
і в функцію actor_binder:reinit() пишемо:
self.object:set_callback ( callback.use_object, self.use_object, self )
і в цьому файлі створюємо функцію:
function actor_binder:use_object ( obj ) ім'я_вашого_скрипта.use_snd ( obj ) end
Все, тепер при використанні предмета програється звук.