コード例 #1
0
ファイル: Room4Server.cs プロジェクト: radtek/SCM2
        public static void LoadAllPVPReplays()
        {
            if (!Directory.Exists(ReplayFolder))
            {
                Directory.CreateDirectory(ReplayFolder);
            }

            // 获取所有文件名并排序
            var fs = Directory.GetFiles(ReplayFolder, "*.*", SearchOption.TopDirectoryOnly).Where((f) => f.EndsWith(".scm")).ToArray();

            fs.SwiftSort((f) =>
            {
                var pureFileName = Path.GetFileNameWithoutExtension(f);
                return(int.Parse(pureFileName));
            });

            if (fs.Length > 0)
            {
                var lastFile = Path.GetFileNameWithoutExtension(fs[fs.Length - 1]);
                nextReplayNo = int.Parse(lastFile);
            }

            nextReplayNo++;

            // 读取所有录像内容
            foreach (var f in fs)
            {
                byte[] data = null;
                using (var fr = new BinaryReader(new FileStream(f, FileMode.Open)))
                    data = fr.ReadBytes((int)fr.BaseStream.Length);

                var replay = BattleReplay.Deserialize(new RingBuffer(data));
                replays[Path.GetFileNameWithoutExtension(f)] = replay;
            }
        }
コード例 #2
0
ファイル: BattleReplayer.cs プロジェクト: radtek/SCM2
    public void ReadFromBuffer(IReadableBuffer data)
    {
        var r = BattleReplay.Deserialize(data);

        msgHistroy = r.Msgs;
    }