-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
get_player_control()
(probably bits as well) should work also when dead
#15663
Comments
Working as designed as far as we're concerned. If the player is dead they can't move, interact or press any keys. |
The fact I'm dead it doesn't mean the engine shouldn't check whether I'm pressing some keys. It's plenty of games out there where you can perform actions whilst dead, e.g. checking the leaderboard (usually with Tab). Practical example: Xonotic's clan arena, where if you die you must wait for the next round. There are nodes that prevents you from jumping, but as far as I know we keep track of the jump key anyway. Which is what I expect |
"Dead" is a theoretical construct that should be entirely under the control of the game, including what actions can be performed while in that state. |
Right now it isn't, so that would be a feature request. It's not obvious how to change this in a backwards incompatible manner, too. |
Why? Custom death screen wasn't a thing until 5.10, players had no chance to press keys whilst dead (as there was a formspec) |
Can't say for sure what sfan5 is thinking here, but I'd say because until now we have effectively 1 guaranteed this, so mods may rely on it and not validate controls from a dead player. Footnotes
|
Which is ironic, as two mods out of two (made by two different people) expected precisely the opposite :P (Yes, two people working on the same server, but we implemented the custom death screen at two different times without really talking with each other) |
No, it's because just dropping the "dead players can't do anything" code trivially opens up a cheat where the client just ignores death. If this were to be configurable the default should continue to be freezing players on death. |
I must say, this is highly frustrating. @immagiov4 and I spent days to clean up our fake death system so as to swap it with the built-in one (due to the new function), to only find out, after we implemented everything, that it can't be a substitute of what we had, even if there is no mention of such behaviour in the docs. Then, after reporting it, it gets labeled as a feature request and the problem is sent back at us, where we'll enjoy finding out how to revert the change without losing the features that we built upon in the meanwhile (as we didn't notice immediately). I mean, it's not like bug = instant fix, so we'd have to find a hacky solution anyway, but now we also have to hope for a concept approval. If I have to guess, more people will stumble upon this issue (only after having implemented everything) |
The root cause here is that we do not document all the hardcoded stuff the engine does. |
Which is ironically good in this case, because documenting it would have resulted in asking for a breaking change, making a thing that common games do even more unlikely to be featured (who knows when LT 6.0 is getting a release) To any core dev reading: do NOT document this |
get_player_control()
(probably bits as well) doesn't work when deadget_player_control()
(probably bits as well) should work also when dead
I‘m not sure whether my idea would belong to a mod or to the core, but here is it: |
To explain my 😕 reaction: Documenting things is good, because it avoids surprises like this one (for people who read the docs). And we can absolutely document things without giving guarantees.
Sounds to me like it would work fine. |
Luanti version
Summary
Title
Steps to reproduce
Either..
Or.. (didn't test but it should work)
The text was updated successfully, but these errors were encountered: