コード例 #1
0
        private static bool CheckHouse(Mobile mob, Item item)
        {
            BaseHouse house = BaseHouse.FindHouseAt(item);

            if (house == null)
            {
                return(false);
            }

            if (!mob.InRange(item.Location, 3))
            {
                return(false);
            }

            SecureAccessResult res = house.CheckSecureAccess(mob, item);

            switch (res)
            {
            case SecureAccessResult.Insecure: break;

            case SecureAccessResult.Accessible: return(true);

            case SecureAccessResult.Inaccessible: return(false);
            }

            if (house.IsLockedDown(item))
            {
                return(house.IsCoOwner(mob) && (item is Container));
            }

            return(true);
        }
コード例 #2
0
        public static bool CheckAccessible(Mobile m, Item item)
        {
            if (m.AccessLevel >= AccessLevel.GameMaster)
            {
                return(true);                // Staff can access anything
            }

            var house = FindHouseAt(item);

            if (house == null)
            {
                return(true);
            }

            SecureAccessResult res = house.CheckSecureAccess(m, item);

            switch (res)
            {
            case SecureAccessResult.Insecure:
                break;

            case SecureAccessResult.Accessible:
                return(true);

            case SecureAccessResult.Inaccessible:
                return(false);
            }

            if (house.IsLockedDown(item))
            {
                return(house.IsCoOwner(m) && (item is Container));
            }

            return(true);
        }
コード例 #3
0
        public override bool OnDoubleClick(Mobile from, object o)
        {
            try
            {
                //check if there is a DRDT region below the houses, and if so use its rules
                RegionControl regstone = null;
                CustomRegion  inHouse  = null;
                if (from != null)
                {
                    inHouse = CustomRegion.FindDRDTRegion(from);
                }
                if (inHouse != null)
                {
                    regstone = inHouse.GetRegionControler();
                }

                if (regstone != null)
                {
                    return(inHouse.OnDoubleClick(from, o));
                }
            }
            catch (NullReferenceException e)
            {
                LogHelper.LogException(e);
                Console.WriteLine("{0} Caught exception.", e);
            }
            catch (Exception ex)
            {
                LogHelper.LogException(ex);
            }

            if (o is Container)
            {
                Container c = (Container)o;

                SecureAccessResult res = m_House.CheckSecureAccess(from, c);

                switch (res)
                {
                case SecureAccessResult.Insecure: break;

                case SecureAccessResult.Accessible: return(true);

                case SecureAccessResult.Inaccessible: c.SendLocalizedMessageTo(from, 1010563); return(false);
                }
            }

            return(true);
        }
コード例 #4
0
        public override bool OnDoubleClick(Mobile m, object o)
        {
            if (o is BasePotion && !m_Controller.CanUsePotions)
            {
                m.SendMessage("You cannot drink potions here.");
                return(false);
            }

            if (m_Controller.RestrictedTypes != null)
            {
                Type t = o.GetType();
                if (m_Controller.RestrictedTypes.Contains(t.Name))
                {
                    m.SendMessage("You cannot use that.");
                    return(false);
                }
            }

            if (m_Controller.IsHouseRegion == true)
            {
                BaseHouse house = BaseHouse.FindHouseAt(m);
                if (house != null)
                {
                    if (o is Container)
                    {
                        Container c = (Container)o;

                        SecureAccessResult res = house.CheckSecureAccess(m, c);

                        switch (res)
                        {
                        case SecureAccessResult.Insecure: break;

                        case SecureAccessResult.Accessible: return(true);

                        case SecureAccessResult.Inaccessible: c.SendLocalizedMessageTo(m, 1010563); return(false);
                        }
                    }
                }
            }

            return(base.OnDoubleClick(m, o));
        }
コード例 #5
0
ファイル: HouseRegion.cs プロジェクト: rafaelfcsouza/ModernUO
        public override bool OnDoubleClick(Mobile from, object o)
        {
            if (o is Container c)
            {
                SecureAccessResult res = House.CheckSecureAccess(from, c);

                switch (res)
                {
                case SecureAccessResult.Insecure: break;

                case SecureAccessResult.Accessible: return(true);

                case SecureAccessResult.Inaccessible:
                    c.SendLocalizedMessageTo(from, 1010563);
                    return(false);
                }
            }

            return(base.OnDoubleClick(from, o));
        }
コード例 #6
0
        public override bool OnDoubleClick(Mobile from, object o)
        {
            if (o is Container)
            {
                Container c = (Container)o;

                SecureAccessResult res = m_House.CheckSecureAccess(from, c);

                switch (res)
                {
                case SecureAccessResult.Insecure: break;

                case SecureAccessResult.Accessible: return(true);

                case SecureAccessResult.Inaccessible: c.SendAsciiMessageTo(from, "This container is secure."); return(false);
                }
            }

            return(true);
        }