You are viewing our Forum Archives. To view or take place in current topics click here.
[MW] C# Tool Making HUD Elems. Help!
Posted:

[MW] C# Tool Making HUD Elems. Help!Posted:

Sheperdebops
  • TTG Natural
Status: Offline
Joined: Dec 08, 201013Year Member
Posts: 931
Reputation Power: 40
Status: Offline
Joined: Dec 08, 201013Year Member
Posts: 931
Reputation Power: 40
so i have added tu8 HUD Elems and they aint working i get this error when i click to create an element sometimes it works fine no error sometimes it comes up with the error after its been sent and then the text or shader will disappear. this is my error

HRESULT: 0x82DA0101

Heres my Script so far.



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using XRPCPlusPlus;
using XRPCLib;
using XDevkit;
using System.Threading;

namespace COD_Multi_XRPC_Tool
{
    public partial class Form1 : Form
    {
        byte[] nop = { 0x00, 0x00, 0x00, 0x04 };
        new XRPC Jtag = new XRPC();
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Log.AppendText("\r\nConnecting Please Wait \r\n");
            Jtag.Connect();
            if (Jtag.activeConnection)
            {
                Log.AppendText("Connected\r\n");
                Jtag.Notify(XRPC.XNotiyLogo.FLASHING_HAPPY_FACE, "XRPC Connected");
            }else{
                Log.AppendText("Failed, Check Plugins");
            }
        }
        public void ElemMove(int client, uint elem, float x, float y)
        {
            Jtag.SetMemory(elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(x)));
            Jtag.SetMemory(elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(y)));
            spawnElem(client, elem);
        }
        private void NewsBar_Click(object sender, EventArgs e)
        {
            Newsbar();
        }
        public void Newsbar()
        {
            uint[] NewsbarshaderMat = new uint[18];
            uint[] Newsbarshader = new uint[18];
            uint[] Newsbar = new uint[18];
           string NewsInput = NewsBarText.Text;
            for (int i = 0; i < 18; i++)
            {
                Newsbar[i] = createElem(0);
                NewsbarshaderMat[i] = getMaterialIndex("black");
                setIcon(Newsbarshader[i], NewsbarshaderMat[i], 1000, 40, 355, 400, 1);
                Thread.Sleep(10);
                setText(Newsbar[i], uintBytes(createText(NewsInput)), 1, 20, 200, 4000, 1);
                spawnElem(i, Newsbar[i]);
            }
            while (true)
            {
                for (int i = 0; i < 18; i++)
                {
                    for (int POS = 300; POS > -150; POS -= 2)
                    {
                        ElemMove(i, Newsbar[i], POS, 500);
                        Thread.Sleep(5);
                        if (POS < 149)
                        {
                            POS = 300;
                        }
                    }
                }
            }
        }
        public static class HElems
        {
            public static uint
            locString = 0x8220C838,
            material = 0x8220C9F8,
            elem = 0x821DF9C0,
            xOffset = 0x08,
            yOffset = 0x04,
            textOffset = 0x84,
            fontOffset = 0x28,
            fontSizeOffset = 0x14,
            colorOffset = 0x34,
            relativeOffset = 0x2c,
            widthOffset = 0x48,
            heightOffset = 0x44,
            shaderOffset = 0x4C,
            alignOffset = 0x30;
        }
        public uint createElem(int client)
        {
            return Jtag.Call(HElems.elem, client, 0);
        }

        public uint spawnElem(int client, uint elemAddress)
        {
            Jtag.SetMemory(elemAddress + 0xA8, ReverseBytes(BitConverter.GetBytes(client)));
            return elemAddress;
        }

        public byte[] ReverseBytes(byte[] inArray)
        {
            byte temp;
            int highCtr = inArray.Length - 1;
            for (int ctr = 0; ctr < inArray.Length / 2; ctr++)
            {
                temp = inArray[ctr];
                inArray[ctr] = inArray[highCtr];
                inArray[highCtr] = temp;
                highCtr -= 1;
            }
            return inArray;
        }

        public uint createText(string text)
        {
            return Jtag.Call(HElems.locString, text);
        }

        public uint getMaterialIndex(string material)
        {
            return Jtag.Call(HElems.material, material);
        }

        public byte[] uintBytes(uint input)
        {
            byte[] data = BitConverter.GetBytes(input);
            Array.Reverse(data);
            return data;
        }

        public void setIcon(uint elem, uint shader, int width, int height, float x, float y, uint align, float sort = 0, int r = 255, int g = 255, int b = 255, int a = 255)
        {
            Jtag.SetMemory(elem, nop);
            Jtag.SetMemory(elem + HElems.relativeOffset, uintBytes(0x05));
            Jtag.SetMemory(elem + HElems.relativeOffset - 4, uintBytes(0x06));
            Jtag.SetMemory(elem + HElems.shaderOffset, uintBytes(shader));
            Jtag.SetMemory(elem + HElems.heightOffset, ReverseBytes(BitConverter.GetBytes(height)));
            Jtag.SetMemory(elem + HElems.widthOffset, ReverseBytes(BitConverter.GetBytes(width)));
            Jtag.SetMemory(elem + HElems.alignOffset, uintBytes(align));
            Jtag.SetMemory(elem + HElems.textOffset + 4, ReverseBytes(BitConverter.GetBytes(sort)));
            Jtag.SetMemory(elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(x)));
            Jtag.SetMemory(elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(y)));
        }

        public void setText(uint elem, byte[] text, uint font, float fontScale, float x, float y, uint align, int r = 255, int g = 255, int b = 255, int a = 255)
        {
            Jtag.SetMemory(elem, nop);
            Jtag.SetMemory(elem + HElems.textOffset, text);
            Jtag.SetMemory(elem + HElems.relativeOffset, uintBytes(0x05));
            Jtag.SetMemory(elem + HElems.relativeOffset - 4, uintBytes(0x06));
            Jtag.SetMemory(elem + HElems.fontOffset, uintBytes(font));
            Jtag.SetMemory(elem + HElems.alignOffset, uintBytes(align));
            Jtag.SetMemory(elem + HElems.textOffset + 4, new byte[] { 0x40, 0x00 });
            Jtag.SetMemory(elem + HElems.fontSizeOffset, ReverseBytes(BitConverter.GetBytes(fontScale)));
            Jtag.SetMemory(elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(x)));
            Jtag.SetMemory(elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(y)));
        }
        public void DestroyElems()
        {
            Jtag.Call(0x821DFAF0);
        }
    }
}

#2. Posted:
Charg3n
  • Junior Member
Status: Offline
Joined: Jul 02, 201310Year Member
Posts: 66
Reputation Power: 2
Status: Offline
Joined: Jul 02, 201310Year Member
Posts: 66
Reputation Power: 2
use this but Remove the "static" then there will be no errors..




 public static class HElems
            {
                public static uint
                locString = 0x8220C838,
                material = 0x8220C9F8,
                elem = 0x821DF9C0,
                xOffset = 0x08,
                yOffset = 0x04,
                textOffset = 0x84,
                fontOffset = 0x28,
                fontSizeOffset = 0x14,
                colorOffset = 0x34,
                relativeOffset = 0x2c,
                widthOffset = 0x48,
                heightOffset = 0x44,
                shaderOffset = 0x4C,
                alignOffset = 0x30;
            }
 
            public static uint createElem(int client)
            {
                return Jtag.Call(HElems.elem, client, 0);
            }
 
            public static uint spawnElem(int client, uint elemAddress)
            {
                Jtag.SetMemory(elemAddress + 0xA8, ReverseBytes(BitConverter.GetBytes(client)));
 
                return elemAddress;
            }
 
            public static uint createText(string text)
            {
                return Jtag.Call(HElems.locString, text);
            }
 
            public static uint getMaterialIndex(string material)
            {
                return Jtag.Call(HElems.material, material);
            }
 
            public static byte[] uintBytes(uint input)
            {
                byte[] data = BitConverter.GetBytes(input);
                Array.Reverse(data);
                return data;
            }
 
            public static byte[] ReverseBytes(byte[] inArray)
            {
                byte temp;
                int highCtr = inArray.Length - 1;
 
                for (int ctr = 0; ctr < inArray.Length / 2; ctr++)
                {
                    temp = inArray[ctr];
                    inArray[ctr] = inArray[highCtr];
                    inArray[highCtr] = temp;
                    highCtr -= 1;
                }
                return inArray;
            }
 
            public static void setIcon(uint elem, uint shader, int width, int height, float x, float y, uint align, float sort = 0, int r = 255, int g = 255, int b = 255, int a = 255)//remove
            {
                Jtag.SetMemory(elem, new byte[] { 0x00, 0x00, 0x00, 0x04 });
 
                Jtag.SetMemory(elem + HElems.relativeOffset, uintBytes(0x05));
                Jtag.SetMemory(elem + HElems.relativeOffset - 4, uintBytes(0x06));
                Jtag.SetMemory(elem + HElems.shaderOffset, uintBytes(shader));
                Jtag.SetMemory(elem + HElems.heightOffset, ReverseBytes(BitConverter.GetBytes(height)));
                Jtag.SetMemory(elem + HElems.widthOffset, ReverseBytes(BitConverter.GetBytes(width)));
                Jtag.SetMemory(elem + HElems.alignOffset, uintBytes(align));
                Jtag.SetMemory(elem + HElems.colorOffset, new byte[] { BitConverter.GetBytes(r)[0], BitConverter.GetBytes(g)[0], BitConverter.GetBytes(b)[0], BitConverter.GetBytes(a)[0] });
                Jtag.SetMemory(elem + HElems.textOffset + 4, ReverseBytes(BitConverter.GetBytes(sort)));
                Jtag.SetMemory(elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(x)));
                Jtag.SetMemory(elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(y)));
            }
 
            public static void setText(uint elem, byte[] text, uint font, float fontScale, float x, float y, uint align, int r = 255, int g = 255, int b = 255, int a = 255)//remove
            {
                Jtag.SetMemory(elem, new byte[] { 0x00, 0x00, 0x00, 0x01 });
 
                Jtag.SetMemory(elem + HElems.textOffset, text);
                Jtag.SetMemory(elem + HElems.relativeOffset, uintBytes(0x05));
                Jtag.SetMemory(elem + HElems.relativeOffset - 4, uintBytes(0x06));
                Jtag.SetMemory(elem + HElems.fontOffset, uintBytes(font));
                Jtag.SetMemory(elem + HElems.alignOffset, uintBytes(align));
                Jtag.SetMemory(elem + HElems.textOffset + 4, new byte[] { 0x40, 0x00 });
                Jtag.SetMemory(elem + HElems.fontSizeOffset, ReverseBytes(BitConverter.GetBytes(fontScale)));
                Jtag.SetMemory(elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(x)));
                Jtag.SetMemory(elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(y)));
                Jtag.SetMemory(elem + HElems.colorOffset, new byte[] { BitConverter.GetBytes(r)[0], BitConverter.GetBytes(g)[0], BitConverter.GetBytes(b)[0], BitConverter.GetBytes(a)[0] });
            }
 
            public static void DestroyElems()//remove
            {
                Jtag.Call(0x821DFAF0);
            }
 
#3. Posted:
Sheperdebops
  • TTG Natural
Status: Offline
Joined: Dec 08, 201013Year Member
Posts: 931
Reputation Power: 40
Status: Offline
Joined: Dec 08, 201013Year Member
Posts: 931
Reputation Power: 40
Haxoring wrote use this but Remove the "static" then there will be no errors..




 public static class HElems
            {
                public static uint
                locString = 0x8220C838,
                material = 0x8220C9F8,
                elem = 0x821DF9C0,
                xOffset = 0x08,
                yOffset = 0x04,
                textOffset = 0x84,
                fontOffset = 0x28,
                fontSizeOffset = 0x14,
                colorOffset = 0x34,
                relativeOffset = 0x2c,
                widthOffset = 0x48,
                heightOffset = 0x44,
                shaderOffset = 0x4C,
                alignOffset = 0x30;
            }
 
            public static uint createElem(int client)
            {
                return Jtag.Call(HElems.elem, client, 0);
            }
 
            public static uint spawnElem(int client, uint elemAddress)
            {
                Jtag.SetMemory(elemAddress + 0xA8, ReverseBytes(BitConverter.GetBytes(client)));
 
                return elemAddress;
            }
 
            public static uint createText(string text)
            {
                return Jtag.Call(HElems.locString, text);
            }
 
            public static uint getMaterialIndex(string material)
            {
                return Jtag.Call(HElems.material, material);
            }
 
            public static byte[] uintBytes(uint input)
            {
                byte[] data = BitConverter.GetBytes(input);
                Array.Reverse(data);
                return data;
            }
 
            public static byte[] ReverseBytes(byte[] inArray)
            {
                byte temp;
                int highCtr = inArray.Length - 1;
 
                for (int ctr = 0; ctr < inArray.Length / 2; ctr++)
                {
                    temp = inArray[ctr];
                    inArray[ctr] = inArray[highCtr];
                    inArray[highCtr] = temp;
                    highCtr -= 1;
                }
                return inArray;
            }
 
            public static void setIcon(uint elem, uint shader, int width, int height, float x, float y, uint align, float sort = 0, int r = 255, int g = 255, int b = 255, int a = 255)//remove
            {
                Jtag.SetMemory(elem, new byte[] { 0x00, 0x00, 0x00, 0x04 });
 
                Jtag.SetMemory(elem + HElems.relativeOffset, uintBytes(0x05));
                Jtag.SetMemory(elem + HElems.relativeOffset - 4, uintBytes(0x06));
                Jtag.SetMemory(elem + HElems.shaderOffset, uintBytes(shader));
                Jtag.SetMemory(elem + HElems.heightOffset, ReverseBytes(BitConverter.GetBytes(height)));
                Jtag.SetMemory(elem + HElems.widthOffset, ReverseBytes(BitConverter.GetBytes(width)));
                Jtag.SetMemory(elem + HElems.alignOffset, uintBytes(align));
                Jtag.SetMemory(elem + HElems.colorOffset, new byte[] { BitConverter.GetBytes(r)[0], BitConverter.GetBytes(g)[0], BitConverter.GetBytes(b)[0], BitConverter.GetBytes(a)[0] });
                Jtag.SetMemory(elem + HElems.textOffset + 4, ReverseBytes(BitConverter.GetBytes(sort)));
                Jtag.SetMemory(elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(x)));
                Jtag.SetMemory(elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(y)));
            }
 
            public static void setText(uint elem, byte[] text, uint font, float fontScale, float x, float y, uint align, int r = 255, int g = 255, int b = 255, int a = 255)//remove
            {
                Jtag.SetMemory(elem, new byte[] { 0x00, 0x00, 0x00, 0x01 });
 
                Jtag.SetMemory(elem + HElems.textOffset, text);
                Jtag.SetMemory(elem + HElems.relativeOffset, uintBytes(0x05));
                Jtag.SetMemory(elem + HElems.relativeOffset - 4, uintBytes(0x06));
                Jtag.SetMemory(elem + HElems.fontOffset, uintBytes(font));
                Jtag.SetMemory(elem + HElems.alignOffset, uintBytes(align));
                Jtag.SetMemory(elem + HElems.textOffset + 4, new byte[] { 0x40, 0x00 });
                Jtag.SetMemory(elem + HElems.fontSizeOffset, ReverseBytes(BitConverter.GetBytes(fontScale)));
                Jtag.SetMemory(elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(x)));
                Jtag.SetMemory(elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(y)));
                Jtag.SetMemory(elem + HElems.colorOffset, new byte[] { BitConverter.GetBytes(r)[0], BitConverter.GetBytes(g)[0], BitConverter.GetBytes(b)[0], BitConverter.GetBytes(a)[0] });
            }
 
            public static void DestroyElems()//remove
            {
                Jtag.Call(0x821DFAF0);
            }
 


thanks but there exactly the same as i used nop as placeholder for new byte[] { 0x00, 0x00, 0x00, 0x01 }
#4. Posted:
Charg3n
  • Junior Member
Status: Offline
Joined: Jul 02, 201310Year Member
Posts: 66
Reputation Power: 2
Status: Offline
Joined: Jul 02, 201310Year Member
Posts: 66
Reputation Power: 2
BLU3- wrote
Haxoring wrote use this but Remove the "static" then there will be no errors..




 public static class HElems
            {
                public static uint
                locString = 0x8220C838,
                material = 0x8220C9F8,
                elem = 0x821DF9C0,
                xOffset = 0x08,
                yOffset = 0x04,
                textOffset = 0x84,
                fontOffset = 0x28,
                fontSizeOffset = 0x14,
                colorOffset = 0x34,
                relativeOffset = 0x2c,
                widthOffset = 0x48,
                heightOffset = 0x44,
                shaderOffset = 0x4C,
                alignOffset = 0x30;
            }
 
            public static uint createElem(int client)
            {
                return Jtag.Call(HElems.elem, client, 0);
            }
 
            public static uint spawnElem(int client, uint elemAddress)
            {
                Jtag.SetMemory(elemAddress + 0xA8, ReverseBytes(BitConverter.GetBytes(client)));
 
                return elemAddress;
            }
 
            public static uint createText(string text)
            {
                return Jtag.Call(HElems.locString, text);
            }
 
            public static uint getMaterialIndex(string material)
            {
                return Jtag.Call(HElems.material, material);
            }
 
            public static byte[] uintBytes(uint input)
            {
                byte[] data = BitConverter.GetBytes(input);
                Array.Reverse(data);
                return data;
            }
 
            public static byte[] ReverseBytes(byte[] inArray)
            {
                byte temp;
                int highCtr = inArray.Length - 1;
 
                for (int ctr = 0; ctr < inArray.Length / 2; ctr++)
                {
                    temp = inArray[ctr];
                    inArray[ctr] = inArray[highCtr];
                    inArray[highCtr] = temp;
                    highCtr -= 1;
                }
                return inArray;
            }
 
            public static void setIcon(uint elem, uint shader, int width, int height, float x, float y, uint align, float sort = 0, int r = 255, int g = 255, int b = 255, int a = 255)//remove
            {
                Jtag.SetMemory(elem, new byte[] { 0x00, 0x00, 0x00, 0x04 });
 
                Jtag.SetMemory(elem + HElems.relativeOffset, uintBytes(0x05));
                Jtag.SetMemory(elem + HElems.relativeOffset - 4, uintBytes(0x06));
                Jtag.SetMemory(elem + HElems.shaderOffset, uintBytes(shader));
                Jtag.SetMemory(elem + HElems.heightOffset, ReverseBytes(BitConverter.GetBytes(height)));
                Jtag.SetMemory(elem + HElems.widthOffset, ReverseBytes(BitConverter.GetBytes(width)));
                Jtag.SetMemory(elem + HElems.alignOffset, uintBytes(align));
                Jtag.SetMemory(elem + HElems.colorOffset, new byte[] { BitConverter.GetBytes(r)[0], BitConverter.GetBytes(g)[0], BitConverter.GetBytes(b)[0], BitConverter.GetBytes(a)[0] });
                Jtag.SetMemory(elem + HElems.textOffset + 4, ReverseBytes(BitConverter.GetBytes(sort)));
                Jtag.SetMemory(elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(x)));
                Jtag.SetMemory(elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(y)));
            }
 
            public static void setText(uint elem, byte[] text, uint font, float fontScale, float x, float y, uint align, int r = 255, int g = 255, int b = 255, int a = 255)//remove
            {
                Jtag.SetMemory(elem, new byte[] { 0x00, 0x00, 0x00, 0x01 });
 
                Jtag.SetMemory(elem + HElems.textOffset, text);
                Jtag.SetMemory(elem + HElems.relativeOffset, uintBytes(0x05));
                Jtag.SetMemory(elem + HElems.relativeOffset - 4, uintBytes(0x06));
                Jtag.SetMemory(elem + HElems.fontOffset, uintBytes(font));
                Jtag.SetMemory(elem + HElems.alignOffset, uintBytes(align));
                Jtag.SetMemory(elem + HElems.textOffset + 4, new byte[] { 0x40, 0x00 });
                Jtag.SetMemory(elem + HElems.fontSizeOffset, ReverseBytes(BitConverter.GetBytes(fontScale)));
                Jtag.SetMemory(elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(x)));
                Jtag.SetMemory(elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(y)));
                Jtag.SetMemory(elem + HElems.colorOffset, new byte[] { BitConverter.GetBytes(r)[0], BitConverter.GetBytes(g)[0], BitConverter.GetBytes(b)[0], BitConverter.GetBytes(a)[0] });
            }
 
            public static void DestroyElems()//remove
            {
                Jtag.Call(0x821DFAF0);
            }
 


thanks but there exactly the same as i used nop as placeholder for new byte[] { 0x00, 0x00, 0x00, 0x01 }

hmmm, thats really odd, Mind taking a Gyazo of the errors exactly?
#5. Posted:
hacksorce
  • Challenger
Status: Offline
Joined: Aug 17, 201211Year Member
Posts: 132
Reputation Power: 8
Status: Offline
Joined: Aug 17, 201211Year Member
Posts: 132
Reputation Power: 8
*cough use move over time *cough.
#6. Posted:
Sheperdebops
  • TTG Natural
Status: Offline
Joined: Dec 08, 201013Year Member
Posts: 931
Reputation Power: 40
Status: Offline
Joined: Dec 08, 201013Year Member
Posts: 931
Reputation Power: 40
hacksorce wrote *cough use move over time *cough.


good point but it doesnt even make the Elements its just freezes heres a Gyazo
[ Register or Signin to view external links. ]
Jump to:
You are viewing our Forum Archives. To view or take place in current topics click here.