I've become quite a botter the last few days lol, testing out different locations and waypoints to maximise the efficiency of the bot.
So far custom built macros look to do a better job than the bot does as a rogue. My jump macro works nicely on non-aggro mobs however on aggro mobs it only gets around 3 in 5 on the first try and has to wait until the bot casts the macro again until the blind spot works.
Also the jumping around seems to upset the bot sometimes; a special case occurs when the character constantly runs around the mob it just killed in a circle trying to loot it but can't because it's always out of range. I'm currently trying to make a blind spot macro that works w/o a jump, it is possible to get it to work however the fighting range sometimes changes when fighting so it won't get every blind spot.
This code seems to work fairly well for blind spot without having a jump command. Make sure you get up to the mob by using auto attack and this is the first skill you use, then use it twice with a small gap and it should come off. Will report back if it doesn't fix the loot problem and if it makes pathing better.
Code: Select all
/script ToggleAutoRun();
/wait 0.5
/script ToggleAutoRun();
/wait 0.1
/cast Blind Spot
/wait 0.1
/script UseAction(10);
/script UseAction(10);
I've found a useful way to swap weapons so that you effectively have more durability while botting. This code is used to switch weapons:
Code: Select all
/script PickupBagItem(71); PickupEquipmentItem(16); PickupBagItem(71); PickupBagItem(70); PickupEquipmentItem(15); PickupBagItem(70);
That will pick up the item in slot 71 and put it in your offhand and put the item in slot 70 in your main hand.
The slots aren't hard to find, just run the macro with an empty bag and weapons in both hands and the slot the weapon goes into is the one you want. (It's different for different players depending on usage of the auto-arrange bag button apparently).
So general gist of my macro atm is to have a macro that casts the main skill combo then spam a skill until mob dies. The cooldown in the skills database is such that it will get recast during battle sometimes but that's a good thing since it normally only happens when the original combo didn't go as planned (blind spot missed hence doing way less damage).
During this combo there's the "spam a skill until dead" part. In this macro I've included the code:
Code: Select all
/script if ( UnitHealth("player") / UnitMaxHealth("player") < 0.55 ) then UseAction(41); UseAction(42); elseif ( UnitHealth("player") / UnitMaxHealth("player") < 0.175 ) then UseAction(32); end;
and in slot 41 and 42 are two swapping macros that alternate between 4 weapons I have in storage and the 2 I am currently using. So getting below 55% hp
after I've completed the main combo part of the macro makes me swap my weapons around. You lose all your energy but it's worth it for the dura. Fighting mobs that are too easy means this event will only trigger when you run out of potions and therefore is not useful (set the health %age higher or use worse potions).
(My initial thought was that you die when your weapons run out of dura. When this happens you don't do enough damage to kill the mob before it kills you so the macro will realise this and switch weapons. Of course it has inherent problems like it will keep switching until the mob is dead.)
While writing this guide I have just realised an easy way to do this that will ensure you distribute the durability loss efficiently and doesn't rely on any stupid health checks!
We have the check to see if mob is dead which loops us back to a spam skill if it isn't and does something else if it is:
Code: Select all
/script if (UnitHealth("target")>0) then UseAction(25); else UseAction(21); end;
Currently the skill in the 21st hotbar is Premeditate (next back attack you do is a critical and does 40% more damage). If we add the two swapping macros in as well, we will swap our weapons
after each fight making sure we use them evenly. If you want to use 6 weapons instead of just 4 we can create 2 macros, one that swaps 70/71 with 15/16 respectively and the next 72/73 with 15/16 respectively. Using both of these every time ensures the weapons rotate around the bag slots evenly so we just change the code to:
Code: Select all
/script if (UnitHealth("target")>0) then UseAction(25); else UseAction(21); UseAction(#); UseAction(#+1); end;
Where # and #+1 are the slot numbers or the two swap weapon commands.
This is better for us while fighting since we won't randomly change weapons midfight and only hinges us slightly when we're fighting multiple mobs since the regen on energy is very fast.
On a side note I'm trying to make a "get out clause" as it were for my rogue. Since we have vanish we should be able to vanish at any point where our HP becomes too low and then simply hearth to safety so we don't have to deal with any Exp debt. Ultimately I would like it to check to see if potions = 0 then use vanish and hearth, however I've currently made one that does it on HP < 15%.
Problem is the bot doesn't know that it has to wait and so immediately after vanishing attacks the mob again starting combat in the exact state it left it. Therefore I'd have to code this idea into the bot itself to get it to work, just like the whole "take a hp pot %" but more complicated since it isn't instant (hearthing) and would have to stop the bot after this happened.
(I'll post again if I can get anything like this to work).
Kizami