using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using HoLMod;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("cs.HoLMod.MenberCheat")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("cs.HoLMod.MenberCheat")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("9997e218-2a91-4468-b675-8cb0acb3a051")]
[assembly: AssemblyFileVersion("1.3.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7", FrameworkDisplayName = ".NET Framework 4.7")]
[assembly: AssemblyVersion("1.3.0.0")]
namespace cs.HoLMod.MenberCheat
{
[BepInPlugin("cs.HoLMod.MemberCheat.AnZhi20", "HoLMod.MemberCheat", "1.3.0")]
public class MenberCheat : BaseUnityPlugin
{
private ConfigEntry<float> menuWidth;
private ConfigEntry<float> menuHeight;
private static Rect windowRect;
private static bool showMenu = false;
private static Vector2 scrollPosition = Vector2.zero;
private static bool blockGameInput = false;
private static bool hasSelectedCategory = false;
private int currentMode = 0;
private string searchText = "";
private string selectedMemberName = "";
private int currentMemberSubMode = 0;
private bool showTooltip = false;
private string tooltipText = "";
private Vector2 tooltipPosition = Vector2.zero;
private string A_reputation = "0";
private string A_reputationOriginal = "0";
private string A_title = "0";
private string A_titleOriginal = "0";
private string A_power = "0";
private string A_powerOriginal = "0";
private string A_age = "0";
private string A_ageOriginal = "0";
private string A_health = "0";
private string A_healthOriginal = "0";
private string A_mood = "0";
private string A_moodOriginal = "0";
private string A_charm = "0";
private string A_charmOriginal = "0";
private string A_luck = "0";
private string A_luckOriginal = "0";
private string A_preference = "0";
private string A_preferenceOriginal = "0";
private string A_character = "0";
private string A_characterOriginal = "0";
private string A_talent = "0";
private string A_talentOriginal = "0";
private string A_talentPoint = "0";
private string A_talentPointOriginal = "0";
private string A_skill = "0";
private string A_skillOriginal = "0";
private string A_skillPoint = "0";
private string A_skillPointOriginal = "0";
private string A_intelligence = "0";
private string A_intelligenceOriginal = "0";
private string A_weapon = "0";
private string A_weaponOriginal = "0";
private string A_business = "0";
private string A_businessOriginal = "0";
private string A_art = "0";
private string A_artOriginal = "0";
private string A_strategy = "0";
private string A_strategyOriginal = "0";
private string A_JueWei = "0";
private string A_JueWeiOriginal = "0";
private string A_FengDi = "0";
private string A_FengDiOriginal = "0";
private string A_officialRank = "0@0@0@-1@-1";
private string A_officialRankOriginal = "0@0@0@-1@-1";
private string B_reputation = "0";
private string B_reputationOriginal = "0";
private string B_power = "0";
private string B_powerOriginal = "0";
private string B_age = "0";
private string B_ageOriginal = "0";
private string B_health = "0";
private string B_healthOriginal = "0";
private string B_mood = "0";
private string B_moodOriginal = "0";
private string B_charm = "0";
private string B_charmOriginal = "0";
private string B_luck = "0";
private string B_luckOriginal = "0";
private string B_preference = "0";
private string B_preferenceOriginal = "0";
private string B_character = "0";
private string B_characterOriginal = "0";
private string B_talent = "0";
private string B_talentOriginal = "0";
private string B_talentPoint = "0";
private string B_talentPointOriginal = "0";
private string B_skill = "0";
private string B_skillOriginal = "0";
private string B_skillPoint = "0";
private string B_skillPointOriginal = "0";
private string B_intelligence = "0";
private string B_intelligenceOriginal = "0";
private string B_weapon = "0";
private string B_weaponOriginal = "0";
private string B_business = "0";
private string B_businessOriginal = "0";
private string B_art = "0";
private string B_artOriginal = "0";
private string B_strategy = "0";
private string B_strategyOriginal = "0";
private string C_reputation = "0";
private string C_reputationOriginal = "0";
private string C_power = "0";
private string C_powerOriginal = "0";
private string C_age = "0";
private string C_ageOriginal = "0";
private string C_health = "0";
private string C_healthOriginal = "0";
private string C_mood = "0";
private string C_moodOriginal = "0";
private string C_charm = "0";
private string C_charmOriginal = "0";
private string C_luck = "0";
private string C_luckOriginal = "0";
private string C_character = "0";
private string C_characterOriginal = "0";
private string C_talent = "0";
private string C_talentOriginal = "0";
private string C_talentPoint = "0";
private string C_talentPointOriginal = "0";
private string C_skill = "0";
private string C_skillOriginal = "0";
private string C_skillPoint = "0";
private string C_skillPointOriginal = "0";
private string C_intelligence = "0";
private string C_intelligenceOriginal = "0";
private string C_weapon = "0";
private string C_weaponOriginal = "0";
private string C_business = "0";
private string C_businessOriginal = "0";
private string C_art = "0";
private string C_artOriginal = "0";
private string C_strategy = "0";
private string C_strategyOriginal = "0";
private string C_MenKe_Reward = "0";
private string C_MenKe_RewardOriginal = "0";
private List<string> memberList = new List<string>();
private List<string> filteredMembers = new List<string>();
private List<string> Member_nowData = null;
private List<string> Member_quData = null;
private List<string> Member_MenKeData = null;
private int currentDataIndex = -1;
private void Awake()
{
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
((BaseUnityPlugin)this).Logger.LogInfo((object)"族人门客修改器已加载!");
menuWidth = ((BaseUnityPlugin)this).Config.Bind<float>("界面设置", "窗口宽度", 1000f, "族人门客修改器窗口的宽度");
menuHeight = ((BaseUnityPlugin)this).Config.Bind<float>("界面设置", "窗口高度", 1400f, "族人门客修改器窗口的高度");
windowRect = new Rect(100f, 200f, menuWidth.Value, menuHeight.Value);
filteredMembers = memberList;
}
private void Update()
{
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
if (Input.GetKeyDown((KeyCode)284))
{
showMenu = !showMenu;
blockGameInput = showMenu;
if (showMenu)
{
hasSelectedCategory = false;
}
((BaseUnityPlugin)this).Logger.LogInfo((object)(showMenu ? "族人门客修改器窗口已打开" : "族人门客修改器窗口已关闭"));
}
if (blockGameInput)
{
if (Input.mouseScrollDelta.y != 0f)
{
Input.ResetInputAxes();
}
if (Input.GetMouseButton(0) || Input.GetMouseButton(1) || Input.GetMouseButton(2))
{
Input.ResetInputAxes();
}
if (Input.anyKeyDown && !Input.GetKeyDown((KeyCode)284))
{
Input.ResetInputAxes();
}
}
}
private void OnGUI()
{
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Expected O, but got Unknown
//IL_007e: Unknown result type (might be due to invalid IL or missing references)
//IL_0083: Unknown result type (might be due to invalid IL or missing references)
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
//IL_011b: Unknown result type (might be due to invalid IL or missing references)
//IL_0127: Unknown result type (might be due to invalid IL or missing references)
//IL_0140: Expected O, but got Unknown
//IL_013b: Unknown result type (might be due to invalid IL or missing references)
//IL_0140: Unknown result type (might be due to invalid IL or missing references)
//IL_01f7: Unknown result type (might be due to invalid IL or missing references)
//IL_0190: Unknown result type (might be due to invalid IL or missing references)
//IL_0195: Unknown result type (might be due to invalid IL or missing references)
//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
//IL_01da: Unknown result type (might be due to invalid IL or missing references)
//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
//IL_01f5: Expected O, but got Unknown
//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
showTooltip = false;
if (!showMenu)
{
return;
}
GUI.skin.window.fontSize = 12;
GUI.skin.window.padding = new RectOffset(20, 20, 10, 10);
GUI.skin.label.fontSize = 12;
GUI.skin.button.fontSize = 12;
GUI.skin.textField.fontSize = 12;
Color backgroundColor = GUI.backgroundColor;
GUI.backgroundColor = new Color(0.9f, 0.9f, 0.9f, 0.95f);
GUI.BeginGroup(new Rect(0f, 0f, (float)Screen.width, (float)Screen.height));
GUI.color = new Color(0f, 0f, 0f, 0.1f);
GUI.DrawTexture(new Rect(0f, 0f, (float)Screen.width, (float)Screen.height), (Texture)(object)Texture2D.whiteTexture);
GUI.color = Color.white;
GUI.EndGroup();
windowRect = GUI.Window(0, windowRect, new WindowFunction(DrawWindow), "", GUI.skin.window);
((Rect)(ref windowRect)).width = menuWidth.Value;
((Rect)(ref windowRect)).height = menuHeight.Value;
if (showTooltip && !string.IsNullOrEmpty(tooltipText))
{
Vector2 val = tooltipPosition;
val.y -= 30f;
GUI.backgroundColor = new Color(0.95f, 0.95f, 0.95f, 0.95f);
GUI.Window(999, new Rect(val, new Vector2(100f, 30f)), (WindowFunction)delegate
{
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
GUI.Label(new Rect(5f, 5f, 90f, 20f), tooltipText);
}, "");
}
GUI.backgroundColor = backgroundColor;
}
private void DrawWindow(int windowID)
{
//IL_0cfd: Unknown result type (might be due to invalid IL or missing references)
//IL_0d04: Expected O, but got Unknown
//IL_0d1f: Unknown result type (might be due to invalid IL or missing references)
//IL_0d26: Expected O, but got Unknown
//IL_034b: Unknown result type (might be due to invalid IL or missing references)
//IL_0368: Unknown result type (might be due to invalid IL or missing references)
//IL_036d: Unknown result type (might be due to invalid IL or missing references)
//IL_040f: Unknown result type (might be due to invalid IL or missing references)
//IL_0427: Unknown result type (might be due to invalid IL or missing references)
//IL_042c: Unknown result type (might be due to invalid IL or missing references)
//IL_0491: Unknown result type (might be due to invalid IL or missing references)
//IL_0498: Expected O, but got Unknown
GUI.skin.label.fontSize = 14;
GUI.skin.button.fontSize = 14;
GUI.skin.textField.fontSize = 14;
GUI.skin.window.fontSize = 14;
GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.ExpandWidth(true),
GUILayout.ExpandHeight(true)
});
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
GUILayout.FlexibleSpace();
GUILayout.Label("成员修改器", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(false) });
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
GUILayout.Space(10f);
GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
if (GUILayout.Button("族人修改", (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(150f),
GUILayout.Height(30f)
}))
{
currentMode = 0;
hasSelectedCategory = true;
ResetAttributeValues();
ClearSearchText();
FilterMembers();
}
GUILayout.FlexibleSpace();
if (GUILayout.Button("门客修改", (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(150f),
GUILayout.Height(30f)
}))
{
currentMode = 1;
hasSelectedCategory = true;
ResetAttributeValues();
ClearSearchText();
FilterMembers();
}
GUILayout.EndHorizontal();
GUILayout.Space(10f);
if (currentMode == 0)
{
GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
if (GUILayout.Button("族人家族", (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(150f),
GUILayout.Height(30f)
}))
{
currentMemberSubMode = 1;
hasSelectedCategory = true;
ResetAttributeValues();
ClearSearchText();
FilterMembers();
}
if (GUILayout.Button("族人妻妾", (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(150f),
GUILayout.Height(30f)
}))
{
currentMemberSubMode = 2;
hasSelectedCategory = true;
ResetAttributeValues();
ClearSearchText();
FilterMembers();
}
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
GUILayout.Space(10f);
}
if (hasSelectedCategory)
{
GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
GUILayout.Label("名字搜索:", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
string text = GUILayout.TextField(searchText, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
if (text != searchText)
{
searchText = text;
FilterMembers();
}
if (GUILayout.Button("清空", (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(60f),
GUILayout.Height(20f)
}))
{
ClearSearchText();
}
GUILayout.EndHorizontal();
GUILayout.Space(10f);
GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.ExpandWidth(true),
GUILayout.Height(150f)
});
scrollPosition = GUILayout.BeginScrollView(scrollPosition, (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.ExpandWidth(true),
GUILayout.ExpandHeight(true)
});
foreach (string filteredMember in filteredMembers)
{
if (GUILayout.Button(filteredMember, (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.ExpandWidth(true),
GUILayout.Height(30f)
}))
{
selectedMemberName = filteredMember;
LoadMemberData(filteredMember);
}
}
GUILayout.EndScrollView();
GUILayout.EndVertical();
GUILayout.Space(10f);
GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
Vector2 val = GUILayout.BeginScrollView(Vector2.zero, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(750f) });
if (currentMode == 0)
{
if (currentMemberSubMode == 1)
{
GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
GUILayout.Label("官职: ", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(100f) });
GUIStyle val2 = new GUIStyle(GUI.skin.label);
val2.alignment = (TextAnchor)4;
GUILayout.Label(OfficialRankCodeToChinese(A_officialRankOriginal), val2, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(OfficialRankCodeToChinese(A_officialRank), val2, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.Space(32f);
GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(450f) });
string[] array = new string[7] { "6", "5", "4", "3", "2", "1", "0" };
string[] array2 = new string[7] { "一品", "二品", "三品", "四品", "五品", "六品", "七品" };
for (int i = 0; i < array.Length; i++)
{
if (GUILayout.Button(array2[i], (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(60f),
GUILayout.Height(20f)
}))
{
int num = 5;
int num2 = 0;
int num3 = -1;
A_officialRank = $"{num}@{array[i]}@{num2}@{num3}@{num3}";
Debug.Log((object)("生成的官职代码: " + A_officialRank));
Debug.Log((object)("对应的中文官职: " + OfficialRankCodeToChinese(A_officialRank)));
}
}
GUILayout.EndHorizontal();
GUILayout.EndHorizontal();
DrawAttributeRow("声誉:", ref A_reputationOriginal, ref A_reputation);
DrawAttributeRow("体力:", ref A_powerOriginal, ref A_power);
DrawAttributeRow("年龄:", ref A_ageOriginal, ref A_age);
DrawAttributeRow("健康:", ref A_healthOriginal, ref A_health);
DrawAttributeRow("心情:", ref A_moodOriginal, ref A_mood);
DrawAttributeRow("魅力:", ref A_charmOriginal, ref A_charm);
DrawAttributeRow("幸运:", ref A_luckOriginal, ref A_luck);
DrawAttributeRow("品性:", ref A_characterOriginal, ref A_character);
DrawAttributeRow("天赋:", ref A_talentOriginal, ref A_talent);
DrawAttributeRow("天赋点:", ref A_talentPointOriginal, ref A_talentPoint);
DrawAttributeRow("技能:", ref A_skillOriginal, ref A_skill);
DrawAttributeRow("技能点:", ref A_skillPointOriginal, ref A_skillPoint);
DrawAttributeRow("喜好:", ref A_preferenceOriginal, ref A_preference);
DrawAttributeRow("文才:", ref A_intelligenceOriginal, ref A_intelligence);
DrawAttributeRow("武才:", ref A_weaponOriginal, ref A_weapon);
DrawAttributeRow("商才:", ref A_businessOriginal, ref A_business);
DrawAttributeRow("艺才:", ref A_artOriginal, ref A_art);
DrawAttributeRow("计谋:", ref A_strategyOriginal, ref A_strategy);
DrawAttributeRow("爵位:", ref A_JueWeiOriginal, ref A_JueWei);
DrawAttributeRow("封地:", ref A_FengDiOriginal, ref A_FengDi);
}
else if (currentMemberSubMode == 2)
{
DrawAttributeRow("声誉:", ref B_reputationOriginal, ref B_reputation);
DrawAttributeRow("体力:", ref B_powerOriginal, ref B_power);
DrawAttributeRow("年龄:", ref B_ageOriginal, ref B_age);
DrawAttributeRow("健康:", ref B_healthOriginal, ref B_health);
DrawAttributeRow("心情:", ref B_moodOriginal, ref B_mood);
DrawAttributeRow("魅力:", ref B_charmOriginal, ref B_charm);
DrawAttributeRow("幸运:", ref B_luckOriginal, ref B_luck);
DrawAttributeRow("品性:", ref B_characterOriginal, ref B_character);
DrawAttributeRow("天赋:", ref B_talentOriginal, ref B_talent);
DrawAttributeRow("天赋点:", ref B_talentPointOriginal, ref B_talentPoint);
DrawAttributeRow("技能:", ref B_skillOriginal, ref B_skill);
DrawAttributeRow("技能点:", ref B_skillPointOriginal, ref B_skillPoint);
DrawAttributeRow("喜好:", ref B_preferenceOriginal, ref B_preference);
DrawAttributeRow("文才:", ref B_intelligenceOriginal, ref B_intelligence);
DrawAttributeRow("武才:", ref B_weaponOriginal, ref B_weapon);
DrawAttributeRow("商才:", ref B_businessOriginal, ref B_business);
DrawAttributeRow("艺才:", ref B_artOriginal, ref B_art);
DrawAttributeRow("计谋:", ref B_strategyOriginal, ref B_strategy);
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
GUILayout.Space(100f);
GUILayout.Label("族人妻妾特有属性", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
GUILayout.EndHorizontal();
}
}
else if (currentMode == 1)
{
DrawAttributeRow("声誉:", ref C_reputationOriginal, ref C_reputation);
DrawAttributeRow("体力:", ref C_powerOriginal, ref C_power);
DrawAttributeRow("年龄:", ref C_ageOriginal, ref C_age);
DrawAttributeRow("健康:", ref C_healthOriginal, ref C_health);
DrawAttributeRow("心情:", ref C_moodOriginal, ref C_mood);
DrawAttributeRow("魅力:", ref C_charmOriginal, ref C_charm);
DrawAttributeRow("幸运:", ref C_luckOriginal, ref C_luck);
DrawAttributeRow("品性:", ref C_characterOriginal, ref C_character);
DrawAttributeRow("天赋:", ref C_talentOriginal, ref C_talent);
DrawAttributeRow("天赋点:", ref C_talentPointOriginal, ref C_talentPoint);
DrawAttributeRow("技能:", ref C_skillOriginal, ref C_skill);
DrawAttributeRow("技能点:", ref C_skillPointOriginal, ref C_skillPoint);
DrawAttributeRow("文才:", ref C_intelligenceOriginal, ref C_intelligence);
DrawAttributeRow("武才:", ref C_weaponOriginal, ref C_weapon);
DrawAttributeRow("商才:", ref C_businessOriginal, ref C_business);
DrawAttributeRow("艺才:", ref C_artOriginal, ref C_art);
DrawAttributeRow("计谋:", ref C_strategyOriginal, ref C_strategy);
DrawAttributeRow("门客酬劳:", ref C_MenKe_RewardOriginal, ref C_MenKe_Reward);
}
GUILayout.EndScrollView();
GUILayout.EndVertical();
GUILayout.Space(10f);
GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
GUILayout.FlexibleSpace();
if (GUILayout.Button("修改按钮", (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(200f),
GUILayout.Height(50f)
}))
{
ApplyChanges();
}
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
GUILayout.Space(10f);
}
else
{
GUILayout.Space(20f);
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
GUIStyle val3 = new GUIStyle(GUI.skin.label);
val3.fontSize *= 2;
GUIStyle val4 = new GUIStyle(GUI.skin.box);
val4.fontSize *= 2;
GUILayout.Label("使用说明:", val4, Array.Empty<GUILayoutOption>());
GUILayout.Label("1. 请在点击修改前先保存游戏,以便回档", val3, Array.Empty<GUILayoutOption>());
GUILayout.Label("2. 按F3键显示/隐藏窗口", val3, Array.Empty<GUILayoutOption>());
GUILayout.Label("3. 选择修改类型:族人修改/门客修改", val3, Array.Empty<GUILayoutOption>());
GUILayout.Label("4. 族人模式下可选择:族人家族/族人妻妾", val3, Array.Empty<GUILayoutOption>());
GUILayout.Label("5. 输入部分字符可搜索角色", val3, Array.Empty<GUILayoutOption>());
GUILayout.Label("6. 选择角色后可以通过点击按钮或者直接在文本框中输入来修改对应的属性值", val3, Array.Empty<GUILayoutOption>());
GUILayout.Label("7. 点击修改按钮应用更改", val3, Array.Empty<GUILayoutOption>());
GUILayout.Label("", val3, Array.Empty<GUILayoutOption>());
GUILayout.Label("Mod作者:AnZhi20", val3, Array.Empty<GUILayoutOption>());
GUILayout.Label("Mod版本:1.3.0", val3, Array.Empty<GUILayoutOption>());
GUILayout.EndVertical();
}
GUILayout.EndVertical();
GUI.DragWindow();
}
private string SkillCodeToChinese(string skillCode)
{
if (string.IsNullOrEmpty(skillCode))
{
return "";
}
string text = "";
char[] array = skillCode.ToCharArray();
char[] array2 = array;
for (int i = 0; i < array2.Length; i++)
{
char c = array2[i];
text = c switch
{
'0' => text + "空",
'1' => text + "巫",
'2' => text + "医",
'3' => text + "相",
'4' => text + "卜",
'5' => text + "魅",
'6' => text + "工",
_ => text + c,
};
}
return text;
}
private string TalentCodeToChinese(string talentCode)
{
if (string.IsNullOrEmpty(talentCode))
{
return "";
}
string text = "";
char[] array = talentCode.ToCharArray();
char[] array2 = array;
for (int i = 0; i < array2.Length; i++)
{
char c = array2[i];
text = c switch
{
'0' => text + "空",
'1' => text + "文",
'2' => text + "武",
'3' => text + "商",
'4' => text + "艺",
_ => text + c,
};
}
return text;
}
private string PreferenceCodeToChinese(string preferenceCode)
{
if (string.IsNullOrEmpty(preferenceCode))
{
return "";
}
string text = "";
char[] array = preferenceCode.ToCharArray();
char[] array2 = array;
for (int i = 0; i < array2.Length; i++)
{
char c = array2[i];
text = c switch
{
'0' => text + "香粉、",
'1' => text + "书法、",
'2' => text + "丹青、",
'3' => text + "文玩、",
'4' => text + "茶具、",
'5' => text + "香具、",
'6' => text + "瓷器、",
'7' => text + "美酒、",
'8' => text + "琴瑟、",
'9' => text + "皮毛、",
_ => text + c + "、",
};
}
if (text.EndsWith("、"))
{
text = text.Substring(0, text.Length - 1);
}
return text;
}
private string CharacterCodeToChinese(string characterCode)
{
if (string.IsNullOrEmpty(characterCode))
{
return "";
}
return characterCode switch
{
"0" => "不明",
"1" => "傲娇",
"2" => "刚正",
"3" => "活泼",
"4" => "善良",
"5" => "真诚",
"6" => "洒脱",
"7" => "高冷",
"8" => "自卑",
"9" => "怯懦",
"10" => "腼腆",
"11" => "凶狠",
"12" => "善变",
"13" => "忧郁",
"14" => "多疑",
_ => characterCode,
};
}
private string OfficialRankCodeToChinese(string officialRankCode)
{
Debug.Log((object)("OfficialRankCodeToChinese 输入: " + officialRankCode));
string text = officialRankCode;
if (officialRankCode.Contains("|"))
{
text = officialRankCode.Split(new char[1] { '|' })[0];
Debug.Log((object)("提取|前面部分: " + text));
}
int num = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
try
{
string[] array = text.Split(new char[1] { '@' });
Debug.Log((object)("分割后部分数量: " + array.Length));
if (array.Length >= 5)
{
num = int.Parse(array[0]);
num2 = int.Parse(array[1]);
num3 = int.Parse(array[2]);
num4 = int.Parse(array[3]);
num5 = int.Parse(array[4]);
Debug.Log((object)$"解析后参数: i={num}, j={num2}, k={num3}, l={num4}, m={num5}");
string officialPosition = GuanZhiData.GetOfficialPosition(num, num2, num3, num4, num5);
Debug.Log((object)("GetOfficialPosition 返回: " + officialPosition));
return officialPosition;
}
Debug.Log((object)"部分数量不足5个");
}
catch (Exception ex)
{
Debug.LogError((object)("解析官职代码时出错: " + ex.Message));
}
Debug.Log((object)"返回默认值: 未知官职");
return "未知官职";
}
private string JueWeiCodeToChinese(string jueWeiCode)
{
if (string.IsNullOrEmpty(jueWeiCode))
{
return "";
}
return jueWeiCode switch
{
"0" => "空",
"1" => "伯爵",
"2" => "侯爵",
"3" => "公爵",
"4" => "王爵",
_ => jueWeiCode,
};
}
private string FengDiCodeToChinese(string fengDiCode)
{
if (string.IsNullOrEmpty(fengDiCode))
{
return "";
}
return fengDiCode switch
{
"0" => "无封地",
"1" => "南郡-汉阳",
"2" => "三川郡-左亭",
"3" => "蜀郡-华阳",
"4" => "丹阳郡-宛陵",
"5" => "陈留郡-长罗",
"6" => "长沙郡-安成",
"7" => "会稽郡-太末",
"8" => "广陵郡-盐渎",
"9" => "太原郡-霍人",
"10" => "益州郡-比苏",
"11" => "南海郡-新会",
"12" => "云南郡-越隽",
_ => fengDiCode,
};
}
private void DrawAttributeRow(string label, ref string originalValue, ref string currentValue)
{
//IL_004d: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Expected O, but got Unknown
//IL_036d: Unknown result type (might be due to invalid IL or missing references)
//IL_0374: Expected O, but got Unknown
//IL_04ec: Unknown result type (might be due to invalid IL or missing references)
//IL_04f3: Expected O, but got Unknown
//IL_059f: Unknown result type (might be due to invalid IL or missing references)
//IL_05d3: Expected O, but got Unknown
//IL_05ce: Unknown result type (might be due to invalid IL or missing references)
//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
//IL_05d5: Unknown result type (might be due to invalid IL or missing references)
//IL_016d: Unknown result type (might be due to invalid IL or missing references)
//IL_01a1: Expected O, but got Unknown
//IL_019c: Unknown result type (might be due to invalid IL or missing references)
//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
//IL_08d4: Unknown result type (might be due to invalid IL or missing references)
//IL_08db: Expected O, but got Unknown
//IL_05f7: Unknown result type (might be due to invalid IL or missing references)
//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
//IL_0c80: Unknown result type (might be due to invalid IL or missing references)
//IL_0c87: Expected O, but got Unknown
//IL_0626: Unknown result type (might be due to invalid IL or missing references)
//IL_062b: Unknown result type (might be due to invalid IL or missing references)
//IL_01f1: Unknown result type (might be due to invalid IL or missing references)
//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
//IL_0292: Unknown result type (might be due to invalid IL or missing references)
//IL_02c6: Expected O, but got Unknown
//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
//IL_02c6: Unknown result type (might be due to invalid IL or missing references)
//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
//IL_0f4b: Unknown result type (might be due to invalid IL or missing references)
//IL_0f52: Expected O, but got Unknown
//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
//IL_1177: Unknown result type (might be due to invalid IL or missing references)
//IL_117e: Expected O, but got Unknown
//IL_06c0: Unknown result type (might be due to invalid IL or missing references)
//IL_06f4: Expected O, but got Unknown
//IL_06ef: Unknown result type (might be due to invalid IL or missing references)
//IL_06f4: Unknown result type (might be due to invalid IL or missing references)
//IL_06f6: Unknown result type (might be due to invalid IL or missing references)
//IL_0319: Unknown result type (might be due to invalid IL or missing references)
//IL_031e: Unknown result type (might be due to invalid IL or missing references)
//IL_142d: Unknown result type (might be due to invalid IL or missing references)
//IL_1434: Expected O, but got Unknown
//IL_0718: Unknown result type (might be due to invalid IL or missing references)
//IL_1664: Unknown result type (might be due to invalid IL or missing references)
//IL_166b: Expected O, but got Unknown
//IL_0747: Unknown result type (might be due to invalid IL or missing references)
//IL_074c: Unknown result type (might be due to invalid IL or missing references)
//IL_07f9: Unknown result type (might be due to invalid IL or missing references)
//IL_082d: Expected O, but got Unknown
//IL_0828: Unknown result type (might be due to invalid IL or missing references)
//IL_082d: Unknown result type (might be due to invalid IL or missing references)
//IL_082f: Unknown result type (might be due to invalid IL or missing references)
//IL_1b80: Unknown result type (might be due to invalid IL or missing references)
//IL_1b87: Expected O, but got Unknown
//IL_1814: Unknown result type (might be due to invalid IL or missing references)
//IL_181b: Expected O, but got Unknown
//IL_0851: Unknown result type (might be due to invalid IL or missing references)
//IL_0880: Unknown result type (might be due to invalid IL or missing references)
//IL_0885: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
GUILayout.Label(label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(100f) });
if (label == "喜好:")
{
GUIStyle val = new GUIStyle(GUI.skin.label);
val.alignment = (TextAnchor)4;
GUILayout.Label(PreferenceCodeToChinese(originalValue), val, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(PreferenceCodeToChinese(currentValue), val, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.Space(32f);
GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(350f) });
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
string[] array = new string[5] { "0", "1", "2", "3", "4" };
string[] array2 = new string[5] { "香粉", "书法", "丹青", "文玩", "茶具" };
for (int i = 0; i < array.Length; i++)
{
Rect rect = GUILayoutUtility.GetRect(new GUIContent(array2[i]), GUI.skin.button, (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(60f),
GUILayout.Height(20f)
});
if (GUI.Button(rect, array2[i]))
{
currentValue = array[i];
}
if (((Rect)(ref rect)).Contains(Event.current.mousePosition))
{
showTooltip = true;
tooltipText = PreferenceCodeToChinese(array[i]);
tooltipPosition = Event.current.mousePosition;
}
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
string[] array3 = new string[5] { "5", "6", "7", "8", "9" };
string[] array4 = new string[5] { "香具", "瓷器", "美酒", "琴瑟", "皮毛" };
for (int j = 0; j < array3.Length; j++)
{
Rect rect2 = GUILayoutUtility.GetRect(new GUIContent(array4[j]), GUI.skin.button, (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(60f),
GUILayout.Height(20f)
});
if (GUI.Button(rect2, array4[j]))
{
currentValue = array3[j];
}
if (((Rect)(ref rect2)).Contains(Event.current.mousePosition))
{
showTooltip = true;
tooltipText = PreferenceCodeToChinese(array3[j]);
tooltipPosition = Event.current.mousePosition;
}
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
}
else
{
switch (label)
{
case "爵位:":
{
GUIStyle val8 = new GUIStyle(GUI.skin.label);
val8.alignment = (TextAnchor)4;
GUILayout.Label(JueWeiCodeToChinese(originalValue), val8, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(JueWeiCodeToChinese(currentValue), val8, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.Space(32f);
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
string[] array15 = new string[5] { "0", "1", "2", "3", "4" };
string[] array16 = new string[5] { "空", "伯爵", "侯爵", "公爵", "王爵" };
for (int num2 = 0; num2 < array15.Length; num2++)
{
if (GUILayout.Button(array16[num2], (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(60f),
GUILayout.Height(20f)
}))
{
currentValue = array15[num2];
}
}
GUILayout.EndHorizontal();
break;
}
case "封地:":
{
GUIStyle val7 = new GUIStyle(GUI.skin.label);
val7.alignment = (TextAnchor)4;
GUILayout.Label(FengDiCodeToChinese(originalValue), val7, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(FengDiCodeToChinese(currentValue), val7, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(380f) });
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
Rect rect3 = GUILayoutUtility.GetRect(new GUIContent("空"), GUI.skin.button, (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(60f),
GUILayout.Height(20f)
});
if (GUI.Button(rect3, "空"))
{
currentValue = "0";
}
if (((Rect)(ref rect3)).Contains(Event.current.mousePosition))
{
showTooltip = true;
tooltipText = FengDiCodeToChinese("0");
tooltipPosition = Event.current.mousePosition;
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
string[] array11 = new string[6] { "1", "2", "3", "4", "5", "6" };
string[] array12 = new string[6] { "汉阳", "左亭", "华阳", "宛陵", "长罗", "安成" };
for (int n = 0; n < array11.Length; n++)
{
Rect rect4 = GUILayoutUtility.GetRect(new GUIContent(array12[n]), GUI.skin.button, (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(60f),
GUILayout.Height(20f)
});
if (GUI.Button(rect4, array12[n]))
{
currentValue = array11[n];
}
if (((Rect)(ref rect4)).Contains(Event.current.mousePosition))
{
showTooltip = true;
tooltipText = FengDiCodeToChinese(array11[n]);
tooltipPosition = Event.current.mousePosition;
}
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
string[] array13 = new string[6] { "7", "8", "9", "10", "11", "12" };
string[] array14 = new string[6] { "太末", "盐渎", "霍人", "比苏", "新会", "越隽" };
for (int num = 0; num < array13.Length; num++)
{
Rect rect5 = GUILayoutUtility.GetRect(new GUIContent(array14[num]), GUI.skin.button, (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(60f),
GUILayout.Height(20f)
});
if (GUI.Button(rect5, array14[num]))
{
currentValue = array13[num];
}
if (((Rect)(ref rect5)).Contains(Event.current.mousePosition))
{
showTooltip = true;
tooltipText = FengDiCodeToChinese(array13[num]);
tooltipPosition = Event.current.mousePosition;
}
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
break;
}
case "品性:":
{
GUIStyle val6 = new GUIStyle(GUI.skin.label);
val6.alignment = (TextAnchor)4;
GUILayout.Label(CharacterCodeToChinese(originalValue), val6, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(CharacterCodeToChinese(currentValue), val6, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(300f) });
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
string[] array7 = new string[7] { "1", "2", "3", "4", "5", "6", "7" };
string[] array8 = new string[7] { "傲娇", "刚正", "活泼", "善良", "真诚", "洒脱", "高冷" };
for (int l = 0; l < array7.Length; l++)
{
if (!GUILayout.Button(array8[l], (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(40f),
GUILayout.Height(20f)
}))
{
continue;
}
currentValue = array7[l];
if (label == "品性:")
{
if (currentMode == 0 && currentMemberSubMode == 1)
{
A_character = array7[l];
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
B_character = array7[l];
}
else if (currentMode == 1)
{
C_character = array7[l];
}
}
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
string[] array9 = new string[7] { "8", "9", "10", "11", "12", "13", "14" };
string[] array10 = new string[7] { "自卑", "怯懦", "腼腆", "凶狠", "善变", "忧郁", "多疑" };
for (int m = 0; m < array9.Length; m++)
{
if (!GUILayout.Button(array10[m], (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(40f),
GUILayout.Height(20f)
}))
{
continue;
}
currentValue = array9[m];
if (label == "品性:")
{
if (currentMode == 0 && currentMemberSubMode == 1)
{
A_character = array9[m];
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
B_character = array9[m];
}
else if (currentMode == 1)
{
C_character = array9[m];
}
}
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
break;
}
case "技能:":
{
GUIStyle val3 = new GUIStyle(GUI.skin.label);
val3.alignment = (TextAnchor)4;
GUILayout.Label(SkillCodeToChinese(originalValue), val3, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(SkillCodeToChinese(currentValue), val3, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
string[] array5 = new string[7] { "0", "1", "2", "3", "4", "5", "6" };
string[] array6 = new string[7] { "空", "巫", "医", "相", "卜", "魅", "工" };
for (int k = 0; k < array5.Length; k++)
{
if (!GUILayout.Button(array6[k], (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(30f),
GUILayout.Height(25f)
}))
{
continue;
}
currentValue = array5[k];
if (currentMode == 0 && currentMemberSubMode == 1)
{
A_skill = array5[k];
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
B_skill = array5[k];
}
else if (currentMode == 1)
{
C_skill = array5[k];
}
if (string.IsNullOrEmpty(currentValue) || currentValue == "0")
{
if (currentMode == 0 && currentMemberSubMode == 1)
{
A_skillPoint = "0";
A_skillPointOriginal = "0";
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
B_skillPoint = "0";
B_skillPointOriginal = "0";
}
else if (currentMode == 1)
{
C_skillPoint = "0";
C_skillPointOriginal = "0";
}
}
}
GUILayout.EndHorizontal();
break;
}
case "技能点:":
{
GUIStyle val4 = new GUIStyle(GUI.skin.label);
val4.alignment = (TextAnchor)4;
GUILayout.Label(originalValue, val4, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(currentValue, val4, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
bool flag = false;
if (currentMode == 0 && currentMemberSubMode == 1)
{
flag = string.IsNullOrEmpty(A_skill) || A_skill == "0";
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
flag = string.IsNullOrEmpty(B_skill) || B_skill == "0";
}
else if (currentMode == 1)
{
flag = string.IsNullOrEmpty(C_skill) || C_skill == "0";
}
if (flag)
{
GUI.enabled = false;
GUILayout.TextField("0", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
GUI.enabled = true;
break;
}
string text2 = GUILayout.TextField(currentValue, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
if (text2 != currentValue)
{
currentValue = text2;
if (currentMode == 0 && currentMemberSubMode == 1)
{
A_skillPoint = text2;
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
B_skillPoint = text2;
}
else if (currentMode == 1)
{
C_skillPoint = text2;
}
}
break;
}
case "天赋:":
{
GUIStyle val9 = new GUIStyle(GUI.skin.label);
val9.alignment = (TextAnchor)4;
GUILayout.Label(TalentCodeToChinese(originalValue), val9, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(TalentCodeToChinese(currentValue), val9, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.Space(32f);
GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
string[] array17 = new string[5] { "0", "1", "2", "3", "4" };
string[] array18 = new string[5] { "空", "文", "武", "商", "艺" };
for (int num3 = 0; num3 < array17.Length; num3++)
{
if (!GUILayout.Button(array18[num3], (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(40f),
GUILayout.Height(25f)
}))
{
continue;
}
currentValue = array17[num3];
if (currentMode == 0 && currentMemberSubMode == 1)
{
A_talent = array17[num3];
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
B_talent = array17[num3];
}
else if (currentMode == 1)
{
C_talent = array17[num3];
}
if (string.IsNullOrEmpty(currentValue) || currentValue == "0")
{
if (currentMode == 0 && currentMemberSubMode == 1)
{
A_talentPoint = "0";
A_talentPointOriginal = "0";
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
B_talentPoint = "0";
B_talentPointOriginal = "0";
}
else if (currentMode == 1)
{
C_talentPoint = "0";
C_talentPointOriginal = "0";
}
}
}
GUILayout.EndHorizontal();
break;
}
case "天赋点:":
{
GUIStyle val11 = new GUIStyle(GUI.skin.label);
val11.alignment = (TextAnchor)4;
GUILayout.Label(originalValue, val11, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(currentValue, val11, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.Space(32f);
bool flag3 = false;
if (currentMode == 0 && currentMemberSubMode == 1)
{
flag3 = string.IsNullOrEmpty(A_talent) || A_talent == "0";
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
flag3 = string.IsNullOrEmpty(B_talent) || B_talent == "0";
}
else if (currentMode == 1)
{
flag3 = string.IsNullOrEmpty(C_talent) || C_talent == "0";
}
if (flag3)
{
GUI.enabled = false;
GUILayout.TextField("0", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
GUI.enabled = true;
break;
}
string text4 = GUILayout.TextField(currentValue, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
if (text4 != currentValue)
{
currentValue = text4;
if (currentMode == 0 && currentMemberSubMode == 1)
{
A_talentPoint = text4;
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
B_talentPoint = text4;
}
else if (currentMode == 1)
{
C_talentPoint = text4;
}
}
break;
}
case "喜好点:":
{
GUIStyle val5 = new GUIStyle(GUI.skin.label);
val5.alignment = (TextAnchor)4;
GUILayout.Label(originalValue, val5, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(currentValue, val5, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.Space(32f);
if (currentMode == 0)
{
bool flag2 = false;
if (currentMemberSubMode == 1)
{
flag2 = string.IsNullOrEmpty(A_preference);
}
else if (currentMemberSubMode == 2)
{
flag2 = string.IsNullOrEmpty(B_preference);
}
if (flag2)
{
GUI.enabled = false;
GUILayout.TextField("0", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
GUI.enabled = true;
}
break;
}
string text3 = GUILayout.TextField(currentValue, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
if (!(text3 != currentValue))
{
break;
}
currentValue = text3;
if (currentMode == 0)
{
if (currentMemberSubMode == 1)
{
A_preference = text3;
}
else if (currentMemberSubMode == 2)
{
B_preference = text3;
}
}
break;
}
case "喜好:":
{
GUIStyle val10 = new GUIStyle(GUI.skin.label);
val10.alignment = (TextAnchor)4;
GUILayout.Label(PreferenceCodeToChinese(originalValue), val10, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(PreferenceCodeToChinese(currentValue), val10, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
string[] array19 = new string[5] { "0", "1", "2", "3", "4" };
string[] array20 = new string[5] { "香粉", "书法", "丹青", "文玩", "茶具" };
for (int num4 = 0; num4 < array19.Length; num4++)
{
if (GUILayout.Button(array20[num4], (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(35f),
GUILayout.Height(20f)
}))
{
if (string.IsNullOrEmpty(currentValue) || !currentValue.Contains(array19[num4]))
{
currentValue += array19[num4];
}
else
{
currentValue = currentValue.Replace(array19[num4], "");
}
if (currentMode == 0 && currentMemberSubMode == 1)
{
A_preference = currentValue;
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
B_preference = currentValue;
}
}
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
string[] array21 = new string[5] { "5", "6", "7", "8", "9" };
string[] array22 = new string[5] { "香具", "瓷器", "美酒", "琴瑟", "皮毛" };
for (int num5 = 0; num5 < array21.Length; num5++)
{
if (GUILayout.Button(array22[num5], (GUILayoutOption[])(object)new GUILayoutOption[2]
{
GUILayout.Width(35f),
GUILayout.Height(20f)
}))
{
if (string.IsNullOrEmpty(currentValue) || !currentValue.Contains(array21[num5]))
{
currentValue += array21[num5];
}
else
{
currentValue = currentValue.Replace(array21[num5], "");
}
if (currentMode == 0 && currentMemberSubMode == 1)
{
A_preference = currentValue;
}
else if (currentMode == 0 && currentMemberSubMode == 2)
{
B_preference = currentValue;
}
}
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
break;
}
default:
{
GUIStyle val2 = new GUIStyle(GUI.skin.label);
val2.alignment = (TextAnchor)4;
GUILayout.Label(originalValue, val2, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(60f) });
GUILayout.Space(32f);
GUILayout.Label("→", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(20f) });
GUILayout.Space(40f);
GUILayout.Label(currentValue, val2, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) });
GUILayout.Space(32f);
string text = GUILayout.TextField(currentValue, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
if (!(text != currentValue))
{
break;
}
currentValue = text;
if (currentMode == 0)
{
if (currentMemberSubMode == 1)
{
switch (label)
{
case "幸运:":
A_luck = currentValue;
break;
case "天赋:":
A_talent = currentValue;
break;
case "技能:":
A_skill = currentValue;
break;
case "喜好:":
A_preference = currentValue;
break;
case "品性:":
A_character = currentValue;
break;
case "天赋点:":
A_talentPoint = currentValue;
break;
case "技能点:":
A_skillPoint = currentValue;
break;
}
}
else if (currentMemberSubMode == 2)
{
switch (label)
{
case "幸运:":
B_luck = currentValue;
break;
case "天赋:":
B_talent = currentValue;
break;
case "技能:":
B_skill = currentValue;
break;
case "喜好:":
B_preference = currentValue;
break;
case "品性:":
B_character = currentValue;
break;
case "天赋点:":
B_talentPoint = currentValue;
break;
case "技能点:":
B_skillPoint = currentValue;
break;
}
}
}
else if (currentMode == 1)
{
switch (label)
{
case "幸运:":
C_luck = currentValue;
break;
case "天赋:":
C_talent = currentValue;
break;
case "技能:":
C_skill = currentValue;
break;
case "品性:":
C_character = currentValue;
break;
case "天赋点:":
C_talentPoint = currentValue;
break;
case "技能点:":
C_skillPoint = currentValue;
break;
}
}
break;
}
}
}
GUILayout.EndHorizontal();
}
private void FilterMembers()
{
try
{
filteredMembers.Clear();
if (currentMode == 0)
{
if (currentMemberSubMode == 0)
{
return;
}
bool flag = Mainload.Member_now != null && Mainload.Member_now.Count > 0;
bool flag2 = Mainload.Member_qu != null && Mainload.Member_qu.Count > 0;
if (!flag && !flag2)
{
((BaseUnityPlugin)this).Logger.LogWarning((object)"没有找到任何族人数据");
return;
}
if (currentMemberSubMode == 1)
{
SearchMemberData(Mainload.Member_now, 4);
}
if (currentMemberSubMode == 2)
{
SearchMemberData(Mainload.Member_qu, 2);
}
}
else if (currentMode == 1)
{
SearchMemberData(Mainload.MenKe_Now, 2);
}
filteredMembers.Sort();
}
catch (Exception ex)
{
((BaseUnityPlugin)this).Logger.LogError((object)$"筛选成员时出错: {ex.Message}");
filteredMembers.Clear();
}
}
private void SearchMemberData(List<List<string>> dataList, int nameFieldIndex)
{
if (dataList == null || dataList.Count == 0)
{
return;
}
foreach (List<string> data in dataList)
{
try
{
if (data == null || data.Count <= nameFieldIndex)
{
continue;
}
string text = data[nameFieldIndex];
if (!string.IsNullOrEmpty(text))
{
string[] array = text.Split(new char[1] { '|' });
if (array.Length != 0 && !string.IsNullOrEmpty(array[0]))
{
AddMemberIfMatches(array[0]);
}
}
}
catch (Exception ex)
{
((BaseUnityPlugin)this).Logger.LogError((object)$"处理成员数据时出错: {ex.Message}");
}
}
}
private void AddMemberIfMatches(string name)
{
if (string.IsNullOrEmpty(searchText))
{
filteredMembers.Add(name);
}
else if (name.IndexOf(searchText, StringComparison.OrdinalIgnoreCase) >= 0)
{
filteredMembers.Add(name);
}
}
private void ClearSearchText()
{
searchText = "";
FilterMembers();
}
private void ResetAttributeValues()
{
A_reputation = "0";
A_reputationOriginal = "0";
A_title = "0";
A_titleOriginal = "0";
A_power = "0";
A_powerOriginal = "0";
A_age = "0";
A_ageOriginal = "0";
A_health = "0";
A_healthOriginal = "0";
A_mood = "0";
A_moodOriginal = "0";
A_charm = "0";
A_charmOriginal = "0";
A_luck = "0";
A_luckOriginal = "0";
A_preference = "0";
A_preferenceOriginal = "0";
A_character = "0";
A_characterOriginal = "0";
A_talent = "0";
A_talentOriginal = "0";
A_talentPoint = "0";
A_talentPointOriginal = "0";
A_skill = "0";
A_skillOriginal = "0";
A_skillPoint = "0";
A_skillPointOriginal = "0";
A_JueWei = "0";
A_JueWeiOriginal = "0";
A_FengDi = "0";
A_FengDiOriginal = "0";
A_officialRank = "0@0@0@-1@-1";
A_officialRankOriginal = "0@0@0@-1@-1";
B_reputation = "0";
B_reputationOriginal = "0";
B_power = "0";
B_powerOriginal = "0";
B_age = "0";
B_ageOriginal = "0";
B_health = "0";
B_healthOriginal = "0";
B_mood = "0";
B_moodOriginal = "0";
B_charm = "0";
B_charmOriginal = "0";
B_luck = "0";
B_luckOriginal = "0";
B_preference = "0";
B_preferenceOriginal = "0";
B_character = "0";
B_characterOriginal = "0";
B_talent = "0";
B_talentOriginal = "0";
B_talentPoint = "0";
B_talentPointOriginal = "0";
B_skill = "0";
B_skillOriginal = "0";
B_skillPoint = "0";
B_skillPointOriginal = "0";
C_reputation = "0";
C_reputationOriginal = "0";
C_power = "0";
C_powerOriginal = "0";
C_age = "0";
C_ageOriginal = "0";
C_health = "0";
C_healthOriginal = "0";
C_mood = "0";
C_moodOriginal = "0";
C_charm = "0";
C_charmOriginal = "0";
C_luck = "0";
C_luckOriginal = "0";
C_character = "0";
C_characterOriginal = "0";
C_talent = "0";
C_talentOriginal = "0";
C_talentPoint = "0";
C_talentPointOriginal = "0";
C_skill = "0";
C_skillOriginal = "0";
C_skillPoint = "0";
C_skillPointOriginal = "0";
C_intelligence = "0";
C_intelligenceOriginal = "0";
C_weapon = "0";
C_weaponOriginal = "0";
C_business = "0";
C_businessOriginal = "0";
C_art = "0";
C_artOriginal = "0";
C_strategy = "0";
C_strategyOriginal = "0";
C_MenKe_Reward = "0";
C_MenKe_RewardOriginal = "0";
selectedMemberName = "";
currentDataIndex = -1;
Member_nowData = null;
Member_quData = null;
Member_MenKeData = null;
}
private void LoadMemberData(string memberName)
{
try
{
if (currentMode == 0)
{
bool flag = false;
currentDataIndex = -1;
if ((currentMemberSubMode == 0 || currentMemberSubMode == 1) && Mainload.Member_now != null)
{
for (int i = 0; i < Mainload.Member_now.Count; i++)
{
Member_nowData = Mainload.Member_now[i];
string[] array = Member_nowData[4].Split(new char[1] { '|' });
string text = array[0];
if (text == memberName)
{
if (Member_nowData.Count > 12 && !string.IsNullOrEmpty(Member_nowData[12]))
{
A_officialRank = Member_nowData[12];
}
A_officialRankOriginal = A_officialRank;
A_reputation = Member_nowData[16];
A_reputationOriginal = A_reputation;
A_power = Member_nowData[30];
A_powerOriginal = A_power;
A_age = Member_nowData[6];
A_ageOriginal = A_age;
A_health = Member_nowData[21];
A_healthOriginal = A_health;
A_mood = Member_nowData[11];
A_moodOriginal = A_mood;
A_charm = Member_nowData[20];
A_charmOriginal = A_charm;
A_luck = ((array.Length > 7) ? array[7] : "0");
A_luckOriginal = A_luck;
A_character = Member_nowData[5];
A_characterOriginal = A_character;
A_talent = ((array.Length > 2) ? array[2] : "0");
A_talentOriginal = A_talent;
A_talentPoint = ((array.Length > 3) ? array[3] : "0");
A_talentPointOriginal = A_talentPoint;
A_skill = ((array.Length > 6) ? array[6] : "0");
A_skillOriginal = A_skill;
A_skillPoint = Member_nowData[33];
A_skillPointOriginal = A_skillPoint;
A_preference = ((array.Length > 9) ? array[9] : "0");
A_preferenceOriginal = A_preference;
A_intelligence = Member_nowData[7];
A_intelligenceOriginal = A_intelligence;
A_weapon = Member_nowData[8];
A_weaponOriginal = A_weapon;
A_business = Member_nowData[9];
A_businessOriginal = A_business;
A_art = Member_nowData[10];
A_artOriginal = A_art;
A_strategy = Member_nowData[27];
A_strategyOriginal = A_strategy;
string[] array2 = Member_nowData[14].Split(new char[1] { '|' });
A_JueWei = ((array2.Length != 0) ? array2[0] : "0");
A_JueWeiOriginal = A_JueWei;
A_FengDi = ((array2.Length > 1) ? array2[1] : "0");
A_FengDiOriginal = A_FengDi;
flag = true;
currentDataIndex = i;
break;
}
}
}
if (flag || currentMode != 0 || currentMemberSubMode != 2 || Mainload.Member_qu == null)
{
return;
}
for (int j = 0; j < Mainload.Member_qu.Count; j++)
{
Member_quData = Mainload.Member_qu[j];
string[] array3 = Member_quData[2].Split(new char[1] { '|' });
string text2 = array3[0];
if (text2 == memberName)
{
B_reputation = Member_quData[12];
B_reputationOriginal = B_reputation;
B_power = Member_quData[20];
B_powerOriginal = B_power;
B_age = Member_quData[5];
B_ageOriginal = B_age;
B_health = Member_quData[16];
B_healthOriginal = B_health;
B_mood = Member_quData[10];
B_moodOriginal = B_mood;
B_charm = Member_quData[15];
B_charmOriginal = B_charm;
B_luck = ((array3.Length > 7) ? array3[7] : "0");
B_luckOriginal = B_luck;
B_character = ((array3.Length > 8) ? array3[8] : "0");
B_characterOriginal = B_character;
B_preference = ((array3.Length > 10) ? array3[10] : "0");
B_preferenceOriginal = B_preference;
B_talent = ((array3.Length > 2) ? array3[2] : "0");
B_talentOriginal = B_talent;
B_talentPoint = ((array3.Length > 3) ? array3[3] : "0");
B_talentPointOriginal = B_talentPoint;
B_skill = ((array3.Length > 6) ? array3[6] : "0");
B_skillOriginal = B_skill;
B_skillPoint = Member_quData[23];
B_skillPointOriginal = B_skillPoint;
B_intelligence = Member_quData[6];
B_intelligenceOriginal = B_intelligence;
B_weapon = Member_quData[7];
B_weaponOriginal = B_weapon;
B_business = Member_quData[8];
B_businessOriginal = B_business;
B_art = Member_quData[9];
B_artOriginal = B_art;
B_strategy = Member_quData[19];
B_strategyOriginal = B_strategy;
flag = true;
currentDataIndex = j;
break;
}
}
}
else
{
if (currentMode != 1 || Mainload.MenKe_Now == null)
{
return;
}
for (int k = 0; k < Mainload.MenKe_Now.Count; k++)
{
Member_MenKeData = Mainload.MenKe_Now[k];
string[] array4 = Member_MenKeData[2].Split(new char[1] { '|' });
string text3 = array4[0];
if (text3 == memberName)
{
C_reputation = Member_MenKeData[11];
C_reputationOriginal = C_reputation;
C_power = Member_MenKeData[19];
C_powerOriginal = C_power;
C_age = Member_MenKeData[3];
C_ageOriginal = C_age;
C_health = Member_MenKeData[14];
C_healthOriginal = C_health;
C_mood = Member_MenKeData[8];
C_moodOriginal = C_mood;
C_charm = Member_MenKeData[13];
C_charmOriginal = C_charm;
string[] array5 = Member_MenKeData[2].Split(new char[1] { '|' });
C_luck = ((array5.Length > 7) ? array5[7] : "0");
C_luckOriginal = C_luck;
C_character = ((array5.Length > 8) ? array5[8] : "0");
C_characterOriginal = C_character;
C_talent = ((array4.Length > 2) ? array4[2] : "0");
C_talentOriginal = C_talent;
C_talentPoint = ((array4.Length > 3) ? array4[3] : "0");
C_talentPointOriginal = C_talentPoint;
C_skill = ((array4.Length > 6) ? array4[6] : "0");
C_skillOriginal = C_skill;
C_skillPoint = Member_MenKeData[16];
C_skillPointOriginal = C_skillPoint;
C_intelligence = Member_MenKeData[4];
C_intelligenceOriginal = C_intelligence;
C_weapon = Member_MenKeData[5];
C_weaponOriginal = C_weapon;
C_business = Member_MenKeData[6];
C_businessOriginal = C_business;
C_art = Member_MenKeData[7];
C_artOriginal = C_art;
C_strategy = Member_MenKeData[15];
C_strategyOriginal = C_strategy;
C_MenKe_Reward = Member_MenKeData[18];
C_MenKe_RewardOriginal = C_MenKe_Reward;
currentDataIndex = k;
break;
}
}
}
}
catch (Exception ex)
{
((BaseUnityPlugin)this).Logger.LogError((object)$"加载{memberName}数据时出错: {ex.Message}");
}
}
private void ApplyChanges()
{
try
{
if (!string.IsNullOrEmpty(selectedMemberName) && currentDataIndex >= 0)
{
switch (currentMode)
{
case 0:
ApplyClanMemberChanges();
break;
case 1:
ApplyMenKeModeChanges();
break;
}
}
}
catch (Exception ex)
{
((BaseUnityPlugin)this).Logger.LogError((object)$"应用{selectedMemberName}属性修改时出错: {ex.Message}");
}
}
private void ApplyClanMemberChanges()
{
switch (currentMemberSubMode)
{
case 1:
if (Mainload.Member_now != null && currentDataIndex < Mainload.Member_now.Count)
{
bool flag5 = string.IsNullOrEmpty(A_talent) || A_talent == "0";
bool flag6 = !string.IsNullOrEmpty(A_talentPoint) && A_talentPoint != "0";
bool flag7 = string.IsNullOrEmpty(A_skill) || A_skill == "0";
bool flag8 = !string.IsNullOrEmpty(A_skillPoint) && A_skillPoint != "0";
if (flag5 && flag6)
{
ShowErrorMessage("天赋为空,天赋点不为零");
}
else if (flag7 && flag8)
{
ShowErrorMessage("技能为空,技能点不为零");
}
else
{
ApplyClanFamilyChanges();
}
}
break;
case 2:
if (Mainload.Member_qu != null && currentDataIndex < Mainload.Member_qu.Count)
{
bool flag = string.IsNullOrEmpty(B_talent) || B_talent == "0";
bool flag2 = !string.IsNullOrEmpty(B_talentPoint) && B_talentPoint != "0";
bool flag3 = string.IsNullOrEmpty(B_skill) || B_skill == "0";
bool flag4 = !string.IsNullOrEmpty(B_skillPoint) && B_skillPoint != "0";
if (flag && flag2)
{
ShowErrorMessage("天赋为空,天赋点不为零");
}
else if (flag3 && flag4)
{
ShowErrorMessage("技能为空,技能点不为零");
}
else
{
ApplyClanSpouseChanges();
}
}
break;
}
}
private void ApplyMenKeModeChanges()
{
if (Mainload.MenKe_Now != null && !string.IsNullOrEmpty(selectedMemberName) && currentDataIndex < Mainload.MenKe_Now.Count)
{
bool flag = string.IsNullOrEmpty(C_talent) || C_talent == "0";
bool flag2 = !string.IsNullOrEmpty(C_talentPoint) && C_talentPoint != "0";
bool flag3 = string.IsNullOrEmpty(C_skill) || C_skill == "0";
bool flag4 = !string.IsNullOrEmpty(C_skillPoint) && C_skillPoint != "0";
if (flag && flag2)
{
ShowErrorMessage("天赋为空,天赋点不为零");
}
else if (flag3 && flag4)
{
ShowErrorMessage("技能为空,技能点不为零");
}
else
{
ApplyMenKeChanges();
}
}
}
private void ShowErrorMessage(string errorReason)
{
((BaseUnityPlugin)this).Logger.LogWarning((object)$"{selectedMemberName}的{errorReason},已阻止修改");
if (Mainload.Tip_Show != null)
{
Mainload.Tip_Show.Add(new List<string>
{
"1",
$"【{selectedMemberName}】的{errorReason},修改失败"
});
}
}
private void ApplyClanFamilyChanges()
{
Member_nowData = Mainload.Member_now[currentDataIndex];
string[] memberInfo = Member_nowData[4].Split(new char[1] { '|' });
try
{
UpdateClanFamilyBasicAttributes(Member_nowData);
UpdateClanFamilyExtendedAttributes(Member_nowData);
memberInfo = UpdateClanFamilyNestedAttributes(memberInfo);
Member_nowData[4] = string.Join("|", memberInfo);
HandleClanFamilyTitleAndLand(Member_nowData);
if (UnlockFengDiIfNeeded())
{
ShowSuccessMessage("族人家族");
}
}
catch (Exception ex)
{
((BaseUnityPlugin)this).Logger.LogError((object)$"应用族人家族{selectedMemberName}的属性修改时出错: {ex.Message}");
}
}
private void UpdateClanFamilyBasicAttributes(List<string> memberData)
{
memberData[5] = A_character;
memberData[6] = A_age;
memberData[7] = A_intelligence;
memberData[8] = A_weapon;
memberData[9] = A_business;
memberData[10] = A_art;
memberData[11] = A_mood;
if (memberData.Count > 12)
{
string text = memberData[12];
string text2 = "";
if (text.Contains("|"))
{
string[] array = text.Split(new char[1] { '|' });
if (array.Length > 1)
{
text2 = "|" + array[1];
}
}
memberData[12] = A_officialRank + text2;
}
memberData[16] = A_reputation;
memberData[20] = A_charm;
memberData[21] = A_health;
memberData[27] = A_strategy;
memberData[30] = A_power;
}
private void UpdateClanFamilyExtendedAttributes(List<string> memberData)
{
memberData[33] = A_skillPoint;
}
private string[] UpdateClanFamilyNestedAttributes(string[] memberInfo)
{
int num = 10;
string[] array = memberInfo;
if (memberInfo.Length < num)
{
array = new string[num];
memberInfo.CopyTo(array, 0);
for (int i = memberInfo.Length; i < num; i++)
{
array[i] = "0";
}
}
array[2] = A_talent ?? "0";
array[3] = A_talentPoint ?? "0";
array[6] = A_skill ?? "0";
array[7] = A_luck ?? "0";
array[9] = A_preference ?? "0";
return array;
}
private void HandleClanFamilyTitleAndLand(List<string> memberData)
{
memberData[14] = (string.IsNullOrEmpty(A_FengDi) ? A_JueWei : (A_JueWei + "|" + A_FengDi));
}
private void ShowSuccessMessage(string memberType)
{
if (Mainload.Tip_Show != null)
{
Mainload.Tip_Show.Add(new List<string>
{
"1",
$"【{selectedMemberName}】属性修改成功"
});
if (memberType == "族人家族" && !string.IsNullOrEmpty(A_FengDi) && A_FengDi != "0")
{
string arg = FengDiCodeToChinese(A_FengDi);
Mainload.Tip_Show.Add(new List<string>
{
"1",
$"封地【{arg}】解锁成功"
});
}
}
((BaseUnityPlugin)this).Logger.LogInfo((object)$"成功应用{memberType}{selectedMemberName}的属性修改");
}
private void ApplyClanSpouseChanges()
{
try
{
if (Mainload.Member_qu != null && currentDataIndex >= 0 && currentDataIndex < Mainload.Member_qu.Count)
{
Member_quData = new List<string>(Mainload.Member_qu[currentDataIndex]);
string[] memberInfo = Member_quData[2].Split(new char[1] { '|' });
UpdateClanSpouseBasicAttributes(Member_quData);
UpdateClanSpouseExtendedAttributes(Member_quData);
memberInfo = UpdateClanSpouseNestedAttributes(memberInfo);
Member_quData[2] = string.Join("|", memberInfo);
List<string> value = new List<string>(Member_quData);
Mainload.Member_qu[currentDataIndex] = value;
if (Mainload.Tip_Show != null)
{
Mainload.Tip_Show.Add(new List<string>
{
"1",
$"【{selectedMemberName}】属性修改成功"
});
}
((BaseUnityPlugin)this).Logger.LogInfo((object)$"成功应用族人妻妾{selectedMemberName}的属性修改");
}
else
{
((BaseUnityPlugin)this).Logger.LogError((object)"Mainload.Member_qu集合无效或索引超出范围");
}
}
catch (Exception ex)
{
((BaseUnityPlugin)this).Logger.LogError((object)$"应用族人妻妾{selectedMemberName}的属性修改时出错: {ex.Message}");
}
}
private void UpdateClanSpouseBasicAttributes(List<string> memberData)
{
memberData[5] = B_age;
memberData[6] = B_intelligence;
memberData[7] = B_weapon;
memberData[8] = B_business;
memberData[9] = B_art;
memberData[10] = B_mood;
memberData[12] = B_reputation;
memberData[15] = B_charm;
memberData[16] = B_health;
memberData[19] = B_strategy;
memberData[20] = B_power;
}
private void UpdateClanSpouseExtendedAttributes(List<string> memberData)
{
memberData[23] = B_skillPoint;
}
private string[] UpdateClanSpouseNestedAttributes(string[] memberInfo)
{
int num = 11;
string[] array = memberInfo;
if (memberInfo.Length < num)
{
array = new string[num];
memberInfo.CopyTo(array, 0);
for (int i = memberInfo.Length; i < num; i++)
{
array[i] = "0";
}
}
array[2] = B_talent ?? "0";
array[3] = B_talentPoint ?? "0";
array[6] = B_skill ?? "0";
array[7] = B_luck ?? "0";
array[8] = B_character ?? "0";
array[10] = B_preference ?? "0";
return array;
}
private void ApplyMenKeChanges()
{
Member_MenKeData = Mainload.MenKe_Now[currentDataIndex];
string[] memberInfo = Member_MenKeData[2].Split(new char[1] { '|' });
try
{
UpdateMenKeBasicAttributes(Member_MenKeData);
UpdateMenKeExtendedAttributes(Member_MenKeData);
memberInfo = UpdateMenKeNestedAttributes(memberInfo);
Member_MenKeData[2] = string.Join("|", memberInfo);
if (Mainload.Tip_Show != null)
{
Mainload.Tip_Show.Add(new List<string>
{
"1",
$"【{selectedMemberName}】属性修改成功"
});
}
((BaseUnityPlugin)this).Logger.LogInfo((object)$"成功应用门客{selectedMemberName}的属性修改");
}
catch (Exception ex)
{
((BaseUnityPlugin)this).Logger.LogError((object)$"应用门客{selectedMemberName}的属性修改时出错: {ex.Message}");
}
}
private void UpdateMenKeBasicAttributes(List<string> memberData)
{
memberData[11] = C_reputation;
memberData[19] = C_power;
memberData[3] = C_age;
memberData[14] = C_health;
memberData[8] = C_mood;
memberData[13] = C_charm;
memberData[16] = C_skillPoint;
memberData[18] = C_MenKe_Reward;
}
private void UpdateMenKeExtendedAttributes(List<string> memberData)
{
memberData[4] = C_intelligence;
memberData[5] = C_weapon;
memberData[6] = C_business;
memberData[7] = C_art;
memberData[15] = C_strategy;
}
private string[] UpdateMenKeNestedAttributes(string[] memberInfo)
{
int num = 9;
string[] array = memberInfo;
if (memberInfo.Length < num)
{
array = new string[num];
memberInfo.CopyTo(array, 0);
for (int i = memberInfo.Length; i < num; i++)
{
array[i] = "0";
}
}
array[2] = C_talent ?? "0";
array[3] = C_talentPoint ?? "0";
array[6] = C_skill ?? "0";
array[7] = C_luck ?? "0";
array[8] = C_character ?? "0";
return array;
}
private bool UnlockFengDiIfNeeded()
{
bool flag = true;
if (!string.IsNullOrEmpty(A_FengDi) && A_FengDi != "0")
{
try
{
int num = int.Parse(A_FengDi);
string arg = FengDiCodeToChinese(A_FengDi);
if (num >= 1 && num <= 12 && Mainload.Fengdi_now != null && Mainload.Fengdi_now.Count > num)
{
List<string> list = Mainload.Fengdi_now[num];
if (list != null && list.Count > 0)
{
if (list[0] == "0")
{
bool flag2 = true;
try
{
if (Member_nowData != null && Member_nowData.Count > 14)
{
string[] array = Member_nowData[14].Split(new char[1] { '|' });
if (array.Length > 1)
{
int num2 = int.Parse(array[1]);
object obj = typeof(Mainload).GetField("CityData_now", BindingFlags.Static | BindingFlags.Public)?.GetValue(null);
if (obj != null && num2 >= 0 && obj is IList list2 && num2 < list2.Count)
{
object obj2 = list2[num2];
if (obj2 is IList list3 && list3.Count > 0)
{
string text = list3[0] as string;
if (!string.IsNullOrEmpty(text))
{
string[] array2 = text.Split(new char[1] { '|' });
if (array2.Length != 0)
{
string text2 = array2[0];
if (text2 != "-1")
{
flag2 = false;
((BaseUnityPlugin)this).Logger.LogInfo((object)$"封地{arg}所在郡城已有势力控制,无法解锁");
}
}
}
}
}
}
}
}
catch (Exception ex)
{
((BaseUnityPlugin)this).Logger.LogWarning((object)$"检查郡城势力时出错: {ex.Message},将继续解锁封地");
}
if (flag2)
{
list[0] = "1";
if (list[0] != "1")
{
flag = false;
((BaseUnityPlugin)this).Logger.LogError((object)$"解锁封地失败: {arg}");
}
else
{
((BaseUnityPlugin)this).Logger.LogInfo((object)$"已解锁封地: {arg}");
}
}
else
{
flag = false;
((BaseUnityPlugin)this).Logger.LogError((object)$"郡城已有势力控制,无法解锁封地: {arg}");
}
}
else
{
((BaseUnityPlugin)this).Logger.LogInfo((object)$"封地{arg}已解锁,无需再次解锁");
}
}
else
{
flag = false;
((BaseUnityPlugin)this).Logger.LogError((object)$"封地数据无效: {arg}");
}
}
else
{
flag = false;
((BaseUnityPlugin)this).Logger.LogError((object)$"无效的封地索引: {num}");
}
}
catch (Exception ex2)
{
flag = false;
((BaseUnityPlugin)this).Logger.LogError((object)$"解锁封地时出错: {ex2.Message}");
}
}
if (!flag)
{
string arg2 = FengDiCodeToChinese(A_FengDi);
if (Mainload.Tip_Show != null)
{
Mainload.Tip_Show.Add(new List<string>
{
"1",
$"{arg2}封地解锁失败,修改失败"
});
}
((BaseUnityPlugin)this).Logger.LogError((object)$"{arg2}封地解锁失败,已阻止属性修改");
}
return flag;
}
private bool ApplyClanMemberChanges(List<List<string>> memberDataList)
{
return false;
}
}
}
namespace HoLMod
{
public class GuanZhiData
{
public static List<List<List<List<List<int>>>>> GuanZhi = new List<List<List<List<List<int>>>>>
{
new List<List<List<List<int>>>>(),
new List<List<List<List<int>>>>
{
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>()
},
new List<List<List<List<int>>>>
{
new List<List<List<int>>>()
},
new List<List<List<List<int>>>>
{
new List<List<List<int>>>()
},
new List<List<List<List<int>>>>(),
new List<List<List<List<int>>>>
{
new List<List<List<int>>>
{
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>()
},
new List<List<List<int>>>
{
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>()
},
new List<List<List<int>>>
{
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>()
},
new List<List<List<int>>>
{
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>()
},
new List<List<List<int>>>
{
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>()
},
new List<List<List<int>>>
{
new List<List<int>>(),
new List<List<int>>(),
new List<List<int>>()
},
new List<List<List<int>>>
{
new List<List<int>>(),
new List<List<int>>()
}
},
new List<List<List<List<int>>>>
{
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>(),
new List<List<List<int>>>()
}
};
public static string[] JunList = new string[12]
{
"南郡", "三川郡", "蜀郡", "丹阳郡", "陈留郡", "长沙郡", "会稽郡", "广陵郡", "太原郡", "益州郡",
"南海郡", "云南郡"
};
public static string[][] XianList = new string[12][]
{
new string[8] { "临沮", "襄樊", "宜城", "麦城", "华容", "郢亭", "江陵", "夷陵" },
new string[6] { "平阳", "荥阳", "原武", "阳武", "新郑", "宜阳" },
new string[6] { "邛崃", "郫县", "什邡", "绵竹", "新都", "成都" },
new string[6] { "秣陵", "江乘", "江宁", "溧阳", "建邺", "永世" },
new string[6] { "长垣", "济阳", "成武", "襄邑", "宁陵", "封丘" },
new string[8] { "零陵", "益阳", "湘县", "袁州", "庐陵", "衡山", "建宁", "桂阳" },
new string[4] { "曲阿", "松江", "山阴", "余暨" },
new string[4] { "平安", "射阳", "海陵", "江都" },
new string[8] { "大陵", "晋阳", "九原", "石城", "阳曲", "魏榆", "孟县", "中都" },
new string[8] { "连然", "谷昌", "同劳", "昆泽", "滇池", "俞元", "胜休", "南安" },
new string[6] { "四会", "阳山", "龙川", "揭岭", "罗阳", "善禺" },
new string[8] { "云平", "叶榆", "永宁", "遂久", "姑复", "蜻陵", "弄栋", "邪龙" }
};
public static string GetOfficialPosition(int i, int j, int k, int l, int m)
{
if (i == 0)
{
return "未知官职";
}
try
{
bool flag = false;
if (i == 5)
{
if (j >= 0 && j < GuanZhi[i].Count && k >= 0 && k < GuanZhi[i][j].Count)
{
flag = true;
}
}
else if (i < GuanZhi.Count && j < GuanZhi[i].Count && k < GuanZhi[i][j].Count)
{
flag = l == -1 || (GuanZhi[i][j].Count > 0 && l < GuanZhi[i][j][k].Count);
if (flag && l != -1 && m != -1)
{
flag = GuanZhi[i][j][k].Count > 0 && m < GuanZhi[i][j][k][l].Count;
}
}
if (flag)
{
switch (i)
{
case 1:
return j switch
{
0 => "都马",
1 => "世子妃",
2 => "王妃",
3 => "驸马",
4 => "皇子妃",
5 => "皇后",
6 => "太后",
7 => "太妃",
8 => "皇妃",
_ => "未知皇家官职",
};
case 2:
return "商会代表";
case 3:
return "内宫宦臣";
case 5:
if (j == 0 && k == 0)
{
return "七品散官";
}
if (j == 0 && k == 1 && l >= 0 && l < JunList.Length && m >= 0 && m < XianList[l].Length)
{
return JunList[l] + XianList[l][m] + "县丞";
}
if (j == 0 && k == 2 && l >= 0 && l < JunList.Length && m >= 0 && m < XianList[l].Length)
{
return JunList[l] + XianList[l][m] + "县尉";
}
if (j == 0 && k == 3)
{
return "翊麾校尉";
}
if (j == 1 && k == 0)
{
return "六品散官";
}
if (j == 1 && k == 1 && l >= 0 && l < JunList.Length && m >= 0 && m < XianList[l].Length)
{
return JunList[l] + XianList[l][m] + "县令";
}
if (j == 1 && k == 2)
{
return "归德司阶";
}
if (j == 2 && k == 0)
{
return "五品散官";
}
if (j == 2 && k == 1 && l >= 0 && l < JunList.Length)
{
return JunList[l] + "郡丞";
}
if (j == 2 && k == 2 && l >= 0 && l < JunList.Length)
{
return JunList[l] + "郡尉";
}
if (j == 2 && k == 4)
{
return "游骑将军";
}
if (j == 3 && k == 0)
{
return "四品散官";
}
if (j == 3 && k == 1 && l >= 0 && l < JunList.Length)
{
return JunList[l] + "郡守";
}
if (j == 3 && k == 2)
{
return "宣威将军";
}
if (j == 3 && k == 3)
{
return "左翊卫将军";
}
if (j == 3 && k == 4)
{
return "右翊卫将军";
}
if (j == 3 && k == 5)
{
return "左骁卫将军";
}
if (j == 3 && k == 6)
{
return "右骁卫将军";
}
if (j == 3 && k == 7)
{
return "左武卫将军";
}
if (j == 3 && k == 8)
{
return "右武卫将军";
}
if (j == 3 && k == 9)
{
return "左屯卫将军";
}
if (j == 3 && k == 10)
{
return "右屯卫将军";
}
if (j == 3 && k == 11)
{
return "右屯卫将军";
}
if (j == 3 && k == 12)
{
return "右候卫将军";
}
if (j == 3 && k == 13)
{
return "左御卫将军";
}
if (j == 3 && k == 14)
{
return "右御卫将军";
}
if (j == 4 && k == 0)
{
return "三品散官";
}
if (j == 4 && k == 1)
{
return "刑部尚书";
}
if (j == 4 && k == 2)
{
return "吏部尚书";
}
if (j == 4 && k == 3)
{
return "户部尚书";
}
if (j == 4 && k == 4)
{
return "礼部尚书";
}
if (j == 4 && k == 5)
{
return "工部尚书";
}
if (j == 4 && k == 6)
{
return "兵部尚书";
}
if (j == 4 && k >= 7 && k <= 10)
{
return "御史";
}
if (j == 5 && k == 0)
{
return "二品散官";
}
if (j == 5 && k == 1)
{
return "尚书令";
}
if (j == 5 && k == 2)
{
return "御史大夫";
}
if (j == 6 && k == 0)
{
return "一品散官";
}
if (j == 6 && k == 1)
{
return "丞相";
}
return "未知朝廷官职";
case 6:
return j switch
{
0 => "郡主",
1 => "世子",
2 => "亲王",
3 => "公主",
4 => "皇子",
5 => "皇帝",
6 => "太上皇",
_ => "未知皇家身份",
};
default:
return "未知官职";
}
}
return "未知官职";
}
catch
{
return "未知官职";
}
}
public static string GetOfficialPosition(string positionString)
{
if (string.IsNullOrEmpty(positionString))
{
return "未知官职";
}
try
{
string[] array = positionString.Split(new char[1] { '@' });
if (array.Length >= 5)
{
int i = int.Parse(array[0]);
int j = int.Parse(array[1]);
int k = int.Parse(array[2]);
int l = int.Parse(array[3]);
int m = int.Parse(array[4]);
return GetOfficialPosition(i, j, k, l, m);
}
return "未知官职";
}
catch
{
return "未知官职";
}
}
}
}