RPC请求出错,并且不了解该错误

时间:2019-07-07 17:54:02

标签: godot

我正在尝试使用godot制作专用服务器和客户端,我可以通过Internet连接到服务器,但是当我进行RPC时,出现此错误:

  

错误:找不到节点:gamestate
     在:scene / main / node.cpp:1382

     

错误:_process_get_node:无法从RPC获取路径:gamestate
     在:core / io / multiplayer_api.cpp:248

     

错误:收到无效的数据包。找不到请求的节点。
     在:core / io / multiplayer_api.cpp:194

服务器:

func _client_connected(id):
    print('Client ' + str(id) + ' is connected')
    var newClient = load("res://remote_client.tscn").instance()
    newClient.set_name(str(id))
    get_tree().get_root().add_child(newClient)
remote func _register_player_to_server(id, info):
    players_server[id] = info 

客户:

func connect_to_server(player_nickname, ip):
    self_data.name = player_nickname
    get_tree().connect('connected_to_server', self, '_connected_to_server')
    var peer = NetworkedMultiplayerENet.new()
    if ip == null or ip == '':
        peer.create_client(DEFAULT_IP, DEFAULT_PORT)
    else:
        peer.create_client(ip, DEFAULT_PORT)
    get_tree().set_network_peer(peer)

func _connected_to_server():
    players[get_tree().get_network_unique_id()] = self_data
    print("here")
    rpc_id(1, '_register_player_to_server', get_tree().get_network_unique_id(), self_data)
    print("wtf")

_conneccted_to_server()函数应该在服务器中调用_register_player_to_server()函数,然后该服务器存储玩家的价值信息。

请注意,客户端位于名为gamestate的单例中,并且该错误会显示在服务器的控制台中。

1 个答案:

答案 0 :(得分:0)

我的节点不在路径上(因此出现错误)。