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

[Plugin] A ChuckyEgg Attempt! - PartyLeader PartyDude, for Co-Op Botting

Thanks for the info :)

Using banners
I had a look at Join_Me and the code is the same as I am using, except I search for the ActorSNO (each banner has its own, unique and static). I think because I was testing it under many conditions, it was found that the ACDGuid (object ID needed to be able to use the banner) failed to load in certain situations. It look like all works as it should during a normal uninterrupted run (no Stop/Start).

I like the way following the leader works in there. I am currently aiming for the leader to write coords to the database, ready for the followers to grab and use. I might consider trying the Join Me/Follow Me way, but it looks like the way that it is coded, it can't distinguish between the leader and the followers, therefore it is quite possible for the followers to end up following each other.
Need a way to uniquely identify the leader, then grab its position (X, Y, Z coords).

Hmm, actually I'll stick with writing the coords to the database. It's needed for other situations.

Anyway, design done, now to start coding proper:

VERY, VERY BRIEF PROJECT PLAN (yeah, yeah, not really a project plan - .!. ;))

STEP 1) Programatically Create/Delete COMMS Folder and Database - (CODING/TESTING - COMPLETED)

STEP 2) CREATE PARTY - (CODING STARTED)

STEP 3) START THE RUN - ()

STEP 4) THE RUN - ()

STEP 5) STOP RUN / RUN FINISHED - ()

If I complete this, it will have to have a thread of its own (possibly called PartyDudePlus), as functionally it is very different, and probably not able to be used by as many as the original one, seeing as it requires communication between the bots, and that won't be available outside of a local area network with the proposed comms system (reading and writing to a simple database).

For LAN use, people will be able to have the database on a shared drive. I'll have it so that people can specify the database name and location.

Beyond LAN, well that's a whole new kettle of fish that I have never done anything with before, so maybe for the 3rd version. This one would have to be called PartyDude Pro, seeing as it could be used by all, and from anywhere. (BEYOND MY CODING KNOWLEDGE...... WAAAAAAAAAAAAAAAAAAAAAAAY BEYOND)

Getting a bit ahead of myself here, all I have coded so far is the creation and deletion of the database. Who knows what obstacles I might come across.

And man, I neeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed a coffee!

----------------
I'm off out to the pub to meet my ex work mates (IBM - don't be impressed, I'm certain the management had a major party when I left .... I don't get on well with managers, lol ... one of them did admit to my mates that the place had become too serious after I left... love it, lol), so, let's see if I can get STEP 2 completed by then :)

Willing to combine efforts, lmk. I could definitely help with the beyond lan networking part.
 
Last edited:
at the beggining i would like to say that gr8 plugin and works for me very good but only for 2 players, leader is configured to join request for 3 members but he is sending it only to 1st one from list. Any one got the same problem?
 
at the beggining i would like to say that gr8 plugin and works for me very good but only for 2 players, leader is configured to join request for 3 members but he is sending it only to 1st one from list. Any one got the same problem?
Yea, first run he'll invite all 4 players but after that he only invites the first one. I'm never 100% afk when I run these, in fact, Im right next to them most the time and I correct it pretty easily but it does suck that I have to.
 
Yea, first run he'll invite all 4 players but after that he only invites the first one. I'm never 100% afk when I run these, in fact, Im right next to them most the time and I correct it pretty easily but it does suck that I have to.

That's 3 people I have come across with that problem. Very strange.

I have run many, many tests with groups of 2, 3 and 4 bots, and no problems what-so-ever. All bots are always invited. And invitation is always done by running the same method - inviteToTheParty(), which looks for the 3 possible hashes.

I wonder if it might be some sort of lag issue?

One thing, all my sessions run on the same PC. I have not tried this with network of computers. I'm not actually able to, as my 2nd computer is out of action.

---------------------------------------------

Work on the New Version:

So far I have only completed the Invite to Party.

It's set up so that the run is only started once all members are present, hence the requirement of a COMMS system between the bots.

As soon as each bot accepts the invitation, it has to get its party member ID. Which will uniquely identify it within the group, thus enabling communication to and between specific bots.

Each bot then announces that it is in the party.

Once the leader sees that all members are present, the leader starts the run...

That's as far as I have got.

Next - the run itself.... Leader passing coordintates / Dudes following those coordinates / Dealing with death / Dealing with bots leaving the party / Combat as a team / Going to the rescue of a bot in solo combat, etc.

----------------------------------------------

Combining this with the way Join Me and Follow Me work....

Nice idea, but it's not why I am creating this. I want to create a system where each bot is able to show its presence, and call out to the other bots with updates on its situation (stuck / dead / left party / being raped by big nasty beasties, etc.), and for the other bots to react appropriately (re-invite / come to the rescue and kick butt / recreate the game, etc.).

Anyone who wants to, can take the code or parts of it, and create a party plugin based on the way Join Me works.

For now, I am using just a simple flat database, which as stated in a previous post, will cause problems for those running their bots on anything other than a local PC or local network. So perhaps for a future version, I'll look to use some sort of "messaging protocol".

Oh, and as I said before, don't hold your breath while waiting for this to be made, as nobody knows how long or if ever it will be completed. I'm still getting a buzz out of it, so, so far all is good :)
 
For now, I am using just a simple flat database, which as stated in a previous post, will cause problems for those running their bots on anything other than a local PC or local network. So perhaps for a future version, I'll look to use some sort of "messaging protocol".

Really, you are going to be in a world of hurt later if you don't set it up now to be able to have an interchangeable lower level communication module (message or db).
 
a lot of people bot the multiple bots on the same computer.
I see nothing wrong with what he is doing atm..

Let him finish what hes doing right now so I can start using it on my 2 monks 1 barb and then donate him some money.
 
This plugin fails since when using the latest act 3 plugins when both the bots reach a boss encounter it DOESNT click accept and it just stands there spamming the entrance forever

and theres no single 1 act 3 profile for clearing every area
 
This plugin fails since when using the latest act 3 plugins when both the bots reach a boss encounter it DOESNT click accept and it just stands there spamming the entrance forever

and theres no single 1 act 3 profile for clearing every area

This plugin will deal with the accepting of the boss encounter:
http://www.thebuddyforum.com/demonbuddy-forum/plugins/68508-plugin-temporary-party-boss-accept.html

I should probably include it, but a rather busy at the moment.

-----------------
Latest on advanced version:

I looked into the ways to have the followers follow the leader:
  1. passing coords via a database
  2. or as per Join Me / Follow Me, have the followers locate the leader and get its position, then move to its position

Originally I was going for the database version, but then thought I'd try the other way, so as not to result in a lot of writing and reading files, but the Follow.Me and Join Me version can result in followers getting left behind. Not too much of an issue as you can just have them TP and Banner if they lose the leader.
But, and a bigger butt ;) You cannot locate the actual leader, there is no way that I can see for one bot to identify a specific bot via the DemonBuddy API, unless the leader of your party is the only one of its class in the party:
Each class has one name and one ActorSNO. There is no way to uniquely identify them via these fields. One name and one ActorSNO for all characters of the same class.
Everything has a unique ACDGuid, but with no other way to differentiate between characters of the same class, there's no way to be sure of getting the ACDGuid of the leader.

Therefore, the only way to be sure to be following the leader, is to have the leader pass its coordinates/position to the followers via a database.

So, I am back to using a database in order to get the following of the leader to work properly.
 
This plugin you linked chucky does not work i just tested it
The i dont know if it needs to be lightning fast to accept because the bot pretty much spams the entrance resetting the seconds every 1 second
 
Chucky, you got this and I beleive in you.

Thanks, Eugenius :)

I've just about completed the PartyLeader part:
On starting DB it
  1. Creates the database, filling in all the default data
  2. Sends out the invites
  3. On seeing that everyone has joined the party it then starts the run (writing coordinates to the database - I need to figure out the time interval between writes)
  4. Every so often it checks that nobody has left the party (new system based on database entry, not on Invite to Party Hash, therefore does not open the Social Menu)
  5. If someone has left it re-invites them
- Still to add to the Leader
  • What to do when the leader dies ??????

PartyDude (members of the party)
  • Accepts the invite to the party
  • Updates database saying that they are in the party
  • Grabs their unique party ID (for communication between the bots)
- Still to do / not finished
  • Read the latest coordinates from the leader, and move to them (MoveTo part written and tested, but not implemented)
  • OnDeath event (all code written and tested, but not implemented in the plugin)
  • Leader out of range/lost the leader (all code written and tested, but not implemented in the plugin)
  • Mayday - char under attack!


Now and tomorrow, in-between other things, I'll work on the followers moving, based on the coordinates passed by the leader.

One issue I have, the death of the leader, how to deal with that ????

The death of a follower is easy, OnDeath event have it TP back to town, then use the leader's banner, then start the MoveTo from the last coordinates passed by the leader.

The leader's death is a problem ???

I know certain plugins have their own way to deal with the character's death, so in order to be compatible with those, users need to be able to disable it in the PartyLeader/Dude plugin config window.

For starters I'll have the leader just TP back to town and reload the last profile..... hmm, actually I'll have a choice of 2 from within the config window:
1) TP back to town and reload the profile = 2 lines of code
2) leave game and create a new game = 1 line of code
3) OR get it to continue from where it left off = many lines of lines of code, lol.... nuts to that for now :)

And this death handling can be disabled, thus allowing the user's favourite plugin to handle the death of the leader.

If the profile is one that could take an age to run, then it may be better to just have the leader create a new game. Otherwise, if the leader dies someway into the run, it will waste a ton of time running the party from the very start.

Anyway, nuts to this... now to get the followers to read in the coordinates (few mins job, if I can stop writing stuff here, lol) .... Then I can chill with a good film and a glass of wine or 3.
 
This plugin you linked chucky does not work i just tested it
The i dont know if it needs to be lightning fast to accept because the bot pretty much spams the entrance resetting the seconds every 1 second

Odd, it used to work. The guy wrote it specifically for this plugin... hmm

I'll have a look at this tomorrow, and add it to this version of PartyLeader, as an update.

Am I right in that this thing the bot needs to click on is the ACCEPT button when the party goes to take on a boss ? Excuse this question, it's late and I'm tired, so just need to confirm :)

I'll test it out on Kull what's his name... nice and quick to get to him.

Now time for me to split this forum for tonight... chill time cometh! Now where's a good j when you need one ;)
 
Is this possible with bots on different pc / vms?

I think i saw a thread similar to this but it says all bots must be on 1pc.
 
Couldnt you just have the party leader continue like normal and follow the route from the spawn point

have the party leader write something that it died and the other followers will teleport to town as soon as fighting is over.

and then tele to leader again and follow him again.
 
Is this possible with bots on different pc / vms?

I think i saw a thread similar to this but it says all bots must be on 1pc.

Yes, this can be used in such a situation, as long as the bots have access to the database. The database would have to sit on a shared drive that all the bots have access to.

If your bots are on the same network, then you just share the folder where you want the database to reside, and then map that folder on the bots' PC/VM.


Couldnt you just have the party leader continue like normal and follow the route from the spawn point

have the party leader write something that it died and the other followers will teleport to town as soon as fighting is over.

and then tele to leader again and follow him again.

This would be ideal, but will take some figuring out.


This plugin you linked chucky does not work i just tested it
The i dont know if it needs to be lightning fast to accept because the bot pretty much spams the entrance resetting the seconds every 1 second

It looks like the button can have more than one hash, it changes. So far I have found two hash values that the button can have: 0xF495983BA9BE450F, 0x69B3F61C0F8490B0

I'll grab a coffee, then add this to the current version of PartyLeader/Dude
 
Last edited:
*** New Update To PartyLeader/PartyDude ***
Version 1.2

Boss Encounter, plugin can now click on the ACCEPT button

This button can have one of two possible hashes; hashValue1, hashValue2 .... shhhh, it's a secret ;)
It's quite possible that it may have more than just the two, but so far I have only noticed these two.
 
Last edited:
For anyone who is interested:

latest on the PartyLeaderPro/PartyDudePro version

I'm not far from first release :)

The party now forms up, and they go off together, merrily bashing, smashing and looting their way. And at the end of the run, the leader creates a new game and they all go off again repeating the run of death and destruction.
The followers move along slightly behind the leader, each at random distances, and at slightly different coordinates to the leader, also randomised.
Thanks Mr Join.Me dude, your code was very helpful there. Also with the testing for when the bot is looting :)

I've still got to add:

PartyLeader
re-inviting lost party members

PartyDude
Lost leader/leader too far away - TP to Town - use banner
I need to add some sort of Mayday, but I may skip that for the first release

Also, I need to figure out how to let the followers not get interrupted when the bot wants to empty bags. Right now, the moveTo in the plugin is trying to take control while the bot wants to sell, stash, and salvage.
I think I might be able to use: Zeta.CommonBot.ItemManager.StashItems(), as that returns a bool - true/false
But I'll have to test that tomorrow, if I get time.

Creating this, I'm thinking it would/could be possible to create a plugin to complete whole areas, even an act, but that would take a HELL of a LOT of WORK!

Anyway, chill time is upon me... I feel like some Eureka and Weeds :)
 
One issue I have, the death of the leader, how to deal with that ????


What about making a temporary leader out of one of the remaining bots until the leader can catch back up the the group?
 
Back
Top