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

Development::Bots Forum for bots.

Reply
 
Thread Tools Display Modes
  #1  
Old 10-24-2009, 02:38 PM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 654
Default Bot problems after zoning

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.
Reply With Quote
  #2  
Old 10-24-2009, 02:46 PM
prickle
Hill Giant
 
Join Date: Sep 2009
Posts: 147
Default

Quote:
Originally Posted by blackdragonsdg View Post
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....
Reply With Quote
  #3  
Old 10-24-2009, 07:21 PM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 654
Default

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:
Code:
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++.
Reply With Quote
  #4  
Old 10-24-2009, 10:28 PM
prickle
Hill Giant
 
Join Date: Sep 2009
Posts: 147
Default

it needs to go into the WORLD/makefile as well

This is the line I added -DBOTS to in my WORLD/makefile:
Code:
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:
Code:
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:
Code:
   ../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.
Reply With Quote
  #5  
Old 10-25-2009, 01:59 AM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 654
Default

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.
Reply With Quote
  #6  
Old 10-25-2009, 12:55 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

Just so everybody is aware, PEQ is up to date with bots.
Reply With Quote
  #7  
Old 10-25-2009, 01:09 PM
prickle
Hill Giant
 
Join Date: Sep 2009
Posts: 147
Default

Quote:
Originally Posted by blackdragonsdg View Post
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

Quote:
Originally Posted by cavedude View Post
Just so everybody is aware, PEQ is up to date with bots.
Thanks for the update Cavedude!
Reply With Quote
Reply


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 06:21 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