Demonbuddy for Season 16 released, updates.buddyauth.com !
  • Visit Rebornbuddy
  • Visit Demonbuddy

[Party Plugin] SimpleFollow - Multi-Bot Party Plugin

Discussion in 'Plugins' started by rrrix, May 4, 2013.

  1. rrrix

    rrrix DEVELOPER Buddy Core Dev

    Joined:
    Jul 11, 2010
    Messages:
    3,449
    Likes Received:
    61
    Trophy Points:
    0
    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 [​IMG]
    Bitcoin: 1NLbH6HJf5wCANFzpAAPUtkAtUqg2WmKGL

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

    Attached Files:

    Last edited: May 14, 2015
    perryjo17 and IGG like this.
  2. Gniller

    Gniller Community Developer

    Joined:
    Sep 29, 2012
    Messages:
    384
    Likes Received:
    5
    Trophy Points:
    16
    Aww-yeah! this is gonna be tested big time as soon as possible!

    Great job man, as usual! :D
     
  3. quadrotony

    quadrotony New Member

    Joined:
    Feb 14, 2013
    Messages:
    1,098
    Likes Received:
    1
    Trophy Points:
    0
    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?
     
  4. Gniller

    Gniller Community Developer

    Joined:
    Sep 29, 2012
    Messages:
    384
    Likes Received:
    5
    Trophy Points:
    16
    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: May 4, 2013
  5. rrrix

    rrrix DEVELOPER Buddy Core Dev

    Joined:
    Jul 11, 2010
    Messages:
    3,449
    Likes Received:
    61
    Trophy Points:
    0
    Too many questions. Try it... I'm gonna call you quadroquestion :p
     
  6. Denny456

    Denny456 New Member

    Joined:
    Feb 10, 2012
    Messages:
    13
    Likes Received:
    0
    Trophy Points:
    0
    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: May 4, 2013
  7. JoshYoJoshYo

    JoshYoJoshYo New Member

    Joined:
    Aug 25, 2012
    Messages:
    1,214
    Likes Received:
    3
    Trophy Points:
    0
    Haaaaaaa

    Nice work rrrix, I'll give this a shot later!
     
  8. JoshYoJoshYo

    JoshYoJoshYo New Member

    Joined:
    Aug 25, 2012
    Messages:
    1,214
    Likes Received:
    3
    Trophy Points:
    0
    You need to use DB Beta Version 196+
     
  9. Gniller

    Gniller Community Developer

    Joined:
    Sep 29, 2012
    Messages:
    384
    Likes Received:
    5
    Trophy Points:
    16
    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
     
  10. quadrotony

    quadrotony New Member

    Joined:
    Feb 14, 2013
    Messages:
    1,098
    Likes Received:
    1
    Trophy Points:
    0
    and when followers full?
     
  11. Gniller

    Gniller Community Developer

    Joined:
    Sep 29, 2012
    Messages:
    384
    Likes Received:
    5
    Trophy Points:
    16
    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
     
  12. quadrotony

    quadrotony New Member

    Joined:
    Feb 14, 2013
    Messages:
    1,098
    Likes Received:
    1
    Trophy Points:
    0
    hmm.. so for small games as CotA main bot can end game and leave the game when followers doing townrun....

    too bad
     
  13. Miu

    Miu New Member

    Joined:
    Sep 27, 2012
    Messages:
    34
    Likes Received:
    0
    Trophy Points:
    0
    how can i switch the localhost to an LAN IP ? im running my bots in Virtual Machine
     
  14. Gniller

    Gniller Community Developer

    Joined:
    Sep 29, 2012
    Messages:
    384
    Likes Received:
    5
    Trophy Points:
    16
    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 :)
     
  15. Miu

    Miu New Member

    Joined:
    Sep 27, 2012
    Messages:
    34
    Likes Received:
    0
    Trophy Points:
    0
    now its work, thanks
     
  16. Polyester

    Polyester New Member

    Joined:
    Jun 18, 2012
    Messages:
    927
    Likes Received:
    1
    Trophy Points:
    0
    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.
     
  17. FTW

    FTW New Member

    Joined:
    Jun 17, 2012
    Messages:
    29
    Likes Received:
    0
    Trophy Points:
    0
    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?
     
  18. rrrix

    rrrix DEVELOPER Buddy Core Dev

    Joined:
    Jul 11, 2010
    Messages:
    3,449
    Likes Received:
    61
    Trophy Points:
    0
    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?
     
  19. rrrix

    rrrix DEVELOPER Buddy Core Dev

    Joined:
    Jul 11, 2010
    Messages:
    3,449
    Likes Received:
    61
    Trophy Points:
    0
    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
     
  20. FTW

    FTW New Member

    Joined:
    Jun 17, 2012
    Messages:
    29
    Likes Received:
    0
    Trophy Points:
    0
    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
     

Share This Page