Гайд How to update software RUST

Начинающий
Статус
Оффлайн
Регистрация
8 Июн 2019
Сообщения
147
Реакции[?]
21
Поинты[?]
0
Ну что же гайд как обновить софт.
Каждый "кодер" должен знать о такой штуке как поиск и замена если кто не знает как юзать вот вам ссылка на документацию
Пожалуйста, авторизуйтесь для просмотра ссылки.
.
Кроче что вам нужно №1. Обновить FindMatrix. Думаю каждый знает где он расположен у меня он в EntityZaLoop.h.
Ну или в другом месте зависит от вас куда вы его там приткнули. Кроче заменяем код Сейчас версия GOM-0x17C1F18
C++:
void FindMatrix() {
    static DWORD64 dwGameObjectManager = 0;
    if (!dwGameObjectManager)
        dwGameObjectManager = safe_read(GetModBase(StrW(L"UnityPlayer.dll")) + 0x17C1F18, UINT64);
    DWORD64 ObjMgr = safe_read(dwGameObjectManager, DWORD64);
    if (!ObjMgr) return;
    UINT64 end = safe_read(ObjMgr, UINT64);
    for (UINT64 Obj = safe_read(ObjMgr + 0x8, UINT64); (Obj && (Obj != end)); Obj = safe_read(Obj + 0x8, UINT64))// 0x18
    {
        UINT64 GameObject = safe_read(Obj + 0x10, UINT64);
        WORD Tag = safe_read(GameObject + 0x54, WORD);
        if (Tag == 5)
        {
            UINT64 ObjClass = safe_read(GameObject + 0x30, UINT64);
            UINT64    Entity = safe_read(ObjClass + 0x18, UINT64);
            LocalPlayer.pViewMatrix = (Matrix4x4*)(Entity + 0xDC);// 0xDC 0x2E4
            //printf(StrA("Found matrix!\n"));
            mfound = true;
            return;
        }
    }
}
И так справились думаю да Идем дальше.
№2. Залупень Пропало вх что же делать переходим в EntityZaLoop.h
И просто вам надо вставить этот код. Если у вас есть он тогда просто замените. Если же нету тогда вставляйте за ошибки не отвечаю. dwGameObjectManager
C++:
static DWORD64 dwGameObjectManager = 0;
    if (!dwGameObjectManager)
        dwGameObjectManager = safe_read(GetModBase(StrW(L"UnityPlayer.dll")) + oGameObjectManager, UINT64);

    DWORD64 ObjMgr = safe_read(dwGameObjectManager, DWORD64); if (!ObjMgr) return;

    for (DWORD64 Obj = safe_read(ObjMgr + 0x8, DWORD64); (Obj && (Obj != safe_read(ObjMgr, DWORD64))); Obj = safe_read(Obj + 0x8, DWORD64))
    {
        DWORD64 GameObject = safe_read(Obj + 0x10, DWORD64);
        WORD Tag = safe_read(GameObject + 0x54, WORD);

        if (Tag == 6 || Tag == 5 || Tag == 20011)
        {
            DWORD64 ObjClass = safe_read(GameObject + 0x30, DWORD64);
            DWORD64    Entity = safe_read(ObjClass + 0x18, DWORD64);
            //entity
            if (Tag == 6)
            {
                //entity
                if (safe_read(safe_read(GameObject + 0x60, DWORD64), DWORD64) != 0x616C506C61636F4C)
                {

                }
                else {
                }
            }
            //camera
            else if (Tag == 5)
                LocalPlayer.pViewMatrix = (Matrix4x4*)(Entity + 0xDC); //0x2E4
        }
    //goto next entity
    NextEnt: continue;
    }
Если у кого то нет AlwaysDay или CustomTime вот просто добавьте. а там я думаю вы сами знаете как и че куда.
C++:
 //sky
  /* else if (Tag == 20011 && Vars::Misc::AlwaysDay) {
DWORD64 Dome = safe_read(Entity + 0x28, DWORD64);
DWORD64 TodCycle = safe_read(Dome + 0x38, DWORD64);
safe_write(TodCycle + 0x10, 13.37f, float);
}
else if (Tag == 20011 && Vars::Misc::CustomTime) {
DWORD64 Dome = safe_read(Entity + 0x28, DWORD64);
DWORD64 TodCycle = safe_read(Dome + 0x38, DWORD64);
safe_write(TodCycle + 0x10, Vars::Misc::Time, float);
}*/
№3. Далее переходим к get_position.
Находится в game_sdk.h
Ну или еще где. опять же есть поиск.
Тоже берем заменяем код
C++:
static Vector3 get_position(DWORD64 transform)
    {
        if (!transform) return Vector3{ 0.f, 0.f, 0.f };


        struct Matrix34 { BYTE vec0[16]; BYTE vec1[16]; BYTE vec2[16]; };
        const __m128 mulVec0 = { -2.000, 2.000, -2.000, 0.000 };
        const __m128 mulVec1 = { 2.000, -2.000, -2.000, 0.000 };
        const __m128 mulVec2 = { -2.000, -2.000, 2.000, 0.000 };


        int Index = *reinterpret_cast<PINT>(transform + 0x40);
        auto pTransformData = safe_read(transform + 0x38, DWORD64);
        DWORD64 transformData[2];
        safe_memcpy(&transformData, reinterpret_cast<PVOID>(pTransformData + 0x18), 16);


        std::size_t sizeMatricesBuf = 48 * Index + 48;
        std::size_t sizeIndicesBuf = 4 * Index + 4;


        int pIndicesBuf[100];
        Matrix34 pMatricesBuf[1000];


        safe_memcpy(pMatricesBuf, reinterpret_cast<PVOID>(transformData[0]), sizeMatricesBuf);
        safe_memcpy(pIndicesBuf, reinterpret_cast<PVOID>(transformData[1]), sizeIndicesBuf);


        __m128 result = *reinterpret_cast<__m128*>(reinterpret_cast<ULONGLONG>(pMatricesBuf) + 0x30 * Index);
        int transformIndex = *reinterpret_cast<int*>(reinterpret_cast<ULONGLONG>(pIndicesBuf) + 0x4 * Index);


        while (transformIndex >= 0)
        {
            Matrix34 matrix34 = *reinterpret_cast<Matrix34*>(reinterpret_cast<ULONGLONG>(pMatricesBuf) + 0x30 * transformIndex);
            __m128 xxx = _mm_castsi128_ps(_mm_shuffle_epi32(*reinterpret_cast<__m128i*>(&matrix34.vec1), 0x00));
            __m128 yyyy = _mm_castsi128_ps(_mm_shuffle_epi32(*reinterpret_cast<__m128i*>(&matrix34.vec1), 0x55));
            __m128 waxy = _mm_castsi128_ps(_mm_shuffle_epi32(*reinterpret_cast<__m128i*>(&matrix34.vec1), 0x8E));
            __m128 blowzy = _mm_castsi128_ps(_mm_shuffle_epi32(*reinterpret_cast<__m128i*>(&matrix34.vec1), 0xDB));
            __m128 zzz = _mm_castsi128_ps(_mm_shuffle_epi32(*reinterpret_cast<__m128i*>(&matrix34.vec1), 0xAA));
            __m128 yxwy = _mm_castsi128_ps(_mm_shuffle_epi32(*reinterpret_cast<__m128i*>(&matrix34.vec1), 0x71));
            __m128 tmp7 = _mm_mul_ps(*reinterpret_cast<__m128*>(&matrix34.vec2), result);


            result = _mm_add_ps(
                _mm_add_ps(
                    _mm_add_ps(
                        _mm_mul_ps(
                            _mm_sub_ps(
                                _mm_mul_ps(_mm_mul_ps(xxx, mulVec1), waxy),
                                _mm_mul_ps(_mm_mul_ps(yyyy, mulVec2), blowzy)),
                            _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(tmp7), 0xAA))),
                        _mm_mul_ps(
                            _mm_sub_ps(
                                _mm_mul_ps(_mm_mul_ps(zzz, mulVec2), blowzy),
                                _mm_mul_ps(_mm_mul_ps(xxx, mulVec0), yxwy)),
                            _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(tmp7), 0x55)))),
                    _mm_add_ps(
                        _mm_mul_ps(
                            _mm_sub_ps(
                                _mm_mul_ps(_mm_mul_ps(yyyy, mulVec0), yxwy),
                                _mm_mul_ps(_mm_mul_ps(zzz, mulVec1), waxy)),
                            _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(tmp7), 0x00))),
                        tmp7)), *reinterpret_cast<__m128*>(&matrix34.vec0));

            transformIndex = *reinterpret_cast<int*>(reinterpret_cast<ULONGLONG>(pIndicesBuf) + 0x4 * transformIndex);
        }
        return Vector3(result.m128_f32[0], result.m128_f32[1], result.m128_f32[2]);
    }
№4.Ну и после всех манипуляций вы тупо обновляете все свои оффсеты и хуки.
Если что то не работает меня нет.
 
Новичок
Статус
Оффлайн
Регистрация
14 Май 2021
Сообщения
2
Реакции[?]
1
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
15 Ноя 2020
Сообщения
5
Реакции[?]
1
Поинты[?]
0
Так, он тебе и написал- Аткуда иму знать что у вас за сурс и где чо разпаложено, он лиш дал пример.
Ух ты, какой крутой и бесполезный гайд!
А вот мне памогло)
 
Сверху Снизу