Post: (Released, 1.13, C#) RPC To Make A Menu For MP and ZM (Stable And Works)
10-13-2014, 05:48 AM #1
CrEaTiiOn_420
Can’t trickshot me!
(adsbygoogle = window.adsbygoogle || []).push({}); hey guys im just releasing a RPC that i have made for BO1 that allows you to create a stable menu for Multiplayer and Zombies and i included alot of functions like detect map and shit like that so have fun and if you make any menu's etc. just leave credit <3


    
//RPC By: CrEaTiiOn_420
//===

public class RPC
{
public static UInt32 function_address = 0x6E34E0; //MP = 0x7A21E0 || ZM = 0x6E34E0

public static void Enable_RPC()
{
PS3.SetMemory(function_address, new byte[] { 0x4e, 0x80, 0, 0x20 });
System.Threading.Thread.Sleep(20);
byte[] memory = new byte[] {
0x7c, 8, 2, 0xa6, 0xf8, 1, 0, 0x80, 60, 0x60, 0x10, 5, 0x81, 0x83, 0, 0x4c,
0x2c, 12, 0, 0, 0x41, 130, 0, 100, 0x80, 0x83, 0, 4, 0x80, 0xa3, 0, 8,
0x80, 0xc3, 0, 12, 0x80, 0xe3, 0, 0x10, 0x81, 3, 0, 20, 0x81, 0x23, 0, 0x18,
0x81, 0x43, 0, 0x1c, 0x81, 0x63, 0, 0x20, 0xc0, 0x23, 0, 0x24, 0xc0, 0x43, 0, 40,
0xc0, 0x63, 0, 0x2c, 0xc0, 0x83, 0, 0x30, 0xc0, 0xa3, 0, 0x34, 0xc0, 0xc3, 0, 0x38,
0xc0, 0xe3, 0, 60, 0xc1, 3, 0, 0x40, 0xc1, 0x23, 0, 0x48, 0x80, 0x63, 0, 0,
0x7d, 0x89, 3, 0xa6, 0x4e, 0x80, 4, 0x21, 60, 0x80, 0x10, 5, 0x38, 160, 0, 0,
0x90, 0xa4, 0, 0x4c, 0x90, 100, 0, 80, 0xe8, 1, 0, 0x80, 0x7c, 8, 3, 0xa6,
0x38, 0x21, 0, 0x70, 0x4e, 0x80, 0, 0x20
};
PS3.SetMemory(function_address + 4, memory);
PS3.SetMemory(0x10050000, new byte[0x2854]);
PS3.SetMemory(function_address, new byte[] { 0xf8, 0x21, 0xff, 0x91 });
}

public static uint Call(uint func_address, params object[] parameters)
{
int length = parameters.Length;
uint num2 = 0;
for (uint i = 0; i < length; i++)
{
if (parameters[i] is int)
{
byte[] array = BitConverter.GetBytes((int)parameters[i]);
Array.Reverse(array);
PS3.SetMemory(0x10050000 + ((i + num2) * 4), array);
}
else if (parameters[i] is uint)
{
byte[] buffer2 = BitConverter.GetBytes((uint)parameters[i]);
Array.Reverse(buffer2);
PS3.SetMemory(0x10050000 + ((i + num2) * 4), buffer2);
}
else if (parameters[i] is string)
{
byte[] buffer3 = Encoding.UTF8.GetBytes(Convert.ToString(parameters[i]) + "\0");
PS3.SetMemory(0x10050054 + (i * 0x400), buffer3);
uint num4 = 0x10050054 + (i * 0x400);
byte[] buffer4 = BitConverter.GetBytes(num4);
Array.Reverse(buffer4);
PS3.SetMemory(0x10050000 + ((i + num2) * 4), buffer4);
}
else if (parameters[i] is float)
{
num2++;
byte[] buffer5 = BitConverter.GetBytes((float)parameters[i]);
Array.Reverse(buffer5);
PS3.SetMemory(0x10050024 + ((num2 - 1) * 4), buffer5);
}
}
byte[] bytes = BitConverter.GetBytes(func_address);
Array.Reverse(bytes);
PS3.SetMemory(0x1005004c, bytes);
System.Threading.Thread.Sleep(20);
byte[] memory = new byte[4];
PS3.GetMemoryR(0x10050050, ref memory);
Array.Reverse(memory);
return BitConverter.ToUInt32(memory, 0);
}
}

//Hud Elements
//============

public class Huds
{
public class HudStruct
{
public static uint
G_HudElems = 0x00EE7B84,
IndexSize = 0x84,
x = 0x0,
y = 0x4,
z = 0x8,
fontScaleStartTime = 0x14,
fontScale = 0xC,
entNum = 0x18,
color = 0x18,
teamNum = 0x1C,
fromColor = 0x1C,
icon = 0x20,
fadeStartTime = 0x20,
scaleStartTime = 0x24,
fromX = 0x28,
fromY = 0x2C,
moveStartTime = 0x30,
time = 0x34,
duration = 0x38,
value = 0x3C,
sort = 0x40,
glowColor = 0x44,
fxBirthTime = 0x48,
targetEntNum = 0x4C,
fontScaleTime = 0x4E,
fadeTime = 0x50,
label = 0x52,
width = 0x54,
height = 0x56,
fromWidth = 0x58,
fromHeight = 0x5A,
scaleTime = 0x5C,
moveTime = 0x5E,
text = 0x60,
fxDecayStartTime = 0x64,
fxDecayDuration = 0x66,
fxRedactDecayStartTime = 0x68,
fxRedactDecayDuration = 0x6A,
flags = 0x6C,
type = 0x6E,
font = 0x6F,
alignOrg = 0x70,
alignScreen = 0x71,
materialIndex = 0x72,
fxLetterTime = 0x62,
offscreenMaterialIdx = 0x73,
fromAlignOrg = 0x74,
fromAlignScreen = 0x75,
soundID = 0x76,
ui3dWindow = 0x77,
clientNum = 0x78,
team = 0x7C,
archived = 0x80;
}
public static short G_LocalizedStringIndex(string Text)
{
return (short)RPC.Call(0x00304BA0, Text);
}
public static void ChangeText(UInt32 elemIndex, String Text)
{
PS3.Extension.WriteInt16(elemIndex + HudStruct.text, G_LocalizedStringIndex(Text));
}
public static uint SetText(int clientIndex, string TextString, int Font, Single FontSize, Single X, Single Y, uint align = 0, int r = 255, int g = 255, int b = 255, int a = 255, int glowr = 255, int glowg = 255, int glowb = 255, int glowa = 0)
{
uint text = HudElem_Alloc();
PS3.Extension.WriteByte(text + HudStruct.type, 1);
Funcs.WriteSingle(text + HudStruct.fontScale, FontSize);
PS3.Extension.WriteByte(text + HudStruct.font, Convert.ToByte(Font));
if (align != 0)
{ PS3.Extension.WriteByte(text + HudStruct.alignOrg, 5); PS3.Extension.WriteByte(text + HudStruct.alignScreen, Convert.ToByte(align)); }
else
{ Funcs.WriteSingle(text + HudStruct.x, X); Funcs.WriteSingle(text + HudStruct.y, Y); }
PS3.Extension.WriteInt32(text + HudStruct.clientNum, clientIndex);
PS3.Extension.WriteInt16(text + HudStruct.text, G_LocalizedStringIndex(TextString));
PS3.Extension.WriteBytes(text + HudStruct.color, new Byte[] { (Byte)r, (Byte)g, (Byte)b, (Byte)a });
PS3.Extension.WriteBytes(text + HudStruct.glowColor, new Byte[] { (Byte)glowr, (Byte)glowg, (Byte)glowb, (Byte)glowa });
PS3.Extension.WriteByte(text + HudStruct.ui3dWindow, 0xFF);
return text;
}
public static uint SetShader(int clientIndex, int Material, short Width, short Height, Single X, Single Y, uint align = 0, int r = 255, int g = 255, int b = 255, int a = 255)
{
uint Shader = HudElem_Alloc();
PS3.Extension.WriteByte(Shader + HudStruct.type, 4);
PS3.Extension.WriteByte(Shader + HudStruct.materialIndex, Convert.ToByte(Material));
PS3.Extension.WriteInt16(Shader + HudStruct.height, Height);
PS3.Extension.WriteInt16(Shader + HudStruct.width, Width);
if (align != 0)
{ PS3.Extension.WriteByte(Shader + HudStruct.alignOrg, 5); PS3.Extension.WriteByte(Shader + HudStruct.alignScreen, Convert.ToByte(align)); }
else
{ Funcs.WriteSingle(Shader + HudStruct.x, X); Funcs.WriteSingle(Shader + HudStruct.y, Y); }
PS3.Extension.WriteInt32(Shader + HudStruct.clientNum, clientIndex);
PS3.SetMemory(Shader + HudStruct.ui3dWindow, new Byte[] { 0xFF });
PS3.Extension.WriteBytes(Shader + HudStruct.color, new Byte[] { (Byte)r, (Byte)g, (Byte)b, (Byte)a });
return Shader;
}
public static uint HudElem_Alloc()
{
for (uint i = 40; i < 1024; i++)
{
uint Index = HudStruct.G_HudElems + (i * HudStruct.IndexSize);
if (PS3.Extension.ReadByte(Index + HudStruct.type) == 0)
{
PS3.Extension.WriteBytes(Index, new Byte[0x88]);
return Index;
}
}
return 0;
}
public static void DestroyElement(uint Element)
{
PS3.SetMemory(Element, new byte[HudStruct.IndexSize]);
}
}

//Buttons Monitoring
//==================

public static class Buttons
{
public static Int32
L1 = 1048704,
L2 = 72704,
L3 = 1074003968,
R1 = -2147483648,
R2 = 131072,
R3 = 536870912,
Square = 67108864,
Cross = 2104320,
Crouch = 4194304,
Prone = 8388608,
Triangle = 8;
}
public static bool ButtonPressed(int client, int Button)
{
if (Convert.ToInt32(PS3.Extension.ReadInt32(0x11007E8 + ((uint)client * 0x1D30))) == Button)
return true;
else return false;
}

//Addresses
//=========

class Addresses
{
public static uint
G_entityZM = 0xFA805C,
G_entitySizeZM = 0x34C,
G_clientZM = 0x010fed78,
G_clientSizeZM = 0x1D30;
}

//Functions
//=========

public static string GetPlayerNameForMenu(Int32 clientIndex)
{
String Name = PS3.Extension.ReadString(0x011008B8 + ((uint)clientIndex * 0x1d30));
if (Name == "")
return "Not Connected";
else
return Name;
}

public string GetMap()
{
return PS3.Extension.ReadString(0x0138E1BCool Man (aka Tustin);
}

public int getMapMaterialWhiteShader()
{
string map = GetMap();
if (map == "zombie_theater")
{
return 18;
}
if (map == "zombie_pentagon")
{
return 17;
}
if (map == "zombie_cod5_prototype")
{
return 16;
}
if (map == "zombie_asylum")
{
return 16;
}
if (map == "zombie_swamp")
{
return 16;
}
if (map == "zombie_cod5_factory")
{
return 16;
}
if (map == "zombie_cosmodrome")
{
return 16;
}
if (map == "zombie_coast")
{
return 19;
}
if (map == "zombie_temple")
{
return 17;
}
if (map == "zombie_paris")
{
return 16;
}
else
{
return 0;
}
}

public int getMapMaterialBlackShader()
{
string map = GetMap();
if (map == "zombie_theater")
{
return 11;
}
if (map == "zombie_pentagon")
{
return 10;
}
if (map == "zombie_cod5_prototype")
{
return 9;
}
if (map == "zombie_asylum")
{
return 9;
}
if (map == "zombie_swamp")
{
return 9;
}
if (map == "zombie_cod5_factory")
{
return 9;
}
if (map == "zombie_cosmodrome")
{
return 9;
}
if (map == "zombie_coast")
{
return 12;
}
if (map == "zombie_temple")
{
return 10;
}
if (map == "zombie_paris")
{
return 9;
}
else
{
return 0;
}
}

public static int GetHost()
{
string Host = PS3.Extension.ReadString(0x01C33DB0);
int i = 0;
if (Host == "")
{
i = 0;
}
else if (Host == PS3.Extension.ReadString(0x011008B8 + (0 * 0x1d30)))
{
i = 0;
}
else if (Host == PS3.Extension.ReadString(0x011008B8 + (1 * 0x1d30)))
{
i = 1;
}
else if (Host == PS3.Extension.ReadString(0x011008B8 + (2 * 0x1d30)))
{
i = 2;
}
else if (Host == PS3.Extension.ReadString(0x011008B8 + (3 * 0x1d30)))
{
i = 3;
}
return i;
}

public static void SV_GameSendServerCommand(int client, string command)
{
RPC.Call(0x003C33A8, client, 1, command);
}



You must login or register to view this content.

Check Out My New Channel--> [ You must login or register to view this content. ]
(adsbygoogle = window.adsbygoogle || []).push({});

The following 3 users say thank you to CrEaTiiOn_420 for this useful post:

network10, John, TreyBeModding-

The following 6 users groaned at CrEaTiiOn_420 for this awful post:

Leo, makeabce, MRHackzFTW, Mantus, Taylors Bish, xMrJR
10-25-2014, 02:45 PM #11
Originally posted by CustomHosting View Post
wtf do you even know what leeching is? i never said i did leech you idiot leeching and learning shit is totally different, learning something is observing what you want to know and doing better at that subject and understanding it, leeching is just stealing someone shit, if that was the case then teachers of schools had been "leeching" other peoples work for years.


Yeah they give others the credit Smile sorry I've been having girl issues recently
10-25-2014, 02:47 PM #12
CustomHosting
Are you high?
Originally posted by 1337Forensics View Post
Yeah they give others the credit Smile sorry I've been having girl issues recently


its fine man, im just trying to understand exactly what rpc is Smile
10-25-2014, 03:18 PM #13
Originally posted by CustomHosting View Post
its fine man, im just trying to understand exactly what rpc is Smile


Oh it's a protocol Smile
03-07-2015, 02:01 PM #14
mariokilla23
Vault dweller
Originally posted by 1337Forensics View Post
Oh it's a protocol Smile


To be more precise its, remote procedure call. That's like someone asking what ftp is and you say it's a protocol. It still won't tell them anything about it. Saying file transfer protocol will give them a little insight and a broad vision of what it is.
04-03-2015, 01:28 AM #15
Originally posted by mariokilla23 View Post
To be more precise its, remote procedure call. That's like someone asking what ftp is and you say it's a protocol. It still won't tell them anything about it. Saying file transfer protocol will give them a little insight and a broad vision of what it is.


Never been too good at that...

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo