Energy Reload
-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дело было давно, но я этого не ожидал,)
Теперь пройдемся по классам.
Player - Actor врага.
Можно получить количество патронов у джагернаута.
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
};