Fix Ender Dragon damage, End portal transition, and End Poem crash
Dragon melee damage: reassign sub-entity IDs to be sequential from the parent entity ID in ServerLevel::entityAdded(), so the client's offset-based ID calculation matches the server. Previously the server's smallId pool allocated non-sequential IDs, causing melee attacks to target entity IDs the server didn't recognize. End portal transition: ensure the player entity is always added to the new level when transitioning from The End, not just for non-End dimensions. The addEntity call was previously gated behind a lastDimension != 1 check that also excluded it from End exits. End Poem crash: bounds-check the WIN_GAME event's player index before accessing localplayers[], with a fallback to prevent null dereference when the server sends an out-of-range index.
This commit is contained in:
@@ -1118,15 +1118,6 @@ bool EnderDragon::hurt(shared_ptr<MultiEntityMobPart> MultiEntityMobPart, Damage
|
||||
damage = damage / 4 + 1;
|
||||
}
|
||||
|
||||
//float rot1 = yRot * PI / 180;
|
||||
//float ss1 = sin(rot1);
|
||||
//float cc1 = cos(rot1);
|
||||
|
||||
//xTarget = x + ss1 * 5 + (random->nextFloat() - 0.5f) * 2;
|
||||
//yTarget = y + random->nextFloat() * 3 + 1;
|
||||
//zTarget = z - cc1 * 5 + (random->nextFloat() - 0.5f) * 2;
|
||||
//attackTarget = nullptr;
|
||||
|
||||
if ( source->getEntity() != nullptr && source->getEntity()->instanceof(eTYPE_PLAYER) || source->isExplosion() )
|
||||
{
|
||||
int healthBefore = getHealth();
|
||||
|
||||
Reference in New Issue
Block a user