Exemple #1
0
        public bool Login()
        {
            ServerPacket serverPacket = packetStream.Recv <ServerPacket>();

            if ((PacketType)serverPacket.type != PacketType.Login)
            {
                return(false);
            }

            ClientPacket pingPacket = new ClientPacket(PacketType.Ping);
            long         old_time   = DateTime.Now.Ticks;

            packetStream.Send(pingPacket);
            packetStream.Recv <ServerPacket>();
            long new_time = DateTime.Now.Ticks;

            login_info           = serverPacket.login;
            login_info.LoginTime = DateTime.Now.ToString("HH:mm:ss");
            login_info.IP        = tcpClient.Client.RemoteEndPoint.ToString();
            //login_info.Addr = Util.GetAddr(login_info.IP);
            login_info.OSVersion = Util.GetOSVersionString(login_info.OSInfo);
            login_info.Camera    = login_info.hasCamera == 0 ? "有" : "无";
            login_info.Ping      = (new_time - old_time) / 10000 + "ms";

            login_info.handler = this;
            main.Dispatcher.BeginInvoke(new Action <ServerPacket.Login>(main.add_item), login_info);

            return(true);
        }
Exemple #2
0
 public void remove_item(ServerPacket.Login login_info)
 {
     if (login_info == null)
     {
         return;
     }
     Log(login_info.IP + "\t下线");
     listView.Items.Remove(login_info);
 }
Exemple #3
0
        private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            if (listView.SelectedIndex == -1)
            {
                return;
            }
            ServerPacket.Login login   = (ServerPacket.Login)listView.SelectedValue;
            Handler            handler = (Handler)(login.handler);

            if (handler.tcpClient.Client.Connected == false)
            {
                Log(login.IP + "连接中断!");
                listView.Items.Remove(login);
                return;
            }
            MenuItem menuItem = (MenuItem)e.OriginalSource;

            handler.OpenWindow(menuItem.Name);
        }
Exemple #4
0
 public void add_item(ServerPacket.Login login_info)
 {
     Log(login_info.IP + "\t上线");
     listView.Items.Add(login_info);
 }
Exemple #5
0
        public bool Login()
        {
            ServerPacket serverPacket = packetStream.Recv<ServerPacket>();
            if ((PacketType)serverPacket.type != PacketType.Login)
                return false;

            ClientPacket pingPacket = new ClientPacket(PacketType.Ping);
            long old_time = DateTime.Now.Ticks;
            packetStream.Send(pingPacket);
            packetStream.Recv<ServerPacket>();
            long new_time = DateTime.Now.Ticks;

            login_info = serverPacket.login;
            login_info.LoginTime = DateTime.Now.ToString("HH:mm:ss");
            login_info.IP = tcpClient.Client.RemoteEndPoint.ToString();
            //login_info.Addr = Util.GetAddr(login_info.IP);
            login_info.OSVersion = Util.GetOSVersionString(login_info.OSInfo);
            login_info.Camera = login_info.hasCamera == 0 ? "有" : "无";
            login_info.Ping = (new_time - old_time) / 10000 + "ms";

            login_info.handler = this;
            main.Dispatcher.BeginInvoke(new Action<ServerPacket.Login>(main.add_item), login_info);

            return true;
        }
Exemple #6
0
        private async Task <bool> ResponceParse(short type, byte[] buffer)
        {
            switch (type)
            {
            case 4:
            {
                var field = new ServerPacket.Login(buffer);

                _player.AuthResult = field.status.ToString();

                switch (field.status)
                {
                case AuthResultType.LOGIN_SUCCESS:
                    _player.InnerId = field.inner_id;
                    _player.Balance = field.balance;

                    if (_packet != null)
                    {
                        var buf = _packet.ToPack();
                        await SendAsync(buf, _count);


                        if (_packet is PacketClient.Roll)
                        {
                        }
                        else
                        {
                            _packet = null;
                            _count  = 1;
                            var core2 = new Core();
                            core2._noHistory = true;
                            _player          = await core2.Go(_player);

                            core2._noHistory = false;
                        }
                    }
                    break;

                case AuthResultType.LOGIN_EXIST:
                    await SendAsync(_player.Url.ToAuth().ToPack());

                    break;

                default:
                    return(true);
                }
                break;
            }

            case 5:
            {
                var field = new ServerPacket.Info(buffer);
                _player.Name    = field.name;
                _player.Photo   = field.avatar;
                _player.Profile = field.profile;


                if (_packet == null)
                {
                    return(true);
                }

                break;
            }

            case 7:
            {
                var field = new ServerPacket.Balance(buffer);
                _player.Balance = field.balance;
                break;
            }

            case 17:
            {
                var field = new ServerPacket.Bonus(buffer);
                _player.IsBonus = field.can_collect != 0x00 ? true : false;
                _player.Bonus   = 0;

                if (_player.IsBonus)
                {
                    var pack = new PacketClient
                               .BonusDaily()
                               .ToPack();
                    await SendAsync(pack);

                    _player.Bonus    = field.bonus;
                    _player.Balance += _player.Bonus;
                }
                break;
            }

            case 13:
            {
                //Reading packet GAME_REWARDS:13 with id 104 and length 1 data: 1226,1,{"id":1226,"content":{"hearts":9},"captions":{"en":"Great shot! Your reward","ru":"Отличный выстрел! Твоя награда"},"max_count":10000,"type":"roulette"}

                var field = new ServerPacket.Reward(buffer);

                var pack2 = new PacketClient.Reward(field.id);
                await SendAsync(pack2.ToPack());

                // Console.WriteLine($"Roll {field.json}");
                //Console.WriteLine("Get reward");
                //Console.WriteLine(BitConverter.ToString(pack2.ToPack()));
                _packet = null;
                _count  = 1;
                var core2 = new Core();
                core2._noHistory = true;
                _player          = await core2.Go(_player);

                core2._noHistory = false;
                return(true);
            }

            case 264:
            {
                //"I[BBBIIS]",
                // BANS(264); target_id:I, [type:B, reason:B, repeated:B, moderator_id:I, duration:I, link:S]
                _player.AuthResult = AuthResultType.BAN.ToString();
                return(true);
            }

            default:
                break;
            }

            return(false);
        }