Résolu un RPC Bo2 fonctionnel?

Statut
N'est pas ouverte pour d'autres réponses.

MindSystem

Premium
Inscription
3 Septembre 2013
Messages
3 106
Réactions
1 458
Points
11 724
RGCoins
35
Bonjour à tous :D

Donc voilà, depuis quelques jours, je cherche un RPC pour bo2 fonctionnel...

J'en ai testé plusieurs mais aucun ne fonctionne.

Pour le teste, je fais in simple iPrintln

Donc si quelqu'un en aurait un qui fonctionne, ce serait sympa :D

Merci à tous.

PS : voici celui que j'ai pour le moment :
#region RPC
public static int Call(uint func_address, params object[] parameters)
{
PS3API PS3 = new PS3API();
int length = parameters.Length;
int index = 0;
uint num3 = 0;
uint num4 = 0;
uint num5 = 0;
uint num6 = 0;
while (index < length)
{
if (parameters[index] is int)
{
PS3.Extension.WriteInt32(0x10020000 + (num3 * 4), (int)parameters[index]);
num3++;
}
else if (parameters[index] is uint)
{
PS3.Extension.WriteUInt32(0x10020000 + (num3 * 4), (uint)parameters[index]);
num3++;
}
else
{
uint num7;
if (parameters[index] is string)
{
num7 = 0x10022000 + (num4 * 0x400);
PS3.Extension.WriteString(num7, Convert.ToString(parameters[index]));
PS3.Extension.WriteUInt32(0x10020000 + (num3 * 4), num7);
num3++;
num4++;
}
else if (parameters[index] is float)
{
PS3.Extension.WriteFloat(0x10020024 + (num5 * 4), (float)parameters[index]);
num5++;
}
else if (parameters[index] is float[])
{
float[] input = (float[])parameters[index];
num7 = 0x10021000 + (num6 * 4);
WriteSingle(num7, input);
PS3.Extension.WriteUInt32(0x10020000 + (num3 * 4), num7);
num3++;
num6 += (uint)input.Length;
}
}
index++;
}
PS3.Extension.WriteUInt32(0x1002004C, func_address);
Thread.Sleep(20);
return PS3.Extension.ReadInt32(0x10020050);
}
public static void WriteSingle(UInt32 address, float input)
{
PS3API PS3 = new PS3API();
byte[] array = new byte[4];
BitConverter.GetBytes(input).CopyTo(array, 0);
Array.Reverse(array, 0, 4);
PS3.SetMemory(address, array);
}
public static byte[] ReverseBytes(byte[] toReverse)
{
Array.Reverse(toReverse);
return toReverse;
}
public static void WriteSingle(UInt32 address, float[] input)
{
PS3API PS3 = new PS3API();
int length = input.Length;
byte[] array = new byte[length * 4];
for (int i = 0; i < length; i++)
{
ReverseBytes(BitConverter.GetBytes(input)).CopyTo(array, (int)(i * 4));
}
PS3.SetMemory(address, array);
}
private static uint function_address;
public static void Enable()
{
PS3API PS3 = new PS3API();
PS3.SetMemory(function_address, new byte[] { 0x4E, 0x80, 0x00, 0x20 });
Thread.Sleep(20);
byte[] memory = new byte[]
{ 0x7C, 0x08, 0x02, 0xA6, 0xF8, 0x01, 0x00, 0x80, 0x3C, 0x60, 0x10, 0x02, 0x81, 0x83, 0x00, 0x4C,
0x2C, 0x0C, 0x00, 0x00, 0x41, 0x82, 0x00, 0x64, 0x80, 0x83, 0x00, 0x04, 0x80, 0xA3, 0x00, 0x08,
0x80, 0xC3, 0x00, 0x0C, 0x80, 0xE3, 0x00, 0x10, 0x81, 0x03, 0x00, 0x14, 0x81, 0x23, 0x00, 0x18,
0x81, 0x43, 0x00, 0x1C, 0x81, 0x63, 0x00, 0x20, 0xC0, 0x23, 0x00, 0x24, 0xc0, 0x43, 0x00, 0x28,
0xC0, 0x63, 0x00, 0x2C, 0xC0, 0x83, 0x00, 0x30, 0xC0, 0xA3, 0x00, 0x34, 0xc0, 0xC3, 0x00, 0x38,
0xC0, 0xE3, 0x00, 0x3C, 0xC1, 0x03, 0x00, 0x40, 0xC1, 0x23, 0x00, 0x48, 0x80, 0x63, 0x00, 0x00,
0x7D, 0x89, 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21, 0x3C, 0x80, 0x10, 0x02, 0x38, 0xA0, 0x00, 0x00,
0x90, 0xA4, 0x00, 0x4C, 0x90, 0x64, 0x00, 0x50, 0xE8, 0x01, 0x00, 0x80, 0x7C, 0x08, 0x03, 0xA6,
0x38, 0x21, 0x00, 0x70, 0x4E, 0x80, 0x00, 0x20 };
PS3.SetMemory(function_address + 4, memory);
PS3.SetMemory(0x10020000, new byte[0x2854]);
PS3.SetMemory(function_address, new byte[] { 0xF8, 0x21, 0xFF, 0x91 });
}
public static int Init()
{
function_address = 0x007AA050;
Enable();
return 0;
}
public static byte[] GetMemory5(uint Address, byte[] length)
{
PS3API PS3 = new PS3API();
PS3.GetMemory(Address, length);
return length;
}
public static void Cbuf_AddText(int client, string text)
{
Call(0x313E88, client, text);
}
public static void iPrintln(int Client, string Text)
{
SV_GameSendServerCommand(Client, "O \"" + Text + "\"");
}

public static void iPrintlnBold(int Client, string Text)
{
SV_GameSendServerCommand(Client, "< \"" + Text + "\"");
}
public void CBuf_Addtext(string Command)
{
Call(00315938, 0, Command);
}

public static void SV_GameSendServerCommand(int Client, string Command)
{
Call(0x34A1DC, Client, 1, Command);
}
public static uint G_Entity(int clientIndex)
{
return 0x16B9F20 + (uint)clientIndex * 796;
}
public static void SetModel(int client, string Model)
{
object[] objArray = new object[] { G_Entity(client), Model };
Call(2586180, objArray);
}
public static byte[] GetMemory(uint address, int length)
{
PS3API PS3 = new PS3API();
byte[] buffer = new byte[length];
PS3.GetMemory(address, buffer);
return buffer;
}
#endregion
 
Bonjour à tous :D

Donc voilà, depuis quelques jours, je cherche un RPC pour bo2 fonctionnel...

J'en ai testé plusieurs mais aucun ne fonctionne.

Pour le teste, je fais in simple iPrintln

Donc si quelqu'un en aurait un qui fonctionne, ce serait sympa :D

Merci à tous.

PS : voici celui que j'ai pour le moment :
#region RPC
public static int Call(uint func_address, params object[] parameters)
{
PS3API PS3 = new PS3API();
int length = parameters.Length;
int index = 0;
uint num3 = 0;
uint num4 = 0;
uint num5 = 0;
uint num6 = 0;
while (index < length)
{
if (parameters[index] is int)
{
PS3.Extension.WriteInt32(0x10020000 + (num3 * 4), (int)parameters[index]);
num3++;
}
else if (parameters[index] is uint)
{
PS3.Extension.WriteUInt32(0x10020000 + (num3 * 4), (uint)parameters[index]);
num3++;
}
else
{
uint num7;
if (parameters[index] is string)
{
num7 = 0x10022000 + (num4 * 0x400);
PS3.Extension.WriteString(num7, Convert.ToString(parameters[index]));
PS3.Extension.WriteUInt32(0x10020000 + (num3 * 4), num7);
num3++;
num4++;
}
else if (parameters[index] is float)
{
PS3.Extension.WriteFloat(0x10020024 + (num5 * 4), (float)parameters[index]);
num5++;
}
else if (parameters[index] is float[])
{
float[] input = (float[])parameters[index];
num7 = 0x10021000 + (num6 * 4);
WriteSingle(num7, input);
PS3.Extension.WriteUInt32(0x10020000 + (num3 * 4), num7);
num3++;
num6 += (uint)input.Length;
}
}
index++;
}
PS3.Extension.WriteUInt32(0x1002004C, func_address);
Thread.Sleep(20);
return PS3.Extension.ReadInt32(0x10020050);
}
public static void WriteSingle(UInt32 address, float input)
{
PS3API PS3 = new PS3API();
byte[] array = new byte[4];
BitConverter.GetBytes(input).CopyTo(array, 0);
Array.Reverse(array, 0, 4);
PS3.SetMemory(address, array);
}
public static byte[] ReverseBytes(byte[] toReverse)
{
Array.Reverse(toReverse);
return toReverse;
}
public static void WriteSingle(UInt32 address, float[] input)
{
PS3API PS3 = new PS3API();
int length = input.Length;
byte[] array = new byte[length * 4];
for (int i = 0; i < length; i++)
{
ReverseBytes(BitConverter.GetBytes(input)).CopyTo(array, (int)(i * 4));
}
PS3.SetMemory(address, array);
}
private static uint function_address;
public static void Enable()
{
PS3API PS3 = new PS3API();
PS3.SetMemory(function_address, new byte[] { 0x4E, 0x80, 0x00, 0x20 });
Thread.Sleep(20);
byte[] memory = new byte[]
{ 0x7C, 0x08, 0x02, 0xA6, 0xF8, 0x01, 0x00, 0x80, 0x3C, 0x60, 0x10, 0x02, 0x81, 0x83, 0x00, 0x4C,
0x2C, 0x0C, 0x00, 0x00, 0x41, 0x82, 0x00, 0x64, 0x80, 0x83, 0x00, 0x04, 0x80, 0xA3, 0x00, 0x08,
0x80, 0xC3, 0x00, 0x0C, 0x80, 0xE3, 0x00, 0x10, 0x81, 0x03, 0x00, 0x14, 0x81, 0x23, 0x00, 0x18,
0x81, 0x43, 0x00, 0x1C, 0x81, 0x63, 0x00, 0x20, 0xC0, 0x23, 0x00, 0x24, 0xc0, 0x43, 0x00, 0x28,
0xC0, 0x63, 0x00, 0x2C, 0xC0, 0x83, 0x00, 0x30, 0xC0, 0xA3, 0x00, 0x34, 0xc0, 0xC3, 0x00, 0x38,
0xC0, 0xE3, 0x00, 0x3C, 0xC1, 0x03, 0x00, 0x40, 0xC1, 0x23, 0x00, 0x48, 0x80, 0x63, 0x00, 0x00,
0x7D, 0x89, 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21, 0x3C, 0x80, 0x10, 0x02, 0x38, 0xA0, 0x00, 0x00,
0x90, 0xA4, 0x00, 0x4C, 0x90, 0x64, 0x00, 0x50, 0xE8, 0x01, 0x00, 0x80, 0x7C, 0x08, 0x03, 0xA6,
0x38, 0x21, 0x00, 0x70, 0x4E, 0x80, 0x00, 0x20 };
PS3.SetMemory(function_address + 4, memory);
PS3.SetMemory(0x10020000, new byte[0x2854]);
PS3.SetMemory(function_address, new byte[] { 0xF8, 0x21, 0xFF, 0x91 });
}
public static int Init()
{
function_address = 0x007AA050;
Enable();
return 0;
}
public static byte[] GetMemory5(uint Address, byte[] length)
{
PS3API PS3 = new PS3API();
PS3.GetMemory(Address, length);
return length;
}
public static void Cbuf_AddText(int client, string text)
{
Call(0x313E88, client, text);
}
public static void iPrintln(int Client, string Text)
{
SV_GameSendServerCommand(Client, "O \"" + Text + "\"");
}

public static void iPrintlnBold(int Client, string Text)
{
SV_GameSendServerCommand(Client, "< \"" + Text + "\"");
}
public void CBuf_Addtext(string Command)
{
Call(00315938, 0, Command);
}

public static void SV_GameSendServerCommand(int Client, string Command)
{
Call(0x34A1DC, Client, 1, Command);
}
public static uint G_Entity(int clientIndex)
{
return 0x16B9F20 + (uint)clientIndex * 796;
}
public static void SetModel(int client, string Model)
{
object[] objArray = new object[] { G_Entity(client), Model };
Call(2586180, objArray);
}
public static byte[] GetMemory(uint address, int length)
{
PS3API PS3 = new PS3API();
byte[] buffer = new byte[length];
PS3.GetMemory(address, buffer);
return buffer;
}
#endregion

J'te filerais un coup de main par skype cette aprèm si tu n'a pas trouver
 
Cette réponse a aidé l'auteur de cette discussion !
Ton topic se trouvait dans la mauvaise section http://reality-gaming.fr/attachments/deplace-png.20318/, je l'ai donc déplacé dans la bonne section http://reality-gaming.fr/attachments/deplacement-png.20319/. :modo:
 
Salut,

J'ai déplacé http://reality-gaming.fr/attachments/deplacement-png.20319/ ta discussion en section Résolu http://reality-gaming.fr/attachments/verifier-png.20313/

Bonne soirée,
DEVR0
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut