public virtual bool SetSignonState(ESignonState state) { switch (state) { case ESignonState.Connected: // client is connected, leave client in this state _sendServerInfo = true; break; case ESignonState.New: if (!SendSignonData()) { return(false); } break; case ESignonState.PreSpawn: SpawnPlayer(); break; case ESignonState.Spawn: ActivatePlayer(); break; case ESignonState.Full: break; } return(true); }
public void Connect(string name, NetChannel channel) { _clientName = name; _netChannel = channel; SignonState = ESignonState.Connected; }
public BaseClientState() { NetChannel = null; _socket = null; _challengeNr = 0; _retryNumber = 0; _retryAddress = null; SignonState = ESignonState.None; }
public virtual bool SendSignonData() { SignonState = ESignonState.PreSpawn; _netChannel.SendData(Server.Signon); var signonState = new NetMessageSignonState(SignonState); return(_netChannel.SendNetMsg(signonState)); }
public virtual void Reconnect() { _netChannel.Clear(); SignonState = ESignonState.Connected; var signon = new NetMessageSignonState(SignonState); _netChannel.SendNetMsg(signon); }
public virtual void SpawnPlayer() { var tick = new NetMessageTick(Server.GetTick(), Program.HostFrametimeUnbounded, Program.HostFrametimeStdDeviation); _netChannel.SendNetMsg(tick, true); SignonState = ESignonState.Spawn; var signonState = new NetMessageSignonState(SignonState); _netChannel.SendNetMsg(signonState); }
public bool SetSignonState(ESignonState state) { if (state < ESignonState.None || state > ESignonState.Changelevel) { Console.WriteLine("Received signon {0} when at {1}.", state, SignonState); return(false); } Console.WriteLine("Setting signon to {0}", state); SignonState = state; return(true); }
public BaseClient(BaseServer server) { Server = server; SignonState = ESignonState.None; _sendServerInfo = false; _conVarsChanged = false; _lastSnapshot = null; _forceWaitForTick = -1; _deltaTick = -1; BaselineUsed = 0; Baseline = null; }
public virtual void Disconnect(bool showMainMenu = false) { if (SignonState == ESignonState.None) { return; } SignonState = ESignonState.None; if (NetChannel != null) { NetChannel.Shutdown("Disconnect by user."); NetChannel = null; } }
public override bool SetSignonState(ESignonState state) { if (state == ESignonState.Connected) { if (!CheckConnect()) { return(false); } NetChannel.SetTimeout(Networking.SignonTimeout); } else if (state == ESignonState.Full) { NetChannel.SetTimeout(Program.SvTimeout); } return(base.SetSignonState(state)); }
public bool SendServerInfo() { var msg = new BufferWrite(); _sendServerInfo = false; SignonState = ESignonState.New; var signonMsg = new NetMessageSignonState(SignonState); signonMsg.WriteToBuffer(msg); if (!_netChannel.SendData(msg)) { Disconnect("Server info data overflow"); return(false); } return(true); }
public void Clear() { if (_netChannel != null) { _netChannel.Shutdown("Disconnect by server"); _netChannel = null; } _clientName = string.Empty; SignonState = ESignonState.None; _sendServerInfo = false; _conVarsChanged = false; NextMessageTime = 0; _lastSnapshot = null; _forceWaitForTick = -1; _deltaTick = -1; BaselineUpdateTick = -1; BaselineUsed = 0; }
public virtual void Disconnect(string format, params object[] args) { if (SignonState == ESignonState.None) { return; } SignonState = ESignonState.None; var reason = string.Format(format, args); Out.MsgC(ConsoleColor.DarkYellow, "Client \"{0}\" dropped from server: {1}", _clientName, reason); if (_netChannel != null) { _netChannel.Shutdown(reason); _netChannel = null; } Clear(); }
public override bool ReadFromBuffer(BufferRead buffer) { _state = (ESignonState)buffer.ReadByte(); return(true); }
public NetMessageSignonState(ESignonState state) { _state = state; }
public virtual void ActivatePlayer() { SignonState = ESignonState.Full; Server.UserInfoChanged(this); }