示例#1
0
文件: Skills.cs 项目: AsYlum-/Razor-1
        public static void Save(string path)
        {
            string idx = Path.Combine(path, "skills.idx");
            string mul = Path.Combine(path, "skills.mul");

            using (FileStream fsSkillsIndex = new FileStream(idx, FileMode.Create, FileAccess.Write, FileShare.Write), fsSkillsMul = new FileStream(mul, FileMode.Create, FileAccess.Write, FileShare.Write))
            {
                using (BinaryWriter binSkillsIndex = new BinaryWriter(fsSkillsIndex), binSkillsMul = new BinaryWriter(fsSkillsMul))
                {
                    for (int i = 0; i < _fileIndex.Index.Length; ++i)
                    {
                        if (SkillsByIndex.TryGetValue(i, out SkillInfo skill))
                        {
                            binSkillsIndex.Write((int)fsSkillsMul.Position); //lookup
                            int length = (int)fsSkillsMul.Position;
                            binSkillsMul.Write(skill.IsAction);

                            byte[] namebytes = Encoding.Default.GetBytes(skill.Name);
                            binSkillsMul.Write(namebytes);
                            binSkillsMul.Write((byte)0); //nullterminated

                            length = (int)fsSkillsMul.Position - length;
                            binSkillsIndex.Write(length);
                            binSkillsIndex.Write(skill.Extra);
                        }
                        else
                        {
                            binSkillsIndex.Write((int)-1); // lookup
                            binSkillsIndex.Write((int)0);  // length
                            binSkillsIndex.Write((int)0);  // extra
                        }
                    }
                }
            }
        }
示例#2
0
文件: Skills.cs 项目: AsYlum-/Razor-1
        public static string GetSkillDisplayName(int index)
        {
            if (SkillsByIndex.TryGetValue(index, out SkillInfo skill))
            {
                return(skill.DisplayName);
            }

            return(string.Empty);
        }