|  |  | 
 
  |  |  |  |  
  |  |  |  |  
  |  |  |  |  
  |  |  |  |  
  |  | 
	
		
   
   
      | Development::Bots Forum for bots. |  
	
	
		
	
	
	| 
			
			 
			
				10-23-2009, 01:33 AM
			
			
			
		 |  
	| 
		
			
			| Hill Giant |  | 
					Join Date: Sep 2009 
						Posts: 147
					      |  |  
	| 
 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)
 |  
	
		
	
	
	| 
			
			 
			
				10-23-2009, 01:34 AM
			
			
			
		 |  
	| 
		
			|  | Legendary Member |  | 
					Join Date: Apr 2002 Location: Seattle, WA 
						Posts: 506
					      |  |  
	| 
 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. |  
	
		
	
	
	| 
			
			 
			
				10-23-2009, 02:06 AM
			
			
			
		 |  
	| 
		
			
			| Developer |  | 
					Join Date: Apr 2003 
						Posts: 589
					      |  |  
	| 
 Pricke,
 Did  you also add -DBOTS to your world\makefile?
 
				__________________ 
				Read my developer notes at my blog .
 
	Quote: 
	
		| If it's not on IRC, it ain't l33t! |  |  
	
		
	
	
	| 
			
			 
			
				10-23-2009, 02:23 AM
			
			
			
		 |  
	| 
		
			
			| Developer |  | 
					Join Date: Apr 2003 
						Posts: 589
					      |  |  
	| 
 Prickle,
 What is the makeup of your group in the example you posted? Was it 2 characters and 4 bots?
 
				__________________ 
				Read my developer notes at my blog .
 
	Quote: 
	
		| If it's not on IRC, it ain't l33t! |  |  
	
		
	
	
	| 
			
			 
			
				10-23-2009, 02:48 AM
			
			
			
		 |  
	| 
		
			
			| Hill Giant |  | 
					Join Date: Sep 2009 
						Posts: 147
					      |  |  
	| 
 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
 |  
	
		
	
	
	| 
			
			 
			
				10-23-2009, 11:48 AM
			
			
			
		 |  
	| 
		
			
			| Hill Giant |  | 
					Join Date: Sep 2009 
						Posts: 147
					      |  |  
	| 
 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
 |  
	
		
	
	
	| 
			
			 
			
				10-23-2009, 12:37 PM
			
			
			
		 |  
	| 
		
			
			| Developer |  | 
					Join Date: Apr 2003 
						Posts: 589
					      |  |  
	| 
 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`);
				__________________ 
				Read my developer notes at my blog .
 
	Quote: 
	
		| If it's not on IRC, it ain't l33t! |  |  
	
		
	
	
 
  |  |  |  |  
	| 
			
			 
			
				10-23-2009, 12:46 PM
			
			
			
		 |  
	| 
		
			
			| Developer |  | 
					Join Date: Apr 2003 
						Posts: 589
					      |  |  
	| 
				  
 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
void Bot::LoadAndSpawnAllZonedBots(Client* botOwner) {
	if(botOwner) {
		if(botOwner->HasGroup()) {
			Group* g = botOwner->GetGroup();
			if(g) {
				uint32 TempGroupId = g->GetID();
				std::string errorMessage;
				std::list<uint32> ActiveBots = Bot::GetGroupedBotsByGroupId(botOwner->GetGroup()->GetID(), &errorMessage);
				if(errorMessage.empty() && !ActiveBots.empty()) {
					for(list<uint32>::iterator itr = ActiveBots.begin(); itr != ActiveBots.end(); itr++) {
						Bot* activeBot = Bot::LoadBot(*itr, &errorMessage);
						if(!errorMessage.empty()) {
							safe_delete(activeBot);
							break;
						}
						if(activeBot) {
							activeBot->Spawn(botOwner, &errorMessage);
							g->UpdatePlayer(activeBot);
							
							if(g->GetLeader())
								activeBot->SetFollowID(g->GetLeader()->GetID());
						}
						if(activeBot && !botOwner->HasGroup())
							database.SetGroupID(activeBot->GetCleanName(), 0, activeBot->GetBotID());
					}
				}
				// Catch all condition for error messages destined for the zone error log
				if(!errorMessage.empty()) {
					// TODO: Log this error message to zone error log
				}
			}
		}
	}
} The fact that you can see your bot after it zones with you and it has spawned tells me you have gotten to this part of the code...
 
	Code: if(activeBot) {
							activeBot->Spawn(botOwner, &errorMessage); so i think for you, its just a matter of something not coming together as expected for the next two statements:
 
	Code: g->UpdatePlayer(activeBot);
							
							if(g->GetLeader())
								activeBot->SetFollowID(g->GetLeader()->GetID()); If you know how to debug this, then I'd recommend making sure that GetLeader() isn't returning a null value. if it is not, then I'd make sure that the same object returned by GetLeader() isn't returning a value from GetID() that is 0 .
 
I'll keep thinking on this for you.
				__________________ 
				Read my developer notes at my blog .
 
	Quote: 
	
		| If it's not on IRC, it ain't l33t! |  |  
 
  |  |  |  |  
	
		
	
	
 
  |  |  |  |  
	| 
			
			 
			
				10-23-2009, 02:06 PM
			
			
			
		 |  
	| 
		
			
			| Hill Giant |  | 
					Join Date: Sep 2009 
						Posts: 147
					      |  |  
	| 
				  
 I just noticed this line in the 1030_botzoningsupport.sql file 
	Code: DROP TABLE IF EXISTS `botactives`; The 1027_botactives.sql file creates this table, and then the 1030 update removes it.  Is this correct? From looking at the bots.sql file, this seems correct too me, because the latest bots.sql file does not create the botactives table, but I thought I'd check to make sure this is correct.
 
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 $$
	76
 	77 	DROP FUNCTION IF EXISTS `GetMobType` $$
  	78 	CREATE FUNCTION `GetMobType` (mobname VARCHAR(64)) RETURNS CHAR(1)
  	79	BEGIN
  	80 	    DECLARE Result CHAR(1);
  	81
 	82 	    SET Result = NULL;
 	83
 	84     IF (select count(*) from character_ where name = mobname) > 0 THEN
 	85 	      SET Result = 'C';
 	86 	    ELSEIF (select count(*) from bots where Name = mobname) > 0 THEN
 	87 	      SET Result = 'B';
 	88 	    END IF;
 	89
 	90 	    RETURN Result;
 	91 	END $$
 	92
 	93 	DELIMITER ; Not sure if this this will have an effect or not, but since it's not in my Database (i didn't source bots.sql, I thought the incremental update sql files  would get me there) and I can't find anything else different, I thought I'd mention it...
 
gonna source it in right now and see if there's any difference...
			
			
			
			
				  |  
 
  |  |  |  |  
	
		
	
	
	| 
			
			 
			
				10-23-2009, 02:28 PM
			
			
			
		 |  
	| 
		
			
			| Developer |  | 
					Join Date: Apr 2003 
						Posts: 589
					      |  |  
	| 
 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. 
				__________________ 
				Read my developer notes at my blog .
 
	Quote: 
	
		| If it's not on IRC, it ain't l33t! |  |  
	
		
	
	
	| 
			
			 
			
				10-23-2009, 02:34 PM
			
			
			
		 |  
	| 
		
			
			| Hill Giant |  | 
					Join Date: Sep 2009 
						Posts: 147
					      |  |  
	| 
 ah... well shoot... /sigh |  
	
		
	
	
	| 
			
			 
			
				10-23-2009, 07:14 PM
			
			
			
		 |  
	| 
		
			
			| Hill Giant |  | 
					Join Date: Sep 2009 
						Posts: 147
					      |  |  
	| 
 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..
 |  
	
		
	
	
 
  |  |  |  |  
	| 
			
			 
			
				10-24-2009, 12:18 PM
			
			
			
		 |  
	| 
		
			
			| Hill Giant |  | 
					Join Date: Sep 2009 
						Posts: 147
					      |  |  
	| 
				  
 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
6667 [10.24. - 09:06:44] [WORLD__CLIENT] Connection 192.168.1.70 PASSED banned IPs check.  Processing connection.
6667 [10.24. - 09:06:44] [WORLD__CLIENT] rvecchiolli: Logged in. Mode=(CharSel)
6667 [10.24. - 09:06:44] [WORLD__CLIENT] rvecchiolli: LS Account #1
6667 [10.24. - 09:07:28] [WORLD__CLIENT] rvecchiolli: Entering zone templeveeshan (124:0)
6667 [10.24. - 09:07:28] [WORLD__ZONE] [93] [templeveeshan] Setting to 'templeveeshan' (124:0) (Static)
6667 [10.24. - 09:07:28] [WORLD__CLIENT] rvecchiolli: Sending client to zone templeveeshan (124:0) at 192.168.1.135:7092
6667 [10.24. - 09:07:28] [WORLD__CLIENT] rvecchiolli: Client disconnected (not active in process) eqemu_error_zone.log (still no group): 
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.
[Debug] Nunyas has a melee rune spell buff with 650 points remaining.
Unable to get group id, char not found!
Unable to get raid id, char not found!
[Debug] [CLIENT__NET_ERR] Nunyas: Unhandled incoming opcode: [OpCode OP_WeaponEquip2 (0x63da) Size=8]
   0: 8D 01 00 00 40 00 00 00                            | ....@...
[Debug] [CLIENT__NET_ERR] Nunyas: Unhandled incoming opcode: [OpCode OP_WeaponEquip2 (0x63da) Size=8]
   0: 8D 01 00 00 80 00 00 00                            | ........
[Debug] [CLIENT__NET_ERR] Nunyas: Unhandled incoming opcode: [OpCode OP_WeaponEquip1 (0x6c5e) Size=12]
   0: 8D 01 00 00 00 00 00 00 - 00 00 00 00              | ............
			
			
			
			
				  |  
 
  |  |  |  |  
	
		
	
	
	| 
			
			 
			
				10-24-2009, 12:32 PM
			
			
			
		 |  
	| 
		
			
			| Developer |  | 
					Join Date: Apr 2003 
						Posts: 589
					      |  |  
	| 
 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) Its too bad we can't debug this for you. 
 
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); at least then you can be sure of what client or bot it is trying to get the group id for and then check to see if that exact name is in your group_id table.
				__________________ 
				Read my developer notes at my blog .
 
	Quote: 
	
		| If it's not on IRC, it ain't l33t! |  |  
	
		
	
	
	| 
			
			 
			
				10-24-2009, 12:37 PM
			
			
			
		 |  
	| 
		
			
			| Hill Giant |  | 
					Join Date: Sep 2009 
						Posts: 147
					      |  |  
	| 
 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;
+---------+--------+-----------+
| groupid | charid | name      |
+---------+--------+-----------+
|   92004 |     16 | Nukesalot |
|   92004 |      6 | Nunyas    |
+---------+--------+-----------+
2 rows in set (0.00 sec)
mysql> select * from group_leaders;
+-------+------------+---------+--------------+
| gid   | leadername | marknpc | leadershipaa |
+-------+------------+---------+--------------+
| 92004 | Nunyas     |         |              |
+-------+------------+---------+--------------+
1 row in set (0.00 sec) |  
	
		
	
	
	
	
	| 
	|  Posting Rules |  
	| 
		
		You may not post new threads You may not post replies You may not post attachments You may not edit your posts 
 HTML code is Off 
 |  |  |  All times are GMT -4. The time now is 07:37 PM.
 
 |  |  
    |  |  |  |  
    |  |  |  |  
     |  |  |  |  
 |  |