Скрипт, который позволяет очистить кеш буфера повтора не выходя из игры. Не забываем забиндить кнопку (Рекомендую END)
C-подобный:
local obs = obslua
local ffi = require("ffi")
ffi.cdef[[
bool Beep(uint32_t dwFreq, uint32_t dwDuration);
]]
local is_manual_reset = false
local hotkey_id = obs.OBS_INVALID_HOTKEY_ID
function restart_replay_buffer()
obs.timer_remove(restart_replay_buffer)
if not obs.obs_frontend_replay_buffer_active() then
obs.obs_frontend_replay_buffer_start()
ffi.C.Beep(800, 150)
end
is_manual_reset = false
end
function on_event(event)
if event == obs.OBS_FRONTEND_EVENT_REPLAY_BUFFER_STOPPED then
if is_manual_reset then
obs.timer_add(restart_replay_buffer, 100)
end
end
end
function reset_trigger(pressed)
if not pressed then return end
if obs.obs_frontend_replay_buffer_active() then
is_manual_reset = true
ffi.C.Beep(300, 100)
obs.obs_frontend_replay_buffer_stop()
else
obs.obs_frontend_replay_buffer_start()
ffi.C.Beep(800, 150)
end
end
function script_load(settings)
obs.obs_frontend_add_event_callback(on_event)
hotkey_id = obs.obs_hotkey_register_frontend("manual_replay_reset", "Сбросить буфер (без сохранения)", reset_trigger)
local hotkey_save_array = obs.obs_data_get_array(settings, "manual_replay_reset")
obs.obs_hotkey_load(hotkey_id, hotkey_save_array)
obs.obs_data_array_release(hotkey_save_array)
end
function script_save(settings)
local hotkey_save_array = obs.obs_hotkey_save(hotkey_id)
obs.obs_data_set_array(settings, "manual_replay_reset", hotkey_save_array)
obs.obs_data_array_release(hotkey_save_array)
end
function script_description()
return "Сбрасывает буфер повтора горячей клавишей без записи файла на диск."
end