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)

Ikeren 10-02-2008 12:43 PM

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.

cubber 10-02-2008 12:58 PM

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 ...

Congdar 10-02-2008 01:12 PM

Quote:

Originally Posted by Ikeren (Post 157516)
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.

Congdar 10-02-2008 01:16 PM

Quote:

Originally Posted by cubber (Post 157520)
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.

Skizoke 10-03-2008 01:06 PM

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?

Angelox 10-03-2008 06:59 PM

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.

Congdar 10-04-2008 01:30 AM

I've made a new release with the official 1129 sources. Check out the release thread. I've also added this update to SVN.

Angelox 10-04-2008 10:03 AM

Quote:

Originally Posted by Congdar (Post 157655)
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.

Ikeren 10-04-2008 02:34 PM

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.

Congdar 10-04-2008 06:41 PM

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.

Angelox 10-04-2008 06:47 PM

Congdar;
What about those short term spells, such as Yaulp ; why not take them out too? seems they just spam a lot.

Congdar 10-04-2008 07:08 PM

Yaulp seems ok, there does appear to be a high level druid one that is keeping them low on mana.

Skizoke 10-05-2008 02:54 PM

None of my bots want to cast a spell.

I did add the spells to my database.

Skizoke 10-05-2008 03:30 PM

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

I really like it so far, you all are awesome.

Skizoke 10-05-2008 03:40 PM

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.


All times are GMT -4. The time now is 03:01 AM.

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