AUTO 射击模式改用 start/stop 网络模型#688
Conversation
…bullet High-RPM weapons (e.g. minigun at 1200 RPM) suffered from intermittent shooting on remote servers due to network jitter causing timestamp validation failures on every per-bullet packet. Now AUTO mode (and continuous BURST) sends only start/stop packets. The server drives shooting in its tick loop, eliminating sensitivity to network timing. Client still locally drives animation/sound.
|
和我之前兼容1200+射速的思路好像…感觉挺有用的 |
本质就是纯 client 发 shoot 包转为 client 下"指令"改变状态,大量发包的情境下总是无法忽略网络延迟的。 |
如果帮忙实现了更高射速会考虑合并吗,我当时的策略是把射击和创建子弹实体分开,让一个实体对目标计算多次伤害 |
可以考虑分阶段 PR 【? |
比如说,你可以看一下我之前的pr,不过一直没得到回复这个 |
看过了才提及的( |
好的,谢谢 |
|
唉,不好意思,自从毕业后一直没啥时间,我找个时间处理下;这块也是巨大屎山,之前他们写的一堆神秘状态我也一直不敢下手)总之还是感谢 |
辛苦 |
…start-stop # Conflicts: # src/main/java/com/tacz/guns/client/input/ShootKey.java
将全自动射击模式(AUTO 及 continuous_shoot=true 的 BURST)从逐发发包改为 start/stop 模型,由服务端 tick 循环驱动射击
解决高射速武器(如 minigun,1200 RPM)在远程服务器上因网络抖动导致射击不流畅的问题
改动内容
类似 #634 #635 ,本 PR 旨在提供最简单的改进,用于修复现有的高射速武器(如转管机枪)的丢 shoot 问题,更高射速的适配暂未考虑