@CiberZold Вот твое полотно, в более компактном и читабельном виде, про хранилище видимо ты тоже не в курсе
local snd_nv_work = xr_sound.get_safe_sound_object( "interface\\nv_loop" )
function check_outfit_nv()
local nightvision_section
local outfit = db.actor:get_current_outfit()
local snd_obj = xr_sound.get_safe_sound_object([[interface\nv_off]])
if outfit then
local outfit_section = outfit:section()
nightvision_section = get_string(outfit_section, "nightvision_sect")
if nightvision_section then
local nightvision_effector = get_string(nightvision_section, "pp_eff_name")
level.add_pp_effector(nightvision_effector, 2522, true)
db.actor:give_info_portion("nv_on")
snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 9.0)
end
end
if not outfit or not nightvision_section then
level.remove_pp_effector(2522)
db.actor:disable_info_portion("nv_on")
if snd_nv_work and snd_nv_work:playing() then
snd_nv_work:stop()
end
snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 9.0)
end
end
А тут даже кейлогер не нужен, кастомные клавиши в движке есть их и в настройки можно выносить