kolton / d2bot-with-kolbot

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

Barb Bo more than once per game #479

Open Jtc9289 opened 6 years ago

Jtc9289 commented 6 years ago

anyone have a bo barb script i tried the one in kolbot it bos at cata wp then sits in town while my sorc mfs i would like when bo runs out or in between scripts to come back and get new bo then keep going

Celeez commented 6 years ago

Me and a few others have also been looking for this. Seems like this is such an important thing i dont know how its not part of bot already.

Droggz commented 6 years ago

Any updates on this issue? Looking for something similar as well.

rsmoka commented 6 years ago

what updates? its working fine... just set false line 22....

    Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves.
zimz319 commented 6 years ago

there used to be a script on BH , but since its down i cant get to it. We want barb to bo mfer again if he/she runs out. I am willing to pay good FG for someone to make me this script :) Willing to share with the community also.

Celeez commented 6 years ago

Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves.

this line is set to false by default thats not our problem.

ghost commented 6 years ago

you got this info on discord, but for anyone else ... https://www.projectetal.com/forums/wiki/?title=D2BS_Misc_Options#modded_BattleOrders_js

EDIT: after etal site went down, you can get the script on https://pastebin.com/JTmWbqLf

this info is also posted on https://d2bot.discourse.group/t/how-to-get-kolbot-to-bo-more-then-once-per-game/44

Jtc9289 commented 5 years ago

new ladder same problem i cant see what that post is :(

rsmoka commented 5 years ago

by default that script was programmed to do only a single BOgive - BOget at the beggining of the game. maybe it wasn't necessary a 2nd one, because games were shorter in those battle.net times without a lot of restrictions, which were applied in the meantime.

nag0k::: Barbarian will go to the waypoint of your choosing and bo anyone that is nearby if they have bo or not. It will go back to town if monsters come close to the boer. It will go back to town and visit a healer NPC if it's mana gets below a set percentage then return to continue giving bo.

There are some settings at the top of the script you can change: const BO_WP = 35; // area to buff - 35 is catacombs level 2 const TOWN_NEARBY_MONSTER = true; // go to town if monsters nearby const TOWN_MANA = 20; // go refill mana if mana drops below this percent[/CODE] BO_WP sets what wp to bo at, 35 is default which is catacombs level 2. TOWN_NEARBY_MONSTER makes the barb go to town if monsters come too close. TOWN_MANA makes the barb go refill it's mana if it drops below this percentage, if mana drops below 20% the barb will go heal by default.

script: https://pastebin.com/LEas9ekQ Notes:

purrfected commented 5 years ago

When I use this BO script, my sorc is stuck casting Frozen Armor. How do I fix that?

I have sorc (leader) set to: cripts.BattleOrders = true; Config.BattleOrders.Mode = 1; // 0 = give BO, 1 = get BO Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves. Config.BattleOrders.Getters = []; // List of players to wait for before casting Battle Orders (mode 0). All players must be in the same area as the BOer.

Edit: Just read the comments in the script and tried to put the 3 lines in 2 of the runs for my sorc.

So maybe Config.BattleOrders.Mode should have more options? Maybe 0 = Only give bo, 1 = Get bo every x minute or after death/merc death, 2 = Give bo then move, get back at x miunte and cast again (wait for getters if configured). And also add Config.Battle.Orders.Time default like 3 minute? Maybe for extra utlity, make an option for BO follower to move to set wp when command in chat is sent. Let getters have option to say a command in chat if they need BO, e.g "Waiting for BO". This would require an option what to do after death or merc death before continuing regular route.

Gamusinator commented 5 years ago

Well it's not a fix for you maybe, but I made one change that makes that battleOrder script end after bo.

if (Config.BattleOrders.Mode === 0 && Config.BattleOrders.Wait) {
        for (i = 0; i < Config.BattleOrders.Getters.length; i += 1) {
            while (Misc.inMyParty(Config.BattleOrders.Getters[i])) {
                delay(500);
                return true;
            }
        }
    }

I've add the return true; after delay, and that makes that script of battle orders ends, and barb can execute the next script.

For example if you do dia baal runs: 1 step - Bo at catcombs for all champs configured. 2 step - barb ends bo script and execute wakka (my barb plays as leecher) 3 step - Baal time, when tp is clean, barb joins tp and make bo in the portal

I'm running 1 hammer, 1 java, 1 trapsin, 1 dudu and 1 bo barb And they've all more than 5k life (barb 9k and trapsin 8k =D)

Gamusinator commented 5 years ago

there used to be a script on BH , but since its down i cant get to it. We want barb to bo mfer again if he/she runs out. I am willing to pay good FG for someone to make me this script :) Willing to share with the community also.

Feel free to send me some fg if this fix your issue xD

RayO1 in jsp Europe softcore ladder ;)

Gitrdone69 commented 5 years ago
Config.AttackSkill[0] = 149; // Preattack skill. <---
Config.AttackSkill[1] = 151; // Primary skill for bosses.
Config.AttackSkill[2] = -1; // Backup/Immune skill for bosses.
Config.AttackSkill[3] = 151; // Primary skill for others.
Config.AttackSkill[4] = -1; // Backup/Immune skill for others.

i did this for my barb, now he bo's all the time xD

notMusic commented 5 years ago

there used to be a script on BH , but since its down i cant get to it. We want barb to bo mfer again if he/she runs out. I am willing to pay good FG for someone to make me this script :) Willing to share with the community also.

Got a singer script that makes barb sit in cats 2 waiting, shouts when any party member arrives. Second script makes party members go to singer when a shout goes out.

heywodjablome commented 5 years ago

This is just an example. My barb is a war cry barb. He is the leader. I have sorc and druid Followers and all 3 do runs together as a team.

I just do a 5 sec delay "Before Precast" on each script I run and that does the trick. That way my team has time to shop tps/potions and stash. you could change this to however long you need depending on cubing time etc. No more than 10 seconds "10000 milliseconds" would be necessary imo.

this makes them wait 5 seconds before Pre casting and works fine for me. delay(5000); I hope this helps and sorry to nercro a thread, but I never saw any good answers.

function AncientTunnels() { Town.doChores(); Pather.useWaypoint(44); delay(5000); Precast.doPrecast(true);

Deanoz1 commented 4 years ago

SOLUTION

I figured it out guys. In order to get your Battleorders to go off more than once. Firstly you need to duplicate your BattleOrders.js file and rename it. I renamed it to BattleOrders1.js

Once you have done this open up the new file BattleOrders1.js and edit line 7 to; function BattleOrders1() {

Then you need to open up all your character configs for the characters you are using and copy your current Battleorders script section. Default lines 20-23 Scripts.BattleOrders = true; Config.BattleOrders.Mode = 0; // 0 = give BO, 1 = get BO Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves. Config.BattleOrders.Getters = ["YourPlayerName", "YourPlayerName"];

Then paste this between the script you want the Battleorders to be recast with the modification to the initial script to capture the new BattleOrders1.js file we created. Scripts.BattleOrders1 = true; Config.BattleOrders.Mode = 0; // 0 = give BO, 1 = get BO Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves. Config.BattleOrders.Getters = ["YourPlayerName", "YourPlayerName"];

As an example i have mine cast between completing Diablo and commencing Baal but you can put it wherever you want, remembering that the scripts run in order from top to bottom.

Your leader will need it between Diablo and Baal scripts your followers will need it between Diablo helper and Baal assistant for example.

Hope this helps someone. I wasnt able to find a solution online so just played around with the code until i got it working.

RoySwanson commented 4 years ago

SOLUTION

I figured it out guys. In order to get your Battleorders to go off more than once. Firstly you need to duplicate your BattleOrders.js file and rename it. I renamed it to BattleOrders1.js

Once you have done this open up the new file BattleOrders1.js and edit line 7 to; function BattleOrders1() {

Then you need to open up all your character configs for the characters you are using and copy your current Battleorders script section. Default lines 20-23 Scripts.BattleOrders = true; Config.BattleOrders.Mode = 0; // 0 = give BO, 1 = get BO Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves. Config.BattleOrders.Getters = ["YourPlayerName", "YourPlayerName"];

Then paste this between the script you want the Battleorders to be recast with the modification to the initial script to capture the new BattleOrders1.js file we created. Scripts.BattleOrders1 = true; Config.BattleOrders.Mode = 0; // 0 = give BO, 1 = get BO Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves. Config.BattleOrders.Getters = ["YourPlayerName", "YourPlayerName"];

As an example i have mine cast between completing Diablo and commencing Baal but you can put it wherever you want, remembering that the scripts run in order from top to bottom.

Your leader will need it between Diablo and Baal scripts your followers will need it between Diablo helper and Baal assistant for example.

Hope this helps someone. I wasnt able to find a solution online so just played around with the code until i got it working.

Hey this solution works for me, but the second time when they come to cata to BO, if my sorc still has BO on her the barb doesn't BO again (but the duration only has 30 or so secs left). How can I make it cast regardless?

ToiletRollHoarder commented 4 years ago

SOLUTION I figured it out guys. In order to get your Battleorders to go off more than once. Firstly you need to duplicate your BattleOrders.js file and rename it. I renamed it to BattleOrders1.js Once you have done this open up the new file BattleOrders1.js and edit line 7 to; function BattleOrders1() { Then you need to open up all your character configs for the characters you are using and copy your current Battleorders script section. Default lines 20-23 Scripts.BattleOrders = true; Config.BattleOrders.Mode = 0; // 0 = give BO, 1 = get BO Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves. Config.BattleOrders.Getters = ["YourPlayerName", "YourPlayerName"]; Then paste this between the script you want the Battleorders to be recast with the modification to the initial script to capture the new BattleOrders1.js file we created. Scripts.BattleOrders1 = true; Config.BattleOrders.Mode = 0; // 0 = give BO, 1 = get BO Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves. Config.BattleOrders.Getters = ["YourPlayerName", "YourPlayerName"]; As an example i have mine cast between completing Diablo and commencing Baal but you can put it wherever you want, remembering that the scripts run in order from top to bottom. Your leader will need it between Diablo and Baal scripts your followers will need it between Diablo helper and Baal assistant for example. Hope this helps someone. I wasnt able to find a solution online so just played around with the code until i got it working.

Hey this solution works for me, but the second time when they come to cata to BO, if my sorc still has BO on her the barb doesn't BO again (but the duration only has 30 or so secs left). How can I make it cast regardless?

You can try removing the player names in Config.BattleOrders.Getters = ["YourPlayerName", "YourPlayerName"]

And add a cast delay in the Battleorders1 script.

h2ofreak commented 3 years ago

SOLUTION I figured it out guys. In order to get your Battleorders to go off more than once. Firstly you need to duplicate your BattleOrders.js file and rename it. I renamed it to BattleOrders1.js Once you have done this open up the new file BattleOrders1.js and edit line 7 to; function BattleOrders1() { Then you need to open up all your character configs for the characters you are using and copy your current Battleorders script section. Default lines 20-23 Scripts.BattleOrders = true; Config.BattleOrders.Mode = 0; // 0 = give BO, 1 = get BO Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves. Config.BattleOrders.Getters = ["YourPlayerName", "YourPlayerName"]; Then paste this between the script you want the Battleorders to be recast with the modification to the initial script to capture the new BattleOrders1.js file we created. Scripts.BattleOrders1 = true; Config.BattleOrders.Mode = 0; // 0 = give BO, 1 = get BO Config.BattleOrders.Wait = false; // Idle until the player that received BO leaves. Config.BattleOrders.Getters = ["YourPlayerName", "YourPlayerName"]; As an example i have mine cast between completing Diablo and commencing Baal but you can put it wherever you want, remembering that the scripts run in order from top to bottom. Your leader will need it between Diablo and Baal scripts your followers will need it between Diablo helper and Baal assistant for example. Hope this helps someone. I wasnt able to find a solution online so just played around with the code until i got it working.

Hey this solution works for me, but the second time when they come to cata to BO, if my sorc still has BO on her the barb doesn't BO again (but the duration only has 30 or so secs left). How can I make it cast regardless?

You can try removing the player names in Config.BattleOrders.Getters = ["YourPlayerName", "YourPlayerName"]

And add a cast delay in the Battleorders1 script.

Thank you for the new js file to have them revisit the BO. For me I have a dedicated BO Barb and I just leave him there recasting BO every 6 seconds. That way when any char revisits the barb, they get BO again.

Precast.doPrecast(true); // casts the initial BO - This is where you will need to add the below code
while (true) { // Loops through BO every 6 seconds
    Precast.doPrecast(true);
    delay(6000);
} 
Bcubrich commented 3 years ago

If you have a Barb running around and playing with the characters you can just set the PreAttackSkill to BO in the attack section. Then he will BO fairly often so your guys will pretty much always have BO even if they are separated for a while.