private async Task TrainNextHero() { var index = trainingIndex % barracks.Heroes.Count; ++trainingIndex; // Tướng đang được duyệt. var hero = barracks.Heroes[index]; if (!IsHeroAutoTrain(hero.Id)) { // Không được đánh dấu. return; } if (hero.IsTraining) { // Đang được huấn luyện. return; } if (barracks.CurrentSlots == barracks.MaxSlots) { // Hết vị trí huấn luyện. if (barracks.Heroes.Count(item => item.IsTraining) < barracks.CurrentSlots) { // Có vị trí nào đó hết thời gian huấn luyện. // Cập nhật lại thao trường. await RefreshHeroesAsync(); return; } } else { logModel.Log(String.Format("Bắt đầu huấn luyện tướng {0} Lv. {1} Exp {2}/{3}", hero.Name, hero.Level, hero.Exp, hero.NextExp)); await packetWriter.TrainHeroAsync(hero.Id); await RefreshHeroesAsync(); } }
private async void chkAutoRaiseBird_CheckedChanged(object sender, EventArgs e) { if (chkAutoRaiseBird.Checked) { try { while (await CheckConditionAsync() && chkAutoRaiseBird.Checked) { int type = 1; var packet = await packetWriter.RaiseBirdAsync(type); if (packet == null) { messageLogModel.Log("Lỗi nuôi chim."); } Parse66004(packet); await Task.Delay(40); } chkAutoRaiseBird.Checked = false; messageLogModel.Log("Hết bạc."); } catch (Exception ee) { Console.WriteLine(ee.Message.ToString()); messageLogModel.Log(ee.Message.ToString()); } } }
private async void playerList_ButtonClick(object sender, CellClickEventArgs e) { var item = e.Item; var player = (ArenaPlayer)item.RowObject; messageLog.Log(String.Format("[Võ đài] Khiêu chiến với {0} Lv. {1}", player.Name, player.Level)); await Duel(player.Id, player.Rank); }
private async Task <bool> ChangeBetterStats(int techId) { if (asyncLock) { return(false); } try { asyncLock = true; if (instituteInfo == null) { return(false); } var tech = instituteInfo.Techs.Find(item => item.Id == techId); if (tech.NewValue == 0) { return(true); } if (tech.NewValue <= tech.Value) { return(true); } messageLogModel.Log(String.Format("[SNC] {0}: {1} +{2}{3} => +{4}{5}", tech.Name, tech.Desc, tech.Value, tech.ValueUnit, tech.NewValue, tech.ValueUnit)); var p = await packetWriter.ChangeInstituteTechAsync(techId); if (p == null || p.HasError) { return(false); } return(true); } finally { asyncLock = false; } }
private void Parse34108(Packet packet) { var token = JToken.Parse(packet.Message); var report = ArmyReport.Parse(token); foreach (var detail in report.Reports) { messageLogModel.Log(detail); } if (report.Gains.Length > 0) { messageLogModel.Log(String.Format("Tấn công quân đoàn nhận được: {0}", report.Gains)); } else { messageLogModel.Log("Tấn công quân đoàn nhận thất bại."); } }
private async void miningTimer_Tick(object sender, EventArgs e) { if (miningLocking) { return; } if (autoDrillBox.Checked) { try { miningLocking = true; if (cooldownModel.DrillCooldown > 0) { return; } // Kiểm tra lại đóng băng. var packet = await packetWriter.RefreshOutsideAsync(infoModel.PlayerId); if (packet == null) { return; } if (cooldownModel.DrillCooldown > 0) { return; } var token = JToken.Parse(packet.Message); var extraBaseInfo = (JArray)token["extraBaseInfo"]; if (extraBaseInfo.Count == 0) { messageLogModel.Log("[Khoan] Chưa mở ngoại thành!"); autoDrillBox.Checked = false; return; } var drillToken = extraBaseInfo[extraBaseInfo.Count - 3]; var axeDtoList = (JArray)drillToken["axeDtoList"]; var normalMining = axeDtoList[0]; var rewardTime = (long)normalMining["rewardTime"]; if (rewardTime != 0) { // Có quà chưa nhận. var p1 = await packetWriter.GetDrillResultAsync(); if (p1 == null) { return; } messageLogModel.Log(String.Format("[Khoan] Tiến hành mở kết quả khoan.")); var result = DrillResult.Parse(JToken.Parse(p1.Message)); if (result == null) { return; } foreach (var reward in result.Rewards) { messageLogModel.Log(String.Format("[Khoan] Nhận được {0} {1}.", reward.Award, reward.Name)); } } messageLogModel.Log("[Khoan] Bắt đầu khoan..."); await packetWriter.DrillAsync(); } finally { miningLocking = false; } } }
public async Task <bool> LogIn(bool parallel) { if (State == ClientState.Connected) { systemLog.Log("Đã đăng nhập, không cần đăng nhập lại!"); return(false); } if (State == ClientState.Connecting) { systemLog.Log("Đang đang nhập, không cần đăng nhập lại!"); return(false); } if (State == ClientState.Disconnecting) { systemLog.Log("Đang đang xuất, không thể đăng nhập!"); return(false); } try { await LogIn(Config.ServerId, Config.Username, Config.Password, parallel); return(true); } catch (WebException ex) { systemLog.Log(ex.Message); systemLog.Log("Đăng nhập thất bại!"); State = ClientState.Disconnected; return(false); } }