Fonctionnel?tien :
RPC :
Code:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using PS3Lib; using System.Threading; using Project_Ade; namespace Super_Mini_Tool { class RPC { public static byte[] ReverseBytes(byte[] toReverse) { Array.Reverse(toReverse); return toReverse; } public static void WriteFloatArray(UInt32 address, float[] input) { int length = input.Length; byte[] array = new byte[length * 4]; for (int i = 0; i < length; i++) { ReverseBytes(BitConverter.GetBytes(input[i])).CopyTo(array, (int)(i * 4)); } Form1.Mark.SetMemory(address, array); } public static uint RPCMemoryAddress = 0; public static void Enable(uint AddressToStorePPC, uint RPCMemoryPointerAddress) { RPCMemoryAddress = RPCMemoryPointerAddress; Form1.Mark.SetMemory(RPCMemoryPointerAddress, new byte[0x3000]); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC, 0x3CE408); Thread.Sleep(20); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 4, 0x7C0802A6); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 8, 0xF8010080); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0xC, 0x3F800000 + ((RPCMemoryPointerAddress >> 16) & 0xFFFF)); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x10, 0x819C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x48); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x14, 0x2C0C0000); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x18, 0x41820060); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x1C, 0x807C0000 + (RPCMemoryPointerAddress & 0xFFFF)); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x20, 0x809C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 4); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x24, 0x80BC0000 + (RPCMemoryPointerAddress & 0xFFFF) + 8); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x28, 0x80DC0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0xC); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x2C, 0x80FC0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x10); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x30, 0x811C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x14); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x34, 0x813C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x18); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x38, 0x815C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x1C); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x3C, 0x817C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x20); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x40, 0xC03C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x24); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x44, 0xC05C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x28); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x48, 0xC07C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x2C); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x4C, 0xC09C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x30); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x50, 0xC0BC0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x34); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x54, 0xC0DC0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x38); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x58, 0xC0FC0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x3C); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x5C, 0xC11C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x40); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x60, 0xC13C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x44); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x64, 0x7D8903A6); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x68, 0x4E800421); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x6C, 0x38A00000); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x70, 0x90BC0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x48); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x74, 0x907C0000 + (RPCMemoryPointerAddress & 0xFFFF) + 0x4C); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x78, 0xE8010080); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x7C, 0x7C0803A6); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x80, 0x38210070); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC + 0x84, 0x4E800020); Form1.Mark.Extension.WriteUInt32(AddressToStorePPC, 0xF821FF91); } public static void Cbuf_AddText(int client, string command) { UInt32 Cbuf = 0x5A512C; RPC.CallFunction(Cbuf, client, command); } public static void SV_GameSendServerCommand(int client, string command) { RPC.CallFunction(0x5DEC94, client, 0, command + "\""); } public static void iPrintln(int client, string text) { SV_GameSendServerCommand(client, "e \"" + text + "\""); } public static int CallFunction(uint Address, params object[] Parameters) { uint num3 = 0, num4 = 0, num5 = 0, num6 = 0, index = 0; Form1.Mark.Extension.WriteUInt32(RPCMemoryAddress + 0x48, Address); while (index < Parameters.Length) { if (Parameters[index] is int) { Form1.Mark.Extension.WriteInt32(RPCMemoryAddress + (num3 * 4), (int)Parameters[index]); num3++; } else if (Parameters[index] is uint) { Form1.Mark.Extension.WriteUInt32(RPCMemoryAddress + (num3 * 4), (uint)Parameters[index]); num3++; } else if (Parameters[index] is string) { Form1.Mark.Extension.WriteString(RPCMemoryAddress + 0x2000 + (num4 * 0x400), Convert.ToString(Parameters[index])); Form1.Mark.Extension.WriteUInt32(RPCMemoryAddress + (num3 * 4), RPCMemoryAddress + 0x2000 + (num4 * 0x400)); num3++; num4++; } else if (Parameters[index] is float) { Form1.Mark.Extension.WriteFloat(RPCMemoryAddress + 0x24 + (num5 * 4), (float)Parameters[index]); num5++; } else if (Parameters[index] is float[]) { float[] input = (float[])Parameters[index]; WriteFloatArray(RPCMemoryAddress + 0x1000 + (num6 * 4), input); Form1.Mark.Extension.WriteUInt32(RPCMemoryAddress + (num3 * 4), RPCMemoryAddress + 0x1000 + (num6 * 4)); num3++; num6 += (uint)input.Length; } index++; } return Form1.Mark.Extension.ReadInt32(RPCMemoryAddress + 0x4C); } internal static void Call(object cbuf_AddText, object[] v) { throw new NotImplementedException(); } } }
Force Host :
Code:RPC.Cbuf_AddText(0, "partyMigrate_disabled 1"); RPC.Cbuf_AddText(0, "party_minplayers 1"); RPC.Cbuf_AddText(0, "allowAllNAT 1"); RPC.Cbuf_AddText(0, "party_connectToOthers 0");