Many fixes to networking, demo should work now

This commit is contained in:
Juan Linietsky 2016-08-19 18:44:09 -03:00
parent 1add52b55e
commit 2fa693273c
2 changed files with 14 additions and 4 deletions

View file

@ -285,8 +285,8 @@ void NetworkedMultiplayerENet::poll(){
incoming_packets.push_back(packet);
} else {
//to someone else, specifically
ERR_CONTINUE(!peer_map.has(source));
enet_peer_send(peer_map[source],0,packet.packet);
ERR_CONTINUE(!peer_map.has(target));
enet_peer_send(peer_map[target],0,packet.packet);
}
} else {

View file

@ -1760,6 +1760,17 @@ void SceneTree::_rpc(Node* p_from,int p_to,bool p_unreliable,bool p_set,const St
ERR_FAIL();
}
if (p_to!=0 && !connected_peers.has(ABS(p_to))) {
if (p_to==get_network_unique_id()) {
ERR_EXPLAIN("Attempt to remote call/set yourself! unique ID: "+itos(get_network_unique_id()));
} else {
ERR_EXPLAIN("Attempt to remote call unexisting ID: "+itos(p_to));
}
ERR_FAIL();
}
NodePath from_path = p_from->get_path();
ERR_FAIL_COND(from_path.is_empty());
@ -1816,7 +1827,6 @@ void SceneTree::_rpc(Node* p_from,int p_to,bool p_unreliable,bool p_set,const St
}
has_all_peers=false;
break;
}
}
@ -1990,10 +2000,10 @@ void SceneTree::_network_process_packet(int p_from, const Array& p_packet) {
message.resize(2);
message[0]=NETWORK_COMMAND_CONFIRM_PATH;
message[1]=path;
network_peer->put_var(message);
} break;
case NETWORK_COMMAND_CONFIRM_PATH: {
ERR_FAIL_COND(p_packet.size()!=2);
NodePath path = p_packet[1];