Ejemplo n.º 1
0
        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());
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }