Example #1
0
 void SendEntitySync(NetConnection <NetSession> conn, NEntitySync nEntitySync)
 {
     //Log.InfoFormat("SendEntitySync:nEntityEvent:{0}", nEntitySync.Event.ToString());
     conn.Session.Response.mapEntitySync = new MapEntitySyncResponse();
     conn.Session.Response.mapEntitySync.entitySyncs.Add(nEntitySync);
     conn.SendResponse();
 }
Example #2
0
        public void SendEntityUpdate(NetConnection <NetSession> sender, NEntitySync entity)
        {
            sender.Session.Response.mapEntitySync = new MapEntitySyncResponse();
            sender.Session.Response.mapEntitySync.entitySyncs.Add(entity);

            sender.SendResponse();
        }
Example #3
0
        public void SendEntityUpdate(NetConnection <NetSession> sender, NEntitySync entitySync)
        {
            NetMessage message = new NetMessage();

            message.Response = new NetMessageResponse();
            message.Response.mapEntitySync = new MapEntitySyncResponse();
            message.Response.mapEntitySync.entitySyncs.Add(entitySync);
            sender.SendData(message);
        }
Example #4
0
        internal void SendEntitySync(NetConnection <NetSession> connection, NEntitySync entitySync)
        {
            NetMessage message = new NetMessage();

            message.Response = new NetMessageResponse();
            message.Response.mapEntitySync = new MapEntitySyncResponse();
            message.Response.mapEntitySync.entitySyncs.Add(entitySync);
            byte[] data = PackageHandler.PackMessage(message);
            connection.SendData(data, 0, data.Length);
        }
Example #5
0
        public override void SopMove()
        {
            this.state      = CharacterState.Idle;
            this.moveTarget = Vector3Int.zero;
            this.Speed      = 0;

            NEntitySync sync = new NEntitySync();

            sync.Entity = this.EntityData;
            sync.Event  = EntityEvent.Idle;
            sync.Id     = this.entityId;
            this.map.UpdateEntity(sync);
        }
Example #6
0
 public void EntitySync(NEntitySync nEntitySync)
 {
     foreach (var kv in this.MapCharacters)
     {
         if (kv.Value.character.entityId == nEntitySync.Id)
         {
             kv.Value.character.SetEntityData(nEntitySync.Entity);
         }
         else
         {
             SendEntitySync(kv.Value.connection, nEntitySync);
         }
     }
 }
Example #7
0
 public void UpdateMapEntity(NEntitySync entity)
 {
     foreach (var mapCharacter in characters.Values)
     {
         if (mapCharacter.character.entityId == entity.Id)
         {
             mapCharacter.character.Position  = entity.Entity.Position;
             mapCharacter.character.Direction = entity.Entity.Direction;
             mapCharacter.character.Speed     = entity.Entity.Speed;
         }
         else
         {
             MapService.Instance.SendEntityUpdate(mapCharacter.connection, entity);
         }
     }
 }
Example #8
0
 public void UpdateSync(NEntitySync entitySync)
 {
     foreach (var player in MapCharacters)
     {
         if (player.Value.character.entityId == entitySync.Id)
         {
             player.Value.character.Position  = entitySync.Entity.Position;
             player.Value.character.Direction = entitySync.Entity.Direction;
             player.Value.character.Speed     = entitySync.Entity.Speed;
         }
         else
         {
             Services.MapService.Instance.SendEntitySync(player.Value.connection, entitySync);
         }
     }
 }
Example #9
0
 internal void UpdateEntity(NEntitySync entity)
 {
     foreach (var kv in this.MapCharacters)
     {
         if (kv.Value.character.entityId == entity.Id)
         {
             kv.Value.character.Position  = entity.Entity.Position;
             kv.Value.character.Direction = entity.Entity.Direction;
             kv.Value.character.Speed     = entity.Entity.Speed;
         }
         else
         {
             MapService.Instance.SendEntityUpdate(kv.Value.connection, entity);
         }
     }
 }
Example #10
0
        public void OnEnitySync(NEntitySync nEntitySync)
        {
            Entity entity;

            this.entities.TryGetValue(nEntitySync.Id, out entity);
            if (entities != null)
            {
                if (nEntitySync.Entity != null)
                {
                    entity.SetEntityData(nEntitySync.Entity);
                }
                if (notifies.ContainsKey(nEntitySync.Id))
                {
                    //notifies[nEntitySync.Id].OnEntityChanged(nEntitySync.Entity);
                    notifies[nEntitySync.Id].OnEntityEvent(nEntitySync.Event);
                }
            }
        }
Example #11
0
        internal void OnEntitySync(NEntitySync data)
        {
            Entity entity = null;

            entities.TryGetValue(data.Id, out entity);
            if (entity != null)
            {
                if (data.Entity != null)
                {
                    entity.EntityData = data.Entity;
                }
            }
            if (notifiers.ContainsKey(data.Id))
            {
                notifiers[entity.entityId].OnEntityChanged(entity);
                notifiers[entity.entityId].OnEntityEvent(data.Event);
            }
        }
Example #12
0
        public void OnEntitySync(NEntitySync entitySync)
        {
            Entity entity = null;

            this.entities.TryGetValue(entitySync.Id, out entity);
            if (entity != null)
            {
                if (entitySync.Entity != null)
                {
                    entity.EntityData = entitySync.Entity;
                }
                if (notifies.ContainsKey(entitySync.Id))
                {
                    notifies[entitySync.Id].OnEntityChanged(entity);
                    notifies[entitySync.Id].OnEntityEvent(entitySync.Event);
                }
            }
        }
Example #13
0
 public override void MoveTo(Vector3Int position)
 {
     if (state == CharacterState.Idle)
     {
         state = CharacterState.Move;
     }
     if (this.moveTarget != position)
     {
         this.moveTarget   = position;
         this.movepPostion = this.Position;
         this.Direction    = (this.moveTarget - this.Position).normallizd;
         this.Speed        = this.Define.Speed;
         NEntitySync sync = new NEntitySync();
         sync.Entity = this.EntityData;
         sync.Event  = EntityEvent.MoveFwd;
         sync.Id     = this.entityId;
         this.map.UpdateEntity(sync);
     }
 }
Example #14
0
        public void OnEntitySync(NEntitySync nEntitySync)
        {
            Entity entity = null;

            entities.TryGetValue(nEntitySync.Id, out entity);
            if (entity != null)
            {
                if (nEntitySync != null)
                {
                    entity.EntityData = nEntitySync.Entity;//同步位置
                }
                if (notifiers.ContainsKey(nEntitySync.Id))
                {
                    //发消息
                    notifiers[nEntitySync.Id].OnEntityChange(entity);
                    notifiers[nEntitySync.Id].OnEntityEvent(nEntitySync.Event, nEntitySync.Param);
                }
            }
        }
Example #15
0
File: Map.cs Project: Lenzan/newmmo
 internal void UpdateEntity(NEntitySync entitySync)
 {
     foreach (var kv in this.MapCharacters)
     {
         if (kv.Value.character.entityId == entitySync.Id)
         {
             kv.Value.character.Position  = entitySync.Entity.Position;
             kv.Value.character.Direction = entitySync.Entity.Direction;
             kv.Value.character.Speed     = entitySync.Entity.Speed;
             if (entitySync.Event == EntityEvent.Ride)
             {
                 kv.Value.character.Ride = entitySync.Param;
             }
         }
         else
         {
             MapService.Instance.SendEntityUpdate(kv.Value.connection, entitySync);
         }
     }
 }
Example #16
0
File: Map.cs Project: dearQQ/mmorpg
 internal void UpdateEntity(NEntitySync nEntity)
 {
     foreach (var item in this.MapCharacters)
     {
         if (item.Value.character.entityId == nEntity.Id)
         {
             item.Value.character.Position  = nEntity.Entity.Position;
             item.Value.character.Direction = nEntity.Entity.Direction;
             item.Value.character.Speed     = nEntity.Entity.Speed;
             TCharacter tcha = DBService.Instance.Entities.Characters.Where(u => u.Name == item.Value.character.Info.Name).FirstOrDefault();
             tcha.MapPosX = nEntity.Entity.Position.X;
             tcha.MapPosY = nEntity.Entity.Position.Y;
             tcha.MapPosZ = nEntity.Entity.Position.Z;
             DBService.Instance.Entities.SaveChanges();
         }
         else
         {
             MapService.Instance.SendEntityUpdate(item.Value.connection, nEntity);
         }
     }
 }
Example #17
0
        internal void MoveTo(Vector3Int position)
        {
            if (State == CharacterState.Idle)
            {
                State = CharacterState.Move;
            }
            if (this.moveTarget != position)
            {
                this.moveTarget   = position;
                this.movePosition = position;
                var dist = (this.moveTarget - this.Position);
                this.Direction = dist.normalized;
                this.Speed     = this.Define.Speed;

                NEntitySync sync = new NEntitySync();
                sync.Entity = this.EntityData;
                sync.Event  = EntityEvent.MoveFwd;
                sync.Id     = this.entityId;
                this.Map.UpdateEntity(sync);
            }
        }
Example #18
0
 public void UpdataEntity(NEntitySync nEntitySync)//客户端发过来的
 {
     //遍历看那个是自己
     //是自己把自己的信息更新到服务器
     //不是自己把自己发送给别人
     foreach (var item in MapCharacters)
     {
         if (item.Value.character.entityId == nEntitySync.Id)
         {
             item.Value.character.EntityData.Position  = nEntitySync.Entity.Position;
             item.Value.character.EntityData.Direction = nEntitySync.Entity.Direction;
             item.Value.character.EntityData.Speed     = nEntitySync.Entity.Speed;
             if (nEntitySync.Event == EntityEvent.Ride)
             {
                 item.Value.character.Ride = nEntitySync.Param;
             }
         }
         else
         {
             MapService.Instance.SendEntityUpdata(item.Value.connection, nEntitySync);
         }
     }
 }