Exemple #1
0
        private void ReadMsg1(Flap _Flap)
        {
            _Flap._data.Read(8); //cookie
            int channel = _Flap._data.ReadUInt16();

            if (channel == 1)
            {
                //readuserinfo
                int    len = _Flap._data.ReadB();
                string uin = _Flap._data.Read(len).ToStr();
                _Flap._data.ReadUInt16(); //WarningLevel
                int tvlcount = _Flap._data.ReadUInt16();
                _Flap.ReadTvl(tvlcount);
                _Flap.ReadTvl(); //readTvltoend
                Tvl _Tvl = _Flap.GetTvl(0x0002);
                using (MemoryStream _MemoryStream = new MemoryStream(_Tvl.data))
                    while (_MemoryStream.Position != _MemoryStream.Length)
                    {
                        int id = _MemoryStream.ReadB();
                        _MemoryStream.ReadB(); //version
                        byte[] _bytes = _MemoryStream.Read(_MemoryStream.ReadUInt16());
                        if (id == 1)           //identifier
                        {
                            ReadMsg2(_bytes, uin, _Flap);
                        }
                    }
            }
        }
Exemple #2
0
 // Use this for initialization
 void Start()
 {
     startingPos = transform.position;
     sprite      = GetComponent <SpriteRenderer>();
     rb          = GetComponent <Rigidbody2D>();
     flap        = GetComponent <Flap>();
 }
Exemple #3
0
        public void Release()
        {
            if (_workerThread != null)
            {
                _shutdown = true;
                _workerThread.Join();
                _workerThread = null;
            }

            if (IsAlive)
            {
                _currentColor = Color.Off;
                _heart        = false;
                _turn         = Turn.Off;
                _flap         = Flap.Off;
                UpdateState();
                IsAlive = false;
            }

            if (_hidFileHandle != -1)
            {
                CloseHandle(_hidFileHandle);
                _hidFileHandle = -1;
            }
        }
Exemple #4
0
 public void Init()
 {
     if (type == 1)
     {
         f_lamda1 = Flap.Lamda1_t_flap(cf_c);
         b_lamda1 = Flap.Lamda1_l_flap(cf_c);
         f_cmac   = Flap.Cmac_t_flap(cf_c);
         b_cmac   = Flap.Cmac_l_flap(cf_c);
     }
     else if (type == 1)
     {
         f_lamda1 = Flap.Lamda1_l_flap(cf_c);
         b_lamda1 = Flap.Lamda1_t_flap(cf_c);
         f_cmac   = Flap.Cmac_l_flap(cf_c);
         b_cmac   = Flap.Cmac_t_flap(cf_c);
     }
     else if (type == 2)
     {
         f_lamda1 = 0.0D;
         b_lamda1 = 0.0D;
         f_cmac   = 0.0D;
         b_cmac   = 0.0D;
         b_cmac   = Flap.Cmac_t_flap(cf_c);
     }
     else
     {
         f_lamda1 = 0.0D;
         b_lamda1 = 0.0D;
         f_cmac   = 0.0D;
         b_cmac   = 0.0D;
     }
 }
Exemple #5
0
        private void Connect()
        {
            if (_Socket != null)
            {
                _Socket.Close();
                Trace2(_uin + "disc:" + _oldConnectionStatus);
            }
            _NetworkStream = new MemoryStream();
            TcpClient _TcpClient = new TcpClient(servers.Pop(), 5190);

            _Socket        = _TcpClient.Client;
            _NetworkStream = new NetworkStream(_Socket);
            new Flap {
                _ICQ = this
            }.Receive();                        // receive hello
            Flap _Flap2 = new Flap {
                _ICQ = this
            };

            _Flap2.ch = 1;
            _Flap2._data.Write(new byte[] { 0, 0, 0, 1 });
            _Flap2._Tvls.Add(new Tvl {
                type = 1, data = _uin.ToBytes()
            });
            _Flap2._Tvls.Add(new Tvl {
                type = 2, data = XOR(_passw)
            });
            _Flap2._Tvls.Add(new Tvl {
                type = 3, data = "chatbot".ToBytes()
            });
            _Flap2.WriteTvl();
            _Flap2.Send(@"00 16 00 02 01 0A                           
   00 17 00 02 00 05                        
   00 18 00 02 00 25                        
   00 19 00 02 00 01                        
   00 1A 00 02 0E 90                        
   00 14 00 04 00 00 00 55                  
   00 0F 00 02 65 6E                        
   00 0E 00 02 75 73".Hex());

            Flap _Flap = new Flap {
                _ICQ = this
            }.Receive().ReadTvl();                                     //1 uin //2 ip 3 cookie
            Match m = Regex.Match(_Flap._Tvls[2].data.ToStr(), @"(.+?):(\d+)");

            if (!m.Success)
            {
                throw new ExceptionB("cannot Connect");
            }
            ip = m.Groups[1].Value;

            port    = int.Parse(m.Groups[2].Value);
            _Cookie = _Flap._Tvls[3].data;
            _Socket.Close();
            BossSimple();
        }
        public void Display_GivesString()
        {
            IFlyStrategy   f = new Flap();
            IQuackStrategy q = new OneBigQuack();

            Duck d      = new Duck(f, q);
            var  actual = d.Display();

            Assert.IsType <String>(actual);
        }
Exemple #7
0
        public void BossSimple()
        {
            TcpClient _TcpClient = new TcpClient(ip, port);

            _Socket        = _TcpClient.Client;
            _NetworkStream = new NetworkStream(_Socket);
            Flap hello = new Flap {
                _ICQ = this
            }.Receive();                                     //receive hello

            Flap _Flap1 = new Flap {
                _ICQ = this, ch = 1
            };

            _Flap1._data.Write(new byte[] { 0, 0, 0, 1 });
            _Flap1._Tvls.Add(new Tvl {
                data = _Cookie, type = 6
            });
            _Flap1.WriteTvl().Send();
            Flap _Flap2 = new Flap {
                _ICQ = this
            }.Receive().ReadSnac();
            Flap _Flap3 = new Flap {
                _ICQ = this
            };

            _Flap3.ch          = 2;
            _Flap3._Snac.ID1   = 1;
            _Flap3._Snac.ID2   = 2;
            _Flap3._Snac.flag1 = _Flap3._Snac.flag2 = 0;
            _Flap3.WriteSnac();//.Write();
            while (_Flap2._data.Position != _Flap2._data.Length)
            {
                UInt16 a = _Flap2._data.ReadUInt16();
                _Flap3._data.WriteUint16(a);
                _Flap3._data.Write("00 01 01 10 04 7B".Hex());
            }
            _Flap3.Send();
            Flap _Flap4 = new Flap {
                _ICQ = this
            };

            _Flap4.Receive().ReadSnac();
            if (_Flap4._Snac.ID1 != 11 || _Flap4._Snac.ID2 != 2)
            {
                throw new Exception();
            }
            Thread.Sleep(1000);
        }
Exemple #8
0
 private void ReadMsg2(byte[] _bytes, string uin, Flap _Flap)
 {
     using (MemoryStream _MemoryStream = new MemoryStream(_bytes))
     {
         ushort charset  = _MemoryStream.ReadUInt16();
         ushort language = _MemoryStream.ReadUInt16();
         _bytes = _MemoryStream.Read();
         Encoding incoming = charset == 2 ? Encoding.BigEndianUnicode : Encoding.ASCII;
         incoming = Encoding.GetEncoding(incoming.CodePage, new EncoderExceptionFallback(), new DecoderExceptionFallback());
         string msg;
         try { msg = incoming.GetString(_bytes); }
         catch (DecoderFallbackException) { msg = Encoding.Default.GetString(_bytes); }
         Im _IM = new Im {
             msg = msg, uin = uin, Status = MessageStatus.Received
         };
         if (_onMessage != null)
         {
             _onMessage(_IM);
         }
     }
 }
Exemple #9
0
 public void SendMessage(Im im)
 {
     try
     {
         if (_ConnectionStatus != ConnectionStatus.Connected)
         {
             throw new Exception("Not Connected");
         }
         Flap _Flap = new Flap {
             _ICQ = this
         };
         _Flap.ch        = 2;
         _Flap._Snac.ID1 = 4;
         _Flap._Snac.ID2 = 6;
         _Flap.WriteSnac();
         _Dictionary.Add(_Flap._Snac.req, im);
         _Flap._data.Write("00 00 00 00 00 00 00 00 00 01".Hex());
         byte[] sendto = ASCIIEncoding.ASCII.GetBytes(im.uin);
         _Flap._data.WriteByte((byte)sendto.Length);
         _Flap._data.Write(sendto);
         _Flap._data.Write(new byte[] { 0, 6, 0, 0 });
         Tvl _Tvl02 = new Tvl()
         {
             data = new byte[] { 05, 01, 00, 02, 01, 01 }, type = 2
         };
         Tvl _Tvl0101 = new Tvl()
         {
             type = 257, data = ("\0\0\0\0" + im.msg).ToBytes()
         };
         _Tvl02.data = _Tvl02.data.Join(_Tvl0101.ToBytes());
         _Flap._Tvls.Add(_Tvl02);
         _Flap.WriteTvl().Send();
         im.Status    = MessageStatus.Sending;
         im._DateTime = DateTime.Now;
     }
     catch (IOException) { Trace2(_uin + "Error msg send failed"); }
 }
Exemple #10
0
        private void Worker()
        {
            while (IsAlive && !_shutdown)
            {
                bool updateState = false;

                if (_danceTimeout > 0)
                {
                    _danceTimeout--;
                    if (_danceTimeout == 0)
                    {
                        _turn = Turn.Off;
                    }
                    else if ((_danceTimeout % (200 / _threadWaitTime)) == 0)
                    {
                        _turn = _turn == Turn.Left ? Turn.Right : Turn.Left;
                    }
                    updateState = true;
                }

                if (_flapTimeout > 0)
                {
                    _flapTimeout--;
                    if (_flapTimeout == 0)
                    {
                        _flap = Flap.Off;
                    }
                    else if ((_flapTimeout % (100 / _threadWaitTime)) == 0)
                    {
                        _flap = _flap == Flap.Up ? Flap.Down : Flap.Up;
                    }
                    updateState = true;
                }

                if (_heartbeatTimeout > 0)
                {
                    _heartbeatTimeout--;
                    if (_heartbeatTimeout == 0)
                    {
                        _heart = false;
                    }
                    else if ((_heartbeatTimeout % (100 / _threadWaitTime)) == 0)
                    {
                        _heart = !_heart;
                    }
                    updateState = true;
                }

                if (_rainbowTimeout > 0)
                {
                    _rainbowTimeout--;
                    if (_rainbowTimeout == 0)
                    {
                        _currentColor = _targetColor;
                    }
                    else if ((_rainbowTimeout % (100 / _threadWaitTime)) == 0)
                    {
                        _currentColor = (Color)(_rainbowTimeout % 7);
                    }
                    updateState = true;
                }

                if (_singleColorTimeout > 0)
                {
                  _singleColorTimeout--;
                  if (_singleColorTimeout == 0)
                  {
                    _currentColor = _targetColor;
                  }
                  else if ((_singleColorTimeout % (200 / _threadWaitTime)) == 0)
                  {
                    _currentColor = (_targetColor == _currentColor) ? _singleBlinkColor : _targetColor;
                  }
                  updateState = true;
                }

                if (updateState) {
                    UpdateState();
                }

                Thread.Sleep(_threadWaitTime);
            }
        }
Exemple #11
0
        public void Release()
        {
            if (_workerThread != null)
            {
                _shutdown = true;
                _workerThread.Join();
                _workerThread = null;
            }

            if (IsAlive)
            {
                _currentColor = Color.Off;
                _heart = false;
                _turn = Turn.Off;
                _flap = Flap.Off;
                UpdateState();
                IsAlive = false;
            }

            if (_hidFileHandle != -1)
            {
                CloseHandle(_hidFileHandle);
                _hidFileHandle = -1;
            }
        }
    internal void Calc_dynamics(int lr, ControlPlane cw, AirPlane ap, Vector3D dv, double k_q, double k_S)
    {
        Matrix44 ma    = new Matrix44();
        Matrix44 mtemp = new Matrix44();
        Vector3D vtemp = new Vector3D();

        fv.SetVec(0.0D, 0.0D, 0.0D);
        tv.SetVec(0.0D, 0.0D, 0.0D);

        ac = AirPlane.Get_point(ac_base, lr).Sub(ap.inp.cg);

        dvv = ap.pMotion.omega.CrsProd(ac);
        vd  = ap.pMotion.vc.Add(dvv);

        vd = vd.Add(dv);
        v  = vd.Length();
        vd = vd.NmlVec().SclProd(v * k_q);

        v = vd.Length();

        s2_dash = (s2 * k_S);

        m = (v / ap.atmos.a);

        q = (0.5D * v * v * ap.atmos.rho);
        Vector3D kdd = new Vector3D();
        Vector3D idd = new Vector3D();
        Vector3D jdd = new Vector3D();

        if ((cw != null) && (cw.type == 2))
        {
            ma.SetRyMat(cw.delta);
            mtemp.SetRzMat(cw.lamda_h);
            ma = ma.MultMat(mtemp);
            if (lr == 1)
            {
                mtemp.SetRxMat(-cw.gamma_h);
            }
            else
            {
                mtemp.SetRxMat(-cw.gamma_h);
            }
            ma = ma.MultMat(mtemp);

            idd = id.MultMat(ma);

            kdd = kd.MultMat(ma);
        }
        else
        {
            idd = new Vector3D(id);
            jdd = new Vector3D(jd);
            kdd = new Vector3D(kd);
        }

        mtemp.Set3ColVec(idd, jdd, kdd);
        vdw   = vd.MultMat(mtemp);
        alpha = Jp.Maker1.Sim.Tools.Tool.CalcAlpha(vdw);
        beta  = Jp.Maker1.Sim.Tools.Tool.CalcBeta(vdw);

        ar  = wing.AspectRatio(beta);
        are = (ar * wing.K_ground_effect(beta,
                                         ap.pMotion.wpos.y));

        lamda_dash = SweepbackAngle(wing.hv_arrangement, lr,
                                    beta);

        Calc_cla();

        delta_cl_flap   = 0.0D;
        delta_cd_flap   = 0.0D;
        delta_cmac_flap = 0.0D;
        delta_alpha     = 0.0D;
        k_a             = 1.0D;
        if ((cw != null) && ((cw.type == 1) || (cw.type == 1)))
        {
            cw.beta_f = Flap.Beta_f(lr, wing.hv_arrangement, cw.lamda_h, beta);

            cw.delta_dash = Flap.Delta_dash(cw.delta, cw.beta_f);

            if (Math.Abs(cw.beta_f) < 1.570796326794897D)
            {
                delta_alpha     = (cw.f_lamda1 * cw.delta_dash);
                delta_cmac_flap = cw.f_cmac;
            }
            else
            {
                delta_alpha     = (cw.b_lamda1 * cw.delta_dash);
                delta_cmac_flap = cw.b_cmac;
            }

            k_a           = Flap.K_cla(cw.delta_dash, cw.cf_c);
            delta_cl_flap = (k_a * cla * delta_alpha);

            delta_cmac_flap *= (alpha + delta_alpha - alpha0);
        }

        vtemp.SetVec(0.0D, 0.0D, -1.0D);
        ma.SetRyMat(-alpha);
        mtemp.SetRzMat(beta);
        ma = ma.MultMat(mtemp);
        mtemp.Set3RowVec(idd, jdd, kdd);
        ma = ma.MultMat(mtemp);
        lu = vtemp.MultMat(ma);

        du = vd.SclProd(-1.0D).NmlVec();

        alpha += delta_alpha;
        cla   *= k_a;
        Calc_cl_cd();

        l = (q * cl * s2_dash);

        cdi = (cl * cl / (Math.PI * are * ew));
        cd += cdi;
        cd += delta_cd_flap;
        d   = (q * cd * s2_dash);

        lf = Dynamics.Force(l, lu);
        lt = Dynamics.Torque(ac, lf);

        df = Dynamics.Force(d, du);
        dt = Dynamics.Torque(ac, df);

        cmac  = cmac0;
        cmac += delta_cmac_flap;
        mac   = (q * s2_dash * cmac);
        Vector3D mt_0 = new Vector3D(0.0D, mac, 0.0D);

        fv = lf.Add(df);
        tv = lt.Add(dt).Add(mt_0);
    }
 void OnTriggerEnter2D(Collider2D collider)
 {
     if (collider.tag == "Ball")
     {
         GameControl      gc       = GameObject.Find("GameControl").GetComponent <GameControl>();
         PlatformBehavior platform = player.GetComponent <PlatformBehavior>();
         if (!GameData.FriendlyFire && collider.gameObject.GetComponent <BallBehavior>().lastPlayer == player)
         {
             gc.SpawnBall();
             return;
         }
         Debug.Log("Killing player " + player.name);
         audioSource.PlayOneShot(GameData.S_DeathSound);
         col.isTrigger             = false;
         collider.gameObject.layer = 8;
         sr.material = dead;
         if (platform.Horizontal)
         {
             player.GetComponent <HorizontalPlatformMovement>().Speed = 0;
         }
         else
         {
             player.GetComponent <VerticalPlatformMovement>().Speed = 0;
         }
         player.GetComponent <BoxCollider2D>().enabled = false;
         gc.players.Remove(player);
         BallBehavior bb = collider.gameObject.GetComponent <BallBehavior>();
         if (bb.lastPlayer != null)
         {
             PlatformBehavior   pb  = bb.lastPlayer.GetComponent <PlatformBehavior>();
             PlayerCardBehavior pcb = pb.playerCard.GetComponent <PlayerCardBehavior>();
             pcb.KillCountUpdate(1);
             pcb.BallCountUpdate(-1);
         }
         platform.CancelInvoke("Bored");
         if (platform.PostDeathControl)
         {
             if (gc.Flaps.Exists(x => !x.GetComponent <Flap>().taken))
             {
                 Flap f = gc.Flaps.First(x => !x.taken);
                 f.taken = true;
                 f.AssignPlayer(player.GetComponent <BasePlatformMovement>(), true);
             }
             if (gc.Flaps.Count > 3 && gc.Flaps.Exists(x => !x.GetComponent <Flap>().taken))
             {
                 Flap f = gc.Flaps.First(x => !x.taken);
                 f.taken = true;
                 f.AssignPlayer(player.GetComponent <BasePlatformMovement>(), false);
             }
         }
         string[] anims = platform.deathAnims;
         player.GetComponent <Animator>().Play(anims[Random.Range(0, anims.Length)], 0);
         foreach (GameObject ball in gc.balls)
         {
             ball.GetComponent <Rigidbody2D>().velocity *= gc.SpeedUpOnKill;
         }
         if (gc.players.Where(x => x.activeSelf).Count() == 1)
         {
             gc.Winner(gc.players[0]);
         }
     }
 }
Exemple #14
0
        private void Worker()
        {
            //int loopCounter = 0;

            while (IsAlive && !_shutdown)
            {
                bool updateState = false;

                if (_danceTimeout > 0)
                {
                    _danceTimeout--;
                    if (_danceTimeout == 0)
                    {
                        _turn = Turn.Off;
                    }
                    else if ((_danceTimeout % (300 / _threadWaitTime)) == 0)
                    {
                        _turn = _turn == Turn.Left ? Turn.Right : Turn.Left;
                    }
                    updateState = true;
                }

                if (_flapTimeout > 0)
                {
                    _flapTimeout--;
                    if (_flapTimeout == 0)
                    {
                        _flap = Flap.Off;
                    }
                    else if ((_flapTimeout % (300 / _threadWaitTime)) == 0)
                    {
                        _flap = _flap == Flap.Up ? Flap.Down : Flap.Up;
                    }
                    updateState = true;
                }

                if (_heartbeatTimeout > 0)
                {
                    _heartbeatTimeout--;
                    if (_heartbeatTimeout == 0)
                    {
                        _heart = false;
                    }
                    else if ((_heartbeatTimeout % (100 / _threadWaitTime)) == 0)
                    {
                        _heart = !_heart;
                    }
                    updateState = true;
                }

                if (_rainbowTimeout > 0)
                {
                    _rainbowTimeout--;
                    if (_rainbowTimeout == 0)
                    {
                        _currentColor = _targetColor;
                    }
                    else
                    {
                        _currentColor = (Color)(_rainbowTimeout % 7);
                    }
                    updateState = true;
                }

                //loopCounter++;
                //if (loopCounter > (3000 / _threadWaitTime))
                //{
                //    loopCounter = 0;
                //    updateState = true;
                //}

                if (updateState) {
                    UpdateState();
                }

                Thread.Sleep(_threadWaitTime);
            }
        }
Exemple #15
0
        private void StartListen()
        {
            try
            {
                try
                {
                    Connect();
                }
                catch (IOException) { throw new ExceptionB("conn error2"); }
                catch (SocketException) { throw new ExceptionB("conn error2"); }
                Thread.Sleep(2000);
                _ConnectionStatus = ConnectionStatus.Connected;
                Trace2(Trace("Connected " + _uin));
                while (true)
                {
                    Flap _Flap = new Flap {
                        _ICQ = this
                    };
                    _Flap.Receive();
                    Trace("FlapReceived");
                    Trace(_Flap._data.ToArray().ToHex());
                    Trace("Snac Type Of" + _Flap.ch);
                    switch (_Flap.ch)
                    {
                    default:
                        break;

                    case 2:
                    {
                        _Flap.ReadSnac();
                        if (_Flap._Snac.ID1 == 4)
                        {
                            Im _Im = null;
                            if (_Dictionary.Keys.Contains(_Flap._Snac.req))
                            {
                                _Im = _Dictionary[_Flap._Snac.req];
                            }

                            if (_Flap._Snac.ID2 == 7)         //message
                            {
                                ReadMsg1(_Flap);
                            }
                            if (_Flap._Snac.ID2 == 12 && _Im != null)         //accepted
                            {
                                _Im.Status = MessageStatus.AcceptedForDelivery;
                                OnMessageStatusChanged(_Im);
                                _Dictionary.Remove(_Flap._Snac.req);
                            }
                            if (_Flap._Snac.ID2 == 1 && _Im != null)
                            {
                                _Im.Status = MessageStatus.UnknownError;
                                _Dictionary.Remove(_Flap._Snac.req);
                                int errorcode = _Flap._data.ReadUInt16();
                                _Flap.ReadTvl();
                                int subcode = 0;
                                Tvl _Tvl    = _Flap.GetTvl(0x0008);
                                if (_Tvl != null)
                                {
                                    subcode = BitConverter.ToUInt16(_Tvl.data.ReverseA(2), 0);
                                }
                                switch (errorcode)
                                {
                                case 0x0004:
                                    _Im.Status = MessageStatus.BuddyOffline;
                                    break;

                                case 0x0010:
                                    _Im.Status = MessageStatus.BuddyBlocked;
                                    break;
                                }
                                switch (subcode)
                                {
                                case 0x000E:
                                    _Im.Status = MessageStatus.OfflineMessagesNotSupported;
                                    break;

                                case 0x000F:
                                    _Im.Status = MessageStatus.OfflineStorageFull;
                                    break;
                                }
                                OnMessageStatusChanged(_Im);
                            }
                        }
                    }
                    break;
                    }
                }
            }
            catch (ExecutionEngineException) { }
            catch (IOException e)
            {
                Trace(e);
                Thread.Sleep(1000);
                _ConnectionStatus = ConnectionStatus.Kicked;
            }
            catch (SocketException e)
            {
                Trace(e);
                Thread.Sleep(1000);
                _ConnectionStatus = ConnectionStatus.Kicked;
            }
            catch (ExceptionB e)
            {
                Trace(e);
                Thread.Sleep(15000);
                if (ConnectionStatus.LoginError == _oldConnectionStatus)
                {
                    Thread.Sleep(16 * 1000 * 60);
                }
                _ConnectionStatus = ConnectionStatus.LoginError;
            }
            errors++;
        }
Exemple #16
0
        public void BossAdv()
        {
            TcpClient _TcpClient = new TcpClient(ip, port);

            _Socket        = _TcpClient.Client;
            _NetworkStream = new NetworkStream(_Socket);
            Flap hello = new Flap {
                _ICQ = this
            }.Receive();                                     //receive hello

            Flap _Flap1 = new Flap {
                _ICQ = this, ch = 1
            };                                              // отправляем куки

            _Flap1._data.Write(new byte[] { 0, 0, 0, 1 });
            _Flap1._Tvls.Add(new Tvl {
                data = _Cookie, type = 6
            });
            _Flap1.WriteTvl().Send();
            Flap _Flap2 = new Flap {
                _ICQ = this
            }.Receive().ReadSnac();                                      // SRV_FAMILIES

            new Flap {
                _ICQ = this, ch = 2
            }.Send(@"00 01-00 17 00 00 00 00 00 00   
00 01 00 03 00 13 00 02-00 02 00 01 00 03 00 01   
00 15 00 01 00 04 00 01-00 06 00 01 00 09 00 01
00 0A 00 01 00 0B 00 01-".Hex()); // CLI_FAMILIES

            Flap _Flap4 = new Flap {
                _ICQ = this
            }.Receive();                                     // SRV_FAMILIES2
            Flap _Flap5 = new Flap {
                _ICQ = this
            }.Receive();                                     // SRV_MOTD

            new Flap()
            {
                _ICQ = this, ch = 2
            }.Send("00 01-00 06 00 00 00 00 00 00".Hex());                                  // CLI_RATESREQUEST
            Flap _Flap6 = new Flap()
            {
                _ICQ = this
            }.Receive();                                        // SRV_RATES

            new Flap()
            {
                _ICQ = this, ch = 2
            }.Send("00 01-00 08 00 00 00 00 00 00 00 01 00 02 00 03 00 04-00 05".Hex());                                 // CLI_ACKRATES (ответим серверу что мы получили его SRV_RATES)

            new Flap()
            {
                _ICQ = this, ch = 2
            }.Send("00 04-00 02 00 00 00 00 00 00 00 00 00 00 00 03 1F 40-03 E7 03 E7 00 00 00 00".Hex());                                 // CLI_SETICBM
            new Flap()
            {
                _ICQ = this, ch = 2
            }.Send("00 01-00 0E 00 00 00 00 00 00".Hex());                                 // CLI_REQINFO
            new Flap()
            {
                _ICQ = this, ch = 2
            }.Send("00 02-00 02 00 00 00 00 00 00".Hex());                                 // CLI_REQLOCATION
            new Flap()
            {
                _ICQ = this, ch = 2
            }.Send("00 03-00 02 00 00 00 00 00 00".Hex());                                 // CLI_REQBUDDY
            new Flap()
            {
                _ICQ = this, ch = 2
            }.Send("00 04-00 04 00 00 00 00 00 00".Hex());                                 // CLI_REQICBM
            new Flap()
            {
                _ICQ = this, ch = 2
            }.Send("00 09-00 02 00 00 00 00 00 00".Hex());                                 // CLI_REQBOS
            Flap _Flap7 = new Flap {
                _ICQ = this
            }.Receive();                                      //SRV_REPLYINFO
            Flap _Flap8 = new Flap {
                _ICQ = this
            }.Receive();                                      //SRV_REPLYLOCATION
            Flap _Flap9 = new Flap {
                _ICQ = this
            }.Receive();                                      //SRV_REPLYBUDDY
            Flap _Flap10 = new Flap {
                _ICQ = this
            }.Receive();                                      //SRV_REPLYICBM
            Flap _Flap11 = new Flap {
                _ICQ = this
            }.Receive();                                      //SRV_REPLYBOS

            new Flap()
            {
                _ICQ = this
            }.Send(@"00 02-00 04 00 00 00 00 00 00   
                  00 05 00 10 09 46 13 41-4C 7F 11 D1 82 22 44 45   
                  53 54 00 00".Hex());// CLI_SETUSERINFO - капабилды клиента (в TLV5)


            new Flap {
                _ICQ = this, ch = 2
            }.Send("00 09-00 07 00 00 00 00 00 00".Hex());                               // CLI_ADDINVISIBLE
            new Flap {
                _ICQ = this, ch = 2
            }.Send("00 01-00 11 00 00 00 00 00 00 00 00 00 00".Hex());                               //SNAC(1,11)(зх шоза снэк)
            new Flap {
                _ICQ = this, ch = 2
            }.Send(@"00 01 00 1E 00 00   
00 00 00 00 00 06 00 04-00 00 00 00 00 08 00 02   
00 00 00 0C 00 25 59 BD-9B DD 00 00 0B B8 04 00   
08 2D A8 4E 56 00 00 00-50 00 00 00 03 00 00 00   
00 00 00 00 00 00 00 00-00 00 00".Hex());// CLI_REQINFO

            new Flap {
                _ICQ = this, ch = 2
            }.Send(@"00 01 00 02 00 00 00-00 00 00 00 01 00 03 01   
10 04 7B 00 13 00 02 01-10 04 7B 00 02 00 01 01   
01 04 7B 00 03 00 01 01-10 04 7B 00 15 00 01 01   
10 04 7B 00 04 00 01 01-10 04 7B 00 06 00 01 01   
10 04 7B 00 09 00 01 01-10 04 7B 00 0A 00 01 01   
10 04 7B 00 0B 00 01 01-10 04 7B".Hex());//CLI_READY

            Flap _Flap12 = new Flap {
                _ICQ = this
            }.Receive();                                       // Как видим, тут у нас есть SNAC B,2 (00 0B 00 02) - следовательно мы успешно зашли =)
        }
Exemple #17
0
        private void Worker()
        {
            while (IsAlive && !_shutdown)
            {
                bool updateState = false;

                if (_danceTimeout > 0)
                {
                    _danceTimeout--;
                    if (_danceTimeout == 0)
                    {
                        _turn = Turn.Off;
                    }
                    else if ((_danceTimeout % (300 / _threadWaitTime)) == 0)
                    {
                        _turn = _turn == Turn.Left ? Turn.Right : Turn.Left;
                    }
                    updateState = true;
                }

                if (_flapTimeout > 0)
                {
                    _flapTimeout--;
                    if (_flapTimeout == 0)
                    {
                        _flap = Flap.Off;
                    }
                    else if ((_flapTimeout % (300 / _threadWaitTime)) == 0)
                    {
                        _flap = _flap == Flap.Up ? Flap.Down : Flap.Up;
                    }
                    updateState = true;
                }

                if (_heartbeatTimeout > 0)
                {
                    _heartbeatTimeout--;
                    if (_heartbeatTimeout == 0)
                    {
                        _heart = false;
                    }
                    else if ((_heartbeatTimeout % (100 / _threadWaitTime)) == 0)
                    {
                        _heart = !_heart;
                    }
                    updateState = true;
                }

                if (_rainbowTimeout > 0)
                {
                    _rainbowTimeout--;
                    if (_rainbowTimeout == 0)
                    {
                        _currentColor = _targetColor;
                    }
                    else
                    {
                        _currentColor = (Color)(_rainbowTimeout % 7);
                    }
                    updateState = true;
                }

                if (updateState)
                {
                    UpdateState();
                }

                Thread.Sleep(_threadWaitTime);
            }
        }