Справка по сети Godot: «RPC 'updateDataPos' не разрешен из: 1. Режим равен 0, мастер равен 1." - PullRequest
0 голосов
/ 05 ноября 2019

Я не могу решить эту ошибку, независимо от того, что я пытаюсь: "RPC 'updateDataPos' не разрешен из: 1. Режим 0, мастер 1."

У меня подключены два узла, одинэто сервер (id 1), другой имеет уникальный сетевой идентификатор.

Спасибо за помощь!

obby.gd

...
    get_tree().connect("network_peer_connected", self, "_player_connected")
    get_tree().connect("network_peer_disconnected", self,   "_player_disconnected")
    get_tree().connect("connected_to_server", self, "_connected_ok")
    get_tree().connect("connection_failed", self, "_connected_fail")
    get_tree().connect("server_disconnected", self, "_server_disconnected")
...
    glob.player_info["net_id"] = id
    if not get_tree().is_network_server():
        var multigame = preload("res://scenes//Play.scn").instance()
        var uid = get_tree().get_network_unique_id()
        get_tree().get_root().add_child(multigame)  
    else:
        var multigame2 = preload("res://scenes//Play.scn").instance()
        multigame2.set_name(str(1))
        multigame2.set_network_master(1)
        multigame2.connect("game_finished",self,"_end_game",[],CONNECT_DEFERRED) 
        get_tree().get_root().add_child(multigame2) 
...

Play.gd

...
    if global.multiplayer_game and is_network_master() and global.client_connected and global.player_info["net_id"] != 1 and get_tree().is_network_server():
        get_tree().get_root().rpc_id(global.player_info["net_id"], "updateDataPos", r_pos_x, r_pos_y)
...
remote func updateDataPos(rposx, rposy):
    r_pos_x = rposx
    r_pos_y = rposy
...

1 Ответ

0 голосов
/ 14 ноября 2019

get_tree (). Get_root (). Rpc_id (global.player_info ["net_id"], "updateDataPos", r_pos_x, r_pos_y)

Это вызовет удаленную процедуру updateDataPos на корневом узле дерева сцены, который отражает global.player_info["net_id"]. Вы захотите вызвать rpc_id() для экземпляра узла Play.gd, т. Е. Узел Play.gd подключен к.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...