From ca2f507024f4f4b1d3baae04c1ef778caa706ab4 Mon Sep 17 00:00:00 2001 From: Rendo Date: Fri, 12 Dec 2025 01:44:21 +0500 Subject: [PATCH] Corrected team switch logic --- multiplayer/lobby.gd | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/multiplayer/lobby.gd b/multiplayer/lobby.gd index e99056c..b941281 100644 --- a/multiplayer/lobby.gd +++ b/multiplayer/lobby.gd @@ -75,7 +75,7 @@ func add_and_sync_peer(id: int) -> void: update_teams_state.emit() set_teams.rpc_id(id,attack_team,defence_team,specators_team) -@rpc("any_peer","call_remote","reliable") +@rpc("authority","call_remote","reliable") func set_teams(attack: Array[int],defence: Array[int],spectators: Array[int]): attack_team = attack defence_team = defence @@ -89,15 +89,7 @@ func swap_teams() -> void: if not multiplayer.is_server(): return - var temp_defenders = defence_team.duplicate() - - for attacker in attack_team: - server_team_switch.rpc(attacker,Session.TEAMS.DEFENCE) - - for defender in temp_defenders: - server_team_switch.rpc(defender,Session.TEAMS.ATTACK) - - update_peers.rpc() + set_teams.rpc(defence_team,attack_team,specators_team) @rpc("any_peer","call_local","reliable") func team_switch_notification(id: int, team: int) -> void: @@ -126,32 +118,6 @@ func team_switch_notification(id: int, team: int) -> void: update_teams_state.emit() -@rpc("authority","call_local","reliable") -func server_team_switch(id: int, team: int) -> void: - if multiplayer.get_remote_sender_id() != 1 and not multiplayer.is_server(): - return - - if team == Session.TEAMS.DEFENCE: - if attack_team.has(id): - attack_team.erase(id) - if specators_team.has(id): - specators_team.erase(id) - defence_team.append(id) - - if team == Session.TEAMS.ATTACK: - if defence_team.has(id): - defence_team.erase(id) - if specators_team.has(id): - specators_team.erase(id) - attack_team.append(id) - - if team == Session.TEAMS.SPECTATE: - if attack_team.has(id): - attack_team.erase(id) - elif defence_team.has(id): - defence_team.erase(id) - specators_team.append(id) - func start_game() -> void: if not multiplayer.is_server(): return