Вопрос SetFiringPos помогите со смещением

Начинающий
Статус
Оффлайн
Регистрация
2 Авг 2018
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Пишу аим, крашит при использовании SetFiringPos

Код:
class i_item
{
public:
    IWeapon* GetIWeapon() { return (IWeapon*)((DWORD64)this + 0x28); }
    VOID SetFiringPos(Vec3 vPos) { *(Vec3*)((DWORD64)*(DWORD64*)((DWORD64)GetIWeapon() + 0x18) + 0x1C) = vPos; }
};
Подскажите какие смещения для этой функции? Заранее благодарен
 
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пишу аим, крашит при использовании SetFiringPos

Код:
class i_item
{
public:
    IWeapon* GetIWeapon() { return (IWeapon*)((DWORD64)this + 0x28); }
    VOID SetFiringPos(Vec3 vPos) { *(Vec3*)((DWORD64)*(DWORD64*)((DWORD64)GetIWeapon() + 0x18) + 0x1C) = vPos; }
};
Подскажите какие смещения для этой функции? Заранее благодарен
В IWeapon SetFiringPos находится. А так смещение верны.
 
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
class CItem
{
public:
    IWeapon* GetIWeapon()
    {
        return (IWeapon*)(this + 0x28);
    }
};

class IWeapon
{
public:
        void SetFiringPos(Vec3 vPos = { 0.0f, 0.0f, 0.0f })
    {
        if (auto v1 = *(DWORD64*)((DWORD64)this +0x18/* 0xC*/))
            *(Vec3*)(v1 + 0x1c/*0x10*/) = vPos;
    }
};
 
Начинающий
Статус
Оффлайн
Регистрация
2 Авг 2018
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Сейчас аим работает, но без учета стен, крашит, когда вызываю isVisible. В чем может быть причина?
C++:
INT isVisible(Vec3 EnemyPos, Vec3 MyPos)
{
    Vec3 vTemp;
    ray_hit tmpHit;
    vTemp.x = EnemyPos.x - MyPos.x;
    vTemp.y = EnemyPos.y - MyPos.y;
    vTemp.z = EnemyPos.z - MyPos.z;
    return !SSystemGlobalEnvironment::GetInstance()->pPhysicalWorld()->RayWorldIntersection(MyPos, vTemp, 776, (10 & 0x0F), &tmpHit, 1);
}

template<typename ClassData>
__forceinline ClassData CallFunction(PVOID64 BaseClass, INT vIndex)
{
    PDWORD64* vPointer = (PDWORD64*)BaseClass;
    PDWORD64 vFunction = *vPointer;
    DWORD64 dwAddress = vFunction[vIndex / 8];
    return (ClassData)(dwAddress);
}

class IPhysicalWorld
{
public:
    int RayWorldIntersection(SRWIParams & rp, const char* pNameTag, int iCaller)
    {
        return CallFunction<int(__thiscall*)(PVOID, SRWIParams&, const char*, int)>(this, 280)(this, rp, pNameTag, iCaller);
    }

    INT RayWorldIntersection(const Vec3& org, const Vec3& dir, int objtypes, unsigned int flags, ray_hit *hits, int nMaxHits = 1, IPhysicalEntity **pSkipEnts = 0, int nSkipEnts = 0, void *pForeignData = 0, int iForeignData = 0, const char *pNameTag = "RayWorldIntersection(Game)", ray_hit_cached *phitLast = 0, int iCaller = 4)
    {
        return CallFunction<int(__thiscall*)(PVOID, const Vec3&, const Vec3&, int, unsigned int, ray_hit*, int, IPhysicalEntity **, int, void *, int, const char *, ray_hit_cached *, int)>(this, 776)(this, org, dir, objtypes, flags, hits, nMaxHits, pSkipEnts, nSkipEnts, pForeignData, iForeignData, pNameTag, phitLast, iCaller);
    }

};
 
Последнее редактирование:
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сейчас аим работает, но без учета стен, крашит, когда вызываю isVisible. В чем может быть причина?
C++:
INT isVisible(Vec3 EnemyPos, Vec3 MyPos)
{
    Vec3 vTemp;
    ray_hit tmpHit;
    vTemp.x = EnemyPos.x - MyPos.x;
    vTemp.y = EnemyPos.y - MyPos.y;
    vTemp.z = EnemyPos.z - MyPos.z;
    return !SSystemGlobalEnvironment::GetInstance()->pPhysicalWorld()->RayWorldIntersection(MyPos, vTemp, 776, (10 & 0x0F), &tmpHit, 1);
}

template<typename ClassData>
__forceinline ClassData CallFunction(PVOID64 BaseClass, INT vIndex)
{
    PDWORD64* vPointer = (PDWORD64*)BaseClass;
    PDWORD64 vFunction = *vPointer;
    DWORD64 dwAddress = vFunction[vIndex / 8];
    return (ClassData)(dwAddress);
}

class IPhysicalWorld
{
public:
    int RayWorldIntersection(SRWIParams & rp, const char* pNameTag, int iCaller)
    {
        return CallFunction<int(__thiscall*)(PVOID, SRWIParams&, const char*, int)>(this, 280)(this, rp, pNameTag, iCaller);
    }

    INT RayWorldIntersection(const Vec3& org, const Vec3& dir, int objtypes, unsigned int flags, ray_hit *hits, int nMaxHits = 1, IPhysicalEntity **pSkipEnts = 0, int nSkipEnts = 0, void *pForeignData = 0, int iForeignData = 0, const char *pNameTag = "RayWorldIntersection(Game)", ray_hit_cached *phitLast = 0, int iCaller = 4)
    {
        return CallFunction<int(__thiscall*)(PVOID, const Vec3&, const Vec3&, int, unsigned int, ray_hit*, int, IPhysicalEntity **, int, void *, int, const char *, ray_hit_cached *, int)>(this, 776)(this, org, dir, objtypes, flags, hits, nMaxHits, pSkipEnts, nSkipEnts, pForeignData, iForeignData, pNameTag, phitLast, iCaller);
    }

};
В каком хуке это делаешь?
 
Начинающий
Статус
Оффлайн
Регистрация
2 Авг 2018
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Последнее редактирование:
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хукаю в EndSceen, VMTHook

C++:
HRESULT WINAPI myEndSceen(LPDIRECT3DDEVICE9 m_pDevice)
{
    Hack();
    return pEndSceen(m_pDevice);
}
Поэтому и крашит. Нужно юзать игровую функцию и хукать её. Про неё было тут написано.
 
Сверху Снизу