Пример #1
0
    /// <summary>
    /// 保存服务器数据
    /// </summary>
    public void SaveData()
    {
        if (playerDatas.Count == 0)
        {
            GetEquipList();
        }
        for (int i = playerDatas.Count - 1; i >= 0; i--)
        {
            if (playerDatas[i].username == userName)
            {
                playerDatas.Remove(playerDatas[i]);
            }
        }
        for (int i = 0; i < EquipDataList.Count; i++)
        {
            ServerEquipData serverEquipData = new ServerEquipData(userName, EquipDataList[i].id);
            playerDatas.Add(serverEquipData);
        }
        string json = JsonMapper.ToJson(playerDatas);

        File.WriteAllText(Application.persistentDataPath + "/EquipData.Json", json, System.Text.Encoding.UTF8);
    }
Пример #2
0
    /// <summary>
    /// 返回当前玩家拥有的装备列表
    /// </summary>
    /// <returns></returns>
    public List <EquipData> GetEquipList()
    {
        //找当当前的用户名
        if (userName == "")
        {
            userName = UserModel.Instance.GetMyUserId();
        }
        if (EquipDataList.Count == 0)
        {
            //如果没有初始数据,就创建一个用户初始数据
            if (!File.Exists(Application.persistentDataPath + "/EquipData.Json"))
            {
                //创建初始数据,合并服务器数据和本地数据
                //创建服务器数据并存下来
                ServerEquipData serverEquipData = new ServerEquipData(userName, 8001);
                playerDatas.Add(serverEquipData);

                //根据服务器数据到本地获取数据
                LocalEquipData localEquipData = EquipDataMgr.Instance.GetEquipDataById(serverEquipData.id);
                //合并数据
                EquipData equipData = new EquipData(serverEquipData.id, localEquipData.name, localEquipData.des,
                                                    localEquipData.addAtk, localEquipData.addDef, localEquipData.icon, localEquipData.price,
                                                    localEquipData.addMana, localEquipData.addHp, localEquipData.addSpeed, localEquipData.equipType);
                //存到玩家当前数据
                EquipDataList.Add(equipData);

                ServerEquipData serverEquipData2 = new ServerEquipData(userName, 8007);
                playerDatas.Add(serverEquipData2);
                LocalEquipData localEquipData2 = EquipDataMgr.Instance.GetEquipDataById(serverEquipData2.id);
                EquipData      equipData2      = new EquipData(serverEquipData2.id, localEquipData2.name, localEquipData2.des,
                                                               localEquipData2.addAtk, localEquipData2.addDef, localEquipData2.icon, localEquipData2.price,
                                                               localEquipData2.addMana, localEquipData2.addHp, localEquipData2.addSpeed, localEquipData2.equipType);
                EquipDataList.Add(equipData2);

                //读入json
                SaveData();
            }
            else
            {
                string json = File.ReadAllText(Application.persistentDataPath + "/EquipData.Json");
                //读Json
                playerDatas = JsonMapper.ToObject <List <ServerEquipData> >(json);
                //取出表里面当前玩家的数据,存在当前玩家的服务器数据中
                for (int i = 0; i < playerDatas.Count; i++)
                {
                    if (playerDatas[i].username == userName)
                    {
                        //serverSkillData.Add(playerDatas[i]);
                        LocalEquipData localEquipData2 = EquipDataMgr.Instance.GetEquipDataById(playerDatas[i].id);
                        EquipData      equipData2      = new EquipData(localEquipData2.id, localEquipData2.name, localEquipData2.des,
                                                                       localEquipData2.addAtk, localEquipData2.addDef, localEquipData2.icon, localEquipData2.price,
                                                                       localEquipData2.addMana, localEquipData2.addHp, localEquipData2.addSpeed, localEquipData2.equipType);
                        //服务器数据加上本地数据
                        EquipDataList.Add(equipData2);
                    }
                }
            }
            return(EquipDataList);
        }
        else
        {
            return(EquipDataList);
        }
    }