Esempio n. 1
0
        private bool sellExpFunc(int type)
        {
            var idList = new List <string>();

            foreach (var pse in ps.servantList)
            {
                var fse = pse.Value;
                if (fse.isLock)
                {
                    continue;
                }
                if (type == 0)
                {
                    if (!fse.svtId.StartsWith("970") && fse.svtId != "9770300")
                    {
                        continue;
                    }
                    if (fse.svtId.EndsWith("400"))
                    {
                        continue;
                    }
                }
                else
                {
                    if (!fse.svtId.StartsWith("970") && !fse.svtId.StartsWith("9750") && !fse.svtId.StartsWith("9770"))
                    {
                        continue;
                    }
                }
                idList.Add(pse.Key);
            }
            var idListArray = idList.ToArray();
            var str         = string.Empty;

            for (var i = 0; i < idListArray.Length; i++)
            {
                if (i > 0)
                {
                    str = str + ",";
                }
                var str2      = str;
                var objArray1 = new object[] { str2, "{\"id\":", long.Parse(idListArray[i]), ",\"num\":1}" };
                str = string.Concat(objArray1);
            }
            var sell = FgoRequest.fgo_shopsellsvt(ps.uid, str);

            if (sell[0] != "00")
            {
                logBox.AppendText(LogHelper.createFailMessageBox(sell));
                return(false);
            }
            logBox.AppendText(LogHelper.getPrefix() + "狗粮已出售.\r\n");
            logBox.AppendText(LogHelper.getPrefix() + "总计: " + idListArray.Length + "\r\n");
            logBox.AppendText(LogHelper.getPrefix() + "获得QP: " + sell[1] + "\r\n");
            home();
            return(true);
        }
Esempio n. 2
0
        private bool recoverAp(int selectedIndex)
        {
            var rec = FgoRequest.fgo_recover(ps.uid, selectedIndex);

            if (rec[0] != "00")
            {
                logBox.AppendText(LogHelper.createFailMessageBox(rec));
                return(false);
            }
            logBox.AppendText(LogHelper.getPrefix() + "体力已回复.\r\n");
            home();
            return(true);
        }
Esempio n. 3
0
        private void btnGetVersion_Click(object sender, EventArgs e)
        {
            FgoConstant.fgo_const[0] = versionLabel.Text;
            FgoRequest.fgo_server();
            var member = FgoRequest.fgo_member();

            if (member[0] != "00")
            {
                logBox.AppendText(LogHelper.createFailMessageBox(member));
                return;
            }
            logBox.AppendText(LogHelper.getPrefix() + "服务器获取成功 [" + FgoMain.get_data_ver() + "]\r\n");
            btnLogin.Enabled      = true;
            btnGetVersion.Enabled = false;
            user.Enabled          = true;
            password.Enabled      = true;
        }
Esempio n. 4
0
        private void btnLogin_Click(object sender, EventArgs e)
        {
            var rsa = BiliLogin.bili_rsa();
            var bl  = BiliLogin.bili_login(user.Text, password.Text, rsa[0], rsa[1]);

            if (bl[0] == "pwd_error")
            {
                MessageBox.Show("密码错误");
                return;
            }
            var userinfo = BiliLogin.bili_userinfo(bl[1]);

            face.BackgroundImageLayout = ImageLayout.Stretch;
            face.SizeMode = PictureBoxSizeMode.StretchImage;
            face.Load(userinfo[1]);
            var center = FgoRequest.fgo_logintomembercenter(userinfo[0], bl[0], bl[1]);

            if (center[0] != "00")
            {
                logBox.AppendText(LogHelper.createFailMessageBox(center));
                return;
            }
            var login = FgoRequest.fgo_login(center[1], center[2]);

            if (login[0] != "00")
            {
                logBox.AppendText(LogHelper.createFailMessageBox(login));
                return;
            }
            logBox.AppendText(LogHelper.getPrefix() + FgoMain.get_usk(login[1]) + "\r\n");
            btnLogin.Enabled      = false;
            btnRefreshInv.Enabled = true;
            startBattle.Enabled   = true;
            finishBattle.Enabled  = true;
            btnRecoverAp.Enabled  = true;
            sellExp.Enabled       = true;
            //startKeJin.Enabled = true;
            sellThreeStars.Enabled = true;
            output.Enabled         = true;
            logBox.AppendText(LogHelper.getPrefix() + "登录第一步成功.\r\n");
            topLogin(login[1], login[2]);
            home();
        }
Esempio n. 5
0
 private void battleTimer_Tick(object sender, EventArgs e)
 {
     resultTime.Text = battleTime.ToString();
     battleTime--;
     if (battleTime < 0)
     {
         var br = FgoRequest.fgo_battleresult(ps.uid, bif);
         battleTimes.Text = (int.Parse(battleTimes.Text) - 1).ToString();
         if (br[0] != "00")
         {
             battleTimer.Enabled = false;
             logBox.AppendText(LogHelper.createFailMessageBox(br));
             startBattle.Enabled   = true;
             btnRefreshInv.Enabled = true;
             btnRecoverAp.Enabled  = true;
             sellExp.Enabled       = true;
             resultTime.Enabled    = true;
             resultTime.Text       = ScriptConst.settingTime;
             battleTimes.Text      = ScriptConst.battleTimes;
             battleTimes.ReadOnly  = false;
             return;
         }
         battleTimer.Enabled = false;
         home();
         startBattle.Enabled   = true;
         resultTime.Enabled    = true;
         resultTime.Text       = ScriptConst.settingTime;
         battleTimes.ReadOnly  = false;
         btnRefreshInv.Enabled = true;
         btnRecoverAp.Enabled  = true;
         sellExp.Enabled       = true;
         if (int.Parse(battleTimes.Text) > 0)
         {
             battlesetup();
         }
         else
         {
             battleTimes.Text = ScriptConst.battleTimes;
         }
     }
 }
Esempio n. 6
0
        public void topLogin(string uid, string nickname)
        {
            var toplogin = FgoRequest.fgo_toplogin(uid, nickname);

            if (toplogin.uid.Length != 12)
            {
                LogHelper.createFailMessageBox(toplogin);
                return;
            }
            ps        = toplogin;
            id.Text   = ps.uid;
            name.Text = ps.name;
            var i = 0;

            foreach (var deckName in ps.deckList.Values)
            {
                deckList.Items.Insert(i, deckName);
                i++;
            }
            deckList.SelectedIndex = 0;
            logBox.AppendText(LogHelper.getPrefix() + "登录第二步成功.\r\n");
        }
Esempio n. 7
0
        private void home()
        {
            var home = FgoRequest.fgo_home(ps);

            if (ps.uid.Length != 12)
            {
                logBox.AppendText(LogHelper.createFailMessageBox(ps));
                return;
            }
            ps = home;
            //if (((DataTable)itemInv.DataSource).Rows.Count > 0)
            //{
            var invTable = new DataTable();

            invTable.Columns.AddRange(new DataColumn[] { new DataColumn("物品名字"), new DataColumn("数量") });
            foreach (var item in ps.itemList)
            {
                if (item.Value != 0)
                {
                    if (ScriptConst.mstItem.ContainsKey(item.Key))
                    {
                        invTable.Rows.Add(ScriptConst.mstItem[item.Key], item.Value);
                    }
                    else
                    {
                        invTable.Rows.Add(item.Key, item.Value);
                    }
                }
            }
            itemInv.DataSource = invTable;
            //}
            maxAp.Text       = ps.actMax.ToString();
            nowAp.Text       = FgoMain.GetBaseAct(ps.actRecoverAt, ps.actMax).ToString();
            freeStone.Text   = ps.freeStone.ToString();
            chargeStone.Text = ps.chargeStone.ToString();
            followerBox.Items.Clear();
            var isFound = false;
            var i       = 0;

            foreach (var fs in ps.followerInfo.Keys)
            {
                followerBox.Items.Insert(i, fs);
                if (equipMin.Text.Equals("") && !equipMax.Text.Equals(""))
                {
                    equipMin.Text = equipMax.Text;
                }
                else if (equipMax.Text.Equals("") && !equipMin.Text.Equals(""))
                {
                    equipMax.Text = equipMin.Text;
                }
                if (!equipMin.Text.Equals("") && !equipMax.Text.Equals("") && !isFound)
                {
                    var fsp = ps.followerList[ps.followerInfo[fs]];
                    for (var ii = 0; ii < fsp.Length; ii++)
                    {
                        if (fullEquip.Checked && !fsp[ii].equipMax)
                        {
                            continue;
                        }
                        if (!(int.Parse(fsp[ii].equipId) >= int.Parse(equipMin.Text)))
                        {
                            continue;
                        }
                        if (!(int.Parse(fsp[ii].equipId) <= int.Parse(equipMax.Text)))
                        {
                            continue;
                        }
                        followerBox.SelectedIndex   = i;
                        followerClass.SelectedIndex = ii;
                        isFound = true;
                    }
                }
                i++;
            }
            logBox.AppendText(LogHelper.getPrefix() + "刷新数据成功.\r\n");
        }
Esempio n. 8
0
        private void battlesetup()
        {
            btnRefreshInv.Enabled = false;
            btnRecoverAp.Enabled  = false;
            sellExp.Enabled       = false;
            if (resultTime.Text != "")
            {
                resultTime.Text = "30";
            }
            startBattle.Enabled  = false;
            battleTimes.ReadOnly = true;
            var bi = FgoRequest.fgo_battlesetup(ps.uid, questId.Text, questPhase.Text, deckId, ps.followerInfo[followerBox.Text], followerClass.SelectedIndex);

            bif = bi;
            if (bi.battleResCode != "00")
            {
                var jo = JObject.Parse(bi.battleExtra);
                if (jo["detail"].ToString().IndexOf("AP不足") != -1 && autoApple.Checked)
                {
                    if (!recoverAp(apBox.SelectedIndex))
                    {
                        goto sth;
                    }
                    battlesetup();
                    return;
                }
                if (jo["detail"].ToString().IndexOf("从者数量") != -1 && autoSell.Checked)
                {
                    if (!sellExpFunc(0))
                    {
                        goto sth;
                    }
                    battlesetup();
                    return;
                }
                logBox.AppendText(LogHelper.createFailMessageBox(new string[] { "00", jo["title"].ToString(), jo["detail"].ToString() }));
sth:
                btnRefreshInv.Enabled = true;
                btnRecoverAp.Enabled  = true;
                sellExp.Enabled       = true;
                startBattle.Enabled   = true;
                battleTimes.ReadOnly  = false;
                battleTimes.Text      = ScriptConst.battleTimes;
                return;
            }
            logBox.AppendText(LogHelper.getPrefix() + "战斗" + bi.battleId + "掉落:\r\n");
            foreach (var dic in bi.dropInfo)
            {
                if (ScriptConst.mstItem.ContainsKey(dic.Key))
                {
                    logBox.AppendText(LogHelper.getPrefix() + ScriptConst.mstItem[dic.Key] + " x " + dic.Value + "\r\n");
                }
                else
                {
                    logBox.AppendText(LogHelper.getPrefix() + dic.Key + " x " + dic.Value + "\r\n");
                }
            }
            ScriptConst.settingTime = resultTime.Text;
            battleTime          = int.Parse(ScriptConst.settingTime);
            battleTimer.Enabled = true;
            resultTime.Enabled  = false;
        }