Go to Page... |
Thread Tools | Display Modes |
12-05-10, 05:27 PM | #1 |
a combattext lua (no error, but smthng not working)
hi guys, I'm not very good in lua, but what I did to this code is, I've added from another combattext to this combattext, something that I really like. its just a simple on certain buff I get, it puts a MSG in my screen and plays a sound, here's the full code , all credit goes to 1) wild for his code, and 2) evl for the thing that I copied into wild's.
Code:
local addonName, ns = ... local module = {} module.name = "CombatText" module.Init = function() if not SCDB.modules[module.name] then return end if SCDB[module.name] == nil then SCDB[module.name] = {} end if SCDB[module.name]["StartX"] == nil then SCDB[module.name]["StartX"] = 305 end if SCDB[module.name]["EndX"] == nil then SCDB[module.name]["EndX"] = 305 end if SCDB[module.name]["StartY"] == nil then SCDB[module.name]["StartY"] = 550 end if SCDB[module.name]["EndY"] == nil then SCDB[module.name]["EndY"] = 300 end if SCDB[module.name]["Raid announce"] == nil then SCDB[module.name]["Raid announce"] = false end if SCDB[module.name]["Party announce"] == nil then SCDB[module.name]["Party announce"] = false end if SCDB[module.name]["Yell announce"] == nil then SCDB[module.name]["Yell announce"] = true end if SCDB[module.name]["Say announce"] == nil then SCDB[module.name]["Say announce"] = false end if SCDB[module.name]["Play sounds"] == nil then SCDB[module.name]["Play sounds"] = true end local opts = SCDB[module.name] local lastKillTime = 0 local killingStreak = 0 local multiKill = 0 local MULTI_KILL_HOLD_TIME = 11.5 local bit_band = bit.band local bit_bor = bit.bor local pendingSound local spreeSounds = { [3] = "Killing_Spree", [4] = "Dominating", [5] = "Mega_Kill", [6] = "Unstoppable", [7] = "Wicked_Sick", [8] = "Monster_Kill", [9] = "Ludicrous_Kill", [10] = "God_Like", [11] = "Holy_****" } local multiSounds = { [2] = "Double_Kill", [3] = "Triple_Kill", } local path = "Interface\\AddOns\\SuperClassic\\media\\sounds\\%s.mp3" local function hasFlag(flags, flag) return bit_band(flags, flag) == flag end -- by Evl local playSounds = function() local multiFileName = multiSounds[math.min(3, multiKill)] local spreeFileName = spreeSounds[math.min(11, killingStreak)] if multiFileName then PlaySoundFile(string.format(path, multiFileName)) end if spreeFileName then local spreeFilePath = string.format(path, spreeFileName) if not multiFileName then PlaySoundFile(spreeFilePath) else pendingSound = spreeFilePath end end end local extraCombatText = CreateFrame("Frame") extraCombatText:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") extraCombatText:RegisterEvent("PLAYER_DEAD") extraCombatText:RegisterEvent("ADDON_LOADED") extraCombatText:SetScript("OnEvent", function(self, event, ...) if event == "COMBAT_LOG_EVENT_UNFILTERED" then timestamp, eventType, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags = ... -- Killing blows if eventType == "PARTY_KILL" and hasFlag(sourceFlags, COMBATLOG_OBJECT_AFFILIATION_MINE) and hasFlag(destFlags, COMBATLOG_OBJECT_TYPE_PLAYER) then if COMBAT_TEXT_TYPE_INFO then if SCDB[module.name]["Raid announce"] then SendChatMessage("Killing Blow! (" .. destName .. ")", "RAID") end if SCDB[module.name]["Party announce"] then CombatText_AddMessage("Killing Blow! (" .. destName .. ")", COMBAT_TEXT_SCROLL_FUNCTION, .9, .2, .2, "crit", nil) end if SCDB[module.name]["Yell announce"] then SendChatMessage("Killing Blow! (" .. destName .. ")", "YELL") end if SCDB[module.name]["Say announce"] then SendChatMessage("Killing Blow! (" .. destName .. ")", "SAY") end end local now = GetTime() if lastKillTime + MULTI_KILL_HOLD_TIME > now then multiKill = multiKill + 1 else multiKill = 1 end lastKillTime = now killingStreak = killingStreak + 1 if opts["Play sounds"] then playSounds() end -- Interrupts elseif eventType == "SPELL_INTERRUPT" and hasFlag(sourceFlags, COMBATLOG_OBJECT_AFFILIATION_MINE) then local extraSpellID, extraSpellName, extraSpellSchool = select(12, ...) if SCDB[module.name]["Raid announce"] then SendChatMessage(format("%s Interrupted!", GetSpellLink(extraSpellID)), "RAID") end if SCDB[module.name]["Party announce"] then CombatText_AddMessage(format("%s Interrupted!", extraSpellName), COMBAT_TEXT_SCROLL_FUNCTION, .1, .1, 1, nil, nil) end if SCDB[module.name]["Yell announce"] then SendChatMessage(format("%s Interrupted!", GetSpellLink(extraSpellID)), "YELL") end if SCDB[module.name]["Say announce"] then SendChatMessage(format("%s Interrupted!", GetSpellLink(extraSpellID)), "SAY") end end if eventType == "SPELL_AURA_APPLIED" and hasFlag(destFlags, COMBATLOG_OBJECT_AFFILIATION_MINE) then local extraSpellID, extraSpellName = ... -- Clearcasting if extraSpellName == "Shield Wall" then CombatText_AddMessage("WALL UP!", COMBAT_TEXT_SCROLL_FUNCTION, .7, .7, 1, "crit", nil) PlaySoundFile("Interface\\AddOns\\SuperClassic\\media\\sounds\\sohelp02.mp3") elseif extraSpellName == "Barkskin" then CombatText_AddMessage("Barkskinned!", COMBAT_TEXT_SCROLL_FUNCTION, .7, .7, 1, "crit", nil) PlaySoundFile("Interface\\AddOns\\SuperClassic\\media\\sounds\\sohelp02.mp3") elseif extraSpellName == "Wrath of Elune" then --CombatText_AddMessage("Wrath of Elune!", COMBAT_TEXT_SCROLL_FUNCTION, 255, 204, 0, nil, nil) PlaySoundFile("Interface\\AddOns\\SuperClassic\\media\\sounds\\groovy02.mp3") elseif extraSpellName =="Shooting Stars" then --CombatText_AddMessage("Shooting Stars!", COMBAT_TEXT_SCROLL_FUNCTION, 255, 0, 255, nil, nil) PlaySoundFile("Interface\\AddOns\\SuperClassic\\media\\sounds\\groovy02.mp3") elseif extraSpellName == "Taste for Blood" then CombatText_AddMessage("Overpower!", COMBAT_TEXT_SCROLL_FUNCTION, 255, 204, 0, nil, nil) PlaySoundFile("Interface\\AddOns\\SuperClassic\\media\\sounds\\groovy02.mp3") elseif extraSpellName == "Nature's Grace" then --CombatText_AddMessage("NG!", COMBAT_TEXT_SCROLL_FUNCTION, .7, 0.7, 1, "crit", nil) PlaySoundFile("Interface\\AddOns\\SuperClassic\\media\\sounds\\RockBiterImpact.mp3") -- Slam! elseif extraSpellName == "Slam!" then CombatText_AddMessage("Slam!", COMBAT_TEXT_SCROLL_FUNCTION, .7, .7, 1, "crit", nil) PlaySoundFile("Interface\\AddOns\\SuperClassic\\media\\sounds\\groovy02.mp3") elseif extraSpellName == "Sword and Board!" then CombatText_AddMessage("Sword and Board!", COMBAT_TEXT_SCROLL_FUNCTION, .7, .7, 1, "crit", nil) PlaySoundFile("Interface\\AddOns\\SuperClassic\\media\\sounds\\groovy02.mp3") elseif extraSpellName == "Shield Block" then CombatText_AddMessage("BLOCK THAT ****!", COMBAT_TEXT_SCROLL_FUNCTION, .7, .7, 1, "crit", nil) PlaySoundFile("Interface\\AddOns\\SuperClassic\\media\\sounds\\sohelp02.mp3") end elseif event == "PLAYER_DEAD" then killingStreak = 0 end end end) extraCombatText:SetScript("OnUpdate", function(self, elapsed) if self.lastUpdate == nil then self.lastUpdate = 0 end self.lastUpdate = self.lastUpdate + elapsed if self.lastUpdate > 2 then self.lastUpdate = 0 if pendingSound then PlaySoundFile(pendingSound) pendingSound = nil end end end) --COMBAT_TEXT_TYPE_INFO["ENTERING_COMBAT"] = { r = 0.1, g = 0.1, b = 1 } --COMBAT_TEXT_TYPE_INFO["LEAVING_COMBAT"] = { r = 0.1, g = 0.1, b = 1 } --COMBAT_TEXT_TYPE_INFO["COMBO_POINTS"] = { r = 0.7, g = 0.7, b = 1 } COMBAT_TEXT_TYPE_INFO["ENTERING_COMBAT"].r = 0.1 COMBAT_TEXT_TYPE_INFO["ENTERING_COMBAT"].g = 0.1 COMBAT_TEXT_TYPE_INFO["ENTERING_COMBAT"].b = 1 COMBAT_TEXT_TYPE_INFO["LEAVING_COMBAT"].r = 0.1 COMBAT_TEXT_TYPE_INFO["LEAVING_COMBAT"].g = 0.1 COMBAT_TEXT_TYPE_INFO["LEAVING_COMBAT"].b = 1 COMBAT_TEXT_TYPE_INFO["COMBO_POINTS"].r = 0.7 COMBAT_TEXT_TYPE_INFO["COMBO_POINTS"].g = 0.7 COMBAT_TEXT_TYPE_INFO["COMBO_POINTS"].b = 1 COMBAT_TEXT_DEFLECT = "Deflect" COMBAT_TEXT_REFLECT = "Reflect" COMBAT_TEXT_IMMUNE = "Immune" COMBAT_TEXT_RESIST = "Resist" COMBAT_TEXT_ABSORB = "Absorb" COMBAT_TEXT_BLOCK = "Block" COMBAT_TEXT_DODGE = "Dodge" COMBAT_TEXT_PARRY = "Parry" COMBAT_TEXT_EVADE = "Evade" COMBAT_TEXT_MISS = "Miss" DEFLECT = "Deflect" REFLECT = "Reflect" IMMUNE = "Immune" RESIST = "Resist" ABSORB = "Absorb" BLOCK = "Block" DODGE = "Dodge" PARRY = "Parry" EVADE = "Evade" MISS = "Miss" BLOCK_TRAILER = "(Block %d)" ABSORB_TRAILER = "(Absorb %d)" RESIST_TRAILER = "(Resist %d)" ENTERING_COMBAT = "+COMBAT+" LEAVING_COMBAT = "-COMBAT-" COMBAT_TEXT_SCROLLSPEED = 2 HEALTH_LOW = "Oh ****!" MANA_LOW = "MANA LOW!" hooksecurefunc("CombatText_UpdateDisplayedMessages", function () COMBAT_TEXT_LOCATIONS = { startX = opts.StartX, startY = opts.StartY * COMBAT_TEXT_Y_SCALE, endX = opts.EndX, endY = opts.EndY * COMBAT_TEXT_Y_SCALE } end) end tinsert(SuperClassic.modules, module) -- finish him! bear in mind that I get no lua error at all, and everything else working fine, except this COLORED thing which I hilighted for you, its not working at all, and no error at all. no sound, no msg, and the sound is there in the path. help would be nice, I really couldn't figure out why its not working for me |
|
12-05-10, 07:19 PM | #2 |
I see no function named "hasFlag", which is used in your piece of code.
|
|
12-05-10, 07:26 PM | #3 |
thanks alot, I am not good in coding in all honesty I just put together two codes from two authers, is there an easy way to add this function, like one line or something , I know coders don't like these questions, hope i'm not troubling you, just want this to work and i'm all done |
|
12-05-10, 08:07 PM | #4 | |
|
||
12-05-10, 11:19 PM | #5 |
ok, ive tried my best , and put in the effort to try and make it work, went into evl's code to find the function you meant to put in the top of the file, found this.
Code:
function addon:COMBAT_LOG_EVENT_UNFILTERED(event, timestamp, eventType, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, ...) |
|
12-06-10, 03:56 AM | #6 |
Hi, strick
local extraSpellID, extraSpellName = select(12, ...) and please, use a spell ID's because a localization issues (if you want to send this code to others) You can get it from wowhead (numbers in url, when you seeing a spell) |
|
12-06-10, 04:33 AM | #7 | |
EDIT: I'm still stuck into this, could someone nice help me too <3 hehe what am I missing Last edited by strickland : 12-06-10 at 04:55 PM. |
||
WoWInterface » Developer Discussions » Lua/XML Help » a combattext lua (no error, but smthng not working) |
«
Previous Thread
|
Next Thread
»
|
Thread Tools | |
Display Modes | |
|
|