Improve latency when client is shooting

This commit is contained in:
Sofia 2026-07-20 20:35:31 +03:00
parent 0d7f5a6bf6
commit 33095ec1b9
2 changed files with 12 additions and 5 deletions

View File

@ -340,11 +340,16 @@ impl Game {
look_up: f32,
deal_damage: bool,
) -> bool {
let self_id = self.self_id.clone().unwrap_or(0);
if let Some(player) = self.find_player_mut(player_id) {
if player.id != self_id {
player.try_shoot(to, transform, look_up, deal_damage)
} else {
false
}
} else {
false
}
}
}

View File

@ -255,11 +255,13 @@ impl ICharacterBody3D for LocalPlayer {
if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer {
match peer {
PeerKind::Client(peer, addr) => {
if self.try_shoot(pos, false) {
peer.send_reliable(
addr,
Shoot(0, pos.into(), self.get_transform(), self.look_up),
);
}
}
PeerKind::Server(peer, _) => {
if self.try_shoot(pos, true) {
peer.broadcast_reliable(Shoot(