コード例 #1
0
ファイル: RemoteBattle.cs プロジェクト: niuniuzhu/RC
        private void HandleClientConnected(IUserToken token)
        {
            this._idToToken[token.id] = token;
            StepLocker stepLocker = new StepLocker(this);

            stepLocker.AddUser(token.id);
            this._stepLockers.Add(stepLocker);

            ThreadPool.QueueUserWorkItem(state =>
            {
                stepLocker.Start();
                while (!stepLocker.finished)
                {
                    stepLocker.Update();
                    Thread.Sleep(10);
                }
            });
            Logger.Log($"创建战场:{stepLocker.id}");
        }
コード例 #2
0
ファイル: RemoteBattle.cs プロジェクト: niuniuzhu/RC
        private void HandleClientDisconnected(IUserToken token)
        {
            this._idToToken.Remove(token.id);
            StepLocker stepLocker = null;

            foreach (StepLocker s in this._stepLockers)
            {
                if (!s.HasUser(token.id))
                {
                    continue;
                }
                stepLocker = s;
                break;
            }

            if (stepLocker != null)
            {
                stepLocker.RemoveUser(token.id);
                if (stepLocker.userCount == 0)
                {
                    this._stepLockers.Remove(stepLocker);
                }
            }
        }