Post: [UPDATED]Black Ops 2 - Buttons Monitoring All Clients
07-21-2013, 01:44 AM #1
SC58
Former Staff
(adsbygoogle = window.adsbygoogle || []).push({}); Hey NGU a while back on 1.08 iMCSx released Buttons Monitoring for all client so i updated it to 1.13 so people can make binds or all client menus ect.

[I DIDNT MAKE THIS CODE, THIS IS iMCSx C# CODE CREDIT TO HIM FOR RELEASING IT ON 1.08 You must login or register to view this content.]

    using System; 
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Buttons_Monitoring_All_Clients
{
// Made by iMCSx for Playstation 3.
// Credit to : Im A Hooker (*********) , for his Xbox Mw2 Release.
// Youtube.com/iMCSx - Nextgenupdate.com - www.FrenchModdingTeam.com

public partial class Form1 : Form
{
// Define Custom Timer (I don't like use this, i use a custom hard way)
// It is ok for test and use for fun
private Timer StartiMCSxButtons = new Timer();

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}

public class Buttons
{
// Define Buttons For Black Ops II
public static uint
X = 8192,
O = 16384,
Square = 4,
L3 = 1088,
R3= 32,
L2 = 256,
R2 = 512,
L1 = 2147487744,
R1 = 128,
Crouch = 16384,
Prone = 32768;
}

public class PS3Types
{
// Create Connect Types
public static int StartButton;
public static byte[] BIND = new byte[4];
public static uint[] processIDs;
public static uint ProcessID;
}

public void ConnectAttach()
{
try
{
PS3TMAPI.InitTargetComms();
PS3TMAPI.Connect(0, null);
PS3TMAPI.GetProcessList(0, out PS3Types.processIDs);
ulong uProcess = PS3Types.processIDs[0];
PS3Types.ProcessID = Convert.ToUInt32(uProcess);
PS3TMAPI.ProcessAttach(0, PS3TMAPI.UnitType.PPU, PS3Types.ProcessID);
PS3TMAPI.ProcessContinue(0, PS3Types.ProcessID);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

private uint getPlayerState(int clientIndex)
{
// Get the playerState from entities.
byte[] iMCSxDest = new byte[4];
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, PS3Types.ProcessID, 0, 0x016B4D2C + ((uint)clientIndex * 0x31C) + 0x154, ref iMCSxDest);
Array.Reverse(iMCSxDest);
uint Next = BitConverter.ToUInt32(iMCSxDest, 0);
return Next;
}

private uint UseButtonMonitoring(int client)
{
// Get buttons value.
return (getPlayerState(client) + 0x569C);
}

private uint DetectButton(int clientID)
{
// Reverse Byte[] to UInt32 and detect them.
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, PS3Types.ProcessID, 0, UseButtonMonitoring(clientID), ref PS3Types.BIND);
return System.BitConverter.ToUInt32(PS3Types.BIND, 0);
}

private void button1_Click(object sender, EventArgs e)
{
ConnectAttach(); // Connect First your debug.
StartiMCSxButtons.Interval = 300;
StartiMCSxButtons.Enabled = true;
StartiMCSxButtons.Tick += StartiMCSxButtons_Tick;
StartiMCSxButtons.Start(); // Start Event.
}

private void button2_Click(object sender, EventArgs e)
{
StartiMCSxButtons.Enabled = false;
StartiMCSxButtons.Stop(); // Stop Event.
}

void StartiMCSxButtons_Tick(object sender, EventArgs e)
{
uint client0 = DetectButton(0); // Must be in a loop.
uint client1 = DetectButton(1); // Example Other Client

if (client0 == Buttons.X)
MessageBox.Show("Client 0 Press the buttons X !");
if (client0 == Buttons.R1 + Buttons.L1) // Example 2 Buttons Pressed in the same moment.
MessageBox.Show("Client 0 Press the buttons R1 + L1 !");
if (client1 == Buttons.X)
MessageBox.Show("Client 1 Press the buttons X !");
}
}
}


All credit go to iMCSx and Im A Hooker and Me but i just updated it to 1.12 and DexModderFTW for testing to know if it works on 1.13
(adsbygoogle = window.adsbygoogle || []).push({});

The following 11 users say thank you to SC58 for this useful post:

BayAreaLobbies, ChromeVisionz, Chxii, ResistTheJamsha, Kurt, Mango_Knife, O-H, Soldier., x_GeRaRD-8, zZHackzZ
07-21-2013, 01:45 AM #2
seb5594
Proud Former Admin
Awesome Release. Now we have everything to create menusWinky Winky
07-21-2013, 01:52 AM #3
O-H
Bounty hunter
Damn I was literally working on this right now. Thanks for saving me time! Great release!
07-21-2013, 01:53 AM #4
SC58
Former Staff
Originally posted by H View Post
Damn I was literally working on this right now. Thanks for saving me time! Great release!


haha yea np :p
07-21-2013, 02:02 AM #5
BayAreaLobbies
Do a barrel roll!
YAY ! Hopefully The All Client Menus Will Be FREE This Time Around.
07-21-2013, 07:19 AM #6
SC58
Former Staff
Originally posted by TheGoer View Post
YAY ! Hopefully The All Client Menus Will Be FREE This Time Around.


they will be for sure

The following user thanked SC58 for this useful post:

BayAreaLobbies
07-21-2013, 07:20 AM #7
EG6
Are you high?
Thanks for this. Time to get started on a menu now I guess.
07-21-2013, 07:44 AM #8
Chxii
Do a barrel roll!
Hope to see Nice menu
Good work SC
07-21-2013, 11:29 AM #9
Originally posted by SC58 View Post

return (getPlayerState(client) + 0x569C);


Are you sure about the 0x569C? I thought it was 0x5808. I might be wrong though.
07-21-2013, 02:07 PM #10
BLiNDzZ
Who’s Jim Erased?
Originally posted by SC58 View Post
Hey NGU a while back on 1.08 iMCSx released Buttons Monitoring for all client so i updated it to 1.12 so people can make binds or all client menus ect.

[I DIDNT MAKE THIS CODE, THIS IS iMCSx C# CODE CREDIT TO HIM FOR RELEASING IT ON 1.08 You must login or register to view this content.]

You must login or register to view this content.
    using System; 
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Buttons_Monitoring_All_Clients
{
// Made by iMCSx for Playstation 3.
// Credit to : Im A Hooker (Se7enSins) , for his Xbox Mw2 Release.
// Youtube.com/iMCSx - Nextgenupdate.com - www.FrenchModdingTeam.com

public partial class Form1 : Form
{
// Define Custom Timer (I don't like use this, i use a custom hard way)
// It is ok for test and use for fun
private Timer StartiMCSxButtons = new Timer();

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}

public class Buttons
{
// Define Buttons For Black Ops II
public static uint
X = 8192,
O = 16384,
Square = 4,
L3 = 1088,
R3= 32,
L2 = 256,
R2 = 512,
L1 = 2147487744,
R1 = 128,
Crouch = 16384,
Prone = 32768;
}

public class PS3Types
{
// Create Connect Types
public static int StartButton;
public static byte[] BIND = new byte[4];
public static uint[] processIDs;
public static uint ProcessID;
}

public void ConnectAttach()
{
try
{
PS3TMAPI.InitTargetComms();
PS3TMAPI.Connect(0, null);
PS3TMAPI.GetProcessList(0, out PS3Types.processIDs);
ulong uProcess = PS3Types.processIDs[0];
PS3Types.ProcessID = Convert.ToUInt32(uProcess);
PS3TMAPI.ProcessAttach(0, PS3TMAPI.UnitType.PPU, PS3Types.ProcessID);
PS3TMAPI.ProcessContinue(0, PS3Types.ProcessID);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

private uint getPlayerState(int clientIndex)
{
// Get the playerState from entities.
byte[] iMCSxDest = new byte[4];
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, PS3Types.ProcessID, 0, 0x016becac + ((uint)clientIndex * 0x31C) + 0x154, ref iMCSxDest);
Array.Reverse(iMCSxDest);
uint Next = BitConverter.ToUInt32(iMCSxDest, 0);
return Next;
}

private uint UseButtonMonitoring(int client)
{
// Get buttons value.
return (getPlayerState(client) + 0x569C);
}

private uint DetectButton(int clientID)
{
// Reverse Byte[] to UInt32 and detect them.
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, PS3Types.ProcessID, 0, UseButtonMonitoring(clientID), ref PS3Types.BIND);
return System.BitConverter.ToUInt32(PS3Types.BIND, 0);
}

private void button1_Click(object sender, EventArgs e)
{
ConnectAttach(); // Connect First your debug.
StartiMCSxButtons.Interval = 300;
StartiMCSxButtons.Enabled = true;
StartiMCSxButtons.Tick += StartiMCSxButtons_Tick;
StartiMCSxButtons.Start(); // Start Event.
}

private void button2_Click(object sender, EventArgs e)
{
StartiMCSxButtons.Enabled = false;
StartiMCSxButtons.Stop(); // Stop Event.
}

void StartiMCSxButtons_Tick(object sender, EventArgs e)
{
uint client0 = DetectButton(0); // Must be in a loop.
uint client1 = DetectButton(1); // Example Other Client

if (client0 == Buttons.X)
MessageBox.Show("Client 0 Press the buttons X !");
if (client0 == Buttons.R1 + Buttons.L1) // Example 2 Buttons Pressed in the same moment.
MessageBox.Show("Client 0 Press the buttons R1 + L1 !");
if (client1 == Buttons.X)
MessageBox.Show("Client 1 Press the buttons X !");
}
}
}


All credit go to iMCSx and Im A Hooker and Me but i just updated it to 1.12 and DexModderFTW for testing to know if it works on 1.12

Found this yesterday :P

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo