示例#1
0
    public void AddSkill(SkillData newSkill)
    {
        //给本地加
        skillDataList.Add(newSkill);
        //给服务器加
        ServerSkillData serverSkillData = new ServerSkillData(userName, newSkill.id);

        playerDatas.Add(serverSkillData);
    }
示例#2
0
    /// <summary>
    /// 返回当前玩家拥有的技能列表
    /// </summary>
    /// <returns></returns>
    public List <SkillData> GetSkillList()
    {
        //找当当前的用户名
        if (userName == "")
        {
            userName = UserModel.Instance.GetMyUserId();
        }
        if (skillDataList.Count == 0)
        {
            //如果没有初始数据,就创建一个用户初始数据
            if (!File.Exists(Application.persistentDataPath + "/SkillData.Json"))
            {
                //创建初始数据,合并服务器数据和本地数据
                //创建服务器数据并存下来
                ServerSkillData serverSkillData = new ServerSkillData(userName, 2011);
                playerDatas.Add(serverSkillData);

                //根据服务器数据到本地获取数据
                LocalSkillData localSkillData = LocalSkillDataMgr.Instance.GetSkillDataById(serverSkillData.id);
                //合并数据
                SkillData skillData = new SkillData(serverSkillData.id, localSkillData.name, localSkillData.des, localSkillData.atk,
                                                    localSkillData.cd, localSkillData.icon, localSkillData.price, localSkillData.mana);
                //存到玩家当前数据
                skillDataList.Add(skillData);

                ServerSkillData serverSkillData2 = new ServerSkillData(userName, 2009);
                playerDatas.Add(serverSkillData2);
                LocalSkillData localSkillData2 = LocalSkillDataMgr.Instance.GetSkillDataById(serverSkillData2.id);
                SkillData      skillData2      = new SkillData(serverSkillData2.id, localSkillData2.name, localSkillData2.des, localSkillData2.atk,
                                                               localSkillData2.cd, localSkillData2.icon, localSkillData2.price, localSkillData2.mana);
                skillDataList.Add(skillData2);

                //读入json
                SaveData();
            }
            else
            {
                string json = File.ReadAllText(Application.persistentDataPath + "/SkillData.Json");
                //读Json
                playerDatas = JsonMapper.ToObject <List <ServerSkillData> >(json);
                //取出表里面当前玩家的数据,存在当前玩家的服务器数据中
                for (int i = 0; i < playerDatas.Count; i++)
                {
                    if (playerDatas[i].username == userName)
                    {
                        //serverSkillData.Add(playerDatas[i]);
                        LocalSkillData localSkillData = LocalSkillDataMgr.Instance.GetSkillDataById(playerDatas[i].id);
                        SkillData      skillData2     = new SkillData(localSkillData.id, localSkillData.name, localSkillData.des, localSkillData.atk,
                                                                      localSkillData.cd, localSkillData.icon, localSkillData.price, localSkillData.mana);
                        //服务器数据加上本地数据
                        skillDataList.Add(skillData2);
                    }
                }
            }
            return(skillDataList);
        }
        else
        {
            return(skillDataList);
        }
    }