EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Bots (https://www.eqemulator.org/forums/forumdisplay.php?f=676)
-   -   EQoffline, bots and more.. (https://www.eqemulator.org/forums/showthread.php?t=22667)

Zengez 07-01-2007 12:15 PM

Any chance to get an adapted version to the 6/19 version of the emu, so functions like #traindisc and all those other fixes work in the bot version? Not really sure how extractable your work has been or if that would be a huge PITA.

Magoth78 07-01-2007 12:16 PM

Last update for the week-end:

-- The way the bots and their pet were assisting has been reworked a bit.
-- New command "#bot ai mez [target]". If grouped with an enchanter, when you will use this command, the enchanter will try to mez the target. Careful, it's based on a random timer so the command isn't always available.

More info on website.

Later,
Mag

Magoth78 07-01-2007 12:22 PM

Quote:

Originally Posted by Zengez (Post 134444)
Any chance to get an adapted version to the 6/19 version of the emu, so functions like #traindisc and all those other fixes work in the bot version? Not really sure how extractable your work has been or if that would be a huge PITA.

I can't make it, that's too much work for the time I've atm.

Magoth78 07-06-2007 09:12 AM

Hello,

I've started to work on the raids.

The raid related commands are:

#bot raid help - will show this help
#bot raid create - will create your raid (you will be the raid leader)
#bot raid group create [target] - create a group in order to make it joining your raid (your target will be the leader, basically a bot).
#bot raid invite bot [target] [group: 1/2/3/4] - Invite your target into the group [1/2/3/4]
#bot raid link group [target group] - Add target's group into your raid.
#bot raid remove [target's group] - Remove target's group from your raid.
#bot raid disband - Disband the raid.
#bot raid order maintank [target] - Your target will be flagged as the main tank.
#bot raid order secondtank [target] - Your target will be flagged as the second tank.
#bot raid order maintarget [target] - Your target will be flagged as the main raid's target.
#bot raid order secondtarget [target] - Your target will be flagged as the second raid's target.
#bot raid order grouptarget [group: 2/3/4] [target] - Your target will be flagged as the target of the group [2/3/4].
#bot raid order task [attack/guard] [group: 2/3/4] - You will give a specific task [attack/guard] to a specific group [group 2/3/4].
#bot raid order task [follow/assist] [group: 2/3/4] [group: 1/2/3/4] - Give a task [follow/assist] an other group.

How will that work:

Once you've created your group, you are able to create a raid.
1/ You use "#bot raid create". You become the raid leader and your group is the first group of the raid.
2/ You need to create others groups (A raid = 4 groups max). To do that, you need to target a bot wich isn't already grouped and use the command "#bot raid group create". He will become the leader of its group.
3/ You can add a member to the groups 2/3/4 by using the command "#bot raid invite bot [target] [group: 2/3/4]"
4/ You need to link the group to the raid with the command "#bot raid link group" while targetting a member of the group that you want to link.
5/ And finally you can flag the raid's tanks, assign the raid's target(s) (to the raid or to each group of the raid), give particular tasks to each group, etc... with the "#bot raid order" commands.


All the commands and the functions are coded. Now, I have to do some testing and I have to modify the bot's AI.

Good day,
Mag

John Adams 07-07-2007 05:34 AM

Very exciting! I still wish I could get mine to compile. ~cries~

I wasn't going to trouble you with my error, but it seems catastrophic. I am not sure how I managed this...
Code:

/home/eqemu/build/EQEmu-EQOffline/zone/npc.cpp:563: undefined reference to `Mob::BOT_Process()'
npc.o(.text+0xa0d):/home/eqemu/build/EQEmu-EQOffline/zone/npc.cpp:565: undefined reference to `Mob::PET_Process()'
npc.o(.gnu.linkonce.r._ZTV3NPC[vtable for NPC]+0x16c): undefined reference to `NPC::Bot_AI_IdleCastCheck()'
npc.o(.gnu.linkonce.r._ZTV3NPC[vtable for NPC]+0x170): undefined reference to `NPC::Bot_AI_EngagedCastCheck()'
pets.o(.gnu.linkonce.r._ZTV3Pet[vtable for Pet]+0x16c): undefined reference to `NPC::Bot_AI_IdleCastCheck()'
pets.o(.gnu.linkonce.r._ZTV3Pet[vtable for Pet]+0x170): undefined reference to `NPC::Bot_AI_EngagedCastCheck()'
horse.o(.gnu.linkonce.r._ZTV5Horse[vtable for Horse]+0x16c): undefined reference to `NPC::Bot_AI_IdleCastCheck()'
horse.o(.gnu.linkonce.r._ZTV5Horse[vtable for Horse]+0x170): undefined reference to `NPC::Bot_AI_EngagedCastCheck()'
collect2: ld returned 1 exit status
make[1]: *** [zone] Error 1

This is the latest links from your site, clean tar extract, and I don't think I changed anything in the makefiles this time (like removing eqcollector or whatever). Compiling on Linux FC4, so it's older... mysql 4.1, etc.

Any clues? I had it compiled once before on Linux, but could never log in. Now, I cannot even get it to make. :(

Magoth78 07-07-2007 06:34 AM

You need to add BotAI.cpp, BotAI.h, PetAI.cpp and PetAI.h to your Makefile.

Magoth78 07-07-2007 04:46 PM

Update:

-- Bots/pets's assists totally reworked.
-- Fixed the random crashes when a bot died. (should be ok now)
-- Rewrited all the things related to groups (I think you can now have 2 differents clients in a group with bots - need more tests though).

-- And very important... Raid is almost finished!
You can create your raid, create other groups, adding bots to the other groups, setting raid main tank, second tank, main target, second target, targets to be mezz'd, etc...
I've tested the raid thing against Trakanon and it worked perfectly. All the healers healed the main tank in priority. it this one died, they could have healed the second tank. Everything worked fine till I took too much aggro on Trakky and died pretty quickly :P as you can notice... the bot did their job, the only human on the server sucked and caused the raid to wipe... so common :D

The next days, I will finalize all the functions related to raid then I will make a video to show how fun it is.
And finally, the final task will be to make bot doing the melee damage depending of the weaps they have, that will make the game more realistic.

G'day,
Mag

John Adams 07-07-2007 05:10 PM

Quote:

Originally Posted by Magoth78 (Post 134597)
You need to add BotAI.cpp, BotAI.h, PetAI.cpp and PetAI.h to your Makefile.

Wow, that simple huh? This was the source package from your site though, so I thought it had everything in the makefile. :) sorry for not doing my due diligence first heh. I'll give it a whirl.

Magoth78 07-07-2007 05:25 PM

Yes, thoses files are in the sources package. They are added into the Visual Studio's project but not in the linux's project.

John Adams 07-07-2007 05:42 PM

My sincerest apologies, Magoth... I posted almost the exact same question on page 2 and totally forgot (2 mos ago hehe). You then told me the same thing, and I just spaced out.

Added BotAI.o PetAI.o to zone/makefile.common, and all compiled well (after excluding the normal failures like azone, eqcollector and eqextractor)

I think I'll start with a nice clean database this time too. ;)

John Adams 07-11-2007 01:38 AM

I am so very pleased to report, I got my EQ-Offline compiled, a new database in stalled and updated, running, and connected! And, got to play with my first Cleric-bot tonight. If I wasn't so sleepy, I'd be up all night messing with this.

It is very, very cool. Nice work, Mag! I'll start finding bugs tomorrow. LOL ;)

Magoth78 07-11-2007 02:56 AM

Cool John!

Don't forget to link the http://eqoffline.free.fr/npc_spells_entries.rar into your database if not done already. It has the fix for the mez's bot (that you can command with "#bot ai mez").

For my info, does EQoffline eat a lot of CPU/Ram on your server, John ?

G'day,
Mag

John Adams 07-11-2007 10:52 AM

I got too tired to extensively test last night, but I will setup some monitoring and let you know. FYI, my server is Linux Fedora Core 4 w/MySQL 4.1.

Something that I am sure has nothing to do with your bots, my Linux server overheated last night for the first time ever - started throwing errors that the CPU was going into low-utilization mode. In all my years, I had never seen that. But, the box was also in an un-ventilated, enclosed space... but, it's always been there. this was the first time I saw it do this. If it happens again, I'll let you know. :)

One thing I also noticed, when I was done with Bots, I logged out, and Linux (the whole OS) crashed - BUT, this also happens with the regular EQEmu on occasion. If it's persistent, I'll let you know that too.

John Adams 07-11-2007 02:19 PM

I do have something to report - though I will level myself up and try in a non-newbie zone. I made my Vah Shir rogue, summoned 1 cleric bot, then went down to the newbie area of Shar Vahl (below the bridge). Not only were the mobs wandering down through the surface of the ground and through solid rocks, none of them got Hate on me even while I was doing damage. They'd stand there, until their timer kicked in to wander. And I'd follow behind a completely non-aggressive mob killing it slowly (level 1).

Now, this might be core Emu as well. I'll test it on my live server tonight to compare.

Magoth78 07-11-2007 02:24 PM

Look like to me you didn't add the maps in your map repertory.

Btw, there was a serious issue with CPU overheat in the latest sources. I've noticed that while installing the package for a friend. I've found my error and I'm actually fixing it.

Should be ok in the day.

G'Day
Mag


All times are GMT -4. The time now is 11:00 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.