Esempio n. 1
0
 public static GameRuntimeData Create(int index)
 {
     _instance           = Saveable.Facade.CreateRoot <GameRuntimeData>();
     _instance.SaveIndex = index;
     _instance.InitAllRole();
     return(_instance);
 }
Esempio n. 2
0
        public static GameRuntimeData LoadArchive(int fileIndex)
        {
            string          sPath      = GetArchiveFilePath(fileIndex);
            GameRuntimeData tagArchive = null;

            if (File.Exists(sPath))
            {
                using (FileStream fs = File.OpenRead(sPath))
                {
                    byte[] buffer1 = new byte[sizeof(int)];
                    fs.Read(buffer1, 0, sizeof(int));
                    int    dataLen     = BitConverter.ToInt32(buffer1, 0);
                    byte[] archiveData = new byte[dataLen];
                    fs.Read(archiveData, 0, dataLen);

                    TDES tdesTool = new TDES();
                    tdesTool.Init(ConStr.DES_KEY);

                    byte[]    decryptData = tdesTool.Decrypt(archiveData);
                    string    txtData     = System.Text.Encoding.Default.GetString(decryptData, 0, decryptData.Length);
                    Hashtable hsData      = txtData.hashtableFromJson();
                    tagArchive = Saveable.Facade.LoadRoot <GameRuntimeData>(hsData);

                    fs.Close();
                }
            }
            _instance           = tagArchive;//记录单例
            _instance.SaveIndex = fileIndex;
            _instance.InitAllRole();
            return(tagArchive);
        }
Esempio n. 3
0
        //新建一个存档
        public static GameRuntimeData CreateNew()
        {
            _instance           = Saveable.Facade.CreateRoot <GameRuntimeData>();
            _instance.SaveIndex = 100; // 不重要
            var runtime = _instance;

            runtime.TeamLevel = 1;
            _instance.InitAllRole();

            var player = runtime.GetRole(0);

            //主角入当前队伍
            runtime.Team.Add(runtime.GetRole(0));

            MapRuntimeData.Instance.Clear();
            MapRuntimeData.Instance.AddToExploreTeam(player);
#if JYX2_TEST
            //可自由实现新的语法
            var content = File.ReadAllLines("CreateTeamDebug.txt");

            //初始技能
            foreach (var line in content)
            {
                if (string.IsNullOrEmpty(line.Trim()))
                {
                    continue;
                }
                if (line.StartsWith("//"))
                {
                    continue;
                }
                if (line.StartsWith("skills=")) //初始技能
                {
                    var tmp = line.Replace("skills=", "").Split('|');
                    foreach (var skill in tmp)
                    {
                        int    skillId = int.Parse(skill.Split(',')[0]);
                        string level   = skill.Split(',')[1];
                        player.LearnMagic(skillId);
                        var s = player.Wugongs.Find(p => p.Key == skillId);
                        if (s != null)
                        {
                            s.Level = int.Parse(level);
                        }
                    }
                }
                else if (line.StartsWith("teammates="))  //初始队友
                {
                    var tmp = line.Replace("teammates=", "").Split('|');
                    foreach (var roleId in tmp)
                    {
                        int role = int.Parse(roleId);
                        GameRuntimeData.Instance.JoinRoleToTeam(role);
                    }
                }
            }
#endif
            return(runtime);
        }