コード例 #1
0
ファイル: GameServer.cs プロジェクト: corefan/yad2
        private void UpdatePlayerStats(short id)
        {
            GamePlayer gp = Simulation.GetGamePlayer(id);

            if (null == gp)
            {
                return;
            }

            if (Settings.Default.DBAvail)
            {
                int winno  = gp.HasWon && gp.HasEnded ? gp.WinNo + 1: gp.WinNo;
                int lossno = (gp.HasEnded && !gp.HasWon) || !gp.HasEnded ? gp.LossNo + 1 : gp.LossNo;
                if (YadDB.UpdatePlayerStats(gp.Login, winno, lossno))
                {
                    gp.WinNo  = winno;
                    gp.LossNo = lossno;
                }
            }

            lock (((ICollection)_playerCollection).SyncRoot)
                if (_playerCollection.ContainsKey(id))
                {
                    _playerCollection[id].SetData((PlayerData)gp.Clone());
                }
        }
コード例 #2
0
        private void ServerProcess()
        {
            if (Settings.Default.DBAvail)
            {
                switch (YadDB.Init())
                {
                case InitDBResult.Successful:
                    InfoLog.WriteInfo("Database initialized successfully...", EPrefix.DatebaseInfo);
                    _server = new Server(_ServerPortNo);
                    _server.Start();
                    break;

                case InitDBResult.CreateMDBFileFailed:
                    InfoLog.WriteInfo("Unable to create .mdb file...", EPrefix.DatebaseInfo);
                    break;

                case InitDBResult.CreateDBFailed:
                    InfoLog.WriteInfo("Unablie to create database...", EPrefix.DatebaseInfo);
                    break;
                }
            }
            else
            {
                _server = new Server(_ServerPortNo);
                _server.Start();
            }
        }
コード例 #3
0
        public bool Login(short id, string login, string password)
        {
            ushort winno  = 0;
            ushort lossno = 0;

            if (YadDB.Login(login, password, ref winno, ref lossno))
            {
                Player     player = _server.GetPlayer(id);
                PlayerData pd     = new PlayerData();
                pd.Id     = id;
                pd.Login  = login;
                pd.LossNo = lossno;
                pd.WinNo  = winno;
                player.SetData(pd);
                return(true);
            }
            return(false);
        }
コード例 #4
0
 private void ProcessRegister(RegisterMessage msg)
 {
     if (Settings.Default.DBAvail)
     {
         InfoLog.WriteInfo(string.Format(ProcessStringFormat, "Register", msg.SenderId), EPrefix.ServerProcessInfo);
         if (YadDB.Register(msg.Login, msg.Password, msg.Mail))
         {
             InfoLog.WriteInfo("Player registered successfully", EPrefix.ServerProcessInfo);
             SendMessage(Utils.CreateResultMessage(ResponseType.Register, ResultType.Successful), msg.SenderId);
         }
         else
         {
             SendMessage(Utils.CreateResultMessage(ResponseType.Register, ResultType.Unsuccesful), msg.SenderId);
         }
         InfoLog.WriteInfo("Player registered unsucessfully", EPrefix.ServerProcessInfo);
     }
     else
     {
         SendMessage(Utils.CreateResultMessage(ResponseType.Register, ResultType.Successful), msg.SenderId);
     }
 }
コード例 #5
0
        private void ProcessRemindMessage(TextMessage textMessage)
        {
            InfoLog.WriteInfo("Processing remind message", EPrefix.ServerProcessInfo);
            string login    = textMessage.Text;
            string email    = null;
            string password = null;

            if (Settings.Default.DBAvail)
            {
                if (YadDB.Remind(login, out email, out password))
                {
                    YadMail.SendRemindMail(login, email, password);
                    ResultMessage resMsg = Utils.CreateResultMessage(ResponseType.Remind, ResultType.Successful);
                    SendMessage(resMsg, textMessage.SenderId);
                    return;
                }
                else
                {
                    SendMessage(Utils.CreateResultMessage(ResponseType.Remind, ResultType.Unsuccesful), textMessage.SenderId);
                }
            }

            SendMessage(Utils.CreateResultMessage(ResponseType.Remind, ResultType.Unsuccesful), textMessage.SenderId);
        }