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)

spider661 09-29-2008 12:11 AM

ok that worked great.. now the bots leave group and group stays in tact now 1 more problem.. the player that owns the bots invites a player.. spawns bots and zones out and back bots gone group intact. so then i respawn the bots and try to invite them. says only leader can invite bots and kills them. but then i log on another char and try to invite them and it lets me..

so basically what happens is now the bots cant find the leader of the group even though the owner is still the group leader according to the game.

any ideals?

spider661 09-29-2008 02:33 AM

i fixed it i just removed the group leader check when inviting bots.. i don't care if anyone in group can invite them leader or not.. and it seems to e working now. but i would still like to see a fix to the problem in case i decide to put leader check back in or if anyone else needs it

Angelox 09-29-2008 06:59 AM

I fixed a few exploits on mine;
for players who make armies of Bots and invite them as they fight and loose bots;
in command.cpp around line 8161;
replace

Code:

        if(!strcasecmp(sep->arg[1], "group") && !strcasecmp(sep->arg[2], "add"))
    {
                if((c->GetTarget() == NULL) || (c->GetTarget() == c) || !c->GetTarget()->IsBot())
        {
            c->Message(15, "You must target a bot!");
                        return;
                }

With this;
Code:

        if(!strcasecmp(sep->arg[1], "group") && !strcasecmp(sep->arg[2], "add"))
    {
                if((c->GetTarget() == NULL) || (c->GetTarget() == c) || !c->GetTarget()->IsBot() || (c->IsEngaged())) //Angelox
        {
            c->Message(15, "You must target a bot and can't be engaged!");
                        return;
                }

for players who kill players or any mob with the '#bot raid group create';
in command.cpp around line 8645;
replace
Code:

                                        c->Message(15, "You must have created your raid and your group must be full before doing that!");
                                Mob* kmob = c->GetTarget();
                                if(kmob != NULL) {
                                        kmob->Kill();
                                }

With
Code:

                                c->Message(15, "You must have created your raid and your group must be full before doing that!");
                                Mob* kmob = c->GetTarget();
                                if(kmob != NULL) {
                                        kmob->GetTarget();  //Problem? kmob->Kill() was here b4 Angelox
                                }

And finally, Since th '#Bot update as it really doesn't work right (at least for me and what I got it doesn't), and is an exploit for no down time (this full heals the bot), I just quoted it out (I'm content to updates when zoning/re-logging the bot);
command.cpp, line 7202 replace;
Code:

c->Message(15, "#bot update [target] - you must type that command once you gain a level.");
with
Code:

        c->Message(15, "#bot update You must zone or re-log to see updated Bot"); //Angelox: removed for exploit (doesn't work right anyways
and quote out lines 8462 - 8486 (more or less)
Code:

/*        if(!strcasecmp(sep->arg[1], "update")) {
//        // Congdar: add IsEngaged check for exploit to keep bots alive by repeatedly using #bot update.
//          // Angelox: Disabled it totally as it is an exploit for no down time
        if(c->GetTarget() != NULL)
        {
            if(c->GetTarget()->IsBot() && (c->GetTarget()->BotOwner == c->CastToMob()) && !c->GetTarget()->IsEngaged()) {
                Mob *bot = c->GetTarget();
                bot->SetLevel(c->GetLevel());
                                bot->CalcBotStats();
            }
            else {
                                if(c->GetTarget()->IsEngaged()) {
                                        c->Message(15, "You cannot update while engaged.");
                                }
                                else {
                                        c->Message(15, "You must target a bot first");
                                }
            }
        }
        else {
                        c->Message(15, "You must target a bot first");
        }
        return;
        }
*/

This fixes are tested and running on a few mini-login servers, mad by request of the owners.

spider661 09-29-2008 07:53 AM

wow nice fixes i did not even know that was doable but tested and yes that does kill players or npcs so thanks for that fix its in mine now.

Angelox 09-29-2008 09:05 AM

Quote:

Originally Posted by spider661 (Post 157177)
i fixed it i just removed the group leader check when inviting bots.. i don't care if anyone in group can invite them leader or not.. and it seems to e working now. but i would still like to see a fix to the problem in case i decide to put leader check back in or if anyone else needs it

The group fix by Congdar is great!
Tell me what you did to remove the group leader check.

Congdar 09-29-2008 09:42 AM

Quote:

Originally Posted by spider661 (Post 157174)
ok that worked great.. now the bots leave group and group stays in tact now 1 more problem.. the player that owns the bots invites a player.. spawns bots and zones out and back bots gone group intact. so then i respawn the bots and try to invite them. says only leader can invite bots and kills them. but then i log on another char and try to invite them and it lets me..

so basically what happens is now the bots cant find the leader of the group even though the owner is still the group leader according to the game.

any ideals?

This is a bug in group code, and not related to bots. There's a missing opcode for group leader it seems doesn't get updated when zoning. I thought KLS had fixed this but I guess not.

Angelox 09-29-2008 09:59 AM

Quote:

Originally Posted by Congdar (Post 157192)
This is a bug in group code, and not related to bots. There's a missing opcode for group leader it seems doesn't get updated when zoning. I thought KLS had fixed this but I guess not.

What if you coded the bots to look in table 'group_leaders' for whoever is the leader.

Congdar 09-29-2008 10:12 AM

Angelox,
Nice fixes... I'll add them to my source, but I'm going to allow the update command but I'll fix it so it only works for what the actual update command was intended for... when you level up, you're supposed to be able to level up your bots with you, so I'll add a level check and that should be good.

The killing npc's and players bug is another nice find but is a good command when used as intended. I'll add code to make sure a bot is the target.

It would be nice to get the actual group code fixed, but using the bot leader's db table is a good workaround until then.

Congdar 09-29-2008 10:33 AM

hmm actually the reason I had the leader check was so two pc's in the same group couldn't summon bots and I think it needs to be that way. The bot leaders table only tells me who the leader of the bot is, not the leader of the group. So I have an idea on a new check for that. I'll get it updated today.

With these fixes I'll be releasing again real soon with all the suggestions from here since my 1129 release announcement.

All characters on the same account will now share the bots so each doesn't need its own army.
Some speed spells in dungeons are disabled (Selo's still working, is it supposed to for bards?)
The Chardok Monk Sniffer test has much better results
Bots should no longer equip items with level restrictions above them
Undead can now be taunted
Added a few more AA's

Angelox 09-29-2008 11:23 AM

Well, I got a few more that might interest you;
Selos and bard speed spells should not work in dungeons either, what I did was make up some new 'spell ids';
-=-=-=-=-=
spdat.h around 482 add;
Code:

bool IsSowTypeSpell(int16 spell_id);    //Angelox
bool IsFeralPackSpell(int16 spell_id);  //Angelox

-=--=-=-=-=
spdat.cpp around 708 add;
Code:

bool IsFeralPackSpell(int16 spell_id) {  //Angelox, works in dungeons
        bool Result = false;

        // Feral Pack
        if(spell_id == 4058)
                Result = true;

        return Result;
}

bool IsSowTypeSpell(int16 spell_id) {  //Angelox
        bool Result = false;

// Sow Types                Sow                  WolfForm          ShareGreatWolf          GreaterWolfForm          SharWolf                Bard                    Bard                EagleSow       
        if((spell_id == 278) || (spell_id == 425) || (spell_id == 3579) || (spell_id == 426) || (spell_id == 428)|| (spell_id == 717) || (spell_id == 2605) || (spell_id == 2517))
                Result = true;

        return Result;
}

I wanted to keep some sow spells in dungeons, but others no. My idea is to get things looking natural, the only group wolf I have available is the Feral Pack In dungeons (it is an LDoN dungeon spell), Thought it was pretty cool to have while working in dungeons. I also have some code (will post later) that enables the Druid to only wolf itself (then Sow everone else), and not the whole group. As when we played on live, most players didn't care to get 'Wolfed' all the time.

Once the above code is added, I then went to botAI.cpp at line 751 'case SpellType_Buff:'
entry, I added these to lines with your levitate check;
Code:

          (IsSowTypeSpell(AIspells[i].spellid) && !zone->CanCastOutdoor()) ||
          (IsFeralPackSpell(AIspells[i].spellid) && zone->CanCastOutdoor())) { //Angelox

Now it looks like this;
Code:

        // Put the zone levitate check here since bots are able to bypass the client casting check
        if(IsEffectInSpell(AIspells[i].spellid, SE_Levitate) && !zone->CanLevitate() ||
          (IsSowTypeSpell(AIspells[i].spellid) && !zone->CanCastOutdoor()) ||
          (IsFeralPackSpell(AIspells[i].spellid) && zone->CanCastOutdoor())) { //Angelox
          break;
}

The outcome of this is, when playing outdoors, you look over to the wolf in the group, and think 'Yep, there's the Druid'(sort of a classic look to a Druid). And when in dungeon, you get the numerous benefits of Feral Pack, which players really liked to have.
The Druid should Wolf first, then Sow for this to work.
And I have disabled all wolf forms but the one 'self only' in npc_spells_entries .
Still if you don't like my Druid wolf idea, the other code works for blocking choice spells in and out of dungeons

One problem needs to be solved with Illusions is, you can't equip a Bot while under the effect. I usually have all the gear ready and quickly hand it over before the bot casts the illusion.

Angelox 09-29-2008 12:11 PM

There's another piece I forgot about, if you want to make the druid 'self only" wolf work;
in spells.cpp around 2431 where you see
Code:

//Franck-add: can't detrimental spell on bots and bots can't detriment on you or the others bots
        if        ((IsBot() && IsDetrimentalSpell(spell_id) && spelltar->IsBot()) ||
                (IsBot() && IsDetrimentalSpell(spell_id) && spelltar->IsClient()) ||
                (IsClient() && IsDetrimentalSpell(spell_id) && spelltar->IsBot()))
                return false;

I added to look like this;
Code:

//Franck-add: can't detrimental spell on bots and bots can't detriment on you or the others bots
        if        ((IsBot() && IsDetrimentalSpell(spell_id) && spelltar->IsBot()) ||
                (IsBot() && IsDetrimentalSpell(spell_id) && spelltar->IsClient()) ||
                (IsClient() && IsDetrimentalSpell(spell_id) && spelltar->IsBot()))
                return false;

        int druid_sp [] = { 516,517,425,278,4058,4054,169 };
        if        ((IsBot() && spell_id == druid_sp[3] && level >= 20 && (GetClass() == DRUID) && spelltar == this)||
                //(IsBot() && spell_id == druid_sp[3] && !zone->CanCastOutdoor() && spelltar->IsPet()) ||
                (IsBot() && spell_id == druid_sp[3] &&  (spelltar->GetClass() == DRUID)))
                return false;

This is so the druid will not be affected by sow from itself anything else.

reason for the big 'int druid_sp'
I have a big mess of code quoted out and re-made since one of Congdar's fixes (wouldn't work anymore) , I need to clean it all up, but keep it for new ideas.

leslamarch 09-29-2008 05:32 PM

does anyone have a good way already in place to limit bots to a certain status level? :confused:

Congdar 09-29-2008 06:01 PM

There's been some ideas posted. Limit by status, limited number of bots, quests to get a bot, etc. All good ideas waiting to be coded.

Angelox 10-01-2008 03:33 PM

This corrects another exploit -
Quote:

If you are using FD (Feign Death) and you have a group of bots, you can send the bots and they will get killed but you won't get involved in combat. After that, you can re-summon your bots and send them again...
In client.cpp at around line 1842 (on my client.cpp it's on line 1914)
replace this
Code:

#ifdef EQBOTS

                // there seems to be a bug where the hate list doesn't get cleared, even if
                // the mob forgets about the feigner.
                hate_list.Wipe();

#endif //EQBOTS

With this;
Code:

#ifdef EQBOTS

                // there seems to be a bug where the hate list doesn't get cleared, even if
                // the mob forgets about the feigner.
                hate_list.Wipe();

        // Angelox Added for FDead Exploit
        Mob *clientmob = CastToMob();
        if(clientmob) {
                int16 cmid = GetID();
                if(clientmob->IsBotRaiding()) {
                        BotRaids* br = entity_list.GetBotRaidByMob(clientmob);
                        if(br) {
                                br->RemoveRaidBots();
                                br = NULL;
                        }
                }
                if(clientmob->IsGrouped()) {
                        Group *g = entity_list.GetGroupByMob(clientmob);
                        if(g) {
                                bool hasBots = false;
                                for(int i=5; i>=0; i--) {
                                        if(g->members[i] && g->members[i]->IsBot()) {
                                                hasBots = true;
                                                g->members[i]->Kill();
                                        }
                                }
                                if(hasBots) {
                                        if(g->BotGroupCount() <= 1) {
                                                g->DisbandGroup();
                                        }
                                }
                        }
                }
                database.CleanBotLeader(cmid);
        }

#endif //EQBOTS

What happens is FD, will clear the bots out, but not the group Which makes it a fair play.

I also added this check in groups.cpp, around line 834 ;
change this;
Code:

#ifdef EQBOTS

int Group::BotGroupCount() {
        int count = 0;
        for(int i=count; i<MAX_GROUP_MEMBERS; i++) {
                if(members[i] && (members[i]->GetMaxHP()>0))
                        count++;
        }
        return count;
}

#endif //EQBOTS

to this;
Code:

int Group::BotGroupCount() {
        int count = 0;
        for(int i=count; i<MAX_GROUP_MEMBERS; i++) {
                if(members[i] && (members[i]->GetMaxHP()>0))
                        count++;
        }
        return (count,database.GroupCount(GetID())); //angelox add
}

This enabled me to invite PC members to the group (first) then add bots. On zoning, the bots poof, but the PC group stays intact.

This is all tested, the PC group part i tested as best I could from two PC's in the Lan. Posted with my database for anyone who wants to try it out.
I'm planning on re-arranging my Bot SpellLists, so they match the ones in PEQ., Then the code will be made compatible with the PEQ database too.

Congdar 10-01-2008 04:45 PM

Feign Death kills the bots? I can't agree with this fix. FD is a viable tactic to lower aggro. You would want your bots to continue the fight and you could rejoin the battle after the warrior bot regained aggro. Need to think of a better way.

The group fix... I fixed it already a different way... not sure what this is doing.

Since my release with the official 1129 code there has been massive feedback and suggestions both here and on my server forums. I've incorporated probably 99% of this and the current bot source doesn't really look much like the 1129 release. I'll probably be adding the bot source I have into the svn this weekend when I have some time and then there'll be a base to work from.

Angelox 10-01-2008 05:02 PM

Quote:

Originally Posted by Congdar (Post 157424)
Feign Death kills the bots? I can't agree with this fix. FD is a viable tactic to lower aggro. You would want your bots to continue the fight and you could rejoin the battle after the warrior bot regained aggro. Need to think of a better way.

At the moment, it's an exploit , better than FD and continuously sending in the bots tell you win.
The whole FD idea, has evolved to please the customers. At first, FD had other intentions, such as someone staying back for a quick CR. When you FD, you pet went too. Now days, it does not.
Already the game is much easier with the bots, I'm able to do things i would have never have thought of unless I used the #gm. If someone has gotten into a situation where they have to FD (with a team of bots!), then they can make new bots and start over, instead of abuse the FD.

Congdar 10-01-2008 07:12 PM

FD classes have been doing so in battles to manage aggro for years. Bots shouldn't change that. I agree there's an exploitable situation, all I'm saying is a different solution would be better. If you make it this way then at least make a Bot::FDRule to disable it so monks with bots can continute to play eq the way they always have.

Congdar 10-01-2008 07:25 PM

Hey, I re-read the last part of your post. Before your fix post I already had implemented code so you can't spawn more bots or create more groups from already spawned bots when engaged. A FD check might be more easily added there if even needed with the engaged check.

Angelox 10-01-2008 08:25 PM

Quote:

Originally Posted by Congdar (Post 157432)
FD classes have been doing so in battles to manage aggro for years. Bots shouldn't change that. I agree there's an exploitable situation, all I'm saying is a different solution would be better. If you make it this way then at least make a Bot::FDRule to disable it so monks with bots can continute to play eq the way they always have.

Ahh, Monks! I forgot about them, I was thinking about SKs and Necros only. Anyway, I didn't think of it as a permanent solution, just a filler tell something better shows up. At least the exploit got squashed out right away.
Could also toss in some exceptions; maybe a timer for FD while engaged, and un-limited time for FD while not engaged, so if you're in a fight and you stay on the FD too long, then they will all poof.
It's a combination problem where the player goes FD and when the bots gets killed, then they are 'not engaged' and he can quickly make another round of bots and send them in (all the time, he's FD)

Congdar 10-02-2008 09:06 AM

Quote:

Originally Posted by Angelox (Post 157444)
just a filler tell something better shows up

I've got better stuff coming. I'm pretty excited about my next release. There's a lot of new features added from all the feedback plus I've closed up several exploits like those mentioned. I've also massively reduced lag from cpu hits the bot were generating during battles.

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.

Congdar 10-05-2008 03:59 PM

not sure what it could be, any clues in the log files?

Skizoke 10-05-2008 04:25 PM

I'm not sure, but this line is repeated to the log file about every second.

[10.05. - 13:21:26] Error in ZoneDatabase::GroupCount query 'SELECT count(charid) FROM group_id WHERE groupid=4001': #1146: Table 'peq.group_id' doesn't exist

Skizoke 10-05-2008 04:30 PM

Quote:

Originally Posted by Congdar (Post 157732)
not sure what it could be, any clues in the log files?

I'm not really sure which log file I should paste from.. I see logs called:

eqemu_error_zone
eqemu_debug_world
eqemu-quest_zone
eqemu_zone

Also:

#bot update works fine when I level but when I add the bot to the group (a wizard bot) it doesn't cast. Also, when i say #bot group order attack it gives the message that it is attacking but just sits there and still does not cast.

Congdar 10-05-2008 04:34 PM

if a database table doesn't exist then you may be using an older database or you didn't get everything sourced in and are missing data. what database are you using and where did you get it from? Make sure you have all the .map files in the eqemu/maps/ folder

Skizoke 10-05-2008 04:45 PM

I have 513 files in the H:\EQEmu\maps directory. It looks like the maps are present.

I'm using database version 0.7.0-1110a PEQ database that I got from Cavedude's website.


All times are GMT -4. The time now is 06:13 PM.

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