Nicknames
This commit is contained in:
parent
337ba22bd3
commit
e269127a25
7 changed files with 134 additions and 14 deletions
|
|
@ -1,7 +1,7 @@
|
|||
extends Node
|
||||
|
||||
|
||||
const MAX_PLAYERS: int = 10
|
||||
const MAX_PLAYERS: int = 20
|
||||
const PORT: int = 7777
|
||||
|
||||
signal lobby_created
|
||||
|
|
@ -15,6 +15,8 @@ var attack_team: Array[int] = []
|
|||
var defence_team: Array[int] = []
|
||||
var specators_team: Array[int] = []
|
||||
|
||||
var client_nicknames: Dictionary[int,StringName] = {}
|
||||
|
||||
func _ready() -> void:
|
||||
multiplayer.peer_disconnected.connect(player_left)
|
||||
multiplayer.server_disconnected.connect(server_disconnected)
|
||||
|
|
@ -30,6 +32,9 @@ func player_left(id: int) -> void:
|
|||
defence_team.erase(id)
|
||||
elif specators_team.has(id):
|
||||
specators_team.erase(id)
|
||||
|
||||
client_nicknames.erase(id)
|
||||
|
||||
update_teams_state.emit()
|
||||
|
||||
func server_disconnected() -> void:
|
||||
|
|
@ -42,6 +47,7 @@ func host() -> void:
|
|||
lobby_created.emit()
|
||||
specators_team.append(multiplayer.get_unique_id())
|
||||
in_lobby = true
|
||||
client_nicknames = {1 : ClientSettings.NICKNAME}
|
||||
|
||||
func join(ip: String) -> Error:
|
||||
var peer: ENetMultiplayerPeer = ENetMultiplayerPeer.new()
|
||||
|
|
@ -67,7 +73,24 @@ func add_and_sync_peer(id: int) -> void:
|
|||
specators_team.append(id)
|
||||
update_teams_state.emit()
|
||||
set_teams.rpc_id(id,attack_team,defence_team,specators_team)
|
||||
|
||||
@rpc("any_peer","call_local","reliable")
|
||||
func recieve_client_data(data: Dictionary):
|
||||
if multiplayer.is_server() == false:
|
||||
return
|
||||
var id = multiplayer.get_remote_sender_id()
|
||||
|
||||
var nickname: StringName = data["nick"].left(16)
|
||||
client_nicknames[id] = nickname
|
||||
|
||||
sync_client_data.rpc(client_nicknames)
|
||||
|
||||
@rpc("authority","call_remote")
|
||||
func sync_client_data(new_client_nicknames: Dictionary[int,StringName]):
|
||||
if multiplayer.is_server() or multiplayer.get_remote_sender_id() != 1:
|
||||
return
|
||||
client_nicknames = new_client_nicknames
|
||||
|
||||
@rpc("authority","call_remote","reliable")
|
||||
func set_teams(attack: Array[int],defence: Array[int],spectators: Array[int]):
|
||||
attack_team = attack
|
||||
|
|
@ -145,6 +168,8 @@ func team_switch_notification(team: int) -> void:
|
|||
update_teams_state.emit()
|
||||
set_teams.rpc(attack_team,defence_team,specators_team)
|
||||
|
||||
|
||||
|
||||
func start_game() -> void:
|
||||
if not multiplayer.is_server():
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue