Beispiel #1
0
        void IChannelToServerZone.Invoke(int clientId, int entityId, IInvokePayload payload)
        {
            var serverEntity = GetEntity(entityId);

            if (serverEntity == null)
            {
                EntityInvalidTargetInvoked?.Invoke(clientId, entityId, payload);
                return;
            }

            // Check Ownership
            if (((serverEntity.Flags & EntityFlags.AnyoneCanControl) == 0) &&
                ((payload.Flags & PayloadFlags.AnyoneCanCall) == 0) &&
                serverEntity.OwnerId != clientId)
            {
                EntityInvalidOwnershipInvoked?.Invoke(clientId, serverEntity, payload);
                return;
            }

            if ((payload.Flags & PayloadFlags.PassThrough) != 0)
            {
                ((IServerZone)this).Invoke(entityId, payload);
            }
            else
            {
                payload.InvokeServer((IEntityServerHandler)serverEntity);
            }
        }
Beispiel #2
0
 void IZone.Invoke(int entityId, IInvokePayload payload)
 {
     foreach (var clientZone in _clientChannelMap.Values)
     {
         clientZone.Invoke(entityId, payload);
     }
 }
Beispiel #3
0
        void IChannelToClientZone.Invoke(int entityId, IInvokePayload payload)
        {
            var entity = GetEntity(entityId);

            if (entity != null)
            {
                payload.InvokeClient((IEntityClientHandler)entity);
            }
        }
 protected virtual void OnEntityInvalidOwnershipInvoke(int clientId, IServerEntity entity, IInvokePayload payload)
 {
     Debug.LogWarningFormat("OnEntityInvalidOwnershipInvoke({0}, {1}, {2}, {3})", clientId, entity.Id, entity.OwnerId,
                            payload.GetType().Name);
 }
 protected virtual void OnEntityInvalidTargetInvoke(int clientId, int entityId, IInvokePayload payload)
 {
     Debug.LogWarningFormat("OnEntityInvalidTargetInvoke({0}, {1}, {2})", clientId, entityId, payload.GetType().Name);
 }
 protected void SendInvoke(IInvokePayload payload)
 {
     Zone.Invoke(Id, payload);
 }
Beispiel #7
0
 private void OnInvalidOwnershipInvoke(int clientId, IServerEntity entity, IInvokePayload payload)
 {
     Logs.Add(Tuple.Create(entity.Id, "InvalidOwnershipInvoke"));
 }
Beispiel #8
0
 void IZone.Invoke(int entityId, IInvokePayload payload)
 {
     _serverChannel.Invoke(0, entityId, payload);
 }
Beispiel #9
0
 public void Invoke(int entityId, IInvokePayload payload)
 {
     _writer.Write((byte)4);
     _writer.Write(entityId);
     ProtobufStreamHelper.WriteObject(_writer, payload, TypeTable, TypeModel);
 }