public virtual bool SendByChannel(short msgType, QMessageBase msg, int channelId) { m_Writer.StartMessage(msgType); msg.Serialize(m_Writer); m_Writer.FinishMessage(); return(SendWriter(m_Writer, channelId)); }
public bool Send(short msgType, QMessageBase msg) { _sendWriter.StartMessage(msgType); msg.Serialize(_sendWriter); _sendWriter.FinishMessage(); NumMsgsOut++; return(SendWriter(_sendWriter)); }
internal void InvokeHandlerOnClient(short msgType, QMessageBase msg, int channelId) { var networkWriter = new QNetworkWriter(); networkWriter.StartMessage(msgType); msg.Serialize(networkWriter); networkWriter.FinishMessage(); InvokeBytesOnClient(networkWriter.AsArray(), channelId); }
public override bool SendByChannel(short msgType, QMessageBase msg, int channelId) { LocalClient.InvokeHandlerOnClient(msgType, msg, channelId); return(true); }
public override bool SendUnreliable(short msgType, QMessageBase msg) { LocalClient.InvokeHandlerOnClient(msgType, msg, 1); return(true); }
public virtual bool SendUnreliable(short msgType, QMessageBase msg) => SendByChannel(msgType, msg, 1);
public virtual bool Send(short msgType, QMessageBase msg) => SendByChannel(msgType, msg, 0);
public override bool SendByChannel(short msgType, QMessageBase msg, int channelId) => m_LocalServer.InvokeHandlerOnServer(this, msgType, msg, channelId);
public override bool SendUnreliable(short msgType, QMessageBase msg) => m_LocalServer.InvokeHandlerOnServer(this, msgType, msg, 1);
public void Write(QMessageBase msg) => msg.Serialize(this);
public static bool AddPlayer(QNetworkConnection readyConn, short playerControllerId, QMessageBase extraMessage) { bool result; if (playerControllerId < 0) { Debug.LogError($"ClientScene::AddPlayer: playerControllerId of {playerControllerId} is negative"); result = false; } else if (playerControllerId > 32) { Debug.LogError($"ClientScene::AddPlayer: playerControllerId of {playerControllerId} is too high, max is {32}"); result = false; } else { if (playerControllerId > 16) { Debug.LogWarning($"ClientScene::AddPlayer: playerControllerId of {playerControllerId} is unusually high"); } while (playerControllerId >= localPlayers.Count) { localPlayers.Add(new QPlayerController()); } if (readyConn == null) { if (!ready) { Debug.LogError("Must call AddPlayer() with a connection the first time to become ready."); return(false); } } else { ready = true; readyConnection = readyConn; } if (readyConnection.GetPlayerController(playerControllerId, out var playerController)) { if (playerController.IsValid && playerController.Gameobject != null) { Debug.LogError($"ClientScene::AddPlayer: playerControllerId of {playerControllerId} already in use."); return(false); } } Debug.Log($"ClientScene::AddPlayer() for ID {playerControllerId} called with connection [{readyConnection}]"); var addPlayerMessage = new QAddPlayerMessage { playerControllerId = playerControllerId }; if (extraMessage != null) { var networkWriter = new QNetworkWriter(); extraMessage.Serialize(networkWriter); addPlayerMessage.msgData = networkWriter.ToArray(); addPlayerMessage.msgSize = networkWriter.Position; } readyConnection.Send(37, addPlayerMessage); result = true; } return(result); }