private void insertRecord(string newPath, bool isBatch = false) { var info = ReplayReader.Open(newPath); if (info.Count < 43) { File.AppendAllText("exception.txt", $"非预期的info大小{info.Count}:{newPath}\n"); return; } try { _records.Replays.Add(new ReplayTable { FileName = newPath, P1Name = info[14], P2Name = info[16], P1Master = info[40], P2Master = info[42], P1Slave = info[9], P2Slave = info[11] }); if (!isBatch) { _records.SaveChanges(); } } catch (Exception e) { File.AppendAllText("exception.txt", e.ToString()); } }
private void timer1_Tick_1(object sender, EventArgs e) { label6.Text = (executing ? "Executing" : "Idleing") + (tencoFetch ? "Fetching" : ""); int state = TH155Addr.TH155AddrGetState(); string str; label1.Text = "State : " + state; if (_currentDate.Day != DateTime.Now.Day) //日替 { FetchTenco(); } if (state >= 1) { var cursorstat_y = TH155Addr.TH155GetRTChildInt("menu/cursor/target_y"); var cursorstat_x = TH155Addr.TH155GetRTChildInt("menu/cursor/target_x"); label5.Text = "cursor:" + cursorstat_x + "," + cursorstat_y; var replay_state = TH155Addr.TH155GetRTChildInt("replay/state"); var play_state = TH155Addr.TH155GetRTChildInt("replay/game_mode"); label2.Text = "replayStat : " + play_state; if (play_state == -1 && TH155Addr.TH155AddrGetState() != 0) { //无法获取到信息,重启游戏 TerminateTH155(); } if (!IsReplaying() && (checkBox1.Checked || _LoadReplay) && !executing) { executing = true; Log($"Exec:SwitchReplay"); Task.Run(() => { //Thread.Sleep(2500); if (CheckCursor(-1)) //暂停中 { SetTH155Foreground(); TH155Addr.VirtualPress(88);//x Log($"Exec Finish:SwitchReplay(Pause)"); executing = false; return; } string selectedReplay = ""; try { if (_current != null && _current.Count > 0) { selectedReplay = _current.Last().FileName; _current.RemoveAt(_current.Count - 1); StatusLog($"正在播放满足条件的Rep,还剩{_current.Count}个:{_filterStr}"); } else { selectedReplay = _records.Replays.OrderBy(x => Guid.NewGuid()).Take(1).First().FileName; StatusLog("正在随机播放所有rep"); } var info = ReplayReader.Open(selectedReplay); Func <string, string> processStr = input => { string ret = input.Replace("\\", "").Trim(); return(ret.Length == 0 ? "无名黑幕" : ret); }; var P1Name = processStr(info[14]); var P2Name = processStr(info[16]); File.WriteAllText("P1.txt", P1Name); ApplyAvatar(P1Name, "P1.png"); File.WriteAllText("P2.txt", P2Name); ApplyAvatar(P2Name, "P2.png"); File.Copy(selectedReplay, textBox1.Text, true); } catch (Exception ex) { File.AppendAllText("exception.txt", ex.ToString()); } SetTH155Foreground(); Thread.Sleep(500); if (IsMainMenu()) { SwitchTo(512).Wait(); TH155Addr.VirtualPress(90); Thread.Sleep(300); TH155Addr.VirtualPress(90); Thread.Sleep(300); } TH155Addr.VirtualPress(90); //SendKeys.SendWait("z"); Thread.Sleep(2000); Log($"Exec Finish:SwitchReplay"); _LoadReplay = false; executing = false; }); } } else if (checkBox2.Checked) { LaunchTH155(); } }