/// <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; }
/// <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; }