As an aside, I added a couple of fun little ones to the Miscellaneous Macros. I didn't have my exact copies so I recreated them from memory...they should be correct though.
Direct Link
Feedback welcomed as always...
As an aside, I added a couple of fun little ones to the Miscellaneous Macros. I didn't have my exact copies so I recreated them from memory...they should be correct though.
Direct Link
Feedback welcomed as always...
ViralFly-by
I know this is wrong because it doesnt cast steady at all just want to see if I am on the right page or completely offbase.
Sorry for all the questions.Code:/run local amcd={GetSpellCooldown("Aimed Shot")}; amcd=amcd[1]+amcd[2]-GetTime(); /run local cmcd={GetSpellCooldown("Chimera Shot")}; cmcd=cmcd[1]+cmcd[2]-GetTime(); /run if amcd=<1.5 and cmcd=<1.5 and GetSpellCooldown("Steady Shot")==0 and IsUsableSpell("Steady Shot") and IsSpellInRange("Steady Shot", "target")==1 then CastSpellByName("Steady Shot") end
Ok, this is a little to far beyond me atm.
Would this be right?
At the top of the macro.Code:/run local cd={GetSpellCooldown("Steady Shot")}; cd=cd[1]+cd[2]-GetTime(); /run local ct=({GetSpellCooldown("Steady Shot")})[7]/1000;
This is my current Steady Shot line at the bottom of my macro.
Where do I addCode:/run if GetSpellCooldown("Steady Shot")==0 and IsUsableSpll("Steady Shot") and IsSpellInRange("Steady Shot", "target")==1 then CastSpellByName("Steady Shot") end
Sorry, I just couldn't figure that part out on my own.Code:if ct<1.5 then ct=1.5 end
"A friend in need is a friend indeed, but a friend with weed is better"
Any chance you could add holy wrath into this retridin (yours) macro? Not change it on the site but just give me the macro that would include that.
/startattack
/run local n=0; local sets={{48602,48631,1},{50324,50328,10},{51160,51164,10},{51275,51279,10}}; local slots={"HeadSlot","ShoulderSlot","ChestSlot","HandsSlot","LegsSlot"}; for i=1,#slots do local id=tonumber(({string.find(GetInventoryItemLink("player", ({GetInventorySlotInfo(slots[i])})[1]), "^\124c%x+\124Hitem[^:]+):.*\124h%[.*%]")})[3]); for j=1,#sets do if id>=sets[j][1] and id<=sets[j][2] then n=n+sets[j][3] end end end; local a=n-math.floor(n/10)*10; local b=math.floor(n/10); vRet=0; if a>1 and b<2 then vRet=1 elseif a>1 and b>1 then vRet=2 elseif b>3 then vRet=3 end;
/run if type(vJoW)~="function" then vJoW=function() if GetSpellCooldown("Judgement of Wisdom")==0 and IsUsableSpell("Judgement of Wisdom") and IsSpellInRange("Judgement of Wisdom","target") then CastSpellByName("Judgement of Wisdom") end end end;
/run if type(vHoW)~="function" then vHoW=function() if GetSpellCooldown("Hammer of Wrath")==0 and IsUsableSpell("Hammer of Wrath") and IsSpellInRange("Hammer of Wrath","target") and UnitHealth("target")/UnitHealthMax("target")<0.2 then CastSpellByName("Hammer of Wrath") end end end;
/run if type(vCS)~="function" then vCS=function() if GetSpellCooldown("Crusader Strike")==0 and IsUsableSpell("Crusader Strike") and IsSpellInRange("Crusader Strike","target") then CastSpellByName("Crusader Strike") end end end;
/run if type(vDS)~="function" then vDS=function() if GetSpellCooldown("Divine Storm")==0 and IsUsableSpell("Divine Storm") and IsSpellInRange("Crusader Strike","target") then CastSpellByName("Divine Storm") end end end;
/run if type(vCons)~="function" then vCons=function() if UnitPower("player")/UnitPowerMax("player")>=0.25 and GetSpellCooldown("Consecration")==0 and IsUsableSpell("Consecration") and IsSpellInRange("Crusader Strike","target") then CastSpellByName("Consecration") end end end;
/run if type(vExo)~="function" then vExo=function() if UnitBuff("player", "The Art of War") and GetSpellCooldown("Exorcism")==0 and IsUsableSpell("Exorcism") and IsSpellInRange("Exorcism","target") then CastSpellByName("Exorcism") end end end;
/run if type(vPlea)~="function" then vPlea=function(m) if GetSpellCooldown("Divine Plea")==0 and UnitPower("player")/UnitPowerMax("player")<=m then CastSpellByName("Divine Plea") end end end;
/run if UnitHealth("player")/UnitHealthMax("player")<0.10 then if GetSpellCooldown("Divine Shield")==0 and IsUsableSpell("Divine Shield") then SpellStopCasting() CastSpellByName("Divine Shield") elseif GetSpellCooldown("Divine Protection")==0 and IsUsableSpell("Divine Protection") then SpellStopCasting() CastSpellByName("Divine Protection") end end
/run local t={UnitDetailedThreatSituation("player","target")}; if GetNumPartyMembers()>0 and (t[1]==1 or (t[5] ~=nil and t[5]>25000 and t[3]>90)) and GetSpellCooldown("Hand of Salvation")==0 then RunMacroText("/cast [@player] Hand of Salvation") end
/run if (vRetInt==nil or GetTime()-vRetInt>1) and (UnitCastingInfo("target") or UnitChannelInfo("target")) then if IsUsableSpell("Hammer of Justice") and GetSpellCooldown("Hammer of Justice")==0 and IsSpellInRange("Hammer of Justice", "target")==1 then SpellStopCasting() CastSpellByName("Hammer of Justice") vRetInt=GetTime() elseif IsUsableSpell("Arcane Torrent") and GetSpellCooldown("Arcane Torrent")==0 and IsSpellInRange("Crusader Strike", "target")==1 then SpellStopCasting() CastSpellByName("Arcane Torrent") vRetInt=GetTime() end end
/run local s=GetUnitSpeed("player"); if GetSpellCooldown("Hand of Freedom")==0 and s>0 and s<4.5 then RunMacroText("/cast [@player] Hand of Freedom") end;
/run vPlea(0.20)
/run if UnitAffectingCombat("player") and UnitHealth("target")>200000 and GetSpellCooldown("Avenging Wrath")==0 and IsUsableSpell("Avenging Wrath") and IsSpellInRange("Crusader Strike","target") then if UnitBuff("player","Seal of Corruption") or UnitBuff("player","Seal of Vengeance") then local i=1 while(i<=40)do local a={UnitDebuff("target",i)}; if (a[1]=="Holy Vengeance" or a[1]=="Blood Corruption") and a[8]=="player" and a[4]==5 then break else i=i+1 end end; if i<=40 then CastSpellByName("Avenging Wrath") end else CastSpellByName("Avenging Wrath") end end
/run if vRet==0 then vHoW() vCS() vJoW() vDS() vCons() vExo() vPlea(0.70) end
/run if vRet==1 then vJoW() vHoW() vCS() vDS() vCons() vExo() vPlea(0.70) end
/run if vRet==2 then vJoW() vDS() vHoW() vCS() vCons() vExo() vPlea(0.70) end
/run if vRet==3 then vDS() vCS() vJoW() vHoW() vCons() vExo() vPlea(0.70) end
/run if UnitPower("player")/UnitPowerMax("player")>=0.50 then local f=0; for i=1,40 do local d={UnitBuff("player",i)}; if d[1]=="Sacred Shield" and d[8]=="player" then f=1 break end end; if f==0 then RunMacroText("/cast [@player] Sacred Shield") end end;
/run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");
Viral you're a god. I thought I was pretty good at this, but you COMPLETELY replaced the standards of a "good" macro.
The new macros you've posted in Misc are pretty neat. I make macros for people who aren't that fast(old people, people that aren't gamers or just lazy people), so a macro to target the skull is absolutely brilliant![]()
Knowledge is often mistaken for intelligence. This is like mistaking a cup of milk for a cow.
BTW I left out some of the logic for calcuating the cooldown time on that reply...so I jsut updated those posts. O_o Sorry.
You need to do it all on one line because of the local variable...
But I'm not sure exactly what you're trying to do...why do you care about the cast time on Steady Shot in this case? And it doesn't have a cooldown so why are you grabbing that?
I guess my question is: What do you want it to do?
ViralFly-by
I'm not sure what brought that on...but thanks bro. =)
Yea I have lots of little tidbits like that... For basically every boss in every raid, I have multiple "targetting macros" so that I can switch to new correct targets instantly...slowness changing targets is one of the worst DPS losses for lesser-skilled players. That's why most raids use a main assist. I actually had a raid member who was always really quick to get on targets...so one day I was healing so I wouldn't be targetting the mobs and I said on vent, "Ok since I'm healing we'll have the ranged assist ____ instead since he's always good at getting on them quick." He whispers me, "uh I always just put you on focus and assist when I see your target change." ROFL!
I'll post some more of my random miscellaneous ones at some point.
ViralFly-by
I tried this and I it will not cast steady shot ever. Not really sure what part of the line is breaking down.
Code:/run local amcd={GetSpellCooldown("Aimed Shot")}; amcd=amcd[1]+amcd[2]-GetTime(); local cmcd={GetSpellCooldown("Chimera Shot")}; cmcd=cmcd[1]+cmcd[2]-GetTime(); if amcd=<1.5 and cmcd=<1.5 and GetSpellCooldown("Steady Shot")==0 and IsUsableSpell("Steady Shot") and IsSpellInRange("Steady Shot", "target")==1 then CastSpellByName("Steady Shot") end
Please don't just copy-paste the macro...it serves no purpose...we can all see it on the first page.
Also to all...the correct way to put the Lua is inside [code][/code] not inside [quote][/quote]
To Silvera, I'll change it so that you can configure it to either Holy Wrath or not...when I get a few minutes.
ViralFly-by
That's because I'm a fool and gave you bad logic...there was one more part to getting the cooldown. I've updated my previous posts...but here is yours corrected:
Code:/run local amcd={GetSpellCooldown("Aimed Shot")}; if amcd[1]==0 then amcd=0 else amcd=amcd[1]+amcd[2]-GetTime() end; local cmcd={GetSpellCooldown("Chimera Shot")}; if cmcd[1]==0 then cmcd=0 else cmcd=cmcd[1]+cmcd[2]-GetTime() end; if amcd=<1.5 and cmcd=<1.5 and GetSpellCooldown("Steady Shot")==0 and IsUsableSpell("Steady Shot") and IsSpellInRange("Steady Shot", "target")==1 then CastSpellByName("Steady Shot") end
ViralFly-by
trying to only cast steady Shot if Aimed & Chimera Shot have more than 1.5 seconds left on cd.
Blehbot & myself were trying to get the same thing done, but I did not understand it as much as he did. Your last few posts enlightened me more into the inner working, I think I'm understanding the "local" more now.
Last edited by Sensisativa; 01-06-2010 at 06:20 PM.
"A friend in need is a friend indeed, but a friend with weed is better"
Rofl that's hilarious. Yeah I imagine your action bars being full of macros and you being pretty great having in a raidWe should do a MMOwned guild with these tools
! ((Sarcasm)I realise that ain't possible due to people being EU/US and on other servers and alliance instead of horde etc etc. Lots of reasons that isn't possible)
I pretty much did a instance bot with these macros tho. Having the /in 0.5 /run RunMacro() line in my healing macro. Having a macro to keep following my focus(gotten through /tar party3(usually not a tank or myself)) every fourth second (to ensure that if I ever get thrown off, it'll try to refollow) and one to tell my party that somethings wrong with me and I can only use 1 hand, so can't move and heal at the same time so they'll have to let me follow, and a script to queue for instance and accept.
Wohooo, just let this run AFK overnight. The healing is pretty great there's just the problem that if I ever die. I'll stay dead ^^
(Oh yeah and I realise I use paranthesises alot lol)
Knowledge is often mistaken for intelligence. This is like mistaking a cup of milk for a cow.