New Bot Group Based Raid System
I will soon remove the BotRaid system from the server code and many of the existing "#bot group order" commands in favor of the logic I just committed this morning that is essentially group based raids for bots as EQ raids were before the raid system was added to the game. Please see this link for details:
http://code.google.com/p/projecteqem.../detail?r=1032 This code is a first draft. Please report any bugs with this system ONLY to this thread. It is my intent that after this system is stabilized, I will then turn my attention to integrating bots with the server's standard raid interface that characters now use while also keeping this new group based system in place. Enjoy! |
I assume there are no problems with this new code? Cool!
|
I haven't had a chance to test out the raiding aspect with the bots and the new code. However, the one part of the new bots code that I was able to test was with zoning. On my system (Ubuntu Linux), the bots go "stupid" after zoning. They forget to follow you, and don't seem to behave normally. The only way to make them behave properly is to camp them and then respawn them after zoning.
Dunno if this is just me that's seeing this because I haven't seen anyone else mention it yet. |
What rev were you using when this happened? This sounds like a bug I fixed in rev 1033. If you are unsure, I'd recommend getting the latest code out of the repo today and try again.
|
Two midterms this week and some more next; I'll test this ASAP, sorry I've let my priorities get skewed temporarily =P
|
That was happening with rev 1035.
I updated to rev 1036 last night, but didn't have time to personally test it out. I'll be able to test rev 1036 (or whatever the latest is when I get home) tonight though. |
Quote:
I logged in... spawned in a cleric and verified he followed me to the zone... and zoned to another zone... after zoning the cleric was there and continued to buff me but would not follow me... i then spawned in a enchanter... this enchanter started buffing but also would not follow me. So i figure when i zone somehow the fact that i am the group leader is lost? Why they will buff me... but not follow me? My guess anyways hope this helps narrow down the bug. rev1036 BTW |
in case it helps:
$ gcc --version gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
Just tested on fresh PEQ DB with REV 1036 and I'm not seeing this problem at all, Tested on my Home windows environment. I zone to about 10 different zones and bots all responded great.
|
Quote:
|
The code responsible for making sure the bot responds to you after it zones with you is this one little code block:
Code:
if(g->GetLeader()) I hope this helps you. |
ok... I've had some time with them now... (still haven't had a chance to check the raiding aspect though)
I did the following after I got home from work: Redid DB with PEQ DB Rev1008: -sourced system-drop.sql -sourced peqdb_Rev1008.sql -sourced 1022, 1027, 1030, and 1036 sql files Recompiled SVN Rev1036: -verified the strings of code you indicated above are in the bot.cpp file -added -DBOTS to the zone/makefile file -added bot.o botRaids.o to the zone/makefile.common file -changed march=i686 to march=athlon64 in all makefiles copied binaries to server directory launched server Testing bots: -summon wizard bot -check group_id and group_leader tables: updates when group forms -verified bot follows me around the zone -issued #bot gate pok command -bot casts teleport -group zoned into PoK bot no longer follows me around the zone -issue #bot gate cobalt command -bot casts teleport -group zoned to cobalt scar -bot still does not follow -camp bot -spawn bot -recheck group_id and group_leader tables IDs correspond with each other -bot follows around zone So, the bot responds to buff and travel commands after zoning, but they refuse to follow me around the zone. Trying to use #bot group order follow to make them follow me does not work. They seem to respond to most bot orders (e.g. bot group summon, etc) but they refuse to follow me after zoning. The ~only~ thing that makes them follow me around a zone after zoning is making them camp and then respawning them. |
That is consistent with what I posted about the bot not getting a Group Leader and so its follow id doesnt get set. I wish I knew what you might not have done. I'll look over more about what you posted in detail later tomorrow and think on it some. Maybe I can figure out what you may have missed. The fact that I have the bots running around with me zone after zone and that another experienced community member such as laslamarch has this running as expected, makes me think there is a config error here that is easy to do.
|
Can you post the SQL for your group_id and group_leader tables DDL? I dont know if your savy enough to do so, but if you are that might help shed some light on this situation.
|
I'm playing with a full bot party right now this is what's in the two tables right now:
mysql> select * from group_id; +---------+--------+-------------+ | groupid | charid | name | +---------+--------+-------------+ | 109002 | 1 | Nunyscleric | | 109002 | 6 | Nunyas | | 109002 | 11 | Pusher | | 109002 | 17 | Tanku | | 109002 | 27 | Rogue | | 109002 | 32 | Punchy | +---------+--------+-------------+ mysql> select * from group_leaders; +--------+------------+---------+--------------+ | gid | leadername | marknpc | leadershipaa | +--------+------------+---------+--------------+ | 109002 | Nunyas | | | +--------+------------+---------+--------------+ |
this is after zoning:
mysql> select * from group_id; +---------+--------+-------------+ | groupid | charid | name | +---------+--------+-------------+ | 109002 | 1 | Nunyscleric | | 109002 | 6 | Nunyas | | 109002 | 11 | Pusher | | 109002 | 17 | Tanku | | 109002 | 27 | Rogue | | 109002 | 32 | Punchy | +---------+--------+-------------+ 6 rows in set (0.00 sec) mysql> select * from group_leaders; +--------+------------+---------+--------------+ | gid | leadername | marknpc | leadershipaa | +--------+------------+---------+--------------+ | 109002 | Nunyas | | | +--------+------------+---------+--------------+ 1 row in set (0.00 sec) |
There's been an issue with group leadership for a bit from what I know. Like, EQEMU related bug. Losing group leader is a common occurance from what I've seen, reforming and creating groups is typical.
|
Pricke,
Did you also add -DBOTS to your world\makefile? |
Prickle,
What is the makeup of your group in the example you posted? Was it 2 characters and 4 bots? |
hmmmmm.... I was only aware of needing to add -DBOTS to the zone/makefile ... I didn't know about the world/makefile
I'll add it, recompile, and report back tomorrow... The group is 1 player (me --Nunyas) and 5 bots |
well, just added -DBOTS to my world/makefile and then followed that up with 'make clean' and 'make' from the top level build directory.
I'm still getting the same results. bots still forget to follow me after zoning. /confused |
Want to try re-applying this SQL to your group_id table just in case its not there?
Code:
ALTER TABLE `group_id` DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE(`groupid`, `charid`, `name`); |
Aside from checking your SQL, which sounds like you already have, the only thing I can offer is the following method that actually does the bot zoning:
Code:
// Load and spawn all zoned bots by bot owner character Code:
if(activeBot) { Code:
g->UpdatePlayer(activeBot); I'll keep thinking on this for you. |
I just noticed this line in the 1030_botzoningsupport.sql file
Code:
DROP TABLE IF EXISTS `botactives`; I looked through the bot.cpp file and all of the bits of code that you mentioned are in there. I was just digging through the diffs on the bots.sql file in SVN over the changes from 1027 to current and I noticed this was added to the bots.sql file but not to the 1027 update sql file: Code:
75 DELIMITER $$ gonna source it in right now and see if there's any difference... |
Your right that the incremental SQL files are missing the creation of that function, but it isnt used for zoning bots. It is used primarily for supporting bots in ldon adventures.
|
ah... well shoot... /sigh
|
To answer your original question...
Raiding seems ok... I've been 2 grouping in ToV all day. sometimes 2 full groups and sometimes 1 full group and 2 half groups...The raid stuff seems to be working pretty well for me.. |
More info on my bot zoning issue:
Updated to 1038 last night Here are the log entries: eqemu_debug_world.log - log in from char select to ToV: Code:
6667 [10.24. - 09:06:44] [WORLD__CLIENT] Checking inbound connection 192.168.1.70 against BannedIPs table no entries made during log in zone-templeveeshan.log first zone in (no groups): Code:
[Debug] Nunyas has a 14 percent chance of successfully being saved from death. Caster UnfailingDivinityAA rank was 0. |
What that log tells me is when you zone in (I presume your zoning into templeveeshan with a group with at least one bot in it), your server is unable to find your group id when it tried to execute this sql command:
Code:
RunQuery(query, MakeAnyLenString(&query, "SELECT groupid from group_id where name='%s'", name), errbuf, &result) Maybe you can edit your database.cpp file and change the logic that prints the error message "Unable to get group id, char not found!" to something like the following: Code:
printf("Unable to get group id, char name %s not found!\n", name); |
There are the log entries made for spawning my bot and adding to group
MySQL Tables after spawning bot and adding to group (bot is Nukesalot leader os PC Nunyas): Code:
mysql> select * from group_id; |
The following is the log outputs after EVAC WITH bot group:
zone_templeveeshan.log (grouped evac): Code:
[Debug] Zoning Nunyas to safe coords (-499.000000,-2086.000000,-36.000000) in templeveeshan (124) Code:
mysql> select * from group_id; Code:
6667 [10.24. - 09:39:12] [WORLD__CLIENT] New connection from 192.168.1.70:49233 Code:
7465 [10.24. - 09:39:24] HandlePacket() Opcode error: Unexpected packet during CLIENT_CONNECTING: opcode: OP_AnnoyingZoneUnknown (#311 eq=0x0000), size: 4112 |
Quote:
I'll have a look at the file you mentioned and see if I can find anything suspicious... though, I must admit C++ isn't a very strong language for me... |
This is bad:
Quote:
Are you using any custom code? Anything about your server that is not straight out of the peqdatabase or eqemuserver repo? |
the only things I change after an SVN check out are the following:
-march=i686 to -march=athlon64 (all makefiles) And: Add -DBOTS to the zone/makefile Add bot.o and botRaids.o to the zone/makefile.common ============= None of the CPP files have been altered. I updated my DB to the peq rev1008 package and applied all SVN SQL files newer than it yesterday, but I just noticed the DB version table is still reporting 974 .... grrrrrr I'll try redoing my DB again |
Dont forget to add -DBOTS to your world makefile also..
|
it's there from my last compile:
Code:
:~/eqemubuilds/10232009/world$ cat makefile |
assumptions are killing me....
http://scienceblogs.com/insolence/facepalm.jpg even though I used the used the "peqdb_Rev1008.sql" file during my updates last night, it did not apply the changes that were found in the "Rev1008.sql" file found in the updates folder.... Sorry to have wasted your time with my incompetence... *smacks forehead* |
I'm not a linux guru, so maybe I am wrong here, but since your running i686 and athelon64, shouldn't you also change your "-Di386" option in your makefile to a "-Di686"? Just an observation and I dont know if i am wrong. Maybe some else here could confirm or correct me.
|
? Does this mean, prickle, that you have bot zoning to work for you now?
|
yes, that's exactly what it means
The "Rev1008.sql" update file made changes to my database that the main "peqdb_Rev1008.sql" file did not. I will continue checking out the raiding/multi-group thing today thanks again for all the help you've provided! |
All times are GMT -4. The time now is 04:48 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.