General Hunter Macros
-
- Posts: 7
General Hunter Macros
- AutoShot
/script if GetUnitName("target")==nil then TargetNearestEnemy() end
/run if CheckInteractDistance("target", 3) and (not PlayerFrame.inCombat) then AttackTarget() elseif not IsAutoRepeatAction(12) then CastSpellByName("Auto Shot") end
--AutoAttack with Raptor Strike then Mongoose Bite
/run if (not PlayerFrame.inCombat) then AttackTarget() end
/cast Raptor Strike
/cast Mongoose Bite
-- Serpent Sting with AutoAttack and PetAttack
/script if (not PlayerFrame.inCombat) then AttackTarget() end
/cast Serpent Sting
/script PetAttack()
PetPassiveMode with PetFollow
/script PetPassiveMode();
/script PetFollow();
--AutoShot or Shoot (for wand)
/run if CheckInteractDistance("target", 3) and (not PlayerFrame.inCombat) then AttackTarget() elseif not IsAutoRepeatAction(12) then CastSpellByName("Auto Shot OR Shoot") end
/script if GetUnitName("target")==nil then TargetNearestEnemy() end
/run if CheckInteractDistance("target", 3) and (not PlayerFrame.inCombat) then AttackTarget() elseif not IsAutoRepeatAction(12) then CastSpellByName("Auto Shot") end
--AutoAttack with Raptor Strike then Mongoose Bite
/run if (not PlayerFrame.inCombat) then AttackTarget() end
/cast Raptor Strike
/cast Mongoose Bite
-- Serpent Sting with AutoAttack and PetAttack
/script if (not PlayerFrame.inCombat) then AttackTarget() end
/cast Serpent Sting
/script PetAttack()
PetPassiveMode with PetFollow
/script PetPassiveMode();
/script PetFollow();
--AutoShot or Shoot (for wand)
/run if CheckInteractDistance("target", 3) and (not PlayerFrame.inCombat) then AttackTarget() elseif not IsAutoRepeatAction(12) then CastSpellByName("Auto Shot OR Shoot") end
Last edited by Ihavenoclothes on Tue Feb 13, 2024 1:06 pm, edited 1 time in total.
-
- Posts: 7
Re: General Hunter Macros
Thank You for adding that great resource link! I'm just posting a cumulative list of macro's I've found useful.
Re: General Hunter Macros
/script if UnitExists("target") then if a ==0 then PetAttack(target) a=1 else if UnitExists("pettarget") and UnitIsUnit("target","pettarget") then PetFollow("Leonhardtusk") a=0 else PetAttack(target) end;end; else PetFollow("Leonhardtusk") a=0 end;
Change "Leonhardtusk" to your name.
This is attack and if you press it again it turns on follow and brings them back to you. I have it bound to one of my mouse buttons for quick on off usage
Change "Leonhardtusk" to your name.
This is attack and if you press it again it turns on follow and brings them back to you. I have it bound to one of my mouse buttons for quick on off usage
Re: General Hunter Macros
I'll share my macro, maybe someone will like it. Although it was made more than a year ago, it may still be working.
Shot + Aimed Shot, Trueshot/Arcane Shot or Attack + Raptor Strike, Mongoose Bite, Counterattack depending on the distance to the target.
/script local N,R,C;local UL=UnitLevel;if UnitExists("target")==nil then TargetNearestEnemy();end;if CheckInteractDistance("target",2)==1 then for C=1,200 do if IsAttackAction(C)then if not IsCurrentAction(C)then UseAction(C);end;C=200;end;end;if UL("player")>55 then LV="Rank 8" else if UL("player")>47 then LV="Rank 7" else if UL("player")>39 then LV="Rank 6" else if UL("player")>31 then LV="Rank 5" else if UL("player")>23 then LV="Rank 4" else if UL("player")>15 then LV="Rank 3" else if UL("player")>7 then LV="Rank 2" else if UL("player")>0 then LV="Rank 1" else LV="0" end;end;end;end;end;end;end;end; for C=1,200 do N,R=GetSpellName(C,"spell");if N=="Raptor Strike" and R==LV and GetSpellCooldown(C,"spell")==0 then CastSpellByName("Raptor Strike("..LV..")");C=200;end;end;if UL("player")>57 then LV="Rank 4" else if UL("player")>43 then LV="Rank 3" else if UL("player")>29 then LV="Rank 2" else if UL("player")>15 then LV="Rank 1" else LV="0" end;end;end;end;CastSpellByName("Mongoose Bite("..LV..")");if UL("player")>53 then LV="Rank 3" else if UL("player")>41 then LV="Rank 2" else if UL("player")>30 then LV="Rank 1" else LV="0" end;end;end;CastSpellByName("Counterattack("..LV..")");else if not IsAutoRepeatAction(58)then CastSpellByName("Auto Shot");end;if UL("player")>59 then LV="Rank 6" else if UL("player")>51 then LV="Rank 5" else if UL("player")>43 then LV="Rank 4" else if UL("player")>35 then LV="Rank 3" else if UL("player")>27 then LV="Rank 2" else if UL("player")>19 then LV="Rank 1" else LV="0" end;end;end;end;end;end;for C=1,200 do N,R=GetSpellName(C,"spell");if N=="Aimed Shot" and R==LV and GetSpellCooldown(C,"spell")==0 then CastSpellByName("Aimed Shot("..LV..")");C=200;end;end;for C=1,200 do N,R=GetSpellName(C,"spell");if N=="Trueshot" and GetSpellCooldown(C,"spell")==0 then CastSpellByName("Trueshot");C=200;end;end;if UL("player")>59 then LV="Rank 8" else if UL("player")>51 then LV="Rank 7" else if UL("player")>43 then LV="Rank 6" else if UL("player")>35 then LV="Rank 5" else if UL("player")>27 then LV="Rank 4" else if UL("player")>19 then LV="Rank 3" else if UL("player")>11 then LV="Rank 2" else if UL("player")>5 then LV="Rank 1" else LV="0" end;end;end;end;end;end;end;end; for C=1,200 do N,R=GetSpellName(C,"spell");if N=="Arcane Shot" and R==LV and GetSpellCooldown(C,"spell")==0 then CastSpellByName("Arcane Shot("..LV..")");C=200;end;end;end;
Shot + Aimed Shot, Trueshot/Arcane Shot or Attack + Raptor Strike, Mongoose Bite, Counterattack depending on the distance to the target.
/script local N,R,C;local UL=UnitLevel;if UnitExists("target")==nil then TargetNearestEnemy();end;if CheckInteractDistance("target",2)==1 then for C=1,200 do if IsAttackAction(C)then if not IsCurrentAction(C)then UseAction(C);end;C=200;end;end;if UL("player")>55 then LV="Rank 8" else if UL("player")>47 then LV="Rank 7" else if UL("player")>39 then LV="Rank 6" else if UL("player")>31 then LV="Rank 5" else if UL("player")>23 then LV="Rank 4" else if UL("player")>15 then LV="Rank 3" else if UL("player")>7 then LV="Rank 2" else if UL("player")>0 then LV="Rank 1" else LV="0" end;end;end;end;end;end;end;end; for C=1,200 do N,R=GetSpellName(C,"spell");if N=="Raptor Strike" and R==LV and GetSpellCooldown(C,"spell")==0 then CastSpellByName("Raptor Strike("..LV..")");C=200;end;end;if UL("player")>57 then LV="Rank 4" else if UL("player")>43 then LV="Rank 3" else if UL("player")>29 then LV="Rank 2" else if UL("player")>15 then LV="Rank 1" else LV="0" end;end;end;end;CastSpellByName("Mongoose Bite("..LV..")");if UL("player")>53 then LV="Rank 3" else if UL("player")>41 then LV="Rank 2" else if UL("player")>30 then LV="Rank 1" else LV="0" end;end;end;CastSpellByName("Counterattack("..LV..")");else if not IsAutoRepeatAction(58)then CastSpellByName("Auto Shot");end;if UL("player")>59 then LV="Rank 6" else if UL("player")>51 then LV="Rank 5" else if UL("player")>43 then LV="Rank 4" else if UL("player")>35 then LV="Rank 3" else if UL("player")>27 then LV="Rank 2" else if UL("player")>19 then LV="Rank 1" else LV="0" end;end;end;end;end;end;for C=1,200 do N,R=GetSpellName(C,"spell");if N=="Aimed Shot" and R==LV and GetSpellCooldown(C,"spell")==0 then CastSpellByName("Aimed Shot("..LV..")");C=200;end;end;for C=1,200 do N,R=GetSpellName(C,"spell");if N=="Trueshot" and GetSpellCooldown(C,"spell")==0 then CastSpellByName("Trueshot");C=200;end;end;if UL("player")>59 then LV="Rank 8" else if UL("player")>51 then LV="Rank 7" else if UL("player")>43 then LV="Rank 6" else if UL("player")>35 then LV="Rank 5" else if UL("player")>27 then LV="Rank 4" else if UL("player")>19 then LV="Rank 3" else if UL("player")>11 then LV="Rank 2" else if UL("player")>5 then LV="Rank 1" else LV="0" end;end;end;end;end;end;end;end; for C=1,200 do N,R=GetSpellName(C,"spell");if N=="Arcane Shot" and R==LV and GetSpellCooldown(C,"spell")==0 then CastSpellByName("Arcane Shot("..LV..")");C=200;end;end;end;
-
- Posts: 7
Re: General Hunter Macros
Anyone have a good macro to bind Rapid Fire to another attack like Arcane Shot, so it automatically casts on CD?
-
- Posts: 7
Re: General Hunter Macros
Thanks, but I am trying to have the tooltip show as Arcane shot, so it need it to be the first line.
I'd also like to integrate autoshot into the macro.
I'd also like to integrate autoshot into the macro.
Re: General Hunter Macros
Does anyone know what happened to the "Auto Shot" skill and how to fix it? Now its activity cannot be checked with a macro.
Here's an example of a simple macro that previously worked well:
/script local x;for x=1,99 do if GetSpellName(x,"spell")=="Auto Shot"then if not IsAutoRepeatAction(x) then CastSpellByName("Auto Shot") end;end;end;
Here's an example of a simple macro that previously worked well:
/script local x;for x=1,99 do if GetSpellName(x,"spell")=="Auto Shot"then if not IsAutoRepeatAction(x) then CastSpellByName("Auto Shot") end;end;end;
Re: General Hunter Macros
this one workUlukay wrote: ↑Wed May 22, 2024 10:38 amDoes anyone know what happened to the "Auto Shot" skill and how to fix it? Now its activity cannot be checked with a macro.
Here's an example of a simple macro that previously worked well:
/script local x;for x=1,99 do if GetSpellName(x,"spell")=="Auto Shot"then if not IsAutoRepeatAction(x) then CastSpellByName("Auto Shot") end;end;end;
/run for i=1,120 do if IsAutoRepeatAction(i) then return end end CastSpellByName("Auto Shot")
Re: General Hunter Macros
Ibux wrote: ↑Wed May 22, 2024 11:03 amthis one workUlukay wrote: ↑Wed May 22, 2024 10:38 amDoes anyone know what happened to the "Auto Shot" skill and how to fix it? Now its activity cannot be checked with a macro.
Here's an example of a simple macro that previously worked well:
/script local x;for x=1,99 do if GetSpellName(x,"spell")=="Auto Shot"then if not IsAutoRepeatAction(x) then CastSpellByName("Auto Shot") end;end;end;/run for i=1,120 do if IsAutoRepeatAction(i) then return end end CastSpellByName("Auto Shot")
It's not that. The result is the same. When you press it again, the skill is deactivated. You might as well make /script CastSpellByName("Auto Shot").
Re: General Hunter Macros
make sure you got auto shot some place on your actionbar or it will not work.Ulukay wrote: ↑Wed May 22, 2024 11:10 amIbux wrote: ↑Wed May 22, 2024 11:03 amthis one workUlukay wrote: ↑Wed May 22, 2024 10:38 amDoes anyone know what happened to the "Auto Shot" skill and how to fix it? Now its activity cannot be checked with a macro.
Here's an example of a simple macro that previously worked well:
/script local x;for x=1,99 do if GetSpellName(x,"spell")=="Auto Shot"then if not IsAutoRepeatAction(x) then CastSpellByName("Auto Shot") end;end;end;/run for i=1,120 do if IsAutoRepeatAction(i) then return end end CastSpellByName("Auto Shot")
It's not that. The result is the same. When you press it again, the skill is deactivated. You might as well make /script CastSpellByName("Auto Shot").
Re: General Hunter Macros
I made a mistake. For some reason, it seemed to me that this should be a check from the writings of spells :)
In any case, thanks.
Re: General Hunter Macros
I had to tinker with this to apply it correctly to my macro, but it seems to have worked out well. Try it, hunters.
It is desirable that Auto Attack and Auto Shot are on the panel
/script local function melee() if UnitExists("target") then return CheckInteractDistance("target",2);end;end;local function ranged() if UnitExists("target") then return not melee();end;end;local function inCombat() return UnitAffectingCombat("player");end;local function GotBuff(name,target) local tex,cnt,ix;for ix = 1,32 do tex,cnt = UnitBuff("player",ix);if not tex then return end;if strfind(tex,name) then return cnt end;end;end;local function GotDebuff(name,target) if not target then target = "target" end;local tex,cnt,ix;for ix = 1,32 do tex,cnt = UnitDebuff(target,ix);if not tex then return end;if strfind(tex,name) then return cnt end;end;end;local function ActSpell(spell,rank,sw) local ix,spellName,spellRank=192;while(ix>0) do if ix==0 then return nil;else spellName,spellRank=GetSpellName(ix,"spell");if spellName==spell and (spellRank==rank or rank==nil) then if sw==0 then return ix;end;if sw==1 then return GetSpellCooldown(ix,"spell");end;if sw==nil then if GetSpellCooldown(ix,"spell")==0 then CastSpell(ix,"spell");return ix;end;end;end;ix=ix-1;end;end;end;function Attack_Actions() local mana,X,C=UnitMana("player");if UnitCanAttack("player","target")==nil or UnitHealth("target")<=0 then TargetNearestEnemy();end;if melee() then if GotBuff("Spell_Nature_RavenForm") then ActSpell("Aspect of the Hawk") end;if UnitCanAttack("player","target") and not GotBuff("WhiteDireWolf") and not GotBuff("AspectOfTheMonkey") and not GotBuff("JungleTiger") then if not ActSpell("Aspect of the Wolf") then ActSpell("Aspect of the Monkey"); end; end;for C=1,96 do if IsAttackAction(C) and not IsCurrentAction(C) then CastSpellByName("Attack");C=96;end;end;ActSpell("Raptor Strike");ActSpell("Counterattack");ActSpell("Mongoose Bite");return;end if ranged() then if UnitCanAttack("player","target") and GotBuff("Ability_Mount_WhiteDireWolf") then ActSpell("Aspect of the Wolf")end;if not GotDebuff("Ability_Hunter_SniperShot") and (UnitHealth("target")/UnitHealthMax("target"))>0.50 then ActSpell("Hunter's Mark")end;if not inCombat() and ActSpell("Aimed Shot") then return;end;local _,_,link=string.find(GetInventoryItemLink("player", 18),"(item:%d+:%d+:%d+:%d+)")local _,_,_,_,_,itemtype,_,_,itemTexture=GetItemInfo(link);if itemtype == "Bows" or itemtype == "Guns" or itemtype == "Crossbows" then X=1;for C=1,96 do if itemTexture==GetActionTexture(C) then if IsAutoRepeatAction(C) then X=0;end;break;end;end; if X==1 then CastSpellByName("Auto Shot");return;end;if not GotDebuff("Quickshot") and not GotDebuff("CriticalShot") and not GotDebuff("AimedShot") and UnitCreatureType("target")~="Elemental" and UnitCreatureType("target")~="Mechanical" and UnitCreatureType("target")~="Uncategorized" then if ActSpell("Serpent Sting") then return;end;end;if ActSpell("Arcane Shot") then return;end;if UnitCanAttack("player","target") and not GotBuff("RavenForm") and not GotBuff("AspectOfTheMonkey") and not GotBuff("JungleTiger") then ActSpell("Aspect of the Hawk") end;if ActSpell("Trueshot") then return;end;end;if itemtype == "Thrown" then if ActSpell("Throw") then return;end;end;end;end;Attack_Actions()
It is desirable that Auto Attack and Auto Shot are on the panel
/script local function melee() if UnitExists("target") then return CheckInteractDistance("target",2);end;end;local function ranged() if UnitExists("target") then return not melee();end;end;local function inCombat() return UnitAffectingCombat("player");end;local function GotBuff(name,target) local tex,cnt,ix;for ix = 1,32 do tex,cnt = UnitBuff("player",ix);if not tex then return end;if strfind(tex,name) then return cnt end;end;end;local function GotDebuff(name,target) if not target then target = "target" end;local tex,cnt,ix;for ix = 1,32 do tex,cnt = UnitDebuff(target,ix);if not tex then return end;if strfind(tex,name) then return cnt end;end;end;local function ActSpell(spell,rank,sw) local ix,spellName,spellRank=192;while(ix>0) do if ix==0 then return nil;else spellName,spellRank=GetSpellName(ix,"spell");if spellName==spell and (spellRank==rank or rank==nil) then if sw==0 then return ix;end;if sw==1 then return GetSpellCooldown(ix,"spell");end;if sw==nil then if GetSpellCooldown(ix,"spell")==0 then CastSpell(ix,"spell");return ix;end;end;end;ix=ix-1;end;end;end;function Attack_Actions() local mana,X,C=UnitMana("player");if UnitCanAttack("player","target")==nil or UnitHealth("target")<=0 then TargetNearestEnemy();end;if melee() then if GotBuff("Spell_Nature_RavenForm") then ActSpell("Aspect of the Hawk") end;if UnitCanAttack("player","target") and not GotBuff("WhiteDireWolf") and not GotBuff("AspectOfTheMonkey") and not GotBuff("JungleTiger") then if not ActSpell("Aspect of the Wolf") then ActSpell("Aspect of the Monkey"); end; end;for C=1,96 do if IsAttackAction(C) and not IsCurrentAction(C) then CastSpellByName("Attack");C=96;end;end;ActSpell("Raptor Strike");ActSpell("Counterattack");ActSpell("Mongoose Bite");return;end if ranged() then if UnitCanAttack("player","target") and GotBuff("Ability_Mount_WhiteDireWolf") then ActSpell("Aspect of the Wolf")end;if not GotDebuff("Ability_Hunter_SniperShot") and (UnitHealth("target")/UnitHealthMax("target"))>0.50 then ActSpell("Hunter's Mark")end;if not inCombat() and ActSpell("Aimed Shot") then return;end;local _,_,link=string.find(GetInventoryItemLink("player", 18),"(item:%d+:%d+:%d+:%d+)")local _,_,_,_,_,itemtype,_,_,itemTexture=GetItemInfo(link);if itemtype == "Bows" or itemtype == "Guns" or itemtype == "Crossbows" then X=1;for C=1,96 do if itemTexture==GetActionTexture(C) then if IsAutoRepeatAction(C) then X=0;end;break;end;end; if X==1 then CastSpellByName("Auto Shot");return;end;if not GotDebuff("Quickshot") and not GotDebuff("CriticalShot") and not GotDebuff("AimedShot") and UnitCreatureType("target")~="Elemental" and UnitCreatureType("target")~="Mechanical" and UnitCreatureType("target")~="Uncategorized" then if ActSpell("Serpent Sting") then return;end;end;if ActSpell("Arcane Shot") then return;end;if UnitCanAttack("player","target") and not GotBuff("RavenForm") and not GotBuff("AspectOfTheMonkey") and not GotBuff("JungleTiger") then ActSpell("Aspect of the Hawk") end;if ActSpell("Trueshot") then return;end;end;if itemtype == "Thrown" then if ActSpell("Throw") then return;end;end;end;end;Attack_Actions()
Last edited by Ulukay on Fri May 24, 2024 6:21 am, edited 1 time in total.
Re: General Hunter Macros
I recently learned you can use chatgpt to write macros for super macro
start the prompt with "world of warcraft classic hunter macro (enter actions here) comptable with supermacro addon"
heres one i have that shoots concussive when ranged,then arcane then autoshot,and when in melee range casts wing clip.
i spam it in pvp and its pretty effective lmao
/script if CheckInteractDistance("target", 3) then CastSpellByName("Wing Clip"); else if not IsAutoRepeatAction(2) then CastSpellByName("Concussive Shot") end; CastSpellByName("Arcane Shot"); end;
start the prompt with "world of warcraft classic hunter macro (enter actions here) comptable with supermacro addon"
heres one i have that shoots concussive when ranged,then arcane then autoshot,and when in melee range casts wing clip.
i spam it in pvp and its pretty effective lmao
/script if CheckInteractDistance("target", 3) then CastSpellByName("Wing Clip"); else if not IsAutoRepeatAction(2) then CastSpellByName("Concussive Shot") end; CastSpellByName("Arcane Shot"); end;
Re: General Hunter Macros
I very much doubt that GPT can create a really good and working script. It just gives a splicing of previously created by someone, simple scripts, nothing more. Like all neural networks.Booglesz wrote: ↑Thu May 23, 2024 1:43 amI recently learned you can use chatgpt to write macros for super macro
start the prompt with "world of warcraft classic hunter macro (enter actions here) comptable with supermacro addon"
heres one i have that shoots concussive when ranged,then arcane then autoshot,and when in melee range casts wing clip.
i spam it in pvp and its pretty effective lmao
/script if CheckInteractDistance("target", 3) then CastSpellByName("Wing Clip"); else if not IsAutoRepeatAction(2) then CastSpellByName("Concussive Shot") end; CastSpellByName("Arcane Shot"); end;