EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Linux Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=588)
-   -   Compile Fail spells.cpp 'class Mob' has no member named 'IsBot' (https://www.eqemulator.org/forums/showthread.php?t=29464)

EQFAN2009 09-07-2009 08:08 AM

Compile Fail spells.cpp 'class Mob' has no member named 'IsBot'
 
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

Code:

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

Thanks
 
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

975 Fail
 
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

Thank Pyfon
 
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

Win!
 
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

Awesome
 
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

Quote:

Originally Posted by prickle (Post 178517)
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...


All times are GMT -4. The time now is 06:30 AM.

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