multiplayer: fixes (squash 4da6)
This commit is contained in:
parent
4da6d0efba
commit
caaa09e517
1 changed files with 22 additions and 24 deletions
46
server.gd
46
server.gd
|
|
@ -3,15 +3,13 @@ extends Node3D
|
||||||
@onready var menu = $UI/Menu
|
@onready var menu = $UI/Menu
|
||||||
@onready var address_entry = $UI/Menu/MarginContainer/VBoxContainer/LineEdit
|
@onready var address_entry = $UI/Menu/MarginContainer/VBoxContainer/LineEdit
|
||||||
|
|
||||||
const PORT = 9999
|
const port = 9999
|
||||||
const PLAYER = preload("res://player/player.tscn")
|
const player_scene = preload("res://player/player.tscn")
|
||||||
var peer = ENetMultiplayerPeer.new()
|
var peer = ENetMultiplayerPeer.new()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _on_server_button_pressed() -> void:
|
func _on_server_button_pressed() -> void:
|
||||||
menu.hide()
|
menu.hide()
|
||||||
peer.create_server(PORT)
|
peer.create_server(port)
|
||||||
multiplayer.multiplayer_peer = peer
|
multiplayer.multiplayer_peer = peer
|
||||||
multiplayer.peer_connected.connect(add_player)
|
multiplayer.peer_connected.connect(add_player)
|
||||||
multiplayer.peer_disconnected.connect(remove_player)
|
multiplayer.peer_disconnected.connect(remove_player)
|
||||||
|
|
@ -19,34 +17,34 @@ func _on_server_button_pressed() -> void:
|
||||||
add_player(multiplayer.get_unique_id())
|
add_player(multiplayer.get_unique_id())
|
||||||
|
|
||||||
upnp_setup()
|
upnp_setup()
|
||||||
|
|
||||||
func _on_client_button_pressed() -> void:
|
func _on_client_button_pressed() -> void:
|
||||||
menu.hide()
|
menu.hide()
|
||||||
peer.create_client(address_entry.text,PORT)
|
peer.create_client(address_entry.text, port)
|
||||||
multiplayer.multiplayer_peer = peer
|
multiplayer.multiplayer_peer = peer
|
||||||
|
|
||||||
func add_player(peer_id):
|
func add_player(peer_id):
|
||||||
var player = PLAYER.instantiate()
|
var player = player_scene.instantiate()
|
||||||
player.name = str(peer_id)
|
player.name = str(peer_id)
|
||||||
add_child(player)
|
add_child(player)
|
||||||
|
|
||||||
func remove_player(peer_id):
|
func remove_player(peer_id):
|
||||||
var player = get_node_or_null(str(peer_id))
|
var player = get_node_or_null(str(peer_id))
|
||||||
if player:
|
if player:
|
||||||
player.queue_free()
|
player.queue_free()
|
||||||
|
|
||||||
func upnp_setup():
|
func upnp_setup():
|
||||||
var upnp = UPNP.new()
|
var upnp = UPNP.new()
|
||||||
|
|
||||||
var discover_result = upnp.discover()
|
if upnp.discover() != UPNP.UPNP_RESULT_SUCCESS:
|
||||||
assert(discover_result == UPNP.UPNP_RESULT_SUCCESS, \
|
return false
|
||||||
"UPNP Discover Failed! Error %s" % discover_result)
|
|
||||||
assert(upnp.get_gateway() and upnp.get_gateway().is_valid_gateway(), \
|
var gateway = upnp.get_gateway()
|
||||||
"UPNP Invalid Gateway!")
|
if not gateway.is_valid_gateway():
|
||||||
|
return false
|
||||||
var map_result = upnp.add_port_mapping(PORT)
|
|
||||||
assert(map_result == UPNP.UPNP_RESULT_SUCCESS, \
|
if upnp.add_port_mapping(port) != UPNP.UPNP_RESULT_SUCCESS:
|
||||||
"UPNP Port Mapping Failed ! Error %s" % map_result)
|
return false
|
||||||
|
|
||||||
print("Success! Join Adress: %s" % upnp.query_external_address())
|
print("Address: " + upnp.query_external_address())
|
||||||
|
return true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue