Disconnect Logic

This commit is contained in:
torsten 2026-02-15 13:09:21 +01:00
parent 5fbdc61bec
commit 83b109e4bc

View file

@ -27,6 +27,7 @@ func host_game():
peer.create_server(PORT, MAX_CLIENTS)
multiplayer.multiplayer_peer = peer
multiplayer.peer_connected.connect(_on_player_connected)
multiplayer.peer_disconnected.connect(_on_player_disconnected)
print("Server gestartet. id=" + str(multiplayer.get_unique_id()))
func join_game(ip = "127.0.0.1"):
@ -39,6 +40,17 @@ func _on_player_connected(id):
# Standardmäßig in Area 1 starten
change_player_area(id, "keuwin_grasland")
func _on_player_disconnected(id):
if not multiplayer.is_server(): return
print("Player disconnected with id: ", id)
# Der MultiplayerSpawner entfernt den Node automatisch aus dem Szenenbaum.
# Unsere einzige Aufgabe ist es, unseren internen Zustand aufzuräumen.
if player_worlds.has(id):
print("Removing player ", id, " from internal tracking.")
player_worlds.erase(id)
func change_player_area(id: int, area_key: String):
if not multiplayer.is_server(): return
print("Server is loading ", area_key)