kolton / d2bot-with-kolbot

d2bot game manager by D3STROY3R with kolbot libs by kolton for d2bs
344 stars 333 forks source link

Helper/Leecher does act 5 solo script before joining leader in act 4. How to change that #2197

Open loldermond opened 4 years ago

loldermond commented 4 years ago

My leading paladin does act 4, mfhelp sorc goes from act 3 to act 5 instead of teaming diablo. How can i teach her some coherence, act 4 comes before act 5?

Here are my Sorc scripts , first solo, then helper :

// act 4 Scripts.OuterSteppes = false; Scripts.Izual = false; Scripts.Hephasto = false; Scripts.Vizier = false; // Intended for classic sorc, kills Vizier only. Scripts.FastDiablo = false; Scripts.Diablo = false; Config.Diablo.WalkClear = false; // Disable teleport while clearing to protect leechers Config.Diablo.Entrance = true; // Start from entrance Config.Diablo.SealWarning = "A storm of headnuts shall rain on you!","Seal and Heidi are divorced, haven't you heard?"; Config.Diablo.EntranceTP = "now playing : Diablo II LoD","In and out they go - it's all sexual parabolisms","Antoins TP up!","I'm your pusherman!!","When i get that feeling, i need sanctuary sealings"; Config.Diablo.StarTP = "When i get that feeling, i need sanctuary sealings!","Beam me up, Scotty!","Ein Stern der deinen Namen trägt","Was ist der Mensch?"; Config.Diablo.DiabloMsg = "Diablo? More like dia-Blowfish!","Jetzt gibt's in disablos Fratz!","Check out Sade - By your side","Check out 'Curties Mayfield - Here but i'm gone'","Check out 'De Phazz - Lullaby'","Check out 'Channel Tres - Topdown'","Figaro Figaro Diaaablo!"; Scripts.SealLeader = false; // Clear a safe spot around seals and invite leechers in. Leechers should run SealLeecher script. Don't run with Diablo or FastDiablo. // act 5 Scripts.Pindleskin = true; Config.Pindleskin.UseWaypoint = false; Config.Pindleskin.KillNihlathak = false; Config.Pindleskin.ViperQuit = false; // End script if Tomb Vipers are found. Scripts.Nihlathak = false; Config.Nihlathak.ViperQuit = false; // End script if Tomb Vipers are found. Scripts.Eldritch = true; Config.Eldritch.OpenChest = false; Config.Eldritch.KillShenk = true; Config.Eldritch.KillDacFarren = false; Scripts.Eyeback = false; Scripts.SharpTooth = false; Scripts.ThreshSocket = false; Scripts.Abaddon = false; Scripts.Frozenstein = false; Config.Frozenstein.ClearFrozenRiver = true; Scripts.Bonesaw = false; Config.Bonesaw.ClearDrifterCavern = false; Scripts.Snapchip = false; Config.Snapchip.ClearIcyCellar = true; Scripts.Worldstone = false; Scripts.Baal = false; Config.Baal.HotTPMessage = "Spicy TP with extra mobs!"; Config.Baal.SafeTPMessage = "Safe TP for you!"; Config.Baal.BaalMessage = "they see me baalin'; they grabbin'"; Config.Baal.SoulQuit = false; // End script if Souls (Burning Souls) are found. Config.Baal.DollQuit = false; // End script if Dolls (Undead Soul Killers) are found. Config.Baal.KillBaal = true; // Kill Baal. Leaves game after wave 5 if false.

Scripts.TristramLeech = false; // Enters Tristram, attempts to stay close to the leader and will try and help kill.
Scripts.TravincalLeech = false; // Enters portal at back of Travincal.
    Config.TravincalLeech.Helper = true; // If set to true the character will teleport to the stairs and help attack.
Scripts.MFHelper = true; // Run the same MF run as the MFLeader. Leader must have Config.MFLeader = true
Scripts.Wakka = false; // Walking chaos leecher with auto leader assignment, stays at safe distance from the leader
Scripts.SealLeecher = false; // Enter safe portals to Chaos. Leader should run SealLeader.
Scripts.DiabloHelper = true; // Chaos helper, kills monsters and doesn't open seals on its own.
    Config.DiabloHelper.Wait = 0; // Seconds to wait for a runner to be in Chaos. If Config.Leader is set, it will wait only for the leader.
    Config.DiabloHelper.Entrance = true; // Start from entrance. Set to false to start from star.
    Config.DiabloHelper.SkipTP = false; // Don't wait for town portal and directly head to chaos. It will clear monsters around chaos entrance and wait for the runner.
    Config.DiabloHelper.SkipIfBaal = false; // End script if there are party members in a Baal run.
Scripts.AutoBaal = false; // Baal leecher with auto leader assignment
    Config.AutoBaal.FindShrine = false; // false = disabled, 1 = search after hot tp message, 2 = search as soon as leader is found
    Config.AutoBaal.LeechSpot = [15115, 5050]; // X, Y coords of Throne Room leech spot
    Config.AutoBaal.LongRangeSupport = false; // Cast long distance skills from a safe spot
Scripts.BaalHelper = true;
    Config.BaalHelper.Wait = 0; // Seconds to wait for a runner to be in Throne
    Config.BaalHelper.KillNihlathak = false; // Kill Nihlathak before going to Throne
    Config.BaalHelper.FastChaos = false; // Kill Diablo before going to Throne
    Config.BaalHelper.DollQuit = false;  // End script if Dolls (Undead Soul Killers) are found.
    Config.BaalHelper.KillBaal = true; // Kill Baal. If set to false, you must configure Config.QuitList or the bot will wait indefinitely.
    Config.BaalHelper.SkipTP = false; // Don't wait for a TP, go to WSK3 and wait for someone to go to throne. Anti PK measure.
Scripts.Follower = false; // Script that follows a manually played leader around like a merc. For a list of commands, see Follower.js
InterestingIndeed commented 4 years ago
  1. You are talking about Act 3, I cant find any Act 3 in your config.
  2. From my general understanding, the scripts run from top to bottom. That means the Act 5 script (e.g. Pindleskin) will run before the Diablo/BaalHelper. So while your Pala is doing CS, your Sorc does everything else (Act3 and Act5). I believe the Act 5 scripts always end the game and DONT check if someone is doing CS (not sure though).

Just let your Sorc do CS in the Act 4 scripts (without the DiabloHelper) should fix your problem. If you don't start from the entrance, you might even synch up with the Paladin faster.

I also recommend setting this:

Config.BaalHelper.Wait = 0
Config.DiabloHelper.Wait = 0

to 60 seconds, so the follower actually waits for the leader for some time.

Fa-b commented 4 years ago

Changing the order of the runs in the character config should work. Properties are appended to a list in ascending order:

for (s in Scripts) {
    if (Scripts.hasOwnProperty(s) && Scripts[s]) {
         this.scriptList.push(s);
    }
}

Though, while checking this I must note that this might change in the future! The reason for this working that way is random now because the behaviour of for/in loops over objects is not specified and is entirely implementation dependent.