Звук при использовании предмета — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Erlik (обсуждение | вклад) |
|||
Строка 42: | Строка 42: | ||
function use_snd(obj) | function use_snd(obj) | ||
− | if obj and tSound[obj:section()] then | + | if obj and tSound[obj:section()] then |
− | + | local snd = xr_sound.get_safe_sound_object(tSound[obj:section()]) | |
− | + | if snd then | |
− | + | snd:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 2.0) | |
+ | end | ||
end | end | ||
− | end | + | end |
</lua> | </lua> | ||
Версия 15:56, 10 января 2011
Создаете скрипт имя_файла.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
Более компактный вариант: (да простит меня Gun12, но я уверен, что он и сам бы сделал именно так:
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()] then local snd = xr_sound.get_safe_sound_object(tSound[obj:section()]) if snd then snd:play_no_feedback(db.actor, sound_object.s2d, 0, 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
Все, теперь при использовании предмета будет проигрыватся звук.
Автор статьи: batment
Автор скрипта: Gun12
Переправка оформления: VIKman
Слегка подправил ошибки: гопыч
Второй вариант скрипта: Erlik