Получение количества патронов в рожке врага

Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дело было давно, но я этого не ожидал,)

C++:
int GetAmmoCount(IActor*Player)
{
    CItem* pItem = Player->GetCurrentItem(0);
    if (!pItem)return 0;

    IWeapon* pGetIWeapon = pItem->GetIWeapon();
    if (!pGetIWeapon)return 0;

    SParamAmmo* pParamAmmo = pGetIWeapon->pWeaponGeneral->pParamAmmo();
    if (!pParamAmmo)return 0;

    return pParamAmmo->AmmoCount;
}
Теперь пройдемся по классам.
Player - Actor врага.

C++:
class IActor
{
public:
    CItem* GetCurrentItem(int arg)
    {
        typedef CItem*(__thiscall* pFunc)(PVOID, int);
        return vFun_Call<pFunc>(this, 56)(this, arg);
    }
};

class CItem :
    public IItem,
    public IWeapon
{
public:

};

class IWeapon
{
public:
.

.

.

virtual void function78(); //
virtual IWeapon* GetIWeapon(); //
};



class IWeapon
{
public:
CWeaponGeneral* pWeaponGeneral; //0x0004

};



class CWeaponGeneral
{
public:

    SParamAmmo* pParamAmmo()
    {
        return (SParamAmmo*)*(DWORD*)((DWORD)this + 0x0034);
    }
};



class SParamAmmo
{
public:
    char pad_0x0000[0x4]; //0x0000
    __int32 AmmoCount; //0x0004

};
Можно получить количество патронов у джагернаута.
 
Сверху Снизу