daydream reports: you know how build in place al ... #7928
Labels
No Label
1. kind/balancing
1. kind/breaking
1. kind/bug
1. kind/construction
1. kind/documentation
1. kind/enhancement
1. kind/griefing
1. kind/invalid
1. kind/meme
1. kind/node limit
1. kind/other
1. kind/protocol
2. prio/controversial
2. prio/critical
2. prio/elevated
2. prio/good first issue
2. prio/interesting
2. prio/low
3. source/art
3. source/client
3. source/engine
3. source/ingame
3. source/integration
3. source/lag
3. source/license
3. source/mod upstream
3. source/petz
3. source/testserver
3. source/unknown
3. source/website
4. step/approved
4. step/at work
4. step/blocked
4. step/discussion
4. step/help wanted
4. step/needs confirmation
4. step/partially fixed
4. step/QA main
4. step/QA NOK
4. step/QA OK
4. step/question
4. step/ready to deploy
4. step/ready to QA test
4. step/want approval
5. result/cannot reproduce
5. result/duplicate
5. result/fixed
5. result/maybe
5. result/wontfix
No Milestone
No project
No Assignees
10 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: your-land/bugtracker#7928
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
daydream reports a bug:
Player position:
Player look:
Player information:
Player meta:
Log identifier
Profiler save:
Status:
Teleport command:
Compass command:
I love this idea
Problem is x-ray is a function of 'build where you are' which is not only an engine option choice but a much needed one in many innocent cases. And players already can't build in a protected quest area or mini game area, only for a second they can, and that makes gaming unfair.
The only way around this that I can think of is if you engage in build where you are in protected space, you get sent to spawn. This could be on the SECOND attempt tho because the first can always been an accident.
It's a hard one, but build where you are is a client setting anyways. Having even one 'x-ray' look at things in a mini game can give a wild advantage... but we'll have to think outside the box to counter-act it I think.
send to spawn?
area ban from mini game or quest area?
let stay but eliminate from prizes?
I bet if you get eliminated from prizes, a whole lot less accidents happen!
There's more than one way to end up with your head inside a block, even with "build where you are" option turned off - both using additional items, or just engine quirks (just turn it off and experiment a little :p). So, whatever this option is set to, it's just for player's convenience during building, it can't prevent cheating even if you force it off (and you can't...).
What you really want, is to detect if player's view is inside the block. Then, you can start suffocating them, making them "blind", etc.
I noticed that in singleplayer, game detects when my head is inside the block and makes my view completely black. Using same client, I get "X-ray" effect on YL. Idk why? MTG difference?
But even with this black screen effect, I can position myself in such a way that the camera position is outside the block (-> no black screen), but almost half of the viewing frustum is still inside - and I get same x-ray view.
Ideally this should be fixed in the engine. Client additionaly should gently push players outside the block if they get inside...
Apparently
enable_build_where_you_stand
is NOT a serverside configuration, but a clientside one.Means, anyone could negate any damage if they placed a block at their feet and gain xray when placing a block at their head. Neither is intended, but it is clearly a bug/cheat/...
Repro:
Enable clientside https://github.com/minetest/minetest/blob/master/minetest.conf.example#L29
Place a block at head level: xray
Place a block at feet level: no more damage
Question is how do we prevent this? How do we express "The head is inside a block"? We can't simply query the position above the feet and blind the player if this position is not-air. There are slabs where the player might fit below.
Same goes for the feet: We can't simply suffocate or move the player when his foot position is at the same rounded pos like a block.
We also can't rely on the hitbox, it might overlap with a corner.
How do we technically say "the position of the feet" or "the position of the eyes" are inside a block?
Can a raycast say whether we're inside or outside?
Some tests:
There is
https://github.com/minetest/minetest/blob/master/doc/lua_api.md?plain=1#L9932
damage_per_second = 0
we could apply this to each and every block :P
There is
https://github.com/minetest/minetest/blob/master/builtin/game/item_entity.lua#L185
That's how item entities are forced out of blocks, but apparently that only works for full blocks, not for slabs or any other
If the build in of head and legs is a problem, then certainly also the lateral view of walls via "C".
Full block at feet (and possibly head) can happen during mining quite often (when loose sand or gravel falls on to of your head).
So if one block of sand falls at you and ends at your feet, does that protect you from monsters as well?
I think the fix should be to change monsters to be able to hit head of the player, as being submerged in blocks can happen quite easily also in legitimate way.
Also, on some other servers, if you are fully within a solid block, you lose breath like if you are submerged in a liquid. This way you can't stay inside such block for very long, otherwise you'll suffocate to death. If this is not enabled here, maybe enable that as well?
Well we can test it, can't we?
That might be countered by use of Gilly-staff like in Liquid.
Second attempt:
I can do one thing, I can program a mod that prevents building nodes over your head in a certain area
Your head/position does not need to be inside the node to get the x-ray effect, only your viewing frustum:
My feet are between two air blocks here, with the camera position also in an air block, only frustum clipping.
You also don't need to build anything "above" you. It's possible to build below and "fall through". Or drop falling block on your head, or use a contraption:

(contraption here is more for visual effect, just jumping and placing 2 blocks below you as you land is very easy and quick)
For this configuration, both versions of code that Alias posted above say "false".
My two cents:
enable_build_where_you_stand
for servers already: https://content.luanti.org/packages/LMD/disable_build_where_they_stand/c
to get into 3rd person view and move your mouse until you can see through parts of the wall. I don't think there is a way to detect players abusing that bug...IMO it's not much use to fight the "x-ray bc. the head is in a block" if it's that easy to x-ray without having the head stuck in a block...