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 09-01-2005, 08:12 AM
FaerinTelDanor
Sarnak
 
Join Date: Jul 2005
Location: Ottawa, Ontario. Canada
Posts: 30
Default

I have the same problem with 0.6.0 dr3 ... haven't been able to track down the problem yet.
Reply With Quote
  #2  
Old 09-04-2005, 09:37 AM
Magoth78
Discordant
 
Join Date: Jun 2003
Posts: 345
Default

sdabbs65> By any chance, could you send me your attack.cpp (in your 0.6.0dr1 sources), please? (funzy78@hotmail.com)

Cause, I remember having this bug in 6.0dr1 just after LE added the PvPreward/PvPitem/LootCoin features. But he fixed it very quickly and I dunno if the changes have ever been sent to cvs.

So maybe you got the changes pre-PvPreward and in this case, this won't help me, or post-PvPreward and it might help me.

Thx by advance,
Mag
__________________
User's projects:
-- Original EMPIRE I/II and Factions! servers
-- Web GM Portal
-- EQoffline/bots
Reply With Quote
  #3  
Old 09-05-2005, 02:15 AM
Magoth78
Discordant
 
Join Date: Jun 2003
Posts: 345
Default

I've looked into my old 5.7dr6 sources and checked the file. The corpse is made in the same way that in the 0.6.0dr2 sources (minus the check for the PvPreward variable).

Code:
// now we apply the exp loss, unmem their spells, and make a corpse
	// unless they're a GM
	if(!GetGM())
	{
		if(exploss)
			SetEXP(GetEXP() - exploss > 1 ? GetEXP() - exploss : 1, GetAAXP());

		BuffFadeAll();
		UnmemSpellAll(false);

		// check db variable 'leavecorpses'
		char tmp[20] = {0};
		database.GetVariable("leavecorpses", tmp, 20);
		int leavecorpses = atoi(tmp);
		if(leavecorpses)
		{
			// creating the corpse takes the cash/items off the player too
			Corpse *new_corpse = new Corpse(this, exploss);
			entity_list.AddCorpse(new_corpse, GetID());
		}

//		if(!IsLD())//Todo: make it so an LDed client leaves corpse if its enabled
//			MakeCorpse(exploss);
	}
So the solution is *probably* not there. Now I guess I gotta check how the Corpse() function is working since the PvPreward/LootCoin variables and the SetPKItem() function have been added.

I really do need to find a fix because I got some bad issues with the corpses on 6.0dr2...
1/ corpses poof just after being killed by a npc/pc, you have to zone/camp to see the corpse
2/ or corpses poof just after being killed by pain and suffering and you are not able to see them even after zoning or camping, you have to reboot the zone...

Mag
ps: sdabbs, can you check in your attack.cpp (.6.0dr1 right?), look for the leavecorpse check called in the void Client:eath function and says if you have any check for the PvPreward/LootCoin/PvPitem variables, please? if it's the case, that would really help if you could send me the files attack.cpp and playerscorpses.cpp. Thanks.
__________________
User's projects:
-- Original EMPIRE I/II and Factions! servers
-- Web GM Portal
-- EQoffline/bots
Reply With Quote
  #4  
Old 09-05-2005, 10:13 AM
Magoth78
Discordant
 
Join Date: Jun 2003
Posts: 345
Default

I've found in the code a very very very ghetto fix but that makes the player's corpses staying in the ground once they die.

Just after this line in your attack.cpp: (~1317)
Code:
entity_list.AddCorpse(new_corpse, GetID());
add
Code:
entity_list.SendZoneCorpsesBulk(this);
It's very ghetto as everyone will can see/loot the corpse but the player who' just died will crash everytime. I think I understand why when I looked at the SendZoneCorpsesBulk thingie, it's like I send a corpse zone's update to the client who just died once he 's dead, but honestly why should'nt it work after all?

and if I add:
Code:
entity_list.SendZoneCorpsesBulk(other->CastToClient());
it makes a zone corpse's update to the player who has killed the other one. The player killer crashes, but not the player who just died, this time..

Any help would be appreciated,

Thx by advance
Mag
__________________
User's projects:
-- Original EMPIRE I/II and Factions! servers
-- Web GM Portal
-- EQoffline/bots

Last edited by Magoth78; 09-05-2005 at 06:19 PM..
Reply With Quote
  #5  
Old 09-15-2005, 01:07 PM
Dakaar
Sarnak
 
Join Date: Apr 2003
Posts: 53
Default

Im getting this problem in 6.2-DR1 Right now.

When player A kills player B, player B's corpse is visible to everyone but player A. Player a can zone and then see the corpse. Anyone can loot player B's corpse(as it should be), but when they do so they are 'bugged' untill they zone and cant access inventory, target stuff,etc.

Zone.exe reports no funky opcodes or anything during this time.
Reply With Quote
  #6  
Old 09-18-2005, 11:25 AM
Dakaar
Sarnak
 
Join Date: Apr 2003
Posts: 53
Default

In Attack.cpp line ~1,165
in Client:eath()
this line :
entity_list.QueueClients(this, &app);

Shouldnt it be:
entity_list.QueueClients(this,app); ?

I am at work and just going over the code.

Im thinking maybe its a problem in Corpse::Corpse ? If someone could post older versions of the functions to compare with? Thanks

Also, consider going through NPC:eath and seeing hwo the two corpses are handled and whats different? Just grasping at straws here..

Was addcorpse function changed around the time of rewarditem code? I see the arguments that get passed got simplified alot, could be something there..

looking at npc::death.. Shouldnt the entity_listQueueClients(this,app); in Client:eath be entitylist.QueueClients(other,app); ?

Last edited by Dakaar; 09-18-2005 at 07:52 PM..
Reply With Quote
  #7  
Old 09-18-2005, 12:07 PM
vRandom
Sarnak
 
Join Date: Jun 2005
Posts: 91
Default

I think the best way to look at the older code would be to browse the cvs, http://cvs.sourceforge.net/viewcvs.py/eqemulator

vRandom
Reply With Quote
Reply

Thread Tools
Display Modes

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 03:48 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 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3