Refactored Animation Changer, Added Sealed Chest to AutoDestroy
This commit is contained in:
parent
2f433fd4e9
commit
1f9d79d207
@ -8,10 +8,222 @@
|
||||
|
||||
namespace cheat::feature
|
||||
{
|
||||
static std::string f_Animation;
|
||||
|
||||
static std::string animations[] = {
|
||||
// All characters
|
||||
"SlipFaceWall",
|
||||
"SlipBackWall",
|
||||
"DropDown",
|
||||
"JumpOffWall",
|
||||
"Jump",
|
||||
"JumpForRun",
|
||||
"JumpForWalk",
|
||||
"Fly",
|
||||
"FlyStart",
|
||||
"JumpForSprint",
|
||||
"SwimIdle",
|
||||
"SwimMove",
|
||||
"SwimDash",
|
||||
"ClimbMove1",
|
||||
"ClimbIdle",
|
||||
"ClimbJump",
|
||||
"ClimbMove0",
|
||||
"FallToGroundRun",
|
||||
"FallOnGroundLit",
|
||||
"FallOnGround",
|
||||
"FallToGroundRunHard",
|
||||
"FallToGroundSprint",
|
||||
"Walk",
|
||||
"Run",
|
||||
"Standby",
|
||||
"RunToIdle",
|
||||
"RunToWalk",
|
||||
"WalkToIdle",
|
||||
"WalkToRun",
|
||||
"Sprint",
|
||||
"SprintToIdle",
|
||||
"SprintToRun",
|
||||
"ClimbDownToGround",
|
||||
"SprintBS",
|
||||
"ShowUp",
|
||||
"CrouchToStandby",
|
||||
"CrouchIdle",
|
||||
"CrouchRoll",
|
||||
"CrouchMove",
|
||||
"SkiffNormal",
|
||||
"Upstairs",
|
||||
"JumpUpWallForStandby",
|
||||
"JumpUpWallReady",
|
||||
"Standby2ClimbA",
|
||||
"SwimJump",
|
||||
"SwimJumpDrop",
|
||||
"SwimJumpToWater",
|
||||
"Standby2ClimbB",
|
||||
"CrouchDrop",
|
||||
"TurnDir",
|
||||
"StandbyWeapon",
|
||||
"StandbyPutaway",
|
||||
"StandbyPutawayOver",
|
||||
"Icespine_Out",
|
||||
"Icespine",
|
||||
"LiquidStrike_MoveStandby",
|
||||
"LiquidStrike_AS",
|
||||
"LiquidStrike_BS",
|
||||
"LiquidStrike_BS1",
|
||||
"LiquidStrike_Move",
|
||||
"LiquidStrike_Strike",
|
||||
"LiquidStrike_FatalStandby",
|
||||
"LiquidStrike_FatalMove",
|
||||
"LiquidStrike_AS_OnWater",
|
||||
"LiquidStrike_BS_0",
|
||||
"FrozenWindmill",
|
||||
"FrozenWindmill_AS",
|
||||
"Attack03",
|
||||
"Attack04",
|
||||
"Attack05",
|
||||
"Attack01",
|
||||
"Attack02",
|
||||
"ExtraAttack",
|
||||
"ExtraAttack_AS",
|
||||
"FallingAnthem_Loop",
|
||||
"FallingAnthem_AS_2",
|
||||
"FallingAnthem_BS_1",
|
||||
"FallingAnthem_BS_2",
|
||||
"FallingAnthem_AS_1",
|
||||
"FallingAnthem_Loop_Low",
|
||||
"SitBDown",
|
||||
"SitBLoop",
|
||||
"SitBUp",
|
||||
"SitDown",
|
||||
"SitLoop",
|
||||
"SitUp",
|
||||
"StandbyShow_01",
|
||||
"StandbyShow_02",
|
||||
"StandbyVoice",
|
||||
"Think01BS",
|
||||
"Think01Loop",
|
||||
"Think01AS",
|
||||
"Akimbo02BS",
|
||||
"Akimbo02Loop",
|
||||
"Akimbo02AS",
|
||||
"ChannelBS",
|
||||
"ChannelLoop",
|
||||
"ChannelAS",
|
||||
"PlayMusic_Lyre_AS",
|
||||
"PlayMusic_Lyre_BS",
|
||||
"PlayMusic_Lyre_Loop",
|
||||
"PlayMusic_Qin_BS",
|
||||
"PlayMusic_Qin_AS",
|
||||
"PlayMusic_Qin_Loop",
|
||||
"ActivitySkill_ElectricCoreFly",
|
||||
"Hit_H",
|
||||
"Hit_L",
|
||||
"Hit_Throw",
|
||||
"Hit_Throw_Ground",
|
||||
"Hit_ThrowAir",
|
||||
"Struggle",
|
||||
"NormalDie",
|
||||
"SwimDie",
|
||||
"HitGroundDie",
|
||||
"FallDie_AS",
|
||||
"FallDie",
|
||||
// Main Character only
|
||||
"UziExplode_AS",
|
||||
"UziExplode_BS",
|
||||
"UziExplode_Charge_01",
|
||||
"UziExplode_Strike_02",
|
||||
"UziExplode_Charge_02",
|
||||
"UziExplode_Strike_01",
|
||||
"UziExplode_BS_1",
|
||||
"WindBreathe_AS",
|
||||
"WindBreathe",
|
||||
"Hogyoku_AS",
|
||||
"Hogyoku_BS",
|
||||
"Hogyoku",
|
||||
"Hogyoku_Charge",
|
||||
"Hogyoku_Charge_AS",
|
||||
"Hogyoku_Charge_2",
|
||||
"RockTide_AS",
|
||||
"RockTide",
|
||||
"CrouchThrowBS",
|
||||
"CrouchThrowLoop",
|
||||
"CrouchThrowAS",
|
||||
"FindCatThrowBS",
|
||||
"FindCatThrowLoop",
|
||||
"FindCatThrowAS",
|
||||
"Player_Electric_ElementalArt",
|
||||
"Player_Electric_ElementalArt_AS",
|
||||
"Player_Electric_ElementalBurst",
|
||||
"Player_Electric_ElementalBurst_AS",
|
||||
"PutHand01BS",
|
||||
"PutHand01Loop",
|
||||
"PutHand01AS",
|
||||
"Akimbo01BS",
|
||||
"Backrake01BS",
|
||||
"Forerake01BS",
|
||||
"StrikeChest01BS",
|
||||
"Akimbo01Loop",
|
||||
"Akimbo01AS",
|
||||
"Backrake01Loop",
|
||||
"Backrake01AS",
|
||||
"Forerake01Loop",
|
||||
"Forerake01AS",
|
||||
"StrikeChest01Loop",
|
||||
"StrikeChest01AS",
|
||||
"HoldHead01BS",
|
||||
"HoldHead01Loop",
|
||||
"HoldHead01AS",
|
||||
"Clap01",
|
||||
"Turn01_90LBS",
|
||||
"Turn01_90RBS",
|
||||
"Turn01_90LAS",
|
||||
"Turn01_90RAS",
|
||||
"Alert01BS",
|
||||
"Alert01Loop",
|
||||
"Alert01AS",
|
||||
"Fishing01_BS",
|
||||
"Fishing01Loop",
|
||||
"Fishing01AS",
|
||||
"Think01_BS",
|
||||
"Think01_Loop",
|
||||
"Think01_AS",
|
||||
"Channel01BS",
|
||||
"Channel01Loop",
|
||||
"Channel01AS",
|
||||
"Fishing_Battle_BS",
|
||||
"Fishing_Cast_AS",
|
||||
"Fishing_Cast_BS",
|
||||
"Fishing_Cast_Loop",
|
||||
"Fishing_Choose",
|
||||
"Fishing_Choose_Loop",
|
||||
"Fishing_End",
|
||||
"Fishing_Pull_01",
|
||||
"Fishing_Pull_02",
|
||||
"Fishing_Wait",
|
||||
"Fishing_Pull_Fail",
|
||||
"Bartender_MixingStandby",
|
||||
"Bartender_MixingStart",
|
||||
"Bartender_MixingToPour",
|
||||
"Bartender_Pour",
|
||||
"Bartender_PourFinish",
|
||||
"Bartender_PourStandby",
|
||||
"Bartender_AddLoop",
|
||||
"Bartender_PrepareStart",
|
||||
"Bartender_Standby",
|
||||
"Bartender_AddStandby",
|
||||
"Bartender_PrepareToStandby",
|
||||
"Bartender_StandbyFinish",
|
||||
"Blocking_BS",
|
||||
"Blocking_Loop",
|
||||
"Blocking_Back",
|
||||
"Blocking_Bounce",
|
||||
"Blocking_Hit",
|
||||
"Blocking_AS"
|
||||
};
|
||||
static std::string currentAnimation{};
|
||||
AnimationChanger::AnimationChanger() : Feature(),
|
||||
NFEX(f_Enabled, "Animation Changer", "AnimationChanger", "Visuals", false, false)
|
||||
NF(f_Enabled, "Animation Changer", "Visuals::AnimationChanger", false),
|
||||
NF(f_ApplyAnimation, "Apply Animation", "Visuals::AnimationChanger", false),
|
||||
NF(f_ResetAnimation, "Reset Animation", "Visuals::AnimationChanger", false)
|
||||
{
|
||||
events::GameUpdateEvent += MY_METHOD_HANDLER(AnimationChanger::OnGameUpdate);
|
||||
}
|
||||
@ -24,8 +236,30 @@ namespace cheat::feature
|
||||
|
||||
void AnimationChanger::DrawMain()
|
||||
{
|
||||
ConfigWidget(f_Enabled, "Changes active character's animation.");
|
||||
ImGui::InputText("Animation", &f_Animation);
|
||||
ConfigWidget(f_Enabled, "Changes active character's animation.\nNot all animations work for every character except Main Character.");
|
||||
if (f_Enabled)
|
||||
{
|
||||
if (ImGui::BeginCombo("Animations", currentAnimation.c_str()))
|
||||
{
|
||||
for (int n = 0; n < IM_ARRAYSIZE(animations); n++)
|
||||
{
|
||||
bool is_selected = (currentAnimation.c_str() == animations[n]);
|
||||
if (ImGui::Selectable(animations[n].c_str(), is_selected))
|
||||
currentAnimation = animations[n];
|
||||
|
||||
if (is_selected)
|
||||
ImGui::SetItemDefaultFocus();
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
|
||||
if (ImGui::Button("Apply"))
|
||||
f_ApplyAnimation = true;
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Reset"))
|
||||
f_ResetAnimation = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool AnimationChanger::NeedStatusDraw() const
|
||||
@ -46,247 +280,24 @@ namespace cheat::feature
|
||||
|
||||
void AnimationChanger::OnGameUpdate()
|
||||
{
|
||||
if (!f_Enabled)
|
||||
return;
|
||||
|
||||
auto& manager = game::EntityManager::instance();
|
||||
auto avatar = manager.avatar();
|
||||
if (avatar->animator() == nullptr)
|
||||
return;
|
||||
|
||||
static bool changed = false;
|
||||
|
||||
if (f_Enabled)
|
||||
if (f_Enabled && f_ApplyAnimation)
|
||||
{
|
||||
auto avatarObj = avatar->gameObject();
|
||||
auto rootObj = app::MoleMole_BaseEntity_get_rootGameObject(avatar->raw(), nullptr); // (Clone)
|
||||
auto path = app::Object_1_get_name(reinterpret_cast<app::Object_1*>(avatarObj), nullptr);
|
||||
auto pathavatarObj = app::Object_1_get_name(reinterpret_cast<app::Object_1*>(rootObj), nullptr); // (Clone)
|
||||
|
||||
if (!changed)
|
||||
{
|
||||
app::Animator_Play(avatar->animator(), string_to_il2cppi(f_Animation.c_str()), 0, 0, nullptr);
|
||||
changed = true;
|
||||
app::Animator_Play(avatar->animator(), string_to_il2cppi(currentAnimation.c_str()), 0, 0, nullptr);
|
||||
f_ApplyAnimation = false;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if (changed)
|
||||
if (f_Enabled && f_ResetAnimation)
|
||||
{
|
||||
app::Animator_Rebind(avatar->animator(), nullptr);
|
||||
changed = false;
|
||||
f_ResetAnimation = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
//------Animations------\\
|
||||
SlipFaceWall
|
||||
SlipBackWall
|
||||
DropDown
|
||||
JumpOffWall
|
||||
Jump
|
||||
JumpForRun
|
||||
JumpForWalk
|
||||
Fly
|
||||
FlyStart
|
||||
JumpForSprint
|
||||
SwimIdle
|
||||
SwimMove
|
||||
SwimDash
|
||||
ClimbMove1
|
||||
ClimbIdle
|
||||
ClimbJump
|
||||
ClimbMove0
|
||||
FallToGroundRun
|
||||
FallOnGroundLit
|
||||
FallOnGround
|
||||
FallToGroundRunHard
|
||||
FallToGroundSprint
|
||||
Walk
|
||||
Run
|
||||
Standby
|
||||
RunToIdle
|
||||
RunToWalk
|
||||
WalkToIdle
|
||||
WalkToRun
|
||||
Sprint
|
||||
SprintToIdle
|
||||
SprintToRun
|
||||
ClimbDownToGround
|
||||
SprintBS
|
||||
ShowUp
|
||||
CrouchToStandby
|
||||
CrouchIdle
|
||||
CrouchRoll
|
||||
CrouchMove
|
||||
SkiffNormal
|
||||
Upstairs
|
||||
JumpUpWallForStandby
|
||||
JumpUpWallReady
|
||||
Standby2ClimbA
|
||||
SwimJump
|
||||
SwimJumpDrop
|
||||
SwimJumpToWater
|
||||
Standby2ClimbB
|
||||
CrouchDrop
|
||||
TurnDir
|
||||
StandbyWeapon
|
||||
StandbyPutaway
|
||||
StandbyPutawayOver
|
||||
Icespine_Out
|
||||
Icespine
|
||||
LiquidStrike_MoveStandby
|
||||
LiquidStrike_AS
|
||||
LiquidStrike_BS
|
||||
LiquidStrike_BS1
|
||||
LiquidStrike_Move
|
||||
LiquidStrike_Strike
|
||||
LiquidStrike_FatalStandby
|
||||
LiquidStrike_FatalMove
|
||||
LiquidStrike_AS_OnWater
|
||||
LiquidStrike_BS_0
|
||||
FrozenWindmill
|
||||
FrozenWindmill_AS
|
||||
Attack03
|
||||
Attack04
|
||||
Attack05
|
||||
Attack01
|
||||
Attack02
|
||||
ExtraAttack
|
||||
ExtraAttack_AS
|
||||
FallingAnthem_Loop
|
||||
FallingAnthem_AS_2
|
||||
FallingAnthem_BS_1
|
||||
FallingAnthem_BS_2
|
||||
FallingAnthem_AS_1
|
||||
FallingAnthem_Loop_Low
|
||||
SitBDown
|
||||
SitBLoop
|
||||
SitBUp
|
||||
SitDown
|
||||
SitLoop
|
||||
SitUp
|
||||
StandbyShow_01
|
||||
StandbyShow_02
|
||||
StandbyVoice
|
||||
Think01BS
|
||||
Think01Loop
|
||||
Think01AS
|
||||
Akimbo02BS
|
||||
Akimbo02Loop
|
||||
Akimbo02AS
|
||||
ChannelBS
|
||||
ChannelLoop
|
||||
ChannelAS
|
||||
PlayMusic_Lyre_AS
|
||||
PlayMusic_Lyre_BS
|
||||
PlayMusic_Lyre_Loop
|
||||
PlayMusic_Qin_BS
|
||||
PlayMusic_Qin_AS
|
||||
PlayMusic_Qin_Loop
|
||||
ActivitySkill_ElectricCoreFly
|
||||
Hit_H
|
||||
Hit_L
|
||||
Hit_Throw
|
||||
Hit_Throw_Ground
|
||||
Hit_ThrowAir
|
||||
Struggle
|
||||
NormalDie
|
||||
SwimDie
|
||||
HitGroundDie
|
||||
FallDie_AS
|
||||
FallDie
|
||||
|
||||
//------Main Character------\\
|
||||
UziExplode_AS
|
||||
UziExplode_BS
|
||||
UziExplode_Charge_01
|
||||
UziExplode_Strike_02
|
||||
UziExplode_Charge_02
|
||||
UziExplode_Strike_01
|
||||
UziExplode_BS_1
|
||||
WindBreathe_AS
|
||||
WindBreathe
|
||||
Hogyoku_AS
|
||||
Hogyoku_BS
|
||||
Hogyoku
|
||||
Hogyoku_Charge
|
||||
Hogyoku_Charge_AS
|
||||
Hogyoku_Charge_2
|
||||
RockTide_AS
|
||||
RockTide
|
||||
CrouchThrowBS
|
||||
CrouchThrowLoop
|
||||
CrouchThrowAS
|
||||
FindCatThrowBS
|
||||
FindCatThrowLoop
|
||||
FindCatThrowAS
|
||||
Player_Electric_ElementalArt
|
||||
Player_Electric_ElementalArt_AS
|
||||
Player_Electric_ElementalBurst
|
||||
Player_Electric_ElementalBurst_AS
|
||||
PutHand01BS
|
||||
PutHand01Loop
|
||||
PutHand01AS
|
||||
Akimbo01BS
|
||||
Backrake01BS
|
||||
Forerake01BS
|
||||
StrikeChest01BS
|
||||
Akimbo01Loop
|
||||
Akimbo01AS
|
||||
Backrake01Loop
|
||||
Backrake01AS
|
||||
Forerake01Loop
|
||||
Forerake01AS
|
||||
StrikeChest01Loop
|
||||
StrikeChest01AS
|
||||
HoldHead01BS
|
||||
HoldHead01Loop
|
||||
HoldHead01AS
|
||||
Clap01
|
||||
Turn01_90LBS
|
||||
Turn01_90RBS
|
||||
Turn01_90LAS
|
||||
Turn01_90RAS
|
||||
Alert01BS
|
||||
Alert01Loop
|
||||
Alert01AS
|
||||
Fishing01_BS
|
||||
Fishing01Loop
|
||||
Fishing01AS
|
||||
Think01_BS
|
||||
Think01_Loop
|
||||
Think01_AS
|
||||
Channel01BS
|
||||
Channel01Loop
|
||||
Channel01AS
|
||||
Fishing_Battle_BS
|
||||
Fishing_Cast_AS
|
||||
Fishing_Cast_BS
|
||||
Fishing_Cast_Loop
|
||||
Fishing_Choose
|
||||
Fishing_Choose_Loop
|
||||
Fishing_End
|
||||
Fishing_Pull_01
|
||||
Fishing_Pull_02
|
||||
Fishing_Wait
|
||||
Fishing_Pull_Fail
|
||||
Bartender_MixingStandby
|
||||
Bartender_MixingStart
|
||||
Bartender_MixingToPour
|
||||
Bartender_Pour
|
||||
Bartender_PourFinish
|
||||
Bartender_PourStandby
|
||||
Bartender_AddLoop
|
||||
Bartender_PrepareStart
|
||||
Bartender_Standby
|
||||
Bartender_AddStandby
|
||||
Bartender_PrepareToStandby
|
||||
Bartender_StandbyFinish
|
||||
Blocking_BS
|
||||
Blocking_Loop
|
||||
Blocking_Back
|
||||
Blocking_Bounce
|
||||
Blocking_Hit
|
||||
Blocking_AS
|
||||
*/
|
@ -9,6 +9,8 @@ namespace cheat::feature
|
||||
{
|
||||
public:
|
||||
config::Field<config::Toggle<Hotkey>> f_Enabled;
|
||||
config::Field<config::Toggle<Hotkey>> f_ApplyAnimation;
|
||||
config::Field<config::Toggle<Hotkey>> f_ResetAnimation;
|
||||
|
||||
static AnimationChanger& GetInstance();
|
||||
|
||||
|
@ -86,7 +86,7 @@ namespace cheat::feature
|
||||
autoDestroy.f_Range > manager.avatar()->distance(entity) &&
|
||||
(
|
||||
(autoDestroy.f_DestroyOres && game::filters::combined::Ores.IsValid(manager.entity(entity))) ||
|
||||
(autoDestroy.f_DestroyDoodads && game::filters::combined::Doodads.IsValid(manager.entity(entity))) ||
|
||||
(autoDestroy.f_DestroyDoodads && (game::filters::combined::Doodads.IsValid(manager.entity(entity)) || game::filters::chest::SBramble.IsValid(manager.entity(entity)))) ||
|
||||
(autoDestroy.f_DestroyShields && !game::filters::combined::MonsterBosses.IsValid(manager.entity(entity)) && (
|
||||
game::filters::combined::MonsterShielded.IsValid(manager.entity(entity)) || // For shields attached to monsters, e.g. abyss mage shields.
|
||||
game::filters::combined::MonsterEquips.IsValid(manager.entity(entity)) || // For shields/weapons equipped by monsters, e.g. rock shield.
|
||||
|
Loading…
Reference in New Issue
Block a user