Beispiel #1
0
 private static void OnChangeOwnerRequest(MySyncGrid sync, ref ChangeOwnershipMsg msg, MyNetworkClient sender)
 {
     MyCubeBlock block = null;
     if (MyEntities.TryGetEntityById<MyCubeBlock>(msg.BlockId, out block))
     {
         if (Sync.IsServer && ((MyFakes.ENABLE_BATTLE_SYSTEM && MySession.Static.Battle && block.IDModule == null) || (block.IDModule.Owner == 0) || block.IDModule.Owner == msg.RequestingPlayer || (msg.Owner == 0)))
         {
             OnChangeOwner(sync, ref msg, sender);
             Sync.Layer.SendMessageToAll(ref msg, MyTransportMessageEnum.Success);
         }
         else
         {
             System.Diagnostics.Debug.Fail("Invalid ownership change request!");
         }
     }
 }
Beispiel #2
0
 private static void OnChangeOwner(MySyncGrid grid, ref ChangeOwnershipMsg msg, MyNetworkClient sender)
 {
     MyCubeBlock block = null;
     if (MyEntities.TryGetEntityById<MyCubeBlock>(msg.BlockId, out block))
     {
         block.ChangeOwner(msg.Owner, msg.ShareMode);
     }
 }
Beispiel #3
0
        internal void ChangeOwnerRequest(MyCubeGrid grid, MyCubeBlock block, long playerId, MyOwnershipShareModeEnum shareMode)
        {
            System.Diagnostics.Debug.Assert(playerId >= 0);
            System.Diagnostics.Debug.Assert((int)shareMode >= 0);

            var msg = new ChangeOwnershipMsg();
            msg.GridEntityId = grid.EntityId;
            msg.BlockId = block.EntityId;
            msg.Owner = playerId;
            msg.RequestingPlayer = playerId;
            msg.ShareMode = shareMode;

            Sync.Layer.SendMessageToServer(ref msg, MyTransportMessageEnum.Request);
        }