예제 #1
0
        /// <summary>
        /// 更新角色基础属性
        /// </summary>
        /// <param name="request"></param>
        /// <param name="response"></param>
        /// <param name="peer"></param>
        /// <param name="sendParameters"></param>
        void UpdateRoleInfo(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters)
        {
            Dictionary <byte, object> m_dic = request.Parameters;
            object value;

            response.ReturnCode = (short)ReturnCode.Fail;
            // 客户端传递过来的参数信息:exp,gold,gem,energy,toughen,name,lv
            if (m_dic.TryGetValue((byte)ParameterCode.RoleData, out value))
            {
                string strValue = value.ToString();
                Helper.Log("UpdateRoleInfo:" + strValue);
                string[] pStr1 = strValue.Split(',');
                if (pStr1.Length == 7)
                {
                    List <RoleInfoData> pList = m_roleinfoMgr.GetRoleData(peer.m_curRole.Id);
                    if (pList != null && pList.Count > 0)
                    {
                        RoleInfoData data = pList[0];
                        data.Exp     = Helper.IntParse(pStr1[0]);
                        data.Gold    = Helper.IntParse(pStr1[1]);
                        data.Gem     = Helper.IntParse(pStr1[2]);
                        data.Energy  = Helper.IntParse(pStr1[3]);
                        data.Toughen = Helper.IntParse(pStr1[4]);
                        m_roleinfoMgr.UpdateRoleInfo(data);

                        // 更新角色名称和等级
                        RoleData curRole = peer.m_curRole;
                        curRole.Name = pStr1[5];
                        curRole.Lv   = Helper.IntParse(pStr1[6]);

                        m_roleMgr.UpdateUser(curRole);

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