What's new

Closed PointBlank PH Latest Class (For Gamehäçkers)

Status
Not open for further replies.

zNova

Addict
Joined
Apr 16, 2018
Posts
69
Reaction
10
Points
81
Reversed with Reclass by KN4CK3R
C++:
struct i3Color
{
    BYTE R;
    BYTE G;
    BYTE B;
    BYTE A;
};
struct GAMEINFO_CHARACTER
{
    char pad_0000[44]; //0x0000
    int32_t Idk; //0x002C
    char pad_0030[4]; //0x0030
    int32_t HP; //0x0034
    char pad_0038[16]; //0x0038
    int32_t curWeapSlot; //0x0048
    char pad_004C[72]; //0x004C
    int32_t CurWeapon; //0x0094
    char pad_0098[104]; //0x0098
    D3DXVECTOR3 Start; //0x0100
    D3DXVECTOR3 End; //0x010C
};

struct CTeam
{
    BYTE iTeam;
};

class BattleSlotContext
{
public:
#define PTR_SLOT 0x000175B4
    int getMySlotIdx()
    {
        return (int)(*reinterpret_cast<DWORD*>((DWORD)this + PTR_SLOT));
    }
    int GetMyCharaIndex()
    {
        CTeam* MyTeam = (CTeam*)((DWORD)this + PTR_SLOT);
        return MyTeam->iTeam;
    }

    BOOL isAlive(int iSlot) {
        if (this->getGameInfo_Chara(iSlot)->HP > 0)
            return true;
        return false;
    }
    
    GAMEINFO_CHARACTER* getGameInfo_Chara(int index) {
        return (GAMEINFO_CHARACTER*)(((DWORD)this + 0x740) + (index * 0x1668));
    }   
};

class i3InputKeyboard
{
public:

    char pad_0000[0x1A];
    int8_t A; //0x001A
    int8_t B; //0x001B
    int8_t C; //0x001C
    int8_t D; //0x001D
    int8_t E; //0x001E
    int8_t F; //0x001F
    int8_t G; //0x0020
    int8_t H; //0x0021
    int8_t I; //0x0022
    int8_t J; //0x0023
    int8_t K; //0x0024
    int8_t L; //0x0025
    int8_t M; //0x0026
    int8_t N; //0x0027
    int8_t P; //0x0028
    int8_t O; //0x0029
    int8_t Q; //0x002A
    int8_t R; //0x002B
    int8_t S; //0x002C
    int8_t T; //0x002D
    int8_t U; //0x002E
    int8_t V; //0x002F
    int8_t W; //0x0030
    int8_t X; //0x0031
    int8_t Y; //0x0032
    int8_t Z; //0x0033
    int8_t Escape; //0x0034
    int8_t Enter; //0x0035
    int8_t Ctrl; //0x0036
    int8_t N0000175B; //0x0037
    int8_t Shift; //0x0038
    int8_t N00001761; //0x0039
    int8_t Alt; //0x003A
    int8_t N00001762; //0x003B
    int8_t SpaceBar; //0x003C
    int8_t ArrowRight; //0x003D
    int8_t ArrowLeft; //0x003E
    int8_t ArrowUp; //0x003F
    int8_t ArrowDown; //0x0040
    int8_t PageUp; //0x0041
    int8_t PageDown; //0x0042
    int8_t Home; //0x0043
    int8_t End; //0x0044
    int8_t Delete; //0x0045
    int8_t Insert; //0x0046
    int8_t Tab; //0x0047
    int8_t NumLock; //0x0048
    int8_t CapsLock; //0x0049
    int8_t ScrollLock; //0x004A
    int8_t PauseBreak; //0x004B
    int8_t Unk1; //0x004C
    int8_t Unk2; //0x004D
    int8_t Unk3; //0x004E
    int8_t F1; //0x004F
    int8_t F2; //0x0050
    int8_t F3; //0x0051
    int8_t F4; //0x0052
    int8_t F5; //0x0053
    int8_t F6; //0x0054
    int8_t F7; //0x0055
    int8_t F8; //0x0056
    int8_t F9; //0x0057
    int8_t F10; //0x0058
    int8_t F11; //0x0059
    int8_t F12; //0x005A
    int8_t NumPad0; //0x005B
    int8_t NumPad1; //0x005C
    int8_t NumPad2; //0x005D
    int8_t NumPad3; //0x005E
    int8_t NumPad4; //0x005F
    int8_t NumPad5; //0x0060
    int8_t NumPad6; //0x0061
    int8_t NumPad7; //0x0062
    int8_t NumPad8; //0x0063
    int8_t NumPad9; //0x0064
    int8_t NumDivide; //0x0065
    int8_t NumMultiply; //0x0066
    int8_t NumMinus; //0x0067
    int8_t NumPlus; //0x0068
};

class i3InputMouse//Wag gamitin yung mousepos sa aimbot
{
public:
    char pad_0000[16]; //0x0000
    D3DXVECTOR3 MousePos; //0x0010
    int32_t MouseState; //0x001C
    char pad_0020[4]; //0x0020
    D3DXVECTOR3 MouseDelta; //0x0024
};


class CGameFrameWork
{
public:
    char pad_0000[44]; //0x0000
    class UIFramework* pUIFrame; //0x002C
    char pad_0030[348]; //0x0030
    class i3CollisionContext* pi3CollisionContext; //0x018C
    char pad_0190[76]; //0x0190
    class i3InputKeyboard* pKey; //0x01DC
    class i3InputMouse* pMouse; //0x01E0
};


class i3RenderContext
{
public:
    char pad_0000[2224]; //0x0000
    D3DXMATRIX ViewMatrix; //0x08B0
    D3DXMATRIX ProjectionMatrix; //0x08F0
    D3DXMATRIX InverseMatrix; //0x0930
    D3DXMATRIX WorldMatrix; //0x0970
    char pad_09B0[17828]; //0x09B0
    int32_t Width; //0x4F54
    int32_t Height; //0x4F58
    char pad_4F5C[256]; //0x4F5C
    LPDIRECT3DDEVICE9 pDevice; //0x505C
    char pad_5060[16]; //0x5060
    int32_t HWND; //0x5070
    char pad_5074[236]; //0x5074
    D3DXMATRIX TextureMatrix; //0x5160
    

    BOOL WorldToScreen(LPDIRECT3DDEVICE9 pDevice,D3DVECTOR Player, D3DVECTOR& Out)
    {
        D3DXVECTOR3 PlayerPos(Player.x, Player.y, Player.z);
        D3DXVECTOR3 vScreen;
        D3DVIEWPORT9 Viewport;
        pDevice->GetViewport(&Viewport);
        Viewport.X = Viewport.Y = 0;
        Viewport.MinZ = 0;
        Viewport.MaxZ = 1;

        D3DXVec3Project(&vScreen, &PlayerPos, &Viewport, &this->ProjectionMatrix, &this->ViewMatrix, &this->WorldMatrix);
        if (vScreen.z < 1.0f && vScreen.x > 0.0f && vScreen.y > 0.0f && vScreen.x < Viewport.Width && vScreen.y < Viewport.Height)
        {
            Out.x = vScreen.x;
            Out.y = vScreen.y;
            Out.z = vScreen.z;
            return true;
        }
        return false;
    }
}; //Size: 0x09B0

DWORD GetCurHpAddr = NULL;//Variable na nagpaparse nung address galing sa FindPattern
class CGameCharaManager : public i3GameObj
{
public:
    char pad_0000[44]; //0x0000
     CWeaponBase* pWeaponBase; //0x002C
    char pad_0030[56]; //0x0030
    i3AttrSet* pAttrSet; //0x0068
    i3MaterialAttr* pMaterial; //0x006C
    i3AlphaBlendAttr* pAlpha; //0x0070
    char pad_0074[92]; //0x0074
    i3SceneObject* pObject; //0x00D0
    
    static CGameCharaManager* g_pPlayer()
    {
        DWORD pPlayer = ((DWORD)NoClass + 0x9590);
        auto Func = (CGameCharaManager*)(*(DWORD*)(pPlayer));
        return Func;
    }

    CGameCharaManager* GetEnemy(int i)
    {
        auto uBase = *reinterpret_cast<DWORD*>((DWORD)this + 0x14 + (0x114 * i));
        return (CGameCharaManager*)uBase;
    }
    bool isAlive()
    {
        if (this->getCurHP() > 0)
            return true;
        else
            return false;
    }
    int getCurHP(void)
    {
        typedef int(__thiscall * tgetCurHP)(CGameCharaManager*);
        tgetCurHP getCurHP = (tgetCurHP)(GetCurHpAddr);
        return getCurHP(this);
    }
};

class i3Viewer
{
public:
    char pad_0000[12]; //0x0000
    class i3PhysixContext* pPhysix; //0x000C
    class i3RenderContext* pRender; //0x0010
}; //Size: 0x0014

DWORD BattleSlotCtx = NULL;//BattleSlotContext ito yung pinaka class instance ko sa lahat para maaccsess yung subclass
class GameClass
{
public:
    class BattleSlotContext* pBattle; //0x0000
    char pad_0004[1332]; //0x0004
    class CGameFrameWork* pFrameWork; //0x0538
    class i3Viewer* pViewer; //0x053C
    char pad_0540[4]; //0x0540
    class CGameCharaManager* pCharaMgr; //0x0544
    static GameClass* Inst()
    {
        return (GameClass*)(BattleSlotCtx);//AOB : 8B 0D ?? ?? ?? ?? 8B 91 ?? ?? ?? ?? - BattleSlotContext(2nd result)
    }
}; //Size: 0x0594
 
help me
how can i update the structure GAMEINFO_CHARACTER any track?

1590376086329.png
 

Attachments

Status
Not open for further replies.
Back
Top