View Single Post
02-02-24, 06:34 AM   #3
Kajuvra
A Murloc Raider
Join Date: Feb 2024
Posts: 4
i still don't think im doing this right. Please forgive me this is my first time coding in Lua. Now the player see's the Debug message in that they died but its just got getting back to the raid leader so they can tell the raid someone died while updating how many people have died so far if you'd like to review the entire code https://github.com/kajuvra/GnomeRunner/


Code:
C_ChatInfo.RegisterAddonMessagePrefix(GnomeRunner.addonPrefix)
Code:
function GnomeRunner.OnUnitHealth(unit)
    if unit == "player" and UnitHealth("player") == 0 then
        -- Player has died, trigger death announcement
        print("DEBUG: Player has died!")
        GnomeRunner.OnPlayerDead()
    end
end
Code:
-- Part of the code to receive the message and play the sound
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)
        elseif strmatch(message, "PLAYER_DEAD:") then
            -- Add debug message for receiving PLAYER_DEAD message
            print("Received PLAYER_DEAD message.")
            local _, deadPlayer = strsplit(":", message)
            GnomeRunner.AnnouncePlayerDeath(deadPlayer)
        end
    end
end

function GnomeRunner.OnPlayerDead()
    if GnomeRunner.raceInProgress then
        if not GnomeRunner.lastDeadPlayer or not GnomeRunner.lastDeadPlayerHealth then
            print("Error: Unable to retrieve player name or health for death announcement.")
            return
        end

        if UnitIsGroupLeader("player") then
            GnomeRunner.AnnouncePlayerDeath(GnomeRunner.lastDeadPlayer)
            -- Add debug message for sending PLAYER_DEAD message
            print("Sending PLAYER_DEAD message.")
            C_ChatInfo.SendAddonMessage(GnomeRunner.addonPrefix, "PLAYER_DEAD:" .. GnomeRunner.lastDeadPlayer, "RAID")  -- Add this line to broadcast the death to the raid
        else
            C_ChatInfo.SendAddonMessage(GnomeRunner.addonPrefix, "PLAYER_DEAD:" .. GnomeRunner.lastDeadPlayer, "WHISPER", GnomeRunner.raidLeader)
            -- Add debug message for sending PLAYER_DEAD message
            print("Sending PLAYER_DEAD message to raid leader.")
        end

        GnomeRunner.totalDeaths = GnomeRunner.totalDeaths + 1
    end
end

-- New function to announce player deaths in raid chat
function GnomeRunner.AnnouncePlayerDeath(playerName)
    SendChatMessage(playerName .. " has died!", "RAID")
end

Last edited by Kajuvra : 02-03-24 at 12:48 AM.
  Reply With Quote