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
Revert "Remove a lot of p_* vars" #2931
base: master
Are you sure you want to change the base?
Conversation
This reverts commit 076d8c6.
I don't think this is that exploitable, so I'm ok with merging this, but let's wait a few days before we do. |
what are the risks/benefits? from what i see an read in the discussions p_hp and p_ammo are the only problematic ones with the use of auto reload and auto medikit. If that functionality is desired why not enable it by default for all players instead of having it as a hidden enhancement for scripting players. When its not wanted that everyone can do this, then it should also not be allowed for scripts. |
I mean I don't consider any of those are exploits and if someone were to make a PR with nice UX implementing them, I think it would be fine 🤷♂️ |
My philosophy of preventing cheaty actions with the vanilla software is similar to the idea that locks on doors are not for keeping out determined criminals, but rather nosy neighbors. Locking the lock demarcates a clear boundary so that someone who violates it is clearly doing bad, not just curious or something. It has value even if local burglars have super skeleton keys. So ideally binds would not be excessively powerful and anything that is possible to do with binds would be a clearly permitted action that a player need not feel guilty about. But modifying the software to automate game-playing actions would be clearly crossing the line like breaking a lock.
In the commit message I mentioned a couple of others having potential but they're not terribly concerning to me :
|
There was another motivation for removing these which was that according to @illwieckz, all the I just checked the origin of the p_availableBuildings thing and it actually was intended for binds. Although I doubt whether having it omit locked buildings is desirable. I think people would just want to memorize "armory is 3 clicks up" not "armory is 3 clicks if the rocketpod is unlocked or 2 clicks if it's not".
|
If I'm right this PR fixed the performance issue: |
But a lot of the stuff is not going to work now without reverting #2986, since the function is only called on class or team change. Ammo and HP change frequently. |
Ah yes! Also in general I'm not supper happy with the idea of turning the bind system into a complete language (which maybe already is). I always found weird to stumble on some old wiki page explaining extensive programmable bind design as the pinacle of what a game would give to user so they can program their own build to start getting something usable. At the same time we did not have access to simple things like cycling the weapons with the mouse roll, and weapons were things you have to cycle in a selection list and they activate like you would buy something… My opinion is that we would better implement usable binds than to implement a programming language each user can use to fix the game. And that's what we did (we implemented weapon cycling, improved buildable marking and deconstruction, etc.). |
This is an open source game. Once the cheat police takes over, we might as well depart.