[EPIC]Automate any Rotation 100% /w Lua. menu

User Tag List

Page 1 of 7 12345 ... LastLast
Results 1 to 15 of 102
  1. #1
    Elitetech's Avatar Contributor
    Reputation
    98
    Join Date
    Oct 2008
    Posts
    279
    Thanks G/R
    3/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [EPIC]Automate any Rotation 100% /w Lua.

    How to: Automate any rotation in the game

    [[[[If you've read this thread and still don't know how to make your macro, please ask me. If you've read all this but you can't really get the macro you really want, go to http://www.mmowned.com/forums/ui-mac...ollection.html and ask for help there, or simply read through the thread and use some of the more advanced functions.]]]]

    Hello. Here I will take on the challange of explaining you how to automate rotations in the game either 100% or 80% where 20% of the rotation is you clicking a single button. It'll be my goal that even a complete ****tard can understand this, which is why I'll add a picture to every single step, even if it is downloading a single program.

    Note that we will do all this with the help of MACROS. I'll explain how to create the macros and how to use the macros using basic templates and guides.


    Chapter 1: Getting the required tools

    Overview: For use this guide you will need a few tools and programs that'll allow you to automate certain lua functions.

    Step 1:
    Go to Cyphers thread and download LuaNinja(clicky)


    Step 2:
    Extract LuaNinja with WinRar/WinZip/Any other program. If you haven't gotten that program please head over to EXTRAS Step 1. (OH GOD IT DOESN'T EXIST)


    Step 3:
    Download SUPER DUPER Macro(clicky)


    Step 4:
    Extract SUPER DUPER Macro. If you haven't figured out how to do this yet head over to Step 2 and see if you can figure it out. If you're still unable to, please ask me..

    Step 5:
    Install SUPER DUPER Macro. After it is extracted open up your World of Warcraft folder. This can be done by right clicking your World of Warcraft folder and for vista, select open folder or something like that and for XP, select properties and press "Find placement". Now drag SUPER DUPER MACRO over to your Interface/Addons folder.


    Chapter 2: Setting them up and how to use them.

    Step 1:
    Start up World of Warcraft and use the "Window" function in his program. Open your newly extracted LuaNinja folder and look at this picture for guidelines! (Thanks to Cypher for the nice picture explaining how to use his program)


    Step 2:
    Making sure SUPER DUPER Macro is activated. For this you'll want to load OUT OF DATE addons.


    Step 3:
    Making sure LuaNinja & SUPER DUPER Macro is working. Start up World Of Warcraft, Inject, Do Step 2, log in your character and follow these substeps.
    say "/script MoveForwardStart();" in the chat. To quote Cypher himself
    If your character walks forward then it is working, if nothing happens or you get an error message, something may be wrong.
    Now that we know LuaNinja works we'll be opening Super Duper macro.
    Say /macro in the chat and this window will pop up. Click Super Duper macro.



    Chapter 3: Creating your macro & using it.

    Overview: Lua is a easy language in itself, but what we'll do is even easier. It doesn't require any coding sense at all or even a brain. Everyone can do it, and I'll teach you how.

    The most basic we'll use in our macros are "and, if, if not, else, then, end"


    ------------------------------------
    Template START

    Code:
    /run CastSpellByName("Ice Lance")
    CastSpellByName("Spellname")
    Basically just casts a spell by it's name
    Code:
    /run if UnitDebuff("target", "Frostbite") then CastSpellByName("Ice Lance") end
    UnitDebuff("Unit", "Debuff")
    This checks if the Debuff "Frostbite" is on your target. If it is, then it'll cast Ice Lance. Note that target can be replaced with Focus or Player.
    You can also add a NOT after if. So it becomes /run if not unitblabla. This way it'll check if your target haven't got the debuff. Really useful for warlocks to check if their dots are on the target.
    Code:
    /run if UnitBuff("player", "Art of War") then CastSpellByName("Exorcism")
    UnitBuff("Unit", "Buff")
    Same as above, instead of this time it checks for Buffs not Debuffs. A classic example of a great use for this is the retripaladins Art of War.
    Code:
    /run RunMacro("Frost2")
    RunMacro("macroname")
    This Runs a specific macro. Useful if your macro is HUUUUGE and too much to handle for Super Duper macro. Then you can split it up adding this to the buttom of your macro and create a new one named Frost2.
    Code:
    /run if UnitDebuff("target", "Curse of Agony") then RunMacroText("/rofl") end
    RunMacroText("Whatever you want it to run")
    This is one of the best tools. It allows you to run anything based on actions. You could use it like this with the checks above. This example will simply /rofl if Curse of Agony is on your target.
    Code:
    /run if UnitDebuff("target", "Frostbite") and (GetSpellCooldown("Deep Freeze") == 0) then CastSpellByName("Deep Freeze") end
    GetSpellCooldown("Spellname") == 0)
    This will check if the UnitDebuff "Frostbite" is on our target. Then it'll check if "Deep Freeze"'s cooldown is 0 and if it is, then it'll cast Deep Freeze.
    What we've added here is to check if Deep Freeze's cooldown is 0 using (GetSpellCooldown("Deep Freeze") == 0). That way, you won't be stuck in the beginning of a macro simply because the ability is on cooldown. Really really useful command.
    Code:
    /run if UnitPower("Player") < 3000 then CastSpellByName("Life Tap") end 
    UnitPower("Unit") < Count
    What this does, is that it checks our UnitPower(Mana, Rage, Runic Power, Energy) and if it is below 3000. Then casts Life Tap. Really useful for the warlocks Life Tap or Warriors rage dump or Death Knights runic power dump. Could be used with death coil like this
    /run if UnitPower("Player") > 80 then CastSpellByName("Death Coil") end
    Code:
    /run if (UnitHealth("target")/UnitHealthMax("target")<0.25) then CastSpellByName("Drain Soul") else CastSpellByName("Shadow Bolt") end
    This checks if the current health of your target is less than 25%. If it is, it'll cast Drain Soul OTHERWISE it'll cast Shadow Bolt (Starting to get the system aye?)
    Code:
    /run if UnitCastingInfo("target") then CastSpellByName("Counterspell") end
    This simply checks if your target is casting a spell and if it is. Casts Counterspell.

    Template END
    ------------------------------------


    Step 1:
    Open your basic text-editor. I recommend Notepad++, but Notepad works just fine, so that's what I'll be using here.

    Step 2:
    Every macro here starts with a "/run" and ends on a "end" simple enough.
    Putting your macro together using the template posted above. Okay nothing explains better than examples. I am a Death knight and I want to add diseases to my target. Diseases are a debuff and are added with a spell, which is great! So I'll be looking at UnitDebuff and CastSpellByName
    So far I have
    Code:
    /run end
    So adding the debuff check for my disease I'll get
    Code:
    /run if UnitDebuff("target", "Blood Plague") end
    Oh wait, I want it to check if the disease is NOT on the target so I'll add a not right after IF. Well, then I want it to cast Plague Strike to add Blood Plague to the target, so I'll have
    Code:
    /run if not UnitDebuff("target", "Blood Plague") then CastSpellByName("Plague Strike") end
    Holy shit did we just finish a macro? Hell yeah we did, but it's not as cool as we would have hoped. So let's add multiple conditions.
    Well Death Knights have 2 diseases, right so let's add the other one with a simple Copy-Paste job.
    Code:
    /run if not UnitDebuff("target", "Blood Plague") then CastSpellByName("Plague Strike") end
    /run if not UnitDebuff("target", "Frost Fever") then CastSpellByName("Icy Touch") end
    Still not pimp enough. Let's have that Death Coil in
    Code:
    /run if not UnitDebuff("target", "Blood Plague") then CastSpellByName("Plague Strike") end
    /run if not UnitDebuff("target", "Frost Fever") then CastSpellByName("Icy Touch") end
    /run if UnitPower("Player") > 80 then CastSpellByName("Death Coil") end
    Oh Oh OH!!! What about interrupting? That's cool
    Code:
    /run if not UnitDebuff("target", "Blood Plague") then CastSpellByName("Plague Strike") end
    /run if not UnitDebuff("target", "Frost Fever") then CastSpellByName("Icy Touch") end
    /run if UnitPower("Player") > 80 then CastSpellByName("Death Coil") end
    /run if UnitCastingInfo("target") then CastSpellByName("Mind Freeze") end

    Step 3:
    Automate your macro. So now we've created the macro to add diseases to your target but we don't wanna press that button ourselves. Let's say our macro is called DEATHKNIGHT. We'll add to the end of the macro
    /run if UnitAffectingCombat("player") then RunMacroText("/in 0.1 /run RunMacro(\"DEATHKNIGHT\")") end
    and poof. It'll run your macro every tenth of a second. You couldn't have spammed it harder yourself
    **Thanks to Viral Fly-By for that line**

    Now if you do this enough, your macro might eventually be like this
    Code:
    #showtooltip Frostbolt
    /run local _,a,_ = GetPetActionCooldown("5") if (a == 0) then CastPetAction("5") SpellTargetUnit("target") end
    /run local _,a,_ = GetSpellCooldown("Deep Freeze") if (a == 0) and UnitBuff("player", "Fingers of Frost") then CastSpellByName("Deep Freeze") end
    /run local _,a,_ = GetSpellCooldown("Deep Freeze") if (a == 0) and UnitDebuff("target", "Frostbite") then CastSpellByName("Deep Freeze") end
    /run local _,a,_ = GetSpellCooldown("Deep Freeze") if (a == 0) and UnitDebuff("target", "Frost Nova") then CastSpellByName("Deep Freeze") end
    /run local _,a,_ = GetSpellCooldown("Deep Freeze") if (a == 0) and UnitDebuff("target", "Freeze") then CastSpellByName("Deep Freeze") else RunMacro("Frost2") end
    
    Frost2
    /run if UnitDebuff("target", "Deep Freeze") then CastSpellByName("Ice Lance") end
    /run if UnitBuff("player", "Fingers of Frost") then CastSpellByName("Ice Lance") end
    /run if UnitDebuff("target", "Frostbite") then CastSpellByName("Ice Lance") end
    /run if UnitDebuff("target", "Frost Nova") then CastSpellByName("Ice Lance") end
    /run if UnitDebuff("target", "Freeze") then CastSpellByName("Ice Lance") else RunMacro("Frost3") end
    
    Frost3
    /run if UnitBuff("player", "Fireball!") then CastSpellByName("Fireball") end
    /run local _,d,_ = GetSpellCooldown("Summon Water Elemental") if (d == 0) then CastSpellByName("Summon Water Elemental") end
    /run local _,d,_ = GetSpellCooldown("Ice Barrier") if not UnitBuff("player", "Ice Barrier") and (d == 0) then CastSpellByName("Ice Barrier") end
    /run local _,d,_ = GetSpellCooldown("Icy Veins") if (d == 0) then CastSpellByName("Icy Veins") end
    /run CastSpellByName("Frostbolt")
    which is a FULL frost mage rotation split up into 3 macros that'll run by mashing the first..

    Remember that Copy-Paste goes a long way in the macro-industry.

    Edit1:

    If you want to check wether a debuff is cast by you then add ,unitCaster~="player" to the end of your UnitDebuff macro. Example=
    Code:
    /run if UnitDebuff("target", "Frostbite",unitCaster~="player") then
    Simple as that.

    Also if you're planning on using this in raids and want it to check debuffs really really good(?) just.. copy-paste this and edit out the conditions and spell lines, as it's too hard to explain
    Code:
    /run i=1 while(i<=40) do a={UnitDebuff("target",i)} if a[1]=="Frost Fever" and a[8]=="player" then break else i=i+1 end end if i>40 then CastSpellByName("Icy Touch") end


    -Elitetech signing out.
    Last edited by Elitetech; 12-21-2009 at 05:06 PM.
    Knowledge is often mistaken for intelligence. This is like mistaking a cup of milk for a cow.

    [EPIC]Automate any Rotation 100% /w Lua.
  2. Thanks mashreza (1 members gave Thanks to Elitetech for this useful post)
  3. #2
    Found's Avatar Banned
    Reputation
    239
    Join Date
    Mar 2009
    Posts
    642
    Thanks G/R
    1/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Edit: FIRST!

    I like it I really do, I hope people are helped by this as I was. Great guide and I think you should keep making them.

    Remember that Copy-Paste goes a long way in the macro-industry.
    Extremely true..

    +Rep
    Last edited by Found; 12-27-2009 at 09:53 PM.

  4. #3
    realityercik's Avatar Private
    Reputation
    1
    Join Date
    Dec 2009
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I made an amazing PVP macro with these tools, it's too good... I'm afraid of getting used to playing with that macro because if blizzard ever find a way to stop/detect this I'll have a hard time adjusting back to old methods.

  5. #4
    EcHoEs's Avatar lol why u mad
    Reputation
    374
    Join Date
    Sep 2006
    Posts
    1,647
    Thanks G/R
    3/1
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Is it bannable? just wondering..


  6. #5
    Beepzz's Avatar Sergeant
    Reputation
    7
    Join Date
    Dec 2009
    Posts
    66
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Awesome guide right there. Will try this out! And as EcHoEs said, is that bannable in any way? +rep by the way

  7. #6
    Crid's Avatar Member
    Reputation
    14
    Join Date
    Oct 2009
    Posts
    20
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    /in 0.1 /run RunMacro("DEATHKNIGHT")
    I want to automate a hunter macro, however how do i make it stop spamming it automatically when not in combat

  8. #7
    milctoast's Avatar Member
    Reputation
    1
    Join Date
    Sep 2007
    Posts
    6
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Silly question I know :P but if I run the macro like this /in 0.1 /run RunMacro("DEATHKNIGHT")
    and I move my character or click another ability will the macro stop running?


  9. #8
    x Royal x's Avatar Contributor
    Reputation
    100
    Join Date
    Jun 2008
    Posts
    304
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wow, this is very well compiled. Good job bud + rep
    ]

  10. #9
    Crid's Avatar Member
    Reputation
    14
    Join Date
    Oct 2009
    Posts
    20
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by milctoast View Post
    Silly question I know :P but if I run the macro like this /in 0.1 /run RunMacro("DEATHKNIGHT")
    and I move my character or click another ability will the macro stop running?

    No thats Why I asked that question as well

  11. #10
    laecki's Avatar Member
    Reputation
    5
    Join Date
    Sep 2009
    Posts
    75
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by EcHoEs View Post
    Is it bannable? just wondering..
    i think its just the same as with these logitech macro keys - they are a reason for a ban but blizz cant find out, so noone cares.

    to op: very nice guide, think i wont make this myself because it looks like hard work but very helpful, so +Rep

  12. #11
    Bugger00's Avatar Member
    Reputation
    27
    Join Date
    Jan 2009
    Posts
    98
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Great guide, +rep.

  13. #12
    SoulShattered's Avatar Member
    Reputation
    34
    Join Date
    Jan 2009
    Posts
    67
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Great guide +rape
    ~If your colorblind reading 'RED' can be hard.~

  14. #13
    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 Elitetech View Post
    Code:
    /run if not UnitDebuff("target", "Blood Plague") then CastSpellByName("Plague Strike") end
    /run if not UnitDebuff("target", "Frost Fever") then CastSpellByName("Icy Touch") end
    BLAH BLAH BLAH BLAH...just like in the macro collection thread...this is a fine example of what NOT to do....this will fail miserably if there is another DK. Because it will detect the other DK's diseases and not apply yours. I commend your efforts in putting together the guide and efforts in both threads...but misinformation is still misinformation.

    The correct way to do this is to go through all their debuffs looking for yours:
    Code:
    /run i=1 while(i<=40) do a={UnitDebuff("target",i)} if a[1]=="Blood Plague" and a[8]=="player" then break else i=i+1 end end if i>40 then CastSpellByName("Plague Strike") end
    /run i=1 while(i<=40) do a={UnitDebuff("target",i)} if a[1]=="Frost Fever" and a[8]=="player" then break else i=i+1 end end if i>40 then CastSpellByName("Icy Touch") end
    If you don't do it this way...you run the risk of either not putting up your diseases...or constant reapplying because it doesn't think they're up.


    Originally Posted by Elitetech View Post
    Note that target can be replaced with Focus or Player.
    This doesn't work if you just use CastSpellByName like you do in the examples. You either have to first target your focus with TargetUnit("focus")...or you need to use RunMacroText.

    Example for Target:
    Code:
    /run i=1 while(i<=40) do a={UnitDebuff("target",i)} if a[1]=="Frost Fever" and a[8]=="player" then break else i=i+1 end end if i>40 then CastSpellByName("Icy Touch") end
    Example for Focus:
    Code:
    /run i=1 while(i<=40) do a={UnitDebuff("focus",i)} if a[1]=="Frost Fever" and a[8]=="player" then break else i=i+1 end end if i>40 then RunMacroText("/cast [@focus] Icy Touch") end

  15. #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 Crid View Post
    I want to automate a hunter macro, however how do i make it stop spamming it automatically when not in combat
    Instead of that line...
    Code:
    /run if UnitAffectingCombat("player") then RunMacroText("/in 0.1 /run RunMacro(\"myMacro\")") end
    Once you're out of combat, it will stop spamming the macro.

  16. #15
    evita's Avatar Member
    Reputation
    1
    Join Date
    Aug 2007
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Any one wanna do me a fury warrior rotation for a single target and multi target?

Page 1 of 7 12345 ... LastLast

Similar Threads

  1. Top 100 rankings achievable with any rotations?
    By dotonthewall in forum WoW Bots Questions & Requests
    Replies: 10
    Last Post: 02-08-2015, 12:15 PM
  2. [Hunter] Automated Shot Rotation
    By CrazyCactuaR in forum WoW UI, Macros and Talent Specs
    Replies: 3
    Last Post: 12-11-2008, 02:27 PM
  3. [Epic Release] Rick Astley - Rickroll Boss [LUA]
    By Creepfold in forum WoW EMU General Releases
    Replies: 13
    Last Post: 10-04-2008, 10:01 PM
All times are GMT -5. The time now is 09:12 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search