Thread Tools Display Modes
07-12-11, 10:59 PM   #1
Thevolget
A Deviate Faerie Dragon
Join Date: Jul 2009
Posts: 11
Attempting to update Procodile to 4.2

I really enjoyed using Procodile, but as of this last patch, the addon has been unusable. I've managed to get it to kinda work, however the main uptime tracking of the addon is not working at all. While it will now track the amount of mana granted by replenishment, no other data or procs seem to come up.

Currently this is the code i'm using for the proc scanner:
Code:
function Procodile:COMBAT_LOG_EVENT_UNFILTERED(...)
		local obj = select(1, ...)
		local match = false
      	
       if self.db.profile.enabled then

			if dstName and UnitIsUnit(dstName,"player") then
			
				-- Example: Majestic Dragon Figurine
				--1/13 22:03:07.582  SPELL_AURA_APPLIED_DOSE,0x0000000000000000,nil,0x80000000,0x0000000000356636,"Zandy",0x511,60525,"Majestic Dragon Figurine",0x1,BUFF,6
				if eventtype == 'SPELL_AURA_APPLIED_DOSE' then
				
					local proc = self:GetTrackedSpell(obj)
		        	if proc then
			        	local duration, count = self:GetAuraDuration(dstName,select(2,...))
						if proc.aurabars or (self.db.profile.aurabars and (proc.aurabars ~= false or proc.aurabars == nil)) and duration > 0 then
							self:UpdateAuraBar(proc, duration, count)
		        		end
		        	end				
				
				end

				if eventtype == 'SPELL_AURA_REFRESH' then
				
					local proc = self:GetTrackedSpell(obj)
		        	if proc then
		        	
						self:HandleProc(proc, true, duration, count)

--			        	local duration, count = self:GetAuraDuration(dstName,select(2,...))
--						if proc.aurabars or (self.db.profile.aurabars and (proc.aurabars ~= false or proc.aurabars == nil)) and duration > 0 then
--							self:UpdateAuraBar(proc, duration, count)
--		        		end
	        		end
				end
				
		    end

	        if dstName and srcName and UnitIsUnit(srcName,"player") then

				-- Instant/periodic dmg by you on target
				if eventtype == 'SPELL_DAMAGE' or eventtype == 'SPELL_PERIODIC_DAMAGE' then
--12/2 19:44:04.312  SPELL_DAMAGE,0x00000000004518D2,"Zo",0x512,0xF13000402D0060F6,"Soul Weaver",0x100a48,60488,"Extract of Necromatic Power",0x20,2065,0,32,0,0,0,1,nil,nil
--12/2 19:50:46.765  SPELL_DAMAGE,0x0000000000426DC0,"Ladybah",0x512,0xF13000402B006472,"Soldier of the Frozen Wastes",0xa48,55637,"Lightweave Bolt",0x2,1955,293,2,0,0,0,1,nil,nil

					local amount = select(4,...)

					local proc = self:GetTrackedSpell(obj)
		        	if proc then
	        			-- DPS measurement.
	        			if proc.damage == nil then
	        				proc.damage = amount
	        				proc.maxdamage = amount
	        				proc.mindamage = amount
	        			else
		        			proc.damage = proc.damage + amount
		        			if amount > proc.maxdamage then
		        				proc.maxdamage = amount
		        			end
		        			if amount < proc.mindamage then
		        				proc.mindamage = amount
		        			end
		        		end
	        			self:HandleProc(proc, false)
	        			
	        		elseif self.db.profile.showspells then
			        	self:Print("Spell "..select(2, ...).." ("..obj..") hit enemy.")
		        	end					

				end
				
				-- Periodic damage - just damage measurement
				if eventtype == 'SPELL_PERIODIC_DAMAGE' then
--12/2 19:44:04.312  SPELL_DAMAGE,0x00000000004518D2,"Zo",0x512,0xF13000402D0060F6,"Soul Weaver",0x100a48,60488,"Extract of Necromatic Power",0x20,2065,0,32,0,0,0,1,nil,nil
--12/2 19:50:46.765  SPELL_DAMAGE,0x0000000000426DC0,"Ladybah",0x512,0xF13000402B006472,"Soldier of the Frozen Wastes",0xa48,55637,"Lightweave Bolt",0x2,1955,293,2,0,0,0,1,nil,nil

					local amount = select(4,...)

					local proc = self:GetTrackedSpell(obj)
		        	if proc then
	        			-- DPS measurement.
	        			if proc.damage == nil then
	        				proc.damage = amount
	        				proc.maxdamage = amount
	        				proc.mindamage = amount
	        			else
		        			proc.damage = proc.damage + amount
		        			if amount > proc.maxdamage then
		        				proc.maxdamage = amount
		        			end
		        			if amount < proc.mindamage then
		        				proc.mindamage = amount
		        			end
		        		end
	        			
	        		elseif self.db.profile.showspells then
			        	self:Print("Spell "..select(2, ...).." ("..obj..") hit enemy for periodic damage.")
		        	end					

				end
				
				-- Mana/energy regen tracking only
				if eventtype == 'SPELL_PERIODIC_ENERGIZE' then
					local proc = self:GetTrackedSpell(obj)
		        	if proc then
		        		if UnitIsUnit(dstName,"player") then
		        			if not proc.selfregen then
		        				proc.selfregen = select(4, ...)
		        			else
		        				proc.selfregen = proc.selfregen + select(4, ...)
		        			end
		        		else
		        			if not proc.regen then
		        				proc.regen = select(4, ...)
		        			else
		        				proc.regen = proc.regen + select(4, ...)
		        			end
		        		end
		        		
	        		elseif self.db.profile.showspells then
			        	self:Print("Spell "..select(2, ...).." ("..obj..") hit enemy.")
		        	end
		        end
		        
--12/2 18:53:02.890  SPELL_PERIODIC_ENERGIZE,0x00000000003671B0,"Lightyear",0x514,0x00000000002DDB46,"Zarnivoop",0x512,57669,"Replenishment",0x8,32,0
--12/2 18:53:02.890  SPELL_PERIODIC_ENERGIZE,0x00000000003671B0,"Lightyear",0x514,0xF14060529300001F,"Flaaghun",0x1114,57669,"Replenishment",0x8,25,0

				-- Instant energize on self/target
				if eventtype == 'SPELL_ENERGIZE' then
--12/2 19:43:19.578  SPELL_ENERGIZE,0x000000000035F51C,"Dimqroy",0x514,0x000000000035F51C,"Dimqroy",0x514,60538,"Soul of the Dead",0x40,900,0

					local proc = self:GetTrackedSpell(obj)
		        	if proc then
	        			self:HandleProc(proc, false)


		        		if UnitIsUnit(dstName,"player") then
		        			if not proc.selfregen then
		        				proc.selfregen = select(4, ...)
		        			else
		        				proc.selfregen = proc.selfregen + select(4, ...)
		        			end
		        		else
		        			if not proc.regen then
		        				proc.regen = select(4, ...)
		        			else
		        				proc.regen = proc.regen + select(4, ...)
		        			end
		        		end
		        		
	        		elseif self.db.profile.showspells then
			        	self:Print("Spell "..select(2, ...).." ("..obj..") energized.")
		        	end					
				end
	
	        	-- Aura applied on self/target
--12/2 18:53:03.937  SPELL_AURA_APPLIED,0xF14018E46D000022,"Sturm",0x1114,0xF14018E46D000022,"Sturm",0x1114,34456,"Ferocious Inspiration",0x1,BUFF
--event, timestamp, eventtype, srcGUID, srcName, srcFlags, dstGUID, dstName, dstFlags, ...
		        if eventtype == 'SPELL_AURA_APPLIED' then

			      	--self:Print(obj.." aura applied, name "..select(2, ...))

					local proc = self:GetTrackedSpell(obj)
		        	if proc then
			        	local duration, count = self:GetAuraDuration(dstName,select(2,...))

			        	-- Record the aura name for future usage
			        	if proc.auraname == nil then
			        		proc.auraname = select(2,...)
			        	end
			        	
						self:HandleProc(proc, true, duration, count)

	        		elseif self.db.profile.showspells then
			        	self:Print("Spell "..select(2, ...).." ("..obj..") applied.")
		        	end
		        end
		
		        -- Aura removed on self/target
		        if eventtype == 'SPELL_AURA_REMOVED' then
		        
					local proc = self:GetTrackedSpell(obj)
		        	if proc then
		        		proc.started = 0
		        		if self.db.profile.verbose then
			        		self:Print("|cff22ff22"..proc.name.." effect ended")
		        		end
		        		
		        		-- Remove any aura bar
		        		local bar = self.auras:GetBar(proc.name)
		        		if bar then
		        			self.auras:RemoveBar(bar)
		        		end

	        		elseif self.db.profile.showspells then
			        	self:Print("Spell "..select(2, ...).." ("..obj..") removed.")
		        	end
		        end
				
	        end
       	
       end
end
It kinda works, however I can't seem to get it to properly pick up the procs other then anything that is granting mana return. Any help or guidance to fixing this addon is greatly appreciated.
  Reply With Quote
07-13-11, 01:04 AM   #2
Coote
A Scalebane Royal Guard
 
Coote's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2007
Posts: 440
There were more changes to CLEU, which you can find here. You'll just have to rearrange a few things to account for the new args.
__________________

"This is the fifteen-thousandth four hundredth and ninety-eighth occurence".
  Reply With Quote
07-13-11, 07:43 AM   #3
Ketho
A Pyroguard Emberseer
 
Ketho's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,026
Checking the latest version from the addon's page, it should be something like this
Code:
function Procodile:COMBAT_LOG_EVENT_UNFILTERED(event, timestamp, eventtype, hideCaster, srcGUID, srcName, srcFlags, srcRaidFlags, dstGUID, dstName, dstFlags, dstRaidFlags, ...)
In your code, you just removed all the parameters for the vararg (...) which, in this case, doesn't work
On another note, the author also does a lot of wierd stuff with select, which imho makes the code kinda hard to read
  Reply With Quote
07-13-11, 03:32 PM   #4
Thevolget
A Deviate Faerie Dragon
Join Date: Jul 2009
Posts: 11
Originally Posted by Ketho View Post
Checking the latest version from the addon's page, it should be something like this
Code:
function Procodile:COMBAT_LOG_EVENT_UNFILTERED(event, timestamp, eventtype, hideCaster, srcGUID, srcName, srcFlags, srcRaidFlags, dstGUID, dstName, dstFlags, dstRaidFlags, ...)
In your code, you just removed all the parameters for the vararg (...) which, in this case, doesn't work
On another note, the author also does a lot of wierd stuff with select, which imho makes the code kinda hard to read
Yeah, the weird use of select was what was really confusing me. I had tried with just changing the args that were passed into the function, but seemed to have worse luck (partly due to my lack of understanding the changes made to the CLEU).

Thanks again for the help, so far the addon is working fine (until the next patch when bilzz breaks does more changes to the CLEU).
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » AddOn Help/Support » Attempting to update Procodile to 4.2


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