| Core/GameEngine/Model/Config/PlayerFaceConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FairyEmblem/FairyEmblemModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/PhantasmPavilion/PhantasmPavilionModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/Config/PlayerFaceConfig.cs
@@ -1,6 +1,6 @@ //-------------------------------------------------------- // [Author]: Fish // [ Date ]: 2024年11月6日 // [ Date ]: 2024年11月12日 //-------------------------------------------------------- using System.Collections.Generic; @@ -15,6 +15,7 @@ public readonly int FaceID; public readonly string Name; public readonly int[] JobShowList; public readonly int UnlockDefault; public readonly int ExpireMinutes; public readonly string Image; @@ -39,25 +40,39 @@ Name = tables[1]; int.TryParse(tables[2],out UnlockDefault); int.TryParse(tables[3],out ExpireMinutes); Image = tables[4]; int.TryParse(tables[5],out BgColor); int.TryParse(tables[6],out EffectID); UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[7].Replace("(", "[").Replace(")", "]")); if (tables[8].Contains("[")) if (tables[2].Contains("[")) { LightAttrType = JsonMapper.ToObject<int[]>(tables[8]); JobShowList = JsonMapper.ToObject<int[]>(tables[2]); } else { string[] LightAttrTypeStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); string[] JobShowListStringArray = tables[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); JobShowList = new int[JobShowListStringArray.Length]; for (int i=0;i<JobShowListStringArray.Length;i++) { int.TryParse(JobShowListStringArray[i],out JobShowList[i]); } } int.TryParse(tables[3],out UnlockDefault); int.TryParse(tables[4],out ExpireMinutes); Image = tables[5]; int.TryParse(tables[6],out BgColor); int.TryParse(tables[7],out EffectID); UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[8].Replace("(", "[").Replace(")", "]")); if (tables[9].Contains("[")) { LightAttrType = JsonMapper.ToObject<int[]>(tables[9]); } else { string[] LightAttrTypeStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); LightAttrType = new int[LightAttrTypeStringArray.Length]; for (int i=0;i<LightAttrTypeStringArray.Length;i++) { @@ -65,13 +80,13 @@ } } if (tables[9].Contains("[")) if (tables[10].Contains("[")) { LightAttrValue = JsonMapper.ToObject<int[]>(tables[9]); LightAttrValue = JsonMapper.ToObject<int[]>(tables[10]); } else { string[] LightAttrValueStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); string[] LightAttrValueStringArray = tables[10].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); LightAttrValue = new int[LightAttrValueStringArray.Length]; for (int i=0;i<LightAttrValueStringArray.Length;i++) { @@ -79,7 +94,7 @@ } } int.TryParse(tables[10],out LightFightPower); int.TryParse(tables[11],out LightFightPower); } catch (Exception ex) { System/FairyEmblem/FairyEmblemModel.cs
@@ -31,8 +31,8 @@ } } //<FamilyID,<ActionType,<EmblemId,FamilyAction>>> public Dictionary<int, Dictionary<int, Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>>> familyActions = new Dictionary<int, Dictionary<int, Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>>>(); //<EmblemId,FamilyAction> Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction> familyActions = new Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>(); public event Action ChooseEmblemIdChangeEvent; //切换标签页 public event Action<int, int> UpdateFamilyActionEvent; @@ -244,12 +244,7 @@ private bool TryGetfamilyAction(int emblemId, out HA403_tagGCFamilyActionInfo.tagGCFamilyAction familyAction) { familyAction = new HA403_tagGCFamilyActionInfo.tagGCFamilyAction(); int familyId = (int)PlayerDatas.Instance.baseData.FamilyId; if (!familyActions.TryGetValue((int)PlayerDatas.Instance.baseData.FamilyId, out var familyActionDict) || familyActionDict == null) return false; if (!familyActionDict.TryGetValue(FamilyActionsType, out var infoDict) || infoDict == null) return false; if (!infoDict.TryGetValue(emblemId, out var info) || info == null) if (!familyActions.TryGetValue(emblemId, out var info) || info == null) return false; familyAction = info; return true; @@ -281,20 +276,14 @@ return true; } internal void UpdateFamilyAction(HA403_tagGCFamilyActionInfo vNetData) public void UpdateFamilyAction(HA403_tagGCFamilyActionInfo vNetData) { if (!familyActions.ContainsKey((int)vNetData.FamilyID)) { familyActions[(int)vNetData.FamilyID] = new Dictionary<int, Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>>(); } if (!familyActions[(int)vNetData.FamilyID].ContainsKey(vNetData.ActionType)) { familyActions[(int)vNetData.FamilyID][vNetData.ActionType] = new Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>(); } if (vNetData.ActionType != FamilyActionsType || PlayerDatas.Instance.baseData == null || (int)vNetData.FamilyID != (int)PlayerDatas.Instance.baseData.FamilyId) return; for (int i = 0; i < vNetData.FamilyActionList.Length; i++) { HA403_tagGCFamilyActionInfo.tagGCFamilyAction familyAction = vNetData.FamilyActionList[i]; familyActions[(int)vNetData.FamilyID][vNetData.ActionType][(int)familyAction.Value1] = familyAction; familyActions[(int)familyAction.Value1] = familyAction; } UpdateFamilyActionEvent?.Invoke((int)vNetData.FamilyID, vNetData.ActionType); } System/PhantasmPavilion/PhantasmPavilionModel.cs
@@ -343,6 +343,20 @@ var resList = handler.GetTableKeys(); resList.Sort((int a, int b) => Cmp(a, b, tab)); if (tab == PhantasmPavilionTab.Avatar) { for (int i = resList.Count - 1; i >= 0; i--) { int id = resList[i]; int[] JobShowList = PlayerFaceConfig.Get(id).JobShowList; if (JobShowList != null && !JobShowList.Contains(PlayerDatas.Instance.baseData.Job) && resList.Contains(id)) { resList.Remove(id); } } } fristIndex = resList.First(); return resList; }