Example #1
0
        /// <summary>
        /// 获取角色基础属性
        /// </summary>
        /// <param name="request"></param>
        /// <param name="response"></param>
        /// <param name="peer"></param>
        /// <param name="sendParameters"></param>
        void GetRoleInfo(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters)
        {
            Helper.Log("RoleInfoHandler GetRoleInfo");
            response.ReturnCode = (short)ReturnCode.Fail;
            List <RoleInfoData> pRoleInfo = m_roleinfoMgr.GetRoleData(peer.m_curRole.Id);

            if (pRoleInfo != null && pRoleInfo.Count > 0)
            {
                RoleInfoData roleInfo = pRoleInfo[0];
                // exp,gold,gem,energy,toughen
                string str = "";
                str += roleInfo.Exp + "," + roleInfo.Gold + "," + roleInfo.Gem + "," + roleInfo.Energy + "," + roleInfo.Toughen;
                Dictionary <byte, object> dic = new Dictionary <byte, object>();
                dic.Add((byte)ParameterCode.RoleData, str);
                response.Parameters = dic;
                response.ReturnCode = (short)ReturnCode.Success;
                Helper.Log("GetRoleInfo Success:" + str);
            }
            return;
        }
Example #2
0
        /// <summary>
        /// 技能升级
        /// </summary>
        /// <param name="request"></param>
        /// <param name="response"></param>
        /// <param name="peer"></param>
        /// <param name="sendParameters"></param>
        void UpdateSkill(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters)
        {
            Dictionary <byte, object> m_dic = request.Parameters;
            object value;

            response.ReturnCode = (short)ReturnCode.Fail;
            // 客户端传递过来的参数信息:skillid,lv
            if (m_dic.TryGetValue((byte)ParameterCode.SkillInfo, out value))
            {
                string strValue = value.ToString();
                Helper.Log("UpdateSkill:" + strValue);
                string[] pStr1 = strValue.Split(',');
                if (pStr1.Length == 2)
                {
                    int nSkillID           = Helper.IntParse(pStr1[0]);
                    List <SkillData> pList = m_skillMgr.GetSkillBySkillID(nSkillID);
                    if (pList != null && pList.Count > 0)
                    {
                        SkillData data = pList[0];
                        data.Lv = Helper.IntParse(pStr1[1]);
                        // 更新角色金币
                        int                 nNeedGold = data.Lv * 100;
                        RoleData            curRole   = peer.m_curRole;
                        List <RoleInfoData> p         = m_roleMgr.GetRoleData(curRole.Id);
                        if (p != null && p.Count > 0)
                        {
                            RoleInfoData curRoleData = p[0];
                            if (curRoleData.Gold >= nNeedGold && curRole.Lv > data.Lv)
                            {
                                // 客户端金币减少的时候会同步一次,这里不就用同步了
                                //m_roleMgr.UpdateRoleInfo(curRoleData);
                                data.Lv += 1;
                                m_skillMgr.UpdateSkill(data);

                                Helper.Log("UpdateSkill Success:" + data.SkillID);
                                response.ReturnCode = (short)ReturnCode.Success;
                            }
                        }
                    }
                }
            }
            return;
        }