What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

[Party Plugin] SimpleFollow - Multi-Bot Party Plugin

rrrix

New Member
Joined
Jul 11, 2010
Messages
3,449
Reaction score
61
SimpleFollow

It simply... follows :)
Author: rrrix
Contributions by: Gniller​

Instructions:

Pre-requisites:


  • Latest version of Demonbuddy or DemonbuddyBETA
  • Make sure the leader bot has ONLY 3 friends - NO MORE than 3 friends
  • These 3 friends will need to be your follower bots
  • The leader bot will use the BNet "Social Window" to invite the follower bots, by clicking the invite button like a human would
  • The leader bot should have the slowest movement speed in the group, otherwise it will run faster than follower bots
  • The leader bot should also be the strongest with the least possability of death, have most Vitality/Armor/Resistances. A leader death will slow all bots down considerably.
  • You can use any class as leaders/followers. Play with various combinations and class specs to get best results.
Leader bot setup:


  • Enable SimpleFollow
  • Load your profile of choice
  • If running multiple bot teams: Configure Leader/Server TCP port in Plugins window > SimpleFollow config
  • Start bot
Having Leader stay in Party:
Open the profile you're using in a text editor
Find the line:

Code:
<LeaveGame reason="Some Reason" />

Replace it with:
Code:
<LeaveGame reason="Some Reason" stayInParty="True" />


Follower bot:


  • Enable SimpleFollow Plugin
  • Load SimpleFollow.xml as your profile (or SimpleFollow_Relogger.xml if using YAR)
  • Start bot
YAR Suggested setup


  • Use Latest R-YAR for best results
  • Setup your leader bot as a normal solo bot, use any good profile
  • Use the provided Relogger profile: SimpleFollow_Relogger.xml - this profile must be in the same directory as SimpleFollow.xml
  • In YAR > Bot config > Demonbuddy, check "Force enable all plugins"
  • Profile Kickstart is Optional - the provided SimpleFollow_Relogger.xml will work well
  • Disable YAR Anti-Idle
  • Put the leader bot at the top of the YAR bot list
  • Make sure YAR starts the leader bot first
Troubleshooting:


  • Make sure followers are not set as AWAY or BUSY social status - they will be unable to accept invites
  • Make sure you start the Leader bot FIRST
  • Make sure you are not using any extra-unneeded plugins (Atom, UnstuckMe)
  • Make sure you have disabled YAR Anti-Idle
  • Check for errors & post a log file
Features:


  • Currently tested and working with 4 bots.
  • Uses .NET WCF (http) based communication system.
  • Allows for multiple bot teams via configurable server port.
  • Follower bots will follow the Leader bot through portals, will automatically town-portal and use banners
  • Combat and Loot pickup works and (should be) compatible with any combat routine (tested with Trinity only)
  • Not dependent on any other plugin (including Trinity)

How it works

Followers will read a message via HTTP from the leader bot and:
1) Use the banner if the player isn't in town
2) Follow the player around using the provided XYZ coordinates, potentially beyond the range that the DiaPlayer appears in the object manager
3) Accept boss portal confirmation dialog
4) Leave the game when/if the leader leaves the game
5) All bots will leave game AND party after the end of each game




Support, Bugs, Updates
If you want continued support, new features, bug fixes, and updates...
then
Bitcoin: 1NLbH6HJf5wCANFzpAAPUtkAtUqg2WmKGL

Git: https://www.assembla.com/code/simplefollow/git/nodes
 

Attachments

Last edited:
Aww-yeah! this is gonna be tested big time as soon as possible!

Great job man, as usual! :D
 
so.. if main bot doing townrun routine what followers will do?
if follower become full what happend? he just stop pick up items? or going town run?
 
Took a quick look and so far, as long as i stay on one computer it definitely works like a charm! I would kind of like to connect two computers for one team however, is this in any way possible for the current version? (Perhaps by adding an IP in some .cs file?)

I may be asking to much from a first release here, just spreading thoughts :) Awesome job!

Edit: Sometimes getting stuck in azmodans room as follower hits door and team accepts, for now removed core of arreat profile in my selection. Makes complete sense in the way it works, just reporting what i walk into :)

Edit2: nvm allready found where IP is stated (Simplefollow.cs for those that haven't and want to) should be a simple fix for my situation! :) perhaps a nice idea for a next version however i might be one of the few that even uses it.
 
Last edited:
so.. if main bot doing townrun routine what followers will do?
if follower become full what happend? he just stop pick up items? or going town run?

Too many questions. Try it... I'm gonna call you quadroquestion :p
 
sry for my bad eng but if i put the folder in the plugin folder DB dont show me the plugin maybe a small "How to Install" guide.

and i get this error

[03:22:18.944 N] Compiler Error: c:\Users\xxxxx\Desktop\db 2er session\Plugins\SimpleFollow\FollowTag.cs(327,46) : error CS0117: 'Zeta.CommonBot.GameEvents' enth?lt keine Definition f?r 'FireWorldTransferStart'.
[03:22:18.944 N] Compiler Error: c:\Users\xxxxx\Desktop\db 2er session\Plugins\SimpleFollow\SimpleFollow.cs(336,66) : warning CS0168: Die Variable 'enfe' ist deklariert, wird aber nie verwendet.
 
Last edited:
sry for my bad eng but if i put the folder in the plugin folder DB dont show me the plugin maybe a small "How to Install" guide.

and i get this error

[03:22:18.944 N] Compiler Error: c:\Users\xxxxx\Desktop\db 2er session\Plugins\SimpleFollow\FollowTag.cs(327,46) : error CS0117: 'Zeta.CommonBot.GameEvents' enth?lt keine Definition f?r 'FireWorldTransferStart'.
[03:22:18.944 N] Compiler Error: c:\Users\xxxxx\Desktop\db 2er session\Plugins\SimpleFollow\SimpleFollow.cs(336,66) : warning CS0168: Die Variable 'enfe' ist deklariert, wird aber nie verwendet.

You need to use DB Beta Version 196+
 
Though with tight pickup rules it isn't much of an issue at all, it might be a nice idea to force town-run on followers when the leader does a town-run as they stand there and wait anyway :) for run optimization
 
and when followers full?

When a follower is full it just does a town-run and takes flag back after, there is already no downtime involved here and hereby as optimal as it's gonna get :p
 
hmm.. so for small games as CotA main bot can end game and leave the game when followers doing townrun....

too bad
 
how can i switch the localhost to an LAN IP ? im running my bots in Virtual Machine
 
how can i switch the localhost to an LAN IP ? im running my bots in Virtual Machine

Confirmed, i have multiple computers combined this way. Make sure there is no Firewall in the way however and the IP used is the leaders IP :)
 
has anybody else had issues with followers following eachother? starts off as expected, then they just start chasing eachother around. tested with 3 monks, all with the same name. i tried lowering move speed and lowering the update interval.

im studying and about to leave for an exam so i dont have time to find the appropriate logs and attach them so the next time i test it ill get logs and post again.
 
I'm using multiple VMware and would like to know how do I do to have this plugin work?

do I need only to change the http://localhost:port/ in the plugin to my leader ip address which should be already the same I think?!...

my follower said [21:08:43.659 N] [SimpleFollow] ERROR: Could not get an update from the leader using http://localhost:10920/Follow. Is the leader running?

do they absolutely have to be on the same pc?
 
has anybody else had issues with followers following eachother? starts off as expected, then they just start chasing eachother around. tested with 3 monks, all with the same name. i tried lowering move speed and lowering the update interval.

im studying and about to leave for an exam so i dont have time to find the appropriate logs and attach them so the next time i test it ill get logs and post again.

The leader is identified by a matching a few properties; player class and max hitpoints. If they're all wearing the same gear and have the same hitpoints, this could potentially confuse the followers as to who exactly to follow. I assumed this would be an extremely rare condition however, since each piece of gear is randomized so your Vitality "should" never be exactly the same between bots. Is this your case?
 
I'm using multiple VMware and would like to know how do I do to have this plugin work?

do I need only to change the http://localhost:port/ in the plugin to my leader ip address which should be already the same I think?!...

my follower said [21:08:43.659 N] [SimpleFollow] ERROR: Could not get an update from the leader using http://localhost:10920/Follow. Is the leader running?

do they absolutely have to be on the same pc?

In its current form, without modification - what Gniller did, yes they have to run on the same P.C.

I feel that opening yet another port on a local computer may not be the wisest of ideas, as I have done absolutely no security testing or research relating to the WCF based HTTP service used here, and have no clue what vulnerabilities, if any, exist against a WCF based HTTP server. However, I do know that not everyone runs with their machine behind a firewall.

But for those two do, or even have multiple machines running on a private network with NAT, etc, having the leader/follower service bound to a particular IP/port would be beneficial.

Regardless, if you want to change this:

Open SimpleFollow.cs

Find this:
Code:
private static Uri serverUri = new Uri("http://localhost:10920");

and change "localhost" to the internal IP of the leader bot; for example:

Code:
private static Uri serverUri = new Uri("http://192.168.0.1:10920");

Of course, this might become a pain in the ass if you're using DHCP, but if you're not running on a school network or anything it should be simple enough to get a static private IP for your local network.

P.S. If you are NOT running behind some sort of firewall/router, and you don't trust every other machine on your network, I wouldn't do this.

cheers,

rrrix
 
alright thanks you I will test it as soon as possible!

I'm using multiple machine at my home private network with a router so I'll try ("http://192.168.0.1:10920");

Thank you
Best regards!
FTW
 
Back
Top