PDA

View Full Version : EQOffline:BotCount issue I think


cubber
01-13-2009, 02:13 PM
I just compiled and installed SVN rev 270 and peq 265

I did the necessary bot updates from utils/sql/svn and added the

EQOffline:BotCount rule to my rules_values table with a id of 1 and a setting of 5. So it is set up in my default ruleset.

However when I go to spawn and add bots to my group in game I can spawn and group 1 bot, but when I spawn another bot and try to add it I get a message that my group is full.

I tried to set the rule setting to 1 to see if it was backwards and had the same issue. I then disabled the rule all together and had the same issue. So currently I am only able to add a single bot to my group no matter what I set that at or even it it is in the rule_values table or not.

Did I miss a db entry or a compile option?

leslamarch
01-13-2009, 03:58 PM
I just compiled and installed SVN rev 270 and peq 265

I did the necessary bot updates from utils/sql/svn and added the

EQOffline:BotCount rule to my rules_values table with a id of 1 and a setting of 5. So it is set up in my default ruleset.

However when I go to spawn and add bots to my group in game I can spawn and group 1 bot, but when I spawn another bot and try to add it I get a message that my group is full.

I tried to set the rule setting to 1 to see if it was backwards and had the same issue. I then disabled the rule all together and had the same issue. So currently I am only able to add a single bot to my group no matter what I set that at or even it it is in the rule_values table or not.

Did I miss a db entry or a compile option?

I would just like to point out that if you do not add the Preprocessor Definitions EQBOTS to world you will have problems. By default it is added to Zone only and not world.

cubber
01-13-2009, 04:25 PM
When you say that I take it you mean the -DEQBOTS flag?

I never add -DEQBOTS to world only to zone/makefile and then the updates to zone/makefile.common

I have never had an issue up until now, and this seems to deal exclusivly with the new EQOffline:BotCount rule.

leslamarch
01-13-2009, 04:37 PM
When you say that I take it you mean the -DEQBOTS flag?

I never add -DEQBOTS to world only to zone/makefile and then the updates to zone/makefile.common

I have never had an issue up until now, and this seems to deal exclusivly with the new EQOffline:BotCount rule.

For the Rules to work properly you will need to add to world also, or in my case i needed too! So I thought i would just toss the idea out there in case that was what you are seeing, since i did that the rules work perfect. :)

cubber
01-13-2009, 04:41 PM
Ahh ok thank you I will give it a shot. So just add -DEQBOTS to the world makefile like I do with zone?

leslamarch
01-13-2009, 04:54 PM
Ahh ok thank you I will give it a shot. So just add -DEQBOTS to the world makefile like I do with zone?
That should do the trick.

cubber
01-13-2009, 05:00 PM
I recompiled world with

-DEQBOTS added to the world/makefile at the end of the DFLAGS= line.

and it did not fix the issue.

I don't need to add anything to world/makefile.common right?

Angelox
01-13-2009, 05:44 PM
EQOffline:BotCount rule to my rules_values table with a id of 1 and a setting of 5. So it is set up in my default ruleset.
AX Classic is id of 0, maybe it's id of 0?

EDIT;
Just got home and looked, I think your ruleset_id needs to be set to 0

cubber
01-13-2009, 07:33 PM
Nope ruleset in PEQ is defaulted to 1, all my other rules use 1 for an ID. The way I disabled it to test was to set the 1 to a 0 so that it was not in my default ruleset.

here is a copy of my ruleset_id table from phpmyadmin:

ruleset_id name
1 default

Angelox
01-14-2009, 07:09 AM
If anything, it should fall back to 5, as the default is 5 - I tested this under windows and Linux, I even just disabled the rule, and it still defaults to 5.
"Group is full' is the wrong message - it should say "There is no more room in your group."?

I still have 266, haven't had a chance to put 270 in, but I don't see where that would change anything

cubber
01-14-2009, 09:25 AM
Yah the correct message is "There is no more room in your group."

No matter what I do I can only group one bot. I can spawn all the bots I want but whenever I try to add another one beyond the first I get that message and the bot is killed.

here is my setting currently: (phpmyadmin copy)


1 EQOffline:BotCount 5


and here are some other rules so you can see how they are set up:

1 Mail:ExpireTrash 0
1 Mail:ExpireRead 31536000
1 Mail:ExpireUnread 31536000
1 Channels:RequiredStatusAdmin 251
1 Channels:RequiredStatusListAll 251
1 Channels:DeleteTimer 1440

Angelox
01-14-2009, 10:16 AM
I tried 270 out and it works fine too - what are you using for compile? windows or Linix? and if windows , what version VC?

cubber
01-14-2009, 10:36 AM
I don't own a windows box, all linux here. I will try pulling down clean sources and recompiling. I did a make clean before recompiling this version. Then when I found I should recompile world with -DEQBOTS in the makefile I just did a make clean in the world directory and recompiled that. Then copied world to my server directory.

cubber
01-14-2009, 11:11 AM
I just re-ran make clean on my svn sources then did a make and rebuilt everything. This did the trick. Seems you can't just change something in the world makefile and remake just world, need to do it all.

So problem was between the seat and keyboard sorry guys!

Derision
01-14-2009, 11:39 AM
It's not actually your fault, it is a problem with the makefiles.

Both the makefile.common for world and zone specify ../common/rulesys.o in the SF= line.

../common/rulesys.o gets compiled for world first, then, when zone gets compiled, it sees that ../common/rulesys.o is newer than ../common/rulesys.cpp and so it knows it doesn't need to recompile it.

Normally, this is not a problem, however in the case of code bracketed in #ifdef/#endif, where different defines are used between world and zone, it causes problems.

Instead of ../common/rulesys.o, the world and zone makefile.common should specify .obj/rulesys.o

This tells the makefile to compile it's own private version using it's own set of -D flags.

I'll update the makefiles.

The EQOffline:BotCount rule should really be a RULE_INT (integer) rather than a RULE_REAL (floating point).

cubber
01-14-2009, 12:19 PM
Thanks for the clarification Derision.

Angelox
01-14-2009, 01:13 PM
The EQOffline:BotCount rule should really be a RULE_INT (integer) rather than a RULE_REAL (floating point).
I'll get this fixed - I just at first didn't have any makefiles for with the WORLD makefile, and was going crazy trying everything, tell I realized what it was.

I've been trying to post replies on these forums, but for seems it goes dead at night for hours and now seems to drop a lot during the day too. Last night I couldn't get on here to reply, finally I just went to bed.

Angelox
01-14-2009, 01:26 PM
Derision; I also noticed, it seemed at one time, when I did a 'make clean' from the source root, it would go through all the subs and include a 'make depend' , it doesn't seem to do that anymore, just includes 'make clean' only.
I wonder if something got removed?


It's not actually your fault, it is a problem with the makefiles.

Both the makefile.common for world and zone specify ../common/rulesys.o in the SF= line.

../common/rulesys.o gets compiled for world first, then, when zone gets compiled, it sees that ../common/rulesys.o is newer than ../common/rulesys.cpp and so it knows it doesn't need to recompile it.

Normally, this is not a problem, however in the case of code bracketed in #ifdef/#endif, where different defines are used between world and zone, it causes problems.

Instead of ../common/rulesys.o, the world and zone makefile.common should specify .obj/rulesys.o

This tells the makefile to compile it's own private version using it's own set of -D flags.

I'll update the makefiles.

Derision
01-14-2009, 05:31 PM
Derision; I also noticed, it seemed at one time, when I did a 'make clean' from the source root, it would go through all the subs and include a 'make depend' , it doesn't seem to do that anymore, just includes 'make clean' only.
I wonder if something got removed?

I don't know. The oldest source I have readily to hand on my Linux server is 0.7.0-1035 and it seems to exhibit the same behaviour as the current makefiles.

Angelox
01-14-2009, 09:54 PM
I just started to make this post pointing out it was working in EQEmu-0.7.0-1129, but not now, and I saw why it doesn't work;
when someone uploaded the source to SVN, they also uploaded their .depend files , the makefile checks to see if there is .depend files, if not it will auto make them. So, you can quickly run a 'make clean' from the root, all that will happen and new custom .depend files are created. If there already are .depend files, then you have to force a 'make depend' in each directory.


I don't know. The oldest source I have readily to hand on my Linux server is 0.7.0-1035 and it seems to exhibit the same behaviour as the current makefiles.

EDIT:
That problem was me, I must have at one time run 'make clean' in my local SVN , and it created the .depend files - since it's on another PC with another version of my distro, it made the problems for me. I deleted the .depend files from SVN, it works again.

Kaain
01-22-2009, 11:08 PM
Hmm... been trolling around here and ProjectEQ for a couple of days looking for other reports of this. I have the same issue after upgrading my server from Revision245-Bots to the compiled version CD posted on code.google.com that is Revision279-Bots.zip. When starting the server World ERRORS on the following:
[01.22. - 20:27:33] [RULES__ERROR] Unable to find rule 'EQOffline:BotManaRegen'
[01.22. - 20:27:33] [RULES__ERROR] Unable to interpret rule record for EQOffline:BotManaRegen
[01.22. - 20:27:33] [RULES__ERROR] Unable to find rule 'EQOffline:BotFinishBuffing'
[01.22. - 20:27:33] [RULES__ERROR] Unable to interpret rule record for EQOffline:BotFinishBuffing
[01.22. - 20:27:33] [RULES__ERROR] Unable to find rule 'EQOffline:BotCount'
[01.22. - 20:27:33] [RULES__ERROR] Unable to interpret rule record for EQOffline:BotCount

After logging my player in, I cannot spawn any bots so in my case the BotCount must default to 0.

I can see the rules in the rule_values table, bot records in the bot tables and even completely dropped my db and reinstalled from scratch and then restored my account table from a recent backup. I'm thinking the problem isn't database but the compiled exe's from Revision279-Bots.

Is it possible the issue discussed in this thread could by my problem if CD compiled from the same source?

Angelox
01-22-2009, 11:22 PM
Appears the compile was made with the bot/ makefiles left out. You can go to my Site and download the executables I have posted, see if it works better , mine are 276, will be 279 this weekend (haven't had time for the 279 executable compile).

Kaain
01-23-2009, 02:36 AM
Thank you Angelox! Your exe's seem to have done the trick. No more world errors. I'll bring the exe's up to date whenever new ones are available since I don't have compile capabilities. Maybe I won't need a new keyboard now that I have stopped bashing my forehead into it:-D

Kudos to all the excellent work you guys have done on the bots system. The main reason I updated.

cavedude
01-28-2009, 01:31 PM
So what needs to be done to the SVN to correct this? I assume EQBOTS needs to be added to world in the Windows project? I don't work with EQOffline much, so I just compile and post it for the benefit of those who wish to use it. If anybody ever has corrections to the SVN and you have access to it, please commit.

Angelox
01-28-2009, 02:36 PM
So what needs to be done to the SVN to correct this? I assume EQBOTS needs to be added to world in the Windows project? I don't work with EQOffline much, so I just compile and post it for the benefit of those who wish to use it. If anybody ever has corrections to the SVN and you have access to it, please commit.

I have my set of makefiles that include bots , I can add them to the SVN in another directory, if that's OK with you - if anyone wants bots, they can copy/paste the directorys into the source. I'm just not sure about what to do.
I have all the working makefiles for Linux and windows.
EDIT:
Anyway, it's done, that's how I use them, it's easy enough for them just to copy/overwrite the bot makefiles, if they want bots. Change if you don't like it.

Congdar
01-28-2009, 04:43 PM
I remember Cavedude fixed up the proj files for VC so you could switch between bots and no bots using the Configuration Manager.

Cavedude,
Can you update the Configuration Manager to include EQBOTS in World.vcproj when you select the bots compile options and not to when you don't please? I'd do it but I don't have any idea what you did. It's probably something simple, I just haven't ever looked at that part of Visual Studio. You did the linux make files then too. Is there some kind of option for linux that works like the Configuration Manager in VS that you could fix up too? I think this would be better than extra files for copying around and if there's a need to change them again in the future it would be fewer files to modify.

cavedude
01-28-2009, 06:14 PM
Can you update the Configuration Manager to include EQBOTS in World.vcproj when you select the bots compile options and not to when you don't please?

That's all I needed to know. :) Done. Angelox you can delete the Windows solutions files you just uploaded as we won't need them anymore, obviously. Keep the Linux makefiles though until I merge bots into the normal makefiles. Thank you both!!!!