コード例 #1
0
ファイル: LoginMgr.cs プロジェクト: SkelletonX/DDTServer
        public static Dictionary <int, int> GetOnlineForLine()
        {
            Dictionary <int, int> lines = new Dictionary <int, int>();

            Player[] list  = LoginMgr.GetAllPlayer();
            Player[] array = list;
            for (int i = 0; i < array.Length; i++)
            {
                Player p = array[i];
                if (p.CurrentServer != null)
                {
                    if (lines.ContainsKey(p.CurrentServer.Info.ID))
                    {
                        Dictionary <int, int> dictionary;
                        int iD;
                        (dictionary = lines)[iD = p.CurrentServer.Info.ID] = dictionary[iD] + 1;
                    }
                    else
                    {
                        lines.Add(p.CurrentServer.Info.ID, 1);
                    }
                }
            }
            return(lines);
        }
コード例 #2
0
ファイル: ChargeMgr.cs プロジェクト: SkelletonX/DDTServer
        public static void Do()
        {
            try {
                using (PlayerBussiness db = new PlayerBussiness())
                {
                    ChargeInfo[] a = db.GetUserChargeList();
                    if (a.Length != 0)
                    {
                        foreach (var b in a)
                        {
                            PlayerInfo info = db.GetUserSingleByUserID(b.UserID);

                            MailInfo c = new MailInfo();
                            c.Content    = "充值成功!";
                            c.Title      = "充值成功!";
                            c.Gold       = 0;
                            c.IsExist    = true;
                            c.Money      = Convert.ToInt32(b.Money * 100 * (GetRate(info)));
                            c.GiftToken  = 0;
                            c.Receiver   = info.NickName;
                            c.ReceiverID = b.UserID;
                            c.Sender     = "充值系统";
                            c.SenderID   = 0;
                            c.Type       = 1;
                            if (db.SendMail(c))
                            {
                                if (db.DoUserCharge(b.ID))
                                {
                                    ServerClient client = LoginMgr.GetServerClient(b.UserID);
                                    if (client != null)
                                    {
                                        GSPacketIn pkgMsg = new GSPacketIn(118);
                                        pkgMsg.WriteInt(b.UserID);
                                        pkgMsg.WriteInt(1);
                                        client.SendTCP(pkgMsg);

                                        // result = true;
                                        // return result;
                                    }
                                    ChargeMgr.log.Warn("用户" + info.UserName + "充值" + b.Money + "成功");
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ChargeMgr.log.Error(ex);
            }
        }
コード例 #3
0
ファイル: LoginMgr.cs プロジェクト: SkelletonX/DDTServer
        public static ServerClient GetServerClient(int playerId)
        {
            Player       player = LoginMgr.GetPlayer(playerId);
            ServerClient result;

            if (player != null)
            {
                result = player.CurrentServer;
            }
            else
            {
                result = null;
            }
            return(result);
        }
コード例 #4
0
ファイル: LoginMgr.cs プロジェクト: SkelletonX/DDTServer
        public static List <Player> GetServerPlayers(ServerClient server)
        {
            List <Player> list = new List <Player>();

            Player[] players = LoginMgr.GetAllPlayer();
            Player[] array   = players;
            for (int i = 0; i < array.Length; i++)
            {
                Player p = array[i];
                if (p.CurrentServer == server)
                {
                    list.Add(p);
                }
            }
            return(list);
        }
コード例 #5
0
ファイル: LoginMgr.cs プロジェクト: SkelletonX/DDTServer
        public static int GetOnlineCount()
        {
            Player[] list  = LoginMgr.GetAllPlayer();
            int      count = 0;

            Player[] array = list;
            for (int i = 0; i < array.Length; i++)
            {
                Player p = array[i];
                if (p.State != ePlayerState.NotLogin)
                {
                    count++;
                }
            }
            return(count);
        }
コード例 #6
0
ファイル: LoginMgr.cs プロジェクト: SkelletonX/DDTServer
        public static Player GetPlayerByName(string name)
        {
            Player[] list = LoginMgr.GetAllPlayer();
            Player   result;

            if (list != null)
            {
                Player[] array = list;
                for (int i = 0; i < array.Length; i++)
                {
                    Player p = array[i];
                    if (p.Name == name)
                    {
                        result = p;
                        return(result);
                    }
                }
            }
            result = null;
            return(result);
        }
コード例 #7
0
ファイル: LoginMgr.cs プロジェクト: SkelletonX/DDTServer
        public static void CreatePlayer(Player player)
        {
            Player older = null;
            object obj;

            Monitor.Enter(obj = LoginMgr.syc_obj);
            try
            {
                player.LastTime = DateTime.Now.Ticks;
                if (LoginMgr.m_players.ContainsKey(player.Id))
                {
                    older                         = LoginMgr.m_players[player.Id];
                    player.State                  = older.State;
                    player.CurrentServer          = older.CurrentServer;
                    LoginMgr.m_players[player.Id] = player;
                }
                else
                {
                    older = LoginMgr.GetPlayerByName(player.Name);
                    if (older != null && LoginMgr.m_players.ContainsKey(older.Id))
                    {
                        LoginMgr.m_players.Remove(older.Id);
                    }
                    player.State = ePlayerState.NotLogin;
                    LoginMgr.m_players.Add(player.Id, player);
                }
            }
            finally
            {
                Monitor.Exit(obj);
            }
            if (older != null && older.CurrentServer != null)
            {
                older.CurrentServer.SendKitoffUser(older.Id);
            }
        }