Jump to content

Playerbot


Recommended Posts

you are good man blueboy..

I respect your work and will strive to contribute to your project.

What i think i would find really usefull is the roles for bots: aggro, dps and most of all - heal (the bot primarily would check if anyone and especially you need some healing and would use known spells)

and another thing - it would be really nice if you could implement some basic - really basic algorythm for auto equip - if u can equip an item and its in some way better than the current - do it! :)

Thanks for all your help

If you'd read the documentation (or used .bot help, i believe) you'd know you can assign combat orders (.bot co, IIRC) such as tank, heal, dps, protect, ...

As for auto-equip, that's a good point, but it's really not as easy as you might expect, at least not with the current system. Does a druid prefer agility or intelligence? Would a paladin prefer spell hit or spell crit or spell damage - or just strength? Does your warlock prefer stamina or intelligence? How much does higher weapon DPS offset a useless stat?

Having said that, in my quest for independent bots (as in, not alts but just "i need a tank for Scarlet Monastery: Armory" *poof* level 37 properly talented/equipped tank), my next TODO (after talent specs) is a simpe-ish list of gear for various levels and situations. But - in contrast to talentspecs - I honestly don't see how that would benefit Playerbot alts in any significant way.

Link to comment
Share on other sites

  • Replies 799
  • Created
  • Last Reply

Top Posters In This Topic

sure. well u got a point with the commands tho i must say in the bot help it does not mention sub order commands.

Nonetheless, when it comes to equiping - i said simple, really simple.

If i want to take a bot for a dungeon i OBVIOUSLY dress him myself. I dont need auto spec dress.

I need him to dress like depending on the i.e. lvl of the gear or gearscore, or arm lvl - something really simple. Coz when i lvling up with bots they run almost naked but yet they have cool stuff in the backpacks.

Really, keep it simple.

Extensive AI support is a different matter. and my suggestion is only a suggestion

Link to comment
Share on other sites

I think I see what you're getting at. There's no need for a 'dumb' auto-dress when you can already do it manually. Given, it's not hassle free, but it still sounds what you're looking for. Since you missed the readme in the first post, here's the link:

/s .bot co|combatorder BOTNAME COMBATORDER [TARGET]

// more info: scroll down to "Combat Orders explained:"

/t BOTNAME equip <ITEM LINK>

// for a list of items try /t BOTNAME equip (no item). if that doesn't work try the trade command.

Yes it's manual but it works like a charm. Granted, an auto-equip would be better but that feature as a viable alternative is a lot of work so even if someone started right now you'd still need to be very patient ;)

Link to comment
Share on other sites

hey kennumen, im not an idiot - ive seen the read me. even before you precipitously assumed i havent.

There's no command for heal or aggro. And as i said the auto dress would come in handy. I know how to operate the bots but further automation in this respect would be really nice. Thats my opinion and there's no workaround for it - the available options are not what im driving at.

Link to comment
Share on other sites

hey kennumen, im not an idiot - ive seen the read me. even before you precipitously assumed i havent.

There's no command for heal or aggro. And as i said the auto dress would come in handy. I know how to operate the bots but further automation in this respect would be really nice. Thats my opinion and there's no workaround for it - the available options are not what im driving at.

Hello

I have used Playerbot now for a few weeks. I have 5 man party.

"Best" healing I get when I play a healer priest and rest are bots (2 pallies, warrior and a rogue).

My party members are lvl 20-21.

I had a problems with looting until I started using Master Loot...lol :D

Best regards,

Akuba

Link to comment
Share on other sites

Yes thats what i advise to do if we have a party that needs to be completelly sustainable - u need to be the main (or alt) heal and the bots can perform aggro and dps. And it is really useful to make more complex macros for proper control of the bots. Once you heal it is quite good :) And i love the possibility of gathering objects - extremelly wellthought and useful.

Kodos blueboy

Link to comment
Share on other sites

And i love the possibility of gathering objects - extremelly wellthought and useful.

Kodos blueboy

Thanks for your kind words :) , but your thanking the wrong person for code that controls the gathering of objects. True, I did the initial work enabling bots to see gameobjects in the world with the get command to manually gathering.

The looting code you enjoy today also encompasses the automated collection of useful objects, is the hard work of BThallid who is a valued member of the playerbot team and contributes regularly. He has also added the excellent 'sharedbots' feature to playerbot.

It nice to see discussion again on the thread

Cheers

Link to comment
Share on other sites

Now what this actually inspires me to is to become a dev as well.

Unfortunatelly u have seem yourself im new to git/repos/cvs and such but i do know some basics of C++ and i would really enjoy contributing to the scene and playerbot is one of the most promising projects imho.

As soon as i get on track with coding i will do my best to support you and the team!

Link to comment
Share on other sites

hey kennumen, im not an idiot - ive seen the read me. even before you precipitously assumed i havent.

I could have phrased that better. I try to hide it but sometimes it shows english is my third language. Apologies for the misunderstanding.

There's no command for heal or aggro. And as i said the auto dress would come in handy. I know how to operate the bots but further automation in this respect would be really nice. Thats my opinion and there's no workaround for it - the available options are not what im driving at.

I'm afraid I still don't understand what you mean when you say there's no command for heal. Clearly you mean something else than the automated ".bot co [character] heal". It would seem the manual spellcast also doesn't suit you ("/t BOTNAME cast <SPELLID | (part of) SPELLNAME | SPELLLINK>"). I don't understand what else you might mean, please enlighten me (before there's another misunderstanding, there's no sarcasm in this post).

As for autodress, I completely agree it would be handy and improve fun. Personally micromanagement is a thorn in my side. All I meant is that a "simple" auto-equip-upgrade would either be very broken or very not-so-simple. Having said that I would of course welcome development in this area.

Now what this actually inspires me to is to become a dev as well.

Great! The more the merrier. Perhaps you'll be the one to code an autodress? :)

Link to comment
Share on other sites

U would be surprised :D i will code this no matter what :)

And no offence i hope on your side as well..

And now I gues u have proven me wrong - as i did not find this

".bot co [character] heal"

in the manual - or maybe i just missed it.

In any way that is what i was looking for - hence, thank you :)

U care to work with me on my mangos?

Link to comment
Share on other sites

Yes, that would be the bug I was referring to. I recently made a change to fix the far teleport problem, which now results in the bots being invisible in an instance. The CMSG_AREATRIGGER packet is used for near and far teleports which gets intercepted in PlayerbotMgr.cpp and then resent from the bot. This is similar to how I had a work around set up, except I had a delay in the UpdateAI code with a new botstate. This immediate resend of the packet makes the bot teleport immediately. Since there is no load time for the bot, the bot appears in the instance first. Basically, the master is not getting the packet updates that tell the client that bots are there. The master will always be the slow computer in reference to the forum thread. May be a good way to test it and fix it. I'll work on getting a branch created for the delay work around I did.

At first I thought it was a perfect work-around. The thought of bots arriving behind you (or better yet, at random intervals 0-3 seconds before and after you) even appeals to me. It would be a little touch of human which might be especially nice if/when we get independent bots (as in, non-alts not or loosely related to a 'master').

Unfortunately a 2 second delay doesn't guarantee success. It's perfect for me (I'm alone, my server is a virtual machine so no lag), but someone with a lot of lag (although 2 seconds would be quite a lot) might still be a bit bugged. Having said that it's only a workaround after all, and I'd be keen to get my hands on it.

The looting code you enjoy today also encompasses the automated collection of useful objects, is the hard work of BThallid who is a valued member of the playerbot team and contributes regularly. He has also added the excellent 'sharedbots' feature to playerbot.

Now, I'm feeling exceptionally guilty for not contributing as much recently. I'm still here though, just busier with RL.

I think everyone here appreciates the interference real life can bring (I've certainly grown to 'appreciate' it more these past few weeks). But that doesn't diminish past accomplishments.

Having said that, it would be nice to see you get back to work ;) but because you want to, not out of guilt

Link to comment
Share on other sites

OK so this is what happens on Mangos zero - in contrast to mangos w/ playerbot:

Once i summon a mount - the bot does not. Even tho he has the same mount.

Maybe coz in wotlk the mount is a spell and in mangos zero its an item to use

Thanks for the info, I'll check that out. I have also completed a full conversion of the portal new-ai branch to work with MaNGOS zero. Once I'm happy, I'll create a simliar branch off portalzero to hold this code. This code will include a fix for the 'use' command. Under MaNGOS zero, CMSG_USE_ITEM opcode fails in the existing playerbot zero code, if the bots move during casting. I hope that the revised code will allow bots to use the mount item correctly. I will be pushing the code shortly ;)

Hope this helps

Link to comment
Share on other sites

Hey blueboy,

What we have noticed now actually is that on m0 once i use a command use [mount name] - the server crashes...

Any ideas?

EDIT:

as it turned out - it crashes only if u type "use{mount}" with no space between.

100% crash - try it!

Test out the 'new-ai' code for MaNGOS zero.

Like I said already, I have fixed the 'use' command so it operates correctly under MaNGOS zero. I was endeavouring to test this issue out, patiently levelling my bots up. I didn't realise that in the original wow you had to reach level 40, before you could ride :S . So I modified the settings in mangosd.conf to

StartPlayerLevel = 40

StartPlayerMoney = 10000000

and created two new players. One thing I do need to tackle is to enable bots to buy items from vendors i.e. [blue Skeletal Horse]. I first got the bot to learn [Apprentice Riding] and this worked O.K. I bought a horse for the player and one for the bot. I then attempted to summon the bot horse

/w botname use[blue Skeletal Horse]

notice that there is no space between the 'use' command and the item. In the later revisions of the client, a space was automatically inserted between the command and the item link. With the current client revison this does not occur, so I needed to revise the playerbot chathandler code to compensate.

and the bot mounted and then unmounted immediately as expected (no crash). The reason for this behaviour is that if the player is unmounted, bots cannot remain mounted. So I repeated the above procedure with the player mounted and this time the bot remained mounted.

I can confirm that the server did not crash. I will be pushing this code shortly, once I have ironed out a few more issues.

Hope this helps

Link to comment
Share on other sites

Hi Guys

As promised I have now pushed the portal 'new-ai' conversion to the new 'zeronew-ai' branch, that supports playerbot for MaNGOS zero.

I have tested the code on windows and *nix systems and it compiles and runs without issue.

You will be aware that many of the game opcodes are presently quarantined by the core guys, so you will frequently find that somethings simply do not work, for bots or players. A good example of this is with the orc quest "Lazy Peons". In this quest you are supposed to wake sleeping peons, by wacking them over the head with a supplied club. Unfortunately this does not work

By bot

first select the peon

/w botname use[Foreman's Blackjack]

By player

first select the peon.

click on Foreman's Blackjack item in player's inventory

neither way credits the quest objective.

If you are actually playing the game, you will appreciate that this will break the quest chain and prevent you from taking on subsequent quests. As a temporary fix, I suggest you use the 'gmguy patch' to auto-complete troubled quests. Please note that you will need to login the bots individually as players and enter the command below

Example: Lazy Peon quest - 5441

.gmguy quest 5441

Remenber that only quests flagged in the database table 'gmguy', by server admin can auto-completed. If no entry exists, then the quest cannot be completed. More information can be found in the file README.GMGuy

Please let me know if you experience any problems

Hope this helps

Link to comment
Share on other sites

Hi Guys,

I have updated to the 'skill' commmand. This revised command now displays the bot(s) existing weapon skills. This will save you the trouble of having to remember the bot(s) individual weapon abilities. Useful when you need to allocate an appropiate weapon to each of the bots (i.e quest rewards) or in weapons training. I have created patches for both MaNGOS and Mangos Zero and will push the code shortly.

EDIT: Code has now been pushed ;)

Hope this helps

Link to comment
Share on other sites

I want to ask my warrior bot to cast charge on my selected target, but I have no idea how to do it.

The following is how I did it.

First, I selected the mob as the target.

Then I typed " /t mywarriorname cast charge(rank 1)"

no response at all. Can some1 plz enlighten me.

Hi,

I've just tested it and it works. This is what I did

1. Ensure that your warrior has the charge spell in it's spellbook :rolleyes:

2. Get a list of bot spells

> /w mywarriorname spells

[mywarriorname] whispers: and here's my attack spells:

[Charge][Heroic Strike]

3. select target

4. cast charge spell

> /w mywarroirname cast [Charge]

if warrior has 'battle stance' aura, it will charge. Note that charge is automatically selected as a combat maneuver in DoFirstCombatManeuver() for warriors. If you just command the warrior to attack the target and it's within range ( between 8.0 & 25.0 feet) it will charge.

EDIT: I am presently working on an issue that I believe is caused by a change they have made in the core. The bots seem reluctant to attack targets. Movement speed is drastically slowed (Although you get the swish sound for the charge) and frequently the bots turn to return to the master, before continuing to the selected target. I have seen the same reponse from pet attacks, so it's not restricted to playerbot code.

Hope this helps

Link to comment
Share on other sites

Updated TalentSpec branch (thanks much to blueboy for all the git help). Developers preview, adds no other value. In fact, it adds a bug: shutting down mangosd.exe results in a hang (probably from mucking about in database.cpp). It remains to be seen if the sql should be mandatory at all - discuss. As is, SQL is non intrusive - just an extra table in Characters DB.

<edit> So to be clear, this preview is for the general changes, the SQL file, and spec / spec errorcheck public inspection. None of the actual using of talent specs is implemented yet. </edit>

/t BOTNAME talent spec (Lists talent specs available to this bot's class, with #, to use below)

/t BOTNAME talent spec # (If valid, uses this # talent spec for this bot (see # from talent spec above))

/t BOTNAME talent spec errorcheck (Does a validity check on all talentspecs in the database, only works for GMs (Tip: '.gm on'))

talent spec # does not even work yet (but at this point wouldn't do anything so no biggie).

talent spec errorcheck checks the database for errors. Do the talents belong to the correct class, and so on.

As for the SQL data, I picked some popular talent specs. For the purposes I went with my best guess (based on description), using a "best for" scheme rather than a "would work for". So the talentspec is great or ideal for those purposes rather than just adequate. Plenty of purposes missing. Add your own talentspecs or just use a close one.

As for One/Zero... Would require minimal adjusting. Glyph code can be removed. SQL can easily be adapted. Talent enums and all talent specs would have to be redone - "not it" ;) Code will not be crippled by an empty DB table (proper - at times even excessive - error checking is in place).

(Current) Caveats:

- Building a talent spec is still very time consuming. Did and re-did it mostly by hand

- mangosd.exe hanging is simply unacceptable. Fortunately this is just a developers preview

- talent spec # command is not working, and I can't seem to find the bug... yet.

- talent spec errorcheck only works if you are a GM... as in ".gm on". Wish it were linked to account level, frankly. Or is that the right way to do it after all?

So feel free to chime in on anything, especially coding style (I tried to copy what I saw) - the sooner mistakes get nipped in the bud, the better.

Link to comment
Share on other sites

Hi kennumen,

First of all thanks for your contribution. I have taken a brief look at the commit and I can appreciate the time you must have put in entering the talent data alone ;) As you point out this is just a preview, so not biggie that it's still a little buggy. I will certainly help out if I can, maybe track down these bugs causing the instablity in the code. I'll get back to you once I've taken a closer look

Cheers

Link to comment
Share on other sites

First of all thanks for your contribution. I have taken a brief look at the commit and I can appreciate the time you must have put in entering the talent data alone ;) As you point out this is just a preview, so not biggie that it's still a little buggy. I will certainly help out if I can, maybe track down these bugs causing the instablity in the code. I'll get back to you once I've taken a closer look

Great to hear someone take interest in what is essentially a side project. Hope the code is up to standards ;) And yes, I tried to make good use of Excel but still a lot of manual data handling (plus fixing logical errors in my Excel formulas *sigh*) My real hope is to finish asap and have it merged into the master. Maintenance is my enemy ;)

On an unrelated note (and not to say I'm not eager for talentspec feedback), a few weeks back I was browsing some WoW information and came across the following on the wow wiki:

Judgement Priority

1 paladin (any spec) - Judgement of Wisdom

2 paladins, 1 melee - Melee judges Wisdom, Holy judges Light

2 paladins, 2 melee - if prot, judge Wisdom, Ret judges Light. If both Ret or Prot, the higher AP should judge Light.

2 paladins, 2 casters - The higher SP should judge Light, or both judge Wisdom to ensure more uptime.

3 paladins, 1 prot - Prot judges Wisdom, all others judge Light.

Now I'm not really into paladins myself, but some of the most fun I've had in WoW was 6 hours instancing with 3 paladins (and a mage first, a shadowpriest second - both rolling needs on all my favorite gear :rolleyes: ), so naturally I wouldn't mind seeing if playerbot could help me re-create this fun. Plus if you get the paladin class right, that's tank + dps + healer in one blow (without having to account for shapeshifting).

Anyway I was browsing the PlayerbotMgr code but couldn't really find any code where same/different classes would sort of adjust for each other (each other's presence, actions, ...) or the master. There was mention of the latter but I guess I missed the actual code of it. I'm not asking for extra code, just confirmation of whether I'm looking in the right place and if so, did I miss the code or is it up to me (or someone with even less patience) to start coding? :)

Link to comment
Share on other sites

As a complete novice in actually playing wow, it has always been a mystery which talents to choose in order to end up with a useful character. To an experienced gamer this choice maybe simple, but for guys like me we need help... lol. I do remember playing a game not unknown to many (NeverWinterNights), religously following a guide to create an elite character. The new talent spec feature promises to be that guide for playerbot users. The author kennumen has only just started developing this code, but I would recommend that you watch this space as believe this will prove extremely useful.

Now I'm not really into paladins myself, but some of the most fun I've had in WoW was 6 hours instancing with 3 paladins (and a mage first, a shadowpriest second - both rolling needs on all my favorite gear ), so naturally I wouldn't mind seeing if playerbot could help me re-create this fun. Plus if you get the paladin class right, that's tank + dps + healer in one blow (without having to account for shapeshifting).

Anyway I was browsing the PlayerbotMgr code but couldn't really find any code where same/different classes would sort of adjust for each other (each other's presence, actions, ...) or the master. There was mention of the latter but I guess I missed the actual code of it. I'm not asking for extra code, just confirmation of whether I'm looking in the right place and if so, did I miss the code or is it up to me (or someone with even less patience) to start coding?

If I understand correctly, your looking for code that will allow a group of bots to adjust their individual abilities, depending on the class makeup of the group. So if you had a group of say three paladins, one would specialize as a healer, another as the tank and the other as dps. If this is so, I can tell you that the code does not exist ( 'yet' ) and if it did, I would expect it to in PlayerbotAI.cpp rather than PlayerbotMgr.cpp

Hope this helps

Link to comment
Share on other sites

As a complete novice in actually playing wow, it has always been a mystery which talents to choose in order to end up with a useful character. To an experienced gamer this choice maybe simple, but for guys like me we need help... lol. I do remember playing a game not unknown to many (NeverWinterNights), religously following a guide to create an elite character. The new talent spec feature promises to be that guide for playerbot users. The author kennumen has only just started developing this code, but I would recommend that you watch this space as believe this will prove extremely useful.

You and those before you deserve all the credit for making mangos and playerbot. Others deserve the credit for doing number crunching and figuring out the ideal talent specs. Even experienced gamers may use a suboptimal build - because they misunderstand, are stubborn, or just because it suits their playing style better. In the end the only right build is one that's fun, but as far as maximum DPS (or whatever purpose) goes, these builds should get you close enough. That said, quite a few purposes are still missing builds so if you find one that's still missing, feel free to fill it in.

If I understand correctly, your looking for code that will allow a group of bots to adjust their individual abilities, depending on the class makeup of the group. So if you had a group of say three paladins, one would specialize as a healer, another as the tank and the other as dps. If this is so, I can tell you that the code does not exist ( 'yet' ) and if it did, I would expect it to in PlayerbotAI.cpp rather than PlayerbotMgr.cpp

I didn't quite explain it well enough. I'm looking for code that will allow individual bots (but two or more bots) to adjust their actions (now I'll cast "Sheep" because we have no rogue to "Sap") according to group make up or even other bot/player's actions.

So if I have a party of 5 wanting to go instancing (let's put PvP and raids aside for now). 3 of them are paladins. Logic dictates it's tank + dps + healer but for the sake of arguement let's just say the other two members are random non-paladin DPS, say rogue and mage (clearly not tanks nor healers). So now clearly 1 paladin is tank (protection) and 1 is healer (holy), the third being DPS (retribution) (because an instance requires 1 tank, 1 healer, 3 DPS).

From the link above:

Judgement Priority

1 paladin (any spec) - Judgement of Wisdom

2 paladins, 1 melee - Melee judges Wisdom, Holy judges Light

2 paladins, 2 melee - if prot, judge Wisdom, Ret judges Light. If both Ret or Prot, the higher AP should judge Light.

2 paladins, 2 casters - The higher SP should judge Light, or both judge Wisdom to ensure more uptime.

3 paladins, 1 prot - Prot judges Wisdom, all others judge Light.

I'm actually fuzzy on what exactly judgements are (you get a buff up then use up that buff as a reagent for a 20 second debuff (judgement ) on the target, I believe), but it's a spell of sorts.

So right now - unless I'm mistaken - all three paladins will act independently of one another, assume Wisdom is the best judgement and all 3 use Wisdom. The chart above states ideally the tank (protection) use Wisdom while the other two (dps + healer) judge Light. This should be a given - not a reaction. Similar with auras.

But I think I've just seen your point. You mean that you should check in PlayerbotAIClass.cpp (or PlayerbotAI.cpp) as to what the other party members are (and if it's PVE), and their combat orders.

Link to comment
Share on other sites

Did a redo of the TalentSpec branch, code is now completely based on master rather than new-ai. Also added in the fix for an error - thanks blueboy. One known error still remains: mangosd.exe will not cleanly shut down. Several TODOs still remain: Properly respond to 'talent spec #' commands, and have bots remember (non-persistent through server restarts, at least for now) your choices as well as have the bots act upon your choices (resettalents if necessary, learn talents, and learn talents as they level). Not sure how to best apply the glyph part from the talent specs yet... A lot more complex than the rest - either only use from inventory if available, or offer to look for one at the Auction House. We'll see (feel free to chime in with ideas / opinions).

Also backported all the 'general' fixes I'd added to TalentSpec to Master, making the talentspec branch a 'clean' branch as well as improving Master. Just a few minor edits though. Went against my character and made a bunch of little commits rather than one big one.

Sidenote: fun view in the network graph :)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use