protected override void OnRequest(request_skill_op request, object userdata) { if (userdata is SkillEquipActionParam) { SkillEquipActionParam param = userdata as SkillEquipActionParam; request.op_type = (int)SKILL_OP_TYPE.SKILL_OP_EQUIP; skill_equip_info info = new skill_equip_info(); for (int i = 0; i < param.EquipIdx.Length; ++i) { info.equip_id.Add(param.EquipIdx[i]); } request.equip_info = info; } if (userdata is SkillLevelActionParam) { SkillLevelActionParam param = userdata as SkillLevelActionParam; request.op_type = (int)SKILL_OP_TYPE.SKILL_OP_LEVEL; for (int i = 0; i < param.SkillIdxs.Count; ++i) { request.skill_idx.Add(param.SkillIdxs[i]); } for (int i = 0; i < param.DefaultEquips.Count; ++i) { request.default_equip_idx.Add(param.DefaultEquips[i]); } } if (userdata is SkillWeaponSkillParam) { request.op_type = (int)SKILL_OP_TYPE.SKILL_OP_UNLOCK_WEAPON_SKILL; } }
///技能升级; public bool Upgrade(int skillId) { SkillLevelTableItem item = GetDetailByCurLvSkillID(skillId); if (item == null) { return(false); } PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>(); if (pdm == null) { return(false); } ProceedsType pt = (ProceedsType)item.money_type; uint moneyNum = pdm.GetProceeds(pt); if (item.money_num > moneyNum) { //Debug.LogError("钱不够了,升级失败"); if (pt == ProceedsType.Money_Game) { PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("skill_lvup_nomoney"))); } else if (pt == ProceedsType.Money_RMB) { PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("skill_lvup_normb"))); } return(false); } if (pdm.GetLevel() < item.level) { //人物等级不足,技能升级失败; PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("skill_lvup_nolevel"))); return(false); } SkillLevelActionParam param = new SkillLevelActionParam(); param.SkillIdxs.Add(skillId); Net.Instance.DoAction((int)MESSAGE_ID.ID_MSG_SKILL, param); // pdm.ChangeProceeds((ProceedsType)item.money_type, (int)(moneyNum - item.money_num)); // PlayerData pd = PlayerDataPool.Instance.MainData; // int tempLv = pd.skillData.mLevels[skillId]; // pd.skillData.mLevels[skillId] = tempLv + 1; return(true); }
// public bool SetSkillEquip(int[] equips ) // { // PlayerData pd = PlayerDataPool.Instance.MainData; // for (int i = 0; i < equips.Length && i < SkillMaxCountDefine.MAX_EQUIP_SKILL_NUM;++i ) // { // pd.skillData.skills[i] = equips[i]; // } // // //更新界面 // SkillUIEvent sue = new SkillUIEvent(SkillUIEvent.SKILL_EQUIP); // EventSystem.Instance.PushEvent(sue); // // return true; // public void GiveSkills(List <string> skills) { SkillLevelActionParam param = new SkillLevelActionParam(); for (int i = 0; i < skills.Count; ++i) { int skillidx = int.Parse(skills[i]); if (GetSkillLvBySkillID(skillidx) <= 0) { param.SkillIdxs.Add(skillidx); param.DefaultEquips.Add(skillidx - 1); } } if (param.SkillIdxs.Count > 0) { Net.Instance.DoAction((int)MESSAGE_ID.ID_MSG_SKILL, param); } }
///技能解锁; public void UnLock(int skillId) { if (GetSkillLvBySkillID(skillId) <= 0) { //直接向服务器发送 升级请求 服务器会判定 0级技能 需要解锁 SkillLevelActionParam param = new SkillLevelActionParam(); param.SkillIdxs.Add(skillId); param.DefaultEquips.Add(-1); Net.Instance.DoAction((int)MESSAGE_ID.ID_MSG_SKILL, param); } // PlayerData pd = PlayerDataPool.Instance.MainData; // // //可以解锁状态下的技能才可以解锁成功; // if(!pd.skillData.mLevels.ContainsKey(skillId) || pd.skillData.mLevels[skillId] != 0) // return; // // pd.skillData.mLevels[skillId] = 1; }