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(); }
public void SendEntityUpdate(NetConnection <NetSession> sender, NEntitySync entity) { sender.Session.Response.mapEntitySync = new MapEntitySyncResponse(); sender.Session.Response.mapEntitySync.entitySyncs.Add(entity); sender.SendResponse(); }
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); }
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); }
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); }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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); } }
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); } } }
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); } }
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); } } }
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); } } }
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); } } }
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); } }
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); } } }