Download
(120Kb)
Download
Updated: 01-15-10 09:53 AM
Pictures
File Info
Updated:01-15-10 09:53 AM
Created:10-19-09 04:54 PM
Downloads:74,765
Favorites:257
MD5:

Faceroller  Popular! (More than 5000 hits)

Version: 0.2.9
by: hungtar [More]

please accept my apology for abandoning this addon and not answering your support requests.

I don't play wow anymore and thus any request will remain unaswered.


What is Faceroller?

Faceroller is an addon in the spirit of Event Horizon with the look of Faceshooter. It's focus lies on using a minimal amount of screen space while showing anything you need to know at the moment.

It will show you only one icon on the screen: the highest priority ability, which should be used next. Once the ability was used, it will reevaluate all cooldowns and debuffs on your target and present you the next spell.

As this needs tracking of cooldowns and debuffs and making decisions what to suggest when, Faceroller is split into modules. And to get some use out of Faceroller, you will need a module that fits your talent spec (See below for a list of modules).

You will get little or no use out of Faceroller if your toon is below level 80!


What Faceroller is NOT

First and foremost, Faceroller is not all knowing. It only keeps track of your current target and therefore can assist you only with a single target.


How to use Faceroller

First, you will need a module that works with your spec. There are currently modules available for the following specs:

  • Warrior:
  • Shadow Priest
  • Balance Druid
  • Deathknight:
    • Frost 1 (included, experimental*, by hectolight, module name: dkdwfrost)
    • Frost 2 (included, experimental*, by Kallsuh, module name: dkdwfrost_Kall)
    • unholy
    • blood
  • Paladin:
    • Retribution
    • Prot (included, experimental*, by lloydbates)
  • Warlock:
  • Hunter:
    • mm/sv/bm hunters (included, all in one module named simplehunter)
  • Shaman:
    • Enhancement (included)
    • Elemental (included, experimental*)
  • Mage:
    • FFB (included, experimental*)
    • Arcane (included, experimental*)
  • Rogue:

* These modules may not always work as expected. If they don't, please leave a comment.

If you see the message "init failed for module ... (Reason: none given)" enable debug output with /fr debug. Make sure your character knows all the spells, required by the module you are using, before reporting it as a bug!

Install a module of your choice along with Faceroller. Start WoW. You can fire up the GUI with /fr config or by clicking on the LDB plugin (if you have a broker display).

Note: Faceroller rememberrs different modules for both specs, if you have dual spec. If you switch specs for the first time after installing Faceroller, don't forget to configure!

Note: All modules require your character to be level 80 to work!

Getting started with your own module

Writing your own module can be as easy as editing a lua table. See Faceroller_EasyExample (included in the zip) for an example how that works.

If the possibilities provided by the Easy* API are too restraining, you will need some knowledge of lua or you will have a hard time writing your own module. Have a look at Faceroller_ExampleModule (included in the zip). It's a simple module that does the same as Faceroller_EasyExample but with a more complex API. The comments are quiet extensive and should give you a good overview how things work.

The module Faceroller_SimpleEnhancementShaman uses a mixture of both and might help you as well with getting started.

Also, have a look at the documentation at github. If you have further questions, leave a comment.


Want to share your module?

If you wrote a module but you don't want to maintain it yourself, i can include it in the zip here. Just send me a PM or leave a comment where i can find your module. Note: since i won't be able to test all modules, new included modules will be marked as experimental for a few weeks. If too many people complain about an experimental module, it will get deleted. So please make sure it really works.

Following is a (possibly incomplete) list of specs, for which there is currently no module:
  • Feral Druid
  • Rogue: assassination, subtlety

Credits
  • Icon skin taken from oUF_Fleetfood.
  • Idea for corner indicators from Grid.
  • and a big Thank You to everyone that used an early Faceroller version and to those who report bugs and write modules!

version 0.2.9:
- added option for silent module init.
- call module option function even if /fr opt is called without argument.

version 0.2.8:
- toc update.
- removed deadca7s unholy dk module.
- API changes for RegisterBuff:
- RegisterBuff(<spell>) works as before
- RegisterBuff(<spell>, true) now checks for buffs on player cast by anyone.
- RegisterBuff(<spell>, false, true) now checks for debuffs on player cast by player (used only in arcane mage module).

version 0.2.7:
- added deadca7s unholy dk module.

version 0.2.6:
- added Kallsuhs frost dk module.

version 0.2.5:
- added Opaques prot warrior module.

version 0.2.4:
- frame is now click-through.
- added options to arcane mage module.

version 0.2.3:
- frost dk module: HoW / SoE totem check.

version 0.2.2:
- bug fix in EasyChooseSpell.

version 0.2.1:
- bug fix: reset everything that can be set by a module when no module is set for the current spec.

version 0.2.0:
- don't load example modules.
- moved simplehunter and enh module to experimental modules.
- option to disable/enable corner indicators (disabled by default).

version 0.1.9.5:
- update to frost dk module, courtesy of hectolight (strength of earth totem overwriting horn of winter).

version 0.1.9.4:
- two times a charm ...

version 0.1.9.3:
- bug fix (check for possibly invalid gui saved variable).

version 0.1.9.2:
- hide old modules options when selecting another.
- with buttonfacade enabled, only use fade animations that will show properly.
- added hectolights frost dk module.
- added debug message to HasSpell to see which spell can't be found (/fr debug to enable debug messages).

version 0.1.9.1:
- call modules next skill function once in a while to make sure everything is up to date.
- LDB plugin icon update and tooltip added.

version 0.1.9:
- added /fr skin command.
- added more corner indicators to simplehunter module.
- fixed corner indicator scaling bug.

version 0.1.8:
- added lloydbates prot pala module.

version 0.1.7.3:
- guess arcane blast debuff.

version 0.1.7.2:
- more changes to arcane mage module.

version 0.1.7.1:
- track player debuffs.
- some changes to arcane mage module.

version 0.1.7:
- new gui (if i become discontent about the gui again, it will be gone for good).
- added arcane mage module (experimental).

version 0.1.6.2:
-fixed wrong spell id in elemental shaman module.
-fixed improved scorch and hot streak in ffb mage module (thanks to Baine, who did all the testing!)

version 0.1.6.1:
- faster updates for debuffs.

version 0.1.6:
- some stuff to reduce cpu load.
- ffb mage and ele shaman module (untested stuff).

version 0.1.5:
- bug fix: frame should once again show on unit that become attackable while they are targeted.

version 0.1.4:
- fadein/fadeout animation for frame.
- corner indicators for SimpleEnhancementShaman module.

version 0.1.3b:
- buttonfacade should work now ...

version 0.1.3:
- broke ldb and bf support when merging the modules. should work again.

version 0.1.2:
- reorganized sourcecode.
- fixed strata of corner indicators.
- added key binding to open the config.

version 0.1.1:
- gui improvements.

version 0.1.0:
- removed Faceroller_Config and Faceroller_Toy
- new gui: Faceroller_GUI
- gui features: ButtonFacade support, LDB plugin.

version 0.0.25:
- fixed typo in simplehunter module.

version 0.0.24:
- spell icon path for buffs and debuffs.

version 0.0.23:
- API improvements.

version 0.0.22:
- new API function UnregisterModule.
- new module: Faceroller_toy.

version 0.0.21:
- new API function EasyRegister.
- improvements to EasyChooseSpell.
- cooldowns, time left on buffs/debuffs should now always be correct.

version 0.0.20:
- fixed bugs in gui and core that keept it from working with secondary spec after login.
- option to show/hide frame in vehicles.

version 0.0.19:
- fixed a bug with saved variables and module init.
- added Faceroller_EasyExample module.

version 0.0.18:
- changed Easy* functions to work less stupid.

version 0.0.17:
- module options should now work with dual spec
- added EasySetup and EasyChooseSpell to API.

version 0.0.16:
- added module options to the GUI.

version 0.0.15:
- corner indicators
- destro wl module included.

version 0.0.14:
- module init fix with uninitialized options.

version 0.0.13:
- trying so set an invalid module should no longer destroy an existing, working setup.
- Faceroller_Config added (gui).

version 0.0.12:
- fix(?) for reactive abilities being incorrectly disabled.

version 0.0.11:
- updates to example module.
- update time_left for myTargetDebuffs.

version 0.0.10:
- Faceroller:HasGlyph(spellid) function
- Faceroller:GetSetItemSlotItems() (returns item id of head, shoulder, chest, legs, gloves)
- Faceroller.in_combat flag (boolean).
- hide frame when no module is set.
- unset current module with /fr mod none.

version 0.0.9:
- color frame red when out of range.
- color frame blue when out of power.
- FR_test3 is now Faceroller_SimpleEnhancementShaman.
- module init functions: may now 'return nil, <error-string>'
- some module updates.

version 0.0.8:
- show frame when target becomes attackable.
- simplehunter module: fixed handling of ES with lock and load.

version 0.0.7:
- example module update.
- hm fix in simplehunter module.

version 0.0.6:
- changed packing to fix minion problem.
- some module stuff

version 0.0.5:
- some more stuff for reactive abilities.

version 0.0.4:
- support for reactive abilities.
- options for when to show/hide the frame.

version 0.0.3:
- added missing slash commands.

version 0.0.2:
- fixed a "typo"

version 0.0.1:
- first beta release.
Optional Files (7)
File Name
Version
Size
Author
Date
Type
1.2c
2kB
05-14-11 03:29 AM
Addon
1.7
2kB
05-08-11 07:38 AM
Addon
1.2.1
102kB
02-13-11 02:06 PM
Patch
1.2
2kB
02-13-11 05:15 AM
Addon
4.0
1kB
01-02-11 01:25 PM
Addon
1.3.2
2kB
03-24-10 04:44 PM
Addon
1.1
2kB
10-25-09 01:16 PM
Addon


Post A Reply Comment Options
Unread 05-15-10, 09:28 AM  
trackman1416
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Re: DK Frost Update

Originally posted by Totentanz
hi, I've updated the code of DK Frost DW dps to comply with this post on EJ (should be the most up to date spell priority):
http://elitistjerks.com/f72/t83319-f...ng_remembered/

here is the code:

Code:
-- Kallsuh frost dk module.
-- 12/06/2009
do
	local _, playerClass = UnitClass("player")
	if playerClass ~= "DEATHKNIGHT" then return end
end

local MODULE_NAME = "dkdwfrost_Kall"

local Faceroller = _G.Faceroller
local gsi = Faceroller.gsi

local b_ff
-- frost fewer
local b_bp
-- blood plague
local b_rm
-- rime
local b_km
-- killing machine
local b_soe
-- strenght of earth
local b_hw
-- Horn of winter

local function Init()
	local skills = {
		-- howling blast
		[51411] = 0,
		-- bs
		[49930] = 0,
		-- obliterate
		[51425] = 0,
		-- frost strike
		[55268] = 0,
		-- how
		[57623] = 0,
		-- Pestilence
		[50842] = 0
	}

	Faceroller:RegisterBuff(51124)
	Faceroller:RegisterBuff(59052)
	Faceroller:RegisterBuff(57623)

	-- strength of earth totem
	Faceroller:RegisterBuff(58643, true)
	Faceroller:RegisterBuff(58646, true)

	Faceroller:RegisterDebuff(55078,true)
	Faceroller:RegisterDebuff(55095,true)

	b_bp = gsi[55078]
	b_ff = gsi[55095]
	b_hw = gsi[57623]

	b_km = gsi[51124]
	b_rm = gsi[59052]
	b_soeb = gsi[58643]
	b_soei = gsi[58646]
	return skills
end

local function NextShot(gcd, spells, myBuffs, debuffs, myDebuffs, xxx, otherBuffs)
	local th = max (0.5, gcd)
	th = th + 0.1
	
	--DEFAULT_CHAT_FRAME:AddMessage("|cFFFF0000 gcd = " .. gcd)
	local ff = myDebuffs[b_ff]
	local bp = myDebuffs[b_bp]
	local bloodrunesavailable = 0
	local minbloodcooldown = 10
	
	local start,_,rdy = GetRuneCooldown(1)
	if  min(start, GetTime() - start) < minbloodcooldown then
		minbloodcooldown =  min(start, GetTime() - start)
	end
	if rdy == true then
		bloodrunesavailable = bloodrunesavailable + 1
	end
	
	local start,_,rdy = GetRuneCooldown(2)
	if  min(start, GetTime() - start) > 0 and   min(start, GetTime() - start)<minbloodcooldown then
		minbloodcooldown =  min(start, GetTime() - start)
	end
	if rdy == true then
		bloodrunesavailable = bloodrunesavailable + 1
	end
	
	local disease_timeleft = math.min(ff.time_left, bp.time_left)
	
	-- both diseases active on target and about to expire
	if ff.active == true and bp.active == true  then		
		-- if any disease is going to expire in a time shorter than a rune cooldown I may have to renew them with Pestilence
		if ( disease_timeleft < 12) then
			-- if only a blood rune is available and next blood/death rune will not be available until diseases expire
			if bloodrunesavailable == 1 and disease_timeleft < minbloodcooldown + 2 then
--				DEFAULT_CHAT_FRAME:AddMessage("|cFFFF0000Pestilence1 - |r: minbloodcooldown = " .. minbloodcooldown .. ", disease_timeleft = " .. disease_timeleft)
				-- Pestilence
				return 50842
			end
			
			-- if more blood runes are available and no blood/death rune will not be available until diseases expire
			if bloodrunesavailable==2 and disease_timeleft < minbloodcooldown + 2 then
--				DEFAULT_CHAT_FRAME:AddMessage("|cFFFF0000Pestilence2 - |r: minbloodcooldown = " .. minbloodcooldown .. ", disease_timeleft = " .. disease_timeleft)
				-- Pestilence
				return 50842
			end
			
			-- if any disease expires in a gcd (acutally a gcd + 1 second)
			if disease_timeleft < 4 then
--				--DEFAULT_CHAT_FRAME:AddMessage("|cFFFF0000Pestilence1 - |r: bloodrunesavailable = " .. bloodrunesavailable .. ", minbloodcooldown = " .. minbloodcooldown .. ", disease_timeleft = " .. disease_timeleft)
--				-- Pestilence
				return 50842
			end
		end
	end
	
	-- Horn of Winter
	if otherBuffs[b_soeb].active == false and otherBuffs[b_soei].active == false then
		if spells[57623].usable == 1 and myBuffs[b_hw].active == false then
		--and spells[57623].cd < gcd 
			return 57623
		--end
		end
	end
	
	v = myBuffs[b_km]
	-- if Killing Machine is active
	if v.active == true then
		if spells[55268].usable == 1 then
			-- Frost Strike
			return 55268
		end
	end
	
	-- if no frost fever, or frost fever less then 2 sec
	if ff.active == false then
		return 49909
	end
	
	local bp = myDebuffs[b_bp]
	-- if no blood plague or blood plague less then 2 sec
	if bp.active == false then
		return 49921
	end

--	v = myBuffs[b_rm]
--	if v.active == true and v.time_left < 4 then
--		-- Howling blast, if rime proc have less then 4 sec remaining
--		return 51411
--	end
	
--	if Faceroller.power > 90 then
		-- frost strike if more then 90 runic power
--		return 55268
--	end

--	if spells[55268].usable == 1 and myDebuffs[b_ff].time_left < 5 and myBuffs[b_km]. active == true then
		-- frost strike if forst strike is available, frost fever is about to end and killing machine in active
		-- do not want to waste a killing machine proc on a icy touch
--		return 55268
--	end

	if GetRuneType(3)==2 and GetRuneType(5)==3 then
		local _,_,cool_first = GetRuneCooldown(3)
		local _,_,cool_last = GetRuneCooldown(5)
		if cool_first==true and cool_last==true then
			-- obliterate on rune 3 and 5
			return 51425
		end
	end

	if GetRuneType(3)==2 and GetRuneType(6)==3 then
		-- obliterate on rune 3 and 6
		local _,_,cool_first = GetRuneCooldown(3)
		local _,_,cool_last = GetRuneCooldown(6)
		if cool_first==true and cool_last==true then

			return 51425
		end
	end

	if GetRuneType(4)==2 and GetRuneType(5)==3 then
		-- obliterate on rune 4 and 5
		local _,_,cool_first = GetRuneCooldown(4)
		local _,_,cool_last = GetRuneCooldown(5)
		if cool_first==true and cool_last==true then
			return 51425
		end
	end

	if GetRuneType(4)==2 and GetRuneType(6)==3 then
		-- obliterate on rune 4 and 6
		local _,_,cool_first = GetRuneCooldown(4)
		local _,_,cool_last = GetRuneCooldown(6)
		if cool_first==true and cool_last==true then
			return 51425
		end
	end

	if GetRuneType(1)==4 and GetRuneType(2)==4 then
		local _,_,cool_first = GetRuneCooldown(1)
		local _,_,cool_last = GetRuneCooldown(2)
		if cool_first==true and cool_last==true and not (bloodrunesavailable==2 and disease_timeleft < minbloodcooldown + 2) then
			-- obliterate on rune 1 and 2
			return 51425
		end
	end

	-- i want to be sure thato obliterate is not used on rune, for example, 1 and 5 leaving rune 2 death alone
	if GetRuneType(1) == 1 and GetRuneType (2) == 1 then
		if spells[49930].usable == 1 then
			-- blood strike one time if both blood rune not on CD (nor death)
			-- the second blood strike will be still done couse now we will have a spare blood rune
			return 49930
		end
	end
	
	if GetRuneType(1)==1 and GetRuneType(2)~=1 then
		-- if I have a spare blood rune use it!
		local _,_,cool_first = GetRuneCooldown(1)
		if cool_first==true then
			return 49930
		end
	end

	if GetRuneType(1)~=1 and GetRuneType(2)==1 then
		-- if I have a spare blood rune use it!
		local _,_,cool_first = GetRuneCooldown(2)
		if cool_first==true then
			return 49930
		end
	end

	if spells[55268].usable == 1 then
		-- frost strike if is usable
		return 55268
	end
	
	--rime
	if myBuffs[b_rm].active == true then
		return 51411
	end
	
	if spells[57623].cd <= 1 then
		-- horn of winter if is usable
		return 57623
	end

	return 0
	-- if nothing else can be done
end

Faceroller:RegisterModule(MODULE_NAME, Init, NextShot, nil)
I tried copy pasting that into the module code, but it broke it. How do I make this code work?
Report comment to moderator  
Reply With Quote
Unread 04-07-10, 11:29 AM  
Totentanz
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
DK Frost Update

hi, I've updated the code of DK Frost DW dps to comply with this post on EJ (should be the most up to date spell priority):
http://elitistjerks.com/f72/t83319-f...ng_remembered/

here is the code:

Code:
-- Kallsuh frost dk module.
-- 12/06/2009
do
	local _, playerClass = UnitClass("player")
	if playerClass ~= "DEATHKNIGHT" then return end
end

local MODULE_NAME = "dkdwfrost_Kall"

local Faceroller = _G.Faceroller
local gsi = Faceroller.gsi

local b_ff
-- frost fewer
local b_bp
-- blood plague
local b_rm
-- rime
local b_km
-- killing machine
local b_soe
-- strenght of earth
local b_hw
-- Horn of winter

local function Init()
	local skills = {
		-- howling blast
		[51411] = 0,
		-- bs
		[49930] = 0,
		-- obliterate
		[51425] = 0,
		-- frost strike
		[55268] = 0,
		-- how
		[57623] = 0,
		-- Pestilence
		[50842] = 0
	}

	Faceroller:RegisterBuff(51124)
	Faceroller:RegisterBuff(59052)
	Faceroller:RegisterBuff(57623)

	-- strength of earth totem
	Faceroller:RegisterBuff(58643, true)
	Faceroller:RegisterBuff(58646, true)

	Faceroller:RegisterDebuff(55078,true)
	Faceroller:RegisterDebuff(55095,true)

	b_bp = gsi[55078]
	b_ff = gsi[55095]
	b_hw = gsi[57623]

	b_km = gsi[51124]
	b_rm = gsi[59052]
	b_soeb = gsi[58643]
	b_soei = gsi[58646]
	return skills
end

local function NextShot(gcd, spells, myBuffs, debuffs, myDebuffs, xxx, otherBuffs)
	local th = max (0.5, gcd)
	th = th + 0.1
	
	--DEFAULT_CHAT_FRAME:AddMessage("|cFFFF0000 gcd = " .. gcd)
	local ff = myDebuffs[b_ff]
	local bp = myDebuffs[b_bp]
	local bloodrunesavailable = 0
	local minbloodcooldown = 10
	
	local start,_,rdy = GetRuneCooldown(1)
	if  min(start, GetTime() - start) < minbloodcooldown then
		minbloodcooldown =  min(start, GetTime() - start)
	end
	if rdy == true then
		bloodrunesavailable = bloodrunesavailable + 1
	end
	
	local start,_,rdy = GetRuneCooldown(2)
	if  min(start, GetTime() - start) > 0 and   min(start, GetTime() - start)<minbloodcooldown then
		minbloodcooldown =  min(start, GetTime() - start)
	end
	if rdy == true then
		bloodrunesavailable = bloodrunesavailable + 1
	end
	
	local disease_timeleft = math.min(ff.time_left, bp.time_left)
	
	-- both diseases active on target and about to expire
	if ff.active == true and bp.active == true  then		
		-- if any disease is going to expire in a time shorter than a rune cooldown I may have to renew them with Pestilence
		if ( disease_timeleft < 12) then
			-- if only a blood rune is available and next blood/death rune will not be available until diseases expire
			if bloodrunesavailable == 1 and disease_timeleft < minbloodcooldown + 2 then
--				DEFAULT_CHAT_FRAME:AddMessage("|cFFFF0000Pestilence1 - |r: minbloodcooldown = " .. minbloodcooldown .. ", disease_timeleft = " .. disease_timeleft)
				-- Pestilence
				return 50842
			end
			
			-- if more blood runes are available and no blood/death rune will not be available until diseases expire
			if bloodrunesavailable==2 and disease_timeleft < minbloodcooldown + 2 then
--				DEFAULT_CHAT_FRAME:AddMessage("|cFFFF0000Pestilence2 - |r: minbloodcooldown = " .. minbloodcooldown .. ", disease_timeleft = " .. disease_timeleft)
				-- Pestilence
				return 50842
			end
			
			-- if any disease expires in a gcd (acutally a gcd + 1 second)
			if disease_timeleft < 4 then
--				--DEFAULT_CHAT_FRAME:AddMessage("|cFFFF0000Pestilence1 - |r: bloodrunesavailable = " .. bloodrunesavailable .. ", minbloodcooldown = " .. minbloodcooldown .. ", disease_timeleft = " .. disease_timeleft)
--				-- Pestilence
				return 50842
			end
		end
	end
	
	-- Horn of Winter
	if otherBuffs[b_soeb].active == false and otherBuffs[b_soei].active == false then
		if spells[57623].usable == 1 and myBuffs[b_hw].active == false then
		--and spells[57623].cd < gcd 
			return 57623
		--end
		end
	end
	
	v = myBuffs[b_km]
	-- if Killing Machine is active
	if v.active == true then
		if spells[55268].usable == 1 then
			-- Frost Strike
			return 55268
		end
	end
	
	-- if no frost fever, or frost fever less then 2 sec
	if ff.active == false then
		return 49909
	end
	
	local bp = myDebuffs[b_bp]
	-- if no blood plague or blood plague less then 2 sec
	if bp.active == false then
		return 49921
	end

--	v = myBuffs[b_rm]
--	if v.active == true and v.time_left < 4 then
--		-- Howling blast, if rime proc have less then 4 sec remaining
--		return 51411
--	end
	
--	if Faceroller.power > 90 then
		-- frost strike if more then 90 runic power
--		return 55268
--	end

--	if spells[55268].usable == 1 and myDebuffs[b_ff].time_left < 5 and myBuffs[b_km]. active == true then
		-- frost strike if forst strike is available, frost fever is about to end and killing machine in active
		-- do not want to waste a killing machine proc on a icy touch
--		return 55268
--	end

	if GetRuneType(3)==2 and GetRuneType(5)==3 then
		local _,_,cool_first = GetRuneCooldown(3)
		local _,_,cool_last = GetRuneCooldown(5)
		if cool_first==true and cool_last==true then
			-- obliterate on rune 3 and 5
			return 51425
		end
	end

	if GetRuneType(3)==2 and GetRuneType(6)==3 then
		-- obliterate on rune 3 and 6
		local _,_,cool_first = GetRuneCooldown(3)
		local _,_,cool_last = GetRuneCooldown(6)
		if cool_first==true and cool_last==true then

			return 51425
		end
	end

	if GetRuneType(4)==2 and GetRuneType(5)==3 then
		-- obliterate on rune 4 and 5
		local _,_,cool_first = GetRuneCooldown(4)
		local _,_,cool_last = GetRuneCooldown(5)
		if cool_first==true and cool_last==true then
			return 51425
		end
	end

	if GetRuneType(4)==2 and GetRuneType(6)==3 then
		-- obliterate on rune 4 and 6
		local _,_,cool_first = GetRuneCooldown(4)
		local _,_,cool_last = GetRuneCooldown(6)
		if cool_first==true and cool_last==true then
			return 51425
		end
	end

	if GetRuneType(1)==4 and GetRuneType(2)==4 then
		local _,_,cool_first = GetRuneCooldown(1)
		local _,_,cool_last = GetRuneCooldown(2)
		if cool_first==true and cool_last==true and not (bloodrunesavailable==2 and disease_timeleft < minbloodcooldown + 2) then
			-- obliterate on rune 1 and 2
			return 51425
		end
	end

	-- i want to be sure thato obliterate is not used on rune, for example, 1 and 5 leaving rune 2 death alone
	if GetRuneType(1) == 1 and GetRuneType (2) == 1 then
		if spells[49930].usable == 1 then
			-- blood strike one time if both blood rune not on CD (nor death)
			-- the second blood strike will be still done couse now we will have a spare blood rune
			return 49930
		end
	end
	
	if GetRuneType(1)==1 and GetRuneType(2)~=1 then
		-- if I have a spare blood rune use it!
		local _,_,cool_first = GetRuneCooldown(1)
		if cool_first==true then
			return 49930
		end
	end

	if GetRuneType(1)~=1 and GetRuneType(2)==1 then
		-- if I have a spare blood rune use it!
		local _,_,cool_first = GetRuneCooldown(2)
		if cool_first==true then
			return 49930
		end
	end

	if spells[55268].usable == 1 then
		-- frost strike if is usable
		return 55268
	end
	
	--rime
	if myBuffs[b_rm].active == true then
		return 51411
	end
	
	if spells[57623].cd <= 1 then
		-- horn of winter if is usable
		return 57623
	end

	return 0
	-- if nothing else can be done
end

Faceroller:RegisterModule(MODULE_NAME, Init, NextShot, nil)
Report comment to moderator  
Reply With Quote
Unread 03-31-10, 01:46 PM  
Galileo007
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Originally posted by bburden
I can't seem to get the warlock or feral druid modules to load. I'm guessing they're either broken now with 3.3.3 or I need to manually register the modules in Faceroller somehow. I'm not seeing any instructions. Thanks.
I also do not see any instructions... I am not sure how to install individual mods. I put the mod folders in the modules folder, but I don't see them when I go to /fr config.

Am I doing something wrong?
Report comment to moderator  
Reply With Quote
Unread 03-30-10, 06:39 AM  
bburden
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
I can't seem to get the warlock or feral druid modules to load. I'm guessing they're either broken now with 3.3.3 or I need to manually register the modules in Faceroller somehow. I'm not seeing any instructions. Thanks.
Report comment to moderator  
Reply With Quote
Unread 03-22-10, 04:19 PM  
alaron
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Experimental Feral Druid Module

Report comment to moderator  
Reply With Quote
Unread 03-19-10, 10:05 AM  
lolwowmatrixisdown
A Defias Bandit

Forum posts: 2
File comments: 2
Uploads: 0
Originally posted by Snott
hello, in the first lua there is this,

-- nothing to do. refresh lightning shield.
if buffs[b_lightning].count < 6 then
return 324

I think you could manage something with this, it worked for me when everything is in CD, (could you upload your module if you finish it one day ? )
The problem is with
Code:
if n == 0 then
if buffs[b_lightning].count < 6 then
return 324
FR suggests using lightning shield while (for example) stormestrike has only 0.3sec CD left.
Another question is FR can’t track totems, right?
Report comment to moderator  
Reply With Quote
Unread 03-18-10, 05:20 PM  
icecubel
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Hi, I'm wondering if it's possible to check if your target is a worldboss or not.
Report comment to moderator  
Reply With Quote
Unread 03-17-10, 11:38 PM  
Snott
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Originally posted by lolwowmatrixisdown
Hello,

I am trying to write a faceroller addon for the enhancer shaman, but I am getting a few problems. I would like to manage, that when all styles are on cd for at least 1 sec, the addon suggest to refresh lightning shield or magma totem. Does somebody have an idea how I can do that?
hello, in the first lua there is this,

-- nothing to do. refresh lightning shield.
if buffs[b_lightning].count < 6 then
return 324

I think you could manage something with this, it worked for me when everything is in CD, (could you upload your module if you finish it one day ? )
Report comment to moderator  
Reply With Quote
Unread 03-12-10, 07:47 AM  
lolwowmatrixisdown
A Defias Bandit

Forum posts: 2
File comments: 2
Uploads: 0
Hello,

I am trying to write a faceroller addon for the enhancer shaman, but I am getting a few problems. I would like to manage, that when all styles are on cd for at least 1 sec, the addon suggest to refresh lightning shield or magma totem. Does somebody have an idea how I can do that?
Report comment to moderator  
Reply With Quote
Unread 02-26-10, 12:27 PM  
Freak0o
A Kobold Labourer

Forum posts: 0
File comments: 19
Uploads: 0
Death Coil does seem to bug faceroller. once fired and on CD it shows lifetap with a 2min CD instead of anything else on Priority.

Plus i'd really like some smaller icon to the right, that shows what'll probabbly come up next.

Precasting ftw
Last edited by Freak0o : 02-26-10 at 12:50 PM.
Report comment to moderator  
Reply With Quote
Unread 02-25-10, 11:57 AM  
boomboom
A Fallenroot Satyr

Forum posts: 23
File comments: 38
Uploads: 0
Really cool addon! I have been looking for something to replace Shock and Awe for my enhance shammy for a while, as all I use it for is the priority frame, and this is a lot lighter on mem.

However, the enhance module seems.. lacking. There are only a few spells, and the priority system is a lot more complex for enhance. Here, for example, is the current top DPS rotation depending on gear and all hit cap and all;

http://elitistjerks.com/f79/t88300-e...on_3_3_onward/

I was just wondering if there were any plans on an update to it or if someone was working on it.

Thanks a bunch! Loving this currently for my other toons!
Report comment to moderator  
Reply With Quote
Unread 02-17-10, 04:22 PM  
Vetus
A Murloc Raider
 
Vetus's Avatar

Forum posts: 6
File comments: 59
Uploads: 0
Thanks so much for your time creating this addon... It's really appreciated...

But I have an annoying issue...

Usually when I log in (hunter) first I get the Hunter's mark icon (which is correct). But as soon as I cast Hunter's mark, I get the tea-cup icon and it's stays there no matter what I do (Unless the target doesn't have the hunter's mark)

I do a /reload and then it works fine... I have deleted all of the saved variables and reinstalled the latest Faceroller but it still happens.

Any ideas?
Report comment to moderator  
Reply With Quote
Unread 02-16-10, 09:37 PM  
Horion
A Kobold Labourer

Forum posts: 0
File comments: 5
Uploads: 0
I am still having issues with HoW being overwritten by SoE while I am using the DW Frost module, and FR thinking that I simply do not have the buff.
Report comment to moderator  
Reply With Quote
Unread 02-16-10, 02:55 PM  
sacrife
An Onyxian Warder
 
sacrife's Avatar
AddOn Author - Click to view AddOns

Forum posts: 384
File comments: 144
Uploads: 3
Originally posted by Naem
would like to see a mutilate rogue module up here.

http://elitistjerks.com/f78/t37183-p...updated_3_3_a/

Priority:
* Ensure that there is a bleed (ie. Garrote, Rupture, Deep Wounds, Rend) on the target.
* Start up Hunger for Blood.
* Start up Slice and Dice however you please, really.
* Use vanish whenever possible for Overkill buff.

1. Keep HFB up.
2. Keep SnD up (mainly via Envenom).
3. 4+ combo point Envenom.
4. ToT when off cooldown, especially with 2pc T10.

don't even need to rupture anymore to do good DPS as rupturing is very uncommon and only a marginal addition to DPS so it's really not worth it.
Done.
__________________

Report comment to moderator  
Reply With Quote
Unread 02-07-10, 04:07 PM  
Naem
A Kobold Labourer

Forum posts: 0
File comments: 40
Uploads: 0
would like to see a mutilate rogue module up here.

http://elitistjerks.com/f78/t37183-p...updated_3_3_a/

Priority:
* Ensure that there is a bleed (ie. Garrote, Rupture, Deep Wounds, Rend) on the target.
* Start up Hunger for Blood.
* Start up Slice and Dice however you please, really.
* Use vanish whenever possible for Overkill buff.

1. Keep HFB up.
2. Keep SnD up (mainly via Envenom).
3. 4+ combo point Envenom.
4. ToT when off cooldown, especially with 2pc T10.

don't even need to rupture anymore to do good DPS as rupturing is very uncommon and only a marginal addition to DPS so it's really not worth it.
__________________
k
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: