private void btnBuildTeam_Click(object sender, EventArgs e) { try { _toolbuildteam = new ToolBuildTeam((AccountInfo)cmbAccount.SelectedItem); _toolbuildteam.MessageChanged += new KaixinBase.MessageChangedEventHandler(_toolbuildteam_MessageChanged); _toolbuildteam.ValidateCodeNeeded += new KaixinBase.ValidateCodeNeededEventHandler(_toolbuildteam_ValidateCodeNeeded); _toolbuildteam.BuildTeamFinished += new GamePark.BuildTeamFinishedEventHandler(_toolbuildteam_BuildTeamFinished); if (cmbAccount.Items.Count <= 0 || cmbAccount.SelectedIndex < 0) { MessageBox.Show("请选择账号!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); cmbAccount.Select(); return; } if (lstViewCarsInMarket.SelectedItems.Count == 0) { MessageBox.Show("请在市场上的汽车列表里选择你需要组建的车队车型!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); lstViewCarsInMarket.Select(); return; } if (cmbMaxCarCount.Items.Count <= 0 || cmbMaxCarCount.SelectedIndex < 0) { MessageBox.Show("请选择汽车数量!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); cmbMaxCarCount.Select(); return; } _account = cmbAccount.Items[cmbAccount.SelectedIndex] as AccountInfo; if (_account == null) { return; } _modelcar = new NewCarInfo(); ListViewItem item = lstViewCarsInMarket.SelectedItems[0]; if (item != null) { _modelcar.CarId = DataConvert.GetInt32(item.SubItems[3].Text); _modelcar.CarName = item.SubItems[1].Text; _modelcar.CarPrice = DataConvert.GetInt32(item.SubItems[2].Text); } if (_modelcar.CarPrice < 70000) { MessageBox.Show("按规则70000元以下的车型,同一款车只能拥有一辆!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); lstViewCarsInMarket.Select(); return; } if (_modelcar.CarPrice < 200000) { if (MessageBox.Show("根据游戏规则,不能组建汽车单价低于200000的车队!是否继续?", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { lstViewCarsInMarket.Select(); return; } } _maxcarcount = DataConvert.GetInt32(cmbMaxCarCount.Items[cmbMaxCarCount.SelectedIndex].ToString()); _exchange = ExchangeCar.Stop; if (rdbExpensive.Checked) { _exchange = ExchangeCar.Expensive; } else if (rdbCheap.Checked) { _exchange = ExchangeCar.Cheap; } SetControlStatus(false); _toolbuildteam._account = _account; _toolbuildteam._modelcar = _modelcar; _toolbuildteam._maxcarcount = _maxcarcount; _toolbuildteam._exchange = _exchange; _toolbuildteam._carsInMarket = _carsInMarket; _toolbuildteam.BuildTeamByThread(); } catch (Exception ex) { Program.ShowMessageBox("FrmBuildTeam", ex); } }
private void btnBuildTeam_Click(object sender, EventArgs e) { try { _toolbuildteam = new ToolBuildTeam((AccountInfo)cmbAccount.SelectedItem); _toolbuildteam.MessageChanged += new KaixinBase.MessageChangedEventHandler(_toolbuildteam_MessageChanged); _toolbuildteam.ValidateCodeNeeded += new KaixinBase.ValidateCodeNeededEventHandler(_toolbuildteam_ValidateCodeNeeded); _toolbuildteam.BuildTeamFinished += new GamePark.BuildTeamFinishedEventHandler(_toolbuildteam_BuildTeamFinished); if (cmbAccount.Items.Count <= 0 || cmbAccount.SelectedIndex < 0) { MessageBox.Show("请选择账号!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); cmbAccount.Select(); return; } if (lstViewCarsInMarket.SelectedItems.Count == 0) { MessageBox.Show("请在市场上的汽车列表里选择你需要组建的车队车型!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); lstViewCarsInMarket.Select(); return; } if (cmbMaxCarCount.Items.Count <= 0 || cmbMaxCarCount.SelectedIndex < 0) { MessageBox.Show("请选择汽车数量!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); cmbMaxCarCount.Select(); return; } _account = cmbAccount.Items[cmbAccount.SelectedIndex] as AccountInfo; if (_account == null) return; _modelcar = new NewCarInfo(); ListViewItem item = lstViewCarsInMarket.SelectedItems[0]; if (item != null) { _modelcar.CarId = DataConvert.GetInt32(item.SubItems[3].Text); _modelcar.CarName = item.SubItems[1].Text; _modelcar.CarPrice = DataConvert.GetInt32(item.SubItems[2].Text); } if (_modelcar.CarPrice < 70000) { MessageBox.Show("按规则70000元以下的车型,同一款车只能拥有一辆!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); lstViewCarsInMarket.Select(); return; } if (_modelcar.CarPrice < 200000) { if (MessageBox.Show("根据游戏规则,不能组建汽车单价低于200000的车队!是否继续?", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { lstViewCarsInMarket.Select(); return; } } _maxcarcount = DataConvert.GetInt32(cmbMaxCarCount.Items[cmbMaxCarCount.SelectedIndex].ToString()); _exchange = ExchangeCar.Stop; if (rdbExpensive.Checked) _exchange = ExchangeCar.Expensive; else if (rdbCheap.Checked) _exchange = ExchangeCar.Cheap; SetControlStatus(false); _toolbuildteam._account = _account; _toolbuildteam._modelcar = _modelcar; _toolbuildteam._maxcarcount = _maxcarcount; _toolbuildteam._exchange = _exchange; _toolbuildteam._carsInMarket = _carsInMarket; _toolbuildteam.BuildTeamByThread(); } catch (Exception ex) { Program.ShowMessageBox("FrmBuildTeam", ex); } }
public void BuildTeam(AccountInfo account, NewCarInfo modelcar, int carcount, ExchangeCar exchange, Collection<NewCarInfo> carsInMarket) { TryCatchBlock th = new TryCatchBlock(delegate { _module = Constants.MSG_BUILDTEAM; _outofmoney = false; //if (modelcar.CarPrice < 200000) //{ // SetMessageLn("根据游戏规则,不能组建汽车单价低于200000的车队!"); // OnBuildTeamFinished(); // return; //} _allCarsInMarketList = carsInMarket; SetMessageLn("开始组建车队..."); if (!this.ValidationLogin(account)) { if (BuildTeamFinished != null) BuildTeamFinished(null, 0, 0); return; } string content = RequestParkHomePage(); this.ReadCars(content, false); Collection<NewCarInfo> buildableCars = FindNeedsBuildCars(modelcar); if (buildableCars.Count <= 0) { SetMessageLn("您已经拥有6辆该款车型的汽车,无需再换购!"); } else { int ix = 0; int index = 0; foreach (NewCarInfo newcar in buildableCars) { if (this._outofmoney) break; if (carcount > _carList.Count) { SetMessageLn(string.Format("需要组建的车辆#{0}({1}):{2}({3},{4}) ", ++index, (carcount > _carList.Count) ? "购买" : "换购", newcar.CarName, GetCarColor(newcar.CarColor), newcar.CarPrice)); BuyTheCar(newcar); } else { if (exchange == ExchangeCar.Stop) { SetMessageLn("达到最大汽车数量,停止操作!"); break; } SetMessageLn(string.Format("需要组建的车辆#{0}({1}):{2}({3},{4}) ", ++index, (carcount > _carList.Count) ? "购买" : "换购", newcar.CarName, GetCarColor(newcar.CarColor), newcar.CarPrice)); _carList = SortCarsList(); if (exchange == ExchangeCar.Expensive) { for (ix = _carList.Count - 1; ix >= 0; ix--) { if (this._outofmoney || UpgradeTheCar(_carList[ix], newcar)) break; } } else { for (ix = 0; ix < _carList.Count; ix++) { if (this._outofmoney || UpgradeTheCar(_carList[ix], newcar)) break; } } } } } content = RequestParkHomePage(); this.ReadCars(content, false); SetMessageLn("组建车队完成!"); if (BuildTeamFinished != null) BuildTeamFinished(_carList, _parkcash, _carprice); }); base.ExecuteTryCatchBlock(th, "发生异常,组建车队失败!"); }