Example #1
0
        public static void SendLoginPacket(ClientBase client, int clientID, string account, int playerID)
        {
            if (playerID != 0)
            {
                LoginInfo info = new LoginInfo();

                info.PlayerID = playerID;
                info.Account  = account;

                CenterPlayer player = new CenterPlayer(info, client);
                player.ClientID = clientID;
                player.Logined();

                if (CenterGlobal.PlayerMgr.Contains(playerID))
                {
                    //TODO: 发送踢下线通知 并在保存到数据库后通知中心服务器进行登陆后续操作

                    CenterPlayer player2 = CenterGlobal.PlayerMgr[playerID];

                    player2.Logout();

                    CenterGlobal.PlayerMgr.Remove(playerID);

                    CenterGlobal.PlayerMgr.Add(playerID, player);

                    KitPlayerPacket p = new KitPlayerPacket();
                    p.PlayerID = playerID;
                    player2.SendTcp(p);
                }
                else
                {
                    CenterGlobal.PlayerMgr.Add(playerID, player);

                    ValidateLoginPacket pkg = new ValidateLoginPacket();
                    pkg.PlayerID = playerID;
                    pkg.ClientID = clientID;
                    player.SendTcp(pkg);
                }
            }
            else
            {
                //TODO: 无此玩家 发送注册包到客户端进行注册

                NoticeRegistePacket pkg = new NoticeRegistePacket();

                pkg.ClientID = clientID;

                client.SendTcp(pkg);
            }
        }
Example #2
0
        public int HandlePacket(ClientBase client, GamePacket packet)
        {
            GamePlayer player = GameGlobal.PlayerMgr[packet.PlayerID];

            if (player != null)
            {
                player.SaveToDatabase();
                player.Logout();

                KitPlayerPacket p = new KitPlayerPacket(packet.PlayerID);
                player.SendTcp(p);
            }

            GameGlobal.PlayerMgr.Remove(packet.PlayerID);

            LoginAfterKitPacket pkg = new LoginAfterKitPacket();

            pkg.PlayerID = packet.PlayerID;

            GameGlobal.CenterServer.SendTCP(pkg);

            return(0);
        }