[testserver] y_bows: HUDCHANGE packet spam #6156
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/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/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
ugh/petz
ugh/QA main
ugh/QA NOK
ugh/QA OK
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: your-land/bugtracker#6156
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
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?
When I'm not holding a bow and as soon as I join the test server starts sending these packets every server step (red line is
0x4b
isHUDCHANGE
, green is total):Here's our attempt to narrow this down:
Idk what it is doing exactly, maybe removing hud? Because the packets do not contain any texture info:
whosit referenced this issue2024-02-01 06:59:40 +00:00
i see, i'm able to replicate this locally now. hm. i've got no idea what's going on here, but it does seem to be y_bow's fault.
oh, i figured one part of it out - apparently when checking whether a HUD parameter's value had changed, i've been using
==
to compare tables. that fixes most of it.however, i've got to do something to figure out loss of floating point precision:
Means, the loss would amount to 5.96045996e-9 ? Given that MT uses single blocky collision boxes for entities, there's no need to tell apart whether we shot the left or the right nostril?
this should fix it:
9858421c84
no, this is just in the HUD update manager. what's happening is that certain values that define the HUD (e.g. scale and position) are stored using 32 bit floats, whereas the values supplied by the lua code are 64 bit floats. if i try to compare the old HUD values to the new values, i need to account for the lost precision.
Since it's just hud, would it not make more sense to just subtract them and compare with some small enough "epsilon" value? Instead of using strings and pattern matching?
I think this may be related:
#5973
just not sure if I tried running wireshark at that time or not...
(seems like this spam may have been that cause of that bug...)
yeah, i think it's probably also responsible for the arrows stuck in the air too. too many spurious packets and the client gets confused.
HUDCHANGE
while spamming arrows on the test server (with a pause in the middle))live