private void OnSkillReturnReturnProto(byte[] p)
    {
        RoleData_SkillReturnProto proto = RoleData_SkillReturnProto.ToPoto(p);

        if (proto != null)
        {
            m_GetSkillInfoOK = true;
            Global.Instance.CurRoleInfo.LoadSkill(proto);
        }
    }
Beispiel #2
0
    /// <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);
        }
    }
Beispiel #3
0
    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);
    }
Beispiel #6
0
    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);
    }