kolton / d2bot-with-kolbot

d2bot game manager by D3STROY3R with kolbot libs by kolton for d2bs
346 stars 334 forks source link

WaitInLine issue... even with waiting time 3K+ seconds!! #2834

Open BurgerNfries opened 3 years ago

BurgerNfries commented 3 years ago

Hi fellas,

Title says it all... I've put the wait in line timer up to 3K+ seconds, and for this very cryptic reason the bot still gets 'Failed to create game' issue. Like I'm in position 4K+ then I have to wait (which is roughly like 35-40 mins to create one single game which is outrageous...) and when the bot is semi-close about getting there it'll just randomly cancel the creation like 1 times out of two and then try again.... with ofcourse then a longer waiting time ?! I haven't got the chance to exactly catch and see what is actually happening, but I feel like it's just as it was pressing 'cancel' on it's own... Also I won't put the waiting time to like 9999999 seconds, since sometimes the damned timer while you are waiting in line FREEZES until the bots presses Cancel (does that happen to you at all?!) I've even contacted D2 support they told me nothing was wrong with my account, address etc and that I wasn't experiencing any kind of temp ban... wtf I also get these weird errors like 'control not found 6 433 433 location 1 (or 2).... what's this all about? any link with that?

At this point the game is pretty much unplayable... This is infernal... Any help would be greatly appreciated. Thanks to all

PS: is there a way to actually simply JOIN games instead of creating it's own? I know half of them tend to be already empty... but yeah still better than nothing at this point

D2BotLead.txt

gtoilet commented 3 years ago

this was put in the discord about this issue also

case 2: // Waiting In Line
    D2Bot.updateStatus("In line...");

    if (StarterConfig.waitInLineStuckingTimeout) {
        var timeout = StarterConfig.waitInLineStuckingTimeout;
        var currentPosition, prevPosition;
        do {
            // initially @var string is null (see locateAction function)
            string = "";
            text = ControlAction.getText(4, 427, 234, 300, 100);
            if (text) string = text.join(" ");
            if (string.indexOf(getLocaleString(11026) > -1)) { // Your position in line is:
                prevPosition = currentPosition;
                currentPosition = parseInt(string.replace(/[^0-9]/g, ""));
                // update manager
                D2Bot.updateStatus("In line: " + currentPosition + "/" + timeout);
                // check if position in queue is not changed
                if (prevPosition == currentPosition) {
                    timeout -= 1;
                } else {
                    // reset 
                    timeout = StarterConfig.waitInLineStuckingTimeout;
                }
                delay(1000);
            } else {
                // screen changed, break the loop
                delay(1000);
                break;
            }
        }
        while (getLocation() == location && timeout > 0);
        // cancel the game
        delay(500);
        ControlAction.click(6, 433, 433, 96, 32);
    } else {
        locationTimeout(StarterConfig.WaitInLineTimeout * 1e3, location);
        ControlAction.click(6, 433, 433, 96, 32);
    }

    break;
BurgerNfries commented 3 years ago

Thanks for the help here.

this was put in the discord about this issue also

case 2: // Waiting In Line
    D2Bot.updateStatus("In line...");

    if (StarterConfig.waitInLineStuckingTimeout) {
        var timeout = StarterConfig.waitInLineStuckingTimeout;
        var currentPosition, prevPosition;
        do {
            // initially @var string is null (see locateAction function)
            string = "";
            text = ControlAction.getText(4, 427, 234, 300, 100);
            if (text) string = text.join(" ");
            if (string.indexOf(getLocaleString(11026) > -1)) { // Your position in line is:
                prevPosition = currentPosition;
                currentPosition = parseInt(string.replace(/[^0-9]/g, ""));
                // update manager
                D2Bot.updateStatus("In line: " + currentPosition + "/" + timeout);
                // check if position in queue is not changed
                if (prevPosition == currentPosition) {
                    timeout -= 1;
                } else {
                    // reset 
                    timeout = StarterConfig.waitInLineStuckingTimeout;
                }
                delay(1000);
            } else {
                // screen changed, break the loop
                delay(1000);
                break;
            }
        }
        while (getLocation() == location && timeout > 0);
        // cancel the game
        delay(500);
        ControlAction.click(6, 433, 433, 96, 32);
    } else {
        locationTimeout(StarterConfig.WaitInLineTimeout * 1e3, location);
        ControlAction.click(6, 433, 433, 96, 32);
    }

    break;

Thanks for the help here. Can't seem to find the exact discord about this, if you happen to have a link that'd be great.

By the way I tried putting in these modifs, now the bots clicks 'create game' and simply clicks Cancel then over and over again...

Sirk74 commented 3 years ago

I have the same situation going, as have all players that I know of. As far as I have understood, it's a problem on Blizzard side.

gtoilet commented 3 years ago

Thanks for the help here. Can't seem to find the exact discord about this, if you happen to have a link that'd be great.

blizzhackers is the server

BurgerNfries commented 3 years ago

Thanks for the help here. Can't seem to find the exact discord about this, if you happen to have a link that'd be great.

blizzhackers is the server

Thanks, I actually got it to work.

One last question, do you know which one is the time in secs that the bot will wait when the counter freezes? Because I feel like it's waiting too long at this point before canceling a game.

} delay(1000); } else { // screen changed, break the loop delay(1000); break; } } while (getLocation() == location && timeout > 0); // cancel the game delay(500);

Like which one is which? Not sure I get what each does

AbbyRoad commented 3 years ago

See Query #2819

Link to code is in qnts's comments. Works reasonable well.