Пример #1
0
 public Portal GetPortalInfo(uint id)
 {
     if (DistrictPortals.ContainsKey(id))
     {
         return(DistrictPortals[id]);
     }
     return(PrivatePortals.ContainsKey(id) ? PrivatePortals[id] : null);
 }
Пример #2
0
        public void Load(MySqlConnection connection)
        {
            using (var command = connection.CreateCommand())
            {
                command.CommandText = "SELECT * FROM portal_book_coords WHERE `owner` = @owner";
                command.Parameters.AddWithValue("@owner", Owner.Id);
                command.Prepare();
                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var template = new Portal
                        {
                            Id        = reader.GetUInt32("id"),
                            Name      = reader.GetString("name"),
                            X         = reader.GetFloat("x"),
                            Y         = reader.GetFloat("y"),
                            Z         = reader.GetFloat("z"),
                            ZoneId    = reader.GetUInt32("zone_id"),
                            ZRot      = reader.GetFloat("z_rot"),
                            SubZoneId = reader.GetUInt32("sub_zone_id"),
                            Owner     = reader.GetUInt32("owner")
                        };
                        PrivatePortals.Add(template.Id, template);
                    }
                }
            }

            using (var command = connection.CreateCommand())
            {
                command.CommandText = "SELECT * FROM portal_visited_district WHERE `owner` = @owner";
                command.Parameters.AddWithValue("@owner", Owner.Id);
                command.Prepare();
                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var template = new VisitedDistrict
                        {
                            Id      = reader.GetUInt32("id"),
                            SubZone = reader.GetUInt32("subzone"),
                            Owner   = reader.GetUInt32("owner")
                        };
                        VisitedDistricts.Add(template.SubZone, template);
                    }
                }
            }

            PopulateDistrictPortals();
        }
Пример #3
0
        public void AddPrivatePortal(float x, float y, float z, uint zoneId, string name)
        {
            // TODO - Only working by command
            var newPortal = new Portal()
            {
                Id     = PrivateBookIdManager.Instance.GetNextId(),
                Name   = name,
                X      = x,
                Y      = y,
                Z      = z,
                ZoneId = zoneId,
                ZRot   = 0f,
                Owner  = Owner.Id
            };

            PrivatePortals.Add(newPortal.Id, newPortal);
            Owner.SendPacket(new SCCharacterPortalsPacket(new[] { newPortal }));
        }
Пример #4
0
 public void RemoveFromBookPortal(Portal portal, bool isPrivate)
 {
     if (isPrivate)
     {
         if (PrivatePortals.ContainsKey(portal.Id) && PrivatePortals.Remove(portal.Id))
         {
             _removedPrivatePortals.Add(portal.Id);
             //Owner.SendMessage("Recorded Portal deleted.");
         }
     }
     else
     {
         if (VisitedDistricts.ContainsKey(portal.SubZoneId) && VisitedDistricts.Remove(portal.SubZoneId))
         {
             _removedVisitedDistricts.Add(portal.SubZoneId);
             //Owner.SendMessage("Default Portal deleted.");
         }
     }
 }