Advertisement
sytchenko

Godot. ENet Multiplayer Client gdscript

Feb 14th, 2025 (edited)
333
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. extends Node
  2.  
  3. var peer := ENetMultiplayerPeer.new()
  4. var auth_token := "my_secret_token"  # Установите токен
  5. var is_authorized := false
  6.  
  7. func _ready():
  8.     pass
  9.  
  10. func _on_peer_connected(id):
  11.     print("Подключено к серверу, ID:", id)
  12.     var playerId = multiplayer.get_unique_id()
  13.     print("Unique ID:", playerId)
  14.     $ButtonDisconnect.disabled = false
  15.     send_auth_request()
  16.  
  17. func _on_peer_disconnected(id):
  18.     print("Отключено от сервера, ID:", id)
  19.     is_authorized = false
  20.     multiplayer.multiplayer_peer.close()
  21.     multiplayer.peer_connected.disconnect(_on_peer_connected)
  22.     multiplayer.peer_disconnected.disconnect(_on_peer_disconnected)
  23.     #multiplayer.multiplayer_peer = null
  24.     $ButtonConnect.disabled = false
  25.     $ButtonDisconnect.disabled = true
  26.  
  27. func send_auth_request():
  28.     rpc_id(1, "authorize", auth_token)
  29.  
  30. @rpc("any_peer")
  31. func authorize(success: bool):
  32.     is_authorized = success
  33.     if success:
  34.         print("Авторизация успешна")
  35.     else:
  36.         print("Ошибка авторизации")
  37.         multiplayer.multiplayer_peer.close()
  38.  
  39. @rpc("any_peer")
  40. func receive_message(msg: String):
  41.     print("Ответ от сервера:", msg)
  42.  
  43. func send_message(msg: String):
  44.     if is_authorized:
  45.         rpc_id(1, "receive_message", msg)
  46.     else:
  47.         print("Сообщение не отправлено: не авторизован")
  48.  
  49. func _input(event):
  50.     if event.is_action_pressed("ui_accept"):
  51.         send_message("GET_SCORE:1")
  52.     elif event.is_action_pressed("ui_cancel"):
  53.         send_message("UPDATE_SCORE:1,100")
  54.  
  55.  
  56. func _on_button_connect_pressed() -> void:
  57.     $ButtonConnect.disabled = true
  58.     peer.create_client("127.0.0.1", 9090)
  59.     multiplayer.multiplayer_peer = peer
  60.     multiplayer.peer_connected.connect(_on_peer_connected)
  61.     multiplayer.peer_disconnected.connect(_on_peer_disconnected)
  62.     print("Подключаемся к серверу...")
  63.  
  64.  
  65. func _on_button_disconnect_pressed() -> void:
  66.     $ButtonDisconnect.disabled = true
  67.     #peer.host.destroy()
  68.     multiplayer.multiplayer_peer.close()
  69.     multiplayer.peer_connected.disconnect(_on_peer_connected)
  70.     multiplayer.peer_disconnected.disconnect(_on_peer_disconnected)
  71.     $ButtonConnect.disabled = false
  72.     pass # Replace with function body.
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement