Log in

View Full Version : bot.o error on compile


Hool
07-10-2012, 03:38 AM
I'm struggling to enable bots. Following this guide,

http://code.google.com/p/projecteqemu/wiki/BOTSCompile,

I have made carefull changes to the files as indicated, being carefull to only insert text where required, and not changing the begining of the line in ./zone/makefile.common

The results thus far have ended in the following errors

make[1]: *** [bot.o] Error 1
make[1]: Leaving directory `/home/eqemu/source/zone'
make: *** [all] Error 2




Below are the modified files

./zone/makefile

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 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 -DBOTS
#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=-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


./zone/makefile.common

APP=zone
#the non-perl zone can still compile and link all the perl objects
#because they are all #ifdef'd out anyways..
SF= .obj/EQPacket.o .obj/EQStream.o .obj/EQStreamFactory.o .obj/CRC16.o \
../common/timer.o ../common/packet_dump.o ../common/packet_functions.o \
../common/unix.o ../common/packet_dump_file.o ../common/Mutex.o ../common/MiscFunctions.o \
zone.o entity.o mob.o client.o client_process.o npc.o net.o spawn2.o attack.o hate_list.o \
../common/serverinfo.o ../common/moremath.o worldserver.o spells.o spawngroup.o loottables.o \
faction.o Map.o watermap.o PlayerCorpse.o petitions.o MobAI.o Object.o ../common/eqtime.o \
groups.o ../common/classes.o ../common/races.o ../common/TCPConnection.o forage.o \
../common/crc32.o ../common/guilds.o ../common/md5.o ../common/dbcore.o \
../common/dbasync.o zonedbasync.o parser.o embperl.o embparser.o \
../common/EMuShareMem.o ../common/EQEMuError.o ../common/ptimer.o \
.obj/debug.o .obj/database.o .obj/Item.o .obj/misc.o tribute.o \
doors.o command.o beacon.o embxs.o AA.o trap.o client_packet.o \
bonuses.o trading.o spdat.o spell_effects.o aggro.o guild.o \
inventory.o client_mods.o tradeskills.o waypoints.o pets.o zone_profile.o \
effects.o perl_client.o perl_doors.o perl_entity.o perl_mob.o perl_questitem.o perl_npc.o \
perl_PlayerCorpse.o perl_groups.o perl_raids.o questmgr.o client_logs.o perlparser.o \
../common/rdtsc.o ../common/extprofile.o horse.o exp.o pathing.o \
fearpath.o special_attacks.o ../common/timeoutmgr.o ../common/Condition.o \
.obj/opcodemgr.o .obj/emu_opcodes.o ../common/SharedLibrary.o zoning.o \
titles.o perlpacket.o perl_perlpacket.o zonedb.o ../common/shareddb.o \
../common/logsys.o .obj/rulesys.o ../common/logsys_eqemu.o \
../common/EQEmuConfig.o ZoneConfig.o ../common/XMLParser.o ../common/tinyxml/tinystr.o \
../common/tinyxml/tinyxml.o ../common/tinyxml/tinyxmlerror.o ../common/tinyxml/tinyxmlparser.o \
../common/EQStreamProxy.o ../common/patches/patches.o \
../common/patches/Client62.o ../common/patches/Titanium.o \
../common/patches/Anniversary.o ../common/patches/SoF.o ../common/patches/SoD.o \
../common/StructStrategy.o ../common/EQStreamProxy.o ../common/EQStreamIdent.o \
../common/patches/Underfoot.o ../common/patches/HoT.o ../common/patches/VoA.o \
zone_logsys.o ../common/BasePacket.o ../common/worldconn.o \
../common/EmuTCPConnection.o ../common/EmuTCPServer.o ../common/TCPServer.o \
../common/guild_base.o bot.o botspellsai.o \
guild_mgr.o tasks.o raids.o perl_hateentry.o perl_object.o QGlobals.o QuestParserCollection.o


all: $(APP)


$(APP): $(SF)
$(LINKER) $(LINKOUT)$@ $^ $(LINKOPTS)

clean:
rm -f .depend $(SF) $(APP)

%.o: %.cpp
$(CC) $(NOLINK) $(COPTS) $< $(OUT)$@

.obj/%.o: ../common/%.cpp ../common/%.h
mkdir -p .obj
$(CC) $(COPTS) $(NOLINK) $< $(OUT)$@



./world/makefile


HCC=$(shell ccache -V 2>/dev/null)
ifneq (,$(findstring version,$(HCC)))
CC=ccache gcc
else
CC=gcc
endif

LINKER=gcc
#the spaces on the end of these are important
OUT=-o
LINKOUT=-o
NOLINK=-c
DFLAGS=-DDEBUG=5 -DEQDEBUG=5 -DSHAREMEM -DCATCH_CRASH -DNO_PIDLOG -DFIELD_ITEMS -DIRC -Di386 -DAPP_OPCODE_SIZE=2 -DBOTS
WFLAGS=-Wall -Wuninitialized -Wwrite-strings -Wcast-qual -Wcomment -Wcast-align -Wno-deprecated

PERL_FLAGS=$(shell perl -MExtUtils::Embed -e ccopts)
PERL_LIB=$(shell perl -MExtUtils::Embed -e ldopts)
DFLAGS+=-DEMBPERL -DEMBPERL_PLUGIN -DHAS_UNION_SEMUN

MYSQL_FLAGS=$(shell mysql_config --cflags)
MYSQL_LIB=$(shell mysql_config --libs)

COPTS=$(WFLAGS) -g -march=i686 -O -pthread -pipe -I../common/SocketLib \
-DFX -D_GNU_SOURCE -DINVERSEXY -DWORLD $(DFLAGS) $(MYSQL_FLAGS) $(PERL_FLAGS)
LINKOPTS=$(COPTS) -rdynamic -L. -lstdc++ -lm -lz -ldl \
$(MYSQL_LIB) $(PERL_LIB)

all: world


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

trevius
07-10-2012, 03:47 AM
You are probably getting the same error as this thread:

http://www.eqemulator.org/forums/showthread.php?t=35528

Kayen posted how to fix the source there manually until he can get an update on the SVN to correct it.

Hool
07-10-2012, 04:07 AM
Just compiled and can confirm that this does indeed resolve the problem


Replace in bot.cpp

other->TriggerDefensiveProcs(this);

with

TriggerDefensiveProcs(weapon, other, Hand, damage);[/QUOTE]


Cheers!

bad_captain
07-13-2012, 01:06 AM
This has been fixed in Rev 2164.