Link to the issue for reference
https://github.com/DarkstarProject/darkstar/issues/2879
I've been looking at Limbus and the crashes we've been seeing since March or so. As far as I can tell, it's the result of the player 2+ (I've been testing with two, can confirm if need be) not having a battlefield assigned in their PChar->PBCNM. The check it fails at is in CBattlefieldHandler::disconnectFromBcnm (I need to confirm exactly where, i've edited my local with debugs so many times) but basically we end up here and either m_battlefields is null (shouldn't be) or PChar->PBCNM is different (unlikely) or null (likely). I think it's the null PChar->PBCNM because of other debugs i've tried to call that have failed as a result (can't do PChar->PBCNM->getID() if the PBCNM structure doesn't exist)
//show debug that we're in this function (printed for both chars to log)
//show debug that player (including name) disconnected and we should remove them (printed for both cahrs in log)
//put a debug here to print battlefield info - this doesn't work for second player (ie dies here) likely because PBCNM is null
for (int i = 0; i < m_MaxBattlefields; i++) {
//print out value of i
if (m_Battlefields != nullptr) {
//put a debug here to say we got in the if and let's check the battlefields match
if (m_Battlefields == PChar->PBCNM) {...}}
//put out one here to say we didn't hit the if}
So my question is this: can anyone tell me if player 2+ is ever actually added to the BC or they just have the battlefield effect and warp in via events? If I'm right, the second player and on aren't ever actually added to the BC, just the list with status effect, and this makes the BC behave in odd ways
I'm thinking we need to add something into matter_diffusion_module.lua/Radiant_Aureole.lua onEventUpdate (in the else clause) to add the second and later players in. Pretty sure it's a simple call to do it that'll test if the rest seems right
Anyone have any suggestions / confirmation / does this look right at all? I'll test either way but if it seems like my assumptions are right (null Battlefield for players caused by it never being assigned) and we think adding that in will work / is right, then i'll test that and see if it gets us anywhere
I can provide logs for all of this if needed. They are just rather large and need some cleaning up (i didn't clear out packet info since it was useful for the zone leave/enter/update stuff)
Question regarding limbus crashing (Issue 2879)
Forum rules
NO LONGER BEING MAINTAINED!
NO LONGER BEING MAINTAINED!
Re: Question regarding limbus crashing (Issue 2879)
at this point I don't think anyone really knows how limbus works anymore
Re: Question regarding limbus crashing (Issue 2879)
I do! It works horribly.kjLotus wrote:at this point I don't think anyone really knows how limbus works anymore
.
.
.
Vile mess needs completely tossed out and rewritten without the baggage of trying to work with what was there. Which I am plenty willing to do, but time has not been my friend lately.
Hi, I run The Demiurge server.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. - Martin Golding
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. - Martin Golding
DO NOT PRIVATE MESSAGE ME ABOUT BUGSPLS USE [ code ] CODE TAGS [ /code ] WHEN POSTING CODE