sharkbait263

[MW2] RPC

May 17th, 2014
1,414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.28 KB | None | 0 0
  1. private static uint function_address = 0x38EDE8;
  2.  
  3.         public static int Call(UInt32 func_address, params object[] parameters)
  4.         {
  5.             int length = parameters.Length;
  6.             int index = 0;
  7.             UInt32 num3 = 0;
  8.             UInt32 num4 = 0;
  9.             UInt32 num5 = 0;
  10.             UInt32 num6 = 0;
  11.             while (index < length)
  12.             {
  13.                 if (parameters[index] is int)
  14.                 {
  15.                     PS3.Extension.WriteInt32(0x10050000 + (num3 * 4), (int)parameters[index]);
  16.                     num3++;
  17.                 }
  18.                 else if (parameters[index] is UInt32)
  19.                 {
  20.                     PS3.Extension.WriteUInt32(0x10050000 + (num3 * 4), (UInt32)parameters[index]);
  21.                     num3++;
  22.                 }
  23.                 else
  24.                 {
  25.                     UInt32 num7;
  26.                     if (parameters[index] is string)
  27.                     {
  28.                         num7 = 0x10052000 + (num4 * 0x400);
  29.                         PS3.Extension.WriteString(num7, Convert.ToString(parameters[index]));
  30.                         PS3.Extension.WriteUInt32(0x10050000 + (num3 * 4), num7);
  31.                         num3++;
  32.                         num4++;
  33.                     }
  34.                     else if (parameters[index] is float)
  35.                     {
  36.                         PS3.Extension.WriteFloat(0x10050024 + (num5 * 4), (float)parameters[index]);
  37.                         num5++;
  38.                     }
  39.                     else if (parameters[index] is float[])
  40.                     {
  41.                         float[] input = (float[])parameters[index];
  42.                         num7 = 0x10051000 + (num6 * 4);
  43.                         Lib.WriteSingle(num7, input);
  44.                         PS3.Extension.WriteUInt32(0x10050000 + (num3 * 4), num7);
  45.                         num3++;
  46.                         num6 += (UInt32)input.Length;
  47.                     }
  48.                 }
  49.                 index++;
  50.             }
  51.             PS3.Extension.WriteUInt32(0x1005004C, func_address);
  52.             Thread.Sleep(20);
  53.             return PS3.Extension.ReadInt32(0x10050050);
  54.         }
  55.  
  56.         public static void EnableRPC()
  57.         {
  58.             byte[] RPC = { 0xF8, 0x21, 0xFF, 0x91, 0x7C, 0x08, 0x02, 0xA6, 0xF8, 0x01, 0x00, 0x80, 0x3C, 0x40, 0x00, 0x72, 0x30, 0x42, 0x4C, 0x38, 0x3C, 0x60, 0x10, 0x05, 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, 0x05, 0x38, 0xA0, 0x00, 0x00, 0x90, 0xA4, 0x00, 0x4C, 0x90, 0x64, 0x00, 0x50, 0x3C, 0x40, 0x00, 0x73, 0x30, 0x42, 0x4B, 0xE8, 0xE8, 0x01, 0x00, 0x80, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x70, 0x4E, 0x80, 0x00, 0x20 };
  59.             PS3.SetMemory(function_address, RPC);
  60.             PS3.SetMemory(0x10050000, new byte[0x2854]);
  61.         }
Advertisement
Add Comment
Please, Sign In to add comment