Post: [C#/VB/C++] Ultimate RTM Tool Programming Tutorial
05-26-2016, 11:05 PM #1
S63
Space Ninja
(adsbygoogle = window.adsbygoogle || []).push({}); HI NGU,
I made these tutorials because I don't see many people making stuff anymore and would like to see more
people starting to code so the community can start to grow and become stronger Happy

In this tutorial we will be making tools in the following languages:
C#
VB.NET
C++

Things Required (Green = Needed, Orange = Recommended):
A Brain
Computer (Not MAC)
Control Console Or Target Manager API!
Offsets for game your coding
Access to a CFW PS3 system

Find PS3Lib You must login or register to view this content.

Definitions:

Encoding:
    
Encoding is a class (System.Text), we will be using ACSII (7 bit) which is part of the encoding class. What
ACSII (7 bit) basically does this converts character sets, we will be using this so we can convert are
name strings (for name changers) to bytes so the PS3 system is able to read them correctly.


Bitconverter:
    
Bitconverter is a class, we will be using GetBytes(Int32) which will return the
specified 32-bit signed integer value as an array of bytes.



C#

Tutorial 1 (Setting up form)

So first off you want to start by making a new project...
You must login or register to view this content.

after this you want to click on C# Projects, then click windows application form.
You must login or register to view this content.

after creating your windows application form you will get this...
You must login or register to view this content.

Now you can see the tool box on the side, click it and is should open all we need for this part is
radionbutton and button. Now we can design our tool. Also to edit the properties just look and the
bottom right hand corner and you'll see the properties windows everything you need to edit the
properties of your button etc is there just use your brain
You must login or register to view this content.

Next we want to add the PS3Lib to are refrences you do this...
You must login or register to view this content.

Once done add using PS3Lib to are app and we need to define it like this...
You must login or register to view this content.


Tutorial 2 (Adding API options to the tool)

So now what you want to do after completing tutorial 1 is double click your TMAPI button.
You must login or register to view this content.

Now you want to add our code for tmapi which is: PS3.ChangeAPI(SelectAPI.TargetManager); exactly how you see it.
You must login or register to view this content.

And just do the same for CCAPI button.
You must login or register to view this content.

Next we want to add our connect code which is like this.
You must login or register to view this content.

Just do this again for attach.
You must login or register to view this content.

now we want to add our disconnect function.
You must login or register to view this content.

Now for Power off we need to create a API checker which is done like this.
You must login or register to view this content.


Tutorial 3 (Stats Editor and Name Changing)

So for stats editing we are going to be using converting functions and encoding functions (Read above in definations).

So we are going to need a numericUpDown, label, button and a checkbox like so....
You must login or register to view this content.

First things first we want to edit our numericUpDown min value and max value to this just do.....
You must login or register to view this content.

Recommended Max and Min values:
    
For Score, Killss etc...
Max - 2147483647
Min - -2147483647

For Time played Editor
Days
Max - 199
Min - 0

Hours
Max - 23
Min - 0

Minutes
Max - 59
Min - 0

Seconds
Max - 59
Min - 0


Next we want to make our button only set stats if the checkbox is checked, we will do this by using if statements and bools
You must login or register to view this content.

Now we want to add our set code functions which we will make now.
You must login or register to view this content.

Now we got our set stats function, we now need a Set Time Played Function!
You must login or register to view this content.

Finally we can make our stats editor.
You must login or register to view this content.

And last of all for stats edit we want to make checkall function!
You must login or register to view this content.

And now we can move to making a name changer!

First you want to get your textbox, button, checkBox and a timer!
You must login or register to view this content.

Now we want to start by coding send name!
You must login or register to view this content.

Next we wanna set up our checkBox (Flashing Name)!
You must login or register to view this content.

Finally to finish of this tutorial we will add flashing name to our timer, you wanna add random
function to the top of your project likes this!
You must login or register to view this content.

Then do this...
You must login or register to view this content.


Tutorial 4 (Adding Clients)

In this tutorial we will be using dataGridView, buttons and contextmenustrip...

First we want to get our buttons ready...
You must login or register to view this content.

We want to find our columns in properties for datagridview like this!
You must login or register to view this content.

Next we want to add columns...
You must login or register to view this content.

Now we want to add our contextmenustrip...
You must login or register to view this content.

Next we want to make our getclientname function using the function ReadSting, also we need
client 0 name offset(MW2 - 0x014e5490) and client size (MW2 - 0x3700)
You must login or register to view this content.

Now we want to add this function to our datagridview like this...
You must login or register to view this content.

Finally we are going to make our godmode function and add to our contextmenustrip..
You must login or register to view this content.

Now we will make give godmode...
You must login or register to view this content.

Then we will remove godmode...
You must login or register to view this content.


If you guys want more tutorials posted on thread that is linked to C# just let me know below!
What do you guys want me to make for my next tutorial here on NGU?
Please post your ideas below and ill reply ASAP!
[/CODE]


VB.NET

Tutorial 1 (Setting up Form)

So first off you want to start by making a new project...
You must login or register to view this content.

after this you want to click on VB Projects, then click windows application form.
You must login or register to view this content.

after creating your windows application form you will get this...
You must login or register to view this content.

Now you can see the tool box on the side, click it and is should open all we need for this part is
radionbutton and button. Now we can design our tool. Also to edit the properties just look and the
bottom right hand corner and you'll see the properties windows everything you need to edit the
properties of your button etc is there just use your brain
You must login or register to view this content.

Next we want to add the PS3Lib to are refrences you do this...
You must login or register to view this content.

Once done add using PS3Lib to are app and we need to define it like this...
You must login or register to view this content.


Tutorial 2 (Adding API options to the tool)

So now what you want to do after completing tutorial 1 is double click your TMAPI button.
You must login or register to view this content.

Now you want to add our code for tmapi which is: PS3.ChangeAPI(SelectAPI.TargetManager) exactly how you see it.
You must login or register to view this content.

And just do the same for CCAPI button.
You must login or register to view this content.

Next we want to add our connect code which is like this.
You must login or register to view this content.

Just do this again for attach.
You must login or register to view this content.

now we want to add our disconnect function.
You must login or register to view this content.

Now for Power off we need to create a API checker which is done like this.
You must login or register to view this content.


Tutorial 3 (Stats Editor and Name Changing)

So for stats editing we are going to be using converting functions and encoding functions (Read above in definations).

So we are going to need a numericUpDown, label, button and a checkbox like so....
You must login or register to view this content.

First things first we want to edit our numericUpDown min value and max value to this just do.....
You must login or register to view this content.

Recommended Max and Min values:
    
For Score, Killss etc...
Max - 2147483647
Min - -2147483647

For Time played Editor
Days
Max - 199
Min - 0

Hours
Max - 23
Min - 0

Minutes
Max - 59
Min - 0

Seconds
Max - 59
Min - 0


Next we want to make our button only set stats if the checkbox is checked, we will do this by using if statements and bools
You must login or register to view this content.

Now we want to add our set code functions which we will make now.
You must login or register to view this content.

Now we want to add are numerics for timeplayed etc..
You must login or register to view this content.

we now need a Set Time Played!
You must login or register to view this content.

And last of all for stats edit we want to make checkall function!
You must login or register to view this content.

And now we can move to making a name changer!

First you want to get your textbox, button, checkBox and a timer!
You must login or register to view this content.

Now we need to add Imports System.Text as the top of are project so we can use encoding.
You must login or register to view this content.

Now we want to start by coding send name!
You must login or register to view this content.

Next we wanna set up our checkBox (Flashing Name)!
You must login or register to view this content.

Finally to finish of this tutorial we will add flashing name to our timer, you wanna add random
function to the top of your project likes this!
You must login or register to view this content.

Then do this...
You must login or register to view this content.


If you guys want more tutorials posted on thread that is linked to VB.NET just let me know below!
What do you guys want me to make for my next tutorial here on NGU?
Please post your ideas below and ill reply ASAP!


Q And A

Where can i get offsets from?
    
Modern Warfare 1 - [URL=https://www.nextgenupdate.com/forums/modern-warfare-mods-patches-tutorials/722394-modern-warafare-1-offsets-collection-updated.html]Mango_Knife's Offsets And Addresses Collection CoD4[/URL]
World At War - [URL=https://www.nextgenupdate.com/forums/world-war-mods-patches-tutorials/853522-call-duty-world-war-offsets-addresses-scripts-ect.html]Thomas's Offsets And Addresses Collection W@W[/URL]
Modern Warfare 2 - [URL=https://www.nextgenupdate.com/forums/modern-warfare-2-mods-patches-tutorials/723206-modern-warfare-2-offsets-addresses-collection-updating-3.html]Mango_Knife's Offsets And Addresses Collection MW2[/URL]
Black Ops 1 - [URL=https://www.nextgenupdate.com/forums/black-ops-mods-patches-tutorials/745898-bo1-offsets-addresses-scripts-thread-1-13-a.html]RTE-Make's Offsets And Addresses Collection BO1[/URL]
Modern Warfare 3 - [URL=https://www.nextgenupdate.com/forums/modern-warfare-3-mods-patches-tutorials/677034-1-24-correct-offsets-post-yours-below.html]INSAN3LY_D34TH's Offsets And Addresses Collection MW3[/URL]
Black Ops 2 -
Ghosts - [URL=https://www.nextgenupdate.com/forums/call-duty-ghosts-mods-cheats-glitches/901435-ghosts-offsets-addresses-functions-collection-1-16-updating.html]ItsJordanModz Offsets And Addresses Collection Ghosts[/URL]
Advanced Warfare -


Are offsets the same for everygame?
    
No They are different and they change if a new update for the game comes out!


How do i find offsets?
    
Easy use debugger or ida pro!


How do i add other CCAPI Commands?

C#
    
Notify Modes!
PS3.CCAPI.Notify(CCAPI.NotifyIcon.ARROW, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.ARROWRIGHT, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.CAUTION, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.DIALOG, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.DIALOGSHADOW, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.FINGER, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.FRIEND, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.GRAB, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.HAND, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.INFO, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.PEN, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.POINTER, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.PROGRESS, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.SLIDER, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.TEXT, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.TROPHY1, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.TROPHY2, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.TROPHY3, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.TROPHY4, "");
PS3.CCAPI.Notify(CCAPI.NotifyIcon.WRONGWAY, "");

Shutdown Modes!
PS3.CCAPI.ShutDown(CCAPI.RebootFlags.ShutDown);
PS3.CCAPI.ShutDown(CCAPI.RebootFlags.SoftReboot);
PS3.CCAPI.ShutDown(CCAPI.RebootFlags.HardReboot);

Buzzer Modes!
PS3.CCAPI.RingBuzzer(CCAPI.BuzzerMode.Single);
PS3.CCAPI.RingBuzzer(CCAPI.BuzzerMode.Double);
PS3.CCAPI.RingBuzzer(CCAPI.BuzzerMode.Continuous);

LED Settings!
Green:
PS3.CCAPI.SetConsoleLed(CCAPI.LedColor.Green, CCAPI.LedMode.On);
PS3.CCAPI.SetConsoleLed(CCAPI.LedColor.Green, CCAPI.LedMode.Off);
PS3.CCAPI.SetConsoleLed(CCAPI.LedColor.Green, CCAPI.LedMode.Blink);

Red:
PS3.CCAPI.SetConsoleLed(CCAPI.LedColor.Red, CCAPI.LedMode.On);
PS3.CCAPI.SetConsoleLed(CCAPI.LedColor.Red, CCAPI.LedMode.Off);
PS3.CCAPI.SetConsoleLed(CCAPI.LedColor.Red, CCAPI.LedMode.Blink);

PSID And IDPS Changers:
IDPS Changer:
PS3.CCAPI.Set*********("");

PSID Changer:
PS3.CCAPI.SetPSID("");

PSID And IDPS Changer On PS3 Boot Up!
PS3.CCAPI.SetBoot*********("", CCAPI.IdType.IDPS);
PS3.CCAPI.SetBoot*********("", CCAPI.IdType.PSID);

PSID And IDPS Reset:
PS3.CCAPI.ResetBoot*********(CCAPI.IdType.IDPS);
PS3.CCAPI.ResetBoot*********(CCAPI.IdType.PSID);



Other Useful Resources
    
C# - [URL=https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwj1_O3rn9jOAhWBJ8AKHRN-AOUQFggkMAI&url=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fx53a06bb.aspx&usg=AFQjCNHKxWz3bUxY2tLijcevqOPemIRRIw&sig2=usepEldz3wabkWP5ps7j-w&bvm=bv.129759880,d.bGg]C# Keywords[/URL]
VB - [URL=https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&sqi=2&ved=0ahUKEwidkof-n9jOAhVrI8AKHSbXBJ0QFggiMAE&url=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fdd409611.aspx&usg=AFQjCNE2ncBMXrXHCd0g9WGltNcPKID29g&sig2=v70i0j79Me5ZgT2F9NY2ag&bvm=bv.129759880,d.bGg]VB.NET Keywords[/URL]
C++ (Win32) - [URL=https://msdn.microsoft.com/en-us/library/2e6a4at9.aspx]C++ Keywords[/URL]


Credits
    
S63 For The Tutorials
Sony For Target Manager API
iMCSx For PS3Lib
Enstone For CCAPI
And Whoever Found The Offsets I Used Happy
Last edited by S63 ; 09-01-2016 at 04:45 PM.

The following 6 users say thank you to S63 for this useful post:

anxify, BullfrogFunTime, JrModz, Oroch, ProfoundModz, xiYQHEMoDz
05-30-2016, 08:28 AM #2
xiYQHEMoDz
Little One
Thanks but is to hard
05-30-2016, 12:22 PM #3
S63
Space Ninja
Originally posted by xiYQHEMoDz View Post
Thanks but is to hard


You being sarcastic or you really need help? If so just hook me up on skype and ill help ya with what ever you get stuck on
06-05-2016, 12:56 PM #4
I have a small Bug...I don't get the client names if i am connected with ccapi but it works if i am connected with tmapi.. here is my code:
public string ClientNames(uint ClientsName)
{
PS3API API = new PS3API();
//0x0110D60C + ClientsName + 0x3980
string getnames = API.Extension.ReadString(0x0110D60C + ((uint)ClientsName*0x3980));
return getnames;
}
private void button37_Click(object sender, EventArgs e)
{
if (dataGridView1.RowCount == 1)
{
dataGridView1.Rows.Add(17);
}

for (uint i = 0; i < 18; i++)
{
dataGridView1[0, Convert.ToInt32(i)].Value = i;
dataGridView1[1, Convert.ToInt32(i)].Value = ClientNames(i);
}
}
06-05-2016, 06:17 PM #5
S63
Space Ninja
Originally posted by R3ALYZED View Post
I have a small Bug...I don't get the client names if i am connected with ccapi but it works if i am connected with tmapi.. here is my code:
public string ClientNames(uint ClientsName)
{
PS3API API = new PS3API();
//0x0110D60C + ClientsName + 0x3980
string getnames = API.Extension.ReadString(0x0110D60C + ((uint)ClientsName*0x3980));
return getnames;
}
private void button37_Click(object sender, EventArgs e)
{
if (dataGridView1.RowCount == 1)
{
dataGridView1.Rows.Add(17);
}

for (uint i = 0; i < 18; i++)
{
dataGridView1[0, Convert.ToInt32(i)].Value = i;
dataGridView1[1, Convert.ToInt32(i)].Value = ClientNames(i);
}
}


Im guessing its maybe something to so with your lib and the readstring might be tmapi only thats only if your using a old version of the lib or try doing the ps3lib defination like this
You must login or register to view this content.

Instead of putting it in every function you add

Also change your offset from 0x0110D60C to 0x0110D694
Last edited by S63 ; 06-05-2016 at 06:32 PM.
06-05-2016, 06:37 PM #6
I found it out my self and changed the code but thanks
06-05-2016, 06:43 PM #7
S63
Space Ninja
Originally posted by R3ALYZED View Post
I found it out my self and changed the code but thanks


What was it?
06-05-2016, 06:45 PM #8
public string ClientNames(int Client)
{
byte[] Names = new byte[20];
API.GetMemory(0x0110D60C + 0x3980 * (uint)Client, Names);
string Name = Encoding.ASCII.GetString(Names);
return Name;
}

private void button37_Click(object sender, EventArgs e)
{
if (dataGridView1.RowCount == 1)
{
dataGridView1.Rows.Add(17);
}

for (int i = 0; i < 18; i++)
{
dataGridView1.Rows.Cells[0].Value = i;
dataGridView1.Rows.Cells[1].Value = ClientNames(i);
}
}


I am not really sure but I think it was the uint and convert thing Happy
06-05-2016, 06:48 PM #9
S63
Space Ninja
Removed
Last edited by S63 ; 06-05-2016 at 06:54 PM.
06-05-2016, 09:31 PM #10
Class namechanger Code?

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo