EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   Wierd bot problem (possibly) (https://www.eqemulator.org/forums/showthread.php?t=40054)

Nightrider84 09-27-2015 09:50 PM

Wierd bot problem (possibly)
 
So I added the ability to have bots be ogre druids. Which works great, But they seem to regen mana alot faster than the can spend it and he tripple and double hits stuff with his weapon. Like he has double attack. Any reason this might be?

Trackye 09-27-2015 10:21 PM

I would guess its likely because when you created the CUSTOM code it wasnt done correctly or completely. Likely you copied information from another class that can do that (Double or triple.) or something to that effect.

Probably also because the Emulator and the BOT code wasnt written with Ogre Druids in mind...

Not very helpful but its likely the cause id think.

Uleat 09-27-2015 10:29 PM

Yes, I agree.

I'd either check the creation function to see what defaults are being applied, or the actual processing of those actions to see what is occurring.

Beyond that, it would take an in-depth c&e tree to trace why that is happening.

Nightrider84 09-28-2015 12:10 AM

Yeah, probobly right.

Nightrider84 09-28-2015 12:25 AM

This is the code for the bot.cpp

case 10: // Ogre
switch(GetClass()) {
case 1: // Warrior
case 5: // Shadowknight
case 6: // Druid
case 10: // Shaman
case 15: // Beastlord
case 16: // Berserker
Result = true;
break;
}

As you can see the only change to it was, case 6: // Druid
About 3 or 4 months ago this issue wasn't occuring. Iv'e had this change implemented for awhile now. Maybe it was working somehow before and something changed to cause it to go haywire. I'll hafto experiment with other bots to make sure its the only one effected by the issue. ofcourse the problem could be because they are bots and hate any kind of change whatsoever

Trackye 09-28-2015 01:27 PM

I would look further into it in regards to the fact that the server must be pulling the data in uses for a DRUID OGRE from somewhere....

Also... How are you creating the character?
In the DB?
Using a GM command to change the class?

If its either of those you must be copying the values from something.

Example A
Created in Database.

Columns must be filled in from another character to some degree perhaps the character you are using to create the Ogre druid is a class that has those skills.

Suggestion for Example A.
Create a Wood elf druid.
Change nothing except the race.
See if the problem persists.

Example B.
You are creating a lets say Ogre beastlord and using a GM command or database change to make it a druid by changing the class. Well the beastlord already knows double attack and so on so perhaps that info is persisting through the change.

Nightrider84 09-28-2015 09:51 PM

nope I just added it as a class combination that is usable. So all im doing is using the #bot create command to make the ogre from scratch no copying what so ever.

Update: I just looked through a good portion of the bot code. When it creates a bot it pulls the basic info like if bot is human stats = x and if bot is wizard apply points to certain stats.
I see alot of code for double attack. But im not finding where it would point the bot to have specific skills based on class.

Nightrider84 10-01-2015 02:52 PM

How would I go about looking up the create function?

Nightrider84 10-01-2015 02:58 PM

So I made a halfelf druid bot and he is double attacking stuff aswell. Somethings messed up somewhere lol.

Uleat 10-01-2015 03:33 PM

Let's see...

Create command: https://github.com/EQEmu/Server/blob.../bot.cpp#L8922

Bot::IsValidRaceClassCombo() https://github.com/EQEmu/Server/blob.../bot.cpp#L1305

At this point, it's strictly a validation of what is allowed.


Attack function: https://github.com/EQEmu/Server/blob.../bot.cpp#L4681


This looks like where 'normal' bot attacks are handled: https://github.com/EQEmu/Server/blob.../bot.cpp#L2575
(Note the exclusion of caster bots bots over level 12.)

I don't see any message code inside of that check..you might consider adding a few and turning on the logs for that channel to output to gmsay..might help track it down.

Cilraaz 10-01-2015 03:36 PM

The AI_Process logic in bot.cpp calls CanThisClassDoubleAttack, which is a function in mob.cpp. For non-clients, that returns:

Code:

return(GetSkill(SkillDoubleAttack) > 0);
I'm not sure if '#bot showstats' shows skill values or not. That might be something to check.

Uleat 10-01-2015 03:56 PM

There was an AA change recently too..I don't know if bots use the 'standard' system or have their own special one - like so many other systems...

Nightrider84 10-01-2015 04:01 PM

it's always the bots I swear to god. We should all just pool 1$ a piece and hire the guy that was working on the bots before to just sift through all the 33,000 lines of code to fix them =P

Uleat 10-01-2015 04:07 PM

Ok, that's $2 :P

Nightrider84 10-02-2015 04:49 PM

Is anybody able to create a druid bot give him a weapon and see how he regens mana and if he double or tripple hits. I would greatly appreciate it I feel like im going insane. Im just hoping im not the only one with the issue


All times are GMT -4. The time now is 03:54 PM.

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