Пример #1
0
        public virtual bool SendSignonData()
        {
            SignonState = ESignonState.PreSpawn;

            _netChannel.SendData(Server.Signon);
            var signonState = new NetMessageSignonState(SignonState);

            return(_netChannel.SendNetMsg(signonState));
        }
Пример #2
0
        public virtual void Reconnect()
        {
            _netChannel.Clear();

            SignonState = ESignonState.Connected;
            var signon = new NetMessageSignonState(SignonState);

            _netChannel.SendNetMsg(signon);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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));
        }
Пример #6
0
 public virtual bool ProcessSignonState(NetMessageSignonState msg)
 {
     return(SetSignonState(msg.SignonState));
 }