Handy function for faster grinding - MMOCrawlerbots | WoW Bot Forum
Important: Please register to use the 20 minutes trial version or buy the bot!
Bot ready for World of Warcraft 5.4 Build 17538

UpdateLauncher DOWNLOAD

Wow Bot: CrawlerBot Last version: click here State: EU: working US: working

Author Topic: Handy function for faster grinding  (Read 244 times)

May 16, 2013, 02:18:04 AM

bobd Offline

  • *
  • Posts: 12
  • Reputation: 12
  • Boo
    • View Profile
I made a very simple function to slightly speed up grinding, gives me about 5% extra of whatever I'm grinding. (Usage below).
Has spell ids for faster movement speed for rogue, pally, dk and druid. That's all the classes I have so don't know about others.

Code: [Select]
function RunIfPoss()
if IsSpellKnown(85499) and IsSpellReady(85499) then
DoLogMessage("Faster Than Light", LogDebugLevels.VERBOSEINFO);
CastSpellByID(85499, 0, false);
end
if IsSpellKnown(1850) and IsSpellReady(1850) then
DoLogMessage("Dash", LogDebugLevels.VERBOSEINFO);
CastSpellByID(1850, 0, false);
end
if IsSpellKnown(2379) and IsSpellReady(2379) then
DoLogMessage("Speed", LogDebugLevels.VERBOSEINFO);
CastSpellByID(2379, 0, false);
end
if IsSpellKnown(77761) and IsSpellReady(77761) then
DoLogMessage("Stampeding Roar", LogDebugLevels.VERBOSEINFO);
CastSpellByID(77761, 0, false);
end
if IsSpellKnown(2983) and IsSpellReady(2983) then
DoLogMessage("Sprint", LogDebugLevels.VERBOSEINFO);
CastSpellByID(2983, 0, false);
end
if IsSpellKnown(96268) and IsSpellReady(96268) then
DoLogMessage("Deaths Advance", LogDebugLevels.VERBOSEINFO);
CastSpellByID(96268, 0, false);
end
end

It's not in my custom classes because I can't find a place to put 'afterLooting' or 'afterFight' code, though I added it to my Regenerate.lua and call it as per:

Code: [Select]
    if not Regeneration.IsRegenerationNeeded() then
        DoLogMessage("No regeneration needed.", LogDebugLevels.INFO);
        DoLogMessage("Regen finished after: ".blahblahblah...);
RunIfPoss();
MountIfPoss();
        return;
    end
    DoLogMessage(blahblahblah...);
    while not InFight() do
        if Regeneration.IsRegenerationFinished() then
            DoLogMessage("Regeneration finished.", LogDebugLevels.INFO);
RunIfPoss();
MountIfPoss();
            break;
        end

My MountIfPoss function is similar, but it's a bit awkward since it mounts before looting you need to disable looting. Find it very handy for the larger grinding zones when levelling (like Tanaris) where the loot is rubbish and the mobs are far spaced.

Code: [Select]
function MountIfPoss()
if Regeneration.Ini2.UseMount then
DoLogMessage("Attempt Mount", LogDebugLevels.VERBOSEINFO);
--CastSpellByID(23214, 0, true); -- tundra mammoth
CastSpellByID(61447, 0, true); -- water strider
end
end

Again just add in your Regenerate.lua, though you may need to write some code in ReadIni2, I used this and just update my ini for each toon.

Code: [Select]
if IniRead("Reg.ini","Settings","UseMount","0") == "1" then
        r.UseMount = true;
        DoLogMessage("Using mount: YES", LogDebugLevels.VERBOSEINFO);
    else
        r.UseMount = false;
        DoLogMessage("Using mount: NO", LogDebugLevels.VERBOSEINFO);
    end

There's probably a better way to do this than bodging inside Regenerate.lua, but it's the only place I can find where I can call something after a fight has ended (Tried a simple plugin but none of them seem to be working in my current version of the bot).
My first post on here so not sure if this is the best section for this post, seemed about right but please move it if not.

May 30, 2013, 13:23:55 PM
Reply #1

telcy Offline

  • *
  • *
  • Posts: 1697
  • Reputation: 182
    • View Profile
good suggestions! I will implent the speed spells for one of our next releases. ;)

 

* Recent Topics

* Useful Stuff