示例#1
0
        /// <summary>
        /// Write a single hack value. Tries up to 30 times, 1/10th
        /// of a second apart.
        /// </summary>
        /// <param name="HackValue">hack value to write</param>
        /// <returns>True if successful</returns>
        public bool WriteHackValue(TFHackValue HackValue)
        {
            if ((long)HackValue.Address == 0)
            {
                if (HackValue.OldBytes.Length > 0)
                {
                    IntPtr[] Addresses = FindInMemory(HackValue.OldBytes, HackValue.MinimumAddress, HackValue.MaximumAddress);
                    if (Addresses.Length > 0)
                    {
                        HackValue.Address = Addresses[0];
                    }
                    else
                    {
                        Console.WriteLine("Failed to find old bytes.");
                        Addresses = FindInMemory(HackValue.NewBytes, HackValue.MinimumAddress, HackValue.MaximumAddress);
                        if (Addresses.Length > 0)
                        {
                            HackValue.Address = Addresses[0];
                            HackValue.Active  = true;
                        }
                        else
                        {
                            Console.WriteLine("Failed to find new bytes.");
                            return(false);
                        }
                    }
                }
                else
                {
                    return(false);
                }
            }

            Console.WriteLine(HackValue.Address);

            bool result = false;

            if (HackValue.Active)
            {
                result = WriteMemory(HackValue.Address, HackValue.OldBytes);
                if (result)
                {
                    Console.WriteLine("Deactivated.");
                    HackValue.Active = false;
                }
                return(result);
            }
            else
            {
                result = WriteMemory(HackValue.Address, HackValue.NewBytes);
                if (result)
                {
                    Console.WriteLine("Activated.");
                    HackValue.Active = true;
                }
            }
            return(result);
        }
示例#2
0
 public void FromXML(String XML)
 {
     XmlDocument XMLdoc = new XmlDocument();
     XMLdoc.LoadXml(XML);
     XmlNode XMLnode = XMLdoc.DocumentElement;
     foreach (XmlNode node in XMLnode.ChildNodes)
     {
         switch(node.Name)
         {
             case "hackvalues":
                 this.HackValues = new TFHackValue[node.ChildNodes.Count];
                 for (int x=0; x < node.ChildNodes.Count; x++)
                 {
                     HackValues[x] = new TFHackValue();
                     HackValues[x].FromXML(node.ChildNodes[x].OuterXml);
                 }
                 break;
         }
     }
 }
示例#3
0
        public void FromXML(String XML)
        {
            XmlDocument XMLdoc = new XmlDocument();

            XMLdoc.LoadXml(XML);
            XmlNode XMLnode = XMLdoc.DocumentElement;

            foreach (XmlNode node in XMLnode.ChildNodes)
            {
                switch (node.Name)
                {
                case "hackvalues":
                    this.HackValues = new TFHackValue[node.ChildNodes.Count];
                    for (int x = 0; x < node.ChildNodes.Count; x++)
                    {
                        HackValues[x] = new TFHackValue();
                        HackValues[x].FromXML(node.ChildNodes[x].OuterXml);
                    }
                    break;
                }
            }
        }
示例#4
0
        /// <summary>
        /// Write a set of HackValues to the Process
        /// </summary>
        /// <param name="HackValues">HackValue to write</param>
        /// <returns>true if successful</returns>
        public bool WriteHackValues(TFHackValue[] HackValues)
        {
            bool Success = true;

            for (int x=0; x < HackValues.Length; x++)
            {
                bool HackSuccess = WriteHackValue(HackValues[x]);
                Success = Success & HackSuccess;
            }
            return Success;
        }
示例#5
0
        /// <summary>
        /// Write a single hack value. Tries up to 30 times, 1/10th
        /// of a second apart.
        /// </summary>
        /// <param name="HackValue">hack value to write</param>
        /// <returns>True if successful</returns>
        public bool WriteHackValue(TFHackValue HackValue)
        {
            if((long)HackValue.Address == 0) {
                if(HackValue.OldBytes.Length > 0) {
                    IntPtr[] Addresses = FindInMemory(HackValue.OldBytes, HackValue.MinimumAddress, HackValue.MaximumAddress);
                    if(Addresses.Length > 0) {
                        HackValue.Address = Addresses[0];
                    } else {
                        Console.WriteLine("Failed to find old bytes.");
                        Addresses = FindInMemory(HackValue.NewBytes, HackValue.MinimumAddress, HackValue.MaximumAddress);
                        if(Addresses.Length > 0) {
                            HackValue.Address = Addresses[0];
                            HackValue.Active = true;
                        } else {
                            Console.WriteLine("Failed to find new bytes.");
                            return false;
                        }
                    }
                } else {
                    return false;
                }
            }

            Console.WriteLine(HackValue.Address);

            bool result = false;
            if(HackValue.Active) {
                result = WriteMemory(HackValue.Address, HackValue.OldBytes);
                if(result) {
                    Console.WriteLine("Deactivated.");
                    HackValue.Active = false;
                }
                return result;
            } else {
                result = WriteMemory(HackValue.Address, HackValue.NewBytes);
                if(result) {
                    Console.WriteLine("Activated.");
                    HackValue.Active = true;
                }
            }
            return result;
        }
示例#6
0
 public TFHackSet(TFHackValue[] HackValues)
 {
     this.HackValues = HackValues;
 }