Example #1
0
unsigned int CNetServer::RPC(RPCIdentifier rpcId, CBitStream * pBitStream, ePacketPriority priority, ePacketReliability reliability, EntityId playerId, bool bBroadcast, char cOrderingChannel)
{

	if(playerId != INVALID_ENTITY_ID && !IsPlayerConnected(playerId))
		return 0;

	CBitStream bitStream;
	bitStream.Write((PacketId)PACKET_RPC);
	bitStream.Write(rpcId);

	if(pBitStream)
		bitStream.Write((char *)pBitStream->GetData(), pBitStream->GetNumberOfBytesUsed());

	return m_pRakPeer->Send((char *)bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), (PacketPriority)priority, (PacketReliability)reliability, cOrderingChannel, 
		(playerId == INVALID_ENTITY_ID) ? RakNet::UNASSIGNED_SYSTEM_ADDRESS : m_pRakPeer->GetSystemAddressFromIndex(playerId), bBroadcast);
}
unsigned int CNetClient::RPC(RPCIdentifier rpcId, CBitStream * pBitStream, ePacketPriority priority, ePacketReliability reliability, char cOrderingChannel)
{
	if(IsConnected())
	{
		CBitStream bitStream;
		bitStream.Write((PacketId)PACKET_RPC);
		bitStream.Write(rpcId);

		if(pBitStream)
			bitStream.Write((char *)pBitStream->GetData(), pBitStream->GetNumberOfBytesUsed());

		return m_pRakPeer->Send((char *)bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), (PacketPriority)priority, (PacketReliability)reliability, cOrderingChannel, m_serverAddress, false);
	}

	return 0;
}