Сповіщення
Очистити все

Створення звуку під час використання предмету


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

Створюєте скрипт ім'я_файлу.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
 

Все, тепер при використанні предмета програється звук.


   
Цитата