PDA

View Full Version : Bot problems after zoning


blackdragonsdg
10-24-2009, 02:38 PM
After summoning the bots everything works fine but if I zone with the bots up they will just stand in one spot and not do anything when they enter the next zone. The only command I can get them to obey at that point is #bot camp.
I was using emu rev 1036 when the problem first occured and I just tried emu rev 1038 and still have the same problem. My db is fully updated and everything else is working fine.

prickle
10-24-2009, 02:46 PM
After summoning the bots everything works fine but if I zone with the bots up they will just stand in one spot and not do anything when they enter the next zone. The only command I can get them to obey at that point is #bot camp.
I was using emu rev 1036 when the problem first occured and I just tried emu rev 1038 and still have the same problem. My db is fully updated and everything else is working fine.

I was having the same problem (until ~just~ now) and went through a boat load (2 or 3 days worth) of troubleshooting try and figure it out...

The ultimate fix for me was the following:

-Make sure the -DBOTS DFLAG was added to my world/makefile (in addition to the zone/makefile)
-Recompile
-Download the PEQDB Rev1008 package
-Extract the archive
-Go into the PEQDB Updates folder
-Source in the Rev1008.sql file
-Restart server

Now it works for me....

blackdragonsdg
10-24-2009, 07:21 PM
prickle, I tried your suggestion but it did not work. I think i put the -DBOTS in the right location.
My makefile for zone looks like this after the mod:
HCC=$(shell ccache -V 2>/dev/null)
ifneq (,$(findstring version,$(HCC)))
CC=ccache gcc
else
CC=gcc
endif

OUT=-o
LINKOUT=-o
NOLINK=-c
LINKER=gcc
MYSQL_FLAGS=$(shell mysql_config --cflags)
MYSQL_LIB=$(shell mysql_config --libs)
DFLAGS=-DEQDEBUG=5 -DBOTS -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386
#try commenting out the following three lines to disable embedded perl
PERL_FLAGS=$(shell perl -MExtUtils::Embed -e ccopts)
PERL_LIB=$(shell perl -MExtUtils::Embed -e ldopts)
DFLAGS+=-DEMBPERL -DEMBPERL_PLUGIN -DHAS_UNION_SEMUN
WFLAGS=-fpermissive -Wall -Wuninitialized -Wwrite-strings -Wcast-qual -Wno-deprecated -Wcomment -Wcast-align
COPTS=$(WFLAGS) -O -g -march=i686 -pthread -pipe -D_GNU_SOURCE -DINVERSEXY -DFX -DZONE $(DFLAGS) $(MYSQL_FLAGS) $(PERL_FLAGS)
LINKOPTS=$(COPTS) -rdynamic -L. -lstdc++ -ldl $(MYSQL_LIB) $(PERL_LIB)

all: zone

include .depend

include makefile.common

.depend depend:
for f in $(SF); \
do \
i=`echo $$f | sed -e 's#.obj/#../common/#g' -e 's/\.o/.cpp/g' `; \
gcc -MM $(COPTS) $$i | sed "s#^[^ ]*:#$$f:#g"; \
done >.depend

wine:
$(MAKE) -f makefile.wine

Was that the correct location? This type of mod is going beyond what I know about C/C++.

prickle
10-24-2009, 10:28 PM
it needs to go into the WORLD/makefile as well

This is the line I added -DBOTS to in my WORLD/makefile:
DFLAGS=-DDEBUG=5 -DEQDEBUG=5 -DSHAREMEM -DCATCH_CRASH -DNO_PIDLOG -DFIELD_ITEMS -DIRC -Di386 -DAPP_OPCODE_SIZE=2 -DBOTS

This is the line that was edited in my ZONE/makefile:
DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 -DBOTS

This is the line that was edited in my ZONE/makefile.common file:
../common/guild_base.o bot.o botRaids.o \

I had to do these edits because I'm running my server on Linux. If you're on Windows, I think you need to do something different...

If your bots are working, and just stop following after you zone, I would highly recommend double checking your database. The tables of interest are:

group_leaders - it should have 5 columns:
| gid | leadername | marknpc | leadershipaa | assist |


group_id - it should have 3 columns:
| groupid | charid | name |

If either of these tables aren't like this then you'll need to source in the "Rev1008.sql" file found in the UPDATES folder of the PEQ Rev1008 DB package. After you've souced the update file in, you'll need to source in the SQL files from the EQEmu SVN. The SQL files that need to be sourced in AFTER you've source in the "Rev1008.sql" file are:

1022_botadventuring.sql
1027_botactives.sql
1030_botzoningsupport.sql
1036_botbuffs.sql
1038_botpetstatepersists.sql
1038_grouptablesuniquecolumndefinitions.sql

These files are found in the EQEmuServer/utils/sql/svn/ directory.

blackdragonsdg
10-25-2009, 01:59 AM
Reloading the database from scratch did fix the problem but these type of bugs always leave me wondering what went wrong and why.

prickle thank you for your help.

cavedude
10-25-2009, 12:55 PM
Just so everybody is aware, PEQ is up to date with bots.

prickle
10-25-2009, 01:09 PM
Reloading the database from scratch did fix the problem but these type of bugs always leave me wondering what went wrong and why.

prickle thank you for your help.NP, glad you got it working :)

Just so everybody is aware, PEQ is up to date with bots.Thanks for the update Cavedude!