mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-06 07:50:22 +01:00
simple multiplayer: Simplify some redundant calls
This commit is contained in:
@@ -3,6 +3,9 @@ extends Node
|
||||
# Default game port
|
||||
const DEFAULT_PORT = 10567
|
||||
|
||||
# Max number of players
|
||||
const MAX_PEERS = 12
|
||||
|
||||
# Name for my player
|
||||
var player_name = "The Warrior"
|
||||
|
||||
@@ -55,11 +58,10 @@ func _connected_fail():
|
||||
|
||||
remote func register_player(id, name):
|
||||
if (get_tree().is_network_server()):
|
||||
# If we are the server, let everyone know about the new players
|
||||
# If we are the server, let everyone know about the new player
|
||||
rpc_id(id, "register_player", 1, player_name) # Send myself to new dude
|
||||
for p_id in players: # Then, for each remote player
|
||||
rpc_id(id, "register_player", p_id, players[p_id]) # Send player to new dude
|
||||
rpc_id(p_id, "register_player", id, name) # Send new dude to player
|
||||
|
||||
players[id] = name
|
||||
emit_signal("player_list_changed")
|
||||
@@ -77,21 +79,21 @@ remote func pre_start_game(spawn_points):
|
||||
|
||||
var player_scene = load("res://player.tscn")
|
||||
|
||||
for p in spawn_points:
|
||||
var spawn_pos = world.get_node("spawn_points/" + str(spawn_points[p])).get_pos()
|
||||
for p_id in spawn_points:
|
||||
var spawn_pos = world.get_node("spawn_points/" + str(spawn_points[p_id])).get_pos()
|
||||
var player = player_scene.instance()
|
||||
|
||||
player.set_name(str(p)) # Use unique ID as node name
|
||||
player.set_name(str(p_id)) # Use unique ID as node name
|
||||
player.set_pos(spawn_pos)
|
||||
|
||||
if (p == get_tree().get_network_unique_id()):
|
||||
if (p_id == get_tree().get_network_unique_id()):
|
||||
# If node for this peer id, set master
|
||||
player.set_network_mode(NETWORK_MODE_MASTER)
|
||||
player.set_player_name(player_name)
|
||||
else:
|
||||
# Otherwise set slave
|
||||
player.set_network_mode(NETWORK_MODE_SLAVE)
|
||||
player.set_player_name(players[p])
|
||||
player.set_player_name(players[p_id])
|
||||
|
||||
world.get_node("players").add_child(player)
|
||||
|
||||
@@ -125,7 +127,7 @@ remote func ready_to_start(id):
|
||||
func host_game(name):
|
||||
player_name = name
|
||||
var host = NetworkedMultiplayerENet.new()
|
||||
host.create_server(DEFAULT_PORT, 4)
|
||||
host.create_server(DEFAULT_PORT, MAX_PEERS)
|
||||
get_tree().set_network_peer(host)
|
||||
|
||||
func join_game(ip, name):
|
||||
|
||||
@@ -34,11 +34,10 @@ func _on_join_pressed():
|
||||
get_node("connect/error_label").set_text("")
|
||||
get_node("connect/host").set_disabled(true)
|
||||
get_node("connect/join").set_disabled(true)
|
||||
get_node("players/start").set_disabled(true)
|
||||
|
||||
var name = get_node("connect/name").get_text()
|
||||
gamestate.join_game(ip, name)
|
||||
refresh_lobby()
|
||||
# refresh_lobby() gets called by the player_list_changed signal
|
||||
|
||||
func _on_connection_success():
|
||||
get_node("connect").hide()
|
||||
|
||||
Reference in New Issue
Block a user