Advertisement
-Mappleaf

Untitled

Jan 15th, 2022
2,132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. =========Main Server, Server.gd=========
  2. extends Node
  3.  
  4. var network = NetworkedMultiplayerENet.new()
  5. var port = 30004
  6. var max_shards = 4
  7.  
  8.  
  9. func _ready() -> void:
  10.     StartServer()
  11.  
  12.  
  13. func StartServer() -> void:
  14.     network.create_server(port, max_shards)
  15.     get_tree().set_network_peer(network)
  16.     print("Server started")
  17.    
  18.     network.connect("peer_connected", self, "_peer_connected")
  19.     network.connect("peer_disconnected", self, "_peer_disconnected")
  20.  
  21. remote func PingRequest(client_id) -> void:
  22.     print("Ping requested")
  23.     var result = DB.readDataFromTableNoID("NetTest")[0].Result
  24.     rpc_id(get_tree().get_rpc_sender_id(), "PingRequestResult", client_id, result)
  25.  
  26.  
  27. func _peer_connected(peer_id) -> void:
  28.     print("Shard " + str(peer_id) + " connected")
  29.  
  30. func _peer_disconnected(peer_id) -> void:
  31.     print("Shard " + str(peer_id) + " disconnected")
  32. ===========================================================================================
  33.  
  34.  
  35. =========Shard, Server.gd=========
  36. extends Node
  37.  
  38. var network: NetworkedMultiplayerENet = NetworkedMultiplayerENet.new()
  39. var ip: String = "127.0.0.1"
  40. var port: int = 30004
  41.  
  42.  
  43. func _ready() -> void:
  44.     ConnectToServer()
  45.  
  46.  
  47. func ConnectToServer() -> void:
  48.     network.create_client(ip, port)
  49.     get_tree().set_network_peer(network)
  50.    
  51.     network.connect("connection_failed", self, "_on_connection_failed")
  52.     network.connect("connection_succeeded", self, "_on_connection_succeeded")
  53.  
  54. func RequestPing(client_id) -> void:
  55.     print("Requesting ping from server")
  56.     rpc_id(1, "PingRequest", client_id)
  57.  
  58. remote func PingRequestResult(client_id, result: String) -> void:
  59.     print("Recieved server ping")
  60.     Shard.SendPingRequestResult(client_id, result)
  61.  
  62.  
  63. func _on_connection_failed() -> void:
  64.     print("Failed to connect to server")
  65.  
  66. func _on_connection_succeeded() -> void:
  67.     print("Connected to server")
  68. ===========================================================================================
  69.  
  70.  
  71. =========Shard, Shard.gd=========
  72. extends Node
  73.  
  74. var network: NetworkedMultiplayerENet = NetworkedMultiplayerENet.new()
  75. var shard_api: MultiplayerAPI = MultiplayerAPI.new()
  76. var port: int = 30000
  77. var max_clients: int = 100
  78.  
  79.  
  80. func _ready() -> void:
  81.     StartServer()
  82.  
  83. func _process(_delta) -> void:
  84.     if !custom_multiplayer.has_network_peer():
  85.         return
  86.     custom_multiplayer.poll()
  87.  
  88.  
  89. func StartServer() -> void:
  90.     network.create_server(port, max_clients)
  91.     set_custom_multiplayer(shard_api)
  92.     custom_multiplayer.set_root_node(self)
  93.     custom_multiplayer.set_network_peer(network)
  94.     print("Shard server started")
  95.    
  96.     network.connect("peer_connected", self, "_peer_connected")
  97.     network.connect("peer_disconnected", self, "_peer_disconnected")
  98.  
  99. remote func Ping(data: String) -> void:
  100.     print("pinged")
  101.     if data == "Ping":
  102.         print("correct request")
  103.         Server.RequestPing(get_tree().get_rpc_sender_id())
  104.     else:
  105.         print("incorrect request")
  106.         rpc_id(get_tree().get_rpc_sender_id(), "TestRequestResult", "Unrecognized")
  107.  
  108. func SendPingRequestResult(client_id, result: String) -> void:
  109.     print("Recieved ping on shard, sending it to client")
  110.     rpc_id(client_id, "TestRequestResult", result)
  111.  
  112.  
  113. func _peer_connected(peer_id) -> void:
  114.     print("Client " + str(peer_id) + " connected")
  115.  
  116. func _peer_disconnected(peer_id) -> void:
  117.     print("Client " + str(peer_id) + " disconnected")
  118. ===========================================================================================
  119.  
  120.  
  121. =========Client, Shard.gd=========
  122. extends Node
  123.  
  124. var network = NetworkedMultiplayerENet.new()
  125. var ip = "127.0.0.1"
  126. var port = 30000
  127.  
  128.  
  129. func ConnectToServer() -> void:
  130.     network.create_client(ip, port)
  131.     get_tree().set_network_peer(network)
  132.    
  133.     network.connect("connection_failed", self, "_on_connection_failed")
  134.     network.connect("connection_succeeded", self, "_on_connection_succeeded")
  135.  
  136. func TestRequest(data: String) -> void:
  137.     rpc_id(1, "Ping", data)
  138.  
  139. remote func TestRequestResult(result: String) -> void:
  140.     print(result)
  141.  
  142.  
  143. func _on_connection_failed() -> void:
  144.     print("Failed to connect")
  145.  
  146. func _on_connection_succeeded() -> void:
  147.     print("Connected")
  148.     TestRequest("Ping")
  149.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement