Example #1
0
        public void QueryGlobalMapPath(Iocp.TcpConnect connect, UInt16 serialId, ulong planesId, ulong mapSourceId, ulong roleId, SlimDX.Vector3 from, SlimDX.Vector3 to, bool bClear)
        {
            PFPlanes planes;

            if (PlanesDic.TryGetValue(planesId, out planes) == false)
            {
                planes          = new PFPlanes();
                planes.PlanesId = planesId;
                PlanesDic.Add(planesId, planes);

                var thread = SelectPFThread();
                thread.PushPlanes(planes);
            }

            PFMap map = planes.GetMap(mapSourceId);

            PFUnit unit = map.GetUnit(roleId);

            PFQuery query = new PFQuery();

            query.FromPt   = from;
            query.ToPt     = to;
            query.Connect  = connect;
            query.SerialId = serialId;
            unit.AddQuery(query, bClear);
        }
Example #2
0
 public void PushPlanes(PFPlanes planes)
 {
     lock (this)
     {
         foreach (var i in ExecutePlanes)
         {
             if (i.PlanesId == planes.PlanesId)
             {
                 return;
             }
         }
         ExecutePlanes.Add(planes);
     }
 }