private void OnSkillReturnReturnProto(byte[] p) { RoleData_SkillReturnProto proto = RoleData_SkillReturnProto.ToPoto(p); if (proto != null) { m_GetSkillInfoOK = true; Global.Instance.CurRoleInfo.LoadSkill(proto); } }
/// <summary> /// 加载技能信息 /// </summary> /// <param name="proto"></param> public void LoadSkill(RoleData_SkillReturnProto proto) { List <RoleData_SkillReturnProto.SkillData> lst = proto.Skills; for (int i = 0; i < lst.Count; i++) { RoleInfoSkill skillInfo = new RoleInfoSkill(); skillInfo.SkillId = lst[i].SkillId; skillInfo.SKillLevel = lst[i].SKillLevel; skillInfo.SlotsNO = lst[i].SlotsNO; SkillList.Add(skillInfo); } }
public static RoleData_SkillReturnProto ToPoto(byte[] buffer) { RoleData_SkillReturnProto proto = new RoleData_SkillReturnProto(); using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer)) { proto.SkillCount = ms.ReadInt(); for (int i = 0; i < proto.SkillCount; i++) { SkillData item = new SkillData(); item.SkillId = ms.ReadInt(); item.SKillLevel = ms.ReadInt(); item.SlotsNO = (byte)ms.ReadByte(); proto.Skills.Add(item); } return(proto); } }
/// <summary> /// 查找技能 /// </summary> /// <param name="role"></param> private void SelectSkillReturn(Role role) { List <RoleSkillEntity> lst = RoleSkillDBModel.Instance.GetList(condition: string.Format("[RoleId] = {0}", role.CurRoleId)); if (lst != null) { RoleData_SkillReturnProto proto = new RoleData_SkillReturnProto(); proto.SkillCount = lst.Count; for (int i = 0; i < lst.Count; i++) { RoleData_SkillReturnProto.SkillData skillData = new RoleData_SkillReturnProto.SkillData(); skillData.SkillId = lst[i].SkillId; skillData.SKillLevel = lst[i].SkillLevel; skillData.SlotsNO = lst[i].SlotsNO; proto.Skills.Add(skillData); } role.Client_Socket.SendMsg(proto.ToArray()); } }
public static RoleData_SkillReturnProto GetProto(byte[] buffer) { RoleData_SkillReturnProto proto = new RoleData_SkillReturnProto(); using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer)) { proto.SkillCount = (byte)ms.ReadByte(); proto.CurrSkillDataList = new List <SkillData>(); for (int i = 0; i < proto.SkillCount; i++) { SkillData _CurrSkillData = new SkillData(); _CurrSkillData.SkillId = ms.ReadInt(); _CurrSkillData.SkillLevel = ms.ReadInt(); _CurrSkillData.SlotsNo = (byte)ms.ReadByte(); proto.CurrSkillDataList.Add(_CurrSkillData); } } return(proto); }
public static RoleData_SkillReturnProto GetProto(MMO_MemoryStream ms, byte[] buffer) { RoleData_SkillReturnProto proto = new RoleData_SkillReturnProto(); ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.SkillCount = (byte)ms.ReadByte(); proto.CurrSkillDataList = new List <SkillData>(); for (int i = 0; i < proto.SkillCount; i++) { SkillData _CurrSkillData = new SkillData(); _CurrSkillData.SkillId = ms.ReadInt(); _CurrSkillData.SkillLevel = ms.ReadInt(); _CurrSkillData.SlotsNo = (byte)ms.ReadByte(); proto.CurrSkillDataList.Add(_CurrSkillData); } return(proto); }