/// <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; } }
public static string GetOwnerTypeStr(HouseOwnerType type) { switch (type) { case HouseOwnerType.EMPTY: return("空房"); case HouseOwnerType.GUILD: return("部队房"); case HouseOwnerType.PERSON: return("个人房"); default: return("未知"); } }