public static bool SkillExpPatch_BreakTen3(ref CheckLevelMaxMantrasAndSkills __instance, ref bool __result) { __result = false; if (!Application.isPlaying) { return(false); } string id = Traverse.Create(__instance).Method("GetId").GetValue <string>(); if (id.IsNullOrEmpty()) { return(false); } CharacterInfoData characterInfoData = Game.GameData.Character[id]; CharacterMantraData mantra = characterInfoData.Mantra; CharacterSkillData skill = characterInfoData.Skill; // m: for achevement correct int current = (from x in mantra where x.Value.Level >= 10 select x).Count() + (from x in skill where x.Value.Level >= 10 select x).Count(); __result = __instance.Execute(current); return(false); }
public static void SkillExpPatch_WuxiaUnit(ref WuxiaUnit __instance, ref CharacterSkillData __result) { foreach (var s in __result) { s.Value.CharacterId = null; } }
public static bool SkillExpPatch_BreakTen2(ref CheckSkillLevel __instance, ref bool __result) { __result = false; if (!Application.isPlaying) { return(false); } string id = Traverse.Create(__instance).Method("GetId").GetValue <string>(); if (id.IsNullOrEmpty()) { return(false); } CharacterSkillData skill = Game.GameData.Character[id].Skill; if (!skill.ContainsKey(__instance.skillid)) { return(false); } SkillData skillData = skill[__instance.skillid]; int level = (skillData.Level > 10) ? 10 : skillData.Level; __result = skillData != null && __instance.Execute(level); return(false); }
public static void openElementUI() { Heluo.Logger.LogError("openElementUI start"); if (nonbattleChangeElement.Value) { //show结束时ctrlMartialArts还没当前角色数据,需要从ctrlhome处获得 List <CharacterMapping> characterMapping = Traverse.Create(homeController).Field("characterMapping").GetValue <List <CharacterMapping> >(); int communityIndex = Traverse.Create(homeController).Field("communityIndex").GetValue <int>(); CharacterMapping mapping = characterMapping[communityIndex]; characterInfoData = Game.GameData.Character[mapping.InfoId]; clickSkill = characterInfoData.GetSkill(characterInfoData.SpecialSkill); //不是切换功体或召唤技能 if (clickSkill == null || (clickSkill.Item.DamageType != DamageType.ChangeElement && clickSkill.Item.DamageType != DamageType.Summon)) { return; } //mp不足 if (characterInfoData.MP < clickSkill.Item.RequestMP) { string text2 = Game.Data.Get <StringTable>("SecondaryInterface1207").Text; Game.UI.AddMessage(text2, UIPromptMessage.PromptType.Normal); return; } //切换功体 if (clickSkill.Item.DamageType == DamageType.ChangeElement) { Game.MusicPlayer.Current_Volume = 0.5f; //从uibattle处获得五行盘ui UIBattle uiBattle = Game.UI.Open <UIBattle>(); WgBattleRound battle_round = uiBattle.battle_round; battle_round.gameObject.SetActive(false);//隐藏右上角的回合数 UIAttributeList attr_list = Traverse.Create(uiBattle).Field("attr_list").GetValue <UIAttributeList>(); //图层设置为最前,否则会被挡住 Game.UI.SetParent(attr_list.transform, UIForm.Depth.Front); attr_list.transform.SetAsLastSibling(); attr_list.Show(); attr_list.SetOriginElement((int)characterInfoData.Element, new Action <int>(OnElementSelect), delegate { Game.MusicPlayer.Current_Volume = 1f; }); } //召唤小熊猫,开启乖乖技能列表 else if (nonbattleUseHealSkill.Value && clickSkill.Item.DamageType == DamageType.Summon) { CharacterInfoData characterInfoData = Game.GameData.Character["in91001"]; CharacterSkillData skill = characterInfoData.Skill; Props equip = characterInfoData.Equip.GetEquip(EquipType.Weapon); if (equip == null) { return; } List <SkillData> list = new List <SkillData>(); PropsCategory propsCategory = equip.PropsCategory; foreach (string key in skill.Keys) { SkillData skillData = skill[key]; if (skillData.Item == null) { Debug.LogError("Skill表中找不到" + skillData.Id + "的文本"); } else if (!(skillData.Item.Id == characterInfoData.SpecialSkill)) { list.Add(skillData); } } if (list.Count > 0) { MartialArtsWindowInfo martialArtsWindowInfo = new MartialArtsWindowInfo(); martialArtsWindowInfo.Mapping = new CharacterMapping(); Npc npc = Game.Data.Get <Npc>("in91001"); martialArtsWindowInfo.Mapping.Id = "in91001"; martialArtsWindowInfo.Mapping.InfoId = npc.CharacterInfoId; martialArtsWindowInfo.Mapping.ExteriorId = npc.ExteriorId; martialArtsWindowInfo.Sort = list; martialArtsWindowInfo.SkillColumn = (CtrlMartialArts.UISkillColumn) 5; Game.UI.Open <UIMartialArtsWindow>().OpenWindow(martialArtsWindowInfo, null); return; } } } }