Post: [Release] RPC for all updates 1.14+!
09-01-2013, 07:43 PM #1
Choco
Respect my authoritah!!
(adsbygoogle = window.adsbygoogle || []).push({}); Hey NGU!


Rather than update my Remote Procedure Call tool each time an update is released, I decided to just make a DLL for it that will work regardless of update. When initialized, it finds the fog function and overwrites it with my RPC function. This one, unlike my previous RPC DLL, can take 3 types of arguments - int, uint, or string.



How to add the DLL to a C# project

1. Download my DLL.
2. In Visual C#, click on the project tab and then select "Add Reference".
3. Click the browse tab. Find the DLL you downloaded and click OK.



How to initialize the DLL

1. In your code, go to your function that connects to the PS3 and attaches the process.
2. After the part of code that attaches process, add this line:

    BO2.PS3.Init();


This will locate the function R_SetFrameFog and replace it with my RPC function. For 1.14, it will initialize quickly. For future updates, it may take a few seconds to initialize because it has to find the function.

Once you have done this, the RPC function is ready to go.



How to call a function

To call a function, you need to use the following code:

    BO2.RPC.Call(uint func_address, arguments);


Here's a few examples:

    BO2.RPC.Call(0x349B8C, 0, 0, "O \"^2Test!\"");       //this calls SV_GameSendServerCommand

BO2.RPC.Call(0x3139A8, 0, "set cg_fov 90"); //this calls CBuf_AddText

BO2.RPC.Call(0x2A8044, 0x177B828, 1, 0); //this calls G_GivePlayerWeapon (and gives default weapon)


When a function is called, it returns an integer value. If you want to get the return value, do it like so:

    int returnVal = BO2.RPC.Call(0x275A04, "This is a string");     //Calls G_LocalizedStringIndex and assigns it's return value to returnVal




Credits

-aerosoul94 for showing me how to take different argument types and giving me his library for importing PS3 target manager functions



Download

Download: You must login or register to view this content.

Virus Scan: You must login or register to view this content.


Note: PS3 Target Manager must be installed on your computer or this will not work.

Enjoy =D

The following 59 users say thank you to Choco for this useful post:

-JM-, -Numb, {H} | Exception, Eddie Mac, AlexNGU, Ansity., anxify, ARABIC_GUY, Asian, Bad Luck Brian, BadChoicesZ, BaSs_HaXoR, bomboHD, CodJumper:, DiiMoON_YouTube, ErasedDev, DJok3r, Gendjisan, Geo, Harry, Hori_By_Nature, i_iTop_i, Callumeleyy, ilasthope, iMoDz-Baptiste, iNDMx, Welsh, JakeP0500, John Leepe, KING_ZOO, Loxy, M-alShammary, M33-_-Firmware, Mango_Knife, MegaMister, moekroeman, MoTmrD, MrKiller261, NGU-xNiicKzHD, Norway-_-1999, John, primetime43, Raz0rMind, SC58, Shark, Dacoco, SkillsPayBills-, SnaY, Taylor, TheUnexpected, worrorfight, xD3VHΛX, Fatality, xMiLeZz, xPreeks, XxBlud23xX
09-02-2013, 05:50 AM #11
MoTmrD
Banned
Choco Nice Dll How to Display Clients or Names thx pro ??
09-02-2013, 10:38 AM #12
SnaY
Former Lead of GS
Nice Choco Smile awesome :y:
09-02-2013, 01:00 PM #13
Mango_Knife
In my man cave
Originally posted by Choco View Post
Hey NGU!


Rather than update my Remote Procedure Call tool each time an update is released, I decided to just make a DLL for it that will work regardless of update. When initialized, it finds the fog function and overwrites it with my RPC function. This one, unlike my previous RPC DLL, can take 3 types of arguments - int, uint, or string.



How to add the DLL to a C# project

1. Download my DLL.
2. In Visual C#, click on the project tab and then select "Add Reference".
3. Click the browse tab. Find the DLL you downloaded and click OK.



How to initialize the DLL

1. In your code, go to your function that connects to the PS3 and attaches the process.
2. After the part of code that attaches process, add this line:

    BO2.PS3.Init();


This will locate the function R_SetFrameFog and replace it with my RPC function. For 1.14, it will initialize quickly. For future updates, it may take a few seconds to initialize because it has to find the function.

Once you have done this, the RPC function is ready to go.



How to call a function

To call a function, you need to use the following code:

    BO2.RPC.Call(uint func_address, arguments);


Here's a few examples:

    BO2.RPC.Call(0x349B8C, 0, 0, "O \"^2Test!\"");       //this calls SV_GameSendServerCommand

BO2.RPC.Call(0x3139A8, 0, "set cg_fov 90"); //this calls CBuf_AddText

BO2.RPC.Call(0x2A8044, 0x177B828, 1, 0); //this calls G_GivePlayerWeapon (and gives default weapon)


When a function is called, it returns an integer value. If you want to get the return value, do it like so:

    int returnVal = BO2.RPC.Call(0x275A04, "This is a string");     //Calls G_LocalizedStringIndex and assigns it's return value to returnVal




Credits

-aerosoul94 for showing me how to take different argument types and giving me his library for importing PS3 target manager functions



Download

Download: You must login or register to view this content.

Virus Scan: You must login or register to view this content.


Note: PS3 Target Manager must be installed on your computer or this will not work.

Enjoy =D


Very Helpfull Choco!
09-02-2013, 10:44 PM #14
John Leepe
< ^ > < ^ >
Originally posted by Choco View Post
Hey NGU!


Rather than update my Remote Procedure Call tool each time an update is released, I decided to just make a DLL for it that will work regardless of update. When initialized, it finds the fog function and overwrites it with my RPC function. This one, unlike my previous RPC DLL, can take 3 types of arguments - int, uint, or string.



How to add the DLL to a C# project

1. Download my DLL.
2. In Visual C#, click on the project tab and then select "Add Reference".
3. Click the browse tab. Find the DLL you downloaded and click OK.



How to initialize the DLL

1. In your code, go to your function that connects to the PS3 and attaches the process.
2. After the part of code that attaches process, add this line:

    BO2.PS3.Init();


This will locate the function R_SetFrameFog and replace it with my RPC function. For 1.14, it will initialize quickly. For future updates, it may take a few seconds to initialize because it has to find the function.

Once you have done this, the RPC function is ready to go.



How to call a function

To call a function, you need to use the following code:

    BO2.RPC.Call(uint func_address, arguments);


Here's a few examples:

    BO2.RPC.Call(0x349B8C, 0, 0, "O \"^2Test!\"");       //this calls SV_GameSendServerCommand

BO2.RPC.Call(0x3139A8, 0, "set cg_fov 90"); //this calls CBuf_AddText

BO2.RPC.Call(0x2A8044, 0x177B828, 1, 0); //this calls G_GivePlayerWeapon (and gives default weapon)


When a function is called, it returns an integer value. If you want to get the return value, do it like so:

    int returnVal = BO2.RPC.Call(0x275A04, "This is a string");     //Calls G_LocalizedStringIndex and assigns it's return value to returnVal




Credits

-aerosoul94 for showing me how to take different argument types and giving me his library for importing PS3 target manager functions



Download

Download: You must login or register to view this content.

Virus Scan: You must login or register to view this content.


Note: PS3 Target Manager must be installed on your computer or this will not work.

Enjoy =D


Hi

Im trying to make a BO2 tool that I dont think Im released ( Too many are out now ) But this keeps freezing my PS3


This is the offset for gravity.

0x01CA8F58

Im getting offsets from iMCSx's Dvar Tool. Is this a good source? I dont know how to update offsets so this just seemed the easiest way to get offsets.

Heres a picture of what Im trying to do.

You must login or register to view this content.

If someone can help me and teach me a little bit on BO2 RTE'ing and programming that would be great Smile
09-02-2013, 10:55 PM #15
Choco
Respect my authoritah!!
Originally posted by Jashun View Post
Hi

Im trying to make a BO2 tool that I dont think Im released ( Too many are out now ) But this keeps freezing my PS3


This is the offset for gravity.

0x01CA8F58

Im getting offsets from iMCSx's Dvar Tool. Is this a good source? I dont know how to update offsets so this just seemed the easiest way to get offsets.

Heres a picture of what Im trying to do.

You must login or register to view this content.

If someone can help me and teach me a little bit on BO2 RTE'ing and programming that would be great Smile


A dvar is not a function, so you can't "call" it. To change the dvar value, add 0x18 to the address you got for the dvar and write your new value for gravity there as an Int32.
09-02-2013, 11:03 PM #16
John Leepe
< ^ > < ^ >
Originally posted by Choco View Post
A dvar is not a function, so you can't "call" it. To change the dvar value, add 0x18 to the address you got for the dvar and write your new value for gravity there as an Int32.


Ok. So like this

    
BO2.RPC.Call(0x19CA8F58, 32, 90);


Sorry if its incorrect. Im new to this.
09-02-2013, 11:33 PM #17
Choco
Respect my authoritah!!
Originally posted by Jashun View Post
Ok. So like this

    
BO2.RPC.Call(0x19CA8F58, 32, 90);


Sorry if its incorrect. Im new to this.


No. Here's a little code for setting dvars (and this is for integer dvars only):

    private void SetDvarInt(uint dvarAddress, int value)
{
byte[] val = BitConverter.GetBytes(value);
Array.Reverse(val);
SetMemory(dvarAddress + 0x18, val);
}
09-02-2013, 11:39 PM #18
John Leepe
< ^ > < ^ >
Originally posted by Choco View Post
No. Here's a little code for setting dvars (and this is for integer dvars only):

    private void SetDvarInt(uint dvarAddress, int value)
{
byte[] val = BitConverter.GetBytes(value);
Array.Reverse(val);
SetMemory(dvarAddress + 0x18, val);
}


So how would I use it?

Like this?


    

private void button1_Click(object sender, EventArgs e)
{
byte[] val = BitConverter.GetBytes(value);
Array.Reverse(val);
SetMemory(0x01CA8F58 + 0x18, 90);
}

09-02-2013, 11:48 PM #19
Choco
Respect my authoritah!!
Originally posted by Jashun View Post
So how would I use it?

Like this?


    

private void button1_Click(object sender, EventArgs e)
{
byte[] val = BitConverter.GetBytes(value);
Array.Reverse(val);
SetMemory(0x01CA8F58 + 0x18, 90);
}



Not quite :p Make sure you have the SetDvarInt code I gave you in your code, then do it like this:

    private void button1_Click(object sender, EventArgs e)
{
SetDvarInt(0x01CA8F58, 90);
}

The following user thanked Choco for this useful post:

John Leepe

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo