Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bots

Development::Bots Forum for bots.

Closed Thread
 
Thread Tools Display Modes
  #781  
Old 10-02-2008, 12:43 PM
Ikeren
Hill Giant
 
Join Date: Aug 2008
Location: Canada
Posts: 131
Default

Here's something that I've always found difficult:

Camping kills the bots.

One of the "classic" things to do in a raid when it's all going down hill is yell "Cleric's Camp", and all the clerics try to camp out, with FD classes trying to FD. I've tried to camp in the middle of battles I'm certain to lose as a cleric, using Divine Barrier, but it only lasts 18 seconds. That has lead to 1 or 2 nasty failed encounters (one of them Deep in Vex Thal).

I'm not sure if this problem has a solution, and I'm not sure if the cure wouldn't be worse than the disease. But I'm just throwing it out there.
  #782  
Old 10-02-2008, 12:58 PM
cubber
Discordant
 
Join Date: Apr 2006
Posts: 374
Default

I have to agree with Congdar there has to be a better way to deal with the FD issue. I mainly play a monk and yes I do have to FD off aggro to my main tank bot often, would suck to see my whole group of bots just poof when I hit FD. That would require that monks unlearn a lot of basic group tactics to play with a bot group.

Hmm what about having your bots guard a pull spot while you go pull. You all of a sudden pick up aggro from 4 other mobs and need to FD, hmm bots poof...

This fix in my opinion breaks monks!

Now as for spawning bots while FD, that could be an exploit but it also has its benifits. You can't zone with bots so how do you prepare your group to zone into a place like PoG? I guess you could use invis zone in and spawn your bots, but I tend to zone in fd flop then spawn my group, then pop up an start fighting. Now both ways could be considered an exploit I guess, it does not really matter if your invis or FD you still have the ability to spawn bots!

I would say spawning bots invis is even more of an exploit than FD, invis up, run to uber_camp01, spawn bots and clear camp. At least with FD there is somewhat of a challange to get to a hard camp.

So if you are gonna remove it from an FD class better take off the ability to spawn them invis too.

just my 2 cents ...
  #783  
Old 10-02-2008, 01:12 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

Quote:
Originally Posted by Ikeren View Post
Here's something that I've always found difficult:

Camping kills the bots.

One of the "classic" things to do in a raid when it's all going down hill is yell "Cleric's Camp", and all the clerics try to camp out, with FD classes trying to FD. I've tried to camp in the middle of battles I'm certain to lose as a cleric, using Divine Barrier, but it only lasts 18 seconds. That has lead to 1 or 2 nasty failed encounters (one of them Deep in Vex Thal).

I'm not sure if this problem has a solution, and I'm not sure if the cure wouldn't be worse than the disease. But I'm just throwing it out there.
I think the camp killing the bots can be removed since the logout covers killing the bots with identical code.
  #784  
Old 10-02-2008, 01:16 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

Quote:
Originally Posted by cubber View Post
I have to agree with Congdar there has to be a better way to deal with the FD issue. I mainly play a monk and yes I do have to FD off aggro to my main tank bot often, would suck to see my whole group of bots just poof when I hit FD. That would require that monks unlearn a lot of basic group tactics to play with a bot group.

Hmm what about having your bots guard a pull spot while you go pull. You all of a sudden pick up aggro from 4 other mobs and need to FD, hmm bots poof...

This fix in my opinion breaks monks!

Now as for spawning bots while FD, that could be an exploit but it also has its benifits. You can't zone with bots so how do you prepare your group to zone into a place like PoG? I guess you could use invis zone in and spawn your bots, but I tend to zone in fd flop then spawn my group, then pop up an start fighting. Now both ways could be considered an exploit I guess, it does not really matter if your invis or FD you still have the ability to spawn bots!

I would say spawning bots invis is even more of an exploit than FD, invis up, run to uber_camp01, spawn bots and clear camp. At least with FD there is somewhat of a challange to get to a hard camp.

So if you are gonna remove it from an FD class better take off the ability to spawn them invis too.

just my 2 cents ...
I'm hoping the 'IsEngaged' check put onto select bot commands will trim down the exploits in this area to a point where any left over exploits could be looked at more closely for a way to clean them up.
  #785  
Old 10-03-2008, 01:06 PM
Skizoke
Sarnak
 
Join Date: Sep 2008
Location: Alabama
Posts: 70
Default

I'm at work now so I can't read all of this. I did read severa; pages and this project looks amazing.

Was anyone able to get a working bot, and if so is there a download link or webpage I can visit?
  #786  
Old 10-03-2008, 06:59 PM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

I changed the way the way Feign Dead exploit fix works, In a nutshell I added a few 'if(c->GetFeigned' checks.
in command.cpp
at around line 8558 , I really can't say where it is on the current source you all have but it starts with
Code:
 	if(!strcasecmp(sep->arg[1], "spawn") ){
Code:
And I changed to look as follows;
	if(!strcasecmp(sep->arg[1], "spawn") ){
        if( database.GetBotOwner(atoi(sep->arg[2])) == 0)
        {
            database.SetBotOwner(atoi(sep->arg[2]), c->CharacterID());
		}
	else if(database.GetBotOwner(atoi(sep->arg[2])) != c->CharacterID())
        {
            c->Message(15,"You can't spawn a bot that you don't own.");
			return;
		}
		if(c->IsEngaged())
        {
            c->Message(15, "You can't summon bots while you are engaged.");
			return;
		}
		if(c->GetFeigned()) //Angelox
        {
            c->Message(15, "You can't be feigned!");
			return;
		}
Also at around line 8624 , or where it starts with
Code:
if(!strcasecmp(sep->arg[1], "group") && !strcasecmp(sep->arg[2], "add"))
I made it to look like this;
Code:
	if(!strcasecmp(sep->arg[1], "group") && !strcasecmp(sep->arg[2], "add"))
    {
		if((c->GetTarget() == NULL) || (c->GetTarget() == c) || !c->GetTarget()->IsBot()) //Angelox
        {
            c->Message(15, "You must target a bot!");
			return;
		}
		if(c->IsEngaged()) //Angelox
        {
            c->Message(15, "Not while fighting!");
			return;
		}
		if(c->GetFeigned()) //Angelox
        {
            c->Message(15, "You can't be feigned!");
			return;
		}
		if(c->GetTarget()->IsClient())  //Angelox
        {
			c->Message(15, "You can't invite clients this way.");
			return;
		}
This will not kill Bots, but will not allow you to make (spawn) or add bots while FD.

-=-=-=-=-=-=-=-

Then over here in the trading Dept. I made some changes so your bot will take equipment while under any illusion (wolf form, etc).
traders.cpp, Line 350 or starts with
Code:
		//EQoffline: will give the items to the bots and change the bot stats
I changed the 'GetRace' to 'GetBaseRace'
Code:
		//EQoffline: will give the items to the bots and change the bot stats
		if(inst && with->IsBot() && with->BotOwner == this->CastToMob()) {
			if(inst->IsEquipable(with->GetBaseRace(), with->GetClass())) {  //Angelox fix for Equip Illusioned Bots
				BotCanWear = true;
Which worked but still had some spam threats to 'delete my bot'-
So, over in mob.cpp at around line 2462, or starts with ;
Code:
void Mob::CalcBotStats() {
	this->Say("I'm updating...");
I again changed 'GetRace' to 'GetBaseRace';
Code:
void Mob::CalcBotStats() {
	this->Say("I'm updating...");
	// base stats
	int brace = GetBaseRace(); //Angelox
	int bclass = GetClass();
	int blevel = GetLevel();
And that was the end of that story.

-=-=-=-=-=-=-=-=-=-=-=

Here's a riddle i've been trying to figure out all week;
I want the Bot names to appear as a clean name and not 'Mybot000' in my group window.

in groups.cpp at around line 214 or what starts with
Code:
		//build the template join packet
I change 'GetName' to 'GetCleanName';
like this;
Code:
		//build the template join packet
		EQApplicationPacket* outapp = new EQApplicationPacket(OP_GroupUpdate,sizeof(GroupJoin_Struct));
		GroupJoin_Struct* gj = (GroupJoin_Struct*) outapp->pBuffer;	
		strcpy(gj->membername, newmember->GetCleanName());
And it works, but the bot members in the window appear dulled out as if in another zone and I cant click-target them off that group window.
I guess I'm too stupid for this one, maybe some one can at least tell me where to look.

All those fixes are posted for download at my site if anyone wants to look at it or try it out - I still haven't made a converted version for PEQ, but am planning to.

Last edited by Angelox; 10-04-2008 at 03:01 AM..
  #787  
Old 10-04-2008, 01:30 AM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

I've made a new release with the official 1129 sources. Check out the release thread. I've also added this update to SVN.
  #788  
Old 10-04-2008, 10:03 AM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

Quote:
Originally Posted by Congdar View Post
Check out the release thread. I've also added this update to SVN.
Dang! I ran out of rants!
I can't rant about the fixes never going into the source, can't rant about not having bot code in the source or the database never getting posted ...
And it's not even Xmas yet!

Thanks a million to all of you for the new SVN you made and all the effort going into it - nice to see so many people come together on an effort.
I know this will go a very long way.
  #789  
Old 10-04-2008, 02:34 PM
Ikeren
Hill Giant
 
Join Date: Aug 2008
Location: Canada
Posts: 131
Default

Quote:
Was anyone able to get a working bot, and if so is there a download link or webpage I can visit?
Basically, the bots work fine: You can set up a raid of as many as 71 bots + yourself, and equip them, use them to kill raid targets, buff them, etcetera, in every way that you please. There are a few minor bugs that are still being worked on, but they're fully playable.

All the downloads are right here: http://www.eqemulator.net/forums/showthread.php?t=25614

Quote:
Trading with bots under an illusion is fixed. (Thanks Angelox)
Oh god thank you. When I was equipping my enchanters I would spawn, inventory, figure out what to give them, give it to them to get it stacked on my cursor, kill, respawn, invite and quickly give them the 4 items. Then rinse and repeat.

Thanks for the awesome work you guys.
  #790  
Old 10-04-2008, 06:41 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

There was a group follow bug if a bot group member died. It's fixed now, but if you got yesterdays zip file then you'll want to replace it with todays zip file.
  #791  
Old 10-04-2008, 06:47 PM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

Congdar;
What about those short term spells, such as Yaulp ; why not take them out too? seems they just spam a lot.
  #792  
Old 10-04-2008, 07:08 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

Yaulp seems ok, there does appear to be a high level druid one that is keeping them low on mana.
  #793  
Old 10-05-2008, 02:54 PM
Skizoke
Sarnak
 
Join Date: Sep 2008
Location: Alabama
Posts: 70
Default

None of my bots want to cast a spell.

I did add the spells to my database.
  #794  
Old 10-05-2008, 03:30 PM
Skizoke
Sarnak
 
Join Date: Sep 2008
Location: Alabama
Posts: 70
Default

Nevermind, I figured out what i did wrong. Thanks.

I really like it so far, you all are awesome.
  #795  
Old 10-05-2008, 03:40 PM
Skizoke
Sarnak
 
Join Date: Sep 2008
Location: Alabama
Posts: 70
Default

Well, I thought I had it figured out.

As soon as I zoned it bugged them out. Now none of them will cast.

Is there a guide to using bots or does everyone figure it out for themselves? Sorry for the dumb questions.
Closed Thread


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 12:36 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3