Download
(24Kb)
Download
Updated: 09-10-19 07:44 AM
Pictures
File Info
Compatibility:
Classic (1.13.2)
Updated:09-10-19 07:44 AM
Created:09-06-19 06:33 PM
Downloads:1,090
Favorites:3
MD5:

BAMxqzme - the BAM mod for Classic

Version: 1.03
by: xqzme [More]

Simple lightweight addon for Classic.

The addon will announce crits and play the "Bruce Lee BAM" sound

Use /bam to configure where you want to announce your crits! It's so easy even Warriors can do it!


Let all your friends know what sick crits you got!
Say it! Yell it! Let your group or raid know! BAM!

1.03
I grabbed the idea of "rumchiller" and added a "self" option. The "self" option will only spam the crit amount for yourself and play the "BAM sound"

1.02
Switched the voice channel to "Dialog" since many people don't have the wow music on. Now use "Dialog" to adjust the volume of the BAM sound.

1.01
Added the sound channel for the BAM sound. You can now adjust the volume. Use the "Music" volume setting to adjust the volume.
Post A Reply Comment Options
Unread 09-09-19, 04:25 PM  
xqzme
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 3
Uploads: 1
Re: no spam

Originally Posted by rumchiller
hi!
how's about:

Code:
print("|cff33ffccBAM|cffffffffxqzme - loaded")
local frame = CreateFrame("FRAME");
frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");

SlashCmdList['BAMXQZME'] = function(msg)
    DEFAULT_CHAT_FRAME:AddMessage(msg or 'nil')
end
SLASH_BAMXQZME1 = '/bamxqzme'
SLASH_BAMXQZME2 = '/xq'
SLASH_BAMXQZME3 = '/xq'

SLASH_BAMXQZME1, SLASH_BAMXQZME2, SLASH_BAMXQZME3 = "/bamxqzme", "/xq", "/bam"
SlashCmdList["BAMXQZME"] = function(message)
	local cmd = { }
	for c in string.gmatch(message, "[^ ]+") do
		table.insert(cmd, string.lower(c))
	end

	if cmd[1] == "say" then
    BAMxqzmeSettings = "SAY"
  elseif cmd[1] == "yell" then
    BAMxqzmeSettings = "YELL"
  elseif cmd[1] == "group" then
    BAMxqzmeSettings = "GROUP"
  elseif cmd[1] == "raid" then
    BAMxqzmeSettings = "RAID"
  elseif cmd[1] == "none" then
    BAMxqzmeSettings = "NONE"
	else
    DEFAULT_CHAT_FRAME:AddMessage("|cff33ffccBAM|rxqzme usage:")
    DEFAULT_CHAT_FRAME:AddMessage("/bam [say, yell, group, raid, none]")
  end

  if not BAMxqzmeSettings then 
    BAMxqzmeSettings = "NONE" 
  end
  DEFAULT_CHAT_FRAME:AddMessage("-> you are now spamming your crits in '" .. string.lower(BAMxqzmeSettings) .. "'")
  
end

frame:SetScript("OnEvent", function(self, event)

local CritAmountDmg = 1
local CritAmountHeal = 1
local EveryoneGitInHereDmg = 1
local EveryoneGitInHereHeal = 1


local OutputMessageDmg = "BAM phat crit!"
local OutputMessageHeal = "I healed you big time!"


--function

  local spellId, spellName, spellSchool, amount, overkill, school, resisted, blocked, absorbed, critical, glancing, crushing = select(12, CombatLogGetCurrentEventInfo())
  local timestamp, type, hideCaster, sourceGUID, sourceName, sourceFlags, sourceRaidFlags, destGUID, destName, destFlags, destRaidFlags = CombatLogGetCurrentEventInfo()
  local playerGUID = UnitGUID("player")
  if (event == "COMBAT_LOG_EVENT_UNFILTERED") then
		-- damage
		if (type == "SPELL_DAMAGE") and critical and (sourceGUID == playerGUID) then
			if amount >= CritAmountDmg then
				if EveryoneGitInHereDmg == 1 then
					if BAMxqzmeSettings ~= "NONE" then
						SendChatMessage(OutputMessageDmg.." "..spellName.." - "..format_thousand(amount), BAMxqzmeSettings ,nil);
					end
				else
					print(OutputMessageDmg.." | "..spellName.." - "..format_thousand(amount))
				end
				script=PlaySoundFile("Interface\\AddOns\\BAMxqzme\\bam.ogg", "Music")
			end
		end
		

		-- heal
		critical = select(18,CombatLogGetCurrentEventInfo())
		if (type == "SPELL_HEAL") and critical and (sourceGUID == playerGUID) then
			if amount >= CritAmountHeal then
				if EveryoneGitInHereHeal == 1 then
					if BAMxqzmeSettings ~= "NONE" then
						SendChatMessage(OutputMessageHeal.." "..destName.." - "..spellName.." - "..format_thousand(amount), BAMxqzmeSettings ,nil);
					end
				else
					print(OutputMessageHeal.." | "..destName.." with "..spellName.." for "..format_thousand(amount))
				end
				script=PlaySoundFile("Interface\\AddOns\\BAMxqzme\\bam.ogg", "Music")
			end
		end
  end
end);
--format the numbers
function format_thousand(v)
    local s = string.format("%d", math.floor(v))
    local pos = string.len(s) % 3
    if pos == 0 then pos = 3 end
    return string.sub(s, 1, pos)
    .. string.gsub(string.sub(s, pos+1), "(...)", ".%1")
end
edit: since i am playing with bammod till the beginning, but don't want to spam. would be nice if you also would implement a system message, so only the user will see it take a look at
https://github.com/Rumchiller/EM_CritBam
Hey, thanks. I will implement that after work tomorrow! Thanks for the feedback <3
Report comment to moderator  
Reply With Quote
Unread 09-09-19, 02:27 PM  
rumchiller
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
no spam

hi!
how's about:

Code:
print("|cff33ffccBAM|cffffffffxqzme - loaded")
local frame = CreateFrame("FRAME");
frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");

SlashCmdList['BAMXQZME'] = function(msg)
    DEFAULT_CHAT_FRAME:AddMessage(msg or 'nil')
end
SLASH_BAMXQZME1 = '/bamxqzme'
SLASH_BAMXQZME2 = '/xq'
SLASH_BAMXQZME3 = '/xq'

SLASH_BAMXQZME1, SLASH_BAMXQZME2, SLASH_BAMXQZME3 = "/bamxqzme", "/xq", "/bam"
SlashCmdList["BAMXQZME"] = function(message)
	local cmd = { }
	for c in string.gmatch(message, "[^ ]+") do
		table.insert(cmd, string.lower(c))
	end

	if cmd[1] == "say" then
    BAMxqzmeSettings = "SAY"
  elseif cmd[1] == "yell" then
    BAMxqzmeSettings = "YELL"
  elseif cmd[1] == "group" then
    BAMxqzmeSettings = "GROUP"
  elseif cmd[1] == "raid" then
    BAMxqzmeSettings = "RAID"
  elseif cmd[1] == "none" then
    BAMxqzmeSettings = "NONE"
	else
    DEFAULT_CHAT_FRAME:AddMessage("|cff33ffccBAM|rxqzme usage:")
    DEFAULT_CHAT_FRAME:AddMessage("/bam [say, yell, group, raid, none]")
  end

  if not BAMxqzmeSettings then 
    BAMxqzmeSettings = "NONE" 
  end
  DEFAULT_CHAT_FRAME:AddMessage("-> you are now spamming your crits in '" .. string.lower(BAMxqzmeSettings) .. "'")
  
end

frame:SetScript("OnEvent", function(self, event)

local CritAmountDmg = 1
local CritAmountHeal = 1
local EveryoneGitInHereDmg = 1
local EveryoneGitInHereHeal = 1


local OutputMessageDmg = "BAM phat crit!"
local OutputMessageHeal = "I healed you big time!"


--function

  local spellId, spellName, spellSchool, amount, overkill, school, resisted, blocked, absorbed, critical, glancing, crushing = select(12, CombatLogGetCurrentEventInfo())
  local timestamp, type, hideCaster, sourceGUID, sourceName, sourceFlags, sourceRaidFlags, destGUID, destName, destFlags, destRaidFlags = CombatLogGetCurrentEventInfo()
  local playerGUID = UnitGUID("player")
  if (event == "COMBAT_LOG_EVENT_UNFILTERED") then
		-- damage
		if (type == "SPELL_DAMAGE") and critical and (sourceGUID == playerGUID) then
			if amount >= CritAmountDmg then
				if EveryoneGitInHereDmg == 1 then
					if BAMxqzmeSettings ~= "NONE" then
						SendChatMessage(OutputMessageDmg.." "..spellName.." - "..format_thousand(amount), BAMxqzmeSettings ,nil);
					end
				else
					print(OutputMessageDmg.." | "..spellName.." - "..format_thousand(amount))
				end
				script=PlaySoundFile("Interface\\AddOns\\BAMxqzme\\bam.ogg", "Music")
			end
		end
		

		-- heal
		critical = select(18,CombatLogGetCurrentEventInfo())
		if (type == "SPELL_HEAL") and critical and (sourceGUID == playerGUID) then
			if amount >= CritAmountHeal then
				if EveryoneGitInHereHeal == 1 then
					if BAMxqzmeSettings ~= "NONE" then
						SendChatMessage(OutputMessageHeal.." "..destName.." - "..spellName.." - "..format_thousand(amount), BAMxqzmeSettings ,nil);
					end
				else
					print(OutputMessageHeal.." | "..destName.." with "..spellName.." for "..format_thousand(amount))
				end
				script=PlaySoundFile("Interface\\AddOns\\BAMxqzme\\bam.ogg", "Music")
			end
		end
  end
end);
--format the numbers
function format_thousand(v)
    local s = string.format("%d", math.floor(v))
    local pos = string.len(s) % 3
    if pos == 0 then pos = 3 end
    return string.sub(s, 1, pos)
    .. string.gsub(string.sub(s, pos+1), "(...)", ".%1")
end
edit: since i am playing with bammod till the beginning, but don't want to spam. would be nice if you also would implement a system message, so only the user will see it take a look at
https://github.com/Rumchiller/EM_CritBam
Last edited by rumchiller : 09-09-19 at 02:30 PM.
Report comment to moderator  
Reply With Quote
Unread 09-09-19, 08:13 AM  
xqzme
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 3
Uploads: 1
Originally Posted by Cabum
Hi, thanks for the upload.
Is it possible to change the crit report to show only when is the highest crit from that ability or spell?
Yes that is totally possible. Since this is my first LUA project I can't tell you when I will implement it but it is on my todo list right now. Thanks for your feedback and thanks for using my addon!
Report comment to moderator  
Reply With Quote
Unread 09-09-19, 02:21 AM  
Cabum
A Kobold Labourer

Forum posts: 0
File comments: 4
Uploads: 0
Hi, thanks for the upload.
Is it possible to change the crit report to show only when is the highest crit from that ability or spell?
Report comment to moderator  
Reply With Quote
Unread 09-08-19, 05:30 AM  
xqzme
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 3
Uploads: 1
Heyo, thanks for your reply. You can now adjust the volume. In "Esc" "System" "Sound" if you adjust the "Music" Volume it will adjust the volume of the BAM sound being played.
Report comment to moderator  
Reply With Quote
Unread 09-07-19, 09:42 AM  
Khorrhxe
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Awesome!

The sound is too loud though, at least for me. Maybe have an option to set the volume?
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.