Пример #1
0
        static VehicleControl()
        {
            byte *addr = MemoryFunctions.FindPattern("\x74\x0A\xF3\x0F\x11\xB3\x1C\x09\x00\x00\xEB\x25", "xxxxxx????xx");

            throttlePOffset     = addr == null ? 0 : *(int *)(addr + 6) + 0x10;
            brakePOffset        = addr == null ? 0 : *(int *)(addr + 6) + 0x14;
            steeringAngleOffset = addr == null ? 0 : *(int *)(addr + 6) + 8;

            addr            = MemoryFunctions.FindPattern("\x44\x88\xA3\x00\x00\x00\x00\x45\x8A\xF4", "xxx????xxx");
            handbrakeOffset = addr == null ? 0 : *(int *)(addr + 3);

            addr           = MemoryFunctions.FindPattern("\x3C\x03\x0F\x85\x00\x00\x00\x00\x48\x8B\x41\x20\x48\x8B\x88", "xxxx????xxxxxxx");
            handlingOffset = addr == null ? 0 : *(int *)(addr + 0x16);

            addr            = MemoryFunctions.FindPattern("\x3B\xB7\x48\x0B\x00\x00\x7D\x0D", "xx????xx");
            wheelsPtrOffset = addr == null ? 0 : *(int *)(addr + 2) - 8;
            numWheelsOffset = addr == null ? 0 : *(int *)(addr + 2);

            addr = MemoryFunctions.FindPattern("\x0F\x2F\x81\xBC\x01\x00\x00\x0F\x97\xC0\xEB\xDA", "xx???xxxxxxx");
            wheelSteeringAngleOffset = addr == null ? 0 : *(int *)(addr + 3);

            addr            = MemoryFunctions.FindPattern("\x74\x26\x0F\x57\xC9", "xxxxx");
            fuelLevelOffset = addr == null ? 0 : *(int *)(addr + 8);

            addr = MemoryFunctions.FindPattern("\x45\x0f\x57\xc9\xf3\x0f\x11\x83\x60\x01\x00\x00\xf3\x0f\x5c", "xxx?xxx???xxxxx");
            wheelAngularVelocityOffset = addr == null ? 0 : (*(int *)(addr + 8)) + 0xc;

            addr = MemoryFunctions.FindPattern("\xF3\x0F\x11\xB3\x00\x00\x00\x00\x44\x88\x00\x00\x00\x00\x00\x48\x85\xC9", "xxxx????xx?????xxx");
            deluxoTransformationOffset = addr == null ? 0 : *(int *)(addr + 4);
            deluxoFlyModeOffset        = deluxoTransformationOffset == 0 ? 0 : deluxoTransformationOffset + 4;
        }
Пример #2
0
        internal static bool Init()
        {
            byte *address = MemoryFunctions.FindPattern("\x85\xD2\x78\x44\x4C\x8B\x49\x68\x4D\x85\xC9\x74\x29\x49\x8B\x81\x00\x00\x00\x00", "xxxxxxxxxxxxxxxx????");

            if (AssertAddress(address, nameof(GetBoundIndexForBone)))
            {
                GetBoundIndexForBone = Marshal.GetDelegateForFunctionPointer <GetBoundIndexForBoneDelegate>((IntPtr)address);
            }

            return(!anyAssertFailed);
        }