Decompiled source of AddItem v2.8.0
BepInEx/plugins/cs.HoLMod.AddItem.dll
Decompiled 5 days ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Text; using BepInEx; 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.AddItem")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("cs.HoLMod.AddItem")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("ede19bc5-60db-4a18-9b23-584575e4caf9")] [assembly: AssemblyFileVersion("2.5.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7", FrameworkDisplayName = ".NET Framework 4.7")] [assembly: AssemblyVersion("2.5.0.0")] namespace cs.HoLMod.AddItem; public static class PluginInfo { public const string PLUGIN_GUID = "cs.HoLMod.AddItem.AnZhi20"; public const string PLUGIN_NAME = "HoLMod.AddItem"; public const string PLUGIN_VERSION = "2.8.0"; } [BepInPlugin("cs.HoLMod.AddItem.AnZhi20", "HoLMod.AddItem", "2.8.0")] public class AddItem : BaseUnityPlugin { private static Rect windowRect; private static bool showMenu; private static Vector2 scrollPosition; private static bool blockGameInput; private Dictionary<int, (string, string)> itemList = new Dictionary<int, (string, string)> { { 0, ("香烛", "特殊物品") }, { 1, ("肥料", "特殊物品") }, { 2, ("粮食", "特殊物品") }, { 3, ("蔬菜", "特殊物品") }, { 4, ("肉食", "特殊物品") }, { 6, ("奶酪", "美食") }, { 7, ("果脯", "美食") }, { 8, ("青梅", "美食") }, { 9, ("樱桃", "美食") }, { 10, ("柿子", "美食") }, { 11, ("枇杷", "美食") }, { 12, ("桑葚", "美食") }, { 13, ("桔子", "美食") }, { 14, ("荔枝", "美食") }, { 15, ("熊掌", "美食") }, { 66, ("鱼", "美食") }, { 73, ("团饼茶", "美食") }, { 284, ("鸡蛋", "美食") }, { 5, ("生茶", "农产") }, { 67, ("棉花", "农产") }, { 74, ("盐", "农产") }, { 16, ("麻布", "布料") }, { 17, ("粗布", "布料") }, { 18, ("皮革", "布料") }, { 19, ("素绫", "布料") }, { 20, ("交织绫", "布料") }, { 21, ("单罗纱", "布料") }, { 22, ("四罗纱", "布料") }, { 23, ("雪缎", "布料") }, { 24, ("花缎", "布料") }, { 25, ("云锦", "布料") }, { 26, ("蜀锦", "布料") }, { 27, ("筛绢", "布料") }, { 28, ("天香绢", "布料") }, { 29, ("黄金", "矿产") }, { 30, ("白银", "矿产") }, { 31, ("青铜", "矿产") }, { 32, ("黑铁", "矿产") }, { 33, ("白锡", "矿产") }, { 34, ("赤汞", "矿产") }, { 35, ("玉石", "矿产") }, { 36, ("硫磺", "矿产") }, { 37, ("硝石", "矿产") }, { 38, ("煤炭", "矿产") }, { 39, ("石灰", "矿产") }, { 40, ("石黛", "香粉") }, { 41, ("青雀头黛", "香粉") }, { 42, ("铜黛", "香粉") }, { 43, ("螺子黛", "香粉") }, { 44, ("铅粉", "香粉") }, { 45, ("紫粉", "香粉") }, { 46, ("桃花粉", "香粉") }, { 47, ("胭脂", "香粉") }, { 48, ("乌膏", "香粉") }, { 49, ("泡花露", "香粉") }, { 50, ("蔷薇露", "香粉") }, { 51, ("银笄(女)", "珠宝(女)") }, { 52, ("钿花(女)", "珠宝(女)") }, { 53, ("花钗(女)", "珠宝(女)") }, { 54, ("铒铛(女)", "珠宝(女)") }, { 55, ("步摇(女)", "珠宝(女)") }, { 56, ("金簪(女)", "珠宝(女)") }, { 57, ("华胜(女)", "珠宝(女)") }, { 58, ("宫绦(女)", "珠宝(女)") }, { 59, ("梳篦(女)", "珠宝(女)") }, { 60, ("臂钏(女)", "珠宝(女)") }, { 61, ("璎珞(女)", "珠宝(女)") }, { 62, ("发钗(男)", "珠宝(男)") }, { 63, ("扳指(男)", "珠宝(男)") }, { 64, ("玉佩(男)", "珠宝(男)") }, { 65, ("带钩(男)", "珠宝(男)") }, { 68, ("长寿丹", "丹药") }, { 69, ("极乐丹", "丹药") }, { 70, ("美颜丹", "丹药") }, { 71, ("极品美颜丹", "丹药") }, { 72, ("极品长寿丹", "丹药") }, { 75, ("合欢丹", "丹药") }, { 168, ("回魂丹", "丹药") }, { 282, ("堕胎丹", "丹药") }, { 283, ("避孕丹", "丹药") }, { 285, ("灵慧丹", "丹药") }, { 76, ("无名字轴", "书法") }, { 77, ("无名碑帖", "书法") }, { 78, ("名家字轴", "书法") }, { 79, ("名家碑帖", "书法") }, { 80, ("传世字轴", "书法") }, { 81, ("传世碑帖", "书法") }, { 82, ("无名山水图", "丹青") }, { 83, ("无名江山图", "丹青") }, { 84, ("名家山水图", "丹青") }, { 85, ("名家江山图", "丹青") }, { 86, ("传世山水图", "丹青") }, { 87, ("传世江山图", "丹青") }, { 88, ("玉圭", "文玩") }, { 89, ("玉碗", "文玩") }, { 90, ("玉瓶", "文玩") }, { 91, ("玉琥", "文玩") }, { 92, ("玉璧", "文玩") }, { 93, ("玉璜", "文玩") }, { 94, ("玉琮", "文玩") }, { 95, ("玉山", "文玩") }, { 96, ("玉屏", "文玩") }, { 97, ("竹弓", "武器") }, { 98, ("木弓", "武器") }, { 99, ("牛角弓", "武器") }, { 100, ("木角弓", "武器") }, { 101, ("木弩", "武器") }, { 102, ("铜弩", "武器") }, { 103, ("连弩", "武器") }, { 104, ("单刀", "武器") }, { 105, ("朴刀", "武器") }, { 106, ("鬼头刀", "武器") }, { 107, ("三尖两刃刀", "武器") }, { 108, ("三尺剑", "武器") }, { 109, ("软剑", "武器") }, { 110, ("七尺剑", "武器") }, { 111, ("子母剑", "武器") }, { 112, ("提梁壶", "茶具") }, { 113, ("油滴盏", "茶具") }, { 114, ("天目盏", "茶具") }, { 115, ("青瓷盏", "茶具") }, { 116, ("红釉盏", "茶具") }, { 117, ("青瓷壶", "茶具") }, { 118, ("楠木茶盘", "茶具") }, { 119, ("檀木茶盘", "茶具") }, { 120, ("玉壶", "茶具") }, { 121, ("铜薰球", "香具") }, { 122, ("铜香炉", "香具") }, { 123, ("楠木香筒", "香具") }, { 124, ("金薰球", "香具") }, { 125, ("檀木香盒", "香具") }, { 126, ("金香盒", "香具") }, { 127, ("檀木香筒", "香具") }, { 128, ("金香炉", "香具") }, { 129, ("高足碗", "瓷器") }, { 130, ("葫芦瓶", "瓷器") }, { 131, ("扁瓶", "瓷器") }, { 132, ("瓷枕", "瓷器") }, { 133, ("琮式瓶", "瓷器") }, { 134, ("梅瓶", "瓷器") }, { 135, ("凤尾瓶", "瓷器") }, { 136, ("黄酒", "美酒") }, { 137, ("红曲酒", "美酒") }, { 138, ("菊花酒", "美酒") }, { 139, ("茱萸酒", "美酒") }, { 140, ("竹叶青", "美酒") }, { 141, ("荔枝酒", "美酒") }, { 142, ("桂花酒", "美酒") }, { 143, ("琥珀酒", "美酒") }, { 144, ("竹萧", "乐器") }, { 145, ("木笛", "乐器") }, { 146, ("芦笙", "乐器") }, { 147, ("二胡", "乐器") }, { 148, ("琵琶", "乐器") }, { 149, ("月琴", "乐器") }, { 150, ("中瑟", "乐器") }, { 151, ("伏羲琴", "乐器") }, { 152, ("兔皮", "皮毛") }, { 153, ("狼皮", "皮毛") }, { 154, ("鹿皮", "皮毛") }, { 155, ("狐皮", "皮毛") }, { 156, ("虎皮", "皮毛") }, { 157, ("一阶符咒", "符咒") }, { 158, ("二阶符咒", "符咒") }, { 159, ("三阶符咒", "符咒") }, { 160, ("四阶符咒", "符咒") }, { 161, ("五阶符咒", "符咒") }, { 162, ("六阶符咒", "符咒") }, { 163, ("番木鳖", "毒药") }, { 164, ("乌头", "毒药") }, { 165, ("雷公腾", "毒药") }, { 166, ("断肠草", "毒药") }, { 167, ("鹤顶红", "毒药") }, { 169, ("《三字经》", "书籍 - 文") }, { 170, ("《弟子规》", "书籍 - 文") }, { 171, ("《千字文》", "书籍 - 文") }, { 172, ("《蒙求》", "书籍 - 文") }, { 173, ("《广韵》", "书籍 - 文") }, { 174, ("《广雅》", "书籍 - 文") }, { 175, ("《九章》", "书籍 - 文") }, { 176, ("《尔雅》", "书籍 - 文") }, { 177, ("《临川集》", "书籍 - 文") }, { 178, ("《花间集》", "书籍 - 文") }, { 179, ("《诗品》", "书籍 - 文") }, { 180, ("《文选》", "书籍 - 文") }, { 181, ("《诗经》", "书籍 - 文") }, { 182, ("《尚书》", "书籍 - 文") }, { 183, ("《礼记》", "书籍 - 文") }, { 184, ("《周易》", "书籍 - 文") }, { 185, ("《春秋》", "书籍 - 文") }, { 186, ("《大学》", "书籍 - 文") }, { 187, ("《中庸》", "书籍 - 文") }, { 188, ("《论语》", "书籍 - 文") }, { 189, ("《孟子》", "书籍 - 文") }, { 190, ("《法言》", "书籍 - 文") }, { 191, ("《潜夫论》", "书籍 - 文") }, { 192, ("《手搏六篇》", "书籍 - 武") }, { 193, ("《棍棒体势》", "书籍 - 武") }, { 194, ("《麻杈棍谱》", "书籍 - 武") }, { 195, ("《手臂录》", "书籍 - 武") }, { 196, ("《拳术教范》", "书籍 - 武") }, { 197, ("《苌氏武技书》", "书籍 - 武") }, { 198, ("《阴符枪谱》", "书籍 - 武") }, { 199, ("《太极拳经》", "书籍 - 武") }, { 200, ("《马槊谱》", "书籍 - 武") }, { 201, ("《三才图会》", "书籍 - 武") }, { 202, ("《拳经》", "书籍 - 武") }, { 203, ("《射经》", "书籍 - 武") }, { 204, ("《剑经》", "书籍 - 武") }, { 205, ("《角力记》", "书籍 - 武") }, { 206, ("《耕余剩技》", "书籍 - 武") }, { 207, ("《士商类要》", "书籍 - 商") }, { 208, ("《货殖列传》", "书籍 - 商") }, { 209, ("《平准书》", "书籍 - 商") }, { 210, ("《计然书》", "书籍 - 商") }, { 211, ("《贸易赋》", "书籍 - 商") }, { 212, ("《食货志》", "书籍 - 商") }, { 213, ("《轻重篇》", "书籍 - 商") }, { 214, ("《考工记》", "书籍 - 商") }, { 215, ("《商君书》", "书籍 - 商") }, { 216, ("《陶朱公生意经》", "书籍 - 商") }, { 217, ("《商经》", "书籍 - 商") }, { 218, ("《琴律发微》", "书籍 - 艺") }, { 219, ("《琴声十六法》", "书籍 - 艺") }, { 220, ("《唱论》", "书籍 - 艺") }, { 221, ("《琴操》", "书籍 - 艺") }, { 222, ("《乐府杂录》", "书籍 - 艺") }, { 223, ("《乐章集》", "书籍 - 艺") }, { 224, ("《乐府诗集》", "书籍 - 艺") }, { 225, ("《乐书要录》", "书籍 - 艺") }, { 226, ("《碧鸡漫志》", "书籍 - 艺") }, { 227, ("《琴清英》", "书籍 - 艺") }, { 228, ("《梅花三弄》", "书籍 - 艺") }, { 229, ("《猗兰操》", "书籍 - 艺") }, { 230, ("《广陵散》", "书籍 - 艺") }, { 231, ("《阳春白雪》", "书籍 - 艺") }, { 232, ("《高山流水》", "书籍 - 艺") }, { 233, ("《乐记》", "书籍 - 艺") }, { 234, ("《乐经》", "书籍 - 艺") }, { 235, ("《琴赋》", "书籍 - 艺") }, { 236, ("《溪山琴况》", "书籍 - 艺") }, { 237, ("《太古遗音》", "书籍 - 艺") }, { 238, ("《左传》", "书籍 - 计谋") }, { 239, ("《史记》", "书籍 - 计谋") }, { 240, ("《间书》", "书籍 - 计谋") }, { 241, ("《捭阖》", "书籍 - 计谋") }, { 242, ("《飞箝》", "书籍 - 计谋") }, { 243, ("《许合》", "书籍 - 计谋") }, { 244, ("《揣篇》", "书籍 - 计谋") }, { 245, ("《苏子》", "书籍 - 计谋") }, { 246, ("《太白阴经》", "书籍 - 计谋") }, { 247, ("《战国策》", "书籍 - 计谋") }, { 248, ("《韩非子》", "书籍 - 计谋") }, { 249, ("《孙子兵法》", "书籍 - 计谋") }, { 250, ("《鬼谷子》", "书籍 - 计谋") }, { 251, ("《本经阴符》", "书籍 - 技能 - 巫") }, { 252, ("《山海经》", "书籍 - 技能 - 巫") }, { 253, ("《符咒秘本》", "书籍 - 技能 - 巫") }, { 254, ("《巫阳古书》", "书籍 - 技能 - 巫") }, { 255, ("《阴山法笈》", "书籍 - 技能 - 巫") }, { 256, ("《鲁班书》", "书籍 - 技能 - 医") }, { 257, ("《千金方》", "书籍 - 技能 - 医") }, { 258, ("《温热经纬》", "书籍 - 技能 - 医") }, { 259, ("《伤寒杂病论》", "书籍 - 技能 - 医") }, { 260, ("《脉经》", "书籍 - 技能 - 医") }, { 261, ("《金匮要略》", "书籍 - 技能 - 医") }, { 262, ("《神农本草》", "书籍 - 技能 - 医") }, { 263, ("《本草纲目》", "书籍 - 技能 - 医") }, { 264, ("《黄帝内经》", "书籍 - 技能 - 医") }, { 265, ("《德器歌》", "书籍 - 技能 - 相") }, { 266, ("《五官杂论》", "书籍 - 技能 - 相") }, { 267, ("《听声相行》", "书籍 - 技能 - 相") }, { 268, ("《永乐百问》", "书籍 - 技能 - 相") }, { 269, ("《柳庄相法》", "书籍 - 技能 - 相") }, { 270, ("《紫微斗数》", "书籍 - 技能 - 卜") }, { 271, ("《梅花易数》", "书籍 - 技能 - 卜") }, { 272, ("《神峰通考》", "书籍 - 技能 - 卜") }, { 273, ("《渊海子平》", "书籍 - 技能 - 卜") }, { 274, ("《三命通会》", "书籍 - 技能 - 卜") }, { 275, ("《素女经》", "书籍 - 技能 - 媚") }, { 276, ("《洞玄子》", "书籍 - 技能 - 媚") }, { 277, ("《长物志》", "书籍 - 技能 - 工") }, { 278, ("《梓人遗制》", "书籍 - 技能 - 工") }, { 279, ("《齐民要术》", "书籍 - 技能 - 工") }, { 280, ("《天工开物》", "书籍 - 技能 - 工") }, { 281, ("《墨经》", "书籍 - 技能 - 工") } }; private int selectedCurrencyType = 0; private int currencyValue = 100000; private Dictionary<int, string[]> bookList = new Dictionary<int, string[]> { { 0, new string[4] { "《天仙配》", "The Heavenly Match", "董永孝感动天,七仙女慕其德行,下凡结缘。王母怒,迫其归天。二人情深,誓不分离,终得团圆。", "Dong Yong's filial piety moves heaven; the Seventh Fairy, admiring his virtue, descends to marry. The Queen Mother, enraged, forces her return. Deeply in love, they vow never to part and ultimately reunite." } }, { 1, new string[4] { "《女驸马》", "The Female Royal Son-in-Law", "冯素贞为救父,女扮男装,考中状元,招为驸马。公主疑之,终揭真相。帝感其孝,赦其罪,赐婚状元。", "Feng Suzhen disguises as a man to save her father, tops the imperial exam, and is made royal son-in-law. The princess suspects, uncovers the truth. The emperor, moved by her filial piety, pardons her and arranges her marriage to the top scholar." } }, { 2, new string[4] { "《牡丹亭》", "The Peony Pavilion", "杜丽娘梦遇柳梦梅,醒后相思成疾,逝去。柳梦梅得画,感其情,丽娘复活,二人终成眷属。", "Du Liniang dreams of Liu Mengmei, falls lovesick, and dies. Liu finds her portrait, moved by her love, Liniang revives, and they unite." } }, { 3, new string[4] { "《紫钗记》", "The Purple Hairpin", "李益与霍小玉相爱,以紫钗为信。李益赴考,霍母逼小玉改嫁。小玉病重,李益归,见钗如见人,终得团圆。", "Li Yi and Huo Xiaoyu fall in love, pledge with a purple hairpin. Li leaves for exams, Huo's mother forces her to remarry. Xiaoyu falls ill, Li returns, sees the pin as seeing her, and they reunite." } }, { 4, new string[4] { "《孔雀东南飞》", "The Peacocks Fly Southeast", "刘兰芝与焦仲卿相爱,兰芝被逼改嫁,投河自尽。仲卿闻讯,亦自缢。两家悔之,合葬二人,孔雀飞至其墓", "Liu Lanzhi and Jiao Zhongqing love each other; Lanzhi is forced to remarry and drowns herself. Zhongqing hangs himself upon hearing the news. Both families regret, bury them together, and peacocks fly to their grave." } }, { 5, new string[4] { "《焚香记》", "The Incense Burning", "王魁负心,桂英焚香告天。魁受天谴,病重。桂英感其悔,复与和好,魁病愈。", "Wang Kui betrays Guiying, who burns incense to heaven. Kui is cursed, falls ill. Guiying, moved by his remorse, reconciles, and Kui recovers." } }, { 6, new string[4] { "《琵琶记》", "The Tale of the Pipa", "赵五娘寻夫蔡伯喈,弹琵琶诉苦。伯喈闻声,终得相认。夫妻团圆,孝感动天。", "Zhao Wuniang searches for her husband Cai Bojie, playing the pipa to express her sorrow. Bojie hears it, they reunite. Their filial piety moves heaven." } }, { 7, new string[4] { "《望江亭》", "The Riverside Pavilion", "谭记儿为救夫,假扮渔妇,智斗杨衙内。于望江亭设计,终救夫出狱,夫妻团圆。", "Tan Ji'er disguises as a fisherwoman to save her husband, outwits Officer Yang. At Wangjiang Pavilion, she schemes to free him, and they reunite." } }, { 8, new string[4] { "《锁麟囊》", "The Precious Pouch", "薛湘灵出嫁,途中遇雨,避于春秋亭。贫女赵守贞亦至,湘灵赠锁麟囊。后湘灵落难,守贞报恩,二人结为姐妹。", "Xue Xiangling, on her wedding journey, shelters from rain at Chunqiu Pavilion. Poor girl Zhao Shouzhen arrives, Xiangling gifts her a precious pouch. Later, Xiangling falls into hardship, Shouzhen repays the kindness, and they become sisters." } }, { 9, new string[4] { "《碧玉簪》", "The Jade Hairpin", "王玉林与李秀英相爱,秀英赠碧玉簪为信。后玉林误会秀英,秀英含冤而死。玉林悔悟,终得昭雪。", "Wang Yulin and Li Xiuying fall in love, Xiuying gifts a jade hairpin as a pledge. Yulin misunderstands, Xiuying dies unjustly. Yulin repents, and her name is cleared." } }, { 10, new string[4] { "《罗帕记》", "The Silk Handkerchief", "王科举与妻陈赛金恩爱,赛金遗失罗帕,被姜雄拾得。姜雄诬陷赛金,科举误会。后真相大白,夫妻和好。", "Wang Keju and his wife Chen Saijin are loving; Saijin loses a silk handkerchief, picked up by Jiang Xiong. Jiang frames Saijin, Keju misunderstands. Truth revealed, they reconcile." } }, { 11, new string[4] { "《梁祝》", "The Butterfly Lovers", "梁山伯与祝英台同窗,英台女扮男装。山伯不知,情愫暗生。英台归家,山伯访之,知真相,悲恸而亡。英台殉情,二人化蝶。", "Liang Shanbo and Zhu Yingtai study together, Yingtai disguised as a man. Shanbo, unaware, falls in love. Yingtai returns home, Shanbo visits, learns the truth, dies of grief. Yingtai follows in death, they transform into butterflies." } }, { 12, new string[4] { "《花木兰》", "Hua Mulan", "木兰代父从军,女扮男装,英勇善战。十二年征战后,归家复女装,众人惊其勇,帝赐厚赏。", "Mulan joins the army in her father's place, disguised as a man, fights bravely. After twelve years, returns home, reveals her identity, astonishes all, and the emperor rewards her richly." } }, { 13, new string[4] { "《赵氏孤儿》", "The Orphan of Zhao", "屠岸贾灭赵氏,程婴救赵氏孤儿,隐姓埋名。孤儿长成,程婴告知身世,孤儿报仇雪恨,赵氏复兴。", "Tu'an Gu exterminates the Zhao clan; Cheng Ying saves the orphan, hides his identity. The orphan grows up, Cheng reveals his heritage, the orphan avenges, and the Zhao clan is restored." } }, { 14, new string[4] { "《谢小娥传》", "The Tale of Xie Xiao'e", "谢小娥父为盗所害,小娥立志复仇。女扮男装,寻得仇人,智勇双全,终报父仇,众人称颂。", "Xie Xiao'e's father is killed by bandits; she vows revenge. Disguised as a man, she finds the culprits, uses wit and courage, avenges her father, and is praised by all." } }, { 15, new string[4] { "《金鞭记》", "The Golden Whip", "呼延赞之子呼延丕显被奸臣庞文陷害,全家满门三百余口被杀,呼延丕显之子呼延守勇、呼延守信与奸臣斗争之事。", "Huyan Pixian, son of Huyan Zan, is framed by the treacherous minister Pang Wen, and his family of over 300 people are killed. Huyan Pixian's sons, Huyan Shouyong and Huyan Shouxin, fight against the treacherous minister." } }, { 16, new string[4] { "《文昭关》", "Wu Zixu at Zhaoguan", "伍子胥过昭关,一夜白头。为报父仇,忍辱负重,终得吴王重用,率兵伐楚,报仇雪恨。", "Wu Zixu passes Zhaoguan, turns white overnight. To avenge his father, endures humiliation, gains King Wu's trust, leads troops against Chu, and avenges his father's death." } }, { 17, new string[4] { "《李离伏剑》", "Li Li Draws His Sword", "李离执掌晋国刑罚,因误听下属不实之辞而错杀了人,最终拔剑自刎。", "Li Li, in charge of the penal system in Jin, mistakenly executed an innocent man due to false information from his subordinates, and ultimately drew his sword and committed suicide." } }, { 18, new string[4] { "《双婿案》", "The Two Sons-in-Law", "举人杨玉春,因家境不幸,前往燕山王府投亲,途中救出遭遇强盗抢劫的公子方天觉,两人义结金兰。", "Yang Yuchun, due to his unfortunate family circumstances, goes to the Prince of Yanshan's residence to seek refuge. On his way, he rescues Fang Tianjue, a young master who was robbed by bandits, and the two become sworn brothers." } } }; private int currentMode = 1; private int mapSubMode = 0; private string selectedPrefecture = ""; private string selectedCounty = ""; private int selectedJunIndex = -1; private string mansionCustomName = ""; private string farmCustomName = ""; private int farmArea = 16; private bool onlyAddMansion = true; private string[] JunList = new string[12] { "南郡", "三川郡", "蜀郡", "丹阳郡", "陈留郡", "长沙郡", "会稽郡", "广陵郡", "太原郡", "益州郡", "南海郡", "云南郡" }; private 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] { "云平", "叶榆", "永宁", "遂久", "姑复", "蜻陵", "弄栋", "邪龙" } }; private int selectedItemId = 0; private int count = 1; private string searchText = ""; private string countInput = "1"; private string statusMessage; private List<int> filteredItemIds = new List<int>(); private string selectedCategory = ""; private const string CURRENT_VERSION = "2.8.0"; private float scaleFactor = 1f; public AddItem() { statusMessage = LanguageManager.Instance.GetText("准备就绪"); } static AddItem() { showMenu = false; blockGameInput = false; if (Mainload.AllFenBData == null) { Mainload.AllFenBData = new List<List<int>> { new List<int> { 1280, 720 }, new List<int> { 1920, 1080 }, new List<int> { 2560, 1440 }, new List<int> { 3840, 2160 } }; } } private void UpdateResolutionSettings() { //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) int width = Screen.width; int height = Screen.height; float num = 1000f; float num2 = 1200f; if ((width == 2560 && height == 1440) || (width == 3840 && height == 2160)) { scaleFactor = 1f; windowRect = new Rect(150f, 100f, num + 100f, num2 - 100f); } else if (width == 1920 && height == 1080) { scaleFactor = 0.8f; windowRect = new Rect(100f, 200f, num * 1.2f, num2 * 1.2f - 500f); } else if (width == 1280 && height == 720) { scaleFactor = 0.5f; windowRect = new Rect(100f, 200f, num * 1.2f, num2 * 1.2f - 800f); } else { scaleFactor = 0.8f; windowRect = new Rect(100f, 200f, num * 1.2f, num2 * 1.2f - 500f); } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"当前分辨率: {width}x{height},缩放因子: {scaleFactor}"); } private void Awake() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"物品添加器已加载!"); try { string value = ((BaseUnityPlugin)this).Config.Bind<string>("内部配置", "已加载版本", "", "用于跟踪插件版本,请勿手动修改").Value; if (value != "2.8.0") { ((BaseUnityPlugin)this).Logger.LogInfo((object)"检测到插件版本更新至 2.8.0,正在清除配置..."); ((BaseUnityPlugin)this).Config.Clear(); ((BaseUnityPlugin)this).Config.Bind<string>("内部配置", "已加载版本", "2.8.0", "用于跟踪插件版本,请勿手动修改"); ((BaseUnityPlugin)this).Config.Save(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"配置已成功清除并更新版本信息。"); } } catch (Exception ex) { ((BaseUnityPlugin)this).Logger.LogError((object)("版本检查时出错: " + ex.Message)); } UpdateResolutionSettings(); } private void Start() { LoadGameItemsToDictionary.LoadItems(itemList, LanguageManager.Instance.IsChineseLanguage()); filteredItemIds = itemList.Keys.ToList(); } private void Update() { //IL_0073: Unknown result type (might be due to invalid IL or missing references) if (Input.GetKeyDown((KeyCode)283)) { UpdateResolutionSettings(); showMenu = !showMenu; blockGameInput = showMenu; if (showMenu && Mainload.isMapPanelOpen) { Mainload.isMapPanelOpen = 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)283)) { Input.ResetInputAxes(); } } } private void OnGUI() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: 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_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Expected O, but got Unknown //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Expected O, but got Unknown //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) if (showMenu) { 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(); Matrix4x4 matrix = GUI.matrix; GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3(scaleFactor, scaleFactor, 1f)); GUI.skin.window.fontSize = Mathf.RoundToInt(12f * scaleFactor); GUI.skin.window.padding = new RectOffset(Mathf.RoundToInt(20f * scaleFactor), Mathf.RoundToInt(20f * scaleFactor), Mathf.RoundToInt(10f * scaleFactor), Mathf.RoundToInt(10f * scaleFactor)); GUI.skin.label.fontSize = Mathf.RoundToInt(12f * scaleFactor); GUI.skin.button.fontSize = Mathf.RoundToInt(12f * scaleFactor); GUI.skin.textField.fontSize = Mathf.RoundToInt(12f * scaleFactor); windowRect = GUI.Window(0, windowRect, new WindowFunction(DrawWindow), "", GUI.skin.window); GUI.matrix = matrix; GUI.backgroundColor = backgroundColor; } } private void DrawWindow(int windowID) { //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Expected O, but got Unknown //IL_0e5b: Unknown result type (might be due to invalid IL or missing references) //IL_0e78: Unknown result type (might be due to invalid IL or missing references) //IL_0e7d: Unknown result type (might be due to invalid IL or missing references) //IL_1003: Unknown result type (might be due to invalid IL or missing references) //IL_1020: Unknown result type (might be due to invalid IL or missing references) //IL_1025: Unknown result type (might be due to invalid IL or missing references) //IL_2493: Unknown result type (might be due to invalid IL or missing references) //IL_11ef: Unknown result type (might be due to invalid IL or missing references) //IL_120c: Unknown result type (might be due to invalid IL or missing references) //IL_160f: Unknown result type (might be due to invalid IL or missing references) //IL_1616: Expected O, but got Unknown //IL_1620: Unknown result type (might be due to invalid IL or missing references) //IL_1627: Expected O, but got Unknown //IL_165a: Unknown result type (might be due to invalid IL or missing references) //IL_163b: Unknown result type (might be due to invalid IL or missing references) int fontSize = Mathf.RoundToInt(18f * scaleFactor); GUI.skin.label.fontSize = fontSize; GUI.skin.button.fontSize = fontSize; GUI.skin.button.alignment = (TextAnchor)4; GUI.skin.toggle.fontSize = fontSize; GUI.skin.toggle.alignment = (TextAnchor)4; GUI.skin.textField.fontSize = fontSize; GUI.skin.window.fontSize = fontSize; ((Rect)(ref windowRect)).width = Mathf.Max(((Rect)(ref windowRect)).width, 800f * scaleFactor); GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true) }); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.FlexibleSpace(); GUIStyle val = new GUIStyle(GUI.skin.label); GUILayout.Label(LanguageManager.Instance.GetText("物品添加器"), val, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(false) }); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.Space(15f * scaleFactor); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); if (GUILayout.Button(LanguageManager.Instance.GetText("货币"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { currentMode = 0; } if (GUILayout.Button(LanguageManager.Instance.GetText("物品"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { currentMode = 1; } if (GUILayout.Button(LanguageManager.Instance.GetText("话本"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { currentMode = 2; } if (GUILayout.Button(LanguageManager.Instance.GetText("地图"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { currentMode = 3; } GUILayout.EndHorizontal(); GUILayout.Space(10f * scaleFactor); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label((currentMode == 1) ? LanguageManager.Instance.GetText("搜索物品:") : LanguageManager.Instance.GetText("搜索:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f * scaleFactor) }); string text = GUILayout.TextField(searchText, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); if (text != searchText) { searchText = text; FilterItems(); } GUILayout.EndHorizontal(); if (currentMode == 1) { GUILayout.Space(10f * scaleFactor); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("分类:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(100f * scaleFactor) }); if (GUILayout.Button(LanguageManager.Instance.GetText("清空"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(120f * scaleFactor) })) { searchText = ""; selectedCategory = ""; FilterItems(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button(LanguageManager.Instance.GetText("特殊物品"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(300f * scaleFactor) })) { SearchByCategory("特殊物品"); } GUILayout.Space(10f * scaleFactor); if (GUILayout.Button(LanguageManager.Instance.GetText("新增物品"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(300f * scaleFactor) })) { SearchByCategory("新增物品"); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button(LanguageManager.Instance.GetText("丹药"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("丹药"); } if (GUILayout.Button(LanguageManager.Instance.GetText("符咒"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("符咒"); } if (GUILayout.Button(LanguageManager.Instance.GetText("毒药"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("毒药"); } if (GUILayout.Button(LanguageManager.Instance.GetText("美食"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("美食"); } if (GUILayout.Button(LanguageManager.Instance.GetText("农产"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("农产"); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button(LanguageManager.Instance.GetText("布料"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("布料"); } if (GUILayout.Button(LanguageManager.Instance.GetText("矿产"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("矿产"); } if (GUILayout.Button(LanguageManager.Instance.GetText("香粉"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("香粉"); } if (GUILayout.Button(LanguageManager.Instance.GetText("珠宝"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("珠宝"); } if (GUILayout.Button(LanguageManager.Instance.GetText("武器"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("武器"); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button(LanguageManager.Instance.GetText("书法"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("书法"); } if (GUILayout.Button(LanguageManager.Instance.GetText("丹青"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("丹青"); } if (GUILayout.Button(LanguageManager.Instance.GetText("文玩"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("文玩"); } if (GUILayout.Button(LanguageManager.Instance.GetText("乐器"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("乐器"); } if (GUILayout.Button(LanguageManager.Instance.GetText("茶具"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("茶具"); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button(LanguageManager.Instance.GetText("香具"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("香具"); } if (GUILayout.Button(LanguageManager.Instance.GetText("瓷器"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("瓷器"); } if (GUILayout.Button(LanguageManager.Instance.GetText("美酒"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("美酒"); } if (GUILayout.Button(LanguageManager.Instance.GetText("皮毛"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("皮毛"); } if (GUILayout.Button(LanguageManager.Instance.GetText("书籍"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(180f * scaleFactor) })) { SearchByCategory("书籍"); } GUILayout.EndHorizontal(); GUILayout.Space(10f * scaleFactor); } else { GUILayout.Space(10f * scaleFactor); } if (currentMode == 0) { GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.Height(300f * scaleFactor) }); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("选择货币类型:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f * scaleFactor) }); if (GUILayout.Button(LanguageManager.Instance.GetText("铜钱"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f * scaleFactor) })) { selectedCurrencyType = 0; } if (GUILayout.Button(LanguageManager.Instance.GetText("元宝"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f * scaleFactor) })) { selectedCurrencyType = 1; } GUILayout.EndHorizontal(); GUILayout.Space(10f * scaleFactor); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("数值:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f * scaleFactor) }); string s = GUILayout.TextField(currencyValue.ToString(), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f * scaleFactor) }); if (int.TryParse(s, out var result)) { if (selectedCurrencyType == 0) { currencyValue = Mathf.Clamp(result, 0, 1000000000); } else { currencyValue = Mathf.Clamp(result, 0, 100000); } } GUILayout.Label((selectedCurrencyType == 0) ? LanguageManager.Instance.GetText("(0-10亿)") : LanguageManager.Instance.GetText("(0-10万)"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(140f * scaleFactor) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (selectedCurrencyType == 0) { if (GUILayout.Button(LanguageManager.Instance.GetText("100万"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f * scaleFactor) })) { currencyValue = 1000000; } if (GUILayout.Button(LanguageManager.Instance.GetText("1亿"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f * scaleFactor) })) { currencyValue = 100000000; } if (GUILayout.Button(LanguageManager.Instance.GetText("10亿"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f * scaleFactor) })) { currencyValue = 1000000000; } } else if (selectedCurrencyType == 1) { if (GUILayout.Button(LanguageManager.Instance.GetText("1百"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f * scaleFactor) })) { currencyValue = 100; } if (GUILayout.Button(LanguageManager.Instance.GetText("1千"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f * scaleFactor) })) { currencyValue = 1000; } if (GUILayout.Button(LanguageManager.Instance.GetText("1万"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f * scaleFactor) })) { currencyValue = 10000; } } GUILayout.EndHorizontal(); GUILayout.Space(10f * scaleFactor); GUILayout.BeginVertical(Array.Empty<GUILayoutOption>()); GUILayout.Label(string.Format(LanguageManager.Instance.GetText("当前铜钱: {0}"), FormulaData.GetCoinsNum()), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Label(LanguageManager.Instance.GetText("当前元宝: ") + Mainload.CGNum[1], (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.EndVertical(); GUILayout.FlexibleSpace(); GUILayout.EndVertical(); } else if (currentMode == 1) { GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.Height(300f * scaleFactor) }); scrollPosition = GUILayout.BeginScrollView(scrollPosition, (GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true) }); int num = filteredItemIds.IndexOf(selectedItemId); if (num == -1 && filteredItemIds.Count > 0) { num = 0; selectedItemId = filteredItemIds[0]; } if (filteredItemIds.Count > 0) { for (int i = 0; i < filteredItemIds.Count; i++) { GUIStyle val2 = ((i == num) ? GUI.skin.toggle : GUI.skin.button); string item = itemList[filteredItemIds[i]].Item1; string text2 = LanguageManager.Instance.GetText(item); if (GUILayout.Button(text2, val2, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { selectedItemId = filteredItemIds[i]; } } } else { GUILayout.Label(LanguageManager.Instance.GetText("未找到匹配的物品"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); } GUILayout.EndScrollView(); GUILayout.EndVertical(); } else if (currentMode == 2) { GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.Height(300f * scaleFactor) }); scrollPosition = GUILayout.BeginScrollView(scrollPosition, (GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true) }); foreach (KeyValuePair<int, string[]> book in bookList) { string text3 = (LanguageManager.Instance.IsChineseLanguage() ? book.Value[0] : book.Value[1]); if (GUILayout.Button(text3, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { selectedItemId = book.Key; } } GUILayout.EndScrollView(); GUILayout.EndVertical(); } else if (currentMode == 3) { GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.Height(500f * scaleFactor) }); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); if (GUILayout.Button(LanguageManager.Instance.GetText("府邸"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { mapSubMode = 0; } if (GUILayout.Button(LanguageManager.Instance.GetText("农庄"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { mapSubMode = 1; } if (GUILayout.Button(LanguageManager.Instance.GetText("封地"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { mapSubMode = 2; } if (GUILayout.Button(LanguageManager.Instance.GetText("世家"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { mapSubMode = 3; } GUILayout.EndHorizontal(); GUILayout.Space(10f * scaleFactor); GUILayout.BeginScrollView(scrollPosition, (GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true) }); if (mapSubMode == 0) { GUILayout.Label(LanguageManager.Instance.GetText("府邸子模式"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Space(10f * scaleFactor); GUILayout.Label(LanguageManager.Instance.GetText("生成府邸所在郡:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); float num2 = 180f * scaleFactor; for (int j = 0; j < 6 && j < JunList.Length; j++) { string key = JunList[j]; string text4 = LanguageManager.Instance.GetText(key); int num3 = j; if (GUILayout.Button(text4, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num2) })) { selectedPrefecture = key; selectedJunIndex = num3; selectedCounty = ""; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); for (int k = 6; k < 12 && k < JunList.Length; k++) { string key2 = JunList[k]; string text5 = LanguageManager.Instance.GetText(key2); int num4 = k; if (GUILayout.Button(text5, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num2) })) { selectedPrefecture = key2; selectedJunIndex = num4; selectedCounty = ""; } } GUILayout.EndHorizontal(); GUILayout.Space(10f * scaleFactor); GUILayout.Label(LanguageManager.Instance.GetText("生成府邸所在县:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); if (selectedJunIndex >= 0 && selectedJunIndex < XianList.Length) { string[] array = XianList[selectedJunIndex]; int num5 = array.Length; GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); float num6 = 120f * scaleFactor; for (int l = 0; l < num5; l++) { string key3 = array[l]; string text6 = LanguageManager.Instance.GetText(key3); if (GUILayout.Button(text6, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num6) })) { selectedCounty = key3; } } GUILayout.EndHorizontal(); } else { GUILayout.Label(LanguageManager.Instance.GetText("请先选择一个郡"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); } GUILayout.Space(10f * scaleFactor); string text7 = ((string.IsNullOrEmpty(selectedPrefecture) || string.IsNullOrEmpty(selectedCounty)) ? "--" : (LanguageManager.Instance.GetText(selectedPrefecture) + "-" + LanguageManager.Instance.GetText(selectedCounty))); GUILayout.Label(LanguageManager.Instance.GetText("生成府邸所在的郡县:") + text7, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Space(5f * scaleFactor); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Label(LanguageManager.Instance.GetText("府邸的名字:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(120f * scaleFactor) }); mansionCustomName = GUILayout.TextField(mansionCustomName, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.EndHorizontal(); GUILayout.Space(5f * scaleFactor); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUIStyle val3 = new GUIStyle(GUI.skin.button); GUIStyle val4 = new GUIStyle(GUI.skin.button); if (onlyAddMansion) { val3.normal.textColor = Color.green; val3.fontStyle = (FontStyle)1; } else { val4.normal.textColor = Color.green; val4.fontStyle = (FontStyle)1; } if (GUILayout.Button(LanguageManager.Instance.GetText("仅添加府邸"), val3, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { onlyAddMansion = true; } if (GUILayout.Button(LanguageManager.Instance.GetText("添加后进入府邸"), val4, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { onlyAddMansion = false; } GUILayout.EndHorizontal(); } else if (mapSubMode == 1) { GUILayout.Label(LanguageManager.Instance.GetText("农庄子模式"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Space(10f * scaleFactor); GUILayout.Label(LanguageManager.Instance.GetText("生成农庄所在郡:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); float num7 = 180f * scaleFactor; for (int m = 0; m < 6 && m < JunList.Length; m++) { string key4 = JunList[m]; string text8 = LanguageManager.Instance.GetText(key4); int num8 = m; if (GUILayout.Button(text8, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num7) })) { selectedPrefecture = key4; selectedJunIndex = num8; selectedCounty = ""; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); for (int n = 6; n < 12 && n < JunList.Length; n++) { string key5 = JunList[n]; string text9 = LanguageManager.Instance.GetText(key5); int num9 = n; if (GUILayout.Button(text9, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num7) })) { selectedPrefecture = key5; selectedJunIndex = num9; selectedCounty = ""; } } GUILayout.EndHorizontal(); GUILayout.Space(10f * scaleFactor); GUILayout.Label(LanguageManager.Instance.GetText("生成农庄所在县:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); if (selectedJunIndex >= 0 && selectedJunIndex < XianList.Length) { string[] array2 = XianList[selectedJunIndex]; int num10 = array2.Length; GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); float num11 = 120f * scaleFactor; for (int num12 = 0; num12 < num10; num12++) { string key6 = array2[num12]; string text10 = LanguageManager.Instance.GetText(key6); if (GUILayout.Button(text10, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num11) })) { selectedCounty = key6; } } GUILayout.EndHorizontal(); } else { GUILayout.Label(LanguageManager.Instance.GetText("请先选择一个郡"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); } GUILayout.Space(10f * scaleFactor); string text11 = ((string.IsNullOrEmpty(selectedPrefecture) || string.IsNullOrEmpty(selectedCounty)) ? "--" : (LanguageManager.Instance.GetText(selectedPrefecture) + "-" + LanguageManager.Instance.GetText(selectedCounty))); GUILayout.Label(LanguageManager.Instance.GetText("生成农庄所在的郡县:") + text11, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Space(5f * scaleFactor); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Label(LanguageManager.Instance.GetText("农庄的名字:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(120f * scaleFactor) }); farmCustomName = GUILayout.TextField(farmCustomName, (GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.MinWidth(250f * scaleFactor) }); GUILayout.EndHorizontal(); GUILayout.Space(5f * scaleFactor); GUILayout.Label(LanguageManager.Instance.GetText("农庄面积选择:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); if (GUILayout.Button(LanguageManager.Instance.GetText("4"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { farmArea = 4; } if (GUILayout.Button(LanguageManager.Instance.GetText("9"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { farmArea = 9; } if (GUILayout.Button(LanguageManager.Instance.GetText("16"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { farmArea = 16; } if (GUILayout.Button(LanguageManager.Instance.GetText("25"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) })) { farmArea = 25; } GUILayout.EndHorizontal(); } else if (mapSubMode == 2) { GUILayout.Label(LanguageManager.Instance.GetText("封地子模式"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Space(10f * scaleFactor); GUILayout.Label(LanguageManager.Instance.GetText("选择要解锁的郡:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); float num13 = 180f * scaleFactor; for (int num14 = 0; num14 < 6 && num14 < JunList.Length; num14++) { string key7 = JunList[num14]; string text12 = LanguageManager.Instance.GetText(key7); int num15 = num14; if (GUILayout.Button(text12, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num13) })) { selectedPrefecture = key7; selectedJunIndex = num15; selectedCounty = ""; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); for (int num16 = 6; num16 < 12 && num16 < JunList.Length; num16++) { string key8 = JunList[num16]; string text13 = LanguageManager.Instance.GetText(key8); int num17 = num16; if (GUILayout.Button(text13, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num13) })) { selectedPrefecture = key8; selectedJunIndex = num17; selectedCounty = ""; } } GUILayout.EndHorizontal(); GUILayout.Space(10f * scaleFactor); string text14 = (string.IsNullOrEmpty(selectedPrefecture) ? "--" : LanguageManager.Instance.GetText(selectedPrefecture)); GUILayout.Label(LanguageManager.Instance.GetText("当前选择的郡:") + text14, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Space(10f * scaleFactor); GUILayout.Label(LanguageManager.Instance.GetText("点击下方添加按钮即可解锁选择郡的所属封地"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); } else if (mapSubMode == 3) { GUILayout.Label(LanguageManager.Instance.GetText("世家子模式"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Space(10f * scaleFactor); GUILayout.Label(LanguageManager.Instance.GetText("生成世家所在郡:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); float num18 = 180f * scaleFactor; for (int num19 = 0; num19 < 6 && num19 < JunList.Length; num19++) { string key9 = JunList[num19]; string text15 = LanguageManager.Instance.GetText(key9); int num20 = num19; if (GUILayout.Button(text15, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num18) })) { selectedPrefecture = key9; selectedJunIndex = num20; selectedCounty = ""; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); for (int num21 = 6; num21 < 12 && num21 < JunList.Length; num21++) { string key10 = JunList[num21]; string text16 = LanguageManager.Instance.GetText(key10); int num22 = num21; if (GUILayout.Button(text16, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num18) })) { selectedPrefecture = key10; selectedJunIndex = num22; selectedCounty = ""; } } GUILayout.EndHorizontal(); GUILayout.Space(10f * scaleFactor); GUILayout.Label(LanguageManager.Instance.GetText("生成世家所在县:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); if (selectedJunIndex >= 0 && selectedJunIndex < XianList.Length) { string[] array3 = XianList[selectedJunIndex]; int num23 = array3.Length; GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); float num24 = 120f * scaleFactor; for (int num25 = 0; num25 < num23; num25++) { string key11 = array3[num25]; string text17 = LanguageManager.Instance.GetText(key11); if (GUILayout.Button(text17, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(num24) })) { selectedCounty = key11; } } GUILayout.EndHorizontal(); } else { GUILayout.Label(LanguageManager.Instance.GetText("请先选择一个郡"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); } GUILayout.Space(10f * scaleFactor); string text18 = ((string.IsNullOrEmpty(selectedPrefecture) || string.IsNullOrEmpty(selectedCounty)) ? "--" : (LanguageManager.Instance.GetText(selectedPrefecture) + "-" + LanguageManager.Instance.GetText(selectedCounty))); GUILayout.Label(LanguageManager.Instance.GetText("生成世家所在的郡县:") + text18, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); } GUILayout.EndScrollView(); GUILayout.EndVertical(); } GUILayout.Space(10f * scaleFactor); GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); if (currentMode == 1) { GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("数量:"), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(100f * scaleFactor) }); string text19 = GUILayout.TextField(countInput, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f * scaleFactor) }); if (text19 != countInput) { countInput = text19; if (int.TryParse(countInput, out var result2)) { count = Mathf.Clamp(result2, 0, 1000000); if (result2 != count) { countInput = count.ToString(); } } } GUILayout.EndHorizontal(); GUILayout.Space(10f * scaleFactor); } GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.FlexibleSpace(); if (GUILayout.Button((currentMode == 1) ? LanguageManager.Instance.GetText("添加物品") : LanguageManager.Instance.GetText("添加"), (GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.Width(180f * scaleFactor), GUILayout.Height(80f * scaleFactor) })) { AddItemToGame(); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.Space(20f * scaleFactor); GUILayout.BeginVertical(Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("使用说明:"), GUI.skin.box, Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("1. 请在点击添加前先保存游戏,以便回档"), Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("2. 按F2键显示/隐藏窗口"), Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("3. 切换模式选择:物品模式/货币模式/话本模式/地图模式"), Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("4. 输入部分字符可搜索物品或话本"), Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("5. 选择项目并选择或输入数量后点击添加按钮"), Array.Empty<GUILayoutOption>()); GUILayout.Label("", Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("Mod作者:AnZhi20"), Array.Empty<GUILayoutOption>()); GUILayout.Label(LanguageManager.Instance.GetText("Mod版本:") + "2.8.0", Array.Empty<GUILayoutOption>()); GUILayout.EndVertical(); GUILayout.EndVertical(); GUI.DragWindow(new Rect(0f, 0f, ((Rect)(ref windowRect)).width, ((Rect)(ref windowRect)).height)); } private void FilterItems() { if (currentMode != 1) { return; } string lowerSearchText = searchText.ToLower(); bool hasSearchText = !string.IsNullOrEmpty(searchText); bool hasSelectedCategory = !string.IsNullOrEmpty(selectedCategory); if (!hasSearchText && !hasSelectedCategory) { filteredItemIds = itemList.Keys.ToList(); return; } filteredItemIds = (from kv in itemList.Where(delegate(KeyValuePair<int, (string, string)> kv) { string item = kv.Value.Item1; string item2 = kv.Value.Item2; string text = LanguageManager.Instance.GetText(item); string text2 = LanguageManager.Instance.GetText(item2); bool flag = !hasSearchText || item.ToLower().Contains(lowerSearchText) || text.ToLower().Contains(lowerSearchText) || item2.ToLower().Contains(lowerSearchText) || text2.ToLower().Contains(lowerSearchText); bool flag2 = !hasSelectedCategory || item2.ToLower().Contains(selectedCategory.ToLower()) || text2.ToLower().Contains(selectedCategory.ToLower()); return flag && flag2; }) select kv.Key).ToList(); } private void SearchByCategory(string category) { selectedCategory = category; FilterItems(); } private void AddItemToGame() { try { if (currentMode != 3 && (count <= 0 || count > 1000000)) { statusMessage = LanguageManager.Instance.GetText("无效的数量,请输入1-1000000范围内的整数"); ((BaseUnityPlugin)this).Logger.LogError((object)("无效的数量: " + count)); } else if (currentMode == 1) { AddItemToGameInventory(selectedItemId, count); } else if (currentMode == 2) { AddScriptBookToGame(selectedItemId); } else if (currentMode == 3) { if (mapSubMode == 0) { if (string.IsNullOrEmpty(selectedPrefecture) || string.IsNullOrEmpty(selectedCounty)) { statusMessage = LanguageManager.Instance.GetText("请先选择府邸所在的郡县"); ((BaseUnityPlugin)this).Logger.LogError((object)"未选择郡县"); return; } int num = selectedJunIndex; int num2 = -1; if (num >= 0 && num < XianList.Length) { string[] array = XianList[num]; for (int i = 0; i < array.Length; i++) { if (array[i] == selectedCounty) { num2 = i; break; } } } if (num2 < 0) { statusMessage = LanguageManager.Instance.GetText("找不到选择的县"); ((BaseUnityPlugin)this).Logger.LogError((object)"无效的县选择"); return; } if (Mainload.CityData_now != null && num < Mainload.CityData_now.Count) { IEnumerable enumerable = Mainload.CityData_now[num]; if (enumerable != null) { object obj = enumerable.Cast<object>().FirstOrDefault(); if (obj != null && obj is List<string> list && list.Count > 0) { string text = list[0]; if (!string.IsNullOrEmpty(text)) { string[] array2 = text.Split(new char[1] { '|' }); if (array2.Length != 0 && array2[0] != "-1") { statusMessage = string.Format(LanguageManager.Instance.GetText("{0}未解锁或郡城叛军未清剿,无法添加府邸"), selectedPrefecture); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); ShowTipMessage(statusMessage); return; } } } } } string text2 = (string.IsNullOrEmpty(mansionCustomName) ? (selectedPrefecture + "府") : mansionCustomName); string text3 = $"{num}|{num2}"; bool flag = false; if (Mainload.Fudi_now != null) { foreach (List<string> item2 in Mainload.Fudi_now) { if (item2 != null && item2.Count > 0 && item2[0] == text3) { flag = true; break; } } } if (flag) { statusMessage = string.Format(LanguageManager.Instance.GetText("{0}-{1}已有府邸,添加失败"), selectedPrefecture, selectedCounty); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); ShowTipMessage(statusMessage); return; } if (CheckIfFarmExistsAtLocation(text3)) { statusMessage = string.Format(LanguageManager.Instance.GetText("{0}-{1}已有农庄,添加失败"), selectedPrefecture, selectedCounty); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); ShowTipMessage(statusMessage); return; } bool flag2 = false; if (Mainload.ShiJia_Now != null) { foreach (List<string> item3 in Mainload.ShiJia_Now) { if (item3 != null && item3.Count > 5 && item3[5] == text3) { flag2 = true; break; } } } if (flag2) { statusMessage = string.Format(LanguageManager.Instance.GetText("{0}-{1}已有世家,添加失败"), selectedPrefecture, selectedCounty); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); ShowTipMessage(statusMessage); return; } List<string> item = new List<string> { text3, text2, "0", "0", "0", "1", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "25", "0", "0" }; try { Mainload.Fudi_now.Add(item); ES3.Save<List<List<string>>>("Fudi_now", (object)Mainload.Fudi_now, Mainload.CunDangIndex_now + "/GameData.es3"); List<List<string>> list2 = new List<List<string>>(); ES3.Save<List<List<string>>>("BuildInto_m", (object)list2, Mainload.CunDangIndex_now + "/M" + (Mainload.Fudi_now.Count - 1) + ".es3"); Mainload.NewCreateShijia.Add(num + "|" + num2 + "|-1"); statusMessage = string.Format(LanguageManager.Instance.GetText("已在({0}-{1})添加府邸: {2} "), LanguageManager.Instance.GetText(selectedPrefecture), LanguageManager.Instance.GetText(selectedCounty), text2); ((BaseUnityPlugin)this).Logger.LogInfo((object)statusMessage); if (onlyAddMansion) { Add_notEnterHouse(); } else { Add_EnterHouse(); } } catch (Exception ex) { statusMessage = string.Format(LanguageManager.Instance.GetText("添加府邸数据失败: {0}"), ex.Message); ((BaseUnityPlugin)this).Logger.LogError((object)statusMessage); ((BaseUnityPlugin)this).Logger.LogError((object)("错误堆栈: " + ex.StackTrace)); ShowTipMessage(statusMessage); return; } ShowTipMessage(statusMessage); } else if (mapSubMode == 1) { if (string.IsNullOrEmpty(selectedPrefecture) || string.IsNullOrEmpty(selectedCounty)) { statusMessage = LanguageManager.Instance.GetText("请先选择农庄所在的郡县"); ((BaseUnityPlugin)this).Logger.LogError((object)"未选择郡县"); return; } int num3 = selectedJunIndex; int num4 = -1; if (num3 >= 0 && num3 < XianList.Length) { string[] array3 = XianList[num3]; for (int j = 0; j < array3.Length; j++) { if (array3[j] == selectedCounty) { num4 = j; break; } } } if (num4 < 0) { statusMessage = LanguageManager.Instance.GetText("找不到选择的县"); ((BaseUnityPlugin)this).Logger.LogError((object)"无效的县选择"); return; } if (Mainload.CityData_now != null && num3 < Mainload.CityData_now.Count) { IEnumerable enumerable2 = Mainload.CityData_now[num3]; if (enumerable2 != null) { object obj2 = enumerable2.Cast<object>().FirstOrDefault(); if (obj2 != null && obj2 is List<string> list3 && list3.Count > 0) { string text4 = list3[0]; if (!string.IsNullOrEmpty(text4)) { string[] array4 = text4.Split(new char[1] { '|' }); if (array4.Length != 0 && array4[0] != "-1") { statusMessage = string.Format(LanguageManager.Instance.GetText("{0}未解锁或郡城叛军未清剿,无法添加农庄"), selectedPrefecture); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); ShowTipMessage(statusMessage); return; } } } } } string text5 = (string.IsNullOrEmpty(farmCustomName) ? (selectedPrefecture + "农庄") : farmCustomName); StringBuilder stringBuilder = new StringBuilder(); int num5 = 25; for (int k = 0; k < num5; k++) { if (k < farmArea) { stringBuilder.Append("1"); } else { stringBuilder.Append("0"); } if (k < num5 - 1) { stringBuilder.Append("|"); } } string value = stringBuilder.ToString(); string text6 = $"{num3}|{num4}"; bool flag3 = false; if (Mainload.Fudi_now != null) { foreach (List<string> item4 in Mainload.Fudi_now) { if (item4 != null && item4.Count > 0 && item4[0] == text6) { flag3 = true; break; } } } if (flag3) { statusMessage = string.Format(LanguageManager.Instance.GetText("{0}-{1}已有府邸,添加失败"), selectedPrefecture, selectedCounty); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); ShowTipMessage(statusMessage); return; } bool flag4 = false; if (Mainload.ShiJia_Now != null) { foreach (List<string> item5 in Mainload.ShiJia_Now) { if (item5 != null && item5.Count > 5 && item5[5] == text6) { flag4 = true; break; } } } if (flag4) { statusMessage = string.Format(LanguageManager.Instance.GetText("{0}-{1}已有世家,添加失败"), selectedPrefecture, selectedCounty); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); ShowTipMessage(statusMessage); return; } try { if (Mainload.NongZ_now == null) { throw new Exception("Mainload.NongZ_now不存在"); } bool flag5 = false; for (int l = 0; l < Mainload.NongZ_now.Count; l++) { try { IEnumerable enumerable3 = Mainload.NongZ_now[l]; if (enumerable3 == null) { continue; } int num6 = 0; foreach (object item6 in enumerable3) { try { if (item6 is List<string> list4 && list4.Count > 0) { bool flag6 = false; int num7 = -1; for (int m = 0; m < list4.Count; m++) { if (list4[m] == text6) { flag6 = true; num7 = m; break; } } if (flag6) { flag5 = true; string text7 = list4[0]; if (text7 != "0" && text7 != "-2") { statusMessage = LanguageManager.Instance.GetText("添加失败:该处已有农庄属于【其它世家】"); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); break; } if (text7 == "-1") { statusMessage = LanguageManager.Instance.GetText("添加失败:该处已有农庄属于【你】"); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); break; } list4[6] = text5; list4[5] = farmArea.ToString(); list4[2] = value; list4[0] = "-1"; statusMessage = string.Format(LanguageManager.Instance.GetText("已解锁农庄: {0} ({1}-{2}),面积: {3}"), text5, LanguageManager.Instance.GetText(selectedPrefecture), LanguageManager.Instance.GetText(selectedCounty), farmArea); ((BaseUnityPlugin)this).Logger.LogInfo((object)statusMessage); Mainload.isUpdateScene = true; break; } } } catch (Exception ex2) { ((BaseUnityPlugin)this).Logger.LogWarning((object)$"处理第{l}个郡的第{num6}个农庄时发生异常: {ex2.Message}"); } num6++; } if (!flag5) { continue; } break; } catch (Exception ex3) { ((BaseUnityPlugin)this).Logger.LogWarning((object)$"处理第{l}个郡时发生异常: {ex3.Message}"); } } if (!flag5) { statusMessage = string.Format(LanguageManager.Instance.GetText("添加失败:你所选择的位置并未解锁,请解锁{0}郡再添加"), LanguageManager.Instance.GetText(selectedPrefecture)); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); } } catch (Exception ex4) { statusMessage = LanguageManager.Instance.GetText("添加农庄失败:") + ex4.Message; ((BaseUnityPlugin)this).Logger.LogError((object)statusMessage); return; } ShowTipMessage(statusMessage); } else if (mapSubMode == 2) { if (string.IsNullOrEmpty(selectedPrefecture)) { statusMessage = LanguageManager.Instance.GetText("请先选择要解锁的郡"); ((BaseUnityPlugin)this).Logger.LogError((object)"未选择郡"); return; } int num8 = selectedJunIndex; if (num8 < 0 || num8 >= JunList.Length) { statusMessage = LanguageManager.Instance.GetText("无效的郡选择"); ((BaseUnityPlugin)this).Logger.LogError((object)("无效的郡索引: " + num8)); return; } ((BaseUnityPlugin)this).Logger.LogInfo((object)("选择的郡: " + JunList[num8] + ",索引: " + num8)); ((BaseUnityPlugin)this).Logger.LogInfo((object)("Mainload.Fengdi_now长度: " + (Mainload.Fengdi_now?.Count ?? (-1)))); try { if (Mainload.CityData_now != null && num8 < Mainload.CityData_now.Count) { IEnumerable enumerable4 = Mainload.CityData_now[num8]; if (enumerable4 != null) { object obj3 = enumerable4.Cast<object>().FirstOrDefault(); if (obj3 != null && obj3 is List<string> list5 && list5.Count > 0) { string text8 = list5[0]; if (!string.IsNullOrEmpty(text8)) { string[] array5 = text8.Split(new char[1] { '|' }); if (array5.Length != 0 && array5[0] != "-1") { statusMessage = string.Format(LanguageManager.Instance.GetText("{0}未解锁或郡城叛军未清剿,无法解锁封地"), selectedPrefecture); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); ShowTipMessage(statusMessage); return; } } } } } if (Mainload.Fengdi_now == null || Mainload.Fengdi_now.Count <= 0) { throw new Exception("Mainload.Fengdi_now不存在或为空"); } if (num8 + 1 < Mainload.Fengdi_now.Count) { List<string> list6 = Mainload.Fengdi_now[num8 + 1]; if (list6 != null && list6.Count > 0) { if (list6[0] == "1") { statusMessage = string.Format(LanguageManager.Instance.GetText("{0}的封地已解锁"), selectedPrefecture); ((BaseUnityPlugin)this).Logger.LogInfo((object)statusMessage); return; } list6[0] = "1"; statusMessage = string.Format(LanguageManager.Instance.GetText("{0}的封地已解锁"), selectedPrefecture); ((BaseUnityPlugin)this).Logger.LogInfo((object)statusMessage); } } else { statusMessage = string.Format(LanguageManager.Instance.GetText("{0}的封地数据不存在或索引错误"), selectedPrefecture); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); } } catch (Exception ex5) { statusMessage = LanguageManager.Instance.GetText("解锁封地失败: ") + ex5.Message; ((BaseUnityPlugin)this).Logger.LogError((object)statusMessage); ((BaseUnityPlugin)this).Logger.LogError((object)("错误堆栈: " + ex5.StackTrace)); return; } ShowTipMessage(statusMessage); } else if (mapSubMode == 3) { statusMessage = LanguageManager.Instance.GetText("添加失败:功能正在开发中"); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); ShowTipMessage(statusMessage); } } else { if (currentMode != 0) { return; } if (currencyValue <= 0) { statusMessage = LanguageManager.Instance.GetText("请输入有效的数值"); ((BaseUnityPlugin)this).Logger.LogError((object)("无效的数值: " + currencyValue)); return; } if (selectedCurrencyType == 0) { FormulaData.ChangeCoins(currencyValue); statusMessage = string.Format(LanguageManager.Instance.GetText("已添加{0}铜钱"), currencyValue); ((BaseUnityPlugin)this).Logger.LogInfo((object)statusMessage); } else if (selectedCurrencyType == 1) { if (!int.TryParse(Mainload.CGNum[1], out var result)) { statusMessage = LanguageManager.Instance.GetText("获取当前元宝数量失败"); ((BaseUnityPlugin)this).Logger.LogError((object)"获取当前元宝数量失败"); return; } Mainload.CGNum[1] = (result + currencyValue).ToString(); statusMessage = string.Format(LanguageManager.Instance.GetText("已添加{0}元宝"), currencyValue); ((BaseUnityPlugin)this).Logger.LogInfo((object)statusMessage); } ShowTipMessage(statusMessage); } } catch (Exception ex6) { statusMessage = LanguageManager.Instance.GetText("添加物品失败: ") + ex6.Message; ((BaseUnityPlugin)this).Logger.LogError((object)("添加物品失败: " + ex6.Message)); } } private void AddItemToGameInventory(int itemId, int itemCount) { try { if (!itemList.ContainsKey(itemId)) { statusMessage = LanguageManager.Instance.GetText("无效的物品ID"); ((BaseUnityPlugin)this).Logger.LogError((object)string.Format(LanguageManager.Instance.GetText("无效的物品ID: {0}"), itemId)); } else if (itemCount <= 0) { ShowItemCountZeroMessage(itemId); } else { UpdateOrAddItem(itemId, itemCount); ShowItemAddedMessage(itemId, itemCount); } } catch (Exception ex) { statusMessage = LanguageManager.Instance.GetText("添加物品时发生错误: ") + ex.Message; ((BaseUnityPlugin)this).Logger.LogError((object)string.Format(LanguageManager.Instance.GetText("添加物品失败: {0}"), ex.Message)); } } private void UpdateOrAddItem(int itemId, int itemCount) { string itemIdStr = itemId.ToString(); int num = FindExistingItemIndex(itemIdStr); if (num >= 0) { UpdateExistingItemQuantity(num, itemCount); } else { AddNewItem(itemIdStr, itemCount); } } private int FindExistingItemIndex(string itemIdStr) { for (int i = 0; i < Mainload.Prop_have.Count; i++) { if (Mainload.Prop_have[i][0] == itemIdStr) { return i; } } return -1; } private void UpdateExistingItemQuantity(int itemIndex, int quantityToAdd) { int num = int.Parse(Mainload.Prop_have[itemIndex][1]); Mainload.Prop_have[itemIndex][1] = (num + quantityToAdd).ToString(); } private void AddNewItem(string itemIdStr, int quantity) { Mainload.Prop_have.Add(new List<string> { itemIdStr, quantity.ToString() }); } private void ShowItemCountZeroMessage(int itemId) { string item = itemList[itemId].Item1; string message = string.Format(LanguageManager.Instance.GetText("添加的【{0}】数量为0,添加失败"), item); ShowTipMessage(message); statusMessage = string.Format(LanguageManager.Instance.GetText("添加失败:物品【{0}】数量为0"), item); ((BaseUnityPlugin)this).Logger.LogWarning((object)statusMessage); } private void ShowItemAddedMessage(int itemId, int quantity) { string item = itemList[itemId].Item1; string message = string.Format(LanguageManager.Instance.GetText("已添加: {0} x {1}"), item, quantity); ShowTipMessage(message); statusMessage = string.Format(LanguageManager.Instance.GetText("已添加物品: {0} x {1}"), item, quantity); ((BaseUnityPlugin)this).Logger.LogInfo((object)statusMessage); } private void AddScriptBookToGame(int bookId) { try { if (!bookList.ContainsKey(bookId)) { statusMessage = LanguageManager.Instance.GetText("无效的话本ID"); ((BaseUnityPlugin)this).Logger.LogError((object)string.Format(LanguageManager.Instance.GetText("无效的话本ID: {0}"), bookId)); } else if (!CheckIfBookExists(bookId)) { AddNewBookToGame(bookId); } else { ShowBookExistsMessage(bookId); } } catch (Exception ex) { statusMessage = LanguageManager.Instance.GetText("添加话本时发生错误: ") + ex.Message; ((BaseUnityPlugin)this).Logger.LogError((object)string.Format(LanguageManager.Instance.GetText("添加话本失败: {0}"), ex.Message)); } } private bool CheckIfBookExists(int bookId) { if (Mainload.XiQuHave_Now == null || Mainload.XiQuHave_Now.Count <= 0) { return false; } return Mainload.XiQuHave_Now.Any((List<string> book) => book[0] == bookId.ToString()); } private void AddNewBookToGame(int bookId) { Mainload.XiQuHave_Now.Add(new List<string> { bookId.ToString(), "", "100" }); string arg = (LanguageManager.Instance.IsChineseLanguage() ? bookList[bookId][0] : bookList[bookId][1]); string message = string.Format(LanguageManager.Instance.GetText("已添加: {0}"), arg); ShowTipMessage(message); statusMessage = string.Format(LanguageManager.Instance.GetText("已添加话本: {0}"), arg); ((BaseUnityPlugin)this).Logger.LogInfo((object)statusMessage); } private void ShowBookExistsMessage(int bookId) { statusMessage = string.Format(LanguageManager.Instance.GetText("话本{0}已存在,不重复添加"), bookList[bookId][0]); ((BaseUnityPlugin)this).Logger.LogInfo((object)statusMessage); string arg = (LanguageManager.Instance.IsChineseLanguage() ? bookList[bookId][0] : bookList[bookId][1]); string message = string.Format(LanguageManager.Instance.GetText("添加失败: 话本{0}已存在"), arg); ShowTipMessage(message); } private bool CheckIfFarmExistsAtLocation(string locationKey) { try { if (Mainload.NongZ_now == null) { return false; } foreach (List<List<string>> item in Mainload.NongZ_now) { IEnumerable enumerable = item; if (enumerable == null) { continue; } foreach (object item2 in enumerable) { try { if (item2 is List<string> list && list.Count > 0 && list.Contains(locationKey)) { if (list[0] == "-1") { ((BaseUnityPlugin)this).Logger.LogWarning((object)string.Format(LanguageManager.Instance.GetText("发现已存在的农庄,位置: {0},状态: {1}"), locationKey, list[0])); return true; } ((BaseUnityPlugin)this).Logger.LogWarning((object)string.Format(LanguageManager.Instance.GetText("发现状态为0的农庄,位置: {0},允许添加府邸"), locationKey)); } } catch (Exception ex) { ((BaseUnityPlugin)this).Logger.LogError((object)string.Format(LanguageManager.Instance.GetText("检查农庄时出错: {0}"), ex.Message)); } } } } catch (Exception ex2) { ((BaseUnityPlugin)this).Logger.LogError((object)string.Format(LanguageManager.Instance.GetText("CheckIfFarmExistsAtLocation 方法出错: {0}"), ex2.Message)); } return false; } private void Add_notEnterHouse() { Mainload.isMapPanelOpen = true; showMenu = false; blockGameInput = false; } private void Add_EnterHouse() { Mainload.isMapPanelOpen = false; Mainload.SceneID = "M|" + (Mainload.Fudi_now.Count - 1); } private void ShowTipMessage(string message) { try { if (!string.IsNullOrEmpty(message)) { Mainload.Tip_Show.Add(new List<string> { "1", message }); } } catch (Exception ex) { ((BaseUnityPlugin)this).Logger.LogError((object)string.Format(LanguageManager.Instance.GetText("显示提示信息时出错: {0}"), ex.Message)); } } } internal class LanguageManager { private static readonly LanguageManager instance = new LanguageManager(); private string currentLanguageCode = "zh-CN"; private Dictionary<string, Dictionary<string, string>> translations = new Dictionary<string, Dictionary<string, string>>(); public static LanguageManager Instance => instance; private LanguageManager() { InitializeTranslations(); } private void InitializeTranslations() { translations["zh-CN"] = new Dictionary<string, string> { { "物品添加器", "物品添加器" }, { "货币", "货币" }, { "物品", "物品" }, { "话本", "话本" }, { "地图", "地图" }, { "搜索物品:", "搜索物品:" }, { "搜索:", "搜索:" }, { "分类:", "分类:" }, { "清空", "清空" }, { "添加物品", "添加物品" }, { "添加", "添加" }, { "使用说明:", "使用说明:" }, { "生成府邸所在的郡县:", "生成府邸所在的郡县:" }, { "1. 请在点击添加前先保存游戏,以便回档", "1. 请在点击添加前先保存游戏,以便回档" }, { "2. 按F2键显示/隐藏窗口", "2. 按F2键显示/隐藏窗口。" }, { "3. 切换模式选择:物品模式/货币模式/话本模式/地图模式", "3. 切换模式选择:物品模式/货币模式/话本模式/地图模式。" }, { "4. 输入部分字符可搜索物品或话本", "4. 输入部分字符可搜索物品或话本。" }, { "5. 选择项目并选择或输入数量后点击添加按钮", "5. 选择项目并选择或输入数量后点击添加按钮。" }, { "Mod作者:AnZhi20", "Mod作者:AnZhi20" }, { "Mod版本:", "Mod版本:" }, { "特殊物品", "特殊物品" }, { "新增物品", "新增物品" }, { "丹药", "丹药" }, { "符咒", "符咒" }, { "毒药", "毒药" }, { "美食", "美食" }, { "农产", "农产" }, { "布料", "布料" }, { "矿产", "矿产" }, { "香粉", "香粉" }, { "珠宝", "珠宝" }, { "武器", "武器" }, { "书法", "书法" }, { "丹青", "丹青" }, { "文玩", "文玩" }, { "乐器", "乐器" }, { "茶具", "茶具" }, { "香具", "香具" }, { "瓷器", "瓷器" }, { "美酒", "美酒" }, { "皮毛", "皮毛" }, { "书籍", "书籍" }, { "香烛", "香烛" }, { "肥料", "肥料" }, { "粮食", "粮食" }, { "蔬菜", "蔬菜" }, { "肉食", "肉食" }, { "生茶", "生茶" }, { "奶酪", "奶酪" }, { "果脯", "果脯" }, { "青梅", "青梅" }, { "樱桃", "樱桃" }, { "柿子", "柿子" }, { "枇杷", "枇杷" }, { "桑葚", "桑葚" }, { "桔子", "桔子" }, { "荔枝", "荔枝" }, { "熊掌", "熊掌" }, { "麻布", "麻布" }, { "粗布", "粗布" }, { "皮革", "皮革" }, { "素绫", "素绫" }, { "交织绫", "交织绫" }, { "单罗纱", "单罗纱" }, { "四罗纱", "四罗纱" }, { "雪缎", "雪缎" }, { "花缎", "花缎" }, { "云锦", "云锦" }, { "蜀锦", "蜀锦" }, { "筛绢", "筛绢" }, { "天香绢", "天香绢" }, { "黄金", "黄金" }, { "白银", "白银" }, { "青铜", "青铜" }, { "黑铁", "黑铁" }, { "白锡", "白锡" }, { "赤汞", "赤汞" }, { "玉石", "玉石" }, { "硫磺", "硫磺" }, { "硝石", "硝石" }, { "煤炭", "煤炭" }, { "石灰", "石灰" }, { "石黛", "石黛" }, { "青雀头黛", "青雀头黛" }, { "铜黛", "铜黛" }, { "螺子黛", "螺子黛" }, { "铅粉", "铅粉" }, { "紫粉", "紫粉" }, { "桃花粉", "桃花粉" }, { "胭脂", "胭脂" }, { "乌膏", "乌膏" }, { "泡花露", "泡花露" }, { "蔷薇露", "蔷薇露" }, { "银笄(女)", "银笄(女)" }, { "钿花(女)", "钿花(女)" }, { "花钗(女)", "花钗(女)" }, { "铒铛(女)", "铒铛(女)" }, { "步摇(女)", "步摇(女)" }, { "金簪(女)", "金簪(女)" }, { "华胜(女)", "华胜(女)" }, { "宫绦(女)", "宫绦(女)" }, { "梳篦(女)", "梳篦(女)" }, { "臂钏(女)", "臂钏(女)" }, { "璎珞(女)", "璎珞(女)" }, { "发钗(男)", "发钗(男)" }, { "扳指(男)", "扳指(男)" }, { "玉佩(男)", "玉佩(男)" }, { "带钩(男)", "带钩(男)" }, { "鱼", "鱼" }, { "棉花", "棉花" }, { "长寿丹", "长寿丹" }, { "极乐丹", "极乐丹" }, { "美颜丹", "美颜丹" }, { "极品美颜丹", "极品美颜丹" }, { "极品长寿丹", "极品长寿丹" }, { "团饼茶", "团饼茶" }, { "盐", "盐" }, { "合欢丹", "合欢丹" }, { "无名字轴", "无名字轴" }, { "无名碑帖", "无名碑帖" }, { "名家字轴", "名家字轴" }, { "名家碑帖", "名家碑帖" }, { "传世字轴", "传世字轴" }, { "传世碑帖", "传世碑帖" }, { "无名山水图", "无名山水图" }, { "无名江山图", "无名江山图" }, { "名家山水图", "名家山水图" }, { "名家江山图", "名家江山图" }, { "传世山水图", "传世山水图" }, { "传世江山图", "传世江山图" }, { "玉圭", "玉圭" }, { "玉碗", "玉碗" }, { "玉瓶", "玉瓶" }, { "玉琥", "玉琥" }, { "玉璧", "玉璧" }, { "玉璜", "玉璜" }, { "玉琮", "玉琮" }, { "玉山", "玉山" }, { "玉屏", "玉屏" }, { "竹弓", "竹弓" }, { "木弓", "木弓" }, { "牛角弓", "牛角弓" }, { "木角弓", "木角弓" }, { "木弩", "木弩" }, { "铜弩", "铜弩" }, { "连弩", "连弩" }, { "单刀", "单刀" }, { "朴刀", "朴刀" }, { "鬼头刀", "鬼头刀" }, { "三尖两刃刀", "三尖两刃刀" }, { "三尺剑", "三尺剑" }, { "软剑", "软剑" }, { "七尺剑", "七尺剑" }, { "子母剑", "子母剑" }, { "提梁壶", "提梁壶" }, { "油滴盏", "油滴盏" }, { "天目盏", "天目盏" }, { "青瓷盏", "青瓷盏" }, { "红釉盏", "红釉盏" }, { "青瓷壶", "青瓷壶" }, { "楠木茶盘", "楠木茶盘" }, { "檀木茶盘", "檀木茶盘" }, { "玉壶", "玉壶" }, { "铜薰球", "铜薰球" }, { "铜香炉", "铜香炉" }, { "楠木香筒", "楠木香筒" }, { "金薰球", "金薰球" }, { "檀木香盒", "檀木香盒" }, { "金香盒", "金香盒" }, { "檀木香筒", "檀木香筒" }, { "金香炉", "金香炉" }, { "高足碗", "高足碗" }, { "葫芦瓶", "葫芦瓶" }, { "扁瓶", "扁瓶" }, { "瓷枕", "瓷枕" }, { "琮式瓶", "琮式瓶" }, { "梅瓶", "梅瓶" }, { "凤尾瓶", "凤尾瓶" }, { "黄酒", "黄酒" }, { "红曲酒", "红曲酒" }, { "菊花酒", "菊花酒" }, { "茱萸酒", "茱萸酒" }, { "竹叶青", "竹叶青" }, { "荔枝酒", "荔枝酒" }, { "桂花酒", "桂花酒" }, { "琥珀酒", "琥珀酒" }, { "竹萧", "竹萧" }, { "木笛", "木笛" }, { "芦笙", "芦笙" }, { "二胡", "二胡" }, { "琵琶", "琵琶" }, { "月琴", "月琴" }, { "中瑟", "中瑟" }, { "伏羲琴", "伏羲琴" }, { "兔皮", "兔皮" }, { "狼皮", "狼皮" }, { "鹿皮", "鹿皮" }, { "狐皮", "狐皮" }, { "虎皮", "虎皮" }, { "一阶符咒", "一阶符咒" }, { "二阶符咒", "二阶符咒" }, { "三阶符咒", "三阶符咒" }, { "四阶符咒", "四阶符咒" }, { "五阶符咒", "五阶符咒" }, { "六阶符咒", "六阶符咒" }, { "番木鳖", "番木鳖" }, { "乌头", "乌头" }, { "雷公腾", "雷公腾" }, { "断肠草", "断肠草" }, { "鹤顶红", "鹤顶红" }, { "回魂丹", "回魂丹" }, { "《三字经》", "《三字经》" }, { "《弟子规》", "《弟子规》" }, { "《千字文》", "《千字文》" }, { "《蒙求》", "《蒙求》" }, { "《广韵》", "《广韵》" }, { "《广雅》", "《广雅》" }, { "《九章》", "《九章》" }, { "《尔雅》", "《尔雅》" }, { "《临川集》", "《临川集》" }, { "《花间集》", "《花间集》" }, { "《诗品》", "《诗品》" }, { "《文选》", "《文选》" }, { "《诗经》", "《诗经》" }, { "《尚书》", "《尚书》" }, { "《礼记》", "《礼记》" }, { "《周易》", "《周易》" }, { "《春秋》", "《春秋》" }, { "《大学》", "《大学》" }, { "《中庸》", "《中庸》" }, { "《论语》", "《论语》" }, { "《孟子》", "《孟子》" }, { "《法言》", "《法言》" }, { "《潜夫论》", "《潜夫论》" }, { "《手搏六篇》", "《手搏六篇》" }, { "《棍棒体势》", "《棍棒体势》" }, { "《麻杈棍谱》", "《麻杈棍谱》" }, { "《手臂录》", "《手臂录》" }, { "《拳术教范》", "《拳术教范》" }, { "《苌氏武技书》", "《苌氏武技书》" }, { "《阴符枪谱》", "《阴符枪谱》" }, { "《太极拳经》", "《太极拳经》" }, { "《马槊谱》", "《马槊谱》" }, { "《三才图会》", "《三才图会》" }, { "《拳经》", "《拳经》" }, { "《射经》", "《射经》" }, { "《剑经》", "《剑经》" }, { "《角力记》", "《角力记》" }, { "《耕余剩技》", "《耕余剩技》" }, { "《士商类要》", "《士商类要》" }, { "《货殖列传》", "《货殖列传》" }, { "《平准书》", "《平准书》" }, { "《计然书》", "《计然书》" }, { "《贸易赋》", "《贸易赋》" }, { "《食货志》", "《食货志》" }, { "《轻重篇》", "《轻重篇》" }, { "《考工记》", "《考工记》" }, { "《商君书》", "《商君书》" }, { "《陶朱公生意经》", "《陶朱公生意经》" }, { "《商经》", "《商经》" }, { "《琴律发微》", "《琴律发微》" }, { "《琴声十六法》", "《琴声十六法》" }, { "《唱论》", "《唱论》" }, { "《琴操》", "《琴操》" }, { "《乐府杂录》", "《乐府杂录》" }, { "《乐章集》", "《乐章集》" }, { "《乐府诗集》", "《乐府诗集》" }, { "《乐书要录》", "《乐书要录》" }, { "《碧鸡漫志》", "《碧鸡漫志》" }, { "《琴清英》", "《琴清英》" }, { "《梅花三弄》", "《梅花三弄》" }, { "《猗兰操》", "《猗兰操》" }, { "《广陵散》", "《广陵散》" }, { "《阳春白雪》", "《阳春白雪》" }, { "《高山流水》", "《高山流水》" }, { "《乐记》", "《乐记》" }, { "《乐经》", "《乐经》" }, { "《琴赋》", "《琴赋》" }, { "《溪山琴况》", "《溪山琴况》" }, { "《太古遗音》", "《太古遗音》" }, { "《左传》", "《左传》" }, { "《史记》", "《史记》" }, { "《间书》", "《间书》" }, { "《捭阖》", "《捭阖》" }, { "《飞箝》", "《飞箝》" }, { "《许合》", "《许合》" }, { "《揣篇》", "《揣篇》" }, { "《苏子》", "《苏子》" }, { "《太白阴经》", "《太白阴经》" }, { "《战国策》", "《战国策》" }, { "《韩非子》", "《韩非子》" }, { "《孙子兵法》", "《孙子兵法》" }, { "《鬼谷子》", "《鬼谷子》" }, { "《本经阴符》", "《本经阴符》" }, { "《山海经》", "《山海经》" }, { "《符咒秘本》", "《符咒秘本》" }, { "《巫阳古书》", "《巫阳古书》" }, { "《阴山法笈》", "《阴山法笈》" }, { "《鲁班书》", "《鲁班书》" }, { "《千金方》", "《千金方》" }, { "《温热经纬》", "《温热经纬》" }, { "《伤寒杂病论》", "《伤寒杂病论》" }, { "《脉经》", "《脉经》" }, { "《金匮要略》", "《金匮要略》" }, { "《神农本草》", "《神农本草》" }, { "《本草纲目》", "《本草纲目》" }, { "《黄帝内经》", "《黄帝内