public void EnterSight(EEntity self, HashSet <EEntity> entities) { foreach (var entity in entities) { EnterSight(self, entity); } }
private void button1_Click(object sender, EventArgs e) { OleDbCommand comEski = new OleDbCommand("select Sifre from Entriy WHERE ((Entriy.Sifre)=@Geliyoo)", con); comEski.Parameters.AddWithValue("@Geliyoo", textBox1.Text); if (con.State == ConnectionState.Closed) { con.Open(); } try { OleDbDataReader rd = comEski.ExecuteReader(); if (rd.Read()) { EEntity ent = new EEntity(); ent.KullaniciAdi = kullanici.Text; ent.Sifre = sifretxt.Text; FEntity.Guncelle(ent); kullanici.Text = string.Empty; sifretxt.Text = string.Empty; textBox1.Text = string.Empty; } else { MessageBox.Show("Girdiğiniz Şifre Hatalı !!!", "Şifre Hatası", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { con.Close(); } }
public void GuardForNullReferenceMustNotThrowNullReferenceExceptionWhenTheObjectIsNotNull() { var @object = new EEntity(); var exception = Record.Exception(GuardObjectNullReference(@object)); Assert.Null(exception); }
public void Init() { // 初始化副本 var dInfo = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "MapData")); foreach (var filePath in dInfo.GetFiles()) { var dungeon = new CDungeon(int.Parse(filePath.Name)); DicDungeon.Add(int.Parse(filePath.Name), dungeon); foreach (var pos in dungeon.MapData.monsterPos) { SDungeon.Instance.EnterDungeon(new EMonster { Id = EEntity.GenerateEntityId(EEntityType.MONSTER), AIState = AI.EAIState.PATROL, Dungeon = dungeon, EntityType = EEntityType.MONSTER, Position = new CPosition <double> { x = pos[0], y = pos[1], z = 0D }, BirthPosition = new CPosition <double> { x = pos[0], y = pos[1], z = 0D }, Movement = new CMovement { Speed = 5 } }, dungeon); } } }
/// <summary> /// Entity进入副本 /// </summary> /// <param name="entity"></param> /// <param name="dungeon"></param> public void EnterDungeon(EEntity entity, CDungeon dungeon) { dungeon.DicEntity.Add(entity.Id, entity); dungeon.GridSystem.AddEntityToGrid(entity); entity.Dungeon = dungeon; entity.Update(); }
public static void Guncelle(EEntity Degistir) { OleDbConnection concon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Veritabani\\Data.mdb;Jet OLEDB:Database Password=ayakkabi_gelisimsoft;"); OleDbCommand comcom = new OleDbCommand("update Entriy set KullaniciAdi=@Kullanici,Sifre=@Sifre WHERE ((Entriy.SifreID)=1)", concon); comcom.Parameters.AddWithValue("@Kullanici", Degistir.KullaniciAdi); comcom.Parameters.AddWithValue("@Sifre", Degistir.Sifre); OleDbDataAdapter adp = new OleDbDataAdapter(comcom); if (concon.State == ConnectionState.Closed) { concon.Open(); } try { if (comcom.ExecuteNonQuery() > 0) { MessageBox.Show("Kullanıcı Adı ve Güncelleme İşlemi Yapılmıştır.", "Güncelleme İşlemleri", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception Ex) { MessageBox.Show(Ex.ToString(), "Hata", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
/// <summary> /// 添加Entity进入格子 /// </summary> /// <param name="roleId"></param> /// <param name=""></param> public int AddEntityToGrid(EEntity entity) { var idx = GetGridPosFromMapPos(entity.Position, out var _); //_entityIdMap[idx][(int)entity.EntityType].Add(entity.Id); _entityMap[idx][(int)entity.EntityType].Add(entity); return(idx); }
//public void RoleMove(ERole role, double x, double y) //{ // if (!role.Dungeon.MapData.IsValidPosition((int)x, (int)y)) return; // role.Dungeon.GridSystem.UpdateRolePosition(role, x, y); // SSight.Instance.EntityMove(role); //} public void EntityMove(EEntity entity, double x, double y) { if (!entity.Dungeon.MapData.IsValidPosition((int)x, (int)y)) { return; } entity.Dungeon.GridSystem.UpdateEntityPosition(entity, x, y); SSight.Instance.EntityMove(entity); }
/// <summary> /// Entity移动通知视野内Entity /// </summary> /// <param name="role"></param> public void EntityMove(EEntity self) { var pack = new S2CMove(); pack.EntityInfoList.Add(new EntityInfo { Id = self.Id, EntityType = (int)self.EntityType, X = self.Position.x, Y = self.Position.y }); foreach (var entity in self.Sight.SetWatchEntity) { if (!self.Dungeon.DicRole.ContainsKey(entity.Id)) { continue; } Program.Server.StartSend((entity as ERole).exSocket.SocketEventArgs, pack); } }
/// <summary> /// 更新Entity位置 /// </summary> /// <param name="self"></param> /// <param name="x"></param> /// <param name="y"></param> public void UpdateEntityPosition(EEntity self, double x, double y, bool isFirst = false) { // 位置无效 if (!IsValidPos(x, y)) { return; } var oldPosition = new CPosition <double> { x = self.Position.x, y = self.Position.y }; // 格子位置不变时说明AOI没变化 所以不必通知AOI内角色 var oldGridId = GetGridPosFromMapPos(oldPosition, out var _); var newGridId = GetGridPosFromMapPos(x, y, out var _); if (oldGridId == newGridId && !isFirst) { self.Position.x = x; self.Position.y = y; return; } GetEntitiesFromSight(self, oldPosition, out _, out var oldEntities); // 从旧格子中删除 DeleteEntityFromGrid(self); // 更新位置 self.Position.x = x; self.Position.y = y; // 加入新格子 AddEntityToGrid(self); GetEntitiesFromSight(self, self.Position, out _, out var newEntities); if (!isFirst) {// 首次进入AOI不需要排除 var bothTmp = new HashSet <EEntity>(oldEntities); bothTmp.IntersectWith(newEntities); oldEntities.ExceptWith(bothTmp); newEntities.ExceptWith(bothTmp); } oldEntities.Remove(self); SSight.Instance.LeaveSight(self, oldEntities); SSight.Instance.EnterSight(self, newEntities); }
public void LoginIn(Guid guid, C2SLogin pack) { var role = new ERole(); role.Id = EEntity.GenerateEntityId(EEntityType.ROLE); Program.Server.DicEventArgs.TryGetValue(guid, out role.exSocket); GameServer.DicRole.Add(guid, role); SDungeon.Instance.EnterDungeon(role); role.Update(); TServer.Program.Server.StartSend(role.exSocket.SocketEventArgs, new S2CLogin { Res = 1, RoleInfo = new RoleInfo { Id = role.Id, X = role.Position.x, Y = role.Position.y } }); log.Debug($"Guid:{guid} --- {pack.Name} login in, password is {pack.Password}."); }
/// <summary> /// Entity进入视野时 /// 根据相互的视野范围来决定是否要互相加入到视野中 /// </summary> /// <param name="roleA"></param> /// <param name="roleB"></param> public void EnterSight(EEntity entityA, EEntity entityB) { var dis = entityA.Dungeon.GridSystem.GetDistanceFromTwoPosition(entityA.Position, entityB.Position); if (entityA.SightDistance >= dis) { // 自己的视野 大于 两者间距 则 一定能进入视野 //entityA.Sight.SetInSightEntityIds.Add(entityB.Id); entityA.Sight.SetInSightEntity.Add(entityB); entityB.Sight.SetWatchEntity.Add(entityA); if (entityA is ERole roleA) { Program.Server.StartSend(roleA.exSocket.SocketEventArgs , new S2CSight { EntityInfo = new EntityInfo { Id = entityB.Id, EntityType = (int)entityB.EntityType, X = entityB.Position.x, Y = entityB.Position.y }, SightOpt = S2CSight.Types.ESightOpt.EnterSight }); } } if (entityB.SightDistance >= dis) { //entityB.Sight.SetInSightEntityIds.Add(entityA.Id); entityB.Sight.SetInSightEntity.Add(entityA); entityA.Sight.SetWatchEntity.Add(entityB); if (entityB is ERole roleB) { Program.Server.StartSend(roleB.exSocket.SocketEventArgs , new S2CSight { EntityInfo = new EntityInfo { Id = entityA.Id, EntityType = (int)entityA.EntityType, X = entityA.Position.x, Y = entityA.Position.y }, SightOpt = S2CSight.Types.ESightOpt.EnterSight }); } } }
public void OnEntityNavAuto(EEntity entity, double x, double y) { entity.Movement.StackNavPath = Common.NavAuto.AStar.CalOptimalPath(entity.Dungeon.MapData, (int)entity.Position.x, (int)entity.Position.y, (int)x, (int)y); entity.Movement.IsNavAuto = entity.Movement.StackNavPath.Count > 0; }
/// <summary> /// 找到所有能看到自己的Entity集合 /// </summary> /// <param name="self"></param> /// <param name="deep"></param> /// <param name="curPos"></param> /// <param name="gridIdxs"></param> /// <param name="entities"></param> public void GetEntitiesFromSight(EEntity self, CPosition <double> curPos, out HashSet <int> gridIdxs, out HashSet <EEntity> entities) { GetGridPosFromMapPos(curPos, out var gridPos); GetEntitiesFromSight(self.SightDistance, gridPos, out gridIdxs, out entities); }
/// <summary> /// 从格子中删除Entity /// </summary> /// <param name="roleId"></param> public void DeleteEntityFromGrid(EEntity entity) { var idx = GetGridPosFromMapPos(entity.Position, out var _); _entityIdMap[idx][(int)entity.EntityType].Remove(entity.Id); }