This commit is contained in:
Torsten 2025-11-02 16:26:57 +01:00
parent c0021b5240
commit c1c5541ccd
24 changed files with 5977 additions and 692 deletions

View file

@ -0,0 +1,88 @@
Preparing the signals
```gdscript
func _ready():
host_button.pressed.connect(_on_host_pressed)
join_button.pressed.connect(_on_join_pressed)
multiplayer.peer_connected.connect(_on_peer_connected)
```
```gdscript
func _on_peer_connected(id: int):
print("my peer id: %s" % multiplayer.get_unique_id())
print("peer connected: %s" % id)
```
Starting a server
```gdscript
func _on_host_pressed() -> void:
const PORT=3000
var server_peer := ENetMultiplayerPeer.new()
server_peer.create(PORT)
multiplayer.multiplayer_peer = server_peer
```
Joining a server
```gdscript
func _on_join_pressed() -> void:
var client_peer := ENetMultiplayerPeer.new()
client_peer.create_client("127.0.0.1", PORT)
multipler.multiplayer_peer = client_peer
```
Sending RPC to server
```gdscript
```
Receiving RPC from host
```gdscript
```
Aus AWA:
```gdscript
func create_server():
log.start("create_server")
log.debug("port: "+str(port))
peer.peer_connected.connect(_on_peer_connected)
peer.peer_disconnected.connect(_on_peer_disconnected)
multiplayer_api = MultiplayerAPI.create_default_interface()
get_tree().set_multiplayer(multiplayer_api, self.get_path())
peer.create_server(port, 2000) # Max 2000 Scenes
if peer.get_connection_status()==MultiplayerPeer.CONNECTION_DISCONNECTED:
log.debug("Verbindungsaufbau fehlgeschlagen")
get_tree().quit()
multiplayer_api.multiplayer_peer = peer
```
```gdscript
func connect_client():
log.start("connect_client")
peer = ENetMultiplayerPeer.new()
log.debug("host=" + host + ", port=" + str(port))
multiplayer_api = MultiplayerAPI.create_default_interface()
get_tree().set_multiplayer(multiplayer_api, self.get_path())
peer.create_client(host, port)
peer.peer_connected.connect(_on_peer_connected)
peer.peer_disconnected.connect(_on_peer_disconnected)
if peer.get_connection_status() == MultiplayerPeer.CONNECTION_DISCONNECTED:
log.debug("Verbindungsaufbau fehlgeschlagen. SceneHost="+str(host)+", port="+str(port))
#get_tree().quit()
multiplayer_api.multiplayer_peer=peer
```
```gdscript
func request_send_chatline(txt:String):
rpc_id(1,"rpc_cs_send_chatline", txt) # 1=peer_id vom master server
@rpc("any_peer") func rpc_cs_send_chatline(txt:String):
pass # Implementation not needed on client
```