示例#1
0
 private bool LoadPlayerFromDisk()
 {
     try
     {
         ZPackage zpackage = this.LoadPlayerDataFromDisk();
         if (zpackage == null)
         {
             ZLog.LogWarning((object)"No player data");
             return(false);
         }
         int version = zpackage.ReadInt();
         if (!Version.IsPlayerVersionCompatible(version))
         {
             ZLog.Log((object)"Player data is not compatible, ignoring");
             return(false);
         }
         if (version >= 28)
         {
             this.m_playerStats.m_kills  = zpackage.ReadInt();
             this.m_playerStats.m_deaths = zpackage.ReadInt();
             this.m_playerStats.m_crafts = zpackage.ReadInt();
             this.m_playerStats.m_builds = zpackage.ReadInt();
         }
         this.m_worldData.Clear();
         int num = zpackage.ReadInt();
         for (int index = 0; index < num; ++index)
         {
             long key = zpackage.ReadLong();
             PlayerProfile.WorldPlayerData worldPlayerData = new PlayerProfile.WorldPlayerData();
             worldPlayerData.m_haveCustomSpawnPoint = zpackage.ReadBool();
             worldPlayerData.m_spawnPoint           = zpackage.ReadVector3();
             worldPlayerData.m_haveLogoutPoint      = zpackage.ReadBool();
             worldPlayerData.m_logoutPoint          = zpackage.ReadVector3();
             if (version >= 30)
             {
                 worldPlayerData.m_haveDeathPoint = zpackage.ReadBool();
                 worldPlayerData.m_deathPoint     = zpackage.ReadVector3();
             }
             worldPlayerData.m_homePoint = zpackage.ReadVector3();
             if (version >= 29 && zpackage.ReadBool())
             {
                 worldPlayerData.m_mapData = zpackage.ReadByteArray();
             }
             this.m_worldData.Add(key, worldPlayerData);
         }
         this.m_playerName = zpackage.ReadString();
         this.m_playerID   = zpackage.ReadLong();
         this.m_startSeed  = zpackage.ReadString();
         this.m_playerData = !zpackage.ReadBool() ? (byte[])null : zpackage.ReadByteArray();
     }
     catch (Exception ex)
     {
         ZLog.LogWarning((object)("Exception while loading player profile:" + this.m_filename + " , " + ex.ToString()));
     }
     return(true);
 }
示例#2
0
 private PlayerProfile.WorldPlayerData GetWorldData(long worldUID)
 {
     PlayerProfile.WorldPlayerData worldPlayerData1;
     if (this.m_worldData.TryGetValue(worldUID, out worldPlayerData1))
     {
         return(worldPlayerData1);
     }
     PlayerProfile.WorldPlayerData worldPlayerData2 = new PlayerProfile.WorldPlayerData();
     this.m_worldData.Add(worldUID, worldPlayerData2);
     return(worldPlayerData2);
 }
        public static void Deserialize(this PlayerProfile profile, ZPackage data)
        {
            Debug.Assert(data.ReadInt() <= Version.m_playerVersion);
            profile.m_playerStats.m_kills  = data.ReadInt();
            profile.m_playerStats.m_deaths = data.ReadInt();
            profile.m_playerStats.m_crafts = data.ReadInt();
            profile.m_playerStats.m_builds = data.ReadInt();
            profile.m_worldData.Clear();
            int num = data.ReadInt();

            for (int i = 0; i < num; i++)
            {
                long key = data.ReadLong();
                PlayerProfile.WorldPlayerData worldPlayerData = (PlayerProfile.WorldPlayerData)Activator.CreateInstance(typeof(PlayerProfile.WorldPlayerData), true);
                worldPlayerData.m_haveCustomSpawnPoint = data.ReadBool();
                worldPlayerData.m_spawnPoint           = data.ReadVector3();
                worldPlayerData.m_haveLogoutPoint      = data.ReadBool();
                worldPlayerData.m_logoutPoint          = data.ReadVector3();
                worldPlayerData.m_haveDeathPoint       = data.ReadBool();
                worldPlayerData.m_deathPoint           = data.ReadVector3();
                worldPlayerData.m_homePoint            = data.ReadVector3();
                if (data.ReadBool())
                {
                    worldPlayerData.m_mapData = data.ReadByteArray();
                }
                profile.m_worldData.Add(key, worldPlayerData);
            }
            profile.m_playerName = data.ReadString();
            profile.m_playerID   = data.ReadLong();
            if (profile.m_playerID == 0L)
            {
                profile.m_playerID = Utils.GenerateUID();
            }
            profile.m_startSeed = data.ReadString();
            if (data.ReadBool())
            {
                profile.m_playerData = data.ReadByteArray();
            }
        }