[FIXED][Bug] Client Crash on Revive

Old bugs stored here for reference.
User avatar
TILT
Posts: 114
Joined: Thu Oct 13, 2011 12:03 am
Location: > /dev/null

[FIXED][Bug] Client Crash on Revive

Post by TILT » Sun Jan 22, 2012 4:48 pm

Posting this bug here for now. When attempting to report the bug while in-game, the chat window shows "error" upon sending the report.

Category: Mechanics

SubCategory: Other

Causes a crash: Causes Crash

Reproducible: Always Happens

Bug: Client crashes after selecting a revive point and produces a fatal error message.

To replicate this bug the player only needs to die (sometimes more than once) at which point they will be given a choice for revive locations. Upon selection, the fatal error pops and the client crashes.

Note: This bug was produced on EQ2Emulator public server (1-22-2012) using client version 6118L.

Here is the fatal error pop-up:
You do not have the required permissions to view the files attached to this post.
"Hell, there are no rules here - we're trying to accomplish something." Thomas A. Edison

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: [Bug] Client Crash on Revive

Post by John Adams » Sun Jan 22, 2012 5:02 pm

Thanks, TILT. Scat and I saw this last night, before I saw you mention working in "Revive Points"... so now this becomes fairly urgent to fix, or you can't do your work ;)

I'll take a look at it right now, but might need the Scatmasta's help.

User avatar
TILT
Posts: 114
Joined: Thu Oct 13, 2011 12:03 am
Location: > /dev/null

Re: [Bug] Client Crash on Revive

Post by TILT » Sun Jan 22, 2012 5:30 pm

Sounds good. Thanks for looking into this.
"Hell, there are no rules here - we're trying to accomplish something." Thomas A. Edison

User avatar
Scatman
Retired
Posts: 1688
Joined: Wed Apr 16, 2008 5:44 am
EQ2Emu Server: Scatman's Word
Characters: Scatman
Location: New Jersey

Re: [Bug] Client Crash on Revive

Post by Scatman » Mon Jan 23, 2012 1:25 am

Yeah I believe this has been a long haunting bug. Let's squash her.

User avatar
TILT
Posts: 114
Joined: Thu Oct 13, 2011 12:03 am
Location: > /dev/null

Re: [Bug] Client Crash on Revive

Post by TILT » Tue Jan 24, 2012 5:54 am

I'm not sure if this will help pinpoint where the problem occurs, but I noticed this bug doesn't seem to happen when the revive point selected sends the player to another zone. It only seems to happen when the revive point is within the current zone the player has died in.

Edit: Actually just manually zoning anywhere the bug will not occur until after the first death in the same zone.
"Hell, there are no rules here - we're trying to accomplish something." Thomas A. Edison

User avatar
TILT
Posts: 114
Joined: Thu Oct 13, 2011 12:03 am
Location: > /dev/null

Re: [Bug] Client Crash on Revive

Post by TILT » Thu Jan 26, 2012 9:50 pm

TILT wrote:Actually just manually zoning anywhere the bug will not occur until after the first death in the same zone.
I hate to quote myself here but I didn't want to edit my last post again and have this missed in the ongoing effort to find out what is causing this nasty bug. The above quoted statement is actually true when replicating the bug on SF client 6118L; however, this is not the case for DoV client 7628L which seems to crash regardless.
"Hell, there are no rules here - we're trying to accomplish something." Thomas A. Edison

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: [Bug] Client Crash on Revive

Post by John Adams » Fri Jan 27, 2012 8:38 am

TILT wrote:Posting this bug here for now. When attempting to report the bug while in-game, the chat window shows "error" upon sending the report.
TILT (and other Team Members), when you follow this link, do you see an "Add" button? If so, you can add bugs to the Bug Tracker from the website vs in-game, for cases such as this.

The module is in Test (with you guys) right now, and if it works okay, I can open it to the public.
John Adams
EQ2Emulator - Project Ghost
"Everything should work now, except the stuff that doesn't" ~Xinux

User avatar
TILT
Posts: 114
Joined: Thu Oct 13, 2011 12:03 am
Location: > /dev/null

Re: [Bug] Client Crash on Revive

Post by TILT » Fri Jan 27, 2012 8:57 am

John Adams wrote:TILT (and other Team Members), when you follow this link, do you see an "Add" button?
I do not see an "Add" button anywhere.
You do not have the required permissions to view the files attached to this post.
"Hell, there are no rules here - we're trying to accomplish something." Thomas A. Edison

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: [Bug] Client Crash on Revive

Post by John Adams » Fri Jan 27, 2012 8:59 am

Okay, I forgot I changed the damn groups all around, so I have to update the "allowed PHPBB groups" id's... damn, probably broke a lot by doing that :)

I'll have that fixed today.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: [Bug] Client Crash on Revive

Post by John Adams » Wed Feb 01, 2012 11:09 am

Wow. HandlePlayerRevive() is quite a function. Check out all the packets that have to line up...
WS_ServerControlFlags
WS_Resurrected
WS_CancelMoveObjectMode
WS_TeleportWithinZone
WS_SetControlGhost
WS_SetPOVGhostCmd
Gonna find this sucker if it kills me... which I hope it doesn't, because I won't be able to revive without crashing :shock:

User avatar
TILT
Posts: 114
Joined: Thu Oct 13, 2011 12:03 am
Location: > /dev/null

Re: [Bug] Client Crash on Revive

Post by TILT » Wed Feb 01, 2012 11:18 am

I was thinking it may be one of those structs since in 6118L you can revive once in a zone without crashing but when using 7628L you crash immediately. It doesn't seem like this would relate directly to the code itself but I could be wrong.
"Hell, there are no rules here - we're trying to accomplish something." Thomas A. Edison

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: [Bug] Client Crash on Revive

Post by John Adams » Wed Feb 01, 2012 11:49 am

And naturally, now that I've peppered the code with logs and printpackets, there is no crash. Going to attempt the Million Ways to Die and see if I can trap it, otherwise I'll put this code on our test servers and let anyone else attempt to die.

User avatar
TILT
Posts: 114
Joined: Thu Oct 13, 2011 12:03 am
Location: > /dev/null

Re: [Bug] Client Crash on Revive

Post by TILT » Wed Feb 01, 2012 11:58 am

John Adams wrote:And naturally, now that I've peppered the code with logs and printpackets, there is no crash.
Figures - lol!
John Adams wrote:'ll put this code on our test servers and let anyone else attempt to die.
Thanks for doing this as this bug is really annoying and would be a huge fix for stability! I look forward to testing more.
"Hell, there are no rules here - we're trying to accomplish something." Thomas A. Edison

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: [Bug] Client Crash on Revive

Post by John Adams » Wed Feb 01, 2012 12:16 pm

Okay, here's my debug logging of this event. TILT is right, first death with the 6118L client seems to revive just fine. No revive points set, so it is using zone safe coords.

Both deaths are in an unpopulated zone (GM Hall) and using the /kill self command.

The OKAY death/revive:

Code: Select all

17:59:02 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 36 00 04 00 73 65 6C 66                            | 6...self
17:59:02 D Command: Handler: 54, COMMAND: 'kill'
17:59:02 D Command: Player 'John' (150), Command: kill
17:59:02 D Zone: ZoneServer::RemoveSpawnSupportFunctions
17:59:02 D Zone: ZoneServer::RemoveDeadEnemyList
17:59:02 D Zone: WS_HearDeath Packet:
Name: attacker          Index:  0       Type:  int32            Data:  01
Name: defender          Index:  0       Type:  int32            Data:  01
Name: damage_type       Index:  0       Type:  int8             Data:  00
Name: blow_type         Index:  0       Type:  int16            Data:  00
17:59:02 D Zone: DisplayDeadWindow()
17:59:02 D Client: WS_ServerControlFlags Packet (parameter1=8):
Name: parameter1        Index:  0       Type:  int8             Data:  08
Name: parameter2        Index:  0       Type:  int8             Data:  00
Name: parameter3        Index:  0       Type:  int8             Data:  00
Name: parameter4        Index:  0       Type:  int8             Data:  00
Name: parameter5        Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  1       Type:  int8             Data:  00
Name: unknown   Index:  2       Type:  int8             Data:  00
Name: value     Index:  0       Type:  int8             Data:  01
17:59:02 D Client: WS_ServerControlFlags Packet (parameter1=16):
Name: parameter1        Index:  0       Type:  int8             Data:  16
Name: parameter2        Index:  0       Type:  int8             Data:  00
Name: parameter3        Index:  0       Type:  int8             Data:  00
Name: parameter4        Index:  0       Type:  int8             Data:  00
Name: parameter5        Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  1       Type:  int8             Data:  00
Name: unknown   Index:  2       Type:  int8             Data:  00
Name: value     Index:  0       Type:  int8             Data:  01
17:59:02 D Client: WS_ServerUpdateTarget Packet:
Name: spawn_id          Index:  0       Type:  int32            Data:  4294967295
Name: unknown   Index:  0       Type:  int8             Data:  00
17:59:02 D Client: SendPlayerDeathWindow
17:59:02 D Zone: ZoneServer::GetRevivePoints
17:59:02 D Zone: Got revive point in ZoneServer::GetRevivePoints!
17:59:02 W Zone: No Revive Points set for zoneID 1. Add some!
17:59:02 D Client: WS_DeathWindow Packet:
Name: location_count    Index:  0       Type:  int16            Data:  01
Array:  Data:
Name: location_id_0     Index:  0       Type:  int32            Data:  4294967295
Name: unknown2_0        Index:  0       Type:  int8             Data:  00
Name: zone_name_0       Index:  0       Type:  EQ2_16BitString  Data:  GM Playground
Name: location_name_0   Index:  0       Type:  EQ2_16BitString  Data:  Zone Safe Point
Name: choice_text_0     Index:  0       Type:  EQ2_16BitString  Data:
Name: distance_0        Index:  0       Type:  float            Data:  0
Name: unknown5          Index:  0       Type:  int8             Data:  00
Name: unknown5          Index:  1       Type:  int8             Data:  00
Name: unknown5          Index:  2       Type:  int8             Data:  00
17:59:02 D Zone: ZoneServer::RemoveSpawn
17:59:02 D Zone: ZoneServer::RemoveSpawnSupportFunctions
17:59:02 D Zone: ZoneServer::RemoveDeadEnemyList
17:59:02 D Zone: ZoneServer::RemoveDeadEnemyList
17:59:02 D Zone: Enter: ZoneServer::SendRemoveSpawn
17:59:02 D Zone: GetIndexForSpawn: 1, WasSpawnRemoved = false
17:59:02 D Zone: Has Packet (before):
Name: spawn_index       Index:  0       Type:  int16            Data:  00
Name: delete    Index:  0       Type:  int8             Data:  00
17:59:02 D Player: Remove Spawn 'John' (25176)
17:59:02 D Zone: player_spawn_id_map.erase()
17:59:02 D Zone: player_spawn_reverse_id_map.erase()
17:59:02 D Zone: Has Packet (after):
Name: spawn_index       Index:  0       Type:  int16            Data:  01
Name: delete    Index:  0       Type:  int8             Data:  01
17:59:02 D Zone: Exit True: ZoneServer::SendRemoveSpawn
Name: spawn_index       Index:  0       Type:  int16            Data:  01
Name: delete    Index:  0       Type:  int8             Data:  01
17:59:03 D Opcode: Opcode 0029 (41): OP_UpdateTargetMsg
17:59:03 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 09 01 00 00                                        | ....
17:59:03 D Command: Player 'John' (150), Command: clearallqueuedabilities
17:59:03 D Player: John left grid 4294967295 and entered grid 1000839081
17:59:10 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 35 00 0A 00 34 32 39 34 - 39 36 37 32 39 35        | 5...4294967295
17:59:10 D Command: Handler: 53, COMMAND: 'select_junction'
17:59:10 D Command: Player 'John' (150), Command: select_junction
17:59:10 D Client: WS_ServerControlFlags Packet (parameter1=8):
Name: parameter1        Index:  0       Type:  int8             Data:  08
Name: parameter2        Index:  0       Type:  int8             Data:  00
Name: parameter3        Index:  0       Type:  int8             Data:  00
Name: parameter4        Index:  0       Type:  int8             Data:  00
Name: parameter5        Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  1       Type:  int8             Data:  00
Name: unknown   Index:  2       Type:  int8             Data:  00
Name: value     Index:  0       Type:  int8             Data:  00
17:59:10 D Client: WS_ServerControlFlags Packet (parameter1=16):
Name: parameter1        Index:  0       Type:  int8             Data:  16
Name: parameter2        Index:  0       Type:  int8             Data:  00
Name: parameter3        Index:  0       Type:  int8             Data:  00
Name: parameter4        Index:  0       Type:  int8             Data:  00
Name: parameter5        Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  1       Type:  int8             Data:  00
Name: unknown   Index:  2       Type:  int8             Data:  00
Name: value     Index:  0       Type:  int8             Data:  00
17:59:10 D Client: WS_Resurrected Packet:
Name: unknown   Index:  0       Type:  int8             Data:  00
17:59:10 W Client: No Revive Point! Spawning player at safe coordinates!
17:59:10 D Client: Attempt Revive @ GM Playground, 665.43, -35.90, 1485.44, 0.00, HP: 40, Pow: 1, Zone Safe Point
17:59:11 D Client: WS_CancelMoveObjectMode Packet:
Name: unknown   Index:  0       Type:  int32            Data:  00
17:59:11 D Client: WS_TeleportWithinZone Packet:
Name: x         Index:  0       Type:  float            Data:  665.435
Name: y         Index:  0       Type:  float            Data:  -35.8975
Name: z         Index:  0       Type:  float            Data:  1485.44
17:59:11 D Client: WS_SetControlGhost Packet:
Name: spawn_id          Index:  0       Type:  int32            Data:  4294967295
Name: speed     Index:  0       Type:  float            Data:  0
Name: size      Index:  0       Type:  float            Data:  0
Name: unknown2          Index:  0       Type:  int8             Data:  255
17:59:11 D Client: WS_SetPOVGhostCmd Packet:
Name: spawn_id          Index:  0       Type:  int32            Data:  4294967295
17:59:11 D Zone: ZoneServer::RemoveSpawn
17:59:11 D Zone: ZoneServer::RemoveSpawnSupportFunctions
17:59:11 D Zone: ZoneServer::RemoveDeadEnemyList
17:59:11 D Zone: ZoneServer::RemoveDeadEnemyList
17:59:11 D Zone: Enter: ZoneServer::SendRemoveSpawn
17:59:11 D Zone: GetIndexForSpawn: 0, WasSpawnRemoved = true
17:59:11 D Zone: Exit False: ZoneServer::SendRemoveSpawn
Name: spawn_index       Index:  0       Type:  int16            Data:  00
Name: delete    Index:  0       Type:  int8             Data:  00
17:59:11 D Opcode: Opcode 0029 (41): OP_UpdateTargetMsg
17:59:11 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 09 01 00 00                                        | ....
17:59:11 D Command: Player 'John' (150), Command: clearallqueuedabilities
17:59:11 D Opcode: Opcode 000D (13): OP_DoneLoadingZoneResourcesMsg
17:59:12 D Opcode: Opcode 000F (15): OP_DoneLoadingEntityResourcesMsg
17:59:12 D Items: Loading items for character 'John' (2)
17:59:12 D Player: Getting current title index for player 'John'...
17:59:12 D Player:      Prefix Index: -1
17:59:12 D Player: Getting current title index for player 'John'...
17:59:12 D Player:      Suffix Index: -1
17:59:12 D Merchant: Loading Buyback - Player: 2
17:59:12 D Opcode: Opcode 0010 (16): OP_PredictionUpdateMsg
17:59:13 D Packet: Unable to convert EQ opcode 0X00B3 to an emu opcode.
17:59:13 D Opcode: Opcode 0000 (0): Unknown in ..\..\source\WorldServer\client.cpp
17:59:13 D Opcode: OP_Unknown Received 00B3 (179)
17:59:13 D Opcode: Opcode 0029 (41): OP_UpdateTargetMsg
17:59:13 D Opcode: Opcode 00B5 (181): OP_SignalMsg
17:59:13 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 09 01 00 00                                        | ....
17:59:13 D Command: Player 'John' (150), Command: clearallqueuedabilities
17:59:13 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 25 00 01 00 30                                     | %...0
17:59:13 D Command: Handler: 37, COMMAND: 'autoattack'
17:59:13 D Command: Player 'John' (150), Command: autoattack
17:59:13 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 23 00 01 00 31                                     | #...1
17:59:13 D Command: Handler: 35, COMMAND: 'enablequeuedabilities'
17:59:13 D Command: Player 'John' (150), Command: enablequeuedabilities
17:59:22 D Player: John left grid 4294967295 and entered grid 1000839081

The 2nd Death, crashes client with ProxyActor (proximity code?)

Code: Select all

18:00:30 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 36 00 04 00 73 65 6C 66                            | 6...self
18:00:30 D Command: Handler: 54, COMMAND: 'kill'
18:00:30 D Command: Player 'John' (150), Command: kill
18:00:30 D Zone: ZoneServer::RemoveSpawnSupportFunctions
18:00:30 D Zone: ZoneServer::RemoveDeadEnemyList
18:00:30 D Zone: WS_HearDeath Packet:
Name: attacker          Index:  0       Type:  int32            Data:  00
Name: defender          Index:  0       Type:  int32            Data:  00
Name: damage_type       Index:  0       Type:  int8             Data:  00
Name: blow_type         Index:  0       Type:  int16            Data:  00
18:00:30 D Zone: DisplayDeadWindow()
18:00:30 D Client: WS_ServerControlFlags Packet (parameter1=8):
Name: parameter1        Index:  0       Type:  int8             Data:  08
Name: parameter2        Index:  0       Type:  int8             Data:  00
Name: parameter3        Index:  0       Type:  int8             Data:  00
Name: parameter4        Index:  0       Type:  int8             Data:  00
Name: parameter5        Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  1       Type:  int8             Data:  00
Name: unknown   Index:  2       Type:  int8             Data:  00
Name: value     Index:  0       Type:  int8             Data:  01
18:00:30 D Client: WS_ServerControlFlags Packet (parameter1=16):
Name: parameter1        Index:  0       Type:  int8             Data:  16
Name: parameter2        Index:  0       Type:  int8             Data:  00
Name: parameter3        Index:  0       Type:  int8             Data:  00
Name: parameter4        Index:  0       Type:  int8             Data:  00
Name: parameter5        Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  1       Type:  int8             Data:  00
Name: unknown   Index:  2       Type:  int8             Data:  00
Name: value     Index:  0       Type:  int8             Data:  01
18:00:30 D Client: WS_ServerUpdateTarget Packet:
Name: spawn_id          Index:  0       Type:  int32            Data:  4294967295
Name: unknown   Index:  0       Type:  int8             Data:  00
18:00:30 D Client: SendPlayerDeathWindow
18:00:30 D Zone: ZoneServer::GetRevivePoints
18:00:30 D Zone: Got revive point in ZoneServer::GetRevivePoints!
18:00:30 W Zone: No Revive Points set for zoneID 1. Add some!
18:00:30 D Client: WS_DeathWindow Packet:
Name: location_count    Index:  0       Type:  int16            Data:  01
Array:  Data:
Name: location_id_0     Index:  0       Type:  int32            Data:  4294967295
Name: unknown2_0        Index:  0       Type:  int8             Data:  00
Name: zone_name_0       Index:  0       Type:  EQ2_16BitString  Data:  GM Playground
Name: location_name_0   Index:  0       Type:  EQ2_16BitString  Data:  Zone Safe Point
Name: choice_text_0     Index:  0       Type:  EQ2_16BitString  Data:
Name: distance_0        Index:  0       Type:  float            Data:  0
Name: unknown5          Index:  0       Type:  int8             Data:  00
Name: unknown5          Index:  1       Type:  int8             Data:  00
Name: unknown5          Index:  2       Type:  int8             Data:  00
18:00:30 D Opcode: Opcode 0029 (41): OP_UpdateTargetMsg
18:00:30 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 09 01 00 00                                        | ....
18:00:30 D Command: Player 'John' (150), Command: clearallqueuedabilities
18:00:30 D Zone: ZoneServer::RemoveSpawn
18:00:30 D Zone: ZoneServer::RemoveSpawnSupportFunctions
18:00:30 D Zone: ZoneServer::RemoveDeadEnemyList
18:00:30 D Zone: ZoneServer::RemoveDeadEnemyList
18:00:30 D Zone: Enter: ZoneServer::SendRemoveSpawn
18:00:30 D Zone: GetIndexForSpawn: 2, WasSpawnRemoved = false
18:00:30 D Zone: Has Packet (before):
Name: spawn_index       Index:  0       Type:  int16            Data:  00
Name: delete    Index:  0       Type:  int8             Data:  00
18:00:30 D Player: Remove Spawn 'John' (25176)
18:00:30 D Zone: player_spawn_id_map.erase()
18:00:30 D Zone: player_spawn_reverse_id_map.erase()
18:00:30 D Zone: Has Packet (after):
Name: spawn_index       Index:  0       Type:  int16            Data:  02
Name: delete    Index:  0       Type:  int8             Data:  01
18:00:30 D Zone: Exit True: ZoneServer::SendRemoveSpawn
Name: spawn_index       Index:  0       Type:  int16            Data:  02
Name: delete    Index:  0       Type:  int8             Data:  01
18:00:37 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 35 00 0A 00 34 32 39 34 - 39 36 37 32 39 35        | 5...4294967295
18:00:37 D Command: Handler: 53, COMMAND: 'select_junction'
18:00:37 D Command: Player 'John' (150), Command: select_junction
18:00:37 D Client: WS_ServerControlFlags Packet (parameter1=8):
Name: parameter1        Index:  0       Type:  int8             Data:  08
Name: parameter2        Index:  0       Type:  int8             Data:  00
Name: parameter3        Index:  0       Type:  int8             Data:  00
Name: parameter4        Index:  0       Type:  int8             Data:  00
Name: parameter5        Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  1       Type:  int8             Data:  00
Name: unknown   Index:  2       Type:  int8             Data:  00
Name: value     Index:  0       Type:  int8             Data:  00
18:00:37 D Client: WS_ServerControlFlags Packet (parameter1=16):
Name: parameter1        Index:  0       Type:  int8             Data:  16
Name: parameter2        Index:  0       Type:  int8             Data:  00
Name: parameter3        Index:  0       Type:  int8             Data:  00
Name: parameter4        Index:  0       Type:  int8             Data:  00
Name: parameter5        Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  0       Type:  int8             Data:  00
Name: unknown   Index:  1       Type:  int8             Data:  00
Name: unknown   Index:  2       Type:  int8             Data:  00
Name: value     Index:  0       Type:  int8             Data:  00
18:00:37 D Client: WS_Resurrected Packet:
Name: unknown   Index:  0       Type:  int8             Data:  00
18:00:37 W Client: No Revive Point! Spawning player at safe coordinates!
18:00:37 D Client: Attempt Revive @ GM Playground, 665.43, -35.90, 1485.44, 0.00, HP: 40, Pow: 1, Zone Safe Point
18:00:37 D Client: WS_CancelMoveObjectMode Packet:
Name: unknown   Index:  0       Type:  int32            Data:  00
18:00:37 D Client: WS_TeleportWithinZone Packet:
Name: x         Index:  0       Type:  float            Data:  665.435
Name: y         Index:  0       Type:  float            Data:  -35.8975
Name: z         Index:  0       Type:  float            Data:  1485.44
18:00:37 D Client: WS_SetControlGhost Packet:
Name: spawn_id          Index:  0       Type:  int32            Data:  4294967295
Name: speed     Index:  0       Type:  float            Data:  0
Name: size      Index:  0       Type:  float            Data:  0
Name: unknown2          Index:  0       Type:  int8             Data:  255
18:00:37 D Client: WS_SetPOVGhostCmd Packet:
Name: spawn_id          Index:  0       Type:  int32            Data:  4294967295
18:00:37 D Zone: ZoneServer::RemoveSpawn
18:00:37 D Zone: ZoneServer::RemoveSpawnSupportFunctions
18:00:37 D Zone: ZoneServer::RemoveDeadEnemyList
18:00:37 D Zone: ZoneServer::RemoveDeadEnemyList
18:00:37 D Zone: Enter: ZoneServer::SendRemoveSpawn
18:00:37 D Zone: GetIndexForSpawn: 0, WasSpawnRemoved = true
18:00:37 D Zone: Exit False: ZoneServer::SendRemoveSpawn
Name: spawn_index       Index:  0       Type:  int16            Data:  00
Name: delete    Index:  0       Type:  int8             Data:  00
18:00:37 D Opcode: Opcode 0029 (41): OP_UpdateTargetMsg
18:00:37 D Opcode: Opcode 0011 (17): OP_RemoteCmdMsg
   0: 09 01 00 00                                        | ....
18:00:37 D Command: Player 'John' (150), Command: clearallqueuedabilities
18:00:37 D Opcode: Opcode 00B5 (181): OP_SignalMsg
18:00:37 D Opcode: Opcode 000D (13): OP_DoneLoadingZoneResourcesMsg
18:00:38 D Opcode: Opcode 000F (15): OP_DoneLoadingEntityResourcesMsg
18:00:38 D Items: Loading items for character 'John' (2)
18:00:38 D Player: Getting current title index for player 'John'...
18:00:38 D Player:      Prefix Index: -1
18:00:38 D Player: Getting current title index for player 'John'...
18:00:38 D Player:      Suffix Index: -1
18:00:38 D Merchant: Loading Buyback - Player: 2
18:01:24 D World: Timeout up!, state=
18:01:25 D Zone: ZoneServer::RemoveSpawn
18:01:25 D Zone: ZoneServer::RemoveSpawnSupportFunctions
18:01:25 D Zone: ZoneServer::RemoveDeadEnemyList
18:01:25 D Zone: ZoneServer::RemoveDeadEnemyList
18:01:25 I Zone: Scheduling client 'John' for removal.
18:01:25 D Player: Toggling Character OFFLINE!
18:01:34 D World: Timeout up!, state=
18:01:39 D World: Timeout up!, state=
18:01:39 D World: Removing connection...
Unless I am missing something, these 2 deaths look identical.
With better placement of packet->PrintPacket() statements, I do start seeing differences. Help me look these two dumps over, see if we can figure this thing out.


Btw, this is the only place this function is called in the entire World:

Code: Select all

		case COMMAND_SELECT_JUNCTION:{
			LogWrite(MISC__TODO, "TODO", "For access/travel selections (i.e. Mariner Bells, Player Death Window, etc.)\n\t(%s, function: %s, line #: %i)", __FILE__, __FUNCTION__, __LINE__);
			int32 choice = 0;
			if(sep && sep->arg[0] && sep->IsNumber(0))
				choice = atoul(sep->arg[0]);
			if(client->GetPlayer()->GetHP() == 0){ //dead and this is a revive request
				client->HandlePlayerRevive(choice);
			}
			break;
									 }

Edit: Updated the blocks of code a few times, after getting better placement of my printpackets.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: [Bug] Client Crash on Revive

Post by John Adams » Wed Feb 01, 2012 4:50 pm

I have spent the entire day, and I do not exaggerate, ask Xinux... trying to chase this down. There are so many threads running in so many directions, I cannot figure out how to properly debug this.

So once again, I fall to the mercy of Scatman (or other savvy C++ devs) to try and find the answer to this problem. With the 6118 client and a brand spanking new fresh database, you can crash your client every time you die once, revive, die again, revive again, crash.

Should be simple for you smart guys to figure out.

Locked

Who is online

Users browsing this forum: No registered users and 0 guests