Files
PlayerEmoteBuff/PlayerEmoteBuffs.lua
2025-06-30 20:21:48 -04:00

88 lines
3.3 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
print("[Eluna] Class Emote Buffs loaded")
local PLAYER_EVENT_ON_TEXT_EMOTE = 24
local COOLDOWN_SECONDS = 7200 -- 2 hours cooldown
local cooldowns = {}
-- Class-based configuration
local classConfig = {
[1] = { -- Warrior
emote = 136, -- /taunt
buffs = {23735, 23737, 23767}, -- Strength, Stamina, Armor
message = "You taunt your enemies, daring them to try their luck."
},
[2] = { -- Paladin
emote = 78, -- /salute
buffs = {23767, 23735, 23738}, -- Armor, Strength, Spirit
message = "You raise your hand in salute, a beacon of righteous order."
},
[3] = { -- Hunter
emote = 44, -- /gaze (fallback to /salute)
buffs = {23736, 23769, 23768}, -- Agility, Resistance, Damage
message = "You scan the horizon, locking eyes with your next prey."
},
[4] = { -- Rogue
emote = 131, -- /smirk
buffs = {23736, 23735, 23768}, -- Agility, Strength, Damage
message = "You smirk knowingly. They never saw you coming."
},
[5] = { -- Priest
emote = 74, -- /pray
buffs = {23738, 23766, 23769}, -- Spirit, Intelligence, Resistance
message = "You kneel and murmur a forgotten prayer, feeling your deitys gaze linger upon you for but a moment."
},
[6] = { -- Death Knight
emote = 98, -- /threat
buffs = {23735, 23737, 23767}, -- Strength, Stamina, Armor
message = "You dare challenge the power of the Scourge?"
},
[7] = { -- Shaman
emote = 407, -- /mutter
buffs = {23769, 23738, 23766}, -- Resistance, Spirit, Intelligence
message = "You mutter an invocation to the elemental spirits."
},
[8] = { -- Mage
emote = 120, -- /ponder
buffs = {23766, 23738, 23768}, -- Intelligence, Spirit, Damage
message = "You stroke your chin, unraveling arcane mysteries."
},
[9] = { -- Warlock
emote = 20, -- /cackle
buffs = {23768, 23766, 23769}, -- Damage, Intelligence, Resistance
message = "You cackle madly as shadow energies gather around you."
},
[11] = { -- Druid
emote = 75, -- /roar
buffs = {23738, 23736, 23737}, -- Spirit, Agility, Stamina
message = "You let out a primal roar, channeling the wilds within."
}
}
local function OnClassPrayer(event, player, textEmote, emoteNum, guid)
local classId = player:GetClass()
local config = classConfig[classId]
if not config then return end
if textEmote ~= config.emote then return end
local guid = player:GetGUIDLow()
local now = os.time()
local last = cooldowns[guid] or 0
if now - last < COOLDOWN_SECONDS then
local remaining = COOLDOWN_SECONDS - (now - last)
local mins = math.floor(remaining / 60)
local secs = remaining % 60
player:SendBroadcastMessage(string.format("|cffff0000You must wait %d minutes and %d seconds before invoking your ritual again.", mins, secs))
return
end
cooldowns[guid] = now
local buffId = config.buffs[math.random(1, #config.buffs)]
player:AddAura(buffId, player)
player:SendBroadcastMessage(config.message)
end
RegisterPlayerEvent(PLAYER_EVENT_ON_TEXT_EMOTE, OnClassPrayer)