What's new
  • Welcome to PHCorner Forums. Take a moment to Sign up and gain unlimited access and extra privileges that guests are not entitled to, such as: All that and more! Registration is quick, simple and absolutely free. Join our community today!

C and C++ PointBlank PH Latest Class (For Gamehäçkers)

zNova

Journeyman
Established
Joined
Apr 16, 2018
Messages
67
Reaction score
4
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
 
Top