private void SellButton_Click(object sender, EventArgs e) { for (int User = 0; User < 5; User++) { if (UserComboBox.Text == "﹝" + Form1.UsingProcess[User].ServerName + "﹞" + Form1.UsingProcess[User].Name) { int CheckTradeNum = 0; for (int i = 0; i < SellTradeList.Items.Count; i++)//記錄已勾選的交易品 { if (SellTradeList.Items[i].Checked && !string.IsNullOrWhiteSpace(SellTradeList.Items[i].SubItems[3].Text)) { ++CheckTradeNum; } } Form1.TradeInfo[] TradeInfo = new Form1.TradeInfo[CheckTradeNum]; int index = 0; for (int i = 0; i < GVOCall.City[Form1.UsingProcess[User].CityNo].SellMenuNum; i++) { if (SellTradeList.Items[i].Checked && !string.IsNullOrWhiteSpace(SellTradeList.Items[i].SubItems[3].Text)) { int MaxNum = GVOCall.City[Form1.UsingProcess[User].CityNo]._SellTradeInfo[i].MaxNum; int TradeNum = Convert.ToInt32(SellTradeList.Items[i].SubItems[3].Text); //if (MaxSellCheck.Checked) //TradeNum = City[Form1.UsingProcess[User].CityNo]._SellTradeInfo[i].MaxNum; TradeInfo[index].Code = GVOCall.City[Form1.UsingProcess[User].CityNo]._SellTradeInfo[i].Code; TradeInfo[index].Num = TradeNum; TradeInfo[index].Price = GVOCall.City[Form1.UsingProcess[User].CityNo]._SellTradeInfo[i].SellPrice; ++index; } } if (index > 0) { if (PartyCheckBox.Checked) { for (int Party = 0; Party < 5; Party++) { if (Form1.UsingProcess[Party].hWnd != IntPtr.Zero) { Call.SellTrade(Form1.UsingProcess[Party].hWnd, new CityCall().GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID, TradeInfo, index); } } } else { Call.SellTrade(Form1.UsingProcess[User].hWnd, new CityCall().GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID, TradeInfo, index); } } } } }
public bool SellTrade(int User, string SellList) { if (Call.CheckWindows(Form1.UsingProcess[User].hWnd) == "出售交易物品") { Call.Haggle(Form1.UsingProcess[User].hWnd, GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID); GVOCall.CityInfo.SellTradeInfo[] _SellTradeInfo = new GVOCall.CityInfo.SellTradeInfo[25]; int SellMenuNum = 0; if (Call.GetSellTradeMenu(Form1.UsingProcess[User].hWnd, ref SellMenuNum, ref _SellTradeInfo)) { Form1.UsingProcess[User].DungeonSellIdleCount = 0; Form1.TradeInfo[] TradeInfo = new Form1.TradeInfo[SellMenuNum]; for (int i = 0; i < SellMenuNum; i++) { if (!string.IsNullOrWhiteSpace(SellList) && ((!string.IsNullOrWhiteSpace(_SellTradeInfo[i].Name) && SellList.Contains(_SellTradeInfo[i].Name)) || SellList == "全部")) { TradeInfo[i].Code = _SellTradeInfo[i].Code; TradeInfo[i].Num = _SellTradeInfo[i].MaxNum; TradeInfo[i].Price = _SellTradeInfo[i].SellPrice; } } if (SellMenuNum > 0) { Call.SellTrade(Form1.UsingProcess[User].hWnd, GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID, TradeInfo, SellMenuNum); return(true); } } } else { if (Form1.UsingProcess[User].TimeCount > 3) { Call.InfoButton(Form1.UsingProcess[User].hWnd, GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID, "賣出商品"); Form1.UsingProcess[User].TimeCount = 0; } ++Form1.UsingProcess[User].DungeonSellIdleCount; if (Form1.UsingProcess[User].DungeonSellIdleCount > 10) { Form1.UsingProcess[User].DungeonSellIdleCount = 0; return(true); } } return(false); }
private void BuyButton_Click(object sender, EventArgs e) { for (int User = 0; User < 5; User++) { if (UserComboBox.Text == "﹝" + Form1.UsingProcess[User].ServerName + "﹞" + Form1.UsingProcess[User].Name) { int CheckTradeNum = 0; for (int i = 0; i < BuyTradeList.Items.Count; i++)//記錄已勾選的交易品 { if (BuyTradeList.Items[i].Checked && !string.IsNullOrWhiteSpace(BuyTradeList.Items[i].SubItems[3].Text)) { ++CheckTradeNum; } } int[] Multiple = new int[] { 1, 2, 5, 10, 20, 50, 100 }; Form1.TradeInfo[] TradeInfo = new Form1.TradeInfo[CheckTradeNum * 3]; int index = 0; for (int i = 0; i < GVOCall.City[Form1.UsingProcess[User].CityNo].BuyMenuNum; i++) { if (BuyTradeList.Items[i].Checked && !string.IsNullOrWhiteSpace(BuyTradeList.Items[i].SubItems[3].Text)) { int MaxNum = GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].MaxNum; //最大購買量 int TradeNum = Convert.ToInt32(BuyTradeList.Items[i].SubItems[3].Text); //購買量 if (TradeNum > 0) { TradeInfo[index].ID = GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].ID; TradeInfo[index].Num = TradeNum; TradeInfo[index].Price = GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].Price; ++index; } #region 數轉換 /* * for (int j = 2; j >= 0; j--) * { * if (TradeNum > 0) * { * int Num = TradeNum / GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].Multiple[j]; * if (Num > 0) * { * for (int k = 0; k < Multiple.Length; k++) * if (GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].Multiple[j] == Multiple[k]) * { * TradeInfo[index].Multiple = k; * break; * } * TradeInfo[index].ID = GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].ID; * TradeInfo[index].Num = Num; * TradeInfo[index].MultiplePrice = GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].MultiplePrice[j]; * * TradeNum -= Num * GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].Multiple[j]; * MaxNum -= Num * GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].Multiple[j]; ++index; * } * } * } */ #endregion #region 批次購買 if (batchcheck.Checked && index > 0) { if (PartyCheckBox.Checked) { for (int Party = 0; Party < 5; Party++) { if (Form1.UsingProcess[Party].hWnd != IntPtr.Zero) { Call.BuyTrade(Form1.UsingProcess[Party].hWnd, new CityCall().GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID, TradeInfo, index); } } } else { Call.BuyTrade(Form1.UsingProcess[User].hWnd, new CityCall().GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID, TradeInfo, index); } index = 0; Call.Delay(100); } #endregion } } if (!batchcheck.Checked && index > 0) { if (PartyCheckBox.Checked) { for (int Party = 0; Party < 5; Party++) { if (Form1.UsingProcess[Party].hWnd != IntPtr.Zero) { Call.BuyTrade(Form1.UsingProcess[Party].hWnd, new CityCall().GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID, TradeInfo, index); } } } else { Call.BuyTrade(Form1.UsingProcess[User].hWnd, new CityCall().GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID, TradeInfo, index); } } } } }
public bool BuyTrade(int User, string BuyList) { if (Call.CheckWindows(Form1.UsingProcess[User].hWnd) == "買入交易物品") { Call.Haggle(Form1.UsingProcess[User].hWnd, GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID); int[] Multiple = new int[] { 1, 2, 5, 10, 20, 50, 100 }; int BuyMenuNum = 0; GVOCall.CityInfo.BuyTradeInfo[] _BuyTradeInfo = new GVOCall.CityInfo.BuyTradeInfo[15]; if (Call.GetBuyTradeMenu(Form1.UsingProcess[User].hWnd, ref BuyMenuNum, ref _BuyTradeInfo)) { Form1.TradeInfo[] TradeInfo = new Form1.TradeInfo[BuyMenuNum * 3]; for (int i = 0; i < BuyMenuNum; i++) { if (!string.IsNullOrWhiteSpace(BuyList) && (BuyList.Contains(_BuyTradeInfo[i].Name) || BuyList == "全部")) { int index = 0; int TradeNum = _BuyTradeInfo[i].MaxNum;//購買量 if (TradeNum > 0) { TradeInfo[index].ID = GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].ID; TradeInfo[index].Num = TradeNum; TradeInfo[index].Price = GVOCall.City[Form1.UsingProcess[User].CityNo]._BuyTradeInfo[i].Price; ++index; } #region 數轉換 /* * for (int j = 2; j >= 0; j--) * { * if (TradeNum > 0) * { * int Num = TradeNum / _BuyTradeInfo[i].Multiple[j]; * if (Num > 0) * { * for (int k = 0; k < Multiple.Length; k++) * if (_BuyTradeInfo[i].Multiple[j] == Multiple[k]) * { * TradeInfo[index].Multiple = k; * break; * } * TradeInfo[index].ID = _BuyTradeInfo[i].ID; * TradeInfo[index].Num = Num; * TradeInfo[index].MultiplePrice = _BuyTradeInfo[i].MultiplePrice[j]; * * TradeNum -= Num * _BuyTradeInfo[i].Multiple[j]; ++index; * } * } * } */ #endregion if (index > 0) { Call.BuyTrade(Form1.UsingProcess[User].hWnd, GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID, TradeInfo, index); Call.Delay(100); } } } return(true); } } else { if (Form1.UsingProcess[User].TimeCount > 3) { Call.InfoButton(Form1.UsingProcess[User].hWnd, GetClosestTarget(User, "交易所學徒", "交易所店主", "", "").ID, "購買商品"); Form1.UsingProcess[User].TimeCount = 0; } } return(false); }