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 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 bool ProcessSignonState(NetMessageSignonState msg) { if (msg.SignonState == ESignonState.Changelevel) { return(true); } if (msg.SignonState > ESignonState.Connected) { // TODO :Check respan count and reconnect is they not match } if (msg.SignonState != SignonState) { Reconnect(); return(true); } return(SetSignonState(msg.SignonState)); }
public virtual bool ProcessSignonState(NetMessageSignonState msg) { return(SetSignonState(msg.SignonState)); }