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