upd ryujin
Update CD Reduce Update NoClip Add Show Chest Add Auto Cook
This commit is contained in:
parent
ab5b730e51
commit
4cab1e0d49
@ -48,6 +48,8 @@
|
|||||||
<ClInclude Include="src\user\cheat\visuals\CameraZoom.h" />
|
<ClInclude Include="src\user\cheat\visuals\CameraZoom.h" />
|
||||||
<ClInclude Include="src\user\cheat\visuals\FPSUnlock.h" />
|
<ClInclude Include="src\user\cheat\visuals\FPSUnlock.h" />
|
||||||
<ClInclude Include="src\user\cheat\visuals\NoFog.h" />
|
<ClInclude Include="src\user\cheat\visuals\NoFog.h" />
|
||||||
|
<ClInclude Include="src\user\cheat\visuals\ShowChestIndicator.h" />
|
||||||
|
<ClInclude Include="src\user\cheat\world\AutoCook.h" />
|
||||||
<ClInclude Include="src\user\cheat\world\AutoFish.h" />
|
<ClInclude Include="src\user\cheat\world\AutoFish.h" />
|
||||||
<ClInclude Include="src\user\cheat\world\ElementalSight.h" />
|
<ClInclude Include="src\user\cheat\world\ElementalSight.h" />
|
||||||
<ClInclude Include="src\user\cheat\game\AdvancedFilter.h" />
|
<ClInclude Include="src\user\cheat\game\AdvancedFilter.h" />
|
||||||
@ -151,6 +153,8 @@
|
|||||||
<ClCompile Include="src\user\cheat\visuals\CameraZoom.cpp" />
|
<ClCompile Include="src\user\cheat\visuals\CameraZoom.cpp" />
|
||||||
<ClCompile Include="src\user\cheat\visuals\FPSUnlock.cpp" />
|
<ClCompile Include="src\user\cheat\visuals\FPSUnlock.cpp" />
|
||||||
<ClCompile Include="src\user\cheat\visuals\NoFog.cpp" />
|
<ClCompile Include="src\user\cheat\visuals\NoFog.cpp" />
|
||||||
|
<ClCompile Include="src\user\cheat\visuals\ShowChestIndicator.cpp" />
|
||||||
|
<ClCompile Include="src\user\cheat\world\AutoCook.cpp" />
|
||||||
<ClCompile Include="src\user\cheat\world\AutoFish.cpp" />
|
<ClCompile Include="src\user\cheat\world\AutoFish.cpp" />
|
||||||
<ClCompile Include="src\user\cheat\world\ElementalSight.cpp" />
|
<ClCompile Include="src\user\cheat\world\ElementalSight.cpp" />
|
||||||
<ClCompile Include="src\user\cheat\game\Chest.cpp" />
|
<ClCompile Include="src\user\cheat\game\Chest.cpp" />
|
||||||
|
@ -216,6 +216,12 @@
|
|||||||
<ClInclude Include="src\user\cheat\misc\sniffer\MessageManager.h">
|
<ClInclude Include="src\user\cheat\misc\sniffer\MessageManager.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\user\cheat\visuals\ShowChestIndicator.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\user\cheat\world\AutoCook.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Font Include="res\Ruda-Bold.ttf" />
|
<Font Include="res\Ruda-Bold.ttf" />
|
||||||
@ -390,6 +396,12 @@
|
|||||||
<ClCompile Include="src\user\cheat\misc\sniffer\MessageManager.cpp">
|
<ClCompile Include="src\user\cheat\misc\sniffer\MessageManager.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\user\cheat\visuals\ShowChestIndicator.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\user\cheat\world\AutoCook.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="res\res.rc">
|
<ResourceCompile Include="res\res.rc">
|
||||||
|
@ -12,7 +12,7 @@ DO_APP_FUNC(0x013815E0, void, InLevelMapPageContext_OnMarkClicked, (InLevelMapPa
|
|||||||
DO_APP_FUNC(0x01390800, void, InLevelMapPageContext_OnMapClicked, (InLevelMapPageContext* __this, Vector2 screenPos, MethodInfo* method));
|
DO_APP_FUNC(0x01390800, void, InLevelMapPageContext_OnMapClicked, (InLevelMapPageContext* __this, Vector2 screenPos, MethodInfo* method));
|
||||||
DO_APP_FUNC(0x0158AD40, bool, MapModule_IsAreaUnlock, (MBHLOBDPKEC* __this, uint32_t sceneID, uint32_t areaID, MethodInfo* method));
|
DO_APP_FUNC(0x0158AD40, bool, MapModule_IsAreaUnlock, (MBHLOBDPKEC* __this, uint32_t sceneID, uint32_t areaID, MethodInfo* method));
|
||||||
DO_APP_FUNC(0x05036C50, uint16_t, SimpleSafeUInt16_get_Value, (void* __this, LAFKDOLNGNA rawValue, MethodInfo* method));
|
DO_APP_FUNC(0x05036C50, uint16_t, SimpleSafeUInt16_get_Value, (void* __this, LAFKDOLNGNA rawValue, MethodInfo* method));
|
||||||
|
DO_APP_FUNC(0x03427B90, uint32_t, SimpleSafeUInt32_get_Value, (void* __this, app::SimpleSafeUInt32 rawValue, MethodInfo* method));
|
||||||
|
|
||||||
// Map utility
|
// Map utility
|
||||||
DO_APP_FUNC(0x04339D30, Rect, MonoInLevelMapPage_get_mapRect, (MonoInLevelMapPage* __this, MethodInfo* method));
|
DO_APP_FUNC(0x04339D30, Rect, MonoInLevelMapPage_get_mapRect, (MonoInLevelMapPage* __this, MethodInfo* method));
|
||||||
@ -42,9 +42,10 @@ DO_APP_FUNC(0x015E1C90, bool, Miscs_CheckTargetAttackable, (void* __this, BaseEn
|
|||||||
// Cooldown cheats
|
// Cooldown cheats
|
||||||
DO_APP_FUNC(0x024D5450, bool, HumanoidMoveFSM_CheckSprintCooldown, (/* HumanoidMoveFSM */void* __this, MethodInfo* method));
|
DO_APP_FUNC(0x024D5450, bool, HumanoidMoveFSM_CheckSprintCooldown, (/* HumanoidMoveFSM */void* __this, MethodInfo* method));
|
||||||
DO_APP_FUNC(0x02548810, bool, LCAvatarCombat_IsEnergyMax, (void* __this, MethodInfo* method));
|
DO_APP_FUNC(0x02548810, bool, LCAvatarCombat_IsEnergyMax, (void* __this, MethodInfo* method));
|
||||||
DO_APP_FUNC(0x02546C10, bool, LCAvatarCombat_IsSkillInCD_1, (void* __this, void* skillInfo, MethodInfo* method));
|
|
||||||
DO_APP_FUNC(0x0254A170, void, LCAvatarCombat_ChangeEnergy_1, (LCAvatarCombat* __this, ElementType__Enum type, float value, DataPropOp__Enum state, MethodInfo* method));
|
DO_APP_FUNC(0x0254A170, void, LCAvatarCombat_ChangeEnergy_1, (LCAvatarCombat* __this, ElementType__Enum type, float value, DataPropOp__Enum state, MethodInfo* method));
|
||||||
DO_APP_FUNC(0x0254D660, bool, LCAvatarCombat_OnSkillStart, (LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method));
|
DO_APP_FUNC(0x0254D660, bool, LCAvatarCombat_OnSkillStart, (LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method));
|
||||||
|
DO_APP_FUNC(0x02546C10, bool, LCAvatarCombat_IsSkillInCD_1, (LCAvatarCombat* __this, LCAvatarCombat_OMIIMOJOHIP* skillInfo, MethodInfo* method));
|
||||||
|
|
||||||
DO_APP_FUNC(0x0112A110, void, ActorAbilityPlugin_AddDynamicFloatWithRange, (void* __this, String* key, float value, float min, float max, bool forceDoAtRemote, MethodInfo* method));
|
DO_APP_FUNC(0x0112A110, void, ActorAbilityPlugin_AddDynamicFloatWithRange, (void* __this, String* key, float value, float min, float max, bool forceDoAtRemote, MethodInfo* method));
|
||||||
|
|
||||||
// Rapid fire
|
// Rapid fire
|
||||||
@ -123,9 +124,20 @@ DO_APP_FUNC(0x036B8AA0, void, FishingModule_OnExitFishingRsp, (void* __this, voi
|
|||||||
DO_APP_FUNC(0x036BB0B0, void, FishingModule_onFishChosenNotify, (void* __this, void* notify, MethodInfo* method));
|
DO_APP_FUNC(0x036BB0B0, void, FishingModule_onFishChosenNotify, (void* __this, void* notify, MethodInfo* method));
|
||||||
|
|
||||||
|
|
||||||
// Camera
|
// Visuals
|
||||||
DO_APP_FUNC(0x0289DE30, void, SCameraModuleInitialize_SetWarningLocateRatio, (SCameraModuleInitialize* __this, double deltaTime, CameraShareData* data, MethodInfo* method));
|
DO_APP_FUNC(0x0289DE30, void, SCameraModuleInitialize_SetWarningLocateRatio, (SCameraModuleInitialize* __this, double deltaTime, CameraShareData* data, MethodInfo* method));
|
||||||
|
|
||||||
|
// Chest Indicator | RyujinZX#6666
|
||||||
|
DO_APP_FUNC(0x0487E1D0, bool, LCIndicatorPlugin_DoCheck, (LCIndicatorPlugin* __this, MethodInfo* method));
|
||||||
|
DO_APP_FUNC(0x0487F680, void, LCIndicatorPlugin_ShowIcon, (LCIndicatorPlugin* __this, MethodInfo* method));
|
||||||
|
DO_APP_FUNC(0x0487CBF0, void, LCIndicatorPlugin_HideIcon, (LCIndicatorPlugin* __this, MethodInfo* method));
|
||||||
|
|
||||||
|
// Auto Cooking | RyujinZX#6666
|
||||||
|
DO_APP_FUNC(0x01B91500, void, PlayerModule_RequestPlayerCook, (PlayerModule* __this, uint32_t recipeId, uint32_t avatarId, uint32_t qteQuality, uint32_t count, MethodInfo* method));
|
||||||
|
DO_APP_FUNC(0x01B9E8F0, void, PlayerModule_OnPlayerCookRsp, (PlayerModule* __this, PlayerCookRsp* rsp, MethodInfo* method));
|
||||||
|
DO_APP_FUNC(0x030E1000, void, CookingQtePageContext_UpdateProficiency, (CookingQtePageContext* __this, MethodInfo* method));
|
||||||
|
DO_APP_FUNC(0x03AA2920, uint32_t, CookRecipeExcelConfig_get_maxProficiency, (CookRecipeExcelConfig* __this, MethodInfo* method));
|
||||||
|
|
||||||
|
|
||||||
// Utility
|
// Utility
|
||||||
DO_APP_FUNC(0x015DD910, float, Miscs_CalcCurrentGroundWaterHeight, (void* __this, float x, float z, MethodInfo* method));
|
DO_APP_FUNC(0x015DD910, float, Miscs_CalcCurrentGroundWaterHeight, (void* __this, float x, float z, MethodInfo* method));
|
||||||
@ -146,6 +158,7 @@ DO_APP_FUNC(0x014C88B0, void, ActorUtils_SyncAvatarMotion, (void* __this, int
|
|||||||
DO_APP_FUNC(0x02ECCFE0, Notify, Notify_CreateNotify_1, (void* __this, AJAPIFPNFKP__Enum type, Object* body, MethodInfo* method));
|
DO_APP_FUNC(0x02ECCFE0, Notify, Notify_CreateNotify_1, (void* __this, AJAPIFPNFKP__Enum type, Object* body, MethodInfo* method));
|
||||||
|
|
||||||
DO_APP_FUNC(0x04D3A960, float, SafeFloat_GetValue, (void* __this, SafeFloat safeFloat, MethodInfo* method));
|
DO_APP_FUNC(0x04D3A960, float, SafeFloat_GetValue, (void* __this, SafeFloat safeFloat, MethodInfo* method));
|
||||||
|
DO_APP_FUNC(0x04D3A770, SafeFloat, SafeFloat_SetValue, (void* __this, float value, MethodInfo* method));
|
||||||
|
|
||||||
DO_APP_FUNC(0x01645B20, void, Entity_SetPosition, (BaseEntity* __this, Vector3 position, bool someBool, MethodInfo* method));
|
DO_APP_FUNC(0x01645B20, void, Entity_SetPosition, (BaseEntity* __this, Vector3 position, bool someBool, MethodInfo* method));
|
||||||
DO_APP_FUNC(0x05102970, LCBaseCombat*, BaseEntity_GetBaseCombat, (BaseEntity* __this, MethodInfo* method));
|
DO_APP_FUNC(0x05102970, LCBaseCombat*, BaseEntity_GetBaseCombat, (BaseEntity* __this, MethodInfo* method));
|
||||||
@ -176,7 +189,9 @@ DO_APP_FUNC(0x01560F70, List_1_MoleMole_BaseEntity_*, EntityManager_GetEntities,
|
|||||||
|
|
||||||
DO_APP_FUNC(0x05D07B50, Bounds, Utils_1_GetBounds, (void* __this, GameObject* go, MethodInfo* method));
|
DO_APP_FUNC(0x05D07B50, Bounds, Utils_1_GetBounds, (void* __this, GameObject* go, MethodInfo* method));
|
||||||
|
|
||||||
DO_APP_FUNC(0x024E0BA0, void, HumanoidMoveFSM_LateTick, (void* __this, float deltaTime, MethodInfo* method));
|
// Modify | RyujinZX#6666
|
||||||
|
DO_APP_FUNC(0x024E0BA0, void, HumanoidMoveFSM_LateTick, (app::HumanoidMoveFSM* __this, float deltaTime, MethodInfo* method));
|
||||||
|
|
||||||
DO_APP_FUNC(0x03511760, bool, ScenePropManager_GetTreeTypeByPattern, (ScenePropManager* __this, String* pattern, ECGLPBEEEAA__Enum* treeType, MethodInfo* method));
|
DO_APP_FUNC(0x03511760, bool, ScenePropManager_GetTreeTypeByPattern, (ScenePropManager* __this, String* pattern, ECGLPBEEEAA__Enum* treeType, MethodInfo* method));
|
||||||
|
|
||||||
DO_APP_FUNC(0x01997D90, void, NetworkManager_1_RequestHitTreeDropNotify, (NetworkManager_1* __this, Vector3 position, Vector3 hitPostion, ECGLPBEEEAA__Enum treeType, MethodInfo* method));
|
DO_APP_FUNC(0x01997D90, void, NetworkManager_1_RequestHitTreeDropNotify, (NetworkManager_1* __this, Vector3 position, Vector3 hitPostion, ECGLPBEEEAA__Enum treeType, MethodInfo* method));
|
||||||
@ -184,7 +199,7 @@ DO_APP_FUNC(0x0332CD30, uint64_t, GetTimestamp, (void* __this, MethodInfo* metho
|
|||||||
|
|
||||||
DO_APP_FUNC(0x017F43F0, bool, LoadingManager_IsLoaded, (LoadingManager* __this, MethodInfo* method));
|
DO_APP_FUNC(0x017F43F0, bool, LoadingManager_IsLoaded, (LoadingManager* __this, MethodInfo* method));
|
||||||
|
|
||||||
// Thanks to @RyujinZX
|
// Thanks to | RyujinZX
|
||||||
DO_APP_FUNC(0x019C5D50, void, LCAbilityElement_ReduceModifierDurability, (LCAbilityElement* __this, int32_t modifierDurabilityIndex, float reduceDurability, Nullable_1_Single_ deltaTime, MethodInfo* method));
|
DO_APP_FUNC(0x019C5D50, void, LCAbilityElement_ReduceModifierDurability, (LCAbilityElement* __this, int32_t modifierDurabilityIndex, float reduceDurability, Nullable_1_Single_ deltaTime, MethodInfo* method));
|
||||||
|
|
||||||
DO_APP_FUNC(0x035D8B70, BaseEntity*, GadgetEntity_GetOwnerEntity, (GadgetEntity* __this, MethodInfo* method));
|
DO_APP_FUNC(0x035D8B70, BaseEntity*, GadgetEntity_GetOwnerEntity, (GadgetEntity* __this, MethodInfo* method));
|
||||||
|
@ -10435,6 +10435,37 @@ namespace app {
|
|||||||
struct LCCharacterCombat__Fields fields;
|
struct LCCharacterCombat__Fields fields;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct __declspec(align(8)) LCAvatarCombat_OMIIMOJOHIP__Fields {
|
||||||
|
uint32_t skillID;
|
||||||
|
struct AvatarSkillExcelConfig* config;
|
||||||
|
struct SafeFloat cdTimer;
|
||||||
|
struct SafeFloat currChargeCount;
|
||||||
|
struct SafeFloat costStamina;
|
||||||
|
bool canHold;
|
||||||
|
bool canTrigger;
|
||||||
|
bool useInAir;
|
||||||
|
struct HashSet_1_System_Int32_* canUseSkillStateWhiteList;
|
||||||
|
int32_t needMonitor;
|
||||||
|
bool isLocked;
|
||||||
|
bool ignoreCDMinusRatio;
|
||||||
|
bool forceCanDoSkill;
|
||||||
|
struct SafeFloat NFNMNLKPNHD;
|
||||||
|
struct SafeFloat EBIABBHAFFD;
|
||||||
|
struct SafeFloat HPDKMHFJFMI;
|
||||||
|
struct SafeFloat IBKPGNDMDBJ;
|
||||||
|
struct SafeFloat GBGBNALDDFM;
|
||||||
|
int32_t skillIndex;
|
||||||
|
int32_t prority;
|
||||||
|
float _costElem_k__BackingField;
|
||||||
|
int32_t _maxChargeCount_k__BackingField;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct LCAvatarCombat_OMIIMOJOHIP {
|
||||||
|
struct LCAvatarCombat_OMIIMOJOHIP__Class* klass;
|
||||||
|
MonitorData* monitor;
|
||||||
|
struct LCAvatarCombat_OMIIMOJOHIP__Fields fields;
|
||||||
|
};
|
||||||
|
|
||||||
struct LCAvatarCombat__Fields {
|
struct LCAvatarCombat__Fields {
|
||||||
struct LCCharacterCombat__Fields _;
|
struct LCCharacterCombat__Fields _;
|
||||||
struct EntityTimer* _targetAtteTimer;
|
struct EntityTimer* _targetAtteTimer;
|
||||||
@ -10517,6 +10548,76 @@ namespace app {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
struct HumanoidMoveFSM__Fields {
|
||||||
|
struct BaseComponentPlugin__Fields _;
|
||||||
|
struct HumanoidMoveFSMBaseMoveState* _curState;
|
||||||
|
int32_t fallOnGroundFirstFrame;
|
||||||
|
struct Dictionary_2_MoleMole_HumanoidMoveFSM_JJLCCKKCHPD_MoleMole_HumanoidMoveFSMBaseMoveState_* stateMapInfo;
|
||||||
|
struct VCHumanoidMoveData* _moveData;
|
||||||
|
struct VCHumanoidMoveConfig* _moveConfig;
|
||||||
|
struct VCHumanoidMove* _ownerMove;
|
||||||
|
struct Animator* _animator;
|
||||||
|
struct Rigidbody* _rigidbody;
|
||||||
|
struct AnimatorController* _animatorController;
|
||||||
|
void* OnMoveUpdateCallback;
|
||||||
|
void* OnAirUpdateCallback;
|
||||||
|
bool _initSyncWithCurrentTask;
|
||||||
|
bool _behaviourSet;
|
||||||
|
float _sendCombatNotifyTime;
|
||||||
|
bool enterSprintBS;
|
||||||
|
bool _positionRotationChanged_k__BackingField;
|
||||||
|
struct Transform* _transform;
|
||||||
|
struct Vector3 lateTickStartPosition;
|
||||||
|
struct Quaternion lateTickStartRotation;
|
||||||
|
int32_t _layerMaskScene;
|
||||||
|
int32_t _layerMaskDynamicBarrier;
|
||||||
|
int32_t layerMaskDynamicBarrierCheckAuthority;
|
||||||
|
bool ignoreOverallMoveWallProtectionCurrentFrame;
|
||||||
|
bool stopMoveWhenGoupstairs;
|
||||||
|
bool lastStopMoveWhenGoupstairs;
|
||||||
|
float climbGlobalRecovery;
|
||||||
|
bool autoGoUpstair;
|
||||||
|
bool forceDoNotSyncWhenReset;
|
||||||
|
float inSprintTime;
|
||||||
|
int32_t _lastCurrentStateHash;
|
||||||
|
int32_t _lastNextStateHash;
|
||||||
|
bool _firstLatetick;
|
||||||
|
bool _lastInForbiddenToggleMoveState;
|
||||||
|
bool _disableMotion4hiUpdateCurrentFrame;
|
||||||
|
int32_t _flyStateHash;
|
||||||
|
struct VCMoveIKController* _ikComp;
|
||||||
|
struct Transform* _lCalf;
|
||||||
|
struct Transform* _rCalf;
|
||||||
|
void* _weaponStandbyIKParams;
|
||||||
|
void* _normalStandbyIKParams;
|
||||||
|
void* _params;
|
||||||
|
float _lastSkirtBlendParam;
|
||||||
|
float _idealSkirtBlendParam;
|
||||||
|
float _lastIdealSkirtBlendParam;
|
||||||
|
float _lastSkirtWeight;
|
||||||
|
float _idealSkirtWeight;
|
||||||
|
float _lastSkirtPos;
|
||||||
|
float _idealSkirtPos;
|
||||||
|
void* _lastFrameAnimSpeedInfo;
|
||||||
|
void* _currentFrameAnimSpeedInfo;
|
||||||
|
bool _isInSprintCheckInterval;
|
||||||
|
bool _isInMuteSprintInterval;
|
||||||
|
float _timeAfterLastSprint;
|
||||||
|
uint32_t _lastFrameVelocityCheckBits;
|
||||||
|
bool _lastFrameVelocityCheckResult;
|
||||||
|
bool _remoteCheckLightCoreMove;
|
||||||
|
struct Vector3 _remoteCheckLightCoreMoveTarget;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct HumanoidMoveFSM {
|
||||||
|
struct HumanoidMoveFSM__Class* klass;
|
||||||
|
MonitorData* monitor;
|
||||||
|
struct HumanoidMoveFSM__Fields fields;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct SCameraModuleInitialize__VTable {
|
struct SCameraModuleInitialize__VTable {
|
||||||
VirtualInvokeData Equals;
|
VirtualInvokeData Equals;
|
||||||
VirtualInvokeData Finalize;
|
VirtualInvokeData Finalize;
|
||||||
@ -10829,6 +10930,161 @@ namespace app {
|
|||||||
struct Nullable_1_Double_ _overrideMinElevation;
|
struct Nullable_1_Double_ _overrideMinElevation;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct LCIndicatorPlugin__Fields {
|
||||||
|
struct BaseComponentPlugin__Fields _;
|
||||||
|
void* _timeCheckConditionKeys;
|
||||||
|
void* allConditions;
|
||||||
|
void* _owner;
|
||||||
|
bool unknow;
|
||||||
|
void* _levelGadget;
|
||||||
|
struct GadgetDataItem* _dataItem;
|
||||||
|
void* _tempLateData;
|
||||||
|
void* _configIndicator;
|
||||||
|
void* indicatorDominators;
|
||||||
|
bool _isIndicatorShow;
|
||||||
|
void* _checkTimer;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct LCIndicatorPlugin {
|
||||||
|
struct LCIndicatorPlugin__Class* klass;
|
||||||
|
MonitorData* monitor;
|
||||||
|
struct LCIndicatorPlugin__Fields fields;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PlayerCookRsp__Fields {
|
||||||
|
struct MessageBase_1__Fields _;
|
||||||
|
int32_t retcode_;
|
||||||
|
struct CookRecipeData_1* recipeData_;
|
||||||
|
void* itemList_;
|
||||||
|
uint32_t qteQuality_;
|
||||||
|
uint32_t cookCount_;
|
||||||
|
void* extralItemList_;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PlayerCookRsp {
|
||||||
|
struct PlayerCookRsp__Class* klass;
|
||||||
|
MonitorData* monitor;
|
||||||
|
struct PlayerCookRsp__Fields fields;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MonoCookingQTEPage__Fields {
|
||||||
|
struct MonoUIProxy__Fields _;
|
||||||
|
struct MonoElementSwitch* _elementSwitch;
|
||||||
|
struct Transform* _cookNeedRoot;
|
||||||
|
struct GameObject* _addInfo;
|
||||||
|
struct Text* _addDescText;
|
||||||
|
struct GameObject* _iconState;
|
||||||
|
struct Transform__Array* _foodPanel;
|
||||||
|
struct MonoUIContainer* _makeBtn;
|
||||||
|
struct MonoUIContainer* _autoMakeBtn;
|
||||||
|
struct MonoUIContainer* _returnBtn;
|
||||||
|
struct GameObject* _qtePanel;
|
||||||
|
struct GameObject* _manualQteRoot;
|
||||||
|
struct GameObject* _autoQteRoot;
|
||||||
|
struct MonoCookGotPanel* _cookGotPanel;
|
||||||
|
struct Button* _endBtn;
|
||||||
|
struct RectTransform* _goodAreaTrans;
|
||||||
|
struct SmoothMask* _goodAreaFill;
|
||||||
|
struct RectTransform* _perfectAreaTrans;
|
||||||
|
struct SmoothMask* _perfectAreaFill;
|
||||||
|
struct RectTransform* _pointerTrans;
|
||||||
|
float _qteTime;
|
||||||
|
float _autoQteTime;
|
||||||
|
float _starQteDelay;
|
||||||
|
struct GameObject* _selectNumberRoot;
|
||||||
|
struct GameObject* _grpProficiency;
|
||||||
|
struct Text* _proficiencyText;
|
||||||
|
struct MonoUIContainer* _replaceBtn;
|
||||||
|
struct MonoBagProxySlot* _curRecipeItemSlot;
|
||||||
|
struct Text* _curRecipeFoodNum;
|
||||||
|
struct GameObject* _grpResult;
|
||||||
|
struct GameObject* _bonusAdditionalInfoIcon;
|
||||||
|
struct Text* _additionalInfoText;
|
||||||
|
struct GameObject* _grpJoypadButtons;
|
||||||
|
struct GameObject* _bagSlotPrefab;
|
||||||
|
struct List_1_MoleMole_MonoItemSlot_* _cookNeedList;
|
||||||
|
struct MonoCookAvatarSelect* _avatarPanel;
|
||||||
|
struct MonoAvatarIcon* _avatarIcon;
|
||||||
|
struct Transform* _avatarIconRoot;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MonoCookingQTEPage {
|
||||||
|
struct MonoCookingQTEPage__Class* klass;
|
||||||
|
MonitorData* monitor;
|
||||||
|
struct MonoCookingQTEPage__Fields fields;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CookingQtePageContext__Fields {
|
||||||
|
struct BasePageContext__Fields _;
|
||||||
|
struct MonoCookingQTEPage* _pageMono;
|
||||||
|
uint32_t _recipeId;
|
||||||
|
uint32_t _avatarId;
|
||||||
|
float _goodRangeStart;
|
||||||
|
float _goodRangeEnd;
|
||||||
|
float _perfectRangeStart;
|
||||||
|
float _perfectRangeEnd;
|
||||||
|
bool _qteStart;
|
||||||
|
float _qteTime;
|
||||||
|
float _qteBonusRange;
|
||||||
|
bool _isAuto;
|
||||||
|
int32_t _foodKind;
|
||||||
|
uint32_t _oldProficiency;
|
||||||
|
uint32_t _newProficiency;
|
||||||
|
uint32_t _maxProficiency;
|
||||||
|
uint32_t _curProficiency;
|
||||||
|
bool _upProficiencyStart;
|
||||||
|
float _upProficiencyTime;
|
||||||
|
bool _focusOnNeedItem;
|
||||||
|
int32_t _needItemIndex;
|
||||||
|
bool canAutoCook;
|
||||||
|
struct List_1_MoleMole_SimpleItemStruct_* _itemGotList;
|
||||||
|
bool _isAvatarPanelOpen;
|
||||||
|
uint32_t _toSelectAvatarId;
|
||||||
|
int32_t _toSelectAvatarIndex;
|
||||||
|
struct List_1_System_UInt32_* _avatarList;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CookingQtePageContext {
|
||||||
|
struct CookingQtePageContext__Class* klass;
|
||||||
|
MonitorData* monitor;
|
||||||
|
struct CookingQtePageContext__Fields fields;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CookRecipeData_1__Fields {
|
||||||
|
struct MessageBase_1__Fields _;
|
||||||
|
uint32_t recipeId_;
|
||||||
|
uint32_t proficiency_;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CookRecipeData_1 {
|
||||||
|
struct CookRecipeData_1__Class* klass;
|
||||||
|
MonitorData* monitor;
|
||||||
|
struct CookRecipeData_1__Fields fields;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct __declspec(align(8)) CookRecipeExcelConfig__Fields {
|
||||||
|
struct SimpleSafeUInt32 idRawNum;
|
||||||
|
uint32_t _nameTextMapHash;
|
||||||
|
struct SimpleSafeUInt32 rankLevelRawNum;
|
||||||
|
struct String* _icon;
|
||||||
|
uint32_t _descTextMapHash;
|
||||||
|
struct UInt32__Array* _effectDesc;
|
||||||
|
int32_t _foodType;
|
||||||
|
int32_t _cookMethod;
|
||||||
|
bool _isDefaultUnlocked;
|
||||||
|
SimpleSafeUInt32 maxProficiencyRawNum;
|
||||||
|
struct IdCountConfig__Array* _qualityOutputVec;
|
||||||
|
struct IdCountConfig__Array* _inputVec;
|
||||||
|
struct String* _qteParam;
|
||||||
|
struct SimpleSafeUInt32__Array* _qteQualityWeightVec;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CookRecipeExcelConfig {
|
||||||
|
struct CookRecipeExcelConfig__Class* klass;
|
||||||
|
MonitorData* monitor;
|
||||||
|
struct CookRecipeExcelConfig__Fields fields;
|
||||||
|
};
|
||||||
|
|
||||||
#if !defined(_GHIDRA_) && !defined(_IDA_)
|
#if !defined(_GHIDRA_) && !defined(_IDA_)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -36,10 +36,12 @@
|
|||||||
#include <cheat/imap/InteractiveMap.h>
|
#include <cheat/imap/InteractiveMap.h>
|
||||||
|
|
||||||
#include <cheat/world/AutoFish.h>
|
#include <cheat/world/AutoFish.h>
|
||||||
|
#include <cheat/world/AutoCook.h>
|
||||||
|
|
||||||
#include <cheat/visuals/NoFog.h>
|
#include <cheat/visuals/NoFog.h>
|
||||||
#include <cheat/visuals/FPSUnlock.h>
|
#include <cheat/visuals/FPSUnlock.h>
|
||||||
#include <cheat/visuals/CameraZoom.h>
|
#include <cheat/visuals/CameraZoom.h>
|
||||||
|
#include <cheat/visuals/ShowChestIndicator.h>
|
||||||
|
|
||||||
#include "GenshinCM.h"
|
#include "GenshinCM.h"
|
||||||
|
|
||||||
@ -88,10 +90,12 @@ namespace cheat
|
|||||||
FEAT_INST(InteractiveMap),
|
FEAT_INST(InteractiveMap),
|
||||||
|
|
||||||
FEAT_INST(AutoFish),
|
FEAT_INST(AutoFish),
|
||||||
|
FEAT_INST(AutoCook),
|
||||||
|
|
||||||
FEAT_INST(NoFog),
|
FEAT_INST(NoFog),
|
||||||
FEAT_INST(FPSUnlock),
|
FEAT_INST(FPSUnlock),
|
||||||
FEAT_INST(CameraZoom)
|
FEAT_INST(CameraZoom),
|
||||||
|
FEAT_INST(ChestIndicator)
|
||||||
|
|
||||||
});
|
});
|
||||||
#undef FEAT_INST
|
#undef FEAT_INST
|
||||||
|
@ -9,6 +9,8 @@ namespace cheat::feature
|
|||||||
static bool HumanoidMoveFSM_CheckSprintCooldown_Hook(void* __this, MethodInfo* method);
|
static bool HumanoidMoveFSM_CheckSprintCooldown_Hook(void* __this, MethodInfo* method);
|
||||||
static bool LCAvatarCombat_IsEnergyMax_Hook(void* __this, MethodInfo* method);
|
static bool LCAvatarCombat_IsEnergyMax_Hook(void* __this, MethodInfo* method);
|
||||||
static bool LCAvatarCombat_OnSkillStart(app::LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method);
|
static bool LCAvatarCombat_OnSkillStart(app::LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method);
|
||||||
|
static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_OMIIMOJOHIP* skillInfo, MethodInfo* method);
|
||||||
|
|
||||||
static void ActorAbilityPlugin_AddDynamicFloatWithRange_Hook(void* __this, app::String* key, float value, float minValue, float maxValue,
|
static void ActorAbilityPlugin_AddDynamicFloatWithRange_Hook(void* __this, app::String* key, float value, float minValue, float maxValue,
|
||||||
bool forceDoAtRemote, MethodInfo* method);
|
bool forceDoAtRemote, MethodInfo* method);
|
||||||
|
|
||||||
@ -16,15 +18,13 @@ namespace cheat::feature
|
|||||||
|
|
||||||
NoCD::NoCD() : Feature(),
|
NoCD::NoCD() : Feature(),
|
||||||
NF(f_AbilityReduce, "Reduce Skill/Burst Cooldown", "NoCD", false),
|
NF(f_AbilityReduce, "Reduce Skill/Burst Cooldown", "NoCD", false),
|
||||||
NF(f_AbilityReduceValue, "Reduce skill CD value", "NoCD", 0.1f),
|
NF(f_TimerReduce, "Reduce Timer", "NoCD", 1.f),
|
||||||
|
|
||||||
NF(f_UtimateMaxEnergy, "Burst max energy", "NoCD", false),
|
NF(f_UtimateMaxEnergy, "Burst max energy", "NoCD", false),
|
||||||
NF(f_Sprint, "No Sprint Cooldown", "NoCD", false),
|
NF(f_Sprint, "No Sprint Cooldown", "NoCD", false),
|
||||||
NF(f_InstantBow, "Instant bow", "NoCD", false)
|
NF(f_InstantBow, "Instant bow", "NoCD", false)
|
||||||
|
|
||||||
{
|
{
|
||||||
HookManager::install(app::LCAvatarCombat_IsEnergyMax, LCAvatarCombat_IsEnergyMax_Hook);
|
HookManager::install(app::LCAvatarCombat_IsEnergyMax, LCAvatarCombat_IsEnergyMax_Hook);
|
||||||
HookManager::install(app::LCAvatarCombat_OnSkillStart, LCAvatarCombat_OnSkillStart);
|
HookManager::install(app::LCAvatarCombat_IsSkillInCD_1, LCAvatarCombat_IsSkillInCD_1);
|
||||||
|
|
||||||
HookManager::install(app::HumanoidMoveFSM_CheckSprintCooldown, HumanoidMoveFSM_CheckSprintCooldown_Hook);
|
HookManager::install(app::HumanoidMoveFSM_CheckSprintCooldown, HumanoidMoveFSM_CheckSprintCooldown_Hook);
|
||||||
HookManager::install(app::ActorAbilityPlugin_AddDynamicFloatWithRange, ActorAbilityPlugin_AddDynamicFloatWithRange_Hook);
|
HookManager::install(app::ActorAbilityPlugin_AddDynamicFloatWithRange, ActorAbilityPlugin_AddDynamicFloatWithRange_Hook);
|
||||||
@ -44,9 +44,9 @@ namespace cheat::feature
|
|||||||
"(Energy bubble may appear incomplete but still usable.)");
|
"(Energy bubble may appear incomplete but still usable.)");
|
||||||
|
|
||||||
ConfigWidget("## AbilityReduce", f_AbilityReduce); ImGui::SameLine();
|
ConfigWidget("## AbilityReduce", f_AbilityReduce); ImGui::SameLine();
|
||||||
ConfigWidget("Reduce Skill/Burst Cooldown", f_AbilityReduceValue, 0.1f, 0.2f, 1.0f,
|
ConfigWidget("Reduce Skill/Burst Cooldown", f_TimerReduce, 1.f, 1.f, 6.0f,
|
||||||
"Reduce cooldowns of elemental skills and bursts.\n"\
|
"Reduce cooldowns of elemental skills and bursts.\n"\
|
||||||
"The greater the value, the greater the cooldown.");
|
"The current value is the maximum value of the cooldown.");
|
||||||
|
|
||||||
ConfigWidget(f_Sprint, "Removes delay in-between sprints.");
|
ConfigWidget(f_Sprint, "Removes delay in-between sprints.");
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ namespace cheat::feature
|
|||||||
void NoCD::DrawStatus()
|
void NoCD::DrawStatus()
|
||||||
{
|
{
|
||||||
ImGui::Text("Cooldown\n[%s%s%s%s%s]",
|
ImGui::Text("Cooldown\n[%s%s%s%s%s]",
|
||||||
f_AbilityReduce ? fmt::format("Reduce {:.1f}", f_AbilityReduceValue.value()).c_str() : "",
|
f_AbilityReduce ? fmt::format("Reduce {:.1f}", f_TimerReduce.value()).c_str() : "",
|
||||||
f_AbilityReduce && (f_InstantBow || f_Sprint) ? "|" : "",
|
f_AbilityReduce && (f_InstantBow || f_Sprint) ? "|" : "",
|
||||||
f_InstantBow ? "Bow" : "",
|
f_InstantBow ? "Bow" : "",
|
||||||
f_InstantBow && f_Sprint ? "|" : "",
|
f_InstantBow && f_Sprint ? "|" : "",
|
||||||
@ -108,21 +108,37 @@ namespace cheat::feature
|
|||||||
return CALL_ORIGIN(LCAvatarCombat_IsEnergyMax_Hook, __this, method);
|
return CALL_ORIGIN(LCAvatarCombat_IsEnergyMax_Hook, __this, method);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Multipler CoolDown Timer | RyujinZX#6666
|
// Multipler CoolDown Timer Old | RyujinZX#6666
|
||||||
static bool LCAvatarCombat_OnSkillStart(app::LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method) {
|
static bool LCAvatarCombat_OnSkillStart(app::LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method) {
|
||||||
NoCD& noCD = NoCD::GetInstance();
|
NoCD& noCD = NoCD::GetInstance();
|
||||||
if (noCD.f_AbilityReduce)
|
if (noCD.f_AbilityReduce)
|
||||||
{
|
{
|
||||||
if (__this->fields._targetFixTimer->fields._._timer_k__BackingField > 0) {
|
if (__this->fields._targetFixTimer->fields._._timer_k__BackingField > 0) {
|
||||||
cdMultipler = noCD.f_AbilityReduceValue / 3;
|
cdMultipler = noCD.f_TimerReduce / 3;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cdMultipler = noCD.f_AbilityReduceValue / 1;
|
cdMultipler = noCD.f_TimerReduce / 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return CALL_ORIGIN(LCAvatarCombat_OnSkillStart, __this, skillID, cdMultipler, method);
|
return CALL_ORIGIN(LCAvatarCombat_OnSkillStart, __this, skillID, cdMultipler, method);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Timer Speed Up / CoolDown Reduce New | RyujinZX#6666
|
||||||
|
static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_OMIIMOJOHIP* skillInfo, MethodInfo* method) {
|
||||||
|
NoCD& noCD = NoCD::GetInstance();
|
||||||
|
if (noCD.f_AbilityReduce)
|
||||||
|
{
|
||||||
|
auto cdTimer = app::SafeFloat_GetValue(nullptr, skillInfo->fields.cdTimer, nullptr);
|
||||||
|
|
||||||
|
if (cdTimer > noCD.f_TimerReduce)
|
||||||
|
{
|
||||||
|
struct app::SafeFloat MyValueProtect = app::SafeFloat_SetValue(nullptr, noCD.f_TimerReduce - 1, nullptr);
|
||||||
|
skillInfo->fields.cdTimer = MyValueProtect;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return CALL_ORIGIN(LCAvatarCombat_IsSkillInCD_1, __this, skillInfo, method);
|
||||||
|
}
|
||||||
|
|
||||||
// Check sprint cooldown, we just return true if sprint no cooldown enabled.
|
// Check sprint cooldown, we just return true if sprint no cooldown enabled.
|
||||||
static bool HumanoidMoveFSM_CheckSprintCooldown_Hook(void* __this, MethodInfo* method)
|
static bool HumanoidMoveFSM_CheckSprintCooldown_Hook(void* __this, MethodInfo* method)
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,7 @@ namespace cheat::feature
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
config::Field<config::Toggle<Hotkey>> f_AbilityReduce;
|
config::Field<config::Toggle<Hotkey>> f_AbilityReduce;
|
||||||
config::Field<float> f_AbilityReduceValue;
|
config::Field<float> f_TimerReduce;
|
||||||
|
|
||||||
config::Field<config::Toggle<Hotkey>> f_UtimateMaxEnergy;
|
config::Field<config::Toggle<Hotkey>> f_UtimateMaxEnergy;
|
||||||
config::Field<config::Toggle<Hotkey>> f_Sprint;
|
config::Field<config::Toggle<Hotkey>> f_Sprint;
|
||||||
|
@ -9,11 +9,12 @@
|
|||||||
|
|
||||||
namespace cheat::feature
|
namespace cheat::feature
|
||||||
{
|
{
|
||||||
static void HumanoidMoveFSM_LateTick_Hook(void* __this, float deltaTime, MethodInfo* method);
|
static void HumanoidMoveFSM_LateTick_Hook(app::HumanoidMoveFSM* __this, float deltaTime, MethodInfo* method);
|
||||||
app::Vector3 zero;
|
app::Vector3 zero;
|
||||||
|
|
||||||
NoClip::NoClip() : Feature(),
|
NoClip::NoClip() : Feature(),
|
||||||
NF(f_Enabled, "No clip", "NoClip", false),
|
NF(f_Enabled, "No clip", "NoClip", false),
|
||||||
|
NF(f_NoAnimation, "No Animation", "NoClip", false),
|
||||||
NF(f_Speed, "Speed", "NoClip", 5.5f),
|
NF(f_Speed, "Speed", "NoClip", 5.5f),
|
||||||
NF(f_CameraRelative, "Relative to camera", "NoClip", true),
|
NF(f_CameraRelative, "Relative to camera", "NoClip", true),
|
||||||
NF(f_VelocityMode, "Velocity mode", "NoClip", false),
|
NF(f_VelocityMode, "Velocity mode", "NoClip", false),
|
||||||
@ -38,6 +39,8 @@ namespace cheat::feature
|
|||||||
ConfigWidget("Enabled", f_Enabled, "Enables no-clip (fast speed + no collision).\n" \
|
ConfigWidget("Enabled", f_Enabled, "Enables no-clip (fast speed + no collision).\n" \
|
||||||
"To move, use WASD, Space (go up), and Shift (go down).");
|
"To move, use WASD, Space (go up), and Shift (go down).");
|
||||||
|
|
||||||
|
ConfigWidget("No Animation", f_NoAnimation, "Disables player animations.");
|
||||||
|
|
||||||
ConfigWidget("Speed", f_Speed, 0.1f, 2.0f, 100.0f,
|
ConfigWidget("Speed", f_Speed, 0.1f, 2.0f, 100.0f,
|
||||||
"No-clip move speed.\n" \
|
"No-clip move speed.\n" \
|
||||||
"Not recommended setting above 5.0.");
|
"Not recommended setting above 5.0.");
|
||||||
@ -210,11 +213,18 @@ namespace cheat::feature
|
|||||||
// Disabling standard motion performing.
|
// Disabling standard motion performing.
|
||||||
// This disabling any animations, climb, jump, swim and so on.
|
// This disabling any animations, climb, jump, swim and so on.
|
||||||
// But when it disabled, MoveSync sending our last position, so needs to update position in packet.
|
// But when it disabled, MoveSync sending our last position, so needs to update position in packet.
|
||||||
static void HumanoidMoveFSM_LateTick_Hook(void* __this, float deltaTime, MethodInfo* method)
|
static void HumanoidMoveFSM_LateTick_Hook(app::HumanoidMoveFSM* __this, float deltaTime, MethodInfo* method)
|
||||||
{
|
{
|
||||||
NoClip& noClip = NoClip::GetInstance();
|
NoClip& noClip = NoClip::GetInstance();
|
||||||
if (noClip.f_Enabled)
|
|
||||||
return;
|
if (noClip.f_Enabled) {
|
||||||
|
if (!noClip.f_NoAnimation) {
|
||||||
|
__this->fields._layerMaskScene = 2;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
CALL_ORIGIN(HumanoidMoveFSM_LateTick_Hook, __this, deltaTime, method);
|
CALL_ORIGIN(HumanoidMoveFSM_LateTick_Hook, __this, deltaTime, method);
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,8 @@ namespace cheat::feature
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
config::Field<config::Toggle<Hotkey>> f_Enabled;
|
config::Field<config::Toggle<Hotkey>> f_Enabled;
|
||||||
|
config::Field<config::Toggle<Hotkey>> f_NoAnimation;
|
||||||
|
|
||||||
config::Field<float> f_Speed;
|
config::Field<float> f_Speed;
|
||||||
config::Field<bool> f_CameraRelative;
|
config::Field<bool> f_CameraRelative;
|
||||||
config::Field<config::Toggle<Hotkey>> f_VelocityMode;
|
config::Field<config::Toggle<Hotkey>> f_VelocityMode;
|
||||||
|
56
cheat-library/src/user/cheat/visuals/ShowChestIndicator.cpp
Normal file
56
cheat-library/src/user/cheat/visuals/ShowChestIndicator.cpp
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#include "pch-il2cpp.h"
|
||||||
|
#include "ShowChestIndicator.h"
|
||||||
|
|
||||||
|
#include <helpers.h>
|
||||||
|
#include <cheat/events.h>
|
||||||
|
|
||||||
|
namespace cheat::feature
|
||||||
|
{
|
||||||
|
static bool IndicatorPlugin_DoCheck(app::LCIndicatorPlugin* __this, MethodInfo* method);
|
||||||
|
|
||||||
|
ChestIndicator::ChestIndicator() : Feature(),
|
||||||
|
NF(f_Enabled, "Show Chest Indicator", "ShowChest", false)
|
||||||
|
{
|
||||||
|
HookManager::install(app::LCIndicatorPlugin_DoCheck, IndicatorPlugin_DoCheck);
|
||||||
|
}
|
||||||
|
|
||||||
|
const FeatureGUIInfo& ChestIndicator::GetGUIInfo() const
|
||||||
|
{
|
||||||
|
static const FeatureGUIInfo info{ "ShowChest", "Visuals", false };
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ChestIndicator::DrawMain()
|
||||||
|
{
|
||||||
|
ConfigWidget(f_Enabled, "Show chests, game mechanics.");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ChestIndicator::NeedStatusDraw() const
|
||||||
|
{
|
||||||
|
return f_Enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ChestIndicator::DrawStatus()
|
||||||
|
{
|
||||||
|
ImGui::Text("Chest Indicator");
|
||||||
|
}
|
||||||
|
|
||||||
|
ChestIndicator& ChestIndicator::GetInstance()
|
||||||
|
{
|
||||||
|
static ChestIndicator instance;
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool IndicatorPlugin_DoCheck(app::LCIndicatorPlugin* __this, MethodInfo* method) {
|
||||||
|
ChestIndicator& chestIndicator = ChestIndicator::GetInstance();
|
||||||
|
if (chestIndicator.f_Enabled)
|
||||||
|
{
|
||||||
|
if (__this->fields._dataItem != nullptr)
|
||||||
|
{
|
||||||
|
// Base Chest not found, try improve
|
||||||
|
app::LCIndicatorPlugin_ShowIcon(__this, nullptr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return CALL_ORIGIN(IndicatorPlugin_DoCheck, __this, method);
|
||||||
|
}
|
||||||
|
}
|
25
cheat-library/src/user/cheat/visuals/ShowChestIndicator.h
Normal file
25
cheat-library/src/user/cheat/visuals/ShowChestIndicator.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <cheat-base/cheat/Feature.h>
|
||||||
|
#include <cheat-base/config/config.h>
|
||||||
|
|
||||||
|
namespace cheat::feature
|
||||||
|
{
|
||||||
|
|
||||||
|
class ChestIndicator : public Feature
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
config::Field<config::Toggle<Hotkey>> f_Enabled;
|
||||||
|
|
||||||
|
static ChestIndicator& GetInstance();
|
||||||
|
|
||||||
|
const FeatureGUIInfo& GetGUIInfo() const override;
|
||||||
|
void DrawMain() override;
|
||||||
|
|
||||||
|
virtual bool NeedStatusDraw() const override;
|
||||||
|
void DrawStatus() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
ChestIndicator();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
107
cheat-library/src/user/cheat/world/AutoCook.cpp
Normal file
107
cheat-library/src/user/cheat/world/AutoCook.cpp
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
#include "pch-il2cpp.h"
|
||||||
|
#include "AutoCook.h"
|
||||||
|
|
||||||
|
#include <helpers.h>
|
||||||
|
#include <cheat/events.h>
|
||||||
|
|
||||||
|
namespace cheat::feature
|
||||||
|
{
|
||||||
|
static void PlayerModule_RequestPlayerCook(app::PlayerModule* __this, uint32_t recipeId, uint32_t avatarId, uint32_t qteQuality, uint32_t count, MethodInfo* method);
|
||||||
|
static void PlayerModule_OnPlayerCookRsp(app::PlayerModule* __this, app::PlayerCookRsp* rsp, MethodInfo* method);
|
||||||
|
|
||||||
|
static void CookingQtePageContext_UpdateProficiency(app::CookingQtePageContext* __this, MethodInfo* method);
|
||||||
|
static void CookingQtePageContext_SetProficiencyInfo(app::CookingQtePageContext* __this, MethodInfo* method);
|
||||||
|
static uint32_t CookRecipeExcelConfig_get_maxProficiency(app::CookRecipeExcelConfig* __this, MethodInfo* method);
|
||||||
|
|
||||||
|
AutoCook::AutoCook() : Feature(),
|
||||||
|
NF(f_Enabled, "Auto Cooking", "AutoCook", false),
|
||||||
|
NF(f_Count, "Count Item", "AutoCook", 1),
|
||||||
|
NF(f_Quality, "Quality", "AutoCook", 1)
|
||||||
|
{
|
||||||
|
HookManager::install(app::PlayerModule_RequestPlayerCook, PlayerModule_RequestPlayerCook);
|
||||||
|
HookManager::install(app::PlayerModule_OnPlayerCookRsp, PlayerModule_OnPlayerCookRsp);
|
||||||
|
HookManager::install(app::CookingQtePageContext_UpdateProficiency, CookingQtePageContext_UpdateProficiency);
|
||||||
|
HookManager::install(app::CookRecipeExcelConfig_get_maxProficiency, CookRecipeExcelConfig_get_maxProficiency);
|
||||||
|
}
|
||||||
|
|
||||||
|
const FeatureGUIInfo& AutoCook::GetGUIInfo() const
|
||||||
|
{
|
||||||
|
static const FeatureGUIInfo info{ "AutoCook", "World", true };
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AutoCook::DrawMain()
|
||||||
|
{
|
||||||
|
ConfigWidget(f_Enabled, "Automatic cooking.");
|
||||||
|
ConfigWidget("Count Item", f_Count, 1, 1, 100,
|
||||||
|
"How much to cook at a time.\n" \
|
||||||
|
"(If the recipe is not fully explored, set it to 1.)");
|
||||||
|
ConfigWidget("Quality Cooking", f_Quality, 1, 1, 3, "Quality of the cook.");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AutoCook::NeedStatusDraw() const
|
||||||
|
{
|
||||||
|
return f_Enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AutoCook::DrawStatus()
|
||||||
|
{
|
||||||
|
ImGui::Text("Auto Cook");
|
||||||
|
}
|
||||||
|
|
||||||
|
AutoCook& AutoCook::GetInstance()
|
||||||
|
{
|
||||||
|
static AutoCook instance;
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Auto Cooking | RyujinZX#6666
|
||||||
|
|
||||||
|
static void PlayerModule_RequestPlayerCook(app::PlayerModule* __this, uint32_t recipeId, uint32_t avatarId, uint32_t qteQuality, uint32_t count, MethodInfo* method)
|
||||||
|
{
|
||||||
|
AutoCook& autoCook = AutoCook::GetInstance();
|
||||||
|
if (autoCook.f_Enabled)
|
||||||
|
{
|
||||||
|
qteQuality = autoCook.f_Quality;
|
||||||
|
count = autoCook.f_Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
return CALL_ORIGIN(PlayerModule_RequestPlayerCook, __this, recipeId, avatarId, qteQuality, count, method);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void PlayerModule_OnPlayerCookRsp(app::PlayerModule* __this, app::PlayerCookRsp* rsp, MethodInfo* method) {
|
||||||
|
AutoCook& autoCook = AutoCook::GetInstance();
|
||||||
|
if (autoCook.f_Enabled)
|
||||||
|
{
|
||||||
|
rsp->fields.qteQuality_ = autoCook.f_Quality;
|
||||||
|
rsp->fields.cookCount_ = autoCook.f_Count;
|
||||||
|
|
||||||
|
// Unlock Quick Cooking, It will reset after a restart, so it is better to study the recipe in full at once.
|
||||||
|
if (rsp->fields.recipeData_ != nullptr)
|
||||||
|
rsp->fields.recipeData_->fields.proficiency_ = autoCook.CookCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
return CALL_ORIGIN(PlayerModule_OnPlayerCookRsp, __this, rsp, method);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void CookingQtePageContext_UpdateProficiency(app::CookingQtePageContext* __this, MethodInfo* method) {
|
||||||
|
AutoCook& autoCook = AutoCook::GetInstance();
|
||||||
|
if (autoCook.f_Enabled)
|
||||||
|
{
|
||||||
|
__this->fields._pageMono->fields._qteTime = 0;
|
||||||
|
__this->fields._pageMono->fields._autoQteTime = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return CALL_ORIGIN(CookingQtePageContext_UpdateProficiency, __this, method);
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint32_t CookRecipeExcelConfig_get_maxProficiency(app::CookRecipeExcelConfig* __this, MethodInfo* method) {
|
||||||
|
AutoCook& autoCook = AutoCook::GetInstance();
|
||||||
|
if (autoCook.f_Enabled)
|
||||||
|
{
|
||||||
|
uint32_t maxCount = app::SimpleSafeUInt32_get_Value(nullptr, __this->fields.maxProficiencyRawNum, nullptr);
|
||||||
|
autoCook.CookCount = maxCount;
|
||||||
|
}
|
||||||
|
return CALL_ORIGIN(CookRecipeExcelConfig_get_maxProficiency, __this, method);
|
||||||
|
}
|
||||||
|
}
|
30
cheat-library/src/user/cheat/world/AutoCook.h
Normal file
30
cheat-library/src/user/cheat/world/AutoCook.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <cheat-base/cheat/Feature.h>
|
||||||
|
#include <cheat-base/config/config.h>
|
||||||
|
|
||||||
|
namespace cheat::feature
|
||||||
|
{
|
||||||
|
|
||||||
|
class AutoCook : public Feature
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
config::Field<config::Toggle<Hotkey>> f_Enabled;
|
||||||
|
config::Field<int> f_Count;
|
||||||
|
config::Field<int> f_Quality;
|
||||||
|
|
||||||
|
uint32_t CookCount;
|
||||||
|
|
||||||
|
static AutoCook& GetInstance();
|
||||||
|
|
||||||
|
const FeatureGUIInfo& GetGUIInfo() const override;
|
||||||
|
void DrawMain() override;
|
||||||
|
|
||||||
|
virtual bool NeedStatusDraw() const override;
|
||||||
|
void DrawStatus() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
AutoCook();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user