|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Development::Bots Forum for bots. |
|
|
|
02-22-2016, 05:23 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
Here's some work I've been doing with 'adaptive targeting' in HealRotation:
Quote:
Originally Posted by EverQuest Log
[02-22-2016 :: 15:57:58] [Error] HealRotation::bias_targets() - *** Post-processing state ***
[02-22-2016 :: 15:57:58] [Error] HealRotation Settings:
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_interval_ms = 3000
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_next_cast_time_ms = 567788 (current_time: 567792, time_diff: 4)
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_next_poke_time_ms = 568042 (current_time: 567792, time_diff: -250)
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_fast_heals = false
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_adaptive_targeting = true
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_casting_override = true
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_casting_target_poke = true
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_active_heal_target = true
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_is_active = true
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_member_list.size() = 3
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_cycle_list.size() = 1
[02-22-2016 :: 15:57:58] [Error] HealRotation::m_target_list.size() = 6
[02-22-2016 :: 15:57:58] [Error] (std::shared_ptr<HealRotation>::use_count() = 9
[02-22-2016 :: 15:57:58] [Error] HealRotation Members:
[02-22-2016 :: 15:57:58] [Error] (1) Druidbot (hrcast: F)
[02-22-2016 :: 15:57:58] [Error] (2) Clericbot (hrcast: T)
[02-22-2016 :: 15:57:58] [Error] (3) Shamanbot (hrcast: F)
[02-22-2016 :: 15:57:58] [Error] HealRotation Cycle:
[02-22-2016 :: 15:57:58] [Error] (1) Shamanbot
[02-22-2016 :: 15:57:58] [Error] HealRotation Targets: (sort type: 101)
[02-22-2016 :: 15:57:58] [Error] (1) Druidbot (hp: 4.2%, at: 2, dontheal: F, crit(base): T(T), safe(base): F(F), hcnt(ext): 1(1), hfreq(ext): 0.332889(0.015872))
[02-22-2016 :: 15:57:58] [Error] (2) Shamanbot (hp: 70.8%, at: 3, dontheal: F, crit(base): F(F), safe(base): F(F), hcnt(ext): 2(2), hfreq(ext): 0.221852(0.028979))
[02-22-2016 :: 15:57:58] [Error] (3) Wizardbot (hp: 97.2%, at: 1, dontheal: F, crit(base): F(F), safe(base): T(T), hcnt(ext): 3(3), hfreq(ext): 0.198124(0.039924))
[02-22-2016 :: 15:57:58] [Error] (4) Clericbot (hp: 30.8%, at: 4, dontheal: F, crit(base): F(F), safe(base): F(F), hcnt(ext): 1(1), hfreq(ext): 0.166528(0.015150))
[02-22-2016 :: 15:57:58] [Error] (5) Testbotb (hp: 2.4%, at: 3, dontheal: F, crit(base): T(T), safe(base): F(F), hcnt(ext): 0(0), hfreq(ext): 0.016667(0.008333))
[02-22-2016 :: 15:57:58] [Error] (6) Aluna (hp: 1.3%, at: 2, dontheal: F, crit(base): T(T), safe(base): F(F), hcnt(ext): 0(0), hfreq(ext): 0.016667(0.008333))
[02-22-2016 :: 15:57:58] [Error] Bot::AI_Process() - Casting succeeded (m: Shamanbot, t: Druidbot) : AdvHR(true)
|
'sort_type: 101' resolves to Highest Heal Frequency ( 0.332889Hz for Druidbot in this case)
__________________
Uleat of Bertoxxulous
Compilin' Dirty
|
|
|
|
03-05-2016, 05:53 AM
|
Fire Beetle
|
|
Join Date: Jul 2010
Posts: 15
|
|
This is pretty awesome
|
03-05-2016, 02:17 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
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.
__________________
Uleat of Bertoxxulous
Compilin' Dirty
|
03-05-2016, 04:06 PM
|
Fire Beetle
|
|
Join Date: Jan 2013
Posts: 17
|
|
Another voice of appreciation for this being worked on. Thank you.
|
03-05-2016, 04:42 PM
|
Fire Beetle
|
|
Join Date: Jul 2010
Posts: 15
|
|
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.
|
03-06-2016, 04:04 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
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.)
__________________
Uleat of Bertoxxulous
Compilin' Dirty
|
03-07-2016, 08:53 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
Latest and greatest uploaded to git..hopefully, down to the last few command codings and some run-throughs on alpha testing.
__________________
Uleat of Bertoxxulous
Compilin' Dirty
|
03-08-2016, 01:34 AM
|
Fire Beetle
|
|
Join Date: Jul 2010
Posts: 15
|
|
Awesome I will definitely check it out, thanks Uleat.
|
03-09-2016, 10:31 PM
|
Discordant
|
|
Join Date: Jun 2014
Posts: 284
|
|
Very nice ill test it out if you need people to test
|
|
|
|
03-16-2016, 09:36 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
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 {
ABT_None = 0,
ABT_Target,
ABT_ByName,
ABT_OwnerGroup,
ABT_BotGroup,
ABT_TargetGroup,
ABT_NamesGroup,
ABT_HealRotation,
ABT_HealRotationMembers,
ABT_HealRotationTargets,
ABT_Spawned,
ABT_All
};
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.)
__________________
Uleat of Bertoxxulous
Compilin' Dirty
|
|
|
|
03-17-2016, 10:04 AM
|
Administrator
|
|
Join Date: May 2013
Location: United States
Posts: 1,594
|
|
That's actually really cool, it's a rather advanced way of doing it, but at the same time it's simplistic if you know how enumerators work. Good work Uleat, can't wait to see all your work make its way to the main branch.
|
03-22-2016, 05:11 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
Does anyone know if there was an issue with the old command #bot pull?
I'm using the exact same calling method and can't seem to agro anything.
EDIT: I found it..surprised this ever did work...
Code:
SendItemAnimation(other, Ammo, SkillArchery);
DoArcheryAttackDmg(GetTarget(), rangedItem, ammoItem);
'other' is the mob passed to do the attack on...
But, when doing the actual damage, GetTarget() is called - which is nullptr...
Duh!
__________________
Uleat of Bertoxxulous
Compilin' Dirty
Last edited by Uleat; 03-22-2016 at 05:18 PM..
|
03-24-2016, 09:44 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
Link to the broken news release (It poofed off of the home page...)
http://www.eqemulator.org/forums/sho...01&postcount=1
There are somes feature that I left 'active' .. but, crippled, until I can get into the actual bot code and find the cause of their failures.
I will eventually get around to creating a wiki page to help decipher what all of the functions do - so that people may create their own commands.
__________________
Uleat of Bertoxxulous
Compilin' Dirty
Last edited by Uleat; 03-25-2016 at 11:16 AM..
|
03-25-2016, 10:22 PM
|
Discordant
|
|
Join Date: Jun 2014
Posts: 284
|
|
Uleat the bot pull never worked for me
|
03-25-2016, 10:36 PM
|
Discordant
|
|
Join Date: Jun 2014
Posts: 284
|
|
Testing out some of these new commands .... ^follow does not work... set my bot to guard and now I cant get him to follow me again
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 11:35 PM.
|
|
|
|
|
|
|
|
|
|
|
|
|