Can I have 5 MercBots with a side of Pets, pls? To go...

EQ2Emulator Development forum.

Moderator: Team Members

User avatar
Cynnar
Project Leader
Posts: 738
Joined: Sat Sep 27, 2014 1:22 am
EQ2Emu Server: Eq2emulator
Characters: Vlash
Veinlash
Taragak
Cynnar

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by Cynnar » Fri Dec 08, 2017 9:18 pm

I haven't moved into advanced UI modding, but what I know as of right now is if there is a command, then I can create a button to execute that command. As for the visual like the trade window, I haven't done that yet, but the information is there to learn from.

I don't know about the dressing room, it may need to be something different. I will have to look at it when I get home to see if something could be made that looks similar to it.
[ 01000011 01111001 01101110 01101110 01100001 01110010 ]

Follow on:
Twitter Facebook

Contact me:
PM Discord chat email

Hardware: the parts of a computer that can be kicked

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by Jabantiz » Sat Dec 09, 2017 1:05 am

Xinux found patch notes that showed the window was added to the game almost a year before DoV launched, so with his help on irc we managed to locate the correct opcodes so /bot customize should also work on DoV clients now. In the process we managed to identify several other opcodes for DoV, though they aren't important.


Also forgot to mention that working on bot equipment exposed a logic error that resulted in the class check on items always returning true, that has been fixed now.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by John Adams » Mon Dec 11, 2017 8:20 am

Aww, you mean my wizard cannot wear full plate anymore? :)

User avatar
Cynnar
Project Leader
Posts: 738
Joined: Sat Sep 27, 2014 1:22 am
EQ2Emu Server: Eq2emulator
Characters: Vlash
Veinlash
Taragak
Cynnar

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by Cynnar » Tue Dec 12, 2017 9:49 am

WHAT! I could have decked out my Necro in plate? Is there a way we can revert that check? :)
[ 01000011 01111001 01101110 01101110 01100001 01110010 ]

Follow on:
Twitter Facebook

Contact me:
PM Discord chat email

Hardware: the parts of a computer that can be kicked

tyrbo
Team Member
Posts: 271
Joined: Thu Feb 18, 2016 12:33 pm

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by tyrbo » Tue Dec 12, 2017 10:25 am

You can also equip 2H while having a 1H in the offhand and things like that.

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by Jabantiz » Wed Dec 13, 2017 6:22 pm

So just an update, I got to the ai a few days back and progress has slowed considerably, mainly when it came to spells. The spell system was not set up to handle NPC's that are friendly so they couldn't cast heals on the player, also when buffing the spell targets got changed in the implied targeting code and would end up having the bot buff itself instead of the player. These have both been resolved and would have needed to be fixed eventually for mercs, though still more changes will be needed when mercs are added.

There is also the situation with determining what a spell is in code for the ai, no easy way to do that with the data so I ended up putting a `spell_type` field in the spells table that will require it being set for bots to use. This can (and should) be ported to NPC's so their casting is better then what it currently is. Sadly this will require more data entry for spells to be usable by bots.

Also fixed some dupe exploits with trading, both with another player and with bots.

I'm still working on the default ai for bots but it should be nearing a point where I can commit my changes to dev svn, though I am sure there is still a lot of issues I haven't caught yet.
tyrbo wrote: Tue Dec 12, 2017 10:25 am You can also equip 2H while having a 1H in the offhand and things like that.
I did submit a partial fix for this a little while ago, though it is still possible to equip both in certain situations, just a little harder now.

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by Jabantiz » Fri Dec 29, 2017 8:00 pm

So long delay from my last update, most of the work was on AI and fixing/adding stuff from feedback, mainly from Xinux. I have committed this to Dev svn and it should be live on the emulator server now. Some cleanup work to do mainly in commands, got lazy and stopped making new sub commands and started dropping it all in the /bot command so that needs to be cleaned up and split into sub commands eventually.

The other major feature that got included with this is player trading. I did very limited tests on this so I am sure there is issues and it will need testing.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by John Adams » Sat Jan 13, 2018 8:42 pm

btw, I hope to get back to playing with this some, soon as I am done destroying my private network and virtual machines :) If I haven't done so yet, thank you beyond words for starting this and hammering something usable out in such a short time. I can see this coming in very handy!

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by John Adams » Sat Jul 28, 2018 3:17 pm

Hey BotMaster :) Couple of questions came up about bots in general. One I may have asked in IRC, but can't remember so we'll put it here for reference.
  1. Can Bots be tied into the Factions system?
    Eg., if I have an evil-aligned bot and wander near a good-aligned NPC, can mayhem ensue?
    Other ideas for this is to Friendship/Rivalry your companions to where they literally will stop helping you if you piss them off enough :D
  2. Can Bots be "scripted"?
    Like, can they use SpawnScripts, or would they need a whole new system of their own (BotScripts)?
    I would be interested in scripting encounters with my own bots. Dialogs, maybe even companion quests, or have them bark out some line when you come near an area of interest to them... etc.
  3. How are bot movement/follow tracked? Do they just watch the player x,y,z and do some quick math to put them near the player?
    I've played a ton of Dragon Age and Mass Effect recently, and I think the AI for Dragon Age is far more realistic as far as movement goes. For example, in Mass Effect for normal walking around, my companions always seem to be at my rear left and right, static. In Dragon Age, the 3 companions are behind me, left, center, right, but when I move around, they sometimes just wander around on their own a bit (if you recall what I'm talking about). It adds a certain realism and intelligence to them, at least to me :)
I think the building of the bots, customizing their appearance and gear, giving them Abilities/Spells is all amazing work. We did discuss "Tactics" a while back, I am still thinking on that one... not a high priority for any of this stuff because it's really "out of scope" of standard EQ2Emulation. But, fun nonetheless :)

Thank you and Xinux again for diving into this 8 mos ago (has it been that long?)

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by Jabantiz » Sat Jul 28, 2018 3:58 pm

John Adams wrote: Sat Jul 28, 2018 3:17 pm Can Bots be tied into the Factions system?
Assigning them a static faction like all other npc's would be problematic at best, mainly what if the player becomes KOS to that faction. I think they would need faction like a player where they could have a list but at the same time the player is not considered in the faction so they never end up KOS with their owner.
John Adams wrote: Sat Jul 28, 2018 3:17 pm Other ideas for this is to Friendship/Rivalry your companions
I think this would be best as a separate variable we could make it part of the system and store it in the bots table or the current lua history functions could be used and it would be saved in that lua history table.
John Adams wrote: Sat Jul 28, 2018 3:17 pm Can Bots be "scripted"?
Yea that is something I wanted to do just never got around to it yet. Really I wasn't sure the best way to do it yet as this would be more for static companion type bots and not the custom made bots.
John Adams wrote: Sat Jul 28, 2018 3:17 pm How are bot movement/follow tracked? Do they just watch the player x,y,z and do some quick math to put them near the player?
Same way I did pets really, if the range between the bot and the player gets to big run to the players position until the gap closes to within the allowed amount then stop.

Any thing more advanced then that, like formations, will probably need a better movement system in place then what we currently have as it would probably end up a mess trying to put it in the current movement code.
John Adams wrote: Sat Jul 28, 2018 3:17 pm We did discuss "Tactics" a while back, I am still thinking on that one
Yea I would still like to see something like that just need to think it over carefully so made its current AI for now which is better then what we had for NPC's just requires some setup on spells. Giving the player control over the AI with tactics would be better though.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by John Adams » Sun Jul 29, 2018 10:02 am

Cool, thanks Jab. Additional thoughts:

Factions and Scripting:
I know this is going a bit overboard, but I am thinking of the true nature of "AI" here :) What if the bot you /bot create starts at a neutral faction level (call it zero) and the more you do things they like, the higher your faction goes until a threshold is reached. Like DA:O, the bot gets bonuses to abilities as it increases. For doing things the bot disapproves of, the faction is lowered until the only threshold is they leave the party. It could be a simple counter of -100 through +100, with thresholds at 20, 40, 60, and 80.

For the concept of "static companions", I had thought about that too... making pre-defined companions (just like we would any NPC) that is recruitable via questing (same way you get companions in DA) and players cannot /bot delete them, they can just be sent away. This probably falls more into Merc territory though, but with some persistent tracking of things like Faction that is affected by anything the player does even when the static bot is not around (ie., if the companion is an Elf, and you slaughter a bunch of elves, they'll know!!)

Scripting for your "generic bot" could be nothing more than idle conversation, or racially based (like a Barbarian bot approaching a barbarian point of interest), and of course handling of things like how to react on Kills, health changes, etc. They could be like our Common/* spawnscripts.


Tactics:
Resurrecting our old discussions about Tactics - we talked briefly about using the player Social/Macros as a way to chain bot behaviors together - though in it's current form, it would require a button push. While I'd love to use the UI to build stuff like that, I know it's likely impossible, so having /slash commands to show a bot's current "Tactics" in a text list in chat might work, though difficult to manage. Something like:

Code: Select all

/bot tactics {target|name|id} {add|delete|insert} {tactic_id} {condition} {action}
Where
  • {target|name|id} is exactly what it seems
  • add - adds a new tactic to the end of the list
  • delete - deletes a tactic by "tactic_id"
  • insert - inserts a tactic before "tactic_id"
{condition} {action} will probably be the hardest thing to implement. You're basically offering static conditions to execute static commands. While the list is finite, it's still like a mini-LUAScript :) Using DA tactics as an example:

Code: Select all

/bot tactics Bob add 0 {static-condition} {static-action}
Where
  • {static-condition} is something like "Ally:Health:<50%", or "Enemy:Clustered:At Least Two"
  • {static-action} would then be "Use Ability:Heal", or "Use Ability: Mesmerize"
Because our conditions and actions are static, they could be enum'd so the full command would be easier to write:

Code: Select all

/bot tactics list conditions ally
1: Ally:Health:<100%
2: Ally:Health:<75%
3: Ally:Health:<50%
4: Party:Two or more party health:<25%

/bot tactics list actions ally
1: Use Ability:Heal
2: Use Ability:Mighty Heal
3: Use Ability:Group Heal

/bot tactics list conditions enemy
5: Enemy:Clustered:At Least Two
6: Enemy:Clustered:At Least Three
7: Enemy:Clustered:At Least Four
8: Enemy:Clustered:At Least Five

/bot tactics list actions enemy
4: Use Ability: Fireball
5: Use Ability: Mesmerize
6: Use Ability: Deathtouch

/bot tactics Bob_the_Healer add 0 3 2
/bot tactics Bob_the_Healer add 1 4 3
/bot tactics Mary_the_Nuker add 0 5 4
/bot tactics Mary_the_Nuker add 1 8 5
I'm sure it is far more complex than that, but just some things I was mulling over. Another option is of course to allow a Web-based editor, but that opens the door for scary things :)

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by Jabantiz » Sun Jul 29, 2018 4:17 pm

To set tactics a custom ui could be done for that as it would just be a slash command. We could then put the conditions and actions into a drop down so they can be selected and hit the button to send the command with the info.

Displaying on the other hand would have to be either the chat window or maybe the book. We couldn't make a nice custom window for that unless we take over a packet and another window like we discussed for other custom ui's.

If the faction is just going to be for reputation then it would probably be better to give the character bot table a new sint8 to track it from -100 to 100. again this would be more for static companions though.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by John Adams » Mon Aug 13, 2018 7:52 pm

Off-topic, but I am playing my 6th playthrough of Dragon Age: Origins just now (knocking out the achievements) and all these years I never played a Dwarven origins character (why? they are so unsexy) but after doing the commoner recently, I just this very moment realized something.
ABBC3_SPOILER_SHOW

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by Jabantiz » Mon Aug 13, 2018 9:11 pm

Yea I noticed that too when I did all the origins. After my first play through I went and played all the origins back to back before making a new character to play through the entire game again.

I think that is the only instance where that can happen, has been years but I think only those two origins overlap in the slightest.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Can I have 5 MercBots with a side of Pets, pls? To go...

Post by John Adams » Tue Aug 14, 2018 11:17 am

Yeah, having just played them all myself, the Mage one just sucks terribly (I wish I could set Jowan on fire) and the Elves are just too whiny and bitter. Sure, they got handed a raw deal, but get over it. It's been 1,000 years.

The Dwarven Noble, by far both in content and theatrics, was the best - right next to Human Noble, which is far more tragic and sets you up to really want revenge :) I'm totally willing to play through entirely as the Dwarf Noble, because I understand the entire Orzammar part of the game is different. You can probably see why.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest