Advertisement
BaSs_HaXoR

Mw3 Mystery Box (C#)

Sep 23rd, 2014
533
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 29.31 KB | None | 0 0
  1. //SOURCE: http://www.nextgenupdate.com/forums/modern-warfare-3-mods-patches-tutorials/749369-c-mystery-box.html
  2.  
  3. //Mw3 Mystery Box:
  4.  
  5. public static class MysteryBox
  6.         {
  7.             #region Variables
  8.             private static uint Weapon = 0;
  9.             private static uint[] MBIndexes = new uint[3];
  10.             private static string WeaponName = null;
  11.             private static Thread MBThread;
  12.             #endregion
  13.  
  14.             #region Read + Write
  15.             private static string ReadString(uint Offset)
  16.             {
  17.                 uint num = 0;
  18.                 List<byte> List = new List<byte>();
  19.                 while (true)
  20.                 {
  21.                     byte[] buffer = new byte[1];
  22.                     PS3.GetMemory(Offset + num, buffer);
  23.                     if (buffer[0] == 0)
  24.                     {
  25.                         return Encoding.UTF8.GetString(List.ToArray());
  26.                     }
  27.                     List.Add(buffer[0]);
  28.                     num++;
  29.                 }
  30.             }
  31.  
  32.             private static float ReadFloat(uint Offset)
  33.             {
  34.                 byte[] buffer = new byte[4];
  35.                 PS3.GetMemory(Offset, buffer);
  36.                 Array.Reverse(buffer, 0, 4);
  37.                 return BitConverter.ToSingle(buffer, 0);
  38.             }
  39.  
  40.             private static int ReadInt(uint Offset)
  41.             {
  42.                 byte[] buffer = new byte[4];
  43.                 PS3.GetMemory(Offset, buffer);
  44.                 Array.Reverse(buffer);
  45.                 int Value = BitConverter.ToInt32(buffer, 0);
  46.                 return Value;
  47.             }
  48.  
  49.             private static float[] ReadFloatLength(uint Offset, int Length)
  50.             {
  51.                 byte[] buffer = new byte[Length * 4];
  52.                 PS3.GetMemory(Offset, buffer);
  53.                 Array.Reverse(buffer);
  54.                 float[] FArray = new float[Length];
  55.                 for (int i = 0; i < Length; i++)
  56.                 {
  57.                     FArray[i] = BitConverter.ToSingle(buffer, (Length - 1 - i) * 4);
  58.                 }
  59.                 return FArray;
  60.             }
  61.  
  62.             private static void WriteString(uint Offset, string Text)
  63.             {
  64.                 byte[] buffer = Encoding.UTF8.GetBytes(Text);
  65.                 Array.Resize(ref buffer, buffer.Length + 1);
  66.                 PS3.SetMemory(Offset, buffer);
  67.             }
  68.  
  69.             private static void WriteByte(uint Offset, byte Byte)
  70.             {
  71.                 byte[] buffer = new byte[1];
  72.                 buffer[0] = Byte;
  73.                 PS3.SetMemory(Offset, buffer);
  74.             }
  75.  
  76.             private static void WriteFloat(uint Offset, float Float)
  77.             {
  78.                 byte[] buffer = new byte[4];
  79.                 BitConverter.GetBytes(Float).CopyTo(buffer, 0);
  80.                 Array.Reverse(buffer, 0, 4);
  81.                 PS3.SetMemory(Offset, buffer);
  82.             }
  83.  
  84.             private static void WriteFloatArray(uint Offset, float[] Array)
  85.             {
  86.                 byte[] buffer = new byte[Array.Length * 4];
  87.                 for (int Lenght = 0; Lenght < Array.Length; Lenght++)
  88.                 {
  89.                     ReverseBytes(BitConverter.GetBytes(Array[Lenght])).CopyTo(buffer, Lenght * 4);
  90.                 }
  91.                 PS3.SetMemory(Offset, buffer);
  92.             }
  93.  
  94.             private static void WriteInt(uint Offset, int Value)
  95.             {
  96.                 byte[] buffer = BitConverter.GetBytes(Value);
  97.                 Array.Reverse(buffer);
  98.                 PS3.SetMemory(Offset, buffer);
  99.             }
  100.  
  101.             private static void WriteUInt(uint Offset, uint Value)
  102.             {
  103.                 byte[] buffer = new byte[4];
  104.                 BitConverter.GetBytes(Value).CopyTo(buffer, 0);
  105.                 Array.Reverse(buffer, 0, 4);
  106.                 PS3.SetMemory(Offset, buffer);
  107.             }
  108.  
  109.             private static byte[] ReverseBytes(byte[] inArray)
  110.             {
  111.                 Array.Reverse(inArray);
  112.                 return inArray;
  113.             }
  114.             #endregion
  115.  
  116.             #region RPC
  117.             private static uint func_address = 0x0277208;
  118.  
  119.             private static void Enable()
  120.             {
  121.                 byte[] Check = new byte[1];
  122.                 PS3.GetMemory(func_address + 4, Check);
  123.                 if (Check[0] == 0x3F)
  124.                 {
  125.  
  126.                 }
  127.                 else
  128.                 {
  129.                     byte[] PPC = new byte[]
  130.         {0x3F,0x80,0x10,0x05,0x81,0x9C,0,0x48,0x2C,0x0C,0,  0,0x41,0x82,0,0x78,
  131.          0x80,0x7C,0,0,0x80,0x9C,0,0x04,0x80,0xBC,0,0x08,0x80,0xDC,0,0x0C,0x80,
  132.          0xFC,0,0x10,0x81,0x1C,0,0x14,0x81,0x3C,0,0x18,0x81  ,0x5C,0,0x1C,0x81,
  133.          0x7C,0,0x20,0xC0,0x3C,0,0x24,0xC0,0x5C,0,0x28,0xC0  ,0x7C,0,0x2C,0xC0,
  134.          0x9C,0,0x30,0xC0,0xBC,0,0x34,0xC0,0xDC,0,0x38,0xC0  ,0xFC,0,0x3C,0xC1,
  135.          0x1C,0,0x40,0xC1,0x3C,0,0x44,0x7D,0x89,0x03,0xA6,0x4E,0x80,0x04,0x21,
  136.          0x38,0x80,0,0,0x90,0x9C,0,0x48,0x90,0x7C,0,0x4C,0xD0,0x3C,0,0x50,0x48,0,0,0x14};
  137.                     PS3.SetMemory(func_address, new byte[] { 0x41 });
  138.                     PS3.SetMemory(func_address + 4, PPC);
  139.                     PS3.SetMemory(func_address, new byte[] { 0x40 });
  140.                 }
  141.             }
  142.  
  143.             private static int Call(uint address, params object[] parameters)
  144.             {
  145.                 int length = parameters.Length;
  146.                 int index = 0;
  147.                 uint count = 0;
  148.                 uint Strings = 0;
  149.                 uint Single = 0;
  150.                 uint Array = 0;
  151.                 while (index < length)
  152.                 {
  153.                     if (parameters[index] is int)
  154.                     {
  155.                         WriteInt(0x10050000 + (count * 4), (int)parameters[index]);
  156.                         count++;
  157.                     }
  158.                     else if (parameters[index] is uint)
  159.                     {
  160.                         WriteUInt(0x10050000 + (count * 4), (uint)parameters[index]);
  161.                         count++;
  162.                     }
  163.                     else if (parameters[index] is byte)
  164.                     {
  165.                         WriteByte(0x10050000 + (count * 4), (byte)parameters[index]);
  166.                         count++;
  167.                     }
  168.                     else
  169.                     {
  170.                         uint pointer;
  171.                         if (parameters[index] is string)
  172.                         {
  173.                             pointer = 0x10052000 + (Strings * 0x400);
  174.                             WriteString(pointer, Convert.ToString(parameters[index]));
  175.                             WriteUInt(0x10050000 + (count * 4), (uint)pointer);
  176.                             count++;
  177.                             Strings++;
  178.                         }
  179.                         else if (parameters[index] is float)
  180.                         {
  181.                             WriteFloat(0x10050024 + (Single * 4), (float)parameters[index]);
  182.                             Single++;
  183.                         }
  184.                         else if (parameters[index] is float[])
  185.                         {
  186.                             float[] Args = (float[])parameters[index];
  187.                             pointer = 0x10051000 + Array * 4;
  188.                             WriteFloatArray(pointer, Args);
  189.                             WriteUInt(0x10050000 + count * 4, (uint)pointer);
  190.                             count++;
  191.                             Array += (uint)Args.Length;
  192.                         }
  193.                     }
  194.                     index++;
  195.                 }
  196.                 WriteUInt(0x10050048, (uint)address);
  197.                 Thread.Sleep(20);
  198.                 return ReadInt(0x1005004c);
  199.             }
  200.  
  201.             private static bool Dvar_GetBool(string DVAR)
  202.             {//0x00291060 - Dvar_GetBool(const char *dvarName)
  203.                 bool State;
  204.                 uint Value = (uint)Call(0x00291060, DVAR);
  205.                 if (Value == 1)
  206.                     State = true;
  207.                 else
  208.                     State = false;
  209.                 return State;
  210.             }
  211.             #endregion
  212.  
  213.             #region HUDS
  214.             private static uint Element(uint Index)
  215.             {
  216.                 return 0xF0E10C + ((Index) * 0xB4);
  217.             }
  218.  
  219.             private static uint StoreText(uint Index, decimal Client, string Text, int Font, float FontScale, int X, int Y, decimal R = 255, decimal G = 255, decimal B = 255, decimal A = 255, decimal R1 = 0, decimal G1 = 0, decimal B1 = 0, decimal A1 = 0)
  220.             {
  221.                 uint elem = Element(Index);
  222.                 WriteInt(elem + 0x84, Call(0x1BE6CC, Text));
  223.                 WriteInt(elem + 0x24, Font);
  224.                 WriteFloat(elem + 0x14, FontScale);
  225.                 WriteFloat(elem + 0x4, X);
  226.                 WriteFloat(elem + 0x8, Y);
  227.                 PS3.SetMemory(elem + 0xa7, new byte[] { 7 });
  228.                 PS3.SetMemory(elem + 0x30, new byte[] { (byte)R, (byte)G, (byte)B, (byte)A });
  229.                 PS3.SetMemory(elem + 0x8C, new byte[] { (byte)R1, (byte)G1, (byte)B1, (byte)A1 });
  230.                 WriteInt(elem + 0xA8, (int)Client);
  231.                 System.Threading.Thread.Sleep(20);
  232.                 WriteInt(elem, 1);
  233.                 return elem;
  234.             }
  235.             #endregion
  236.  
  237.             #region Functions
  238.             private enum Brush : uint
  239.             {
  240.                 NULL = 0,
  241.                 CarePackage = 2,
  242.                 Bomb = 3,
  243.             }
  244.  
  245.             private static uint SolidModel(float[] Origin, float[] Angles, string Model = "com_plasticcase_friendly", Brush Index = Brush.CarePackage)
  246.             {
  247.                 uint Entity = (uint)Call(0x01C058C);//G_Spawn
  248.                 WriteFloatArray(Entity + 0x138, Origin);//Position
  249.                 WriteFloatArray(Entity + 0x144, Angles);//Orientation
  250.                 Call(0x01BEF5C, Entity, Model);//G_SetModel
  251.                 Call(0x01B6F68, Entity); //SP_script_model
  252.                 Call(0x002377B8, Entity);//SV_UnlinkEntity
  253.                 WriteByte(Entity + 0x101, 4);
  254.                 WriteByte(Entity + 0x8C + 3, (byte)Index);
  255.                 Call(0x0022925C, Entity);//SV_SetBrushModel
  256.                 Call(0x00237848, Entity);//SV_LinkEntity
  257.                 return Entity;
  258.             }
  259.  
  260.             public static float[] GetOrigin(uint Client)
  261.             {
  262.                 return ReadFloatLength(0x110a29c + (Client * 0x3980), 3);
  263.             }
  264.  
  265.             private static string ChangeWeaponModel()
  266.             {
  267.                 int Value = 0;
  268.                 byte[] buffer = new byte[100];
  269.                 PS3.GetMemory(0x8360d5, buffer);
  270.                 System.Text.ASCIIEncoding Encoding = new System.Text.ASCIIEncoding();
  271.                 string Map = Encoding.GetString(buffer).Split(Convert.ToChar(0x5c))[6];
  272.                 if (Map == "mp_seatown" | Map == "mp_paris" |Map == "mp_plaza2" | Map == "mp_exchange" | Map == "mp_bootleg" | Map == "mp_alpha" | Map == "mp_village" | Map == "mp_bravo" | Map == "mp_courtyard_ss" | Map == "mp_aground_ss")
  273.                     Value = -1;
  274.                 else
  275.                     Value = 0;
  276.  
  277.                 Random Random = new Random();
  278.                 switch (Random.Next(1, 50))
  279.                 {
  280.                     case 1:
  281.                         Weapon = (uint)Value + 4;
  282.                         WeaponName = "Riotshield";
  283.                         return "weapon_riot_shield_mp";
  284.                     case 2:
  285.                         Weapon = (uint)Value + 6;
  286.                         WeaponName = ".44 Magnum";
  287.                         return "weapon_44_magnum_iw5";
  288.                     case 3:
  289.                         Weapon = (uint)Value + 7;
  290.                         WeaponName = "USP .45";
  291.                         return "weapon_usp45_iw5";
  292.                     case 4:
  293.                         Weapon = (uint)Value + 9;
  294.                         WeaponName = "Desert Eagle";
  295.                         return "weapon_desert_eagle_iw5";
  296.                     case 5:
  297.                         Weapon = (uint)Value + 10;
  298.                         WeaponName = "MP412";
  299.                         return "weapon_mp412";
  300.                     case 6:
  301.                         Weapon = (uint)Value + 12;
  302.                         WeaponName = "P99";
  303.                         return "weapon_walther_p99_iw5";
  304.                     case 7:
  305.                         Weapon = (uint)Value + 13;
  306.                         WeaponName = "Five-Seven";
  307.                         return "weapon_fn_fiveseven_iw5";
  308.                     case 8:
  309.                         Weapon = (uint)Value + 14;
  310.                         WeaponName = "FMG9";
  311.                         return "weapon_fmg_iw5";
  312.                     case 9:
  313.                         Weapon = (uint)Value + 15;
  314.                         WeaponName = "Skorpion";
  315.                         return "weapon_skorpion_iw5";
  316.                     case 10:
  317.                         Weapon = (uint)Value + 16;
  318.                         WeaponName = "MP9";
  319.                         return "weapon_mp9_iw5";
  320.                     case 11:
  321.                         Weapon = (uint)Value + 17;
  322.                         WeaponName = "G18";
  323.                         return "weapon_g18_iw5";
  324.                     case 12:
  325.                         Weapon = (uint)Value + 18;
  326.                         WeaponName = "MP5";
  327.                         return "weapon_mp5_iw5";
  328.                     case 13:
  329.                         Weapon = (uint)Value + 19;
  330.                         WeaponName = "PM-9";
  331.                         return "weapon_uzi_m9_iw5";
  332.                     case 14:
  333.                         Weapon = (uint)Value + 20;
  334.                         WeaponName = "P90";
  335.                         return "weapon_p90_iw5";
  336.                     case 15:
  337.                         Weapon = (uint)Value + 21;
  338.                         WeaponName = "PP90M1";
  339.                         return "weapon_pp90m1_iw5";
  340.                     case 16:
  341.                         Weapon = (uint)Value + 22;
  342.                         WeaponName = "UMP45";
  343.                         return "weapon_ump45_iw5";
  344.                     case 17:
  345.                         Weapon = (uint)Value + 23;
  346.                         WeaponName = "MP7";
  347.                         return "weapon_mp7_iw5";
  348.                     case 18:
  349.                         Weapon = (uint)Value + 24;
  350.                         WeaponName = "AK-47";
  351.                         return "weapon_ak47_iw5";
  352.                     case 19:
  353.                         Weapon = (uint)Value + 25;
  354.                         WeaponName = "M16A4";
  355.                         return "weapon_m16_iw5";
  356.                     case 20:
  357.                         Weapon = (uint)Value + 26;
  358.                         WeaponName = "M4A1";
  359.                         return "weapon_m4_iw5";
  360.                     case 21:
  361.                         Weapon = (uint)Value + 27;
  362.                         WeaponName = "FAD";
  363.                         return "weapon_fad_iw5";
  364.                     case 22:
  365.                         Weapon = (uint)Value + 28;
  366.                         WeaponName = "ACR 6.8";
  367.                         return "weapon_remington_acr_iw5";
  368.                     case 23:
  369.                         Weapon = (uint)Value + 29;
  370.                         WeaponName = "Typ 95";
  371.                         return "weapon_type95_iw5";
  372.                     case 24:
  373.                         Weapon = (uint)Value + 30;
  374.                         WeaponName = "MK14";
  375.                         return "weapon_m14_iw5";
  376.                     case 25:
  377.                         Weapon = (uint)Value + 31;
  378.                         WeaponName = "SCAR-L";
  379.                         return "weapon_scar_iw5";
  380.                     case 26:
  381.                         Weapon = (uint)Value + 32;
  382.                         WeaponName = "G36C";
  383.                         return "weapon_g36_iw5";
  384.                     case 27:
  385.                         Weapon = (uint)Value + 33;
  386.                         WeaponName = "CM901";
  387.                         return "weapon_cm901";
  388.                     case 28:
  389.                         Weapon = (uint)Value + 35;
  390.                         WeaponName = "M320 GLM";
  391.                         return "weapon_m320_gl";
  392.                     case 29:
  393.                         Weapon = (uint)Value + 36;
  394.                         WeaponName = "RPG-7";
  395.                         return "weapon_rpg7";
  396.                     case 30:
  397.                         Weapon = (uint)Value + 37;
  398.                         WeaponName = "SMAW";
  399.                         return "weapon_smaw";
  400.                     case 31:
  401.                         Weapon = (uint)Value + 39;
  402.                         WeaponName = "Javelin";
  403.                         return "weapon_javelin";
  404.                     case 32:
  405.                         Weapon = (uint)Value + 40;
  406.                         WeaponName = "XM25";
  407.                         return "weapon_xm25";
  408.                     case 33:
  409.                         Weapon = (uint)Value + 12329;
  410.                         WeaponName = "Dragunow";
  411.                         return "weapon_dragunov_iw5";
  412.                     case 34:
  413.                         Weapon = (uint)Value + 12330;
  414.                         WeaponName = "MSR";
  415.                         return "weapon_remington_msr_iw5";
  416.                     case 35:
  417.                         Weapon = (uint)Value + 12331;
  418.                         WeaponName = "BARRET KAL. .50";
  419.                         return "weapon_m82_iw5";
  420.                     case 36:
  421.                         Weapon = (uint)Value + 12332;
  422.                         WeaponName = "RSASS";
  423.                         return "weapon_rsass_iw5";
  424.                     case 37:
  425.                         Weapon = (uint)Value + 12333;
  426.                         WeaponName = "AS50";
  427.                         return "weapon_as50_iw5";
  428.                     case 38:
  429.                         Weapon = (uint)Value + 12334;
  430.                         WeaponName = "L118A";
  431.                         return "weapon_l96a1_iw5";
  432.                     case 39:
  433.                         Weapon = (uint)Value + 47;
  434.                         WeaponName = "KSG 12";
  435.                         return "weapon_ksg_iw5";
  436.                     case 40:
  437.                         Weapon = (uint)Value + 48;
  438.                         WeaponName = "MODELL 1887";
  439.                         return "weapon_model1887";
  440.                     case 41:
  441.                         Weapon = (uint)Value + 49;
  442.                         WeaponName = "STRIKER";
  443.                         return "weapon_striker_iw5";
  444.                     case 42:
  445.                         Weapon = (uint)Value + 50;
  446.                         WeaponName = "AA-12";
  447.                         return "weapon_aa12_iw5";
  448.                     case 43:
  449.                         Weapon = (uint)Value + 51;
  450.                         WeaponName = "USAS12";
  451.                         return "weapon_usas12_iw5";
  452.                     case 44:
  453.                         Weapon = (uint)Value + 52;
  454.                         WeaponName = "SPAS-12";
  455.                         return "weapon_spas12_iw5";
  456.                     case 45:
  457.                         Weapon = (uint)Value + 54;
  458.                         WeaponName = "M60E4";
  459.                         return "weapon_m60_iw5";
  460.                     case 46:
  461.                         Weapon = (uint)Value + 17461;
  462.                         WeaponName = "AUG";
  463.                         return "weapon_steyr_digital";
  464.                     case 47:
  465.                         Weapon = (uint)Value + 55;
  466.                         WeaponName = "MK46";
  467.                         return "weapon_mk46_iw5";
  468.                     case 48:
  469.                         Weapon = (uint)Value + 56;
  470.                         WeaponName = "PKP PECHENEG";
  471.                         return "weapon_pecheneg_iw5";
  472.                     case 49:
  473.                         Weapon = (uint)Value + 57;
  474.                         WeaponName = "L86 LSW";
  475.                         return "weapon_sa80_iw5";
  476.                     case 50:
  477.                         Weapon = (uint)Value + 58;
  478.                         WeaponName = "MG36";
  479.                         return "weapon_mg36";
  480.                 }
  481.                 return null;
  482.             }
  483.  
  484.             private static void MBFunction(float[] Origin, float[] Angles)
  485.             {
  486.                 float[] BoxOrigin = Origin;
  487.                 float WeaponZ1 = 0;
  488.                 bool Running = false;
  489.                 uint ClientUsing = 0, WeaponID = 0;
  490.                 PS3.Connect();
  491.                 Origin[2] += 16;
  492.                 MBIndexes[0] = SolidModel(Origin, Angles, "com_plasticcase_trap_friendly");
  493.                 MBIndexes[1] = SolidModel(new float[] { Origin[0], Origin[1], Origin[2] += 28 }, Angles, "");
  494.                 MBIndexes[2] = SolidModel(new float[] { Origin[0] += -8, Origin[1], Origin[2] += -18 }, Angles, "weapon_ak47_iw5", Brush.NULL);
  495.                 WeaponID = MBIndexes[2];
  496.                 while (MBThread.IsAlive)
  497.                 {
  498.                     if (Dvar_GetBool("cl_ingame") == false)
  499.                     {
  500.                         MBThread.Abort();
  501.                         for (uint i = 0; i < 3; i++)
  502.                             PS3.SetMemory(MBIndexes[i], new byte[0x280]);
  503.                         PS3.SetMemory(0xF0E10C + (500 * 0xB4), new byte[18 * 0xB4]);
  504.                     }
  505.                     else
  506.                     {
  507.                         if (Running == false)
  508.                         {
  509.                             for (uint Client = 0; Client < 18; Client++)
  510.                             {
  511.                                 if (ReadInt(0xFCA41D + (Client * 0x280)) > 0)
  512.                                 {
  513.                                     float[] PlayerOrigin = ReadFloatLength(0x110a29c + (Client * 0x3980), 3);
  514.                                     float X = PlayerOrigin[0] - BoxOrigin[0];
  515.                                     float Y = PlayerOrigin[1] - BoxOrigin[1];
  516.                                     float Z = PlayerOrigin[2] - (BoxOrigin[2] - 23);
  517.                                     float Distance = (float)Math.Sqrt((X * X) + (Y * Y) + (Z * Z));
  518.                                     if (Distance < 50)
  519.                                     {
  520.                                         StoreText(500 + Client, Client, "Press  for a Random Weapon", 7, 0.8f, 195, 300);
  521.                                         byte[] Key = new byte[1];
  522.                                         PS3.GetMemory(0x110D5E3 + (0x3980 * Client), Key);
  523.                                         if (Key[0] == 0x20)
  524.                                         {
  525.                                             PS3.SetMemory(0xF0E10C + (500 * 0xB4), new byte[18 * 0xB4]);
  526.                                             float WeaponZ = Origin[2];
  527.                                             for (int i = 0; i < 37; i++)
  528.                                             {
  529.                                                 WriteFloat(WeaponID + 0x20, WeaponZ += 0.7f);
  530.                                                 if ((i / 2) * 2 == i)
  531.                                                 {
  532.                                                     WriteUInt(WeaponID + 0x58, (uint)Call(0x1BE7A8, ChangeWeaponModel()));
  533.                                                 }
  534.                                                 if (i == 36)
  535.                                                 {
  536.                                                     break;
  537.                                                 }
  538.                                                 WeaponZ1 = WeaponZ;
  539.                                                 Thread.Sleep(100);
  540.                                             }
  541.                                             Running = true;
  542.                                             ClientUsing = Client;
  543.                                             break;
  544.                                         }
  545.                                     }
  546.                                     else
  547.                                     {
  548.                                         PS3.SetMemory(Element(500 + Client), new byte[0xB4]);
  549.                                     }
  550.                                 }
  551.                             }
  552.                         }
  553.                         else
  554.                         {
  555.                             for (int i = 0; i < 37; i++)
  556.                             {
  557.                                 float[] PlayerOrigin = ReadFloatLength(0x110a29c + (ClientUsing * 0x3980), 3);
  558.                                 float X = PlayerOrigin[0] - BoxOrigin[0];
  559.                                 float Y = PlayerOrigin[1] - BoxOrigin[1];
  560.                                 float Z = PlayerOrigin[2] - (BoxOrigin[2] - 23);
  561.                                 float Distance = (float)Math.Sqrt((X * X) + (Y * Y) + (Z * Z));
  562.                                 if (Distance < 50)
  563.                                 {
  564.                                     StoreText(500 + ClientUsing, ClientUsing, "Press  for " + WeaponName, 7, 0.8f, 195, 300);
  565.                                     byte[] Key = new byte[1];
  566.                                     PS3.GetMemory(0x110D5E3 + (0x3980 * ClientUsing), Key);
  567.                                     if (Key[0] == 0x20)
  568.                                     {
  569.  
  570.                                         if (ReadInt(0x0110a5f0 + (ClientUsing * 0x3980)) == ReadInt(0x0110a4fc + (ClientUsing * 0x3980)))
  571.                                         {
  572.                                             WriteUInt(0x0110a4fc + (ClientUsing * 0x3980), Weapon);
  573.                                             WriteUInt(0x0110a624 + (ClientUsing * 0x3980), Weapon);
  574.                                             WriteUInt(0x0110a6a4 + (ClientUsing * 0x3980), Weapon);
  575.                                         }
  576.                                         else
  577.                                         {
  578.                                             WriteUInt(0x0110a4f4 + (ClientUsing * 0x3980), Weapon);
  579.                                             WriteUInt(0x0110a68c + (ClientUsing * 0x3980), Weapon);
  580.                                             WriteUInt(0x0110a614 + (ClientUsing * 0x3980), Weapon);
  581.                                         }
  582.                                         WriteUInt(0x0110a5f0 + (ClientUsing * 0x3980), Weapon);
  583.                                         Call(0x18A29C, 0xFCA280 + (ClientUsing * 0x280), Weapon, "", 9999, 9999);
  584.                                         WriteFloat(WeaponID + 0x20, Origin[2]);
  585.                                         WriteUInt(WeaponID + 0x58, (uint)Call(0x1BE7A8, "weapon_ak47_iw5"));
  586.                                         PS3.SetMemory(Element(500 + ClientUsing), new byte[0xB4]);
  587.                                         Running = false;
  588.                                         break;
  589.                                     }
  590.                                     else
  591.                                     {
  592.                                         WriteFloat(WeaponID + 0x20, WeaponZ1 += -0.7f);
  593.                                         if (i == 36)
  594.                                         {
  595.                                             WriteUInt(WeaponID + 0x58, (uint)Call(0x1BE7A8, "weapon_ak47_iw5"));
  596.                                             PS3.SetMemory(Element(500 + ClientUsing), new byte[0xB4]);
  597.                                             Running = false;
  598.                                             break;
  599.                                         }
  600.                                         Thread.Sleep(200);
  601.                                     }
  602.                                 }
  603.                                 else
  604.                                 {
  605.                                     PS3.SetMemory(Element(500 + ClientUsing), new byte[0xB4]);
  606.                                     WriteFloat(WeaponID + 0x20, WeaponZ1 += -0.7f);
  607.                                     if (i == 36)
  608.                                     {
  609.                                         WriteUInt(WeaponID + 0x58, (uint)Call(0x1BE7A8, "weapon_ak47_iw5"));
  610.                                         PS3.SetMemory(Element(500 + ClientUsing), new byte[0xB4]);
  611.                                         Running = false;
  612.                                         break;
  613.                                     }
  614.                                     Thread.Sleep(200);
  615.                                 }
  616.                             }
  617.                             Thread.Sleep(2000);
  618.                         }
  619.                     }
  620.                 }
  621.             }
  622.             #endregion
  623.  
  624.             public static void Spawn(float[] Origin, float Yaw)
  625.             {
  626.                 Enable();
  627.                 float[] Angles = new float[] { 0, Yaw, 0 };
  628.                 ThreadStart Start = null;
  629.                 Thread.Sleep(100);
  630.                 if (Start == null)
  631.                 {
  632.                     Start = () => MBFunction(Origin, Angles);
  633.                 }
  634.                 MBThread = new Thread(Start);
  635.                 MBThread.IsBackground = true;
  636.                 MBThread.Start();
  637.             }
  638.  
  639.             public static void DeleteMB()
  640.             {
  641.                 MBThread.Abort();
  642.                 for (uint i = 0; i < 3; i++)
  643.                     PS3.SetMemory(MBIndexes[i], new byte[0x280]);
  644.                 PS3.SetMemory(0xF0E10C + (500 * 0xB4), new byte[18 * 0xB4]);
  645.             }
  646.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement