[LuaNinja] Survival Hunter Rotation menu

User Tag List

Results 1 to 14 of 14
  1. #1
    MrMemento's Avatar Corporal
    Reputation
    9
    Join Date
    Jan 2010
    Posts
    18
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [LuaNinja] Survival Hunter Rotation

    Sup,

    Here's the survival macro I'm using at the moment.

    1. If the pet exists make the pet attack your current target.
    2. If the pet is alive and under 90% health, cast mend pet.
    3. If the target don't have Hunter's Mark, cast Hunter's Mark
    4. If target isn't in melee range and current aspect is Aspect of the Monkey
      1. and player's mana is under 25%, change to Aspect of the Viper
      2. and player's mana is over or equal to 25%, change ot Aspect of the Hawk (Will prio Dragonhawk)

    5. If the player's mana is
      1. under 25%, change to Aspect of the Viper.
      2. over 50%, change to Aspect of the Hawk (Will prio Dragonhawk)

    6. If the target's health is 20% or under, try to cast Kill Shot.
    7. Try to cast Explosive Shot
    8. If the player don't have Lock and Load and Aimed Shot is available, cast Aimed Shot (Will try to cast Multi-Shot if Aimed isn't available)
    9. If the target is within 11yrds but not melee range, try to cast Concussive Shot
    10. If the player don't have Lock and Load and the target don't have the Black Arrow debuff cast by the player, cast Black Arrow
    11. If the player don't have Lock and Load and the target don't have the Serpent Sting debuff cast by the player, cast Serpent Sting (Will be ignored if the Unit is Elemental or Mechanical)
    12. If the pet is active and alive and Kill Command is ready and the player don't have Lock and Load, try to cast Kill Command.
    13. If the player don't have Lock and Load and Steady Shot is available, cast Steady Shot (Will never cast Steady Shot if of if the more prioritised shot has a cooldown shorter than the casting time of Steady Shot)
    14. If the target is in melee range:
      1. Player's health is under 20%, try to cast Deterrence
      2. Try to cast Snake Trap if it's ready. (The only trap as far as I can ses that has a separat cooldown from Black Arrow and the other traps)
      3. Target don't have Wing Clip, try to cast Wing Clip.
      4. Raptor Strike is ready, try to cast Raptor Strike.
      5. Mongoose Bite is ready, try to cast Mongoose Bite.
      6. Change to Aspect of the Monkey if its not the current Aspect.



    Code:
    /run if IsUsableSpell("Aspect of the Dragonhawk")==1 then vAotH="Aspect of the Dragonhawk"; else vAotH="Aspect of the Hawk"; end
    /run if IsUsableSpell("Aimed Shot")==1 then vAS="Aimed Shot"; else vAS="Multi-Shot"; end
    /run cA={"/cast ","/cast [exists,harm,nodead] ","/cast [exists,@focus,nodead] "};
    /run aBS=1;if (UnitCreatureType("target")=="Elemental" or UnitCreatureType("target")=="Mechanical") then aBSS=0 end
    /run hSS=0;i=1;while(i<=40) do a={UnitDebuff("target",i)} if(a[1]=="Serpent Sting" and a[8]=="player") then hSS=1 break else i=i+1 end end
    /run hBA=0;i=1;while(i<=40) do a={UnitDebuff("target",i)} if(a[1]=="Black Arrow" and a[8]=="player") then hBA=1 break else i=i+1 end end
    /run hHM=0;i=1;while(i<=40) do a={UnitDebuff("target",i)} if(a[1]=="Hunter's Mark" and a[8]=="player") then hHM=1 break else i=i+1 end end
    /run hWC=0;i=1;while(i<=40) do a={UnitDebuff("target",i)} if(a[1]=="Wing Clip" and a[8]=="player") then hWC=1 break else i=i+1 end end
    /run hLL=0;i=1;UnitBuff("player","Lock and Load");
    /run playerMana=UnitPower("player")/UnitPowerMax("player");playerHealth=UnitHealth("player")/UnitHealthMax("player");playerSpeed=GetUnitSpeed("player");petHealth=UnitHealth("pet")/UnitHealthMax("pet");_,petActive=HasPetUI();petIsDead=UnitIsDeadOrGhost("pet");targetHealth=UnitHealth("target")/UnitHealthMax("target");
    /run esCD=0;local ecd={GetSpellCooldown("Explosive Shot")}; if ecd[1]==0 then esCD=0 else esCD=ecd[1]+ecd[2]-GetTime() end;baCD=0;local bcd={GetSpellCooldown("Black Arrow")}; if bcd[1]==0 then baCD=0 else baCD=bcd[1]+bcd[2]-GetTime() end;
    /run asCD=0;local acd={GetSpellCooldown(vAS)}; if acd[1]==0 then asCD=0 else asCD=acd[1]+acd[2]-GetTime() end;
    /run ssCT=({GetSpellInfo("Steady Shot")})[7]/1000;
    /petattack [exists,harm,nodead]
    /run if petActive==1 and petIsDead==0 and petHealth<0.9 and not UnitBuff("pet","Mend Pet") and IsSpellInRange("Mend Pet","pet")==1 and IsUsableSpell("Mend Pet")==1 and GetSpellCooldown("Mend Pet")==0 then RunMacroText(cA[1].."Mend Pet") end
    /run if hHM==0 and IsSpellInRange("Hunter's Mark","target")==1 and GetSpellCooldown("Hunter's Mark")==0 and IsUsableSpell("Hunter's Mark")==1 then RunMacroText(cA[2].."Hunter's Mark") end
    /run if not (UnitBuff("player",vAotH) or UnitBuff("player","Aspect of the Viper")) and IsSpellInRange("Mongoose Bite","target")==0 and IsUsableSpell(vAotH)==1 and GetSpellCooldown(vAotH)==0 and playerMana>=0.25 then RunMacroText(cA[1]..vAotH) end
    /run if not (UnitBuff("player",vAotH) or UnitBuff("player","Aspect of the Viper")) and IsSpellInRange("Mongoose Bite","target")==0 and IsUsableSpell(vAotH)==1 and GetSpellCooldown(vAotH)==0 and playerMana<0.25 then RunMacroText(cA[1].."Aspect of the Viper") end
    /run if playerMana<0.25 and not UnitBuff("player","Aspect of the Viper") and IsSpellInRange("Mongoose Bite","target")==0 and IsUsableSpell("Aspect of the Viper")==1 and GetSpellCooldown("Aspect of the Viper")==0 then RunMacroText(cA[1].."Aspect of the Viper") end
    /run if playerMana>0.50 and not UnitBuff("player",vAotH) and IsSpellInRange("Mongoose Bite","target")==0 and IsUsableSpell(vAotH)==1 and GetSpellCooldown(vAotH)==0 then RunMacroText(cA[1]..vAotH) end
    /run if targetHealth<0.21 and IsSpellInRange("Kill Shot","target") and IsUsableSpell("Kill Shot")==1 and GetSpellCooldown("Kill Shot")==0 then RunMacroText(cA[2].."Kill Shot") end
    /run if IsUsableSpell("Explosive Shot")==1 and GetSpellCooldown("Explosive Shot")==0 and IsSpellInRange("Explosive Shot","target")==1 then RunMacroText(cA[2].."Explosive Shot") end
    /run if hLL==0 and IsUsableSpell(vAS)==1 and GetSpellCooldown(vAS)==0 and IsSpellInRange(vAS,"target")==1 then RunMacroText(cA[2]..vAS) end
    /run if IsUsableSpell("Concussive Shot")==1 and GetSpellCooldown("Concussive Shot")==0 and IsSpellInRange("Mongoose Bite","target")==0 and CheckInteractDistance("target",2) then RunMacroText(cA[2].."Concussive Shot") end
    /run if hLL==0 and hBA==0 and IsSpellInRange("Black Arrow","target")==1 and GetSpellCooldown("Black Arrow")==0 and IsUsableSpell("Black Arrow")==1 then RunMacroText(cA[2].."Black Arrow") end
    /run if hLL==0 and hSS==0 and aBS==1 and IsSpellInRange("Serpent Sting","target")==1 and GetSpellCooldown("Serpent Sting")==0 and IsUsableSpell("Serpent Sting")==1 then RunMacroText(cA[2].."Serpent Sting") end
    /run if hLL==0 and petActive==1 and petIsDead==0 and IsUsableSpell("Kill Command")==1 and GetSpellCooldown("Kill Command")==0 then RunMacroText(cA[2].."Kill Command") end
    /run if hLL==0 and playerSpeed==0 and esCD>ssCT and asCD>ssCT and baCD>ssCT and IsUsableSpell("Steady Shot")==1 and GetSpellCooldown("Steady Shot")==0 and IsSpellInRange("Steady Shot","target")==1 then RunMacroText(cA[2].."Steady Shot") end
    /run if playerHealth<0.20 and IsUsableSpell("Deterrence")==1 and GetSpellCooldown("Deterrence")==0 and IsSpellInRange("Mongoose Bite","target")==1 then RunMacroText(cA[2].."Deterrence") end
    /run if IsUsableSpell("Snake Trap")==1 and GetSpellCooldown("Snake Trap")==0 and IsSpellInRange("Mongoose Bite","target")==1 then RunMacroText(cA[1].."Snake Trap") end
    /run if hWC==0 and IsSpellInRange("Wing Clip","target")==1 and GetSpellCooldown("Wing Clip")==0 and IsUsableSpell("Wing Clip")==1 then RunMacroText(cA[2].."Wing Clip") end
    /run if IsUsableSpell("Raptor Strike")==1 and GetSpellCooldown("Raptor Strike")==0 and IsSpellInRange("Mongoose Bite","target")==1 then RunMacroText(cA[2].."Raptor Strike") end
    /run if IsUsableSpell("Mongoose Bite")==1 and GetSpellCooldown("Mongoose Bite")==0 and IsSpellInRange("Mongoose Bite","target")==1 then RunMacroText(cA[2].."Mongoose Bite") end
    /run if IsUsableSpell("Aspect of the Monkey")==1 and GetSpellCooldown("Aspect of the Monkey")==0 and IsSpellInRange("Mongoose Bite","target")==1 and not UnitBuff("player","Aspect of the Monkey") then RunMacroText(cA[1].."Aspect of the Monkey") end
    /petfollow [exists,help,nodead]
    /run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");

    [LuaNinja] Survival Hunter Rotation
  2. #2
    Ylts's Avatar Active Member
    Reputation
    61
    Join Date
    Mar 2007
    Posts
    127
    Thanks G/R
    0/12
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    this is pvp macro?

  3. #3
    MrMemento's Avatar Corporal
    Reputation
    9
    Join Date
    Jan 2010
    Posts
    18
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    It's not intended to be a pvp macro. But I guess it can be useful for some situations.

  4. #4
    Blehbot's Avatar Member
    Reputation
    1
    Join Date
    May 2008
    Posts
    79
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just wondering why you are trying to shoot multishot if aimed is not available since they both use the same cooldown? Or is it for the hunters that dont aimed shot?

  5. #5
    MrMemento's Avatar Corporal
    Reputation
    9
    Join Date
    Jan 2010
    Posts
    18
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    It's for when and if you didn't pick the talent. I'm going deep surv first, then picking off the talents in the MM tree... which means that I have Multi-Shot at the moment, but not Aimed.. But I will get Aimed later and I'm too lazy to change the macro then :P

  6. #6
    Blehbot's Avatar Member
    Reputation
    1
    Join Date
    May 2008
    Posts
    79
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ok I understand didnt realize you were running it as a leveling macro.

  7. #7
    Jibberish's Avatar Member
    Reputation
    12
    Join Date
    Jan 2008
    Posts
    130
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Why no Disengage if in meelee range?

    Why not use Feign Death?
    Code:
    /run local t={UnitDetailedThreatSituation("player","target")}; if (t[1]==1 or (t[5] ~=nil and t[5]>10000 and t[3]>90)) and GetSpellCooldown("Feign Death")==0 then CastSpellByName("Feign Death") end
    That will cast Feign Death if you gain more than 90% threat on target.

  8. #8
    Viral Fly-by's Avatar Contributor
    Reputation
    136
    Join Date
    Dec 2009
    Posts
    376
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Jibberish View Post
    Why no Disengage if in meelee range?

    Why not use Feign Death?
    Code:
    /run local t={UnitDetailedThreatSituation("player","target")}; if (t[1]==1 or (t[5] ~=nil and t[5]>10000 and t[3]>90)) and GetSpellCooldown("Feign Death")==0 then CastSpellByName("Feign Death") end
    That will cast Feign Death if you gain more than 90% threat on target.
    I, for one, don't want my macro disengaging for me....send me flying back...

    Unless you have also have a macro that does this:

    Code:
    /p LOLZ you can disengage off?  Forge of Souls sucks!  Sorry guys!
    ViralFly-by

  9. #9
    MrMemento's Avatar Corporal
    Reputation
    9
    Join Date
    Jan 2010
    Posts
    18
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    What Viral said about Disengage... I tried it for a while, but I fell of a cliff a few times... so big no no there.

  10. #10
    chaoszerorush's Avatar Member
    Reputation
    1
    Join Date
    Dec 2009
    Posts
    21
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by MrMemento View Post
    What Viral said about Disengage... I tried it for a while, but I fell of a cliff a few times... so big no no there.
    Yeah, running Nexus would be the death of you. Besides, Disengage is supposed to be used more in PvP. There are numerous instances that a use of Disengage would be disastrous in PvE

  11. #11
    MrMemento's Avatar Corporal
    Reputation
    9
    Join Date
    Jan 2010
    Posts
    18
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I could probably be used somewhat in raids. Checking if the player is standing in a fire or a poison cloud, then a disengage would be cool, since you don't have to be in melee range for it to work.

    But I guess you could add a check to see if the ctrl and/or shift key is down and disengage only then.

  12. #12
    Viral Fly-by's Avatar Contributor
    Reputation
    136
    Join Date
    Dec 2009
    Posts
    376
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by MrMemento View Post
    I could probably be used somewhat in raids. Checking if the player is standing in a fire or a poison cloud, then a disengage would be cool, since you don't have to be in melee range for it to work.

    But I guess you could add a check to see if the ctrl and/or shift key is down and disengage only then.
    Due to the nature of how your game client communicates and sends updates to the server, it is always better to RUN out of fire rather than JUMP out of fire. I assume disengage works the same way...so it is probably far better to run than to disengage. Plus if you are standing near max range (you should unless fight mechanics prevent it), you will disengage out of range and have to run back in...also disengage will prevent non-instant shots longer than running.
    ViralFly-by

  13. #13
    MrMemento's Avatar Corporal
    Reputation
    9
    Join Date
    Jan 2010
    Posts
    18
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Viral Fly-by View Post
    Due to the nature of how your game client communicates and sends updates to the server, it is always better to RUN out of fire rather than JUMP out of fire. I assume disengage works the same way...so it is probably far better to run than to disengage. Plus if you are standing near max range (you should unless fight mechanics prevent it), you will disengage out of range and have to run back in...also disengage will prevent non-instant shots longer than running.
    You are the a wise man Viral! And the quote above proves it

  14. #14
    Viral Fly-by's Avatar Contributor
    Reputation
    136
    Join Date
    Dec 2009
    Posts
    376
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by MrMemento View Post
    You are the a wise man Viral! And the quote above proves it
    You confuse my insane attention to detail for wisdom my friend...but thanks. =)
    ViralFly-by

Similar Threads

  1. [Hunter] [PE] - Zylla's Survival Hunter Rotation - PvE & PvP
    By adde88 in forum Combat Routines
    Replies: 30
    Last Post: 07-05-2015, 02:04 PM
  2. [Hunter PvE] THE SURVIVAL HUNTER HANDBOOK
    By neokaramani in forum World of Warcraft Guides
    Replies: 5
    Last Post: 09-10-2009, 09:25 AM
  3. [Gnometools] Survival Hunter fightbook+macros
    By ghost_soul in forum World of Warcraft Bots and Programs
    Replies: 5
    Last Post: 06-16-2009, 05:13 AM
  4. 3.1 Survival Hunter Specs
    By Squirllz in forum WoW Instances & Raiding
    Replies: 4
    Last Post: 04-07-2009, 10:38 PM
  5. Survival Hunter Arena-PvP Guide
    By unitzero89 in forum World of Warcraft Guides
    Replies: 13
    Last Post: 09-07-2008, 10:18 AM
All times are GMT -5. The time now is 04:34 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search