Page 1 of 2
[FIXED][Bug] Client Crash on Revive
Posted: Sun Jan 22, 2012 4:48 pm
by TILT
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:
Re: [Bug] Client Crash on Revive
Posted: Sun Jan 22, 2012 5:02 pm
by John Adams
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.
Re: [Bug] Client Crash on Revive
Posted: Sun Jan 22, 2012 5:30 pm
by TILT
Sounds good. Thanks for looking into this.
Re: [Bug] Client Crash on Revive
Posted: Mon Jan 23, 2012 1:25 am
by Scatman
Yeah I believe this has been a long haunting bug. Let's squash her.
Re: [Bug] Client Crash on Revive
Posted: Tue Jan 24, 2012 5:54 am
by TILT
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.
Re: [Bug] Client Crash on Revive
Posted: Thu Jan 26, 2012 9:50 pm
by TILT
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.
Re: [Bug] Client Crash on Revive
Posted: Fri Jan 27, 2012 8:38 am
by John Adams
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.
Re: [Bug] Client Crash on Revive
Posted: Fri Jan 27, 2012 8:57 am
by TILT
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.
Re: [Bug] Client Crash on Revive
Posted: Fri Jan 27, 2012 8:59 am
by John Adams
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.
Re: [Bug] Client Crash on Revive
Posted: Wed Feb 01, 2012 11:09 am
by John Adams
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

Re: [Bug] Client Crash on Revive
Posted: Wed Feb 01, 2012 11:18 am
by TILT
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.
Re: [Bug] Client Crash on Revive
Posted: Wed Feb 01, 2012 11:49 am
by John Adams
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.
Re: [Bug] Client Crash on Revive
Posted: Wed Feb 01, 2012 11:58 am
by TILT
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.
Re: [Bug] Client Crash on Revive
Posted: Wed Feb 01, 2012 12:16 pm
by John Adams
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.
Re: [Bug] Client Crash on Revive
Posted: Wed Feb 01, 2012 4:50 pm
by John Adams
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.