Many fixes to networking, demo should work now
This commit is contained in:
parent
1add52b55e
commit
2fa693273c
2 changed files with 14 additions and 4 deletions
|
@ -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 {
|
||||
|
||||
|
|
|
@ -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];
|
||||
|
||||
|
|
Loading…
Reference in a new issue