Bot Commands
I need some feedback from any of you running a bots-enabled server.
I'm currently working on migrating bot commands into their own files and implementing them like our 'normal' commands. 1) I'm looking to use ^ in place of #bot to give direct access to bot commands. (It doesn't have to be the caret..but there are limitations.) 2) I'd like to clean-up the command tokens..but, I know that may cause a lot of issues with current setups - especially client macros. Note: the '#bot' command will still be accepted..but, will be redirected to the new handlers. |
tbh i couldnt care less about the command lingo; "#bot" was never an issue for me or players; since i also enabled #peqzone (very low pop server) everyone was used to use "#" prefixes beside.
most of the feedback about bots I received and my own impressions pretty much all point towards bot AI and too few commands to work around it (i.e. shaman sometimes slow spamming unslowable mobs, cleric healing not efficient enough/or focused enough on MT) missing commands imho: -#bot group stance raid/normal (giving me playing the tank a few seconds headstart to build aggro) or in case MT is a bot (giving the designated tank a few seconds headstart to build aggro) -#bot group autopull [delay after each pull] [range] (in combination with an exp fix to only get exp when the player is on the hatelist) -#bot group priorityhealtarget [targetname] [%hp] just my 2cp :) -#bot group autocure [on/off] |
Are you talking about just ^ or /say ^? Not sure how you're talking about it being parsed(?)
|
Anything that comes in the 'normal' say channel will be parsed:
[Expired] Just like the normal command processing..but, it's essentially giving two command operators - one for normal, one for bots. I haven't tested any of this yet..but, I should be able to redirect '#bot' to the new handler as well: [Expired] That will keep current setups compatible..but, will be a little more expensive to use. Once this and another update get settled, we can look into updating bots. But, these two updates are pretty big changes that (I feel) need to take place before moving on. |
Either command is good, but I like that it's shortened. If it could be parsed on any channel would be a huge benefit as always having /say or in that channel is annoying.
Celestial |
Actually..now would be a good time to implement some new bot commands.
I didn't realize that it would be this involved..and, adding new commands shouldn't be that difficult with the level of converting that I'm doing. Bot commands are open to any suggestions since they don't affect 'normal' game-play. If you submit something and don't see it in the final release, message me and I'll take a look at it again. Anything that requires a redesign of a current system or extensive additions to implement, probably won't make the final release. Those should really be added as separate revisions. |
Haven't been able to play in quite a while so forgive me if this is already a command, but my biggest gripe was caster bots joining tank bots in racing up to mobs to attack. No biggie at level 10ish but when mobs start raging the stupid casters are going to get wiped out. I would like the caster bots to remain in back while tank bots run up to the mob.
|
I'm pretty sure the 'follow' code is to blame for that..it can be looked at and adjusted. The bots are probably too close before they engage.
Probably just need to check distance during combat and adjust back to a proper casting range. |
Ok...
I haven't heard any feedback concerning the actual tokens (command names) .. so, I'm probably going to revamp those as well. There's just too much over-lapping context with certain commands that it complicates things when trying to add new/similar commands. This will be a one-time deal and will take some getting used to by the players..but, I think it will be for the better in the long run. |
Here are a few commands or ideas that I could see improving the bot use experience.
Definable area as home base. This could be used to stop bots from following you out on a pull. I would think being able to set a distance that bots could roam form camp would also be useful so that they could still kill a running mob for example. Stop bots from attacking as soon as anyone in the group gets aggro no matter how far away. I am not sure on best fix for this but setting the main assist attacking being the trigger for bots to attack could work. Bots casting buffs over and over because they will not land for some reason. Not enough buff slots open or other spells preventing them. Maybe have a setting to turn on only major buffs like haste and KEI Or best 1-5 buffs only? Or if it dose not land then do not try again unless asked to refresh buffs? I have seen enchanters pull massive aggro when a mob is unslowable or very resistant by chain casting slow. I am not sure how one would solve this. Maybe add in stances that would be more likely to give up after a few fails? Add follow other command for groups with a mix of humans and bots. This could be useful to divide your bots up by type to keep them safe or in the mix depending on what you want. So a enchanter could follow a healer or nuker class. Rouge could follow another melee class and so on. I realize I did not spend a lot of time writing this out so if any hard to understand let me know and I will elaborate when I have more time/sleep. |
This is why I was asking about the command tokens: [Expired]
Naming is crucial to avoid unneeded parameters. I'm implementing a rule to allow 'normal' spell usage or to force the spell target to the bot owner/owner's group. |
Link to current state of bot_command.cpp: http://wiki.eqemulator.org/i?Module=...Paste=2lR94iYW
(Expires in one week) The update-to-date command handlers start around line 2400. Anything with /*xxxxx*/ preceeding the function is up-to-date. At this stage, I still need to compare to the old handlers to see if adjustments need to be made and then I move on to tweaking and finalization. |
hi,
First i would like to thanks you for the great job you all do on the Emu. AKKA, your wikki "setting windows server" work like a charm as your complet repack thanks alots :) What relation with subject in here ? After installing Repack i discover that there wasnt BOT option .. damned i will never see POT alone :( So i took some time to install a windows server folowing step by step AKKA wiki. Sweet i have Bots ....but i cant create raid group .... long live to Quarm. I will never have enough time to involve in quild or other online solution to might see Quarn one day . So as playing kinda with bot server i would say could you pls implement bot raid option An other think that could be really fun on which that could completly change bot way of using would be #Bot take place, that could put you through the bot command, like you do with your toon. #Bot release to go back to your toon. I know .. or only imagine this might be hugh development and change on the emu but the idea is cool Best regards Long live to Emu. PS : sorry for my horrible typing as i am french and english is not my mother tong Quarn, i ll beat you one day ..... |
Both of those suggestions will take system redesigns to accomplish.
Bot raids may be an option at some point in the future. Not sure about le substitut du client for bots. Nous devons adapter nos modes de pensée à la nouvelle système. |
Ok...
Here are the first-round spell scripts for bots to use through the new command system: https://github.com/EQEmu/Server/tree..._spell_scripts Feedback is appreciated! :D |
I am curious, with the #bot gate cmd, the actual ports, (druid), I couldn't find any of those
in the bot spell tables (707 for druid). I am wondering exactly what that cmd is using to port it's owner ? Currently, a lvl 51 monk with a druid bot, can port to wall of slaughter. Thats a lvl 64 spell. I figured you must have that porting set up some different way ? Just curious, hahaha |
Those are coming directly from the `spells_new` table.
The bot spells table are explicitly for use by the bot ai. EDIT: (Not sure if that is suppose to be true or was true at some point, however...) This is a draft script for those spells: https://github.com/EQEmu/Server/blob...art_spells.sql |
OH ok, I was also wondering, (long shot here), is it possible to stop all of the bot pets
from being spawned at all ? Even if I have to alter/recompile the source if needed. I don't want to stop players from being able to summon pets, just the bots. |
I have very little experience with the spell casting ai..although...
You could 'try' remarking out this line: https://github.com/EQEmu/Server/blob...lsai.cpp#L1007 and its scope closer here: https://github.com/EQEmu/Server/blob...lsai.cpp#L1019 to see if that works. That would keep you out of the database modifications. |
Quote:
what happens. Its a quick fix for the bot pet agro thing. Players don't seem to care about bot pets, if they are just going to wreak havoc, haha |
Quote:
have existing bots with pets and want to keep them. What it does now, any existing bots will still summon that mean old agro pet, but if one deletes the bot and creates a new one, it will not spawn a pet. THANK YOU :) |
If anyone is keeping up with this thread: https://github.com/EQEmu/Server/tree/dev_bot_commands
That's a pre-alpha version of what's coming. There's still a lot to do and even more tweaking afterwards. It will compile and the system itself can be tested..but, it should not be run on a live server - nor should a live database be used as data corruption is almost certain. The old method of using '#bot command' still works through a re-director..though, all usage/help examples use the new '^command' syntax. |
Still waiting for a power supply for my test box, its been down for a week now while I wait for the
"shipper" lag to get the new one to me, but I would be more than willing to test the new stuff out, when I get that box running again. Personally, whether it's # or ^ or @ to play with bots, I have no special preference, it's just another key on the board, hahaha The overall function of the bots is where my "wishlist" is. (Joining raids, casters staying at camp, getting me coffee, etc), you know, the basics, lol |
You missed one of the 'basics' .. but, I don't think it's appropriate conversation for a public forum :P
|
Quote:
|
Ok..I think that I've got the basics encapsulated to the point of not needing to replicate checks across every command:
Code:
void bot_command_bind_affinity(Client *c, const Seperator *sep) Still needs to be fully tested/tweaked..but, it should make adding new commands easier in the long run. |
Status Update:
75% coding complete.. 25% alpha testing complete.. |
We appreciate your time and dedication to this, we use bots on our server and this will greatly improve the experience.
|
Np - benefits me as well :)
Here's a log record of bottogglearcher and findaliases command use: Quote:
EDIT: And this using bot command list with filters: Quote:
EDIT2: This shows the #bot command redirect and bot sub-command implementation: Quote:
On sub-commands, almost all actions are implemented within a 'command' function. These 'sub-commands' essentially form a command 'group.' |
The new HealRotation class appears to work:
Quote:
|
Here's some work I've been doing with 'adaptive targeting' in HealRotation:
Quote:
|
This is pretty awesome
|
This is still actively being worked on.
I had to go back and fix inadequate sorting predicates in three systems..but, they appear to be working much better (more accurately) now. |
Another voice of appreciation for this being worked on. Thank you.
|
Hey Uleat,
I just wanted to say, I also think being able to invite a bot group leader to a raid would be pretty sweet. Im a database / networking engineer. I have dabbled with server/client applications before in python. I have never really delved into C++ before but I am starting to think I should. Would you mind pointing me to the files that handle raid code? If you ever need anything from my area of expertise let me know. Thank you for your epic amount of time on this project. |
I haven't looked at the raid code enough to know what to tell you...
I thought that some people had said that inviting a bot owner into a raid works..but, I haven't tested that myself. I may delve into that at some point..but, not before the new command system, and likely inventory system, are up-to-speed. I'm down to just a few commands that need to be coded..then I need to finish up on the command spell discriminator and sorting criteria. (Sorting criteria dictates what spell is available to cast at a given level based on given circumstances and options. My sorting predicates work much better now..but, that doesn't mean that their casting priority is optimal.) |
Latest and greatest uploaded to git..hopefully, down to the last few command codings and some run-throughs on alpha testing.
|
Awesome I will definitely check it out, thanks Uleat.
|
Very nice ill test it out if you need people to test
|
One of the features in this new command system is a collection of functions contained within the namespace ActionableBots.
This is basically a 'filtering' system that takes command line arguments and returns a list of appropriate bots. Currently, the list contains the following filters: Code:
enum ABType { Not all commands use these filters..nor do those using them allow the use of all filters. But, it does provide a somewhat standardized approach and facilitates changes rather well. One of the cases where this approach is really nice is in '^follow' Any of the allowed filters can be made to follow a single target. In particular, a single bot 'byname' can be made to follow another bot in the same group. This eliminates 'bot clumping' while traveling. (This particular command also has a 'reset' option that will return 'selected' bots to their default follow assignments.) |
All times are GMT -4. The time now is 07:27 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.