Звук использования предметов — различия между версиями
м |
м |
||
Строка 94: | Строка 94: | ||
Таким образом, если вы все правильно настроили, при использовании предмета будет проигрываться звук. | Таким образом, если вы все правильно настроили, при использовании предмета будет проигрываться звук. | ||
− | == | + | == Источники == |
− | {{ | + | {{reflist|3}} |
[[Категория:Игровые архивы]][[Категория:Скрипты]][[Категория:F.A.Q.]] | [[Категория:Игровые архивы]][[Категория:Скрипты]][[Категория:F.A.Q.]] |
Текущая версия на 19:41, 27 июня 2022
Звук использования предметов | |
Автор | Nazgool, Erlik |
Дополнил | batment |
Тип статьи | руководство |
Актуальность | ТЧ, ЧН, ЗП |
Необходимый софт | Текстовый редактор |
Необходимые файлы | bind_stalker.script |
Чтобы добавить предмету звук при его использовании, нужно подключить к файлу bind_stalker.script специальный скрипт, и настроить его соответственно[1].
Путь: gamedata\scripts\
Создайте в нем с помощью любого текстового редактора скрипт имя_файла.script, и вставьте в него один из представленных ниже вариантов кода скрипта.
Основной
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
Наиболее предпочтителен, т.к. более удобен и прост.
Альтернативный
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
Менее предпочтительный по обратным от основного причинам.
Сохраните скрипт.
Откройте 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
Таким образом, если вы все правильно настроили, при использовании предмета будет проигрываться звук.