Thread Tools Display Modes
02-01-24, 07:56 AM   #1
Kajuvra
A Murloc Raider
Join Date: Feb 2024
Posts: 4
Triggering sound after countdown.

So ive created an addon that will trigger a sound file at the start of a race but the player aka racers who have the addon aren't hearing the sound file being played and i dunno why. any help would be greatly appreciated

Code:
GnomeRunner.soundFile = "Interface\\AddOns\\GnomeRunner\\Sounds\\GnomeMaleCharge03.ogg"
Code:
-- Function to trigger the sound for race start
GnomeRunner.PlayRaceStartSound = function()
    if IsInRaid() and UnitIsGroupLeader("player") then
        PlaySoundFile(GnomeRunner.soundFile)
        C_ChatInfo.SendAddonMessage(GnomeRunner.addonPrefix, "START_RACE_SOUND", "RAID")
    end
end

-- Inside the StartRace function
function GnomeRunner.StartRace()
    print("StartRace function called")

    if not GnomeRunner.raceInProgress then
        GnomeRunner.raceInProgress = true
        GnomeRunner.raceStartTime = GetServerTime()
        GnomeRunner.totalDeaths = 0
        GnomeRunner.totalRacers = 0
        GnomeRunner.totalGoldDistributed = 0

        local countdown = GnomeRunner.countdownSeconds
        local countTimer

        local DisplayCountdown = function(count)
            if count > 0 then
                SendChatMessage(count, "RAID_WARNING")
            else
                SendChatMessage("GO GO GO! " .. GnomeRunner.raceName .. " has just begun!", "RAID_WARNING")
                print("Sending addon message: START_RACE")  -- Add this line for debugging
                GnomeRunner.PlayRaceStartSound()  -- Trigger the sound here
            end
        end

        countTimer = C_Timer.NewTicker(1, function()
            if countdown == GnomeRunner.countdownSeconds then
                SendChatMessage("The Race: " .. GnomeRunner.raceName .. " is starting!", "RAID_WARNING")
            end

            DisplayCountdown(countdown)

            countdown = countdown - 1
            if countdown < 0 then
                countTimer:Cancel()
                GnomeRunner.frame:SetScript("OnUpdate", function(_, elapsed)
                    GnomeRunner.OnUpdate(elapsed)
                end)
            end
        end)
    else
        print("Race already in progress.")
    end
end
The Part of the code to recieve the message and play the sound.

Code:
function GnomeRunner.OnChatMsgAddon(prefix, message, channel, sender)
    if prefix == GnomeRunner.addonPrefix then
        print("Addon message received:", message)

        if message == "START_RACE" then
            print("Received START_RACE. Playing sound.")
            PlaySoundFile(GnomeRunner.soundFile)
        elseif message == "START_RACE_SOUND" then
            PlaySoundFile(GnomeRunner.soundFile)
        end
    end
end
  Reply With Quote
02-01-24, 12:20 PM   #2
SDPhantom
A Pyroguard Emberseer
 
SDPhantom's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 2,326
Have you registered your addon chat messages to be received using C_ChatInfo.RegisterAddonMessagePrefix()?
This tells the Blizzard chat servers that you're available to receive messages marked with your addon message prefix.
__________________
WoWInterface AddOns
"All I want is a pretty girl, a decent meal, and the right to shoot lightning at fools."
-Anders (Dragon Age: Origins - Awakening)
  Reply With Quote
02-01-24, 05:46 PM   #3
Kajuvra
A Murloc Raider
Join Date: Feb 2024
Posts: 4
this was it! its working now! thank you so much! still so many other issues but crossed one thing off the list thank you so much! gotta credit ya for the assist
  Reply With Quote

WoWInterface » Developer Discussions » Lua/XML Help » Triggering sound after countdown.


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off