Beispiel #1
0
        private void Save()
        {
            var data = MyMsgPacker.Pack(this.dataHash);

            File.WriteAllBytes(saveDataPath, data);
            Debug.Log("saved");
            hasChanged = false;
        }
Beispiel #2
0
 private void Load()
 {
     if (File.Exists(saveDataPath))
     {
         var data = File.ReadAllBytes(saveDataPath);
         this.dataHash = MyMsgPacker.Unpack(data) as Hashtable;
     }
     hasChanged = false;
     Debug.Log("loaded");
 }
Beispiel #3
0
        private void LoadFromData(byte[] data)
        {
//            try
//            {
            dataHash = MyMsgPacker.Unpack(data) as Hashtable;
            PlayerManager.Instance.SetPlayerData(dataHash[KEY_PLAYER_DATA] as Hashtable);
//            }
//            catch (Exception e)
//            {
//                Debug.LogError("load error " + e.Message);
//            }
        }
Beispiel #4
0
        private IEnumerator SaveDataCo(System.Action callback)
        {
            var savedatahash = new Hashtable();

            savedatahash.Add(KEY_PLAYER_DATA, PlayerManager.Instance.GetPlayerDataHash());
            var databytes = MyMsgPacker.Pack(savedatahash);

            File.WriteAllBytes(SaveFilePath, databytes);
            Debug.Log("===save " + SaveFilePath);
            yield return(0);

            if (callback != null)
            {
                callback.Invoke();
            }
        }
        public void LoadFromData(byte[] data)
        {
            var result = MyMsgPacker.Unpack(data);
            var hash   = result as Hashtable;

            if (hash == null)
            {
                Debug.LogError("map data error!");
            }
            foreach (var key in hash.Keys)
            {
                var tarr   = key.ToString().Split(',');
                var x      = int.Parse(tarr[0]);
                var y      = int.Parse(tarr[1]);
                var points = hash[key] as object[];
                if (points == null)
                {
                    Debug.LogError("map data error: " + x + "," + y);
                    continue;
                }
                var     mapkey = new Vector2(x, y);
                int[][] mapdata;
                if (MapDataDic.ContainsKey(mapkey))
                {
                    mapdata = MapDataDic[mapkey];
                }
                else
                {
                    mapdata = new int[FieldMap.Map_Size][];
                    MapDataDic.Add(mapkey, mapdata);
                }
                foreach (var pstr in points)
                {
                    var parr = pstr.ToString().Split(',');
                    var px   = int.Parse(parr[0]);
                    var py   = int.Parse(parr[1]);
                    var pv   = int.Parse(parr[2]);
                    if (mapdata[px] == null)
                    {
                        mapdata[px] = new int[FieldMap.Map_Size];
                    }
                    mapdata[px][py] = pv;
                }
            }
        }
        private void Test()
        {
            var ttt = new int[100];

            for (int i = 0; i < 100; i++)
            {
                ttt[i] = i;
            }
            var ttt2 = MyMsgPacker.Pack(ttt);
            var ttt3 = MyMsgPacker.Unpack(ttt2);

            Debug.Log(ttt3.GetType() + " ");
//            var aa = new Hashtable();
//            aa.Add("a1", 1);
//            aa.Add("b1", "bb");
//            aa.Add("c1", 3);
//            var a = MyMsgPacker.Pack(aa);
//            var b = MyMsgPacker.Unpack(a);
//            Debug.Log(b + " " + b.GetType());
//            var h = (Hashtable) b;
//            Debug.Log(h["a1"] + " " + h["b1"] + " " + h["c1"]);
        }
 public void SaveMapData(string filepath)
 {
     Debug.Log("save map");
     byte[] data = MyMsgPacker.Pack(GetMapSaveData());
     File.WriteAllBytes(filepath, data);
 }