docs: fix Lobby plan (_broadcast_player_left, cd commands) and spec
This commit is contained in:
@@ -58,7 +58,7 @@ signal game_started()
|
||||
|
||||
### Anpassung: `_on_peer_disconnected`
|
||||
|
||||
Beide Dicts bereinigen und beide Signale emittieren:
|
||||
Server bereinigt lokal und broadcastet den Disconnect an alle anderen Clients:
|
||||
|
||||
```gdscript
|
||||
func _on_peer_disconnected(id: int) -> void:
|
||||
@@ -66,9 +66,20 @@ func _on_peer_disconnected(id: int) -> void:
|
||||
players.erase(id)
|
||||
peer_disconnected.emit(id)
|
||||
player_left.emit(id)
|
||||
_broadcast_player_left.rpc(id) # andere Clients informieren
|
||||
print("[Server] Peer getrennt: %d" % id)
|
||||
```
|
||||
|
||||
### Neues RPC: `_broadcast_player_left` (Server → alle anderen Clients)
|
||||
|
||||
```gdscript
|
||||
# call_remote: Server hat bereits lokal gelöscht; nur Clients führen aus
|
||||
@rpc("authority", "call_remote", "reliable")
|
||||
func _broadcast_player_left(peer_id: int) -> void:
|
||||
players.erase(peer_id)
|
||||
player_left.emit(peer_id)
|
||||
```
|
||||
|
||||
### Neues RPC: `register` (Client → Server)
|
||||
|
||||
```gdscript
|
||||
|
||||
@@ -53,6 +53,7 @@ func _on_peer_disconnected(id: int) -> void:
|
||||
players.erase(id)
|
||||
peer_disconnected.emit(id)
|
||||
player_left.emit(id)
|
||||
_broadcast_player_left.rpc(id)
|
||||
print("[Server] Peer getrennt: %d" % id)
|
||||
```
|
||||
|
||||
@@ -130,6 +131,13 @@ func request_start_game() -> void:
|
||||
@rpc("authority", "call_local", "reliable")
|
||||
func start_game() -> void:
|
||||
game_started.emit()
|
||||
|
||||
|
||||
# call_remote: Server hat lokal bereits gelöscht; nur Clients führen aus
|
||||
@rpc("authority", "call_remote", "reliable")
|
||||
func _broadcast_player_left(peer_id: int) -> void:
|
||||
players.erase(peer_id)
|
||||
player_left.emit(peer_id)
|
||||
```
|
||||
|
||||
- [ ] **Step 2: Einrückung prüfen (Tabs, nicht Spaces)**
|
||||
@@ -366,7 +374,7 @@ git commit -m "net: add lobby scene instance to main.tscn"
|
||||
- [ ] **Step 1: Server headless starten**
|
||||
|
||||
```bash
|
||||
# aus ruf-der-pilze/
|
||||
cd /home/mpuchstein/Dev/Godot/DnD_Anna_OneShot/ruf-der-pilze
|
||||
godot --headless -- --server
|
||||
```
|
||||
|
||||
@@ -396,8 +404,7 @@ Server-Terminal:
|
||||
|
||||
Zweiten Godot-Prozess starten (z.B. über Terminal):
|
||||
```bash
|
||||
# aus ruf-der-pilze/
|
||||
godot
|
||||
cd /home/mpuchstein/Dev/Godot/DnD_Anna_OneShot/ruf-der-pilze && godot
|
||||
```
|
||||
|
||||
Name "Marie", Rolle "DM", "Beitreten".
|
||||
|
||||
Reference in New Issue
Block a user