Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bots

Development::Bots Forum for bots.

Reply
 
Thread Tools Display Modes
  #1  
Old 12-29-2012, 10:02 AM
Thuz989
Sarnak
 
Join Date: Jan 2006
Posts: 45
Default Bot bug

Hi,

There is a repeatable bug in source code rev 2334 (32 bit) fresh build using PEQ 2294 and the sql required 2300 stated below..

Code:
ALTER TABLE `character_`  ADD COLUMN `inspectmessage` VARCHAR(256) NOT NULL DEFAULT '';
ALTER TABLE `bots`  ADD COLUMN `BotInspectMessage` VARCHAR(256) NOT NULL DEFAULT '';
What is happening is that logging in with seemingly any character(tried 59 warrior and 65 mage), making a mage or beastlord BOT, and the mage or BST BOT summon a pet, then you try to zone or log out and it crashes the zone.

If i make a mage or beast BOT and then zone quickly before they have a chance to cast pet i can zone ok.

I have tried dropping and readding all bot pet tables, no change.

Rolling back code until this is figured out, anyone else run into this and have a workaround?
Reply With Quote
  #2  
Old 12-29-2012, 10:34 AM
Thuz989
Sarnak
 
Join Date: Jan 2006
Posts: 45
Default

Addition that rolling back code to 2314 fixes the issue.

Is this associated with the pet buff fix in the next revision??
Reply With Quote
  #3  
Old 12-29-2012, 10:49 AM
Thuz989
Sarnak
 
Join Date: Jan 2006
Posts: 45
Default

Confirmed it breaks again in the same way in revision 2322
Reply With Quote
  #4  
Old 12-29-2012, 11:25 AM
Thuz989
Sarnak
 
Join Date: Jan 2006
Posts: 45
Default

if i updated to 2337 and then replace zonedb.cpp things seem to work fine..

this piece of code seems to cause the problem from 3222..

Code:
	Modify	/trunk/EQEmuServer/zone/zonedb.cpp	diff
...			
2109	2109			}
2110	2110			safe_delete_array(query);
2111	2111		
2112		-		for(i=0; i<BUFF_COUNT; i++) {
2112	+		for(i=0; i < RuleI(Spells, MaxTotalSlotsNPC); i++) {
2113	2113				if (petinfo->Buffs[i].spellid != SPELL_UNKNOWN && petinfo->Buffs[i].spellid != 0) {
2114	2114					database.RunQuery(query, MakeAnyLenString(&query,
2115	2115						"INSERT INTO `character_pet_buffs` (`char_id`, `pet`, `slot`, `spell_id`, `caster_level`, "
...			
2241	2241						continue;
2242	2242		
2243	2243					uint32 slot_id = atoul(row[1]);
2244		-				if(slot_id >= BUFF_COUNT) {
2244	+				if(slot_id >= RuleI(Spells, MaxTotalSlotsNPC)) {
2245	2245						continue;
2246	2246					}
2247	2247
Reply With Quote
  #5  
Old 12-29-2012, 02:03 PM
sorvani
Dragon
 
Join Date: May 2010
Posts: 966
Default

The max buff slot code was changed to accommodate new player limits and we found that if pets have more than 25 buff slots it causes issues. originally all the buff slots were hard coded to max 25.
We fixed players last night but I do not have a bots compiled server or database. I'll look at adding in more logic here to handle pets.
Reply With Quote
  #6  
Old 12-29-2012, 02:44 PM
Thuz989
Sarnak
 
Join Date: Jan 2006
Posts: 45
Default

Thank you!!
Reply With Quote
  #7  
Old 12-29-2012, 02:52 PM
sorvani
Dragon
 
Join Date: May 2010
Posts: 966
Default

this should be resolved in r2340.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 02:27 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3