Начинающий
- Статус
- Оффлайн
- Регистрация
- 16 Сен 2024
- Сообщения
- 44
- Реакции
- 5
хапайте
под базу парадайса и тд, вызывать в create move перед концом вот так
Код:
//variables.h
C_ADD_VARIABLE(bool, bDoubleTap, false);
Код:
//sdk.h
class C_CSPlayerPawn;
class C_CSWeaponBase;
class C_CSWeaponBaseGun;
class CCSWeaponBaseVData;
class CCSPlayerController;
class C_CSPlayerPawn;
inline ViewMatrix_t ViewMatrix = ViewMatrix_t();
inline Vector_t CameraPosition = Vector_t();
inline CCSPlayerController* LocalController = nullptr;
inline C_CSPlayerPawn* LocalPawn = nullptr;
inline CUserCmd* Cmd = nullptr;
inline bool Alive = 0;
inline CCSPlayer_WeaponServices* WeaponServices = nullptr;
inline C_CSWeaponBaseGun* ActiveWeapon = nullptr;
inline float WepAccuracy = 0;
inline CCSWeaponBaseVData* ActiveWeaponVData = nullptr;
inline float Latency = 0.f;
inline float EngLatency = 0.f;
inline float ClientLerp = 0.f;
inline int prediction_tick = 0;
static inline float WepRange;
static inline float WepRangeMod;
static inline float WepDamage;
inline CUserCmd* UserCmd = nullptr;
inline CBaseUserCmdPB* BaseCmd = nullptr;
inline C_CSWeaponBase* WeaponBase = nullptr;
inline C_CSWeaponBaseGun* WeaponBaseGun = nullptr;
inline CCSWeaponBaseVData* WeaponBaseVData = nullptr;
static inline float WepPen;
static inline float WepArmorRatio;
static inline float WepHeadShotMulti;
inline Vector_t EyePos = Vector_t();
inline int ItemDefIdx;
C++:
//hooks.cpp
void RunDoubleTap() {
if (!C_GET(bool, Vars.bDoubleTap))
return;
if (!SDK::Cmd || !SDK::Cmd->csgoUserCmd.inputHistoryField.pRep || !SDK::ActiveWeapon)
return;
if (SDK::Cmd->nButtons.nValue & IN_ATTACK) {
for (int i = 0; i < SDK::Cmd->csgoUserCmd.inputHistoryField.pRep->nAllocatedSize; i++) {
CCSGOInputHistoryEntryPB* pInputEntry = SDK::Cmd->GetInputHistoryEntry(i);
if (pInputEntry == nullptr)
continue;
pInputEntry->setPlayerTickCount(0);
pInputEntry->setRenderTickCount(0);
}
}
float flWatTickOffset{};
float flTemp = SDK::ActiveWeapon->GetNextPrimaryAttackTickRatio() + modf(SDK::ActiveWeapon->GetWatTickOffset(), &flWatTickOffset);
int iPlayerTick = flWatTickOffset + SDK::ActiveWeapon->GetNextPrimaryAttackTick();
if (flTemp >= 1.f)
++iPlayerTick;
else if (flTemp < 0.f)
--iPlayerTick;
static int iShotCount{};
if (SDK::Cmd->csgoUserCmd.nAttack1StartHistoryIndex > -1) {
iShotCount++;
}
for (int i = 0; i < SDK::Cmd->csgoUserCmd.inputHistoryField.pRep->nAllocatedSize; i++) {
CCSGOInputHistoryEntryPB* pInputHistoryEntry = SDK::Cmd->GetInputHistoryEntry(i);
if (!pInputHistoryEntry)
continue;
pInputHistoryEntry->setPlayerTickCount(iPlayerTick - 1);
pInputHistoryEntry->setPlayerTickFraction(0.f);
}
SDK::Cmd->csgoUserCmd.nAttack1StartHistoryIndex = -1;
SDK::Cmd->csgoUserCmd.CheckAndSetBits(CSGOUSERCMD_BITS_ATTACK1START);
}
C++:
//hooks.cpp
RunDoubleTap();
Последнее редактирование: