#bot group guard doesnt work when 3 or more ppl in group
Bots don't sit still when using this #bot group guard command anymore, but its only when there are 3 or more ppl in the group. No Idea what caused this to change as far as I can tell the command has not changed so it must be somewhere else in the bot code or ai process. Any ideas, or a possible solution or alternate command?
Im using 2260 at the moment, previous versions did not have this problem, think it started somewhere past 2207, but finding the cause has not been easy... |
I have it on my list to look at, but I've been working on mercs recently. Once mercs are up and running, I should be able to chrck on this, if someone hasn't figured it out yet.
Does it matter if the number of people in the group are clients or bots? |
Quote:
|
what exactly do you see happening?
is everyone in the group using the command for their bots? |
the only thing i can see that would be causing an issue is that not all bot owners are using the command, as it currently checks for ownership here:
Code:
if(botGroupMember && botGroupMember->GetBotOwnerCharacterID() == client->CharacterID()) { Code:
void Bot::BotGroupOrderGuard(Group* group, Client* client) |
Thanks, Ill try this when I get a chance.
|
Unfortunately it didn't work...
The problem is with the cleric bots mainly. Its like the ai ignores the fact they are guarding and moves them into range to cast a healing spell. When the combat ends, they remain in that spot guarding. Its only during combat, but only when 2 bots are in the group. The bot guards fine as long as its the only bot in the group, as far as I can tell, players told me they only had the 1 bot and a couple players and this happened, but I cant repeat that. It seems to work fine as long as its the only bot in the group. As soon as I add a 2nd bot, say a rog, and it becomes engaged in combat, the cleric bot moves into range, ignoring its command to guard. Before it would stay put, not caring if we are out of range dying, only when moved into its casting range would it start healing. I don't think the problem is in the command itself, but in the ai where it is casting a spell and checking the range, moving them into range(and ignoring the guard command) but I cant seem to find it. |
oh, ok. that's because there is no check for GetFollowID() in the out of combat part of Bot::AI_Process(). if you want to keep a bot from doing anything at all when told to guard, until given another command, you can add the stuff in red here:
Code:
// AI Processing for the Bot object |
or... you can add the lines in red here:
Code:
// AI Processing for the Bot object |
Well it works, but now they wont heal if your close to them, they simply do nothing like you said. Before they would stay still, but heal you when you got into spell range and your hp was low. Not sure if that's possible, that would be like it was before.
Thanks for the help, making progress at least :) |
you probably want to look at EntityList::Bot_AICheckCloseBeneficialSpells() then. it gets called by Bot::AI_IdleCastCheck() and is passed a float for range (iRange), but it doesn't look like it's checked anywhere before the bot in question is instructed to cast a heal. i'm not sure off the top of my head if that would cause the bot to run into range and heal or not.
|
All times are GMT -4. The time now is 08:30 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.