odd try it at 50ms see if it chokes at that setting.
odd try it at 50ms see if it chokes at that setting.
Please if someone helped you donate rep to them.
Now that you mention it, on a couple of my Shaman beta spells for Elemental, I had to set the Delay ~50ms to make the spells cast right. Anything over that and it was actually not casting spells for almost a second between casts, if that sounds right. It was like lightning bolt > 100ms wait after spell complete > lightning bolt > 100ms wait after spell complete. I originally had the Delay set to 100. but after lowering it down to 50 (0 wasn't working right) the DPS jumped up considerably.
EDIT* And with 2.1.2, I dont get anything casting as well. It worked flawlessly on live though. I use the beta program on my druid and let it run for 2 hours. Did almost 150k Damage and from what I could tell from enabling chat being written to a log file (got a add-on that puts the time beside the text), everything went good, no fail casts or long durations of no spells being cast. I say the 2.1.2 beta would be good to go for Live, but like stated, won't work on Beta because of needing "!" beside the spell to cast.
Last edited by firepong; 04-22-2012 at 04:21 PM.
Done 2 functions that can be useful to make profile coding even easier
HaveBuff(UnitID,SpellID,TimeLeft,Filter)
HaveDebuff(UnitID,SpellID,TimeLeft,Filter)
Some examples:
If the target dont have living bomb cast it.Code:if not HaveDebuff("target",44457) then return true end
When target dont have spell debuff 589 (Shadow Word: Pain) casted by PLAYER or if the debuff is present but lesser than 2 seconds left cast againCode:if not HaveDebuff("target",589,2,"PLAYER") then return true end
When Mark of the Wild or similar buff is not detected on player cast it. This example show how we can use brackets to check multiple buffs or debuffs.Code:if not HaveBuff("player",{1126,20217,90363}) then return true end
Code:function HaveBuff(UnitID,SpellID,TimeLeft,Filter) if not TimeLeft then TimeLeft = 0 end if type(SpellID) == "number" then SpellID = { SpellID } end for i=1,#SpellID do local spell, rank = GetSpellInfo(SpellID[i]) if spell then local buff = select(7,UnitBuff(UnitID,spell,rank,Filter)) if buff and ( buff == 0 or buff - GetTime() > TimeLeft ) then return true end end end end function HaveDebuff(UnitID,SpellID,TimeLeft,Filter) if not TimeLeft then TimeLeft = 0 end if type(SpellID) == "number" then SpellID = { SpellID } end for i=1,#SpellID do local spell, rank = GetSpellInfo(SpellID[i]) if spell then local debuff = select(7,UnitDebuff(UnitID,spell,rank,Filter)) if debuff and ( debuff == 0 or debuff - GetTime() > TimeLeft ) then return true end end end end
Last edited by sheuron; 04-22-2012 at 06:29 PM.
[ Sheuron PQR Profiles Pack ] https://goo.gl/lfAMC
If you like this piece of code feel free to invite me a beer making a donation.
My paypal account: [email protected]
Just curious if ther is a ret paladin profile yet?
looking for one, either!
And I have a problem at using PQR with Xelper's Prot Rotation. When I start pqr, it says "Prot AOE Enabled" and he starts to target enemys but doesnt spell one cast, simply auto-attack. Same Problem with the PvP Frost Mage Rota. Using Novas Holy Rota everything works perfectly.
Anybody can help ? Thanks ;-)
Hey FirePong. I've been racking my brain on how to implement a check for Tiger's Fury to return false if Berserk is 5 seconds away from becoming off cooldown.
Would this work if I provided the locals for Berserk, or am I missing something blatantly obvious?Code:if BSCooldown <= 5 and BSCooldown ~= 0 then return false else --Rest of tiger fury checks
updated my Affliction lock profiles again. so please redownload them or run the updater in pqr. Version number is 1.0.0.1. Thanks
Please if someone helped you donate rep to them.
Simple (and hopefully temporary) fix for the Monk Jab issue:
Code:if UnitPower("player") > 40 then RunMacroText("/cast !Jab") end
Last edited by ticklets; 04-22-2012 at 06:07 PM.
For live or beta?
For live it would go like:
Name: Tiger's Fury
SpellID: 5217
Delay: 0
Or something like this.Code:local bsCD = GetSpellCooldown(50334) local bsDuration = (bsCD - GetTime()) if bsDuration < 5 then return false elseif bsDuration is > 20 then return true elseif bsCD == 0 then return true end
For beta, change:
toCode:local bsCD = GetSpellCooldown(50334)
Don't know if it would work on beta as so much has changed, I can't even get it to cast Beresrk without using "RunMacroText("/cast !Berserk")" lolCode:local bsCD = GetSpellCooldown(106951)
This is all off the top of my head. Give me 30 min and I can try it all out on both live and beta
EDIT* Ok, it won't work on beta this way. Give me 15min to get it tested out on Live and I'll let you know. Just make sure to also add in a energy check to the above to use it below 45 energy as well.
Last edited by firepong; 04-22-2012 at 06:21 PM.
Ok, came up with this. tested and working on live, no go on Beta:
Name: Tiger's Fury
SpellID: 5217
Delay: 0
And made this to cancel Tiger's Fury if energy is below 25 and the buff is still up, since you loose 20 energy when it falls off:Code:local BSstart, BSduration = GetSpellCooldown(50334) local BScooldown = (BSstart + BSduration - GetTime()) if BScooldown < 5 then if BSstart ~= 0 then return false end end if BScooldown > 25 and tfEnergy <= 45 then return true end if BSstart == 0 and tfEnergy <= 45 then return true end
Name: Cancel Tiger's Fury
SpellID: 0
Delay: 0
Code:local _,_,_,TF = UnitBuffID("player", 5217) local tfEnergy = UnitPower("player") / UnitPowerMax("player") * 100 if TF ~= nil and tfEnergy < 25 then CancelUnitBuff("Player",tostring(GetSpellInfo(5217))) end
I am currently leveling a Brewmaster monk and the profile so far looks really good!
Will release it soon.
Thank you Firepong! Would it make more sense to just attempt to call Berserk whenever tiger's fury would return true? Though this could lead to Berserk not being used for a max of 30 seconds, I'm not sure how much of a DPS hit you would take. Though in a way this would make the most sense since you would always want to use Berserk immediately after Tiger's Fury.
Could anything go wrong if you try and pop berserk every time you use Tiger's Fury?
Obviously you could check to see if Berserk if off cooldown and then [castspellid(berserk), return true] or just [return true] if it's on cooldown. I'm just trying to think of the simplest way, not necessary the most efficient.
Ok, guys, got a minor solution that works for all spells that I had problems with in the Druid tree. So, in my assumption, it SHOULD work for all other spells in beta that is giving us the problem we are having with spells that do not want to cast by SpellID.
Locals Code:
Call Code To Cast:Code:local spell = select(2,GetSpellBookItemInfo(tostring(GetSpellInfo(106731))))
Now, this might seem over-the-top repetitive. But, I'm sure some of the profile writers here for Beta profiles have come across some spells (for example, Talent Spells that are cast-able) that you could not cast just from doing CastSpellByID(spellID).Code:CastSpellByID(spell)
The above takes the SpellName from GetSpellInfo(spellID) and spits it into a string. Then, it takes that string, and spits it into GetSpellBookInfo("spellname"). Now, GetSpellBookInfo("spellName") has 2 returns, spelltype (skillType - The type of the spell (known values: 'SPELL', 'PETACTION', 'FUTURESPELL', 'FLYOUT' (string) ) and spellID (spellId - The global spell id (number) ). So, with select(2,...) we get the spellID that Blizzard shits out.
Now, for the love of god, why this works and not just putting in the spellID of the spell, I don't know. It has to be something on Blizzard's end that is screwed up to the extreme for spells.
If you guys don't believe me on the above, try these out for druids and tell me what you get
Name: Berserk
SpellID: 0
Delay: 0
Name: BerserkCode:CastSpellByID(106951)
SpellID: 0
Delay:0
Another Example (Get the Talent Incarnation in the Druid Tree):Code:local spell = select(2,GetSpellBookItemInfo(tostring(GetSpellInfo(106951)))) CastSpellByID(spell)
Name: Incarnation (Druid Talent)
SpellID: 0
Delay: 0
Name: Incarnation (Druid Talent)Code:CastSpellByID(106731)
SpellID: 0
Delay: 0
Code:local spell = select(2,GetSpellBookItemInfo(tostring(GetSpellInfo(106731)))) local Incarnation = UnitBuffID("Player", 102543) if Incarnation == nil then CancelShapeshiftForm() CastSpellByID(spell) end
Last edited by firepong; 04-22-2012 at 08:55 PM.