Post: Creating an RTM Tool in C#: Part 2 (Clients)
10-11-2015, 06:05 AM #1
Freezee
Bounty hunter
(adsbygoogle = window.adsbygoogle || []).push({});
Introduction


This tutorial is for those who are need help adding Client Modifications for their tools.






Creating / Loading your project


You want to Create or Load a Project in your Visual Studio IDE, If you need help on Creating a Form or Connect and Attach Buttons, Check out my other tutorialYou must login or register to view this content..





Getting Client names
We can use a few different objects to display the clients name, we will use a label, and I'll explain using it on a 'Awesome faceata Grid View' object.

Go into your toolbox and drag a Label onto your form, this will be used to display the clients name. Also drag a Button onto your form, we will use this to get the names.



    
byte[] Client0 = new byte[24]; //Gets the Bytes of the defined offset below, It's [24] because of the character length of the players name.

YourAPI.GetMemory(0x0110D694, Client0); //Getting the Memory of Client 0.

string Client0Name = Encoding.ASCII.GetString(Client0); //Gets the String of Client 0's name.

YourLabelName.Text = Client0Name; //Changing your Label(s) text to the Players name.



[HR][/HR]
You can use a 'Awesome faceataGridView' with this.


uint CalculateAddress(uint Address, int Client, uint Offset)
{
//This adds up address + the offset (aka mod).
//Then adds the client number, * by the size of the structure which in this case is 0x5808.
//Then returns the total value.
return Address + Offset + ((uint)Client * 0x580Cool Man (aka Tustin);
}



for (int i = 0; i < 18; i++)// Loops from 0 - 17, since we have 18 clients, player 1 is client 0, player 18 is client 17.
{
uint AddressToRead = CalculateAddress(0x01780F28, i, 0x5544);//Address is our client 0 main address, i is the client number which increases, 0x5544 is the Name offset.
string PlayersName = YourAPI.Extension.ReadString(AddressToRead);//Read the name from the address
dataGridView1.Rows.Add(PlayersName); // Adds items to DataGridView
}






    
Client Addresses:
Client 0: 0x0110D694
Client 1: 0x01111014
Client 2: 0x01114994
Client 3: 0x01118314
Client 4: 0x0111BC94
Client 5: 0x0111F614
Client 6: 0x01122F94
Client 7: 0x01126914
Client 8: 0x0112A294
Client 9: 0x0112DC14
Client 10: 0x01131594
Client 11: 0x01134F14
Client 12: 0x01138894
Client 13: 0x0113C214
Client 14: 0x0113FB94
Client 15: 0x01143514
Client 16: 0x01146E94
Client 17: 0x0114A814
[/COLOR]




Giving Client Modifications


We will make a God Mode Function for Client 0. Drag an Object onto your Form (Check-box, Radio-Button, Button etc.) and Click It.

As Always, There are explanations and code snippets.

    Byte[] bytes = new Byte[] { 0xFF }; //Defines the byte (0xFF enables godmode).
YourAPIName.SetMemory(0x0FCA41E, bytes); // 0x0FCA41E is the offset, "bytes" is 0xFF.

Byte[] bytes = new Byte[] { 0x00 }; //Defines the byte (0x00 disables godmode)
YourAPIName.SetMemory(0x0FCA41E, bytes); //Same exact thing as above.


You can do other things to get it to work with datagridview, I'll leave that too the user to decide.




Definitions and Offsets

Definitions!

What are Clients?

It's a player or a 'client' that connects to the server.



Offsets



Credits to whomever found these.

client 0: 0x0110A29C
health: 0x0FCA41E
ammo: 0x0110a62b
vision: 0x0110a293
primary weapon: 0x0110A4FF
secondary weapon: 0x0110A4F7

client 1: 0x0110DC1C
health: 0x00fca69e
ammo: 0x110DFAB
vision: 0x110DC13
primary weapon: 0x110DE7F
secondary weapon: 0x110DE77

client 2: 0x0111159C
health: 0xFCA91E
ammo: 0x111192B
vision: 0x1111593
primary weapon: 0x11117FF
secondary weapon: 0x11117F7

client 3: 0x01114F1C
health: 0xFCAB9E
ammo: 0x11152AB
vision: 0x1114F13
primary weapon: 0x111517F
secondary weapon: 0x1115177

client 4: 0x0111889C
health: 0xFCAE1E
ammo: 0x1118C2B
vision: 0x1118893
primary weapon: 0x1118AFF
secondary weapon: 0x1118AF7

client 5: 0x0111C21C
health: 0xFCB09E
ammo: 0x111C5AB
vision: 0x111C213
primary: 0x111C47F
secondary: 0x111C477


client 6: 0x0111FB9C
health: 0xFCB31E
ammo: 0x111FF2B
vision: 0x111FB93
primary: 0x111FDFF
secondary: 0x111FDF7

client 7: 0x0112351C
health: 0xFCB59E
ammo: 0x11238AB
vison: 0x1123513
primary: 0x112377F
secondary: 0x1123777

client 8: 0x01126E9C
health: 0xFCB81E
ammo: 0x112722B
vison: 0x1126E93
primary: 0x11270FF
secondary: 0x11270F7

client 9: 0x0112A81C
health: 0xFCBA9E
ammo: 0x112ABAB
vision: 0x112A813
primary: 0x112AA7F
secondary: 0x112AA77

client 10: 0x0112E19C
health: 0xFCBD1E
ammo: 0x112E52B
vision: 0x112E193
primary: 0x112E3FF
secondary: 0x112E3F7

client 11: 0x01131B1C
health: 0xFCBF9E
ammo: 0x1131EAB
vision: 0x1131B13
primary: 0x1131D7F
secondary: 0x1131D77

client 12: 0x0113549C
health: 0xFCC21E
ammo: 0x113582B
vision: 0x1135493
primary: 0x11356FF
secondary: 0x11356F7

client 13: 0x1138E1C
health: 0xFCC49E
ammo: 0x11391AB
vision: 0x1138E13
primary: 0x113907F
secondary: 0x1139077

client 14: 0x113C79C
health: 0xFCC71E
ammo: 0x113CB2B
vision: 0x113C793
primary: 0x113C9FF
secondary: 0x113C9F7

client 15: 0x114011C
health: 0xFCC99E
ammo: 0x11404AB
vision: 0x1140113
primary: 0x114037F
secondary: 0x1140377

client 16: 0x1143A9C
health: 0xFCCC1E
ammo: 0x1143E2B
vision: 0x1143A93
primary: 0x1143CFF
secondary: 0x1143CF7

client 17: 0x114741C
health: 0xFCCE9E
ammo: 0x11477AB
vision: 0x1147413
primary: 0x114767F
secondary: 0x1147677




Thanks to You must login or register to view this content.
Last edited by Freezee ; 04-25-2017 at 01:12 AM. Reason: Changed layout.

The following 2 users say thank you to Freezee for this useful post:

anxify, XxBlud23xX
10-12-2015, 12:13 AM #2
RTE
Keep it real!
Great work Enzo

Stickied Winky Winky

The following 2 users say thank you to RTE for this useful post:

Freezee, XxBlud23xX
10-12-2015, 05:24 PM #3
Originally posted by Freezee View Post
Introduction


I decided I would do a Client Tutorial Mainly because I don't think there are many detailed Tutorials on getting Clients Names or Giving them Modifications. This Tutorial will hopefully change that.

I have already made a(n) Tutorial that explains the basics You must login or register to view this content.




Getting Ready!


You want to Create or Load a Project in your Visual Studio IDE, If you need help on Creating a Form or Connect and Attach Buttons, Check out You must login or register to view this content. thread!



Getting Client(s) names!


As I've said before, And I will say again. There are a number of Toolbox Items ("Objects") You can use for situations just like this, In most (if not all) RTE Tools, They use a "DataGridView", For the sake of this tutorial. We will use Label(s). Lets get started shall we?

Go onto your Form (If you have created a Project, File > New Project) And drag a Label onto your Form.

To find the Label Item ("Object"). Go to your Toolbox Click "All Windows Forms" and find "Label". Can't find Toolbox? Go to View > Toolbox or Hit the Following Keys "CTRL, W, X".

After you have Created the Label Object. You want to drag a Button Object onto your Form, Write the Following Code.

As Always, There are explanations and code snippets.

The Code.

    
byte[] ClientName0 = new byte[24]; //Gets the Bytes of the defined offset below, Maximum 24 (Cant be changed).
MW3API.GetMemory(0x0110D694, ClientName0); //Getting the Memory or the "Client Name" of Client 0 (you in private match).
string Client0 = Encoding.ASCII.GetString(ClientName0); //Getting the String of "ClientName0", which would be you in Private Match.
YourLabelName.Text = Client0; //Changing your Label(s) text to the Players name.


The Offsets

    
Client Name Offsets (Credits to whomever found these)
Client 0: 0x0110D694
Client 1: 0x01111014
Client 2: 0x01114994
Client 3: 0x01118314
Client 4: 0x0111BC94
Client 5: 0x0111F614
Client 6: 0x01122F94
Client 7: 0x01126914
Client 8: 0x0112A294
Client 9: 0x0112DC14
Client 10: 0x01131594
Client 11: 0x01134F14
Client 12: 0x01138894
Client 13: 0x0113C214
Client 14: 0x0113FB94
Client 15: 0x01143514
Client 16: 0x01146E94
Client 17: 0x0114A814




Giving Client(s) Modifications!


We will make a God Mode Function for Client 0. Drag an Object onto your Form (Check-box, Radio-Button, Button etc.) and Click It.

As Always, There are explanations and code snippets.

    Byte[] bytes = new Byte[] { 0xFF }; //Defines the byte (0xFF enables godmode).
YourAPIName.SetMemory(0x0FCA41E, bytes); // 0x0FCA41E is the offset, "bytes" is 0xFF.

Byte[] bytes = new Byte[] { 0x00 }; //Defines the byte (0x00 disables godmode)
YourAPIName.SetMemory(0x0FCA41E, bytes); //Same exact thing as above.


That's It!. You're done!.




Definitions and Offsets

Definitions!

What are Clients?

An Example: A Server. You have 18 Players Join. The First Player is "Client 0" and the 18th Player is "Client 17".



Offsets



Credits to whomever found these.

client 0: 0x0110A29C
health: 0x0FCA41E
ammo: 0x0110a62b
vision: 0x0110a293
primary weapon: 0x0110A4FF
secondary weapon: 0x0110A4F7

client 1: 0x0110DC1C
health: 0x00fca69e
ammo: 0x110DFAB
vision: 0x110DC13
primary weapon: 0x110DE7F
secondary weapon: 0x110DE77

client 2: 0x0111159C
health: 0xFCA91E
ammo: 0x111192B
vision: 0x1111593
primary weapon: 0x11117FF
secondary weapon: 0x11117F7

client 3: 0x01114F1C
health: 0xFCAB9E
ammo: 0x11152AB
vision: 0x1114F13
primary weapon: 0x111517F
secondary weapon: 0x1115177

client 4: 0x0111889C
health: 0xFCAE1E
ammo: 0x1118C2B
vision: 0x1118893
primary weapon: 0x1118AFF
secondary weapon: 0x1118AF7

client 5: 0x0111C21C
health: 0xFCB09E
ammo: 0x111C5AB
vision: 0x111C213
primary: 0x111C47F
secondary: 0x111C477


client 6: 0x0111FB9C
health: 0xFCB31E
ammo: 0x111FF2B
vision: 0x111FB93
primary: 0x111FDFF
secondary: 0x111FDF7

client 7: 0x0112351C
health: 0xFCB59E
ammo: 0x11238AB
vison: 0x1123513
primary: 0x112377F
secondary: 0x1123777

client 8: 0x01126E9C
health: 0xFCB81E
ammo: 0x112722B
vison: 0x1126E93
primary: 0x11270FF
secondary: 0x11270F7

client 9: 0x0112A81C
health: 0xFCBA9E
ammo: 0x112ABAB
vision: 0x112A813
primary: 0x112AA7F
secondary: 0x112AA77

client 10: 0x0112E19C
health: 0xFCBD1E
ammo: 0x112E52B
vision: 0x112E193
primary: 0x112E3FF
secondary: 0x112E3F7

client 11: 0x01131B1C
health: 0xFCBF9E
ammo: 0x1131EAB
vision: 0x1131B13
primary: 0x1131D7F
secondary: 0x1131D77

client 12: 0x0113549C
health: 0xFCC21E
ammo: 0x113582B
vision: 0x1135493
primary: 0x11356FF
secondary: 0x11356F7

client 13: 0x1138E1C
health: 0xFCC49E
ammo: 0x11391AB
vision: 0x1138E13
primary: 0x113907F
secondary: 0x1139077

client 14: 0x113C79C
health: 0xFCC71E
ammo: 0x113CB2B
vision: 0x113C793
primary: 0x113C9FF
secondary: 0x113C9F7

client 15: 0x114011C
health: 0xFCC99E
ammo: 0x11404AB
vision: 0x1140113
primary: 0x114037F
secondary: 0x1140377

client 16: 0x1143A9C
health: 0xFCCC1E
ammo: 0x1143E2B
vision: 0x1143A93
primary: 0x1143CFF
secondary: 0x1143CF7

client 17: 0x114741C
health: 0xFCCE9E
ammo: 0x11477AB
vision: 0x1147413
primary: 0x114767F
secondary: 0x1147677


Great tutorial, but terrible programming and optimization done here. Rather than using 18 different addresses (those are addresses NOT offsets, there's a difference) you can use a real address, which is G_Client, and offset it by the difference.
So, we have 0x0110A280 which is our G_Client address, we add 0x3414 to that address for the first client and we'd get 0x0110D694, and for other clients, we'd offset the address by 0x3980 multiplied by our client index, like so (0x0110A280 + (0x3980*5) + 0x3414) and we'd get 0x111F614 which is the address for the name for client #5

C# Usage:
    void setClientName(uint ClientIndex, string Name)
{
PS3API.Extension.SetMemory((0x0110A280 + (0x3980*ClientIndex) + 0x3414), Name);
}

The following 2 users say thank you to John for this useful post:

Freezee, LevelUP
10-12-2015, 06:58 PM #4
Freezee
Bounty hunter
Originally posted by John View Post
Great tutorial, but terrible programming and optimization done here. Rather than using 18 different addresses (those are addresses NOT offsets, there's a difference) you can use a real address, which is G_Client, and offset it by the difference.
So, we have 0x0110A280 which is our G_Client address, we add 0x3414 to that address for the first client and we'd get 0x0110D694, and for other clients, we'd offset the address by 0x3980 multiplied by our client index, like so (0x0110A280 + (0x3980*5) + 0x3414) and we'd get 0x111F614 which is the address for the name for client #5

C# Usage:
    void setClientName(uint ClientIndex, string Name)
{
PS3API.Extension.SetMemory((0x0110A280 + (0x3980*ClientIndex) + 0x3414), Name);
}


Thanks for the Feedback! I added your "Code Snippet" To the Thread if you don't mind!
Last edited by Freezee ; 10-12-2015 at 07:05 PM.

The following user thanked Freezee for this useful post:

John
10-12-2015, 07:19 PM #5
Noob tutorial but good
10-12-2015, 10:25 PM #6
Freezee
Bounty hunter
Originally posted by Programmer View Post
Noob tutorial but good


It's not a "noob" tutorial. But i guess you have your own opinions.
10-13-2015, 03:44 PM #7
Toxic
former staff
Originally posted by John View Post
Great tutorial, but terrible programming and optimization done here. Rather than using 18 different addresses (those are addresses NOT offsets, there's a difference) you can use a real address, which is G_Client, and offset it by the difference.
So, we have 0x0110A280 which is our G_Client address, we add 0x3414 to that address for the first client and we'd get 0x0110D694, and for other clients, we'd offset the address by 0x3980 multiplied by our client index, like so (0x0110A280 + (0x3980*5) + 0x3414) and we'd get 0x111F614 which is the address for the name for client #5

C# Usage:
    void setClientName(uint ClientIndex, string Name)
{
PS3API.Extension.SetMemory((0x0110A280 + (0x3980*ClientIndex) + 0x3414), Name);
}


PS3API.Extension.SetMemory
wtf is that Idk
pretty sure u mean /*TheDefinedPS3API*/.Extension.WriteString
or PS3API smh = new PS3API().Extension.WriteString :p
Last edited by Toxic ; 10-13-2015 at 03:49 PM.
10-13-2015, 03:48 PM #8
Toxic
former staff
Originally posted by Freezee View Post
Introduction


I decided I would do a Client Tutorial Mainly because I don't think there are many detailed Tutorials on getting Clients Names or Giving them Modifications. This Tutorial will hopefully change that.

I have already made a(n) Tutorial that explains the basics You must login or register to view this content.




Getting Ready!


You want to Create or Load a Project in your Visual Studio IDE, If you need help on Creating a Form or Connect and Attach Buttons, Check out You must login or register to view this content. thread!



Getting Client(s) names!


As I've said before, And I will say again. There are a number of Toolbox Items ("Objects") You can use for situations just like this, In most (if not all) RTE Tools, They use a "DataGridView", For the sake of this tutorial. We will use Label(s). Lets get started shall we?

Go onto your Form (If you have created a Project, File > New Project) And drag a Label onto your Form.

To find the Label Item ("Object"). Go to your Toolbox Click "All Windows Forms" and find "Label". Can't find Toolbox? Go to View > Toolbox or Hit the Following Keys "CTRL, W, X".

After you have Created the Label Object. You want to drag a Button Object onto your Form, Write the Following Code.

As Always, There are explanations and code snippets.

The Code.

    
byte[] ClientName0 = new byte[24]; //Gets the Bytes of the defined offset below, Maximum 24 (Cant be changed).
MW3API.GetMemory(0x0110D694, ClientName0); //Getting the Memory or the "Client Name" of Client 0 (you in private match).
string Client0 = Encoding.ASCII.GetString(ClientName0); //Getting the String of "ClientName0", which would be you in Private Match.
YourLabelName.Text = Client0; //Changing your Label(s) text to the Players name.


Alternative Way to do it, Credits to John.

This way is better than Defining 18 Clients.

void setClientName(uint ClientIndex, string Name)
{
PS3API.Extension.SetMemory((0x0110A280 + (0x3980*ClientIndex) + 0x3414), Name);
}



The Offsets

    
Client Name Offsets (Credits to whomever found these)
Client 0: 0x0110D694
Client 1: 0x01111014
Client 2: 0x01114994
Client 3: 0x01118314
Client 4: 0x0111BC94
Client 5: 0x0111F614
Client 6: 0x01122F94
Client 7: 0x01126914
Client 8: 0x0112A294
Client 9: 0x0112DC14
Client 10: 0x01131594
Client 11: 0x01134F14
Client 12: 0x01138894
Client 13: 0x0113C214
Client 14: 0x0113FB94
Client 15: 0x01143514
Client 16: 0x01146E94
Client 17: 0x0114A814




Giving Client(s) Modifications!


We will make a God Mode Function for Client 0. Drag an Object onto your Form (Check-box, Radio-Button, Button etc.) and Click It.

As Always, There are explanations and code snippets.

    Byte[] bytes = new Byte[] { 0xFF }; //Defines the byte (0xFF enables godmode).
YourAPIName.SetMemory(0x0FCA41E, bytes); // 0x0FCA41E is the offset, "bytes" is 0xFF.

Byte[] bytes = new Byte[] { 0x00 }; //Defines the byte (0x00 disables godmode)
YourAPIName.SetMemory(0x0FCA41E, bytes); //Same exact thing as above.


That's It!. You're done!.




Definitions and Offsets

Definitions!

What are Clients?

An Example: A Server. You have 18 Players Join. The First Player is "Client 0" and the 18th Player is "Client 17".



Offsets



Credits to whomever found these.

client 0: 0x0110A29C
health: 0x0FCA41E
ammo: 0x0110a62b
vision: 0x0110a293
primary weapon: 0x0110A4FF
secondary weapon: 0x0110A4F7

client 1: 0x0110DC1C
health: 0x00fca69e
ammo: 0x110DFAB
vision: 0x110DC13
primary weapon: 0x110DE7F
secondary weapon: 0x110DE77

client 2: 0x0111159C
health: 0xFCA91E
ammo: 0x111192B
vision: 0x1111593
primary weapon: 0x11117FF
secondary weapon: 0x11117F7

client 3: 0x01114F1C
health: 0xFCAB9E
ammo: 0x11152AB
vision: 0x1114F13
primary weapon: 0x111517F
secondary weapon: 0x1115177

client 4: 0x0111889C
health: 0xFCAE1E
ammo: 0x1118C2B
vision: 0x1118893
primary weapon: 0x1118AFF
secondary weapon: 0x1118AF7

client 5: 0x0111C21C
health: 0xFCB09E
ammo: 0x111C5AB
vision: 0x111C213
primary: 0x111C47F
secondary: 0x111C477


client 6: 0x0111FB9C
health: 0xFCB31E
ammo: 0x111FF2B
vision: 0x111FB93
primary: 0x111FDFF
secondary: 0x111FDF7

client 7: 0x0112351C
health: 0xFCB59E
ammo: 0x11238AB
vison: 0x1123513
primary: 0x112377F
secondary: 0x1123777

client 8: 0x01126E9C
health: 0xFCB81E
ammo: 0x112722B
vison: 0x1126E93
primary: 0x11270FF
secondary: 0x11270F7

client 9: 0x0112A81C
health: 0xFCBA9E
ammo: 0x112ABAB
vision: 0x112A813
primary: 0x112AA7F
secondary: 0x112AA77

client 10: 0x0112E19C
health: 0xFCBD1E
ammo: 0x112E52B
vision: 0x112E193
primary: 0x112E3FF
secondary: 0x112E3F7

client 11: 0x01131B1C
health: 0xFCBF9E
ammo: 0x1131EAB
vision: 0x1131B13
primary: 0x1131D7F
secondary: 0x1131D77

client 12: 0x0113549C
health: 0xFCC21E
ammo: 0x113582B
vision: 0x1135493
primary: 0x11356FF
secondary: 0x11356F7

client 13: 0x1138E1C
health: 0xFCC49E
ammo: 0x11391AB
vision: 0x1138E13
primary: 0x113907F
secondary: 0x1139077

client 14: 0x113C79C
health: 0xFCC71E
ammo: 0x113CB2B
vision: 0x113C793
primary: 0x113C9FF
secondary: 0x113C9F7

client 15: 0x114011C
health: 0xFCC99E
ammo: 0x11404AB
vision: 0x1140113
primary: 0x114037F
secondary: 0x1140377

client 16: 0x1143A9C
health: 0xFCCC1E
ammo: 0x1143E2B
vision: 0x1143A93
primary: 0x1143CFF
secondary: 0x1143CF7

client 17: 0x114741C
health: 0xFCCE9E
ammo: 0x11477AB
vision: 0x1147413
primary: 0x114767F
secondary: 0x1147677


ooh, and if someone wanna change all of the clients name, just make a "For Loop" to make it easier for them :p
    
for (uint smh =0; smh <= 18; smh++)
{
/*UrDefinedPS3API*.Extension.WriteString(/*offset*/ + (0x3980 * smh) (, /*string*/);
}
Last edited by Toxic ; 10-13-2015 at 04:22 PM.
10-13-2015, 04:11 PM #9
Originally posted by ToXiC View Post
PS3API.Extension.SetMemory
wtf is that Idk
pretty sure u mean /*TheDefinedPS3API*/.Extension.WriteString
or PS3API smh = new PS3API().Extension.WriteString :p


Mine was just an example, I'd hope people would know to fix it
That won't work, either btw, new PS3API().Extension.WriteString is a void, therefor returns nothing, so you'd get an invalid type there
10-13-2015, 04:21 PM #10
Toxic
former staff
Originally posted by John View Post
Mine was just an example, I'd hope people would know to fix it
That won't work, either btw, new PS3API().Extension.WriteString is a void, therefor returns nothing, so you'd get an invalid type there


that's true Sal

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo