Ejemplo n.º 1
0
        /// <summary>
        /// Tworzy nowego blipa
        /// </summary>
        /// <param name="name"></param>
        /// <param name="position"></param>
        /// <param name="spriteId"></param>
        /// <param name="colorId"></param>
        /// <param name="alpha"></param>
        /// <param name="scale"></param>
        /// <param name="dimension"></param>
        /// <param name="createdBy"></param>
        /// <returns></returns>
        public static Blip CreateBlip(string name, Vector3 position, int spriteId, int colorId, int alpha,
                                      float scale, int dimension, int createdBy)
        {
            Blip newBlip = new Blip
            {
                Name      = name,
                X         = position.X,
                Y         = position.Y,
                Z         = position.Z,
                SpriteId  = spriteId,
                ColorId   = colorId,
                Alpha     = alpha,
                Scale     = scale,
                Dimension = dimension,
                CreatedBy = createdBy,
                CreatedAt = Global.GetTimestamp()
            };

            using (Database.Database db = new Database.Database())
            {
                db.Blips.Add(newBlip);
                db.SaveChanges();

                newBlip.BlipHandle = NAPI.Blip.CreateBlip(newBlip.SpriteId,
                                                          new Vector3(newBlip.X, newBlip.Y, newBlip.Z),
                                                          newBlip.Scale, (byte)newBlip.ColorId, newBlip.Name, (byte)newBlip.Alpha, 999999.0f, true, 0,
                                                          (uint)newBlip.Dimension);

                BlipsList.Add(newBlip.Id, newBlip);
                return(newBlip);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Zwraca blipa znajdującego się najbliżej podanej pozycji
        /// </summary>
        /// <param name="position"></param>
        /// <param name="distance"></param>
        /// <returns></returns>
        public static Blip GetNearestBlip(Vector3 position, double distance = 10.0)
        {
            double nearestDistance = distance;
            Blip   choosedBlip     = null;

            foreach (KeyValuePair <int, Blip> entry in BlipsList)
            {
                double dist = Global.GetDistanceBetweenPositions(new Vector3(entry.Value.X, entry.Value.Y, 0),
                                                                 new Vector3(position.X, position.Y, 0));
                if (dist > nearestDistance)
                {
                    continue;
                }

                nearestDistance = dist;
                choosedBlip     = entry.Value;
            }

            return(choosedBlip);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Usuwa blipa o podanym Id
        /// </summary>
        /// <param name="blipId"></param>
        public static void DestroyBlip(int blipId)
        {
            Blip blipData = GetBlipData(blipId);

            if (blipData == null)
            {
                return;
            }

            if (NAPI.Entity.DoesEntityExist(blipData.BlipHandle))
            {
                NAPI.Entity.DeleteEntity(blipData.BlipHandle);
            }

            using (Database.Database db = new Database.Database())
            {
                db.Blips.Attach(blipData);
                db.Blips.Remove(blipData);
                db.SaveChanges();
            }

            BlipsList.Remove(blipData.Id);
        }