示例#1
0
        private static void ApplyX64(MemoryAddressAndOffset data, float value, IntPtr hProcess)
        {
            var addr = GetAddress(8, hProcess, data.Address, data.Offset);

            Write(value, hProcess, addr);
        }
示例#2
0
        private static void ReadX64(MemoryAddressAndOffset data, IntPtr hProcess, out float read)
        {
            var addr = GetAddress(8, hProcess, data.Address, data.Offset);

            Read(out read, hProcess, addr);
        }
示例#3
0
        public MetadataResult grabApplicationMetadata()
        {
            try
            {
                XDocument xmlf = XDocument.Load(MetadataURL);
                var       root = xmlf.Element("Root");

                foreach (var element in root.Elements())
                {
                    switch (element.Name.LocalName)
                    {
                    case "AppVersion":
                        this.NewerVersion = new Version(element.Value);
                        break;

                    case "DownloadLink":
                        this.DownloadURL = element.Value;
                        break;

                    case "AppMetadata":
                        foreach (var region in Enum.GetValues(typeof(GameRegion)))
                        {
                            string rs      = region.ToString();
                            var    cElem   = element.Element(rs);
                            var    oElem   = cElem.Element("Offsets");
                            int    address = int.Parse(cElem.Element("Address").Value, NumberStyles.HexNumber, CultureInfo.InvariantCulture);

                            CameraZoomData[rs] = new MemoryAddressAndOffset(
                                address,
                                int.Parse(oElem.Element("CameraZoom").Value, NumberStyles.HexNumber, CultureInfo.InvariantCulture)
                                );
                            CameraFOVData[rs] = new MemoryAddressAndOffset(
                                address,
                                int.Parse(oElem.Element("CameraFOV").Value, NumberStyles.HexNumber, CultureInfo.InvariantCulture)
                                );
                            CameraAngleXData[rs] = new MemoryAddressAndOffset(
                                address,
                                int.Parse(oElem.Element("CameraAngleX").Value, NumberStyles.HexNumber, CultureInfo.InvariantCulture)
                                );
                            CameraAngleYData[rs] = new MemoryAddressAndOffset(
                                address,
                                int.Parse(oElem.Element("CameraAngleY").Value, NumberStyles.HexNumber, CultureInfo.InvariantCulture)
                                );
                            PlayerNameData[rs]   = int.Parse(oElem.Element("PlayerName").Value, NumberStyles.Integer, CultureInfo.InvariantCulture).ToString();
                            CameraHeightData[rs] = int.Parse(oElem.Element("CameraHeight").Value, NumberStyles.Integer, CultureInfo.InvariantCulture).ToString();
                        }
                        break;
                    }
                }

                // -1 means earlier than
                if (this.LocalVersion.CompareTo(this.NewerVersion) == -1)
                {
                    return(MetadataResult.UpdateAvailable);
                }
                // 1 means later than
                else if (this.LocalVersion.CompareTo(this.NewerVersion) == 1)
                {
                    return(MetadataResult.RunningBeta);
                }

                return(MetadataResult.Success);
            }
            catch (Exception e)
            {
                MessageBox.Show(
                    "Unable to read offsets from server. Reason: " + e.Message + "\n\n" + e.StackTrace,
                    "Error", MessageBoxButton.OK, MessageBoxImage.Error
                    );
            }

            return(MetadataResult.Failure);
        }