Ejemplo n.º 1
0
        public bool saveSkill(string skillPath, bool xml = true)
        {
            FileStream fs = null;

            try
            {
                if (xml)
                {
                    XmlPack pack = new XmlPack();
                    pack.skill = new List <GameSkill>();
                    pack.skill.AddRange(skills.Values);
                    AraleSerizlize.saveXml(pack, skillPath);
                }
                else
                {
                    fs = new FileStream(skillPath, FileMode.Create);
                    BinaryWriter w = new BinaryWriter(fs);
                    w.Write(new byte[] { 0x73, 0x6b, 0x69, 0x6c, 0x6c });
                    w.Write(ver);
                    AraleSerizlize.write <GameSkill>(skills, w);
                    fs.Close();
                }
                return(true);
            }
            catch (System.Exception e)
            {
                Log.e(e.Message, Log.Tag.Skill, e);
                if (fs != null)
                {
                    fs.Close();
                }
                return(false);
            }
        }
Ejemplo n.º 2
0
 bool loadSkills(byte[] buff)
 {
     try
     {
         if (!isSkillFile(buff))
         {
             throw new System.Exception("not skill file");
         }
         using (MemoryStream fs = new MemoryStream(buff))
         {
             fs.Seek(5, SeekOrigin.Begin);
             BinaryReader r = new BinaryReader(fs);
             int          v = r.ReadInt16();
             //新版本应对老代码兼容,根据版本使用对应的读取序列化
             if (v > ver)
             {
                 throw new System.Exception("version error!v=" + v);
             }
             AraleSerizlize.read <GameSkill>(skills, r);
         }
         return(true);
     }
     catch (System.Exception e)
     {
         Log.e(e.Message, Log.Tag.Skill, e);
         return(false);
     }
 }
Ejemplo n.º 3
0
 public override void read(BinaryReader r)
 {
     id      = r.ReadInt32();
     name    = r.ReadString();
     anim    = r.ReadString();
     state   = r.ReadInt32();
     actions = AraleSerizlize.read <SkillAction>(r);
 }
Ejemplo n.º 4
0
 public override void write(BinaryWriter w)
 {
     w.Write(time);
     w.Write(loopInterval);
     w.Write(loopTimes);
     w.Write(state);
     w.Write(mask);
     AraleSerizlize.write <SkillNode>(nodes, w);
 }
Ejemplo n.º 5
0
 public override void write(BinaryWriter w)
 {
     w.Write(id);
     w.Write(name);
     w.Write(anim);
     w.Write(state);
     actions.Sort(delegate(SkillAction x, SkillAction y)
     {
         return(x.time.CompareTo(y.time));
     });
     AraleSerizlize.write <SkillAction>(actions, w);
 }
Ejemplo n.º 6
0
 bool loadSkills(string ctx)
 {
     try
     {
         XmlPack pack = AraleSerizlize.fromXml(typeof(XmlPack), ctx) as XmlPack;
         for (int i = 0; i < pack.skill.Count; ++i)
         {
             skills[pack.skill[i].id] = pack.skill[i];
         }
         return(true);
     }
     catch (System.Exception e)
     {
         Log.e(e.Message, Log.Tag.Skill, e);
         return(false);
     }
 }