Page 2 of 2

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

Posted: Fri Dec 08, 2017 9:18 pm
by Cynnar
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.

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

Posted: Sat Dec 09, 2017 1:05 am
by Jabantiz
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.

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

Posted: Mon Dec 11, 2017 8:20 am
by John Adams
Aww, you mean my wizard cannot wear full plate anymore? :)

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

Posted: Tue Dec 12, 2017 9:49 am
by Cynnar
WHAT! I could have decked out my Necro in plate? Is there a way we can revert that check? :)

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

Posted: Tue Dec 12, 2017 10:25 am
by tyrbo
You can also equip 2H while having a 1H in the offhand and things like that.

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

Posted: Wed Dec 13, 2017 6:22 pm
by Jabantiz
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.

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

Posted: Fri Dec 29, 2017 8:00 pm
by Jabantiz
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.

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

Posted: Sat Jan 13, 2018 8:42 pm
by John Adams
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!

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

Posted: Sat Jul 28, 2018 3:17 pm
by John Adams
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?)

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

Posted: Sat Jul 28, 2018 3:58 pm
by Jabantiz
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.

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

Posted: Sun Jul 29, 2018 10:02 am
by John Adams
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 :)

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

Posted: Sun Jul 29, 2018 4:17 pm
by Jabantiz
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.

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

Posted: Mon Aug 13, 2018 7:52 pm
by John Adams
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

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

Posted: Mon Aug 13, 2018 9:11 pm
by Jabantiz
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.

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

Posted: Tue Aug 14, 2018 11:17 am
by John Adams
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.