From 882d7afd893d507303f84ba1afc2b8e5ee8869a9 Mon Sep 17 00:00:00 2001 From: FileEX Date: Fri, 14 Mar 2025 13:23:40 +0100 Subject: [PATCH] Fix bug --- Client/game_sa/TaskJumpFallSA.h | 4 +++- Client/mods/deathmatch/logic/CClientPed.cpp | 4 ++++ Client/sdk/game/TaskJumpFall.h | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Client/game_sa/TaskJumpFallSA.h b/Client/game_sa/TaskJumpFallSA.h index d28b19816db..bc23df89e31 100644 --- a/Client/game_sa/TaskJumpFallSA.h +++ b/Client/game_sa/TaskJumpFallSA.h @@ -59,7 +59,7 @@ class CTaskSimpleClimbSA : public virtual CTaskSimpleSA, public virtual CTaskSim class CTaskSimpleJetPackSAInterface : public CTaskSimpleSAInterface { public: - unsigned char m_bIsFinished; + bool m_bIsFinished; unsigned char m_bAddedIdleAnim; unsigned char m_bAnimsReferenced; unsigned char m_bAttackButtonPressed; @@ -100,4 +100,6 @@ class CTaskSimpleJetPackSA : public virtual CTaskSimpleSA, public virtual CTaskS public: CTaskSimpleJetPackSA(){}; CTaskSimpleJetPackSA(const CVector* pVecTargetPos, float fCruiseHeight = 10.0f, int nHoverTime = 0); + + bool IsFinished() const override { return static_cast(GetInterface())->m_bIsFinished; } }; diff --git a/Client/mods/deathmatch/logic/CClientPed.cpp b/Client/mods/deathmatch/logic/CClientPed.cpp index 147fb3ed5d5..5904e44d4b3 100644 --- a/Client/mods/deathmatch/logic/CClientPed.cpp +++ b/Client/mods/deathmatch/logic/CClientPed.cpp @@ -4602,6 +4602,10 @@ bool CClientPed::HasJetPack() CTask* pPrimaryTask = m_pTaskManager->GetSimplestActiveTask(); if (pPrimaryTask && pPrimaryTask->GetTaskType() == TASK_SIMPLE_JETPACK) { + auto* jetpackTask = dynamic_cast(pPrimaryTask); + if (jetpackTask && jetpackTask->IsFinished()) + return false; + return true; } return false; diff --git a/Client/sdk/game/TaskJumpFall.h b/Client/sdk/game/TaskJumpFall.h index b0cc8e146b8..d7e244e4ff6 100644 --- a/Client/sdk/game/TaskJumpFall.h +++ b/Client/sdk/game/TaskJumpFall.h @@ -23,4 +23,6 @@ class CTaskSimpleJetPack : public virtual CTaskSimple { public: virtual ~CTaskSimpleJetPack(){}; + + virtual bool IsFinished() const = 0; };