1.先找到服务器创建角色信息代码的位置,UserBizImpl.cs中:
public PlayerModel create(string accId, string name, int job)
{PlayerModel[] playerModelArray = this.list(accId);//list是个自建函数,本质通过accId来查询if (playerModelArray != null && playerModelArray.Length > 2)//每个账号下的角色信息存放在playerModelArray中return (PlayerModel) null;PlayerModel model1;HeroConstans.heros.TryGetValue(job, out model1);if (model1 == null)return (PlayerModel) null;PlayerModel model2 = new PlayerModel(model1);model2.name = name;model2.map = 2;model2.id = Guid.NewGuid().ToString();model2.point = new Vector3(-2.21, 13.83, 7.5);//出生点model2.rotation = new Vector4(0.0, 0.0, 0.0, 0.0);//旋转CacheUtil.user.put(accId, model2);return model2;
}
2.通过this.list跳转到存放所有账号所有角色的位置,UserCache.cs中:
public PlayerModel[] list(string accId)
{List<string> stringList;this.userPlayerIds.TryGetValue(accId, out stringList);if (stringList == null)return (PlayerModel[]) null;PlayerModel[] playerModelArray = new PlayerModel[stringList.Count];for (int index = 0; index < stringList.Count; ++index)this.players.TryGetValue(stringList[index], out playerModelArray[index]);return playerModelArray;
}
很多变量如果输出的话,很麻烦,不如下断点调一下:
3.创建当前账号下第一个角色时:
最后返回的是model2,看到这里思路已经很清楚了。
把当前创建的角色信息返回给客户端,估计后面有点用,但不是关键的地方
4.当创建第二个角色时:
count变成1了,之前应该是0。
5.当创建第三个角色时:
count还是1,感觉返回的内容也没啥变化
6.当创建第四个角色时(这个时候已经有三个了),直观可见同一个账号下的每一个角色也有自己的id,
每个list中都有自己的数值
最后的返回内容: