private void OnUpgradeClick(GameObject obj) { if (currentSkill != null) { if (currentSkill.next != 0) { SysSkillBaseVo nextSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)currentSkill.next); if (!SkillViewLogic.IsLevelEnough(nextSkill)) { MessageManager.Show("角色等级不足,请升级主角等级到" + nextSkill.lvl + "级!"); } else if (!SkillViewLogic.IsSkillPointEnough(nextSkill)) { MessageManager.Show("灵魂点不足!"); } else if (!SkillViewLogic.IsPreSkillEnough(nextSkill)) { SysSkillBaseVo preSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)nextSkill.pre); MessageManager.Show("请先学习技能 " + preSkill.name + " 到 " + preSkill.skill_lvl + " 级"); } else { Singleton <SkillControl> .Instance.LearnSkill((uint)currentSkill.id); } } else { MessageManager.Show("当前技能已经满级"); } } }
/// <summary> /// 设置全部的技能信息 /// </summary> private void SetAllSkillInfo() { InitSkillObjs(); bool active = currentUIToggel == zdSkill; if (active) { NGUITools.FindChild(bdSkill.gameObject, "tips").SetActive(Singleton <SkillMode> .Instance.IfShowTips(false)); NGUITools.FindChild(zdSkill.gameObject, "tips").SetActive(false); } else { NGUITools.FindChild(zdSkill.gameObject, "tips").SetActive(Singleton <SkillMode> .Instance.IfShowTips(true)); NGUITools.FindChild(bdSkill.gameObject, "tips").SetActive(false); } List <SysSkillBaseVo> skills = Singleton <SkillMode> .Instance.CurrentSkills(active); for (int i = 0; i < skills.Count; i++) { SysSkillBaseVo skill = skills[i]; if (skills[i] != null) { GameObject skillObj = skillList[i]; skillObj.name = skill.id.ToString(); SkillState state = SkillViewLogic.GetSkillState(skill); NGUITools.FindInChild <UISprite>(skillObj, "icon").spriteName = skill.icon.ToString(); if (state == SkillState.Learn) //学习状态-置灰 { UIUtils.ChangeGrayShader(NGUITools.FindInChild <UISprite>(skillObj, "icon"), 23); } else { NGUITools.FindChild(skillObj, "lvl").SetActive(true); NGUITools.FindInChild <UILabel>(skillObj, "lvl").text = "Lv." + skill.skill_lvl; UIUtils.ChangeNormalShader(NGUITools.FindInChild <UISprite>(skillObj, "icon"), 22); } if (state != SkillState.Max) { SysSkillBaseVo nextSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)skill.next); if (SkillViewLogic.IsConditionEnough(nextSkill)) { NGUITools.FindChild(skillObj, "tips").SetActive(true); } } if (currentSkill != null && currentSkill.position == skills[i].position && currentSkill.group == skills[i].group) { OnSkillClick(skillObj); } } } if (currentSkill == null) { OnSkillClick(skillList[0]); } SetSkillsPosInfo(); SetGuideButton(); CheckGuide(); }
public bool IfShowTips(bool active) { List <SysSkillBaseVo> skills = CurrentSkills(active); foreach (SysSkillBaseVo skill in skills) { if (skill != null && skill.next != 0) { SysSkillBaseVo nextSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)skill.next); if (SkillViewLogic.IsConditionEnough(nextSkill)) { return(true); } } } return(false); }
protected override void NetListener() { /* * public const String CMD_13_4 = "3332"; // 技能信息 : SkillInfoMsg_13_4 * public const String CMD_13_5 = "3333"; // 学习技能 : SkillStudyMsg_13_5 * public const String CMD_13_6 = "3334"; // 一键学习 : SkillAllStudyMsg_13_6 * public const String CMD_13_7 = "3335"; // 重置 : SkillResetMsg_13_7 */ AppNet.main.addCMD(CMD.CMD_13_3, GetSkillPointInfo_13_3); AppNet.main.addCMD(CMD.CMD_13_4, GetSkillInfo_13_4); AppNet.main.addCMD(CMD.CMD_13_5, GetSkillStudyInfo_13_5); AppNet.main.addCMD(CMD.CMD_13_7, GetSkillResetInfo_13_7); AppNet.main.addCMD(CMD.CMD_13_11, GetSkillSynInfo13_11); AppNet.main.addCMD(CMD.CMD_13_12, GetSkillDamageSynInfo13_12); SendRequstForSKillsInfo(); SkillViewLogic.InitConfig(); }
/// <summary> /// 获取当前玩家的全部技能 /// </summary> private List <SysSkillBaseVo> GetPlayerCurrentSkills(int job, bool active) { List <SysSkillBaseVo> defaultSkills; if (skillsId.Count < 24) //默认最多24个技能位 { defaultSkills = SkillViewLogic.GetDefaultSkill(job, active).ToList(); } else { defaultSkills = new List <SysSkillBaseVo>(); } foreach (uint skillid in skillsId) { SysSkillBaseVo skill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>(skillid); if (skill.active == active) { defaultSkills[skill.position - 1] = skill; } } return(defaultSkills); }
//技能位置点击 private void OnSkillPosClick(GameObject obj) { int pos = int.Parse(obj.name); uint position = Singleton <SkillMode> .Instance.SkillsPos[pos - 1]; if (currentSkill != null && currentSkill.position != position) { SkillState state = SkillViewLogic.GetSkillState(currentSkill); if (currentUIToggel == bdSkill) { MessageManager.Show("被动技能不可设置到技能栏!"); } else if (state == SkillState.Learn) { MessageManager.Show("该技能尚未学习!"); } else { uint[] skillPos = new uint[5]; uint[] oldSkillPos = Singleton <SkillMode> .Instance.SkillsPos; for (int i = 0; i < oldSkillPos.Count(); i++) { if (oldSkillPos[i] == currentSkill.position) { skillPos[i] = 0; } else { skillPos[i] = oldSkillPos[i]; } } skillPos[pos - 1] = (uint)currentSkill.position; Singleton <SkillControl> .Instance.SetSkillPosValue(skillPos); } } }
private void SetSkillInfo(SysSkillBaseVo skill) { NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/skillname").text = skill.name; NGUITools.FindInChild <UISprite>(gameObject, "skillinfo/icon").spriteName = skill.icon.ToString(); SkillState state = SkillViewLogic.GetSkillState(skill); NGUITools.FindChild(gameObject, "skillinfo/1").SetActive(true); if (state == SkillState.Max) //满级 { NGUITools.FindChild(gameObject, "skillinfo/2").SetActive(false); UpgradeButton.SetActive(true); NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").text = "当前等级:" + skill.skill_lvl + " (满级)"; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").color = ColorConst.FONT_YELLOW; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/time").text = "冷却时间:" + skill.cd / 1000 + "s"; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/cost").text = "魔法消耗:" + skill.need_value; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/des").text = "技能说明:" + skill.desc; } else if (state == SkillState.Learn) //学习 { skill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)skill.next); NGUITools.FindChild(gameObject, "skillinfo/2").SetActive(false); UpgradeButton.SetActive(true); UpgradeButton.FindInChild <UILabel>("needvalue").text = skill.point.ToString(); UpgradeButton.FindInChild <UILabel>("label").text = "学 习"; UpgradeButton.FindInChild <UILabel>("leftvalue").text = Singleton <SkillMode> .Instance.LeftPoint().ToString(); NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").text = "当前等级:" + skill.skill_lvl + " (未学习)"; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").color = ColorConst.FONT_WHITE; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/time").text = "冷却时间:" + (float)skill.cd / 1000 + "s"; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/cost").text = "魔法消耗:" + skill.need_value; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/des").text = "技能说明:" + skill.desc; if (skill.point > Singleton <SkillMode> .Instance.LeftPoint()) { UpgradeButton.FindInChild <UILabel>("needvalue").color = ColorConst.FONT_RED; } else { UpgradeButton.FindInChild <UILabel>("needvalue").color = ColorConst.FONT_YELLOW; } } else if (state == SkillState.Upgrade)//升级 { NGUITools.FindChild(gameObject, "skillinfo/2").SetActive(true); UpgradeButton.SetActive(true); SysSkillBaseVo nextSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)skill.next); NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").text = "当前等级:" + skill.skill_lvl; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").color = ColorConst.FONT_YELLOW; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/time").text = "冷却时间:" + (float)skill.cd / 1000 + "s"; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/cost").text = "魔法消耗:" + skill.need_value; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/des").text = "技能说明:" + skill.desc; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/lvl").text = "下一等级:" + nextSkill.skill_lvl; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/time").text = "冷却时间:" + (float)nextSkill.cd / 1000 + "s"; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/cost").text = "魔法消耗:" + nextSkill.need_value; NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/des").text = "技能说明:" + nextSkill.desc; if (SkillViewLogic.IsConditionEnough(nextSkill)) { NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/lvl").color = ColorConst.FONT_YELLOW; } else { NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/lvl").color = ColorConst.FONT_RED; } UpgradeButton.FindInChild <UILabel>("label").text = "升 级"; UpgradeButton.FindInChild <UILabel>("needvalue").text = nextSkill.point.ToString(); UpgradeButton.FindInChild <UILabel>("leftvalue").text = Singleton <SkillMode> .Instance.LeftPoint().ToString(); if (skill.point > Singleton <SkillMode> .Instance.LeftPoint()) { UpgradeButton.FindInChild <UILabel>("needvalue").color = ColorConst.FONT_RED; } else { UpgradeButton.FindInChild <UILabel>("needvalue").color = ColorConst.FONT_YELLOW; } } NGUITools.FindChild(gameObject, "skillinfo/2/time").SetActive(skill.active); NGUITools.FindChild(gameObject, "skillinfo/2/cost").SetActive(skill.active); NGUITools.FindChild(gameObject, "skillinfo/1/time").SetActive(skill.active); NGUITools.FindChild(gameObject, "skillinfo/1/cost").SetActive(skill.active); }
public void SetSkillDetailInfo(SysSkillBaseVo svo) { if (gameObject != null) { SkillVo = svo; SysSkillBaseVo skillVo = SkillVo; SkillState state = SkillViewLogic.GetSkillState(skillVo); //当前技能不是学习状态则已经激活 bool enable = state != SkillState.Learn; //技能-升级或者进阶 bool showUpgrade = (state != SkillState.Change); bool showChange = (state == SkillState.Change); //满级 bool limit = (skillVo.next == 0); //获取下一级信息 uint nextId = (uint)skillVo.next; if (nextId == 0) { //下一级技能为进阶技能 nextId = (uint)skillVo.evolve; } SysSkillBaseVo nextSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>(nextId); //当前技能为0级,则显示1级技能信息 if (!enable && nextSkill != null) { skillVo = nextSkill; } string skillType; if (skillVo.active) { skillType = LanguageManager.GetWord("SkillTipsView.TypeZD"); if (skillVo.group) { skillType += LanguageManager.GetWord("SkillTipsView.Group"); } else { skillType += LanguageManager.GetWord("SkillTipsView.Single"); } } else { skillType = LanguageManager.GetWord("SkillTipsView.TypeBD"); } //当前技能的信息 string icn = skillVo.icon.ToString(); if (!SkillViewLogic.IsLevelEnough(skillVo)) { icn = "suo"; } setSkillIcn(icn); setSkillEnable(enable); setSkillTitle(skillVo.name, skillVo.skill_lvl.ToString(), limit); setSkillInfo(skillType, skillVo.cover_width, skillVo.need_value, skillVo.cd / 1000f, skillVo.desc); //升级的信息 if (nextId != 0) { //升级相关的信息 bool levelEnough = SkillViewLogic.IsLevelEnough(nextSkill); bool moneyEnough = SkillViewLogic.IsMoneyEnough(nextSkill); bool pointEnough = SkillViewLogic.IsSkillPointEnough(nextSkill); string preskill = null; bool preSkillEnough = true; if (skillVo.pre != 0) { SysSkillBaseVo pSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)skillVo.pre); if (pSkill.skill_lvl != 0) { preskill = pSkill.name; preSkillEnough = SkillViewLogic.IsPreSkillEnough(nextSkill); } } setSkillCondition(nextSkill.lvl, nextSkill.point, nextSkill.beiley, preskill, levelEnough, pointEnough, moneyEnough, preSkillEnough); setNextSkillTitle(nextSkill.name, nextSkill.skill_lvl, nextSkill.desc); condition.SetActive(true); skillButton.SetActive(true); } else { condition.SetActive(false); skillButton.SetActive(false); } } }
public void LearnFirstSkill() // 学习第一个技能 { SysSkillBaseVo skill = SkillViewLogic.GetDefaultSkill(MeVo.instance.job, true)[0]; LearnSkill((uint)skill.id); }