public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value; if (fleet?.Ships[0]?.Info.ShipType.Id != 3) { return; // 기함 경순양함 이외 } if (fleet?.Ships.Any(x => x.Info.ShipType.Id != 2 && x.Info.ShipType.Id != 3) ?? false) { return; // 구축함, 경순양함 이외 함종 } if (fleet?.Ships.Count(x => x.Info.ShipType.Id == 3) > 3) { return; // 경순양함 3척 이상 } if (fleet?.Ships.Count(x => x.Info.ShipType.Id == 2) < 3) { return; // 구축함 3척 미만 } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } if (args.MapWorldId != 1 || args.MapAreaId != 5) { return; // 1-5 } if ("敵通商破壊主力艦隊" != args.EnemyName) { return; // boss } if (!"SA".Contains(args.Rank)) { return; } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(ApiEvent apiEvent) { apiEvent.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } foreach (var ship in args.EnemyShips) { // 7 = CVL // 11 = CV if (ship.Type == 7 || ship.Type == 11) { if (ship.MaxHp != int.MaxValue && ship.NowHp <= 0) { count += count >= max_count ? 0 : 1; } } } ProcessChanged?.Invoke(this, new EventArgs()); }; }
public void RegisterEvent(TrackManager manager) { manager.HenseiEvent += (sender, args) => { if (!IsTracking) { return; } count = 0; var homeport = KanColleClient.Current.Homeport; foreach (var fleet in homeport.Organization.Fleets) { var ships = fleet.Value.Ships; count = Math.Max( count, ships.Count(x => x.Info.ShipType.Id == 8 || x.Info.ShipType.Id == 9).Max(1) + ships.Count(x => x.Info.ShipType.Id == 5).Max(2) ); } ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } if (args.MapWorldId != 3 || args.MapAreaId != 5) { return; // 3-5 } if (args.EnemyName != "北方増援部隊主力") { return; // boss } if ("S" != args.Rank) { return; // S승리 } var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value; var ships = fleet?.Ships; if (ships[0]?.Info.ShipType.Id != 7 || ships[0]?.Info.ShipType.Id != 11 || ships[0]?.Info.ShipType.Id != 18) { return; // 공모 기함 } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.MissionResultEvent += (sender, args) => { if (!IsTracking) { return; } if (!args.IsSuccess) { return; } if (args.Name == "MO作戦") { count_1 = count_1.Add(1).Max(1); } if (args.Name == "敵母港空襲作戦") { count_2 = count_2.Add(1).Max(1); } ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.HenseiEvent += (sender, args) => { if (!IsTracking) { return; } count = 0; var shipTable = new int[] { 463, // 朝潮改二 468, // 朝潮改二丁 199, // 大潮改二 }; var homeport = KanColleClient.Current.Homeport; foreach (var fleet in homeport.Organization.Fleets) { var ships = fleet.Value.Ships; if (ships.Length <= 0) { continue; } count = Math.Max( count, ships.Count(x => shipTable.Contains(x.Info.Id)) ); } ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value; var flagship = fleet?.Ships[0]?.Info.ShipType.Id; if (flagship != 7 && flagship != 11 && flagship != 18) { return; // 기함 공모 이외 } if (fleet?.Ships.Count(x => x.Info.ShipType.Id == 2) < 3) { return; // 구축함 3척 미만 } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.DestoryItemEvent += (sender, args) => { if (!IsTracking) { return; } var flagshipTable = new int[] { 89, // 鳳翔 285, // 鳳翔改 }; var fleet = KanColleClient.Current.Homeport.Organization.Fleets[1]; if (!flagshipTable.Any(x => x == (fleet?.Ships[0]?.Info.Id ?? 0))) { return; // 호쇼 비서함 } var slotitems = fleet?.Ships[0]?.Slots; if (!slotitems.Any(x => x.Item.Info.Id == 20 && x.Item.Proficiency == 7)) { return; // 숙련도max 영식함전21형 } var homeportSlotitems = KanColleClient.Current.Homeport.Itemyard.SlotItems; count_1 = count_1.Add(args.itemList.Count(x => (homeportSlotitems[x]?.Info.Id ?? 0) == 20)).Max(2); // 영식함전21형 count_2 = count_2.Add(args.itemList.Count(x => (homeportSlotitems[x]?.Info.Id ?? 0) == 19)).Max(1); // 96식함전 ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.HenseiEvent += (sender, args) => { if (!IsTracking) { return; } count = 0; var homeport = KanColleClient.Current.Homeport; foreach (var fleet in homeport.Organization.Fleets) { var ships = fleet.Value.Ships; if (ships.Length <= 0) { continue; } if (ships[0]?.Info.ShipType.Id != 20) { continue; // 잠수모함 기함 } count = Math.Max( count, (1 + ships.Count(x => x.Info.ShipType.Id == 13 || x.Info.ShipType.Id == 14)).Max(5) ); } ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.HenseiEvent += (sender, args) => { if (!IsTracking) { return; } count = 0; var homeport = KanColleClient.Current.Homeport; foreach (var fleet in homeport.Organization.Fleets) { var ships = fleet.Value.Ships; if (ships.Length <= 0) { continue; } var flagship = ships[0]?.Info.ShipType.Id; // 기함 공모/장갑공모 count = Math.Max( count, (flagship != 7 && flagship != 11 && flagship != 18) ? 0 : ships.Count(x => x.Info.ShipType.Id == 7 || x.Info.ShipType.Id == 11 || x.Info.ShipType.Id == 18).Max(1) + ships.Count(x => x.Info.ShipType.Id == 2).Max(3) ); } ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.HenseiEvent += (sender, args) => { if (!IsTracking) { return; } var homeport = KanColleClient.Current.Homeport; foreach (var fleet in homeport.Organization.Fleets) { var ships = fleet.Value.Ships; if (ships.Length <= 0) { continue; } count = Math.Max( count, (ships[0]?.Info.Id ?? 0) == 406 ? 1 : 0 // 雲龍改 ); } ProcessChanged?.Invoke(this, emptyEventArgs); }; }
private void EndProcess(string context, string message, bool isComplete) { lblProcess.InvokeIfRequired(() => { lblProcess.Text = context; }); lblMessage.InvokeIfRequired(() => { lblMessage.Text = message; }); ProcessChanged?.Invoke(this, new SyncStateEventArgs { StepName = this.Name, Status = isComplete ? PublishProcessStatus.Complete : PublishProcessStatus.Fail, Message = message }); if (isComplete || processRunAt) { btnClose.Visible = true; btnClose.PerformClick(); } else { btnClose.Visible = true; btnUpdate.Visible = true; processRunAt = true; } }
public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } if (args.MapWorldId != 1 || args.MapAreaId != 6) { return; // 1-6 } if (args.MapNodeId != 14 && args.MapNodeId != 17) { return; // 1-6-N node } var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value; var ships = fleet?.Ships; var flagship = ships[0]?.Info.ShipType.Id; if (flagship != 3 && flagship != 4 && flagship != 21) { return; // 기함 경순/중뇌순/연순 } if (ships.Count(x => x.Info.ShipType.Id == 2) < 4) { return; // 구축 4척 } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { EventHandler handler = (sender, args) => { if (!IsTracking) return; count = 0; var flagshipTable = new int[] { 89, // 鳳翔 285, // 鳳翔改 }; var fleet = KanColleClient.Current.Homeport.Organization.Fleets[1]; if (!flagshipTable.Any(x => x == (fleet?.Ships[0]?.Info.Id ?? 0))) return; // 호쇼 기함 var slotitems = fleet?.Ships[0]?.Slots; if (!slotitems.Any(x => x.Item.Info.Id == 19 && x.Item.Level == 10 && x.Item.Proficiency == 7)) return; // 숙련도max, 개수max 96식함전 count = 1; ProcessChanged?.Invoke(this, emptyEventArgs); }; manager.HenseiEvent += handler; manager.EquipEvent += handler; }
public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } if (args.MapWorldId != 6 || args.MapAreaId != 3) { return; // 6-3 } if (args.EnemyName != "留守泊地旗艦艦隊") { return; // boss } if (!"SAB".Contains(args.Rank)) { return; // B승리 이상 } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } var BossNameList = new string[] { "深海棲艦泊地艦隊", // 3-3 "深海棲艦北方艦隊中枢", // 3-4 "北方増援部隊主力" // 3-5 }; if (args.MapWorldId != 3 || (args.MapAreaId != 3 && args.MapAreaId != 4 && args.MapAreaId != 5)) { return; // 3-3 3-4 3-5 } if (!BossNameList.Contains(args.EnemyName)) { return; // boss } if (!"SAB".Contains(args.Rank)) { return; } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } var BossNameList = new string[] { "敵主力艦隊", // 2-1, 2-5 "敵通商破壊艦隊", // 2-2 "敵主力打撃群", // 2-3 "敵侵攻中核艦隊", // 2-4 }; if (args.MapWorldId != 2) { return; // 2 해역 } if (!BossNameList.Contains(args.EnemyName)) { return; // 보스명 } if (!"SAB".Contains(args.Rank)) { return; // 승리 랭크 } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.DestoryItemEvent += (sender, args) => { if (!IsTracking) { return; } var flagshipTable = new int[] { 110, // 翔鶴 288, // 翔鶴改 461, // 翔鶴改二 466, // 翔鶴改二甲 }; var fleet = KanColleClient.Current.Homeport.Organization.Fleets[1]; if (!flagshipTable.Any(x => x == (fleet?.Ships[0]?.Info.Id ?? 0))) { return; // 쇼카쿠 비서함 } var slotitems = fleet?.Ships[0]?.Slots; if (!slotitems.Any(x => x.Item.Info.Id == 143)) { return; // 97식 함상공격기(무라타대) } var homeportSlotitems = KanColleClient.Current.Homeport.Itemyard.SlotItems; count = count.Add(args.itemList.Count(x => (homeportSlotitems[x]?.Info.Id ?? 0) == 17)) // 텐잔 .Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } if (args.MapWorldId != 2 || args.MapAreaId != 3) { return; // 2-3 } if (args.EnemyName != "敵主力打撃群") { return; // boss } if (!"SAB".Contains(args.Rank)) { return; // 승리 } var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value; if (fleet?.Ships.Count(x => x.Info.ShipType.Id == 13 || x.Info.ShipType.Id == 14) < 2) { return; } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } if (args.MapWorldId != 1 || args.MapAreaId != 4) { return; // 1-4 } if (args.EnemyName != "敵機動部隊") { return; // boss } if ("S" != args.Rank) { return; // S승리 } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.HenseiEvent += (sender, args) => { if (!IsTracking) { return; } count = 0; var flagshipTable = new int[] { 112, // 瑞鶴改 462, // 瑞鶴改二 467, // 瑞鶴改二甲 }; var shipTable = new int[] { 112, // 瑞鶴改 462, // 瑞鶴改二 467, // 瑞鶴改二甲 102, // 千歳 103, // 千代田 117, // 瑞鳳改 104, // 千歳改 105, // 千代田改 82, // 伊勢改 88, // 日向改 106, // 千歳甲 107, // 千代田甲 108, // 千歳航 109, // 千代田航 291, // 千歳航改 292, // 千代田航改 296, // 千歳航改二 297, // 千代田航改二 }; var homeport = KanColleClient.Current.Homeport; foreach (var fleet in homeport.Organization.Fleets) { var ships = fleet.Value.Ships; if (ships.Length <= 0) { continue; } if (!flagshipTable.Contains((ships[0]?.Info.Id ?? 0))) { continue; // 즈이카쿠改 기함 } count = Math.Max( count, ships.Count(x => shipTable.Contains(x.Info.Id)) ); } ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { List <string> BossNameList = new List <string> { "敵東方中枢艦隊" }; manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } if (args.MapAreaId != 4) { return; // 4해역 } if (!BossNameList.Contains(args.EnemyName)) { return; } if (!"SAB".Contains(args.Rank)) { return; } count += count >= max_count ? 0 : 1; ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.HenseiEvent += (sender, args) => { if (!IsTracking) { return; } count = 0; var shipTable = new int[] { 26, // 扶桑 27, // 山城 286, // 扶桑改 287, // 山城改 411, // 扶桑改二 412, // 山城改二 }; var homeport = KanColleClient.Current.Homeport; foreach (var fleet in homeport.Organization.Fleets) { var ships = fleet.Value.Ships; count = Math.Max( count, ships.Count(x => shipTable.Contains(x.Info.Id)) ); } ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.DestoryItemEvent += (sender, args) => { if (!IsTracking) { return; } var flagshipTable = new int[] { 111, // 瑞鶴 112, // 瑞鶴改 462, // 瑞鶴改二 467, // 瑞鶴改二甲 }; var fleet = KanColleClient.Current.Homeport.Organization.Fleets[1]; if (!flagshipTable.Any(x => x == fleet?.Ships[0]?.Info.Id)) { return; // 즈이카쿠 비서함 } var slotitems = fleet?.Ships[0]?.Slots; if (!slotitems.Any(x => x.Item.Info.Id == 155 && x.Item.Proficiency == 7)) { return; // 숙련도max 영전 21형(이와모토소대) } var homeportSlotitems = KanColleClient.Current.Homeport.Itemyard.SlotItems; count = count.Add(args.itemList.Count(x => (homeportSlotitems[x]?.Info.Id ?? 0) == 21)) // 영식 함전 52형 .Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
public void RegisterEvent(TrackManager manager) { manager.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } var shipTable = new int[] { 34, // 暁 35, // 響 36, // 雷 37, // 電 234, // 暁改 235, // 響改 236, // 雷改 237, // 電改 437, // 暁改二 147, // Верный }; var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value; if (fleet?.Ships.Count(x => shipTable.Contains(x.Info.Id)) < 4) { return; } count = count.Add(1).Max(max_count); ProcessChanged?.Invoke(this, emptyEventArgs); }; }
private static void ChangeProcess(ProcessChanged onProcessChanged, int currValue) { if (onProcessChanged != null) { onProcessChanged(currValue); } }
private void Poll() { while (Enabled) { Thread.Sleep(100); var hWnd = DllImport.UserInfo32.GetForegroundWindow(); int processId; DllImport.UserInfo32.GetWindowThreadProcessId(hWnd, out processId); var current = System.Diagnostics.Process.GetCurrentProcess(); var firstOrDefault = System.Diagnostics.Process.GetProcesses().FirstOrDefault(p => p.Id == processId); if (firstOrDefault == null || _lastProcessName == firstOrDefault.ProcessName) { continue; } var newProcess = firstOrDefault.ProcessName; if (newProcess == null) { continue; } ProcessChanged?.Invoke(_lastProcessName, newProcess); _lastProcessName = newProcess; } }
public void RegisterEvent(ApiEvent apiEvent) { apiEvent.BattleResultEvent += (sender, args) => { if (!IsTracking) { return; } if (args.MapAreaId != map_id) { return; } if (!boss_names.Contains(args.EnemyName)) { return; } if (args.Rank != "S" && args.Rank != "A") { return; } count += count >= max_count ? 0 : 1; ProcessChanged?.Invoke(this, new EventArgs()); }; }
public void RegisterEvent(TrackManager manager) { manager.HenseiEvent += (sender, args) => { if (!IsTracking) { return; } var homeport = KanColleClient.Current.Homeport; var ships = homeport.Organization.Fleets[1]?.Ships; if (ships[0]?.Info.ShipType.Id != 3) // 기함 경순 { count = 0; } else { count = ships.Count(x => x.Info.ShipType.Id == 3).Max(1) + ships.Count(x => x.Info.ShipType.Id == 2).Max(3); } ProcessChanged?.Invoke(this, emptyEventArgs); }; }