kolton / d2bot-with-kolbot

d2bot game manager by D3STROY3R with kolbot libs by kolton for d2bs
345 stars 332 forks source link

Walking Chaos Hamm #1627

Open donmaccarone opened 5 years ago

donmaccarone commented 5 years ago

Hello,

I wanted to run hammer without eni to start ladder - i tried to do walking chaos, but unfortunately 90% errors are appearing during way from waypoint to CS - my char does not attack mobs which are blocking his way.

Is there any option to change this? Or only eni will help me?

DarkHorseDre commented 5 years ago

Tell pather.js to clear path as it walks/teles (Travels)

https://pastebin.com/w5fbmdLN - this section:

//dhd added to clear unique/champs whilst pathing  - clear: function (range, spectype, bossId, sortfunc, pickit)
        if (Config.ClearPathingUniques) { //
                              Attack.clear(30); //clear all mobs in 30 yards, no spectype - either this line OR the one above
        }

I added a config param called ClearPathingUniques (call it what you like) to toggle on/off but you could add it for all by removing the if statement and just adding the attack.clear line - the importance is where in pather.js this is placed, as per my post (below the countess kill ghosts block (which is there to do similar thing but only kill ghosts in those 5 levels of tower))

donmaccarone commented 5 years ago

hello,

Thank you very much for your support.

To toggle it only for one character i should add line (in char config)

"Config.ClearPathingUnique = true"?

DarkHorseDre commented 5 years ago

yes but you have to create it in config.js first, here's mine, showing where in config.js i placed the line:

// Assassin specific
    UseTraps: false,
    Traps: [],
    BossTraps: [],
    UseFade: false,
    UseBoS: false,
    UseVenom: false,
    UseCloakofShadows: false,
    AggressiveCloak: false,
    SummonShadow: false,

    ClearPathingUniques: false, //dhd

    // Script specific
    MFLeader: false,
    DHDQuestCheck: false, //dhd
    MFHelperLeecher: false, //dhd
    MFLeaderWalkClear: false, //dhd
    Mausoleum: {
        KillBloodRaven: false,
        ClearCrypt: false
    },

then you can place the line in char config to enable (once you've added the line in pather.js as my previous post)

BigStupidNoob commented 5 years ago

@DarkHorseDre

I followed your instructions for where to add the lines in the scripts. However, the last part remains unclear. I have added the lines in Pather.js (https://pastebin.com/Q5LGrm6S) and Config.js (https://pastebin.com/4PDtuaHk) . Do I also have to go to the characters' configuration files (e.g. Amazon.BoobSlapper.js) and create add "Config.ClearPathingUniques = true"?

For example:

    Scripts.ClearAnyArea = false; // Clear any area. Uses Config.ClearType to determine which type of monsters to kill.
        Config.ClearAnyArea.AreaList = []; // List of area ids to clear. See sdk/areas.txt
    Config.ClearPathingUniques = true, //dhd`

After doing this I received an error for line 202 (referring to the Act 4 Chestmanid) saying that it was undefined. I slashed out the line (https://pastebin.com/PWtd4GRL) and no longer get the error but I thought it was strange.

Additionally, another error that I get now is that my Barbarian that gives battle-orders will now prematurely cast BO before everyone goes to the set waypoint zone. For instance, 3 characters will reach the Catacombs 2 just as he casts his warcries and then he will wait for everyone to join (according to the "Config.BattleOrders.Getters = [...]" entry. Of course, the 3 characters that received the buffs will run off and start their runs resulting in the rest of the characters waiting at Catacombs 2 which leads to a BO Timeout Fail.

Furthermore, I also get the following error which posts in the bot control panel:

Error in BattleOrders (default.dbj #64) too much recursion (Area: 1, Ping:125, Game: BoobSlapper226)

This results in one of the bots not even receiving the warcry buffs and bypassing the need. Instead, they will run off without buffs and try their runs (extremely dangerous - and costly for hardcore players). However, after allowing the BO Timeout to occur, the next run ran smoothly.

5noop commented 5 years ago

Why not use Config.ClearPath ?

texxxmex commented 5 years ago

For the first error, I think your comma should be a semicolon.

DarkHorseDre commented 5 years ago

@5noop clearPath as an argument to moveto or? hmm...

DarkHorseDre commented 5 years ago

shoot just noticed my responses were to another topic lolz

@BigStupidNoob @donmaccarone 5noop is right - theres an easier way

@5noop - is it just setting cleartype = true; in diablo.js? will it being used by moveto (diablo doesnt use movetounit to get from wp to cs)

5noop commented 5 years ago

It's used in NodeAction just below your Config.ClearPathingUniques actually. Which means instead of that you could simply use Config.ClearPath = 0 in your char config. Note that it's also possible to pass an object like Config.ClearPath = { Areas: [107,108], Range: 20, Spectype: 0} for example.

It's a pretty useful feature, not sure why it's not included in the default config file. Maybe because people would set it to true and wonder why it doesn't work ^^

BBDobe86 commented 3 years ago

Hello @DarkHorseDre, I've just recently started using this and I have a similar issue though the answer isn't too clear for a novice programmer.

I've followed what is written so far but when @5noop said there was an easier way, the definitive answer (for me) got lost. This is my script:

    if (Config.Countess.KillGhosts && [21, 22, 23, 24, 25].indexOf(me.area) > -1) {
        monList = Attack.getMob(38, 0, 30);

        if (monList) {
            Attack.clearList(monList);
        }
    }

    //dhd added to clear unique/champs whilst pathing  - clear: function (range, spectype, bossId, sortfunc, pickit)
    if (Config.ClearPathingUniques) { //
                          Attack.clear(30); //clear all mobs in 30 yards, no spectype - either this line OR the one above
    }

    if ((typeof Config.ClearPath === "number" || typeof Config.ClearPath === "object") && arg.clearPath === false) {
        switch (typeof Config.ClearPath) {
        case "number":
            Attack.clear(30, Config.ClearPath);

and then the character config:

Scripts.ClearAnyArea = false; // Clear any area. Uses Config.ClearType to determine which type of monsters to kill.
    Config.ClearAnyArea.AreaList = []; // List of area ids to clear. See sdk/areas.txt
    Config.ClearPathingUniques = true

is what @5noop saying something to do with that last line in the first block of code? If so, what would it look like?

Thanks for any help.

DarkHorseDre commented 3 years ago

@BBDobe86 no 5noop wrote that the easier way is to add the 'config.clearpath = 0' feature in your char config.

it is not included in the config of the stable release here, but the Blizzhackers version includes it by default: https://github.com/blizzhackers/kolbot/blob/master/d2bs/kolbot/libs/config/Sorceress.js

just add it. read 5noops post again - enable clearpath as we've indicated and specify the area id for river of flame.

another way is to change change clearpath within the diablo script itself, but if you dont know how to do that then stick to changing it for river of flame.