Improve latency when client is shooting
This commit is contained in:
parent
0d7f5a6bf6
commit
33095ec1b9
@ -340,8 +340,13 @@ 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) {
|
||||
player.try_shoot(to, transform, look_up, deal_damage)
|
||||
if player.id != self_id {
|
||||
player.try_shoot(to, transform, look_up, deal_damage)
|
||||
} else {
|
||||
false
|
||||
}
|
||||
} else {
|
||||
false
|
||||
}
|
||||
|
||||
@ -255,10 +255,12 @@ impl ICharacterBody3D for LocalPlayer {
|
||||
if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer {
|
||||
match peer {
|
||||
PeerKind::Client(peer, addr) => {
|
||||
peer.send_reliable(
|
||||
addr,
|
||||
Shoot(0, pos.into(), self.get_transform(), self.look_up),
|
||||
);
|
||||
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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user