PDA

View Full Version : Compile Fail spells.cpp 'class Mob' has no member named 'IsBot'


EQFAN2009
09-07-2009, 08:08 AM
Am attempting linux compile with Rev972 source. Have made the changes to makefile.common and makefile to enable bots as recommended in previous forums but am getting a compile fail for spells.cpp/spells.o

make -C zone
make[1]: Entering directory `/root/EQEMU/source/trunk/EQEmuServer/zone'
ccache gcc -c -fpermissive -Wall -Wuninitialized -Wwrite-strings -Wcast-qual -Wn o-deprecated -Wcomment -Wcast-align -O -g -march=i686 -pthread -pipe -D_GNU_SOU RCE -DINVERSEXY -DFX -DZONE -DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DF IELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 -DEQBOTS -DEMBPERL -DEMBPERL_PL UGIN -DHAS_UNION_SEMUN -I/usr/include/mysql `perl -MExtUtils::Embed -e ccopts` s pells.cpp -o spells.o
cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid f or C/ObjC but not for C++
cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid f or C/ObjC but not for C++
spells.cpp: In member function 'void Mob::BardPulse(uint16, Mob*)':
spells.cpp:1847: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'int Mob::AddBuff(Mob*, int16, int, sint32)':
spells.cpp:2348: warning: comparison between signed and unsigned integer express ions
spells.cpp:2380: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'int Mob::CanBuffStack(int16, int8, bool)':
spells.cpp:2466: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'bool Mob::FindBuff(int16)':
spells.cpp:2999: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Mob::BuffFadeAll()':
spells.cpp:3009: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Mob::BuffFadeDetrimental()':
spells.cpp:3018: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Mob::BuffFadeDetrimentalByCaster(Mob*)':
spells.cpp:3031: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Mob::BuffFadeBySpellID(int16)':
spells.cpp:3048: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Mob::BuffFadeByEffect(int, int)':
spells.cpp:3063: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'float Mob::ResistSpell(int8, int16, Mob*)':
spells.cpp:3375: error: 'class Mob' has no member named 'IsBot'
spells.cpp:3379: error: 'class Mob' has no member named 'GetBotFocusEffect'
spells.cpp:3379: error: 'botfocusResistRate' was not declared in this scope
spells.cpp: In member function 'void Client::MemSpell(int16, int, bool)':
spells.cpp:3656: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Client::UnmemSpell(int, bool)':
spells.cpp:3677: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Client::UnmemSpellAll(bool)':
spells.cpp:3693: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Client::ScribeSpell(int16, int, bool)':
spells.cpp:3701: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Client::UnscribeSpell(int, bool)':
spells.cpp:3722: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Client::UnscribeSpellAll(bool)':
spells.cpp:3743: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'int Client::GetNextAvailableSpellBookSlot(int)':
spells.cpp:3751: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'int Client::FindSpellBookSlotBySpellID(int16)':
spells.cpp:3760: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'sint8 Mob::GetBuffSlotFromType(int8)':
spells.cpp:4127: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'bool Mob::FindType(int8, bool, int16)':
spells.cpp:4140: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'bool Mob::UseBardSpellLogic(int16, int)':
spells.cpp:4293: warning: comparison between signed and unsigned integer express ions
spells.cpp: In member function 'void Mob::SendPetBuffsToClient()':
spells.cpp:4370: warning: comparison between signed and unsigned integer express ions
make[1]: *** [spells.o] Error 1
make[1]: Leaving directory `/root/EQEMU/source/trunk/EQEmuServer/zone'


I have the spells_us.txt and spells_en.txt in the EQEmuServer source directory.

Any thoughts on what if anything I've missed?

pfyon
09-07-2009, 11:02 AM
Hmm, I've compiled 974 with no problems. I remember a recent revision had errors, but those got fixed within a day.

EQFAN2009
09-07-2009, 09:37 PM
Will try the 974 source, but I didn't notice any changes to the spells.cpp file between the two versions...

EQFAN2009
09-08-2009, 07:25 AM
Ok - downloaded 975, added 'botRaids.o botAI.o petAI.o' to makefile.common and -DEQBOTS to makefile in zone directory - compile fails with these added with above error message, but works if I leave those changes out...

Any thoughts on what could be the problem?

pfyon
09-08-2009, 11:10 AM
My zone/makefile.common only has bot.o and botRaids.o and with the new bots, your makefile should have '-DBOTS', not '-DEQBOTS' I believe. That could be the problem, eqbots is the directive for the old bots I think.

r975 compiles just fine for me.

EQFAN2009
09-08-2009, 07:29 PM
Awesome advice Pfyon - I've been working off some fairly dated Wikis and threads so I'm hoping that this will sort it out! I'll give it a try when I get home and can recompile the source.

Thanks again

EQF09

EQFAN2009
09-09-2009, 09:08 AM
Thanks again Pfyon. Apart from stupidly copying the 'and' between bots.o and botRaids.o the compile worked fine. Now to test if my Vista client can connect!

v6greenfbird95@yahoo.com
09-10-2009, 12:06 AM
this answers my post from the otherday someone should sticky this information.

prickle
09-14-2009, 02:06 PM
Please excuse my ignorance, but if I understand the compile correctly the only binary difference between the "with bots" build and the "without bots build" is in the zone binary file.

So, to convert a "without bots" build to a "with bots" build I would need to do the following:

-Edit the zone/makefile.common file in accordance with the changes mentioned above (i.e. add bots.o and botRaids.o to it)
-Edit the zone/makefille file in accordance with the changes mentioned above (i.e. add -DBOTS to the DFLAGS= line)
-run "make clean" in the root build directory
-run "make" in the root build directory
-replace the zone binary file in the eqemu run directory

Right?

pfyon
09-14-2009, 06:06 PM
Please excuse my ignorance, but if I understand the compile correctly the only binary difference between the "with bots" build and the "without bots build" is in the zone binary file.

So, to convert a "without bots" build to a "with bots" build I would need to do the following:

-Edit the zone/makefile.common file in accordance with the changes mentioned above (i.e. add bots.o and botRaids.o to it)
-Edit the zone/makefille file in accordance with the changes mentioned above (i.e. add -DBOTS to the DFLAGS= line)
-run "make clean" in the root build directory
-run "make" in the root build directory
-replace the zone binary file in the eqemu run directory

Right?

That's correct I think. In addition to that, you'd have to source load_bots.sql to have a server with functioning bots.

prickle
09-16-2009, 12:14 PM
yup... I did it shortly after I posted my last response and it worked perfectly.

When I originally sourced the sql files, I had used peq mysql rev 974 files to populate the database. So, all I had to do was recompile and change the zone binary file.

Works great. Also, I must say that I'm somewhat impressed with the AIs' intelligence... "Could be better" naturally, but pretty darn good as is...