Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bug Reports

Development::Bug Reports Post detailed bug reports and what you would like to see next in the emu here.

Reply
 
Thread Tools Display Modes
  #1  
Old 03-02-2009, 08:19 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default Secrets of Faydwer - Bug Tracking

This post is created to allow us to track bug reports with Secrets of Faydwer. A current list of the known issues for development tracking can be seen here:

http://www.eqemulator.net/forums/showthread.php?t=27429

If you find a bug that is not already on that list, please post it in this thread (not the development thread linked above) and I will get it added to that list. The list is updated regularly, so check back for current status and updates on bug reports and resolutions.

Here is a list of some of the known issues/bugs with SoF and what is known about them:
1. /who - /who actually works almost perfectly now. But, if you search for /who <name> or use /whotarget, it returns all players in the current zone.
2. Item Trading - Appears trading items may not always work perfectly. This is almost certainly a slot issue with the trade window and can probably be corrected with an adjustment to the encode/decode of it.

Unverified Bug Reports:
1. Disciplines Failing - Reports of some disciplines failing to execute. I think this happens on all clients.

SoF Bugs with the client iself:
1. Highhold Keep - From the brief testing I did on this, it appears that trying to enter the old HHK zone causes the client to crash and it needs to be moved out of the zone for them to be able to log in again. The old HHK zone was removed from the newer clients, and so they cannot access that zone.


Fixed Bugs from this post:
1. Fast Food/Drink Consumption - Food and Drink now get consumed at the proper rate.
2. Throwing/Ranged Animation - The throwing animation is now working (thanks Derision!)
3. Animation - All Animation issues are now resolved (thanks Derision!)
4. Drakkin Corpses - Drakkin corpses (as well as Froglok corpses) now show properly even after a zone dump occurs (thanks Derision!)
5. Spell Fizzles - After fizzling a spell, there is an especially long delay before the spell can be recast. It appears that there may be different ways of handling spell fizzles in SoF. In Titanium, I believe it was treated like a normal spell interrupt.
6. Disconnect on Death - You are no longer disconnected on Death in SoF.
7. Potion Belt - Potion belt appears to function correctly now.
8. Total Spent AAs - This is now reported correctly for all clients including SoF and SoD.

I will add more to this list later.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!

Last edited by trevius; 04-03-2010 at 06:30 AM..
Reply With Quote
  #2  
Old 09-29-2009, 11:23 AM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

this not gonna screw up the actual tribute in anyway? Not that I care much for tribute, but I am just curious.
Also - since this is a fix for SoF - will people running T be adversely affected?
Since post 75 T client shows hp correctly already.
Reply With Quote
  #3  
Old 09-29-2009, 01:47 PM
Davood
Discordant
 
Join Date: Jan 2005
Posts: 488
Default

Quote:
Originally Posted by ChaosSlayerZ View Post
this not gonna screw up the actual tribute in anyway? Not that I care much for tribute, but I am just curious.
Also - since this is a fix for SoF - will people running T be adversely affected?
Since post 75 T client shows hp correctly already.
Well in the sever handshake; the server knows if the client is running titanium or SoF; therefore you can run the extra code just for the SoF clients.
__________________
----------
Demon Overlord of Alakamin
skype @ davoodinator
Reply With Quote
  #4  
Old 09-29-2009, 05:21 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

That or you can not be lazy and I don't know account for the tribute in there too. That's what I meant by somewhat complicated.
Reply With Quote
  #5  
Old 10-19-2009, 11:20 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,447
Default

I hacked up the tribute code and came up with this.

tribute.cpp, replaced the entire function

Code:
void Client::DoTributeUpdate() {
	
	const Item_Struct* myitem = database.GetItem(1001);
	Item_Struct* item = (Item_Struct*) malloc(sizeof(Item_Struct));
	memcpy(item, myitem, sizeof(Item_Struct));

	if(GetLevel() >= 76 && this->GetClientVersion() == EQClientSoF)
	{
		item->HP += (CalcBaseHP() - 5);
		item->Mana += (CalcMaxMana() - 5);
		item->Endur += (this->max_end - 5);
	}


	const Item_Struct* item2 = item;
	ItemInst* myinst = database.CreateBaseItem(item2);
	SendFakeItem(400, myinst, ItemPacketTributeItem);
			return;
			
}
inventory.cpp, new function

Code:
void Client::SendFakeItem(sint16 slot_id, ItemInst* inst, ItemPacketType packet_type)
{

	if (!inst) 
		return;
	
	// Serialize item into |-delimited string
	string packet = inst->Serialize(slot_id);
	
	EmuOpcode opcode = OP_Unknown;
	EQApplicationPacket* outapp = NULL;
	ItemPacket_Struct* itempacket = NULL;
	
	// Construct packet
	opcode = (packet_type==ItemPacketViewLink) ? OP_ItemLinkResponse : OP_ItemPacket;
	outapp = new EQApplicationPacket(opcode, packet.length()+sizeof(ItemPacket_Struct));
	itempacket = (ItemPacket_Struct*)outapp->pBuffer;
	memcpy(itempacket->SerializedItem, packet.c_str(), packet.length());
	itempacket->PacketType = packet_type;
	
#if EQDEBUG >= 9
		DumpPacket(outapp);
#endif
	//DumpPacket(outapp);
	FastQueuePacket(&outapp);

}
and the corresponding header function in Client.h

Code:
void	SendFakeItem(sint16 slot_id, ItemInst* inst, ItemPacketType packet_type);
and lastly, make it so every time a player gains a level that it recalculates tributes & sends a new item, effectively granting the player a new stat, exp.cpp:

Code:
		DoTributeUpdate();
near

Code:
 CalcBonuses();
        if(!RuleB(Character, HealOnLevel))
        {
                int mhp = CalcMaxHP();
                if(GetHP() > mhp)
                        SetHP(mhp);
        }
        else
        {
                SetHP(CalcMaxHP());             // Why not, lets give them a free heal
        }
		DoTributeUpdate();
        SendHPUpdate();
        SetMana(CalcMaxMana());
        UpdateWho();
        Save();
that should do it. most of the hard work is done.

Also, I would change 1001 to a blank item, or use a non-used ID like 10 for the item. That will resolve adding AC to the client.

Other than that, it works.
Reply With Quote
  #6  
Old 10-19-2009, 11:26 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,447
Default

Quote:
Originally Posted by Secrets View Post
and lastly, make it so every time a player gains a level that it recalculates tributes & sends a new item, effectively granting the player a new stat, exp.cpp:
I would actually add it into CalcBonuses(); near the end, since that's the most logical place for it, seeing as it needs to be updated every time your hp/mana/end is changed, now that I think about it :p
Reply With Quote
  #7  
Old 10-19-2009, 11:42 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,447
Default

As per KLS' suggestion, I should use new instead of malloc(), so I am going to. I should also free memory :P

Code:
void Client::DoTributeUpdate() {
	
	const Item_Struct* myitem = database.GetItem(1001);
	Item_Struct* item = new Item_Struct;
	memcpy(item, myitem, sizeof(Item_Struct));

	if(GetLevel() >= 76 && this->GetClientVersion() == EQClientSoF)
	{
		item->HP += (CalcBaseHP() - 5);
		item->Mana += (CalcMaxMana() - 5);
		item->Endur += (this->max_end - 5);
	}


	const Item_Struct* item2 = item;
	ItemInst* myinst = database.CreateBaseItem(item2);
	SendFakeItem(400, myinst, ItemPacketTributeItem);
	delete item;
        delete myinst;
	return;
			
}

Last edited by Secrets; 10-19-2009 at 11:47 PM.. Reason: forgot myinst cleanup
Reply With Quote
  #8  
Old 06-27-2010, 06:33 AM
joligario's Avatar
joligario
Developer
 
Join Date: Mar 2003
Posts: 1,497
Default

Not new on Titanium as far as I can remember. Do you have any spell time reduction items or AAs? I think that's when I started noticing the short casting time.
Reply With Quote
  #9  
Old 06-27-2010, 09:27 PM
Midgett
Fire Beetle
 
Join Date: May 2009
Location: AL
Posts: 29
Default

Quote:
Not new on Titanium as far as I can remember. Do you have any spell time reduction items or AAs? I think that's when I started noticing the short casting time.
I started a new druid and #level him to 70. I then scribed beneficial spells to test. With no AAs and no gear, the casting bar empties before the spell lands. So I went through and only equiped one item at a time to see if I could track it down. With no AAs still, I tracked it down to 'Elegant Defiant Leather Boots'. It does have an effect that reduces casting time.

Usually when an AA or piece of gear reduces casting time, that usually means the casting bar starts at the new reduced time and empties out before the spell lands (ex. Egress and evac spells with AAs). That doesn't seem to be the case here. It's not finishing before the spell lands.

As for the appearance bug, no AA or piece of gear seems to have an effect.

I haven't played EQ since PoR expansion so things might have changed since the day. I am going by past memories; but then again, I didn't have gear that nice when I quit. :-P

Hope this helps!
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 04:17 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