Page 1 of 1

Respawn while .reload spawns

Posted: Sat Aug 08, 2015 12:14 am
by John Adams
Did a little "know this is gonna break it" testing just now, sure enough... I was in the middle of a .reload spawns all (server spawns) when a respawn timer kicked, and it exploded. We should probably check for that. Don't trigger respawn_timer when .reload spawns is running.

Code: Select all

 	WorldServer.exe!std::list<std::pair<unsigned int const ,SpawnPlacement>,std::allocator<std::pair<unsigned int const ,SpawnPlacement> > >::begin() Line 1115	C++
 	WorldServer.exe!std::_Hash<std::_Umap_traits<unsigned int,SpawnPlacement,std::_Uhash_compare<unsigned int,std::hash<unsigned int>,std::equal_to<unsigned int> >,std::allocator<std::pair<unsigned int const ,SpawnPlacement> >,0> >::begin() Line 429	C++
 	WorldServer.exe!MasterSpawnList::GetSpawnPlacement(unsigned int chunk_id, unsigned int location_id) Line 354	C++
>	WorldServer.exe!ChunkServer::CheckSpawnRespawns() Line 195	C++
 	WorldServer.exe!ChunkServer::Process() Line 234	C++
 	WorldServer.exe!ChunkProcessThread(void * data) Line 107	C++
 	WorldServer.exe!ThreadRun(void * arg) Line 77	C++
 	WorldServer.exe!_callthreadstart() Line 255	C
 	WorldServer.exe!_threadstart(void * ptd) Line 239	C
 	kernel32.dll!7716337a()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
 	ntdll.dll!77c492e2()	Unknown
 	ntdll.dll!77c492b5()	Unknown

Re: Respawn while .reload spawns

Posted: Sat Aug 08, 2015 8:05 am
by zippyzee
[quote="John Adams"]Did a little "know this is gonna break it" testing just now, sure enough... I was in the middle of a .reload spawns all (server spawns) when a respawn timer kicked, and it exploded. We should probably check for that. Don't trigger respawn_timer when .reload spawns is running.

Code: Select all

 	WorldServer.exe!std::list<std::pair<unsigned int const ,SpawnPlacement>,std::allocator<std::pair<unsigned int const ,SpawnPlacement> > >::begin() Line 1115	C++
 	WorldServer.exe!std::_Hash<std::_Umap_traits<unsigned int,SpawnPlacement,std::_Uhash_compare<unsigned int,std::hash<unsigned int>,std::equal_to<unsigned int> >,std::allocator<std::pair<unsigned int const ,SpawnPlacement> >,0> >::begin() Line 429	C++
 	WorldServer.exe!MasterSpawnList::GetSpawnPlacement(unsigned int chunk_id, unsigned int location_id) Line 354	C++
>	WorldServer.exe!ChunkServer::CheckSpawnRespawns() Line 195	C++
 	WorldServer.exe!ChunkServer::Process() Line 234	C++
 	WorldServer.exe!ChunkProcessThread(void * data) Line 107	C++
 	WorldServer.exe!ThreadRun(void * arg) Line 77	C++
 	WorldServer.exe!_callthreadstart() Line 255	C
 	WorldServer.exe!_threadstart(void * ptd) Line 239	C
 	kernel32.dll!7716337a()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
 	ntdll.dll!77c492e2()	Unknown
 	ntdll.dll!77c492b5()	Unknown
[/quote]

Not a problem. Should be pretty easy to fix, I would imagine.

Re: Respawn while .reload spawns

Posted: Sat Aug 08, 2015 9:55 am
by John Adams
Yeah it was late, I was exhausted, just making a bunch of notes for me to look into when I get a chance. I believe there is a "is loading" flag we can use. You don't have to fix this, I'll take a look.

Got a full plate today - bulk trash week here, and I have about 200 lbs of palm fronds to dismantle for the curb