[CS] Sound logger
- don't know if this exists or not but i needed it for a project and couldn't find anything online and found it useful when creating custom characters - it just has a on screen display of the string that is being called when ever your character makes a sound
-- name: [CS] Sound Logger
-- description: Tracks full CHAR_SOUND code strings -\\#FFFF00\\-R\\#D4FF00\\e\\#88FF00\\ef-
local sound_history = {}
local MAX_LOGS = 20
local show_sound_logger = true
local sound_names = {}
local function add_sound(id, name)
if id ~= nil then sound_names[id] = name end
end
add_sound(CHAR_SOUND_OKEY_DOKEY, "CHAR_SOUND_OKEY_DOKEY")
add_sound(CHAR_SOUND_LETS_A_GO, "CHAR_SOUND_LETS_A_GO")
add_sound(CHAR_SOUND_PUNCH_YAH, "CHAR_SOUND_PUNCH_YAH")
add_sound(CHAR_SOUND_PUNCH_WAH, "CHAR_SOUND_PUNCH_WAH")
add_sound(CHAR_SOUND_PUNCH_HOO, "CHAR_SOUND_PUNCH_HOO")
add_sound(CHAR_SOUND_YAH_WAH_HOO, "CHAR_SOUND_YAH_WAH_HOO")
add_sound(CHAR_SOUND_HOOHOO, "CHAR_SOUND_HOOHOO")
add_sound(CHAR_SOUND_YAHOO_WAHA_YIPPEE, "CHAR_SOUND_YAHOO_WAHA_YIPPEE")
add_sound(CHAR_SOUND_HAHA, "CHAR_SOUND_HAHA")
add_sound(CHAR_SOUND_YAHOO, "CHAR_SOUND_YAHOO")
add_sound(CHAR_SOUND_UH, "CHAR_SOUND_UH")
add_sound(CHAR_SOUND_UH2, "CHAR_SOUND_UH2")
add_sound(CHAR_SOUND_UH2_2, "CHAR_SOUND_UH2_2")
add_sound(CHAR_SOUND_OOOF, "CHAR_SOUND_OOOF")
add_sound(CHAR_SOUND_DOH, "CHAR_SOUND_DOH")
add_sound(CHAR_SOUND_WHOA, "CHAR_SOUND_WHOA")
add_sound(CHAR_SOUND_EEUH, "CHAR_SOUND_EEUH")
add_sound(CHAR_SOUND_HRRM, "CHAR_SOUND_HRRM")
add_sound(CHAR_SOUND_WAAAOOOW, "CHAR_SOUND_WAAAOOOW")
add_sound(CHAR_SOUND_TWIRLBOUNCE, "CHAR_SOUND_TWIRLBOUNCE")
add_sound(CHAR_SOUND_GROUND_POUND_WAH, "CHAR_SOUND_GROUND_POUND_WAH")
add_sound(CHAR_SOUND_HERE_WE_GO, "CHAR_SOUND_HERE_WE_GO")
add_sound(CHAR_SOUND_SO_LONGA_BOWSER, "CHAR_SOUND_SO_LONGA_BOWSER")
add_sound(CHAR_SOUND_ATTACKED, "CHAR_SOUND_ATTACKED")
add_sound(CHAR_SOUND_PANTING, "CHAR_SOUND_PANTING")
add_sound(CHAR_SOUND_ON_FIRE, "CHAR_SOUND_ON_FIRE")
add_sound(CHAR_SOUND_IMA_TIRED, "CHAR_SOUND_IMA_TIRED")
add_sound(CHAR_SOUND_YAWNING, "CHAR_SOUND_YAWNING")
add_sound(CHAR_SOUND_SNORING1, "CHAR_SOUND_SNORING1")
add_sound(CHAR_SOUND_SNORING2, "CHAR_SOUND_SNORING2")
add_sound(CHAR_SOUND_SNORING3, "CHAR_SOUND_SNORING3")
add_sound(CHAR_SOUND_COUGHING1, "CHAR_SOUND_COUGHING1")
add_sound(CHAR_SOUND_COUGHING2, "CHAR_SOUND_COUGHING2")
add_sound(CHAR_SOUND_COUGHING3, "CHAR_SOUND_COUGHING3")
add_sound(CHAR_SOUND_DYING, "CHAR_SOUND_DYING")
add_sound(CHAR_SOUND_DROWNING, "CHAR_SOUND_DROWNING")
add_sound(CHAR_SOUND_MAMA_MIA, "CHAR_SOUND_MAMA_MIA")
function on_character_sound(m, char_sound)
if m.playerIndex ~= 0 then return end
local sName = sound_names[char_sound] or string.format("0x%X", char_sound)
table.insert(sound_history, sName)
if #sound_history > MAX_LOGS then table.remove(sound_history, 1) end
end
hook_chat_command("sound-log", "- Toggle the Sound Logger.", function()
show_sound_logger = not show_sound_logger
djui_chat_message_create("Sound Logger: " .. (show_sound_logger and "ON" or "OFF"))
return true
end)
function on_hud_render()
if not show_sound_logger then return end
djui_hud_set_resolution(RESOLUTION_N64)
local screenW = djui_hud_get_screen_width()
local boxW = 108
local fontScale = 0.16
local legendScale = 0.14
local lineSpacing = 7
local x = screenW - boxW - 1
local y_start = 25
djui_hud_set_color(20, 20, 20, 230)
djui_hud_render_rect(x - 1, y_start - 3, boxW + 1, 25)
djui_hud_set_color(255, 255, 0, 255)
djui_hud_print_text("YELLOW: Latest Sound TRIGGERED.", x, y_start, legendScale)
djui_hud_set_color(100, 200, 255, 255)
djui_hud_print_text(" ", x, y_start + 7, legendScale)
djui_hud_set_color(255, 255, 255, 255)
djui_hud_print_text("WHITE: Previous Sound Triggers.", x, y_start + 14, legendScale)
if #sound_history > 0 then
local historyY = y_start + 28
djui_hud_set_color(0, 0, 0, 150)
djui_hud_render_rect(x - 1, historyY - 1, boxW + 1, (#sound_history * lineSpacing) + 3)
for i, sName in ipairs(sound_history) do
local y = historyY + (i - 1) * lineSpacing
if i == #sound_history then
djui_hud_set_color(255, 255, 0, 255)
else
djui_hud_set_color(255, 255, 255, 200)
end
djui_hud_print_text(sName, x, y, fontScale)
end
end
end
hook_event(HOOK_CHARACTER_SOUND, on_character_sound)
hook_event(HOOK_ON_HUD_RENDER, on_hud_render)