コード例 #1
0
ファイル: frmEx.cs プロジェクト: Ifover/MC-EX
        }//获取和载入卡片

        #region 卡友的各种计算
        private void Get_CardFriends()
        {
            while (true)
            {
                string Card_Fsid = Mydata.Card_Fsid(Chose_Exchange_Theme.ToString());
                //获取卡友[开始]-------------------------------
                Regex           regStr = new Regex(@"(?<!0\d*)[1-9]\d{4,10}", RegexOptions.IgnoreCase); //100个卡友的正则
                MatchCollection mat    = regStr.Matches(Card_Fsid);

                for (int i = 0; i < mat.Count; i++)
                {
                    tssState.Text      = "累计搜索 [" + iCount++.ToString() + "]";                            //计数
                    tssState.BackColor = Color.FromKnownColor(KnownColor.Control);
                    string      IinfoTemp = Mydata.Card_User("opuin=" + mat[i] + "&uin =" + Mydata.Iuin); //获取对方的信息保存在IinfoTemp
                    XmlDocument doc       = new XmlDocument();
                    doc.LoadXml(IinfoTemp);
                    XmlNode     x1 = doc.SelectSingleNode("QQHOME");
                    XmlNodeList x2 = x1.ChildNodes;
                    foreach (XmlNode x3 in x2)
                    {
                        if (x3.LocalName == "changebox" && Get_Exch(x3.Attributes[3].Value))
                        {
                            //Debug.WriteLine(x3.Attributes[3].Value);
                            XmlElement  xChangebox = (XmlElement)x3;
                            XmlNodeList xnls       = xChangebox.ChildNodes;
                            foreach (XmlElement xcx in xnls)
                            {
                                int status = Convert.ToInt32(xcx.GetAttribute("status")); //不等于0,该卡不存在
                                if (status == 0)
                                {
                                    int id = Convert.ToInt32(xcx.GetAttribute("id"));     //ID
                                    foreach (Mydata.MyItem item in lbCards.SelectedItems) //判断对方的卡是否有我需要的
                                    {
                                        if (item.Id == id)                                //↓↓↓找到了需要的↓↓↓
                                        {
                                            //Debug.WriteLine(mat[i].ToString());
                                            Mydata.Uuin = mat[i].ToString();
                                            U_boxInfo();
                                            tssState.Text       = "已找到 【" + _cardDic[id].Name + "】";
                                            tssState.BackColor  = Color.Green;
                                            this.Size           = new Size(700, 408);
                                            cbTop.Left          = 626;
                                            btnStartSearch.Text = "开始搜索";
                                            Console.Beep();
                                            Mydata.isChanging = true;
                                            threadStop();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                //Uuins.Add(mat[i].ToString());
            }
            //MessageBox.Show(uuidStr);
            //---------------------------------------
        }//查询是否找到自己要的卡
コード例 #2
0
ファイル: frmEx.cs プロジェクト: Ifover/MC-EX
        }//获取我的卡片信息

        private void U_boxInfo()
        {
            lvUbox.Items.Clear();                                                                      //清空对方卡箱(安全起见)
            lvUbox.BeginUpdate();
            gBoxU.Text = Mydata.Uuin + ".换卡箱 [点我刷新]";                                                  //可刷新对方卡箱
            string      IinfoTemp = Mydata.Card_User("opuin=" + Mydata.Uuin + "&uin =" + Mydata.Iuin); //获取对方的信息保存在IinfoTemp
            XmlDocument doc       = new XmlDocument();

            doc.LoadXml(IinfoTemp);
            XmlNode     xn  = doc.SelectSingleNode("QQHOME");
            XmlNodeList xnl = xn.ChildNodes;

            Mydata.MyItem mi;
            foreach (XmlNode xnx in xnl)
            {
                if (xnx.LocalName == "changebox")
                {
                    XmlElement  xe   = (XmlElement)xnx;
                    XmlNodeList xnls = xe.ChildNodes;
                    foreach (XmlElement xcx in xnls)
                    {
                        int status = Convert.ToInt32(xcx.GetAttribute("status")); //不等于0,该卡不存在
                        if (status == 0)
                        {
                            int    id     = Convert.ToInt32(xcx.GetAttribute("id"));     //ID
                            string slot   = xcx.GetAttribute("slot");                    //卡位
                            int    unlock = Convert.ToInt32(xcx.GetAttribute("unlock")); //卡锁
                            int    type   = Convert.ToInt32(xcx.GetAttribute("type"));
                            int    st     = Convert.ToInt32(xcx.GetAttribute("st"));

                            mi.Id   = id;
                            mi.Name = _cardDic[id].Name;
                            mi.Sit  = slot;

                            ListViewItem lvi = new ListViewItem
                            {
                                Text = _cardDic[id].Name // + cardLock;
                            };
                            lvi.SubItems.Add(_cardDic[id].Price.ToString());
                            lvi.SubItems.Add(_themeDic[_cardDic[id].ThemeID].Name);
                            lvi.ForeColor = unlock == 0 ? Color.Black : Color.Red;
                            this.lvUbox.Items.Add(lvi).Tag = mi;
                        }
                    }
                }
            }
            lvUbox.EndUpdate();
            tssEXchange.Text = null;
        }//获取卡友卡片信息
コード例 #3
0
ファイル: frmEx.cs プロジェクト: Ifover/MC-EX
        private void Card_Exchange()
        {
            string cardid = null, cardsit = null, isCof = null; //卡片ID,卡片位置,是否保险箱
            string iChoseCards = null, uChoseCards = null;      //我的卡片信息,卡友卡片信息
            int    temp = 0;                                    //数量计数

            foreach (ListViewItem item in lvIbox.CheckedItems)
            {
                cardid  = ((Mydata.MyItem)item.Tag).Id.ToString();         //取出卡片ID
                cardsit = ((Mydata.MyItem)item.Tag).Sit.ToString();        //取出卡片位置
                isCof   = item.Group.Header.IndexOf("卡箱") > 0 ? "0" : "1"; //是否保险箱
                temp++;                                                    //数量累计
                string tempChoseCards = cardid + "_" + cardsit + "_" + isCof;
                if (temp > 1)
                {
                    iChoseCards = iChoseCards + "|" + tempChoseCards;
                }
                else
                {
                    iChoseCards = tempChoseCards;
                }
                //少于等于1则直接输出,大于则在中间加上|
            }

            temp = 0;//重置计数
            foreach (ListViewItem item in lvUbox.CheckedItems)
            {
                cardid  = ((Mydata.MyItem)item.Tag).Id.ToString();
                cardsit = ((Mydata.MyItem)item.Tag).Sit.ToString();
                string tempChoseCards = cardid + "_" + cardsit + "_0";
                temp++;
                if (temp > 1)
                {
                    uChoseCards = uChoseCards + "|" + tempChoseCards;
                }
                else
                {
                    uChoseCards = tempChoseCards;
                }
            }
            string postData; //创建提交变量

            postData = string.Format("uin={0}&frnd={1}&cmd=1&isFriend=1&src={2}&dst={3}", Mydata.Iuin, Mydata.Uuin, iChoseCards, uChoseCards);
            //frnd=对方QQ&cmd=1&isFriend=1&src=对方卡片信息&uin=我的QQ&dst=我的卡片信息
            string EXchangeTemp = Mydata.Card_Excg(postData);

            //提交并取得返回值
            if (EXchangeTemp.IndexOf("code=\"0\"") != -1)
            {
                //成功修改背景字体
                tssState.Text      = "交换成功 ~~~";
                tssState.ForeColor = Color.Black;
                tssState.BackColor = Color.GreenYellow;
                I_boxInfo(); //刷新我的卡箱
                U_boxInfo(); //刷新卡友卡箱
                tssEXchange.Visible    = false;
                tsslOkExchange.Visible = false;
                Console.Beep(800, 200);//成功提醒
            }
            else
            {
                string switchStr = Myhelp.getMid(EXchangeTemp, "code=\"", "\" mess");
                //取出失败ID,进行switch匹配
                switch (switchStr)
                {
                case "0":
                    break;

                case "-33061":
                    tssState.Text = "交换失败,此卡已被换走!";
                    break;

                case "-33058":
                    tssState.Text = "交换失败,有卡片被锁!";
                    break;

                default:
                    tssState.Text = "交换失败,未知错误!";
                    break;
                }
                tssState.ForeColor = Color.Black;
                tssState.BackColor = Color.Red;
                //I_boxInfo();//刷新我的卡箱
                U_boxInfo();//刷新卡友卡箱
                tssEXchange.Visible    = false;
                tsslOkExchange.Visible = false;
                Console.Beep(400, 200);//失败提醒
            }
        }
コード例 #4
0
ファイル: frmEx.cs プロジェクト: Ifover/MC-EX
        }//闪卡

        #endregion
        #region 卡箱刷新
        private void I_boxInfo()
        {
            lvIbox.Items.Clear();
            lvIbox.BeginUpdate();
            //Debug.Write(groupBox1.Location);
            string IinfoTemp = Mydata.Card_User("uin=" + Mydata.Iuin); //提交内容将返回的临时文本保存在postdata
            //Debug.Write(IinfoTemp);
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(IinfoTemp);
            XmlNode       xn        = doc.SelectSingleNode("QQHOME");
            XmlNodeList   xnl       = xn.ChildNodes;
            ListViewGroup Exbox_lvg = new ListViewGroup
            {
                Header          = "换卡箱", //设置组的标题。
                HeaderAlignment = HorizontalAlignment.Left
            };                           //创建换卡箱分组

            lvIbox.Groups.Add(Exbox_lvg);

            ListViewGroup Ofbox_lvg = new ListViewGroup
            {
                Header          = "保险箱",
                HeaderAlignment = HorizontalAlignment.Left //组标题居中对齐
            };                                             //创建保险箱分组

            lvIbox.Groups.Add(Ofbox_lvg);
            this.lvIbox.ShowGroups = true;

            foreach (XmlNode xnx in xnl)
            {
                #region 换卡箱
                if (xnx.LocalName == "changebox")
                {
                    XmlElement    xe   = (XmlElement)xnx;
                    XmlNodeList   xnls = xe.ChildNodes;
                    Mydata.MyItem mi;
                    foreach (XmlElement xcx in xnls)
                    {
                        int status = Convert.ToInt32(xcx.GetAttribute("status"));//不等于0,该卡不存在
                        if (status == 0)
                        {
                            string slot   = xcx.GetAttribute("slot");                    //卡位
                            int    unlock = Convert.ToInt32(xcx.GetAttribute("unlock")); //卡锁
                            int    id     = Convert.ToInt32(xcx.GetAttribute("id"));     //ID
                            int    type   = Convert.ToInt32(xcx.GetAttribute("type"));
                            int    st     = Convert.ToInt32(xcx.GetAttribute("st"));
                            //string cardLock = unlock > 0 ? "[锁]" : null;

                            mi.Id   = id;
                            mi.Name = _cardDic[id].Name;
                            mi.Sit  = slot;

                            ListViewItem lvi = new ListViewItem
                            {
                                Text = _cardDic[id].Name
                            };
                            lvi.SubItems.Add(_cardDic[id].Price.ToString());
                            lvi.SubItems.Add(_themeDic[_cardDic[id].ThemeID].Name);
                            lvi.ForeColor = unlock == 0 ? Color.Black : Color.Red;

                            Exbox_lvg.Items.Add(lvi);
                            this.lvIbox.Items.Add(lvi).Tag = mi;
                        }
                    }
                    int myMaxexcur = Convert.ToInt32(xe.GetAttribute("cur"));                         //换卡箱最大箱位
                    Exbox_lvg.Header = "换卡箱  " + Exbox_lvg.Items.Count + "/" + myMaxexcur.ToString(); //设置组的标题。
                }
                #endregion
                #region 保险箱
                if (xnx.LocalName == "storebox")
                {
                    XmlElement    xe   = (XmlElement)xnx;
                    XmlNodeList   xnls = xe.ChildNodes;
                    Mydata.MyItem mi;
                    foreach (XmlElement xcx in xnls)
                    {
                        if (xcx.LocalName == "card")
                        {
                            string slot = xcx.GetAttribute("slot");
                            int    id   = Convert.ToInt32(xcx.GetAttribute("id"));
                            int    type = Convert.ToInt32(xcx.GetAttribute("type"));
                            int    st   = Convert.ToInt32(xcx.GetAttribute("st"));

                            mi.Name = _cardDic[id].Name + ":" + _cardDic[id].Price;
                            mi.Id   = id;
                            mi.Sit  = slot;

                            ListViewItem lvi = new ListViewItem
                            {
                                Text = _cardDic[id].Name
                            };
                            lvi.SubItems.Add(_cardDic[id].Price.ToString());
                            lvi.SubItems.Add(_themeDic[_cardDic[id].ThemeID].Name);

                            Ofbox_lvg.Items.Add(lvi);
                            this.lvIbox.Items.Add(lvi).Tag = (object)mi;
                        }
                    }
                    int myMaxofcur = Convert.ToInt32(xe.GetAttribute("cur"));                         //保险箱最大箱位
                    Ofbox_lvg.Header = "保险箱  " + Ofbox_lvg.Items.Count + "/" + myMaxofcur.ToString(); //设置组的标题。
                }
                #endregion
            }
            lvIbox.EndUpdate();
            tssEXchange.Text = null;
        }//获取我的卡片信息