fixed: ownership changing
This commit is contained in:
@@ -28,6 +28,8 @@ public class Entity
|
||||
Authority = eventAuthority;
|
||||
}
|
||||
|
||||
public void UpdateOwner(ushort ownerId) => OwnerId = ownerId;
|
||||
|
||||
public void ReplicateProperties(RagonSerializer serializer)
|
||||
{
|
||||
serializer.WriteUShort(EntityId);
|
||||
|
||||
@@ -116,9 +116,17 @@ namespace Ragon.Core
|
||||
_owner = nextOwnerId;
|
||||
var nextOwner = _players[nextOwnerId];
|
||||
|
||||
var entitiesToUpdate = player.Entities.Where(e => e.StaticId > 0).ToArray();
|
||||
|
||||
_serializer.Clear();
|
||||
_serializer.WriteOperation(RagonOperation.OWNERSHIP_CHANGED);
|
||||
_serializer.WriteString(nextOwner.Id);
|
||||
_serializer.WriteUShort((ushort) entitiesToUpdate.Length);
|
||||
foreach (var entity in entitiesToUpdate)
|
||||
{
|
||||
_serializer.WriteUShort(entity.EntityId);
|
||||
entity.UpdateOwner((ushort) nextOwnerId);
|
||||
}
|
||||
|
||||
var sendData = _serializer.ToArray();
|
||||
Broadcast(_readyPlayers, sendData);
|
||||
@@ -431,6 +439,7 @@ namespace Ragon.Core
|
||||
var sendData = _serializer.ToArray();
|
||||
Broadcast(_readyPlayers, sendData, DeliveryType.Reliable);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user