Beispiel #1
0
        //public bool HaveIncompatiblPlayerData()
        //{
        //    if (this.m_filename == null)
        //        return false;
        //    ZPackage zpackage = this.LoadPlayerDataFromDisk();
        //    if (zpackage == null || Version.IsPlayerVersionCompatible(zpackage.ReadInt()))
        //        return false;
        //    ZLog.Log((object)"Player data is not compatible, ignoring");
        //    return true;
        //}

        public void SavePlayerData(Player player)
        {
            ZPackage pkg = new ZPackage();

            player.Save(pkg);
            this.m_playerData = pkg.GetArray();
        }
Beispiel #2
0
 public void Write(ZPackage pkg)
 {
     byte[] array = pkg.GetArray();
     this.m_writer.Write(array.Length);
     this.m_writer.Write(array);
 }
Beispiel #3
0
        //public void SaveLogoutPoint()
        //{
        //    if (!(bool)(UnityEngine.Object)Player.m_localPlayer || Player.m_localPlayer.IsDead() || Player.m_localPlayer.InIntro())
        //        return;
        //    this.SetLogoutPoint(Player.m_localPlayer.transform.position);
        //}

        private bool SavePlayerToDisk()
        {
            string   str1     = this.m_filename;
            string   str2     = this.m_filename + ".old";
            string   str3     = this.m_filename + ".new";
            ZPackage zpackage = new ZPackage();

            zpackage.Write(Version.m_playerVersion);
            zpackage.Write(this.m_playerStats.m_kills);
            zpackage.Write(this.m_playerStats.m_deaths);
            zpackage.Write(this.m_playerStats.m_crafts);
            zpackage.Write(this.m_playerStats.m_builds);
            zpackage.Write(this.m_worldData.Count);
            foreach (KeyValuePair <long, PlayerProfile.WorldPlayerData> keyValuePair in this.m_worldData)
            {
                zpackage.Write(keyValuePair.Key);
                zpackage.Write(keyValuePair.Value.m_haveCustomSpawnPoint);
                zpackage.Write(keyValuePair.Value.m_spawnPoint);
                zpackage.Write(keyValuePair.Value.m_haveLogoutPoint);
                zpackage.Write(keyValuePair.Value.m_logoutPoint);
                zpackage.Write(keyValuePair.Value.m_haveDeathPoint);
                zpackage.Write(keyValuePair.Value.m_deathPoint);
                zpackage.Write(keyValuePair.Value.m_homePoint);
                zpackage.Write(keyValuePair.Value.m_mapData != null);
                if (keyValuePair.Value.m_mapData != null)
                {
                    zpackage.Write(keyValuePair.Value.m_mapData);
                }
            }
            zpackage.Write(this.m_playerName);
            zpackage.Write(this.m_playerID);
            zpackage.Write(this.m_startSeed);
            if (this.m_playerData != null)
            {
                zpackage.Write(true);
                zpackage.Write(this.m_playerData);
            }
            else
            {
                zpackage.Write(false);
            }
            byte[]       hash         = zpackage.GenerateHash();
            byte[]       array        = zpackage.GetArray();
            FileStream   fileStream   = File.Create(str3);
            BinaryWriter binaryWriter = new BinaryWriter((Stream)fileStream);

            binaryWriter.Write(array.Length);
            binaryWriter.Write(array);
            binaryWriter.Write(hash.Length);
            binaryWriter.Write(hash);
            binaryWriter.Flush();
            fileStream.Flush(true);
            fileStream.Close();
            fileStream.Dispose();
            if (File.Exists(str1))
            {
                if (File.Exists(str2))
                {
                    File.Delete(str2);
                }
                File.Move(str1, str2);
            }
            File.Move(str3, str1);
            return(true);
        }