Звук при использовании предмета — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Loxotron (обсуждение | вклад) |
|||
(не показаны 5 промежуточные версии 3 участников) | |||
Строка 28: | Строка 28: | ||
end | end | ||
</lua> | </lua> | ||
+ | |||
+ | Более компактный вариант: (да простит меня '''Nazgool''', но я уверен, что он и сам бы сделал именно так: | ||
+ | <lua> | ||
+ | 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 | ||
+ | </lua> | ||
+ | |||
Сохраняем. | Сохраняем. | ||
Строка 55: | Строка 78: | ||
Автор статьи: batment | Автор статьи: batment | ||
− | Автор скрипта: | + | Автор скрипта: Nazgool |
Переправка оформления: VIKman | Переправка оформления: VIKman | ||
Строка 61: | Строка 84: | ||
Слегка подправил ошибки: гопыч | Слегка подправил ошибки: гопыч | ||
− | [[Категория: | + | Второй вариант скрипта: |
+ | Erlik | ||
+ | [[Категория:Скрипты]] |
Текущая версия на 06:26, 19 августа 2014
Создаете скрипт имя_файла.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
Более компактный вариант: (да простит меня Nazgool, но я уверен, что он и сам бы сделал именно так:
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
Автор скрипта: Nazgool
Переправка оформления: VIKman
Слегка подправил ошибки: гопыч
Второй вариант скрипта: Erlik