Skip to content

Commit c2d2718

Browse files
authored
Merge pull request #339 from Faless/mp/bomber_fix_pr
Use p2p in multiplayer bomber player exchange.
2 parents 85f36d6 + 38bfaba commit c2d2718

File tree

2 files changed

+14
-24
lines changed

2 files changed

+14
-24
lines changed

networking/multiplayer_bomber/gamestate.gd

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,23 @@ signal game_ended()
2020
signal game_error(what)
2121

2222
# Callback from SceneTree
23-
func _player_connected(_id):
24-
# This is not used in this demo, because _connected_ok is called for clients
25-
# on success and will do the job.
26-
pass
23+
func _player_connected(id):
24+
# Registration of a client beings here, tell the connected player that we are here
25+
rpc_id(id, "register_player", player_name)
2726

2827
# Callback from SceneTree
2928
func _player_disconnected(id):
30-
if get_tree().is_network_server():
31-
if has_node("/root/world"): # Game is in progress
29+
if has_node("/root/world"): # Game is in progress
30+
if get_tree().is_network_server():
3231
emit_signal("game_error", "Player " + players[id] + " disconnected")
3332
end_game()
34-
else: # Game is not in progress
35-
# If we are the server, send to the new dude all the already registered players
36-
unregister_player(id)
37-
for p_id in players:
38-
# Erase in the server
39-
rpc_id(p_id, "unregister_player", id)
33+
else: # Game is not in progress
34+
# Unregister this player
35+
unregister_player(id)
4036

4137
# Callback from SceneTree, only for clients (not server)
4238
func _connected_ok():
43-
# Registration of a client beings here, tell everyone that we are here
44-
rpc("register_player", get_tree().get_network_unique_id(), player_name)
39+
# We just connected to a server
4540
emit_signal("connection_succeeded")
4641

4742
# Callback from SceneTree, only for clients (not server)
@@ -56,18 +51,13 @@ func _connected_fail():
5651

5752
# Lobby management functions
5853

59-
remote func register_player(id, new_player_name):
60-
if get_tree().is_network_server():
61-
# If we are the server, let everyone know about the new player
62-
rpc_id(id, "register_player", 1, player_name) # Send myself to new dude
63-
for p_id in players: # Then, for each remote player
64-
rpc_id(id, "register_player", p_id, players[p_id]) # Send player to new dude
65-
rpc_id(p_id, "register_player", id, new_player_name) # Send new dude to player
66-
54+
remote func register_player(new_player_name):
55+
var id = get_tree().get_rpc_sender_id()
56+
print(id)
6757
players[id] = new_player_name
6858
emit_signal("player_list_changed")
6959

70-
remote func unregister_player(id):
60+
func unregister_player(id):
7161
players.erase(id)
7262
emit_signal("player_list_changed")
7363

networking/multiplayer_bomber/player.gd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ sync func setup_bomb(bomb_name, pos, by_who):
1313
bomb.set_name(bomb_name) # Ensure unique name for the bomb
1414
bomb.position = pos
1515
bomb.from_player = by_who
16-
# No need to set network mode to bomb, will be owned by master by default
16+
# No need to set network master to bomb, will be owned by server by default
1717
get_node("../..").add_child(bomb)
1818

1919
var current_anim = ""

0 commit comments

Comments
 (0)