Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some issues regarding PushActorAway #202

Open
oto-git opened this issue May 6, 2023 · 0 comments
Open

Some issues regarding PushActorAway #202

oto-git opened this issue May 6, 2023 · 0 comments

Comments

@oto-git
Copy link

oto-git commented May 6, 2023

[1]During ragdolls in PushActorAway, the KnockedState is not updated.
In the ragdoll state of PushActorAway, if Stamina becomes less than 0 or Essential Actor's Health becomes 0 (Essential Death state), the KnockedState value is not updated and GetKnockedState returns 0.
(GetKnockedState is not updated even though the OnKnockout event may occur.)

[2]Issue that occurs when the OnKnockout event occurs in the lagdoll state of PushActorAway.
We have confirmed that after registering the OnKnockout event handler, if the OnKnockout event occurs in the ragdoll state of the PushActorAway, the OnKnockout event occurs every frame until the actor's get-up motion occurs.

Checking the GetKnockedState of the actor that is firing the OnKnockout event at this time returns 0, which may be related to the problem described in [1].

[3]There is no reliable means of obtaining Player's ragdoll status.
When a ragdoll becomes a ragdoll by PushActorAway, if it is an NPC, it can be judged to be in ragdoll if (Actor.IsAnimPlaying + Actor.IsIdlePlaying) == 0.
However, in the case of the player, IsAnimPlaying returns 1 even during ragdolls, so the above means cannot be used.
(We checked the animation status of the player during ragdoll and confirmed that "Player.IsAnimGroupPlaying Idle" returns 1, so the Idle motion is also playing during the player's ragdoll. When we checked by running "IsAnimGroupPlaying Idle" on the NPC during ragdoll, it returned 0, so it seems to be a player-only phenomenon.)

Unfortunately, there is no way to accurately determine if a Player is in ragdoll only, so it is not possible to interrupt a process that should not be done during ragdoll.
(For example, the "Combat Additions" mod executes SetAngle every frame when locking on, but if the user is blown up by PushActorAway at this time, the SetAngle execution causes the user to remain motionless while standing on a stick, and after a while, a sudden getting up motion is played. Even if I wanted to fix it myself, I can't because there is no way to identify the ragdolls.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant