コード例 #1
0
        /// <summary>
        /// 通过数据包获取房屋信息
        /// </summary>
        /// <param name="buffer">数据包Buffer</param>
        public HousingItem(HousingSlotSnapshot snapshot, int id, byte[] buffer)
        {
            Snapshot = snapshot;
            Id       = id;

            /*
             * struct HouseInfoEntry
             * {
             *   uint32_t housePrice;
             *   uint8_t infoFlags;
             *   Common::HousingAppeal houseAppeal[3];
             *   char estateOwnerName[32];
             * }
             */
            var nameHeader = buffer.SubArray(0, 8);

            Price = BitConverter.ToInt32(nameHeader, 0);
            Size  = (Price > 30000000) ? HouseSize.L : ((Price > 10000000) ? HouseSize.M : HouseSize.S);
            //读取房屋信息
            Flags = new HouseFlags(nameHeader[4]);
            //读取房屋展示信息
            for (var i = 0; i < 3; i++)
            {
                Tags[i] = (HouseTagsDefine)nameHeader[5 + i];
            }
            //读取房主姓名
            Owner = DecodeOwnerName(buffer.SubArray(8, 32));
            //获取所有者信息
            if (Flags.IsEstateOwned)
            {
                if (Flags.IsFreeCompanyEstate)
                {
                    OwnerType = HouseOwnerType.GUILD;
                }
                else
                {
                    OwnerType = HouseOwnerType.PERSON;
                }
            }
            else
            {
                OwnerType = HouseOwnerType.EMPTY;
            }
            //获取访问权限
            if (Flags.IsPublicEstate)
            {
                Access = HouseAccess.PUBLIC;
            }
            else
            {
                Access = HouseAccess.LOCKED;
            }
        }
コード例 #2
0
        public static string GetOwnerTypeStr(HouseOwnerType type)
        {
            switch (type)
            {
            case HouseOwnerType.EMPTY:
                return("空房");

            case HouseOwnerType.GUILD:
                return("部队房");

            case HouseOwnerType.PERSON:
                return("个人房");

            default:
                return("未知");
            }
        }