From 0d2ef4467b25fefc1755a8e1663fee727e8669fd Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 10:02:05 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=EF=BC=9A?= =?UTF-8?q?=E6=89=93=E5=8C=85=E8=8B=B1=E6=96=87=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/BuildHelper.py | 10 + src/Challenger/i18n/template.pot | 786 +++++++++++++++---------------- src/VeinMiner/README_EN.md | 85 ++++ 3 files changed, 488 insertions(+), 393 deletions(-) create mode 100644 src/VeinMiner/README_EN.md diff --git a/scripts/BuildHelper.py b/scripts/BuildHelper.py index ffcfdb97..08dc479e 100644 --- a/scripts/BuildHelper.py +++ b/scripts/BuildHelper.py @@ -39,6 +39,14 @@ def zip_files_in_folder(folder_path, zip_file_path): print(f"🔍 找到README.md({destination_path})") except: print(f"⚠️ README移动失败({file_name})") + try: + if file_name.endswith('.csproj'): + source_path = os.path.join(dir_path, 'README_EN.md') + destination_path = os.path.join(cwd, 'out', f'{build_type}', file_name.replace('.csproj', '.md')) + shutil.copyfile(source_path, destination_path) + print(f"🔍 找到README_EN.md({destination_path})") + except: + pass os.makedirs(f'out/{build_type}/Plugins', exist_ok=True) @@ -88,4 +96,6 @@ def zip_files_in_folder(folder_path, zip_file_path): else: print('❓Gitee插件包上传失败:', response.status_code) print(response.json()) + + print("📦 插件打包结束!") diff --git a/src/Challenger/i18n/template.pot b/src/Challenger/i18n/template.pot index a51aa0ca..af62a59a 100644 --- a/src/Challenger/i18n/template.pot +++ b/src/Challenger/i18n/template.pot @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: Challenger\n" -"POT-Creation-Date: 2024-08-30 23:41:38+0800\n" -"PO-Revision-Date: 2024-08-30 23:41:39+0800\n" +"POT-Creation-Date: 2024-09-01 09:59:49+0800\n" +"PO-Revision-Date: 2024-09-01 09:59:49+0800\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -10,698 +10,698 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: GetText.NET Extractor\n" -#: ..\..\Challenger\Challenger.cs:2007 +#: ..\..\Challenger\Challenger.cs:2013 #, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:即将下雨" +msgid "{0} 收听了 {1} 天气预报收音广播:即将挂起风" msgstr "" -#: ..\..\Challenger\Challenger.cs:2054 -#, csharp-format -msgid "{0} 收听了 {1} 世界先知广播:{2}血月" +#: ..\..\Challenger.CNPCs\QueenBee.cs:178 +msgid "吱嗡" msgstr "" -#: ..\..\Challenger\Challenger.cs:2045 -#, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:即将刮起沙尘暴" +#: ..\..\Challenger\Challenger.cs:1956 +#: ..\..\Challenger\Challenger.cs:1957 +msgid "永夜剑辉已启用" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:195 -msgid "你找到那颗子弹了吗" +#: ..\..\Challenger.CNPCs\WallofFlesh.cs:109 +msgid "速度与激情" msgstr "" -#: ..\..\Challenger\Challenger.cs:34 -msgid "增强游戏难度,更好的游戏体验" +#: ..\..\Challenger\Challenger.cs:295 +msgid "陨石回魔 + 3" msgstr "" -#: ..\..\Challenger\Challenger.cs:1886 -msgid "文字提示已启用" +#: ..\..\Challenger\Challenger.cs:1880 +msgid "输入 /cenable 来启用挑战模式,再次使用取消" msgstr "" -#: ..\..\Challenger\Challenger.cs:1949 -msgid "未启用挑战模式!" +#: ..\..\Challenger\Challenger.cs:1872 +msgid "文字提示已启用" msgstr "" -#: ..\..\Challenger\Challenger.cs:63 -msgid "输入 /cenable 来启用挑战模式,再次使用取消" +#: ..\..\Challenger\Challenger.cs:1310 +msgid "" +"【蜘蛛套装】\n" +"挑战模式奖励:攻击时,给予敌人中毒和剧毒减益\n" +",按“up”键生成一个毒牙药水瓶,砸中敌人时爆炸" msgstr "" -#: ..\..\Challenger\Challenger.cs:1232 -msgid "" -"【忍者套装】\n" -"挑战模式奖励:有四分之一概率闪避非致命伤害并\n" -"释放烟雾" +#: ..\..\Challenger.CNPCs\Skeletron.cs:139 +msgid "诅咒开始应验" msgstr "" -#: ..\..\Challenger\Challenger.cs:1368 -#, csharp-format -msgid "" -"【分趾袜】\n" -"挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" -"{0}秒" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:217 +msgid "疯狗狂叫!!!" msgstr "" -#: ..\..\Challenger.CProjs\CrystalLeafShot.cs:35 -#: ..\..\Challenger.CProjs\CrystalLeafShot.cs:36 -#, csharp-format -msgid "CrystalLeafShot -> MyEffect 异常:{0}" +#: ..\..\Challenger.CNPCs\SkeletronHand.cs:106 +msgid "离地牢远点!!!" msgstr "" -#: ..\..\Challenger\Challenger.cs:1354 -msgid "" -"【幽魂套装】\n" -"挑战模式奖励:根据头饰选择增加40血上限或80魔\n" -"力上限;召唤 2个幽魂诅咒环绕玩家,向附近敌人攻击" +#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:80 +msgid "你真的能分清真假血弹吗" msgstr "" -#: ..\..\Challenger\Challenger.cs:1330 +#: ..\..\Challenger\Challenger.cs:1383 msgid "" -"【海龟套装】\n" -"挑战模式奖励:增加60血上限,自动在附近释放爆\n" -"炸碎片" +"【皇家凝胶】\n" +"挑战模式奖励:天空开始下凝胶小雨" msgstr "" -#: ..\..\Challenger\Challenger.cs:1237 -msgid "" -"【化石套装】\n" -"挑战模式奖励:在头上召唤一个琥珀光球,向敌人\n" -"抛出极快的闪电矢" +#: ..\..\Challenger.CNPCs\QueenBee.cs:172 +msgid "嗡嗡" msgstr "" -#: ..\..\Challenger\Challenger.cs:1383 +#: ..\..\Challenger\Challenger.cs:1395 msgid "" -"【蜜蜂背包】\n" -"挑战模式奖励:不间断地向四周扔出毒蜂罐,爆炸\n" -"后释放一只蜜蜂" +"【混乱之脑】\n" +"挑战模式奖励:输入“/cf”混乱周围所有敌怪" msgstr "" -#: ..\..\Challenger\Challenger.cs:1965 -#: ..\..\Challenger\Challenger.cs:1966 -msgid "神圣剑辉已启用" +#: ..\..\Challenger.CNPCs\QueenBee.cs:129 +msgid "谁人惊扰了我的蜂巢!" msgstr "" -#: ..\..\Challenger\Challenger.cs:1391 +#: ..\..\Challenger\Challenger.cs:1380 msgid "" -"【挥发明胶】\n" -"挑战模式奖励:击中敌人有概率掉落碎魔晶,珍珠\n" -"石,凝胶等" +"【阴森套装】\n" +"挑战模式奖励:使用鞭子时,甩出蝙蝠或南\n" +"瓜头" msgstr "" -#: ..\..\Challenger\Challenger.cs:1954 -msgid "请在游戏里使用该指令" +#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:103 +msgid "糊你一脸" msgstr "" -#: ..\..\Challenger\Challenger.cs:2040 -#, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:不会有沙尘暴" +#: ..\..\Challenger\Challenger.cs:1320 +msgid "" +"【禁戒套装】\n" +"挑战模式奖励:释放自动寻的灵焰魂火攻击附近的\n" +"敌人" msgstr "" -#: ..\..\Challenger\Challenger.cs:2062 -#, csharp-format -msgid "{0} 收听了 {1} 世界先知广播:{2}灯笼夜" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:181 +msgid "你感觉寒冷刺骨" msgstr "" -#: ..\..\Challenger\Challenger.cs:71 -msgid "输入 /cf 来实现某些技能的或状态的切换" +#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:42 +msgid "呜哇哇" msgstr "" -#: ..\..\Challenger.CProjs\BeetleHeal.cs:52 -#, csharp-format -msgid "甲虫治疗 + {0} 治疗者:{1}" +#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:107 +msgid "哇哇嗷" msgstr "" -#: ..\..\Challenger.CNPCs\SkeletronHand.cs:67 -msgid "你打痛我右手了!!!" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:157 +msgid "史莱姆王习得冰魔法归来" msgstr "" -#: ..\..\Challenger\Challenger.cs:200 -msgid "闪避锁血成功!" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:207 +msgid "猪突猛进!" msgstr "" -#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:90 -msgid "虚虚实实,实实虚虚" +#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:119 +msgid "刺啦" msgstr "" -#: ..\..\Challenger\Challenger.cs:1250 +#: ..\..\Challenger\Challenger.cs:1369 msgid "" -"【暗影套装】\n" -"挑战模式奖励:暴击时从玩家周围生成吞噬怪飞弹\n" -"攻击周围敌人,冷却 1秒" -msgstr "" - -#: ..\..\Challenger.CProjs\BloodBagProj.cs:129 -#, csharp-format -msgid "血包治疗 + {0}" +"【蘑菇套装】\n" +"挑战模式奖励:射弹会不稳定地留下蘑菇" msgstr "" -#: ..\..\Challenger\Challenger.cs:1380 +#: ..\..\Challenger\Challenger.cs:1295 msgid "" -"【收音机零件】\n" -"挑战模式奖励:输入“/cf”收听天气预报,在困难\n" -"模式中可以收听世界先知预报" +"【蜜蜂套装】\n" +"挑战模式奖励:给予永久的蜂蜜增益;不间断地向\n" +"四周撒蜂糖罐,玩家接触后回血并给予15秒蜂蜜增\n" +"益;对玩家自身的治疗量略低于对其他玩家" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:162 -msgid "再让我逮到一下你就玩玩" +#: ..\..\Challenger\Challenger.cs:1940 +msgid "请在游戏里使用该指令" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:129 -msgid "谁人惊扰了我的蜂巢!" +#: ..\..\Challenger\Challenger.cs:1300 +msgid "" +"【黑曜石套装】\n" +"挑战模式奖励:因为盗贼的祝福,掉落物会尝试掉落两次\n" +"(仅对非boss生物和非高血量怪物有效)" msgstr "" -#: ..\..\Challenger.CNPCs\WallofFlesh.cs:87 -msgid "罪恶血祭召唤远古守卫" +#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:36 +msgid "毒牙咬击" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:39 -#: ..\..\Challenger.CNPCs\Skeletron.cs:165 -msgid "创死你" +#: ..\..\Challenger\Challenger.cs:1271 +msgid "" +"【暗影套装】\n" +"挑战模式奖励:暴击时从玩家周围生成吞噬怪飞弹\n" +"攻击周围敌人,冷却 1秒" msgstr "" -#: ..\..\Challenger\Challenger.cs:1876 -msgid "挑战模式已关闭,无法开启文字提示" +#: ..\..\Challenger\Challenger.cs:1114 +#, csharp-format +msgid "魔力值上限 - {0}" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:127 -msgid "嘎吱作响" +#: ..\..\Challenger\Challenger.cs:533 +#, csharp-format +msgid "[c/95CFA6:<挑战者:挖矿套>] 背包已满,还需空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:{1}] ." msgstr "" -#: ..\..\Challenger\Challenger.cs:1222 -msgid "" -"【挖矿套装】\n" -"挑战模式奖励:给予永久的挖矿、糖果冲刺Buff\n" -"启用连锁挖矿能力" +#: ..\..\Challenger\Challenger.cs:64 +msgid "输入 /ctip 来启用内容提示,如各种物品的强化文字提示,再次使用取消" msgstr "" -#: ..\..\Challenger\Challenger.cs:110 -msgid "[挑战者模式]重新加载配置完毕。" +#: ..\..\Challenger\Challenger.cs:1253 +msgid "" +"【忍者套装】\n" +"挑战模式奖励:有四分之一概率闪避非致命伤害并\n" +"释放烟雾" msgstr "" -#: ..\..\Challenger\Challenger.cs:1227 +#: ..\..\Challenger\Challenger.cs:1392 +#, csharp-format msgid "" -"【垂钓套装】\n" -"挑战模式奖励:给予永久的声纳、钓鱼、宝匣、镇\n" -"定Buff" +"【忍者大师装备】\n" +"挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" +"{0}秒" msgstr "" -#: ..\..\Challenger.CNPCs\Deerclops.cs:158 -msgid "拆掉拆掉!" +#: ..\..\Challenger.CNPCs\Skeletron.cs:162 +msgid "再让我逮到一下你就玩玩" msgstr "" -#: ..\..\Challenger.CNPCs\SkeletronHand.cs:103 -msgid "看我一记耳光" +#: ..\..\Challenger\Challenger.cs:1189 +msgid "冲刺类饰品冷却完成" msgstr "" -#: ..\..\Challenger.CNPCs\WallofFlesh.cs:99 -msgid "付出代价吧!" +#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:68 +msgid "畸形怪脑发现了新鲜的脑子" msgstr "" -#: ..\..\Challenger\Challenger.cs:2027 +#: ..\..\Challenger\Challenger.cs:2056 #, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:即将挂起风" -msgstr "" - -#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:92 -msgid "怒不可遏" -msgstr "" - -#: ..\..\Challenger.CNPCs\SkeletronHand.cs:63 -msgid "你打痛我左手了!!!" +msgid "{0} 收听了 {1} 天气预报收音广播:顺其自然,不会发生任何事件" msgstr "" -#: ..\..\Challenger\Challenger.cs:2020 -#, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:不会有风" +#: ..\..\Challenger.CNPCs\QueenBee.cs:141 +msgid "不许抢我的蜂蜜" msgstr "" -#: ..\..\Challenger\Challenger.cs:1374 +#: ..\..\Challenger\Challenger.cs:1258 msgid "" -"【混乱之脑】\n" -"挑战模式奖励:输入“/cf”混乱周围所有敌怪" -msgstr "" - -#: ..\..\Challenger.CProjs\BeetleHeal.cs:53 -#, csharp-format -msgid "你被 {0} 治疗了 {1} 点生命值" +"【化石套装】\n" +"挑战模式奖励:在头上召唤一个琥珀光球,向敌人\n" +"抛出极快的闪电矢" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:178 -msgid "吱嗡" +#: ..\..\Challenger.CNPCs\SkeletronHand.cs:100 +msgid "就这还想打倒我骷髅王爷爷" msgstr "" -#: ..\..\Challenger\Challenger.cs:1341 -msgid "" -"【甲虫套装】\n" -"挑战模式奖励:增加60血上限,敌人的伤害的一部\n" -"分会治疗周围的队友并给予buff;当装备帕拉丁盾\n" -"或其上级合成物时,帕拉丁之锤伤害翻倍" +#: ..\..\Challenger.CNPCs\WallofFleshEye.cs:101 +msgid "这么想看清我的卡姿兰大眼是吧" msgstr "" -#: ..\..\Challenger\Challenger.cs:1881 -msgid "文字提示已取消" +#: ..\..\Challenger.CNPCs\Skeletron.cs:168 +msgid "想再贴贴吗?" msgstr "" -#: ..\..\Challenger\Challenger.cs:1446 -#: ..\..\Challenger\Challenger.cs:1447 -msgid "Challenger.OnServerLeave异常3:" +#: ..\..\Challenger\Challenger.cs:1862 +msgid "挑战模式已关闭,无法开启文字提示" msgstr "" -#: ..\..\Challenger\Challenger.cs:1942 +#: ..\..\Challenger\Challenger.cs:2006 #, csharp-format -msgid "挑战模式启用,祝您愉快。[操作来自:{0}]" +msgid "{0} 收听了 {1} 天气预报收音广播:不会有风" msgstr "" -#: ..\..\Challenger\Challenger.cs:67 -msgid "输入 /ctip 来启用内容提示,如各种物品的强化文字提示,再次使用取消" +#: ..\..\Challenger\Challenger.cs:1867 +msgid "文字提示已取消" msgstr "" -#: ..\..\Challenger.CNPCs\SlimeKing.cs:157 -msgid "史莱姆王习得冰魔法归来" +#: ..\..\Challenger.CNPCs\Deerclops.cs:158 +msgid "拆掉拆掉!" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:230 -msgid "就这就这!" +#: ..\..\Challenger.CNPCs\Deerclops.cs:123 +msgid "远方的巨兽将会摧毁你所拥有的一切" msgstr "" -#: ..\..\Challenger.CProjs\BeetleHeal.cs:66 -#: ..\..\Challenger.CProjs\BeetleHeal.cs:67 +#: ..\..\Challenger\Challenger.cs:1389 #, csharp-format -msgid "代码异常4:{0}" -msgstr "" - -#: ..\..\Challenger\Challenger.cs:1255 msgid "" -"【陨石套装】\n" -"挑战模式奖励:暴击时恢复些许魔力,间歇地降下\n" -"高伤害落星攻击敌人" -msgstr "" - -#: ..\..\Challenger.CNPCs\SlimeKing.cs:204 -msgid "走位真菜" +"【分趾袜】\n" +"挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" +"{0}秒" msgstr "" -#: ..\..\Challenger\Challenger.cs:1348 +#: ..\..\Challenger\Challenger.cs:1263 msgid "" -"【蘑菇套装】\n" -"挑战模式奖励:射弹会不稳定地留下蘑菇" +"【猩红套装】\n" +"挑战模式奖励:暴击时从周围每个敌怪处吸取一定\n" +"血量随着敌怪数目增多吸血量-1,冷却 5秒" msgstr "" -#: ..\..\Challenger.CNPCs\WallofFlesh.cs:109 -msgid "速度与激情" +#: ..\..\Challenger\Challenger.cs:1290 +msgid "" +"【死灵套装】\n" +"挑战模式奖励:受到伤害时,向四周飞溅骨头;攻\n" +"击时偶尔发射骨箭" msgstr "" -#: ..\..\Challenger.CProjs\BloodBagProj.cs:103 +#: ..\..\Challenger\Challenger.cs:766 +#: ..\..\Challenger\Challenger.cs:813 +#: ..\..\Challenger\Challenger.cs:873 +#: ..\..\Challenger\Challenger.cs:910 +#: ..\..\Challenger\Challenger.cs:1047 #, csharp-format -msgid "敌怪治疗 + {0}" +msgid "生命值上限 + {0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1274 -msgid "" -"【蜜蜂套装】\n" -"挑战模式奖励:给予永久的蜂蜜增益;不间断地向\n" -"四周撒蜂糖罐,玩家接触后回血并给予15秒蜂蜜增\n" -"益;对玩家自身的治疗量略低于对其他玩家" +#: ..\..\Challenger\Challenger.cs:2031 +#, csharp-format +msgid "{0} 收听了 {1} 天气预报收音广播:即将刮起沙尘暴" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:36 -msgid "毒牙咬击" +#: ..\..\Challenger\Challenger.cs:2019 +#, csharp-format +msgid "{0} 收听了 {1} 天气预报收音广播:即将挂起狂风" msgstr "" -#: ..\..\Challenger\Challenger.cs:1365 -#, csharp-format -msgid "" -"【克苏鲁之盾】\n" -"挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" -"{0}秒" +#: ..\..\Challenger.CNPCs\SkeletronHand.cs:103 +msgid "看我一记耳光" msgstr "" -#: ..\..\Challenger.CNPCs\SlimeKing.cs:207 -msgid "连我都打不过,回家喝奶吧你" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:210 +msgid "小辣鸡" msgstr "" -#: ..\..\Challenger.CProjs\Honey.cs:44 +#: ..\..\Challenger.CProjs\BloodBagProj.cs:99 #, csharp-format -msgid "蜂糖罐治疗 + {0}" +msgid "敌怪治疗 + {0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1371 +#: ..\..\Challenger.CProjs\Honey.cs:43 #, csharp-format -msgid "" -"【忍者大师装备】\n" -"挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" -"{0}秒" +msgid "蜂糖罐治疗 + {0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1404 -msgid "世界已开启挑战模式,祝您好运!" +#: ..\..\Challenger.CNPCs\WallofFlesh.cs:87 +msgid "罪恶血祭召唤远古守卫" msgstr "" -#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:103 -msgid "糊你一脸" +#: ..\..\Challenger\Challenger.cs:1362 +msgid "" +"【甲虫套装】\n" +"挑战模式奖励:增加60血上限,敌人的伤害的一部\n" +"分会治疗周围的队友并给予buff;当装备帕拉丁盾\n" +"或其上级合成物时,帕拉丁之锤伤害翻倍" msgstr "" -#: ..\..\Challenger\Challenger.cs:1970 -#: ..\..\Challenger\Challenger.cs:1971 -msgid "永夜剑辉已启用" +#: ..\..\Challenger\Challenger.cs:1935 +msgid "未启用挑战模式!" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:153 -msgid "毒刺射你一脸" +#: ..\..\Challenger\Challenger.cs:1412 +msgid "" +"【挥发明胶】\n" +"挑战模式奖励:击中敌人有概率掉落碎魔晶,珍珠\n" +"石,凝胶等" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:175 -msgid "嗡嗡嗡嗡" +#: ..\..\Challenger\Challenger.cs:1356 +msgid "" +"【提基套装】\n" +"挑战模式奖励:增加20血上限,在鞭子的轨迹上留\n" +"下孢子" msgstr "" -#: ..\..\Challenger\Challenger.cs:532 -#, csharp-format -msgid "[c/95CFA6:<挑战者:挖矿套>] 连锁挖掘了 [c/95CFA6: {0} {1}]." +#: ..\..\Challenger\Challenger.cs:1398 +msgid "" +"【蠕虫围巾】\n" +"挑战模式奖励:免疫寒冷,霜火,灵液和咒火" msgstr "" -#: ..\..\Challenger.CNPCs\SlimeKing.cs:181 -msgid "你感觉寒冷刺骨" +#: ..\..\Challenger.CNPCs\Deerclops.cs:162 +msgid "嗷嗷" msgstr "" -#: ..\..\Challenger\Challenger.cs:1173 -msgid "冲刺类饰品冷却完成" +#: ..\..\Challenger\Challenger.cs:107 +msgid "[挑战者模式]重新加载配置完毕。" msgstr "" -#: ..\..\Challenger\Challenger.cs:1077 +#: ..\..\Challenger.CProjs\BeetleHeal.cs:52 #, csharp-format -msgid "魔力值上限 + {0}" +msgid "甲虫治疗 + {0} 治疗者:{1}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1098 -#, csharp-format -msgid "魔力值上限 - {0}" +#: ..\..\Challenger\Challenger.cs:60 +msgid "输入 /cenable 来启用挑战模式,再次使用取消" msgstr "" -#: ..\..\Challenger.CNPCs\WallofFlesh.cs:119 -msgid "咬碎你" +#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:82 +msgid "有毒的鳞甲炸裂开来" msgstr "" -#: ..\..\Challenger.CNPCs\Deerclops.cs:135 -msgid "冰雪从天而降" +#: ..\..\Challenger\Challenger.cs:2026 +#, csharp-format +msgid "{0} 收听了 {1} 天气预报收音广播:不会有沙尘暴" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:82 -msgid "有毒的鳞甲炸裂开来" +#: ..\..\Challenger\Challenger.cs:1425 +msgid "世界已开启挑战模式,祝您好运!" msgstr "" -#: ..\..\Challenger\Challenger.cs:2050 -#, csharp-format -msgid "{0} 收听了 {1} 世界先知广播:{2}满月" +#: ..\..\Challenger\Challenger.cs:1284 +msgid "" +"【丛林套装】\n" +"挑战模式奖励:间歇地从玩家周围生成伤害性的孢子" msgstr "" -#: ..\..\Challenger.CNPCs\Deerclops.cs:162 -msgid "嗷嗷" +#: ..\..\Challenger\Challenger.cs:2040 +#, csharp-format +msgid "{0} 收听了 {1} 世界先知广播:{2}血月" msgstr "" -#: ..\..\Challenger.CNPCs\Deerclops.cs:145 -msgid "你将受到灭顶之灾" +#: ..\..\Challenger\Challenger.cs:1429 +msgid "世界已关闭挑战模式,快乐游玩吧" msgstr "" -#: ..\..\Challenger\Challenger.cs:1388 +#: ..\..\Challenger\Challenger.cs:1315 msgid "" -"【箭袋】\n" -"挑战模式奖励:无限补充弹药,额外获得BUFF" +"【水晶刺客套装】\n" +"挑战模式奖励:当有敌人在附近时,自身释放出水\n" +"晶碎片;若玩家被击中,释放出更强大的碎片" msgstr "" -#: ..\..\Challenger\Challenger.cs:1263 +#: ..\..\Challenger\Challenger.cs:1339 msgid "" -"【丛林套装】\n" -"挑战模式奖励:间歇地从玩家周围生成伤害性的孢子" +"【神圣套装】\n" +"挑战模式奖励:击中敌人时召唤光与暗剑气,输入\n" +"“/cf”切换剑气类型" msgstr "" -#: ..\..\Challenger.CNPCs\SkeletronHand.cs:100 -msgid "就这还想打倒我骷髅王爷爷" +#: ..\..\Challenger\Challenger.cs:2067 +#, csharp-format +msgid "状态异常,使用失败: {0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1894 -msgid "输入 /cenable 来启用挑战模式,再次使用取消" +#: ..\..\Challenger.CNPCs\WallofFlesh.cs:99 +msgid "付出代价吧!" msgstr "" -#: ..\..\Challenger\Challenger.cs:1284 -msgid "" -"【狱炎套装】\n" -"挑战模式奖励:免疫岩浆,给予永久的地狱火增益" +#: ..\..\Challenger.CProjs\BeetleHeal.cs:53 +#, csharp-format +msgid "你被 {0} 治疗了 {1} 点生命值" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:119 -msgid "刺啦" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:207 +msgid "连我都打不过,回家喝奶吧你" msgstr "" #: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:70 msgid "邪恶的蠕虫寻找新的受害者" msgstr "" -#: ..\..\Challenger\Challenger.cs:2058 -#, csharp-format -msgid "{0} 收听了 {1} 世界先知广播:明天日食" +#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:92 +msgid "怒不可遏" msgstr "" -#: ..\..\Challenger\Challenger.cs:1279 -msgid "" -"【黑曜石套装】\n" -"挑战模式奖励:因为盗贼的祝福,掉落物会尝试掉落两次\n" -"(仅对非boss生物和非高血量怪物有效)" +#: ..\..\Challenger.CNPCs\QueenBee.cs:175 +msgid "嗡嗡嗡嗡" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:139 -msgid "诅咒开始应验" +#: ..\..\Challenger.CNPCs\QueenBee.cs:153 +msgid "毒刺射你一脸" msgstr "" -#: ..\..\Challenger\Challenger.cs:1992 +#: ..\..\Challenger\Challenger.cs:1093 #, csharp-format -msgid "{0} 发动了混乱之脑迷惑,成功迷惑了附近 {1}个敌人" +msgid "魔力值上限 + {0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1294 +#: ..\..\Challenger\Challenger.cs:1248 msgid "" -"【水晶刺客套装】\n" -"挑战模式奖励:当有敌人在附近时,自身释放出水\n" -"晶碎片;若玩家被击中,释放出更强大的碎片" +"【垂钓套装】\n" +"挑战模式奖励:给予永久的声纳、钓鱼、宝匣、镇\n" +"定Buff" msgstr "" -#: ..\..\Challenger\Challenger.cs:1408 -msgid "世界已关闭挑战模式,快乐游玩吧" +#: ..\..\Challenger\Challenger.cs:1858 +msgid "输入 /ctip 来启用内容提示,如各种物品装备的修改文字提示,再次使用取消" msgstr "" -#: ..\..\Challenger\Challenger.cs:2077 -msgid "没有套装效果启用" +#: ..\..\Challenger\Challenger.cs:529 +#, csharp-format +msgid "[c/95CFA6:<挑战者:挖矿套>] 连锁挖掘了 [c/95CFA6: {0} {1}]." msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:149 -msgid "惨朽不堪" +#: ..\..\Challenger\Challenger.cs:2048 +#, csharp-format +msgid "{0} 收听了 {1} 世界先知广播:{2}灯笼夜" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:217 -msgid "疯狗狂叫!!!" +#: ..\..\Challenger\Challenger.cs:197 +msgid "闪避锁血成功!" msgstr "" -#: ..\..\Challenger\Challenger.cs:1377 -msgid "" -"【蠕虫围巾】\n" -"挑战模式奖励:免疫寒冷,霜火,灵液和咒火" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:234 +msgid "看我创死你" msgstr "" #: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:183 msgid "燃烧!无法熄灭的火焰" msgstr "" -#: ..\..\Challenger\Challenger.cs:1318 +#: ..\..\Challenger\Challenger.cs:2036 +#, csharp-format +msgid "{0} 收听了 {1} 世界先知广播:{2}满月" +msgstr "" + +#: ..\..\Challenger.CNPCs\WallofFlesh.cs:119 +msgid "咬碎你" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1401 msgid "" -"【神圣套装】\n" -"挑战模式奖励:击中敌人时召唤光与暗剑气,输入\n" -"“/cf”切换剑气类型" +"【收音机零件】\n" +"挑战模式奖励:输入“/cf”收听天气预报,在困难\n" +"模式中可以收听世界先知预报" msgstr "" -#: ..\..\Challenger\Challenger.cs:1362 +#: ..\..\Challenger\Challenger.cs:1276 msgid "" -"【皇家凝胶】\n" -"挑战模式奖励:天空开始下凝胶小雨" +"【陨石套装】\n" +"挑战模式奖励:暴击时恢复些许魔力,间歇地降下\n" +"高伤害落星攻击敌人" msgstr "" -#: ..\..\Challenger\Challenger.cs:2033 +#: ..\..\Challenger\Challenger.cs:1993 #, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:即将挂起狂风" +msgid "{0} 收听了 {1} 天气预报收音广播:即将下雨" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:115 -msgid "被封印的骷髅帝王苏醒" +#: ..\..\Challenger\Challenger.cs:2063 +msgid "没有套装效果启用" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:42 -msgid "呜哇哇" +#: ..\..\Challenger\Challenger.cs:777 +#: ..\..\Challenger\Challenger.cs:824 +#: ..\..\Challenger\Challenger.cs:884 +#: ..\..\Challenger\Challenger.cs:921 +#: ..\..\Challenger\Challenger.cs:1071 +#, csharp-format +msgid "生命值上限 - {0}" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:207 -msgid "猪突猛进!" +#: ..\..\Challenger.CNPCs\Deerclops.cs:135 +msgid "冰雪从天而降" msgstr "" -#: ..\..\Challenger\Challenger.cs:1299 -msgid "" -"【禁戒套装】\n" -"挑战模式奖励:释放自动寻的灵焰魂火攻击附近的\n" -"敌人" +#: ..\..\Challenger.CProjs\CrystalLeafShot.cs:35 +#: ..\..\Challenger.CProjs\CrystalLeafShot.cs:36 +#, csharp-format +msgid "CrystalLeafShot -> MyEffect 异常:{0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1242 +#: ..\..\Challenger\Challenger.cs:1346 msgid "" -"【猩红套装】\n" -"挑战模式奖励:暴击时从周围每个敌怪处吸取一定\n" -"血量随着敌怪数目增多吸血量-1,冷却 5秒" +"【叶绿套装】\n" +"挑战模式奖励:释放不精确的叶绿水晶矢,丛林之\n" +"力给你更高的生命上限" msgstr "" -#: ..\..\Challenger\Challenger.cs:298 -msgid "陨石回魔 + 3" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:204 +msgid "走位真菜" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:172 -msgid "嗡嗡" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:195 +msgid "你找到那颗子弹了吗" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:141 -msgid "不许抢我的蜂蜜" +#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:90 +msgid "虚虚实实,实实虚虚" msgstr "" -#: ..\..\Challenger\Challenger.cs:1335 +#: ..\..\Challenger\Challenger.cs:1404 msgid "" -"【提基套装】\n" -"挑战模式奖励:增加20血上限,在鞭子的轨迹上留\n" -"下孢子" +"【蜜蜂背包】\n" +"挑战模式奖励:不间断地向四周扔出毒蜂罐,爆炸\n" +"后释放一只蜜蜂" msgstr "" -#: ..\..\Challenger\Challenger.cs:1325 +#: ..\..\Challenger.CNPCs\SlimeKing.cs:169 +msgid "寒风呼啸" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1351 msgid "" -"【叶绿套装】\n" -"挑战模式奖励:释放不精确的叶绿水晶矢,丛林之\n" -"力给你更高的生命上限" +"【海龟套装】\n" +"挑战模式奖励:增加60血上限,自动在附近释放爆\n" +"炸碎片" msgstr "" -#: ..\..\Challenger.CNPCs\SlimeKing.cs:210 -msgid "小辣鸡" +#: ..\..\Challenger\Challenger.cs:1409 +msgid "" +"【箭袋】\n" +"挑战模式奖励:无限补充弹药,额外获得BUFF" msgstr "" -#: ..\..\Challenger\Challenger.cs:1872 -msgid "输入 /ctip 来启用内容提示,如各种物品装备的修改文字提示,再次使用取消" +#: ..\..\Challenger.CNPCs\Deerclops.cs:145 +msgid "你将受到灭顶之灾" msgstr "" -#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:80 -msgid "你真的能分清真假血弹吗" +#: ..\..\Challenger.CProjs\BeetleHeal.cs:66 +#: ..\..\Challenger.CProjs\BeetleHeal.cs:67 +#, csharp-format +msgid "代码异常4:{0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1929 +#: ..\..\Challenger\Challenger.cs:1978 #, csharp-format -msgid "挑战模式已取消,您觉得太难了?[操作来自:{0}]" +msgid "{0} 发动了混乱之脑迷惑,成功迷惑了附近 {1}个敌人" msgstr "" -#: ..\..\Challenger.CNPCs\SkeletronHand.cs:106 -msgid "离地牢远点!!!" +#: ..\..\Challenger\Challenger.cs:1928 +#, csharp-format +msgid "挑战模式启用,祝您愉快。[操作来自:{0}]" msgstr "" -#: ..\..\Challenger\Challenger.cs:1289 +#: ..\..\Challenger\Challenger.cs:1305 msgid "" -"【蜘蛛套装】\n" -"挑战模式奖励:攻击时,给予敌人中毒和剧毒减益\n" -",按“up”键生成一个毒牙药水瓶,砸中敌人时爆炸" +"【狱炎套装】\n" +"挑战模式奖励:免疫岩浆,给予永久的地狱火增益" msgstr "" -#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:107 -msgid "哇哇嗷" +#: ..\..\Challenger\Challenger.cs:1386 +#, csharp-format +msgid "" +"【克苏鲁之盾】\n" +"挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" +"{0}秒" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:168 -msgid "想再贴贴吗?" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:230 +msgid "就这就这!" msgstr "" -#: ..\..\Challenger\Challenger.cs:1304 +#: ..\..\Challenger\Challenger.cs:1375 msgid "" -"【寒霜套装】\n" -"挑战模式奖励:你周围开始下雪" +"【幽魂套装】\n" +"挑战模式奖励:根据头饰选择增加40血上限或80魔\n" +"力上限;召唤 2个幽魂诅咒环绕玩家,向附近敌人攻击" msgstr "" -#: ..\..\Challenger\Challenger.cs:2013 -#, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:不会下雨" +#: ..\..\Challenger.CNPCs\SkeletronHand.cs:67 +msgid "你打痛我右手了!!!" msgstr "" -#: ..\..\Challenger.CNPCs\WallofFleshEye.cs:101 -msgid "这么想看清我的卡姿兰大眼是吧" +#: ..\..\Challenger.CNPCs\SkeletronHand.cs:63 +msgid "你打痛我左手了!!!" msgstr "" -#: ..\..\Challenger\Challenger.cs:2081 +#: ..\..\Challenger\Challenger.cs:2052 #, csharp-format -msgid "状态异常,使用失败: {0}" +msgid "{0} 收听了 {1} 世界先知广播:{2}有流星" msgstr "" -#: ..\..\Challenger.CNPCs\SlimeKing.cs:169 -msgid "寒风呼啸" +#: ..\..\Challenger\Challenger.cs:1467 +#: ..\..\Challenger\Challenger.cs:1468 +msgid "Challenger.OnServerLeave异常3:" msgstr "" -#: ..\..\Challenger\Challenger.cs:1269 -msgid "" -"【死灵套装】\n" -"挑战模式奖励:受到伤害时,向四周飞溅骨头;攻\n" -"击时偶尔发射骨箭" +#: ..\..\Challenger\Challenger.cs:1915 +#, csharp-format +msgid "挑战模式已取消,您觉得太难了?[操作来自:{0}]" msgstr "" -#: ..\..\Challenger\Challenger.cs:2070 -#, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:顺其自然,不会发生任何事件" +#: ..\..\Challenger.CNPCs\Skeletron.cs:127 +msgid "嘎吱作响" msgstr "" -#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:68 -msgid "畸形怪脑发现了新鲜的脑子" +#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:123 +msgid "小心我爆炸的鳞甲" +msgstr "" + +#: ..\..\Challenger.CNPCs\Skeletron.cs:115 +msgid "被封印的骷髅帝王苏醒" msgstr "" -#: ..\..\Challenger\Challenger.cs:1359 +#: ..\..\Challenger\Challenger.cs:1325 msgid "" -"【阴森套装】\n" -"挑战模式奖励:使用鞭子时,甩出蝙蝠或南\n" -"瓜头" +"【寒霜套装】\n" +"挑战模式奖励:你周围开始下雪" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:234 -msgid "看我创死你" +#: ..\..\Challenger\Challenger.cs:1999 +#, csharp-format +msgid "{0} 收听了 {1} 天气预报收音广播:不会下雨" msgstr "" -#: ..\..\Challenger.CNPCs\Deerclops.cs:123 -msgid "远方的巨兽将会摧毁你所拥有的一切" +#: ..\..\Challenger\Challenger.cs:31 +msgid "增强游戏难度,更好的游戏体验" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:123 -msgid "小心我爆炸的鳞甲" +#: ..\..\Challenger\Challenger.cs:1951 +#: ..\..\Challenger\Challenger.cs:1952 +msgid "神圣剑辉已启用" msgstr "" -#: ..\..\Challenger\Challenger.cs:2066 +#: ..\..\Challenger.CProjs\BloodBagProj.cs:125 #, csharp-format -msgid "{0} 收听了 {1} 世界先知广播:{2}有流星" +msgid "血包治疗 + {0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:761 -#: ..\..\Challenger\Challenger.cs:808 -#: ..\..\Challenger\Challenger.cs:868 -#: ..\..\Challenger\Challenger.cs:905 -#: ..\..\Challenger\Challenger.cs:1055 -#, csharp-format -msgid "生命值上限 - {0}" +#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:39 +#: ..\..\Challenger.CNPCs\Skeletron.cs:165 +msgid "创死你" msgstr "" -#: ..\..\Challenger\Challenger.cs:536 +#: ..\..\Challenger\Challenger.cs:2044 #, csharp-format -msgid "[c/95CFA6:<挑战者:挖矿套>] 背包已满,还需空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:{1}] ." +msgid "{0} 收听了 {1} 世界先知广播:明天日食" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1243 +msgid "" +"【挖矿套装】\n" +"挑战模式奖励:给予永久的挖矿、糖果冲刺Buff\n" +"启用连锁挖矿能力" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:68 +msgid "输入 /cf 来实现某些技能的或状态的切换" msgstr "" #: ..\..\Challenger.CNPCs\SlimeKing.cs:191 msgid "史莱姆王发怒了" msgstr "" -#: ..\..\Challenger\Challenger.cs:750 -#: ..\..\Challenger\Challenger.cs:797 -#: ..\..\Challenger\Challenger.cs:857 -#: ..\..\Challenger\Challenger.cs:894 -#: ..\..\Challenger\Challenger.cs:1031 -#, csharp-format -msgid "生命值上限 + {0}" +#: ..\..\Challenger.CNPCs\Skeletron.cs:149 +msgid "惨朽不堪" msgstr "" diff --git a/src/VeinMiner/README_EN.md b/src/VeinMiner/README_EN.md new file mode 100644 index 00000000..eaf971e2 --- /dev/null +++ b/src/VeinMiner/README_EN.md @@ -0,0 +1,85 @@ +# VeinMiner + +- Authors: Megghy|YSpoof|Maxthegreat99|肝帝熙恩|Cai +- Source: [github](https://github.com/Maxthegreat99/TSHockVeinMiner) +- To quickly mine veins of ore + +> [!IMPORTANT] +> To enable vein mining, you need the `veinminer` permission. +> Authorization command: `/group addperm default veinminer` (default is the default group, you can replace it with the group you need) + +## Commands + +| Command | permission | 说明 | +|----------------|:----------:|:---------------------------------------:| +| /vm | veinminer | Toggle vein mining | +| /vm [Any agrs] | veinminer | Toggle vein mining notification message | + +## Config +> Configuration file location:tshock/VeinMiner.json +```json +{ + "启用": true, //Enable + "广播": true, //Broadcast + "放入背包": true, //Put ores into player's inventory + "矿石类型": [ //TileID which will be mined by VeinMiner + 7, + 166, + 6, + 167, + 9, + 168, + 8 + ], + "兑换规则": [ //Exchange rules + { + "仅给予物品": false, //Only give item + "最小尺寸": 0, //Min size + "类型": 0, //Tile ID + "物品": null //Item + } + ] +} +``` +### Example +```json +{ + "启用": true, //Enable + "广播": true, //Broadcast + "放入背包": true, //Put ores into player's inventory + "矿石类型": [ //TileID which will be mined by VeinMiner + 7, + 166, + 6, + 167, + 9, + 168 + ], + "兑换规则": [ //Exchange rules + { + "仅给予物品": true, //Item + "最小尺寸": 10, //Min size + "类型": 168, //Tile ID + "物品": { + "666": 1, //"ItemID": stack + "669": 1 + } + }, + { + "仅给予物品": true, + "最小尺寸": 10, + "类型": 8, + "物品": { + "662": 5, + "219": 1 + } + } + ] +} +``` + + +## FeedBack +- Github Issue -> TShockPlugin Repo:https://github.com/UnrealMultiple/TShockPlugin +- TShock QQ Group:816771079 +- China Terraria Forum:trhub.cn ,bbstr.net , tr.monika.love From be4adff91b3235f9cd2d00c05040b9b1c5ab94e4 Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 10:02:39 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E7=BF=BB=E8=AF=91:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E6=A8=A1=E6=9D=BFZHIPM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VeinMiner/i18n/en-US.po | 94 +- src/VeinMiner/i18n/template.pot | 56 +- src/ZHIPlayerManager/ZHIPM.DB.cs | 61 +- src/ZHIPlayerManager/ZHIPM.Initialize.cs | 1760 ++++++++++++---------- src/ZHIPlayerManager/ZHIPM.Utils.cs | 59 +- src/ZHIPlayerManager/ZHIPM.cs | 10 +- 6 files changed, 1116 insertions(+), 924 deletions(-) diff --git a/src/VeinMiner/i18n/en-US.po b/src/VeinMiner/i18n/en-US.po index 45dccbb5..25e03ba2 100644 --- a/src/VeinMiner/i18n/en-US.po +++ b/src/VeinMiner/i18n/en-US.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: VeinMiner\n" -"POT-Creation-Date: 2024-08-31 17:14:06+0800\n" +"POT-Creation-Date: 2024-09-01 09:59:49+0800\n" "PO-Revision-Date: 2024-08-31 19:55+0800\n" "Last-Translator: Cai\n" "Language-Team: UnrealMultiple\n" @@ -11,73 +11,67 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.5\n" -#: ..\..\VeinMiner.cs:34 ..\..\VeinMiner.cs:39 -msgid "开启" -msgstr "Activated" - -#: ..\..\VeinMiner.cs:161 -#, csharp-format -msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." -msgstr "[c/95CFA6:] Mining [c/95CFA6: {0} {1} ]." - #: ..\..\VeinMiner.cs:151 #, csharp-format msgid "" -"[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以" -"放入 [c/95CFA6:{1}] ." +"[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:" +"{1}] ." msgstr "" -"[c/95CFA6:] Inventory full, space needed: [c/95CFA6:" -"{0}] to insert [c/95CFA6:{1}] ." +"[c/95CFA6:] Inventory full, space needed: [c/95CFA6:{0}] to " +"insert [c/95CFA6:{1}] ." -#: ..\..\VeinMiner.cs:167 -msgid "" -"[c/95CFA6:] 无法挖取矿石,可能是因为矿石上方有不可破" -"坏的物体." -msgstr "" -"[c/95CFA6:] Unable to mine ore, possibly because " -"there is an indestructible object above the ore." - -#: ..\..\Config.cs:38 -msgid " 读取配置文件失败。" -msgstr " Failed to read config file." +#: ..\..\VeinMiner.cs:125 +msgid "未知" +msgstr "Unknown" -#: ..\..\VeinMiner.cs:129 +#: ..\..\VeinMiner.cs:125 #, csharp-format -msgid "" -"[c/95CFA6:] 背包已满,还需空位:[c/95CFA6:{0}] ." -msgstr "" -"[c/95CFA6:] Inventory full, space needed: [c/95CFA6:" -"{0}] ." +msgid "[c/95CFA6:] 挖掘了 [c/95CFA6: {0} {1}]." +msgstr "[c/95CFA6:] Mined [c/95CFA6: {0} {1} ]." -#: ..\..\VeinMiner.cs:39 +#: ..\..\VeinMiner.cs:34 #, csharp-format -msgid "[c/95CFA6: 已{0}.]" -msgstr "[c/95CFA6: {0} .]" +msgid "[c/95CFA6: 挖矿消息已{0}]." +msgstr "[c/95CFA6: Mining Status {0}.]" #: ..\..\VeinMiner.cs:39 msgid "关闭! | 要仅关闭挖矿消息提示请输入:/vm {任意参数}" -msgstr "" -"Deactivated! | To turn off only mining status messages use: /" -"vm msg" - -#: ..\..\Config.cs:32 -msgid " 配置已重新加载。" -msgstr " Config reloaded." +msgstr "Deactivated! | To turn off only mining status messages use: /vm msg" #: ..\..\VeinMiner.cs:34 msgid "关闭" msgstr "Deactivated" -#: ..\..\VeinMiner.cs:34 +#: ..\..\VeinMiner.cs:129 #, csharp-format -msgid "[c/95CFA6: 挖矿消息已{0}]." -msgstr "[c/95CFA6: Mining Status {0}.]" +msgid "[c/95CFA6:] 背包已满,还需空位:[c/95CFA6:{0}] ." +msgstr "[c/95CFA6:] Inventory full, space needed: [c/95CFA6:{0}] ." -#: ..\..\VeinMiner.cs:125 -msgid "未知" -msgstr "Unknown" +#: ..\..\VeinMiner.cs:34 ..\..\VeinMiner.cs:39 +msgid "开启" +msgstr "Activated" -#: ..\..\VeinMiner.cs:125 +#: ..\..\Config.cs:32 +msgid " 配置已重新加载。" +msgstr " Config reloaded." + +#: ..\..\VeinMiner.cs:161 #, csharp-format -msgid "[c/95CFA6:] 挖掘了 [c/95CFA6: {0} {1}]." -msgstr "[c/95CFA6:] Mined [c/95CFA6: {0} {1} ]." +msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." +msgstr "[c/95CFA6:] Mining [c/95CFA6: {0} {1} ]." + +#: ..\..\VeinMiner.cs:39 +#, csharp-format +msgid "[c/95CFA6: 已{0}.]" +msgstr "[c/95CFA6: {0} .]" + +#: ..\..\VeinMiner.cs:167 +msgid "" +"[c/95CFA6:] 无法挖取矿石,可能是因为矿石上方有不可破坏的物体." +msgstr "" +"[c/95CFA6:] Unable to mine ore, possibly because there is an " +"indestructible object above the ore." + +#: ..\..\Config.cs:38 +msgid " 读取配置文件失败。" +msgstr " Failed to read config file." diff --git a/src/VeinMiner/i18n/template.pot b/src/VeinMiner/i18n/template.pot index a436eea0..14e9f830 100644 --- a/src/VeinMiner/i18n/template.pot +++ b/src/VeinMiner/i18n/template.pot @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: VeinMiner\n" -"POT-Creation-Date: 2024-08-31 17:14:06+0800\n" -"PO-Revision-Date: 2024-08-31 17:14:06+0800\n" +"POT-Creation-Date: 2024-09-01 09:59:49+0800\n" +"PO-Revision-Date: 2024-09-01 09:59:50+0800\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -10,27 +10,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: GetText.NET Extractor\n" -#: ..\..\VeinMiner.cs:34 -#: ..\..\VeinMiner.cs:39 -msgid "开启" +#: ..\..\VeinMiner.cs:151 +#, csharp-format +msgid "[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:{1}] ." msgstr "" -#: ..\..\VeinMiner.cs:161 +#: ..\..\VeinMiner.cs:125 +msgid "未知" +msgstr "" + +#: ..\..\VeinMiner.cs:125 #, csharp-format -msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." +msgid "[c/95CFA6:] 挖掘了 [c/95CFA6: {0} {1}]." msgstr "" -#: ..\..\VeinMiner.cs:151 +#: ..\..\VeinMiner.cs:34 #, csharp-format -msgid "[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:{1}] ." +msgid "[c/95CFA6: 挖矿消息已{0}]." msgstr "" -#: ..\..\VeinMiner.cs:167 -msgid "[c/95CFA6:] 无法挖取矿石,可能是因为矿石上方有不可破坏的物体." +#: ..\..\VeinMiner.cs:39 +msgid "关闭! | 要仅关闭挖矿消息提示请输入:/vm {任意参数}" msgstr "" -#: ..\..\Config.cs:38 -msgid " 读取配置文件失败。" +#: ..\..\VeinMiner.cs:34 +msgid "关闭" msgstr "" #: ..\..\VeinMiner.cs:129 @@ -38,34 +42,30 @@ msgstr "" msgid "[c/95CFA6:] 背包已满,还需空位:[c/95CFA6:{0}] ." msgstr "" +#: ..\..\VeinMiner.cs:34 #: ..\..\VeinMiner.cs:39 -#, csharp-format -msgid "[c/95CFA6: 已{0}.]" -msgstr "" - -#: ..\..\VeinMiner.cs:39 -msgid "关闭! | 要仅关闭挖矿消息提示请输入:/vm {任意参数}" +msgid "开启" msgstr "" #: ..\..\Config.cs:32 msgid " 配置已重新加载。" msgstr "" -#: ..\..\VeinMiner.cs:34 -msgid "关闭" +#: ..\..\VeinMiner.cs:161 +#, csharp-format +msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." msgstr "" -#: ..\..\VeinMiner.cs:34 +#: ..\..\VeinMiner.cs:39 #, csharp-format -msgid "[c/95CFA6: 挖矿消息已{0}]." +msgid "[c/95CFA6: 已{0}.]" msgstr "" -#: ..\..\VeinMiner.cs:125 -msgid "未知" +#: ..\..\VeinMiner.cs:167 +msgid "[c/95CFA6:] 无法挖取矿石,可能是因为矿石上方有不可破坏的物体." msgstr "" -#: ..\..\VeinMiner.cs:125 -#, csharp-format -msgid "[c/95CFA6:] 挖掘了 [c/95CFA6: {0} {1}]." +#: ..\..\Config.cs:38 +msgid " 读取配置文件失败。" msgstr "" diff --git a/src/ZHIPlayerManager/ZHIPM.DB.cs b/src/ZHIPlayerManager/ZHIPM.DB.cs index 038bedd5..6fb70148 100644 --- a/src/ZHIPlayerManager/ZHIPM.DB.cs +++ b/src/ZHIPlayerManager/ZHIPM.DB.cs @@ -143,9 +143,7 @@ public PlayerData ReadZPlayerDB(TSPlayer player, int acctid, int slot = 1) } catch (Exception ex) { - TShock.Log.Error("错误:ReadZPlayerDB " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:ReadZPlayerDB " + ex.ToString()); - Console.WriteLine("错误:ReadZPlayerDB " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:ReadZPlayerDB ") + ex); return playerData; } } @@ -217,9 +215,7 @@ public bool WriteZPlayerDB(TSPlayer player, int slot) } catch (Exception ex) { - TShock.Log.Error("错误:WriteZPlayerDB " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:WriteZPlayerDB " + ex.ToString()); - Console.WriteLine("错误:WriteZPlayerDB " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:WriteZPlayerDB ") + ex); return false; } } @@ -269,9 +265,7 @@ public bool WriteZPlayerDB(TSPlayer player, int slot) } catch (Exception ex2) { - TShock.Log.Error("错误:WriteZPlayerDB 2 " + ex2.ToString()); - TSPlayer.All.SendErrorMessage("错误:WriteZPlayerDB 2 " + ex2.ToString()); - Console.WriteLine("错误:WriteZPlayerDB 2 " + ex2.ToString()); + TShock.Log.ConsoleError(GetString("错误:WriteZPlayerDB 2 ") + ex2); return false; } } @@ -304,9 +298,7 @@ public int getZPlayerDBMaxSlot(TSPlayer player, int acctid, out List tex } catch (Exception ex) { - TShock.Log.Error("错误:getZPlayerDBMaxSlot " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:getZPlayerDBMaxSlot " + ex.ToString()); - Console.WriteLine("错误:getZPlayerDBMaxSlot " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:getZPlayerDBMaxSlot ") + ex); } return num; } @@ -332,16 +324,14 @@ public bool AddZPlayerDB(TSPlayer player) { this.database.Query("UPDATE " + this.tableName + " SET AccAndSlot = @0 WHERE AccAndSlot = @1;", new object[] { - player.Account.ID.ToString() + "-" + i.ToString(), - player.Account.ID.ToString() + "-" + (i - 1).ToString() + player.Account.ID + "-" + i, + player.Account.ID + "-" + (i - 1) }); } } catch (Exception ex) { - TShock.Log.Error("错误:AddZPlayerDB " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:AddZPlayerDB " + ex.ToString()); - Console.WriteLine("错误:AddZPlayerDB " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:AddZPlayerDB ") + ex); return false; } return this.WriteZPlayerDB(player, 1); @@ -362,9 +352,7 @@ public bool AddZPlayerDB(TSPlayer player) } catch (Exception ex2) { - TShock.Log.Error("错误:AddZPlayerDB 1 " + ex2.ToString()); - TSPlayer.All.SendErrorMessage("错误:AddZPlayerDB 1 " + ex2.ToString()); - Console.WriteLine("错误:AddZPlayerDB 1 " + ex2.ToString()); + TShock.Log.ConsoleError(GetString("错误:AddZPlayerDB 1 ") + ex2.ToString()); return false; } return this.AddZPlayerDB(player); @@ -387,9 +375,7 @@ public bool ClearALLZPlayerDB(ZplayerDB zdb) } catch (Exception ex) { - TShock.Log.Error("错误:ClearALLZPlayerDB " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:ClearALLZPlayerDB " + ex.ToString()); - Console.WriteLine("错误:ClearALLZPlayerDB " + ex.ToString()); + TShock.Log.Error(GetString("错误:ClearALLZPlayerDB ") + ex); return false; } } @@ -412,9 +398,7 @@ public bool ClearZPlayerDB(int account) } catch (Exception ex) { - TShock.Log.Error("错误:ClearZPlayerDB " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:ClearZPlayerDB " + ex.ToString()); - Console.WriteLine("错误:ClearZPlayerDB " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:ClearZPlayerDB ") + ex); return false; } } @@ -498,9 +482,7 @@ public ZplayerExtraDB(IDbConnection db) } catch (Exception ex) { - TShock.Log.Error("错误:ReadExtraDB " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:ReadExtraDB " + ex.ToString()); - Console.WriteLine("错误:ReadExtraDB " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:ReadExtraDB ") + ex.ToString()); return null; } } @@ -549,9 +531,7 @@ public bool WriteExtraDB(ExtraData ed) } catch (Exception ex) { - TShock.Log.Error("错误:WriteExtraDB " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:WriteExtraDB " + ex.ToString()); - Console.WriteLine("错误:WriteExtraDB " + ex.ToString()); + TShock.Log.Error(GetString("错误:WriteExtraDB ") + ex); return false; } } @@ -576,9 +556,7 @@ public bool WriteExtraDB(ExtraData ed) } catch (Exception ex2) { - TShock.Log.Error("错误:WriteExtraDB 2 " + ex2.ToString()); - TSPlayer.All.SendErrorMessage("错误:WriteExtraDB 2 " + ex2.ToString()); - Console.WriteLine("错误:WriteExtraDB 2 " + ex2.ToString()); + TShock.Log.ConsoleError(GetString("错误:WriteExtraDB 2 ") + ex2); return false; } } @@ -599,9 +577,7 @@ public bool ClearALLZPlayerExtraDB(ZplayerExtraDB zedb) } catch (Exception ex) { - TShock.Log.Error("错误:ClearALLZPlayerExtraDB " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:ClearALLZPlayerExtraDB " + ex.ToString()); - Console.WriteLine("错误:ClearALLZPlayerExtraDB " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:ClearALLZPlayerExtraDB ") + ex.ToString()); return false; } } @@ -624,9 +600,7 @@ public bool ClearZPlayerExtraDB(int account) } catch (Exception ex) { - TShock.Log.Error("错误:ClearZPlayerExtraDB " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:ClearZPlayerExtraDB " + ex.ToString()); - Console.WriteLine("错误:ClearZPlayerExtraDB " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:ClearZPlayerExtraDB ") + ex); return false; } } @@ -700,9 +674,8 @@ public List ListAllExtraDB(ExtraDataDate extraDataDate = ExtraDataDat } catch (Exception ex) { - TShock.Log.Error("错误:ListAllExtraDB " + ex.ToString()); - TSPlayer.All.SendErrorMessage("错误:ListAllExtraDB " + ex.ToString()); - Console.WriteLine("错误:ListAllExtraDB " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:ListAllExtraDB ") + ex.ToString()); + return list; } } diff --git a/src/ZHIPlayerManager/ZHIPM.Initialize.cs b/src/ZHIPlayerManager/ZHIPM.Initialize.cs index ecd2ab69..7e176a93 100644 --- a/src/ZHIPlayerManager/ZHIPM.Initialize.cs +++ b/src/ZHIPlayerManager/ZHIPM.Initialize.cs @@ -14,55 +14,55 @@ namespace ZHIPlayerManager; public partial class ZHIPM : TerrariaPlugin { /// - /// 帮助指令方法指令 + /// 帮助指令方法指令 /// /// private void Help(CommandArgs args) { if (args.Parameters.Count != 0) { - args.Player.SendInfoMessage("输入 /zhelp 来查看指令帮助"); + args.Player.SendInfoMessage(GetString("输入 /zhelp 来查看指令帮助")); } else { - args.Player.SendMessage("输入 /zsave 来备份自己的人物存档\n" + - "输入 /zsaveauto 来每隔 minute 分钟自动备份自己的人物存档,当 minute 为 0 时关闭该功能\n" + - "输入 /zvisa 来查看自己的人物备份\n" + - "输入 /zvisa name 来查看该玩家的第几个人物备份\n" + - "输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n" + - "输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示\n" + - "输入 /zback 来读取该玩家的人物存档\n" + - "输入 /zback 来读取该玩家的第几个人物存档\n" + - "输入 /zclone 将玩家1的人物数据复制给玩家2\n" + - "输入 /zclone 将该玩家的人物数据复制给自己\n" + - "输入 /zmodify help 查看修改玩家数据的指令帮助\n" + - "输入 /vi 来查看该玩家的库存\n" + - "输入 /vid 来查看该玩家的库存,不分类\n" + - "输入 /vs 来查看该玩家的状态\n" + - "输入 /vs me 来查看自己的状态\n" + - "输入 /zfre 来冻结该玩家\n" + - "输入 /zunfre 来解冻该玩家\n" + - "输入 /zunfre all 来解冻所有玩家\n" + - "输入 /zsort help 来查看排序系列指令帮助\n" + - "输入 /zout 来导出该玩家的人物存档\n" + - "输入 /zout all 来导出所有人物的存档并压缩打包\n" + - "输入 /zreset help 来查看zreset系列指令帮助\n" + - "输入 /zban add 来封禁无论是否在线的玩家,reason 可不填\n" + - "输入 /zban add uuid 来封禁uuid\n" + - "输入 /zban add ip 来封禁ip\n" + - "输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n" + - "输入 /zclear buff 来清理该玩家的所有Buff\n" + - "输入 /zclear buff all 来清理所有玩家所有Buff\n" + - "输入 /zbpos 来返回上次死亡地点\n" /*+ - "输入 /zfind 来查找当前哪些玩家拥有此物品"*/, - TextColor() - ); + args.Player.SendMessage(GetString("输入 /zsave 来备份自己的人物存档\n") + + GetString("输入 /zsaveauto 来每隔 minute 分钟自动备份自己的人物存档,当 minute 为 0 时关闭该功能\n") + + GetString("输入 /zvisa 来查看自己的人物备份\n") + + GetString("输入 /zvisa name 来查看该玩家的第几个人物备份\n") + + GetString("输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n") + + GetString("输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示\n") + + GetString("输入 /zback 来读取该玩家的人物存档\n") + + GetString("输入 /zback 来读取该玩家的第几个人物存档\n") + + GetString("输入 /zclone 将玩家1的人物数据复制给玩家2\n") + + GetString("输入 /zclone 将该玩家的人物数据复制给自己\n") + + GetString("输入 /zmodify help 查看修改玩家数据的指令帮助\n") + + GetString("输入 /vi 来查看该玩家的库存\n") + + GetString("输入 /vid 来查看该玩家的库存,不分类\n") + + GetString("输入 /vs 来查看该玩家的状态\n") + + GetString("输入 /vs me 来查看自己的状态\n") + + GetString("输入 /zfre 来冻结该玩家\n") + + GetString("输入 /zunfre 来解冻该玩家\n") + + GetString("输入 /zunfre all 来解冻所有玩家\n") + + GetString("输入 /zsort help 来查看排序系列指令帮助\n") + + GetString("输入 /zout 来导出该玩家的人物存档\n") + + GetString("输入 /zout all 来导出所有人物的存档并压缩打包\n") + + GetString("输入 /zreset help 来查看zreset系列指令帮助\n") + + GetString("输入 /zban add 来封禁无论是否在线的玩家,reason 可不填\n") + + GetString("输入 /zban add uuid 来封禁uuid\n") + + GetString("输入 /zban add ip 来封禁ip\n") + + GetString("输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n") + + GetString("输入 /zclear buff 来清理该玩家的所有Buff\n") + + GetString("输入 /zclear buff all 来清理所有玩家所有Buff\n") + + GetString("输入 /zbpos 来返回上次死亡地点\n") /*+ + GetString("输入 /zfind 来查找当前哪些玩家拥有此物品")*/, + TextColor() + ); } } /// - /// 回档指令方法指令 + /// 回档指令方法指令 /// /// private void MySSCBack(CommandArgs args) @@ -72,61 +72,67 @@ private void MySSCBack(CommandArgs args) this.MySSCBack2(args, 1); return; } + if (args.Parameters.Count == 2) { if (!int.TryParse(args.Parameters[1], out var num)) { - args.Player.SendInfoMessage("输入 /zback 来读取该玩家的最新人物存档\n输入 /zback 来读取该玩家的第几个人物存档"); + args.Player.SendInfoMessage(GetString("输入 /zback 来读取该玩家的最新人物存档\n输入 /zback 来读取该玩家的第几个人物存档")); return; } + if (num < 1 || num > config.MaxBackupsPerPlayer) { - args.Player.SendInfoMessage($"玩家最多有 {config.MaxBackupsPerPlayer} 个备份存档,范围 1 ~ {config.MaxBackupsPerPlayer},请重新输入"); + args.Player.SendInfoMessage(GetString($"玩家最多有 {config.MaxBackupsPerPlayer} 个备份存档,范围 1 ~ {config.MaxBackupsPerPlayer},请重新输入")); return; } + this.MySSCBack2(args, num); } else { - args.Player.SendInfoMessage("输入 /zback 来读取该玩家的最新人物存档\n输入 /zback 来读取该玩家的第几个人物存档"); + args.Player.SendInfoMessage(GetString("输入 /zback 来读取该玩家的最新人物存档\n输入 /zback 来读取该玩家的第几个人物存档")); } } /// - /// 保存指令方法指令 + /// 保存指令方法指令 /// /// private void MySSCSave(CommandArgs args) { if (args.Parameters.Count != 0) { - args.Player.SendInfoMessage("输入 /zsave 来备份自己的人物存档"); + args.Player.SendInfoMessage(GetString("输入 /zsave 来备份自己的人物存档")); return; } + if (!args.Player.IsLoggedIn) { - args.Player.SendInfoMessage("对象不正确,请检查您的状态,您是否为游戏内玩家?"); + args.Player.SendInfoMessage(GetString("对象不正确,请检查您的状态,您是否为游戏内玩家?")); return; } + if (ZPDataBase.AddZPlayerDB(args.Player)) { - var extraData = edPlayers.Find((ExtraData x) => x.Name == args.Player.Name); + var extraData = edPlayers.Find(x => x.Name == args.Player.Name); if (extraData != null) { ZPExtraDB.WriteExtraDB(extraData); } - args.Player.SendMessage("您的备份保存成功!", new Color(0, 255, 0)); + + args.Player.SendMessage(GetString("您的备份保存成功!"), new Color(0, 255, 0)); } else { - args.Player.SendMessage("您的备份保存失败!请尝试重进游戏重试", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("您的备份保存失败!请尝试重进游戏重试"), new Color(255, 0, 0)); } } /// - /// 自动备份指令 + /// 自动备份指令 /// /// /// @@ -134,63 +140,69 @@ private void MySSCSaveAuto(CommandArgs args) { if (!config.EnablePlayerAutoBackup) { - args.Player.SendMessage("自动备份被禁用,请联系管理员询问详情", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("自动备份被禁用,请联系管理员询问详情"), new Color(255, 0, 0)); return; } + if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /zsaveauto [minute] 来每隔 minute 分钟自动备份自己的人物存档,当 minute 为 0 时关闭该功能"); + args.Player.SendInfoMessage(GetString("输入 /zsaveauto [minute] 来每隔 minute 分钟自动备份自己的人物存档,当 minute 为 0 时关闭该功能")); return; } + if (!args.Player.IsLoggedIn) { - args.Player.SendInfoMessage("对象不正确,请检查您的状态,您是否为游戏内玩家?"); + args.Player.SendInfoMessage(GetString("对象不正确,请检查您的状态,您是否为游戏内玩家?")); return; } + if (int.TryParse(args.Parameters[0], out var num)) { if (num < 0) { - args.Player.SendInfoMessage("数字不合理"); + args.Player.SendInfoMessage(GetString("数字不合理")); return; } + var ex = edPlayers.Find(x => x.Name == args.Player.Name); if (ex == null) { - args.Player.SendInfoMessage("修改失败,请重进服务器重试"); + args.Player.SendInfoMessage(GetString("修改失败,请重进服务器重试")); return; } + ex.backuptime = num; if (num != 0) { - args.Player.SendMessage("修改成功,你的存档将每隔 " + num + " 分钟自动备份一次,请注意存档覆盖情况,这可能会覆盖你手动备份的部分", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"修改成功,你的存档将每隔{num}分钟自动备份一次,请注意存档覆盖情况,这可能会覆盖你手动备份的部分"), new Color(0, 255, 0)); } else { - args.Player.SendMessage("修改成功,你的自动备份已关", new Color(0, 255, 0)); + args.Player.SendMessage(GetString("修改成功,你的自动备份已关"), new Color(0, 255, 0)); } } else { - args.Player.SendInfoMessage("输入 /zsaveauto [minute] 来每隔 minute 分钟自动备份自己的人物存档,当 minute 为 0 时关闭该功能"); + args.Player.SendInfoMessage(GetString("输入 /zsaveauto [minute] 来每隔 minute 分钟自动备份自己的人物存档,当 minute 为 0 时关闭该功能")); } } /// - /// 查看我的存档方法指令 + /// 查看我的存档方法指令 /// /// private void ViewMySSCSave(CommandArgs args) { //查询本人 - if (args.Parameters.Count == 0 || args.Parameters.Count == 1 && int.TryParse(args.Parameters[0], out var num1)) + if (args.Parameters.Count == 0 || (args.Parameters.Count == 1 && int.TryParse(args.Parameters[0], out var num1))) { if (!args.Player.IsLoggedIn) { - args.Player.SendInfoMessage("对象不正确,请检查您的状态,您是否为游戏内玩家?"); + args.Player.SendInfoMessage(GetString("对象不正确,请检查您的状态,您是否为游戏内玩家?")); return; } + int slot; if (args.Parameters.Count == 0) { @@ -201,15 +213,17 @@ private void ViewMySSCSave(CommandArgs args) var num = int.Parse(args.Parameters[0]); if (num < 1 || num > config.MaxBackupsPerPlayer) { - args.Player.SendInfoMessage($"玩家最多有 {config.MaxBackupsPerPlayer} 个备份存档,范围 1 ~ {config.MaxBackupsPerPlayer},请重新输入"); + args.Player.SendInfoMessage(GetString($"玩家最多有 {config.MaxBackupsPerPlayer} 个备份存档,范围 1 ~ {config.MaxBackupsPerPlayer},请重新输入")); return; } + slot = num; } + var playerData = ZPDataBase.ReadZPlayerDB(args.Player, args.Player.Account.ID, slot); if (playerData == null || !playerData.exists) { - args.Player.SendInfoMessage("您还未备份"); + args.Player.SendInfoMessage(GetString("您还未备份")); } else { @@ -220,15 +234,16 @@ private void ViewMySSCSave(CommandArgs args) items[i].stack = playerData.inventory[i].Stack; items[i].prefix = playerData.inventory[i].PrefixId; } - var text = GetItemsString(items, NetItem.MaxInventory, 0); + + var text = GetItemsString(items, NetItem.MaxInventory); text = FormatArrangement(text, 30, " "); - var str = "您的备份 [ " + args.Player.Account.ID + " - " + slot + " ] 的内容为:\n" + text; + var str = GetString($"您的备份[{args.Player.Account.ID} - {slot}]的内容为:\n") + text; args.Player.SendInfoMessage(str); } } //查询他人 - else if (args.Parameters.Count == 1 || args.Parameters.Count == 2 && int.TryParse(args.Parameters[1], out var num2)) + else if (args.Parameters.Count == 1 || (args.Parameters.Count == 2 && int.TryParse(args.Parameters[1], out var num2))) { int slot; if (args.Parameters.Count == 1) @@ -240,9 +255,10 @@ private void ViewMySSCSave(CommandArgs args) var num = int.Parse(args.Parameters[1]); if (num < 1 || num > config.MaxBackupsPerPlayer) { - args.Player.SendInfoMessage($"玩家最多有 {config.MaxBackupsPerPlayer} 个备份存档,范围 1 ~ {config.MaxBackupsPerPlayer},请重新输入"); + args.Player.SendInfoMessage(GetString($"玩家最多有 {config.MaxBackupsPerPlayer} 个备份存档,范围 1 ~ {config.MaxBackupsPerPlayer},请重新输入")); return; } + slot = num; } @@ -253,7 +269,7 @@ private void ViewMySSCSave(CommandArgs args) { args.Player.SendInfoMessage(this.offlineplayer); var users = TShock.UserAccounts.GetUserAccountsByName(args.Parameters[0], true); - if (users.Count == 1 || users.Count > 1 && users.Exists(x => x.Name == args.Parameters[0])) + if (users.Count == 1 || (users.Count > 1 && users.Exists(x => x.Name == args.Parameters[0]))) { if (users.Count == 1) { @@ -283,10 +299,11 @@ private void ViewMySSCSave(CommandArgs args) ID = list[0].Account.ID; playerfullname = list[0].Name; } + var playerData = ZPDataBase.ReadZPlayerDB(new TSPlayer(-1), ID, slot); if (playerData == null || !playerData.exists) { - args.Player.SendInfoMessage("该玩家还未备份"); + args.Player.SendInfoMessage(GetString("该玩家还未备份")); } else { @@ -297,51 +314,56 @@ private void ViewMySSCSave(CommandArgs args) items[i].stack = playerData.inventory[i].Stack; items[i].prefix = playerData.inventory[i].PrefixId; } + var text = ""; if (args.Player.IsLoggedIn) { - text = GetItemsString(items, NetItem.MaxInventory, 0); + text = GetItemsString(items, NetItem.MaxInventory); text = FormatArrangement(text, 30, " "); } else { text = GetItemsString(items, NetItem.MaxInventory, 1); } - var str = "玩家 [ " + playerfullname + " ] 备份 [ " + ID + " - " + slot + " ] 的内容为:\n" + text; + + var str = GetString($"玩家[{playerfullname}]备份 [{ID} - {slot}] 的内容为:\n") + text; args.Player.SendInfoMessage(str); } } else { - args.Player.SendInfoMessage("输入 /zvisa [num] 来查看自己的第几个人物备份\n输入 /zvisa name [num] 来查看该玩家的第几个人物备份"); + args.Player.SendInfoMessage(GetString("输入 /zvisa [num] 来查看自己的第几个人物备份\n输入 /zvisa name [num] 来查看该玩家的第几个人物备份")); } } /// - /// 克隆另一个人的数据的方法指令 + /// 克隆另一个人的数据的方法指令 /// /// private void SSCClone(CommandArgs args) { if (args.Parameters.Count == 0 || args.Parameters.Count > 2) { - args.Player.SendInfoMessage("输入 /zclone [name1] [name2] 将玩家1的人物数据复制给玩家2\n输入 /zclone [name] 将该玩家的人物数据复制给自己"); + args.Player.SendInfoMessage(GetString("输入 /zclone [name1] [name2] 将玩家1的人物数据复制给玩家2\n输入 /zclone [name] 将该玩家的人物数据复制给自己")); return; } + if (args.Parameters.Count == 1) { if (args.Parameters[0] == args.Player.Name) { - args.Player.SendMessage("克隆失败!请不要克隆自己", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("克隆失败!请不要克隆自己"), new Color(255, 0, 0)); return; } + if (!args.Player.IsLoggedIn) { - args.Player.SendInfoMessage("对象不正确,请检查您的状态,您是否为游戏内玩家?"); + args.Player.SendInfoMessage(GetString("对象不正确,请检查您的状态,您是否为游戏内玩家?")); return; } + var list = this.BestFindPlayerByNameOrIndex(args.Parameters[0]); //找不到人,查离线 if (list.Count == 0) @@ -356,24 +378,24 @@ private void SSCClone(CommandArgs args) args.Player.SendInfoMessage(this.noplayer); return; } - else if (users.Count > 1) + + if (users.Count > 1) { args.Player.SendInfoMessage(this.manyplayer); return; } - else - { - user = users[0]; - } + + user = users[0]; } + var playerData = TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), user.ID); if (this.UpdatePlayerAll(args.Player, playerData)) { - args.Player.SendMessage("克隆成功!您已将玩家 [" + user.Name + "] 的数据克隆到你身上", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"克隆成功!您已将玩家[{user.Name}]的数据克隆到你身上"), new Color(0, 255, 0)); } else { - args.Player.SendMessage("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入"), new Color(255, 0, 0)); } } //人太多,舍弃 @@ -390,14 +412,15 @@ private void SSCClone(CommandArgs args) playerData.exists = true; if (this.UpdatePlayerAll(args.Player, playerData)) { - args.Player.SendMessage("克隆成功!您已将玩家 [" + list[0].Name + "] 的数据克隆到你身上", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"克隆成功!您已将玩家[{ list[0].Name}]的数据克隆到你身上"), new Color(0, 255, 0)); } else { - args.Player.SendMessage("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入"), new Color(255, 0, 0)); } } } + if (args.Parameters.Count == 2) { var player1 = this.BestFindPlayerByNameOrIndex(args.Parameters[0]); @@ -407,113 +430,121 @@ private void SSCClone(CommandArgs args) args.Player.SendInfoMessage(this.manyplayer); return; } + //都在线的情况 if (player1.Count == 1 && player2.Count == 1) { if (player1[0].Name == player2[0].Name) { - args.Player.SendInfoMessage("请不要对同一个人进行克隆"); + args.Player.SendInfoMessage(GetString("请不要对同一个人进行克隆")); return; } + player1[0].PlayerData.CopyCharacter(player1[0]); player1[0].PlayerData.exists = true; if (this.UpdatePlayerAll(player2[0], player1[0].PlayerData)) { if (args.Player.Account.ID != player2[0].Account.ID) { - args.Player.SendMessage($"克隆成功!您已将玩家 [{player1[0].Name}] 的数据克隆到 [{player2[0].Name}] 身上", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"克隆成功!您已将玩家 [{player1[0].Name}] 的数据克隆到 [{player2[0].Name}] 身上"), new Color(0, 255, 0)); } else { - player2[0].SendMessage("克隆成功!已将玩家 [" + player1[0].Name + "] 的数据克隆到你身上", new Color(0, 255, 0)); + player2[0].SendMessage(GetString("克隆成功!已将玩家 [" + player1[0].Name + "] 的数据克隆到你身上"), new Color(0, 255, 0)); } } else { - args.Player.SendMessage("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入"), new Color(255, 0, 0)); } + return; } + //赋值者不在线,被赋值者在线的情况 if (player1.Count == 0 && player2.Count == 1) { - args.Player.SendInfoMessage("玩家1不在线,正在查询离线数据"); + args.Player.SendInfoMessage(GetString("玩家1不在线,正在查询离线数据")); var user1 = TShock.UserAccounts.GetUserAccountByName(args.Parameters[0]); var user1s = TShock.UserAccounts.GetUserAccountsByName(args.Parameters[0], true); if (user1 == null) { if (user1s.Count == 0) { - args.Player.SendInfoMessage("玩家1不存在"); + args.Player.SendInfoMessage(GetString("玩家1不存在")); return; } - else if (user1s.Count > 1) + + if (user1s.Count > 1) { - args.Player.SendInfoMessage("玩家1不唯一"); + args.Player.SendInfoMessage(GetString("玩家1不唯一")); return; } - else - { - user1 = user1s[0]; - } + + user1 = user1s[0]; } + var playerData1 = TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), user1.ID); if (this.UpdatePlayerAll(player2[0], playerData1)) { if (args.Player.Account.ID != player2[0].Account.ID) { - args.Player.SendMessage($"克隆成功!您已将玩家 [{user1.Name}] 的数据克隆到玩家 [{player2[0].Name}]身上", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"克隆成功!您已将玩家 [{user1.Name}] 的数据克隆到玩家 [{player2[0].Name}]身上"), new Color(0, 255, 0)); } else { - player2[0].SendMessage("克隆成功!已将玩家 [" + user1.Name + "] 的数据克隆到你身上", new Color(0, 255, 0)); + player2[0].SendMessage(GetString("克隆成功!已将玩家 [" + user1.Name + "] 的数据克隆到你身上"), new Color(0, 255, 0)); } } else { - args.Player.SendMessage("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入"), new Color(255, 0, 0)); } + return; } + //赋值者在线,被赋值者不在线的情况 if (player1.Count == 1 && player2.Count == 0) { - args.Player.SendInfoMessage("玩家2不在线,正在查询离线数据"); + args.Player.SendInfoMessage(GetString("玩家2不在线,正在查询离线数据")); var user2 = TShock.UserAccounts.GetUserAccountByName(args.Parameters[1]); var user2s = TShock.UserAccounts.GetUserAccountsByName(args.Parameters[1], true); if (user2 == null) { if (user2s.Count == 0) { - args.Player.SendInfoMessage("玩家2不存在"); + args.Player.SendInfoMessage(GetString("玩家2不存在")); return; } - else if (user2s.Count > 1) + + if (user2s.Count > 1) { - args.Player.SendInfoMessage("玩家2不唯一"); + args.Player.SendInfoMessage(GetString("玩家2不唯一")); return; } - else - { - user2 = user2s[0]; - } + + user2 = user2s[0]; } + var playerData1 = player1[0].PlayerData; playerData1.exists = true; if (this.UpdateTshockDBCharac(user2.ID, playerData1)) { - args.Player.SendMessage($"克隆成功!您已将玩家 [{player1[0].Name}] 的数据克隆到玩家 [{user2.Name}] 身上", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"克隆成功!您已将玩家 [{player1[0].Name}] 的数据克隆到玩家 [{user2.Name}] 身上"), new Color(0, 255, 0)); } else { - args.Player.SendMessage("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入"), new Color(255, 0, 0)); } + return; } + //都不在线 if (player1.Count == 0 && player2.Count == 0) { - args.Player.SendInfoMessage("玩家都不在线,正在查询离线数据"); + args.Player.SendInfoMessage(GetString("玩家都不在线,正在查询离线数据")); var user1 = TShock.UserAccounts.GetUserAccountByName(args.Parameters[0]); var user1s = TShock.UserAccounts.GetUserAccountsByName(args.Parameters[0], true); var user2 = TShock.UserAccounts.GetUserAccountByName(args.Parameters[1]); @@ -522,100 +553,102 @@ private void SSCClone(CommandArgs args) { if (user1s.Count == 0) { - args.Player.SendInfoMessage("玩家1不存在"); + args.Player.SendInfoMessage(GetString("玩家1不存在")); return; } - else if (user1s.Count > 1) + + if (user1s.Count > 1) { - args.Player.SendInfoMessage("玩家1不唯一"); + args.Player.SendInfoMessage(GetString("玩家1不唯一")); return; } - else - { - user1 = user1s[0]; - } + + user1 = user1s[0]; } + if (user2 == null) { if (user2s.Count == 0) { - args.Player.SendInfoMessage("玩家2不存在"); + args.Player.SendInfoMessage(GetString("玩家2不存在")); return; } - else if (user2s.Count > 1) + + if (user2s.Count > 1) { - args.Player.SendInfoMessage("玩家2不唯一"); + args.Player.SendInfoMessage(GetString("玩家2不唯一")); return; } - else - { - user2 = user2s[0]; - } + + user2 = user2s[0]; } + var playerData = TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), user1.ID); if (this.UpdateTshockDBCharac(user2.ID, playerData)) { - args.Player.SendMessage($"克隆成功!您已将玩家 [{user1.Name}] 的数据克隆到玩家 [{user2.Name}] 身上", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"克隆成功!您已将玩家 [{user1.Name}] 的数据克隆到玩家 [{user2.Name}] 身上"), new Color(0, 255, 0)); } else { - args.Player.SendMessage("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入"), new Color(255, 0, 0)); } - return; } } } /// - /// 修改人物数据方法指令 + /// 修改人物数据方法指令 /// /// private void SSCModify(CommandArgs args) { if (args.Parameters.Count != 1 && args.Parameters.Count != 3) { - args.Player.SendInfoMessage("输入 /zmodify help 查看修改玩家数据的指令帮助"); + args.Player.SendInfoMessage(GetString("输入 /zmodify help 查看修改玩家数据的指令帮助")); return; } + if (args.Parameters.Count == 1) { if (args.Parameters[0].Equals("help", StringComparison.OrdinalIgnoreCase)) { var temp = config.EnablePointTracking ? "\n输入 /zmodify [name] point [num] 来修改玩家点数" : ""; args.Player.SendMessage( - "输入 /zmodify [name] life [num] 来修改玩家的血量\n" + - "输入 /zmodify [name] lifemax [num] 来修改玩家的血量上限\n" + - "输入 /zmodify [name] mana [num] 来修改玩家的魔力\n" + - "输入 /zmodify [name] manamax [num] 来修改玩家的魔力上限\n" + - "输入 /zmodify [name] fish [num] 来修改玩家的渔夫任务数\n" + - "输入 /zmodify [name] torch [0或1] 来关闭或开启火把神增益\n" + - "输入 /zmodify [name] demmon [0或1] 来关闭或开启恶魔心增益\n" + - "输入 /zmodify [name] bread [0或1] 来关闭或开启工匠面包增益\n" + - "输入 /zmodify [name] heart [0或1] 来关闭或开启埃癸斯水晶增益\n" + - "输入 /zmodify [name] fruit [0或1] 来关闭或开启埃癸斯果增益\n" + - "输入 /zmodify [name] star [0或1] 来关闭或开启奥术水晶增益\n" + - "输入 /zmodify [name] pearl [0或1] 来关闭或开启银河珍珠增益\n" + - "输入 /zmodify [name] worm [0或1] 来关闭或开启粘性蠕虫增益\n" + - "输入 /zmodify [name] ambrosia [0或1] 来关闭或开启珍馐增益\n" + - "输入 /zmodify [name] cart [0或1] 来关闭或开启超级矿车增益\n" + - "输入 /zmodify [name] all [0或1] 来关闭或开启所有玩家增益" + temp + GetString("输入 /zmodify [name] life [num] 来修改玩家的血量\n") + + GetString("输入 /zmodify [name] lifemax [num] 来修改玩家的血量上限\n") + + GetString("输入 /zmodify [name] mana [num] 来修改玩家的魔力\n") + + GetString("输入 /zmodify [name] manamax [num] 来修改玩家的魔力上限\n") + + GetString("输入 /zmodify [name] fish [num] 来修改玩家的渔夫任务数\n") + + GetString("输入 /zmodify [name] torch [0或1] 来关闭或开启火把神增益\n") + + GetString("输入 /zmodify [name] demmon [0或1] 来关闭或开启恶魔心增益\n") + + GetString("输入 /zmodify [name] bread [0或1] 来关闭或开启工匠面包增益\n") + + GetString("输入 /zmodify [name] heart [0或1] 来关闭或开启埃癸斯水晶增益\n") + + GetString("输入 /zmodify [name] fruit [0或1] 来关闭或开启埃癸斯果增益\n") + + GetString("输入 /zmodify [name] pearl [0或1] 来关闭或开启银河珍珠增益\n") + + GetString("输入 /zmodify [name] worm [0或1] 来关闭或开启粘性蠕虫增益\n") + + GetString("输入 /zmodify [name] ambrosia [0或1] 来关闭或开启珍馐增益\n") + + GetString("输入 /zmodify [name] cart [0或1] 来关闭或开启超级矿车增益\n") + + GetString("输入 /zmodify [name] all [0或1] 来关闭或开启所有玩家增益") + temp , TextColor()); } else { - args.Player.SendInfoMessage("输入 /zmodify help 查看修改玩家数据的指令帮助"); + args.Player.SendInfoMessage(GetString("输入 /zmodify help 查看修改玩家数据的指令帮助")); } + return; } + if (args.Parameters.Count == 3) { //对参数3先判断是不是数据,不是数字结束 if (!int.TryParse(args.Parameters[2], out var num)) { - args.Player.SendInfoMessage("格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助"); + args.Player.SendInfoMessage(GetString("格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助")); return; } + //再判断能不能找到人的情况 var players = this.BestFindPlayerByNameOrIndex(args.Parameters[0]); if (players.Count > 1) @@ -623,38 +656,39 @@ private void SSCModify(CommandArgs args) args.Player.SendInfoMessage(this.manyplayer); return; } + //在线能找到 if (players.Count == 1) { if (args.Parameters[1].Equals("life", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.statLife = num; - players[0].SendData(PacketTypes.PlayerHp, "", players[0].Index, 0f, 0f, 0f, 0); + players[0].SendData(PacketTypes.PlayerHp, "", players[0].Index); players[0].SendMessage("您的生命值已被修改为:" + num, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("lifemax", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.statLifeMax = num; - players[0].SendData(PacketTypes.PlayerHp, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的生命上限已被修改为:" + num, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerHp, "", players[0].Index); + players[0].SendMessage(GetString("您的生命上限已被修改为:") + num, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("mana", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.statMana = num; - players[0].SendData(PacketTypes.PlayerMana, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的魔力值已被修改为:" + num, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerMana, "", players[0].Index); + players[0].SendMessage(GetString("您的魔力值已被修改为:") + num, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("manamax", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.statManaMax = num; - players[0].SendData(PacketTypes.PlayerMana, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的魔力上限已被修改为:" + num, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerMana, "", players[0].Index); + players[0].SendMessage(GetString("您的魔力上限已被修改为:") + num, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("fish", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.anglerQuestsFinished = num; - players[0].SendData(PacketTypes.NumberOfAnglerQuestsCompleted, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的渔夫任务完成数已被修改为:" + num, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.NumberOfAnglerQuestsCompleted, "", players[0].Index); + players[0].SendMessage(GetString("您的渔夫任务完成数已被修改为:") + num, new Color(0, 255, 0)); } else if (config.EnablePointTracking && args.Parameters[1].Equals("point", StringComparison.OrdinalIgnoreCase)) { @@ -662,78 +696,78 @@ private void SSCModify(CommandArgs args) if (ex != null) { ex.point = num; - players[0].SendMessage("您的点数已被修改为:" + num, new Color(0, 255, 0)); + players[0].SendMessage(GetString("您的点数已被修改为:") + num, new Color(0, 255, 0)); } else { - args.Player.SendInfoMessage("不可预料的错误,请重试或让该玩家重进游戏"); + args.Player.SendInfoMessage(GetString("不可预料的错误,请重试或让该玩家重进游戏")); return; } } else if (num != 0 && num != 1) { - args.Player.SendInfoMessage("格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助"); + args.Player.SendInfoMessage(GetString("格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助")); return; } else if (args.Parameters[1].Equals("torch", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.unlockedBiomeTorches = num != 0; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的火把神增益开启状态:" + players[0].TPlayer.unlockedBiomeTorches, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的火把神增益开启状态:") + players[0].TPlayer.unlockedBiomeTorches, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("demmon", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.extraAccessory = num != 0; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的恶魔心增益开启状态:" + players[0].TPlayer.extraAccessory, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的恶魔心增益开启状态:") + players[0].TPlayer.extraAccessory, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("bread", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.ateArtisanBread = num != 0; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的工匠面包增益开启状态:" + players[0].TPlayer.ateArtisanBread, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的工匠面包增益开启状态:") + players[0].TPlayer.ateArtisanBread, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("heart", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.usedAegisCrystal = num != 0; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的埃癸斯水晶增益开启状态:" + players[0].TPlayer.usedAegisCrystal, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的埃癸斯水晶增益开启状态:" )+ players[0].TPlayer.usedAegisCrystal, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("fruit", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.usedAegisFruit = num != 0; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的埃癸斯果增益开启状态:" + players[0].TPlayer.usedAegisFruit, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的埃癸斯果增益开启状态:") + players[0].TPlayer.usedAegisFruit, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("star", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.usedArcaneCrystal = num != 0; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的奥术水晶增益开启状态:" + players[0].TPlayer.usedArcaneCrystal, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的奥术水晶增益开启状态:") + players[0].TPlayer.usedArcaneCrystal, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("pearl", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.usedGalaxyPearl = num != 0; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的银河珍珠增益开启状态:" + players[0].TPlayer.usedGalaxyPearl, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的银河珍珠增益开启状态:") + players[0].TPlayer.usedGalaxyPearl, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("worm", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.usedGummyWorm = num != 0; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的粘性蠕虫增益开启状态:" + players[0].TPlayer.usedGummyWorm, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的粘性蠕虫增益开启状态:") + players[0].TPlayer.usedGummyWorm, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("ambrosia", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.usedAmbrosia = num != 0; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的珍馐增益开启状态:" + players[0].TPlayer.usedAmbrosia, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的珍馐增益开启状态:") + players[0].TPlayer.usedAmbrosia, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("cart", StringComparison.OrdinalIgnoreCase)) { players[0].TPlayer.unlockedSuperCart = num != 0; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的超级矿车增益开启状态:" + players[0].TPlayer.unlockedSuperCart, new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的超级矿车增益开启状态:") + players[0].TPlayer.unlockedSuperCart, new Color(0, 255, 0)); } else if (args.Parameters[1].Equals("all", StringComparison.OrdinalIgnoreCase)) { @@ -749,8 +783,8 @@ private void SSCModify(CommandArgs args) players[0].TPlayer.usedGummyWorm = true; players[0].TPlayer.usedAmbrosia = true; players[0].TPlayer.unlockedSuperCart = true; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的所有永久增益均开启", new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的所有永久增益均开启"), new Color(0, 255, 0)); } else if (num == 0) { @@ -764,15 +798,16 @@ private void SSCModify(CommandArgs args) players[0].TPlayer.usedGummyWorm = false; players[0].TPlayer.usedAmbrosia = false; players[0].TPlayer.unlockedSuperCart = false; - players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index, 0f, 0f, 0f, 0); - players[0].SendMessage("您的所有永久增益均关闭", new Color(0, 255, 0)); + players[0].SendData(PacketTypes.PlayerInfo, "", players[0].Index); + players[0].SendMessage(GetString("您的所有永久增益均关闭"), new Color(0, 255, 0)); } else { - args.Player.SendInfoMessage("格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助"); + args.Player.SendInfoMessage(GetString("格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助")); } } - args.Player.SendMessage("修改成功!", new Color(0, 255, 0)); + + args.Player.SendMessage(GetString("修改成功!"), new Color(0, 255, 0)); } //不在线,修改离线数据 else if (players.Count == 0) @@ -787,164 +822,98 @@ private void SSCModify(CommandArgs args) args.Player.SendInfoMessage(this.noplayer); return; } - else if (users.Count > 1) + + if (users.Count > 1) { args.Player.SendInfoMessage(this.manyplayer); return; } - else - { - user = users[0]; - } + + user = users[0]; } + try { if (args.Parameters[1].Equals("life", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET Health = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET Health = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("lifemax", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET MaxHealth= @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET MaxHealth= @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("mana", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET Mana = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET Mana = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("manamax", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET MaxMana = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET MaxMana = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("fish", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET questsCompleted = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET questsCompleted = @0 WHERE Account = @1;", num, user.ID); } else if (config.EnablePointTracking && args.Parameters[1].Equals("point", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE Zhipm_PlayerExtra SET point = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE Zhipm_PlayerExtra SET point = @0 WHERE Account = @1;", num, user.ID); } else if (num != 0 && num != 1) { - args.Player.SendInfoMessage("格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助"); + args.Player.SendInfoMessage(GetString("格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助")); return; } else if (args.Parameters[1].Equals("torch", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET unlockedBiomeTorches = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET unlockedBiomeTorches = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("demmon", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET extraSlot = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET extraSlot = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("bread", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET ateArtisanBread = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET ateArtisanBread = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("crystal", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET usedAegisCrystal = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET usedAegisCrystal = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("fruit", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET usedAegisFruit = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET usedAegisFruit = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("arcane", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET usedArcaneCrystal = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET usedArcaneCrystal = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("pearl", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET usedGalaxyPearl = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET usedGalaxyPearl = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("worm", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET usedGummyWorm = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET usedGummyWorm = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("ambrosia", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET usedAmbrosia = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET usedAmbrosia = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("cart", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET unlockedSuperCart = @0 WHERE Account = @1;", new object[] - { - num, - user.ID - }); + TShock.DB.Query("UPDATE tsCharacter SET unlockedSuperCart = @0 WHERE Account = @1;", num, user.ID); } else if (args.Parameters[1].Equals("all", StringComparison.OrdinalIgnoreCase)) { - TShock.DB.Query("UPDATE tsCharacter SET unlockedBiomeTorches = @1, extraSlot = @2, ateArtisanBread = @3, usedAegisCrystal = @4, usedAegisFruit = @5, usedArcaneCrystal = @6, usedGalaxyPearl = @7, usedGummyWorm = @8, usedAmbrosia = @9, unlockedSuperCart = @10 WHERE Account = @0;", new object[] - { - user.ID, num, num, num, num, num, num, num, num, num, num - }); + TShock.DB.Query("UPDATE tsCharacter SET unlockedBiomeTorches = @1, extraSlot = @2, ateArtisanBread = @3, usedAegisCrystal = @4, usedAegisFruit = @5, usedArcaneCrystal = @6, usedGalaxyPearl = @7, usedGummyWorm = @8, usedAmbrosia = @9, unlockedSuperCart = @10 WHERE Account = @0;", user.ID, num, num, num, num, num, num, num, num, num, num); } - args.Player.SendMessage("修改成功!", new Color(0, 255, 0)); + + args.Player.SendMessage(GetString("修改成功!"), new Color(0, 255, 0)); } catch (Exception ex) { - args.Player.SendMessage("修改失败!错误:" + ex.ToString(), new Color(255, 0, 0)); - TShock.Log.Error("修改失败!错误:" + ex.ToString()); + args.Player.SendMessage(GetString("修改失败!错误:") + ex, new Color(255, 0, 0)); + TShock.Log.Error(GetString("修改失败!错误:") + ex); } } } @@ -952,33 +921,34 @@ private void SSCModify(CommandArgs args) /// - /// 重置用户备份数据库方法指令 + /// 重置用户备份数据库方法指令 /// /// private void ZResetPlayerDB(CommandArgs args) { if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /zresetdb [name] 来清理该玩家的备份数据\n输入 /zresetdb all 来清理所有玩家的备份数据"); + args.Player.SendInfoMessage(GetString("输入 /zresetdb [name] 来清理该玩家的备份数据\n输入 /zresetdb all 来清理所有玩家的备份数据")); return; } + if (args.Parameters[0].Equals("all", StringComparison.OrdinalIgnoreCase)) { if (ZPDataBase.ClearALLZPlayerDB(ZPDataBase)) { if (!args.Player.IsLoggedIn) { - args.Player.SendMessage("所有玩家的备份数据均已重置", broadcastColor); - TSPlayer.All.SendMessage("所有玩家的备份数据均已重置", broadcastColor); + args.Player.SendMessage(GetString("所有玩家的备份数据均已重置"), broadcastColor); + TSPlayer.All.SendMessage(GetString("所有玩家的备份数据均已重置"), broadcastColor); } else { - TSPlayer.All.SendMessage("所有玩家的备份数据均已重置", broadcastColor); + TSPlayer.All.SendMessage(GetString("所有玩家的备份数据均已重置"), broadcastColor); } } else { - args.Player.SendMessage("重置失败", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("重置失败"), new Color(255, 0, 0)); } } else @@ -989,19 +959,22 @@ private void ZResetPlayerDB(CommandArgs args) args.Player.SendInfoMessage(this.manyplayer); return; } + if (list.Count == 1) { if (ZPDataBase.ClearZPlayerDB(list[0].Account.ID)) { - args.Player.SendMessage($"已重置玩家 [ {list[0].Name} ] 的备份数据", new Color(0, 255, 0)); - list[0].SendMessage("您的备份数据已重置", broadcastColor); + args.Player.SendMessage(GetString($"已重置玩家 [ {list[0].Name} ] 的备份数据"), new Color(0, 255, 0)); + list[0].SendMessage(GetString("您的备份数据已重置"), broadcastColor); } else { - args.Player.SendMessage("重置失败", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("重置失败"), new Color(255, 0, 0)); } + return; } + if (list.Count == 0) { args.Player.SendInfoMessage(this.offlineplayer); @@ -1014,11 +987,11 @@ private void ZResetPlayerDB(CommandArgs args) { if (ZPDataBase.ClearZPlayerDB(user.ID)) { - args.Player.SendMessage($"已重置离线玩家 [ {user.Name} ] 的备份数据", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"已重置离线玩家 [ {user.Name} ] 的备份数据"), new Color(0, 255, 0)); } else { - args.Player.SendMessage("重置失败", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("重置失败"), new Color(255, 0, 0)); } } } @@ -1027,16 +1000,17 @@ private void ZResetPlayerDB(CommandArgs args) /// - /// 重置用户额外数据库方法指令 + /// 重置用户额外数据库方法指令 /// /// private void ZResetPlayerEX(CommandArgs args) { if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /zresetex [name] 来清理该玩家的额外数据\n输入 /zresetex all 来清理所有玩家的额外数据"); + args.Player.SendInfoMessage(GetString("输入 /zresetex [name] 来清理该玩家的额外数据\n输入 /zresetex all 来清理所有玩家的额外数据")); return; } + if (args.Parameters[0].Equals("all", StringComparison.OrdinalIgnoreCase)) { if (ZPExtraDB.ClearALLZPlayerExtraDB(ZPExtraDB)) @@ -1044,40 +1018,45 @@ private void ZResetPlayerEX(CommandArgs args) edPlayers.Clear(); if (!args.Player.IsLoggedIn) { - args.Player.SendMessage("所有玩家的额外数据均已重置", broadcastColor); - TSPlayer.All.SendMessage("所有玩家的额外数据均已重置", broadcastColor); + args.Player.SendMessage(GetString("所有玩家的额外数据均已重置"), broadcastColor); + TSPlayer.All.SendMessage(GetString("所有玩家的额外数据均已重置"), broadcastColor); } else { - TSPlayer.All.SendMessage("所有玩家的额外数据均已重置", broadcastColor); + TSPlayer.All.SendMessage(GetString("所有玩家的额外数据均已重置"), broadcastColor); } } else { - args.Player.SendMessage("重置失败", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("重置失败"), new Color(255, 0, 0)); } + return; } + var tSPlayers = this.BestFindPlayerByNameOrIndex(args.Parameters[0]); if (tSPlayers.Count > 1) { args.Player.SendInfoMessage(this.manyplayer); return; } + if (tSPlayers.Count == 1) { if (ZPExtraDB.ClearZPlayerExtraDB(tSPlayers[0].Account.ID)) { - edPlayers.RemoveAll((ExtraData x) => x.Name == tSPlayers[0].Name); - args.Player.SendMessage($"已重置玩家 [ {tSPlayers[0].Name} ] 的额外数据", new Color(0, 255, 0)); - tSPlayers[0].SendMessage("您的额外数据已重置", broadcastColor); + edPlayers.RemoveAll(x => x.Name == tSPlayers[0].Name); + args.Player.SendMessage(GetString($"已重置玩家 [ {tSPlayers[0].Name} ] 的额外数据"), new Color(0, 255, 0)); + tSPlayers[0].SendMessage(GetString("您的额外数据已重置"), broadcastColor); } else { - args.Player.SendMessage("重置失败", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("重置失败"), new Color(255, 0, 0)); } + return; } + if (tSPlayers.Count == 0) { args.Player.SendInfoMessage(this.offlineplayer); @@ -1090,11 +1069,11 @@ private void ZResetPlayerEX(CommandArgs args) { if (ZPExtraDB.ClearZPlayerExtraDB(user.ID)) { - args.Player.SendMessage($"已重置离线玩家 [ {user.Name} ] 的额外数据", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"已重置离线玩家 [ {user.Name} ] 的额外数据"), new Color(0, 255, 0)); } else { - args.Player.SendMessage("重置失败", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("重置失败"), new Color(255, 0, 0)); } } } @@ -1102,30 +1081,32 @@ private void ZResetPlayerEX(CommandArgs args) /// - /// 重置玩家的人物数据方法指令 + /// 重置玩家的人物数据方法指令 /// /// private void ZResetPlayer(CommandArgs args) { if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /zreset 来清理该玩家的人物数据\n输入 /zreset all 来清理所有玩家的人物数据"); + args.Player.SendInfoMessage(GetString("输入 /zreset 来清理该玩家的人物数据\n输入 /zreset all 来清理所有玩家的人物数据")); return; } + if (args.Parameters[0].Equals("help", StringComparison.OrdinalIgnoreCase)) { args.Player.SendInfoMessage( - "输入 /zresetdb 来清理该玩家的备份数据\n" + - "输入 /zresetdb all 来清理所有玩家的备份数据\n" + - "输入 /zresetex 来清理该玩家的额外数据\n" + - "输入 /zresetex all 来清理所有玩家的额外数据\n" + - "输入 /zreset 来清理该玩家的人物数据\n" + - "输入 /zreset all 来清理所有玩家的人物数据\n" + - "输入 /zresetallplayers 来清理所有玩家的所有数据" - , TextColor()); + GetString("输入 /zresetdb 来清理该玩家的备份数据\n") + + GetString("输入 /zresetdb all 来清理所有玩家的备份数据\n") + + GetString("输入 /zresetex 来清理该玩家的额外数据\n") + + GetString("输入 /zresetex all 来清理所有玩家的额外数据\n") + + GetString("输入 /zreset 来清理该玩家的人物数据\n") + + GetString("输入 /zreset all 来清理所有玩家的人物数据\n") + + GetString("输入 /zresetallplayers 来清理所有玩家的所有数据") + , TextColor()); return; } - else if (args.Parameters[0].Equals("all", StringComparison.OrdinalIgnoreCase)) + + if (args.Parameters[0].Equals("all", StringComparison.OrdinalIgnoreCase)) { try { @@ -1138,24 +1119,28 @@ private void ZResetPlayer(CommandArgs args) } } catch { } + TShock.DB.Query("delete from tsCharacter"); if (!args.Player.IsLoggedIn) { - args.Player.SendMessage("所有玩家的人物数据均已重置", broadcastColor); - TSPlayer.All.SendMessage("所有玩家的人物数据均已重置", broadcastColor); + args.Player.SendMessage(GetString("所有玩家的人物数据均已重置"), broadcastColor); + TSPlayer.All.SendMessage(GetString("所有玩家的人物数据均已重置"), broadcastColor); } else { - TSPlayer.All.SendMessage("所有玩家的人物数据均已重置", broadcastColor); + TSPlayer.All.SendMessage(GetString("所有玩家的人物数据均已重置"), broadcastColor); } + return; } + var list = this.BestFindPlayerByNameOrIndex(args.Parameters[0]); if (list.Count > 1) { args.Player.SendInfoMessage(this.manyplayer); return; } + if (list.Count == 0) { args.Player.SendInfoMessage(this.offlineplayer); @@ -1168,42 +1153,44 @@ private void ZResetPlayer(CommandArgs args) { if (TShock.CharacterDB.RemovePlayer(user.ID)) { - args.Player.SendMessage($"已重置离线玩家 [ {user.Name} ] 的数据", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"已重置离线玩家 [ {user.Name} ] 的数据"), new Color(0, 255, 0)); } else { - args.Player.SendMessage("重置失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("重置失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入"), new Color(255, 0, 0)); } } + return; } + if (list.Count == 1) { if (this.ResetPlayer(list[0]) | TShock.CharacterDB.RemovePlayer(list[0].Account.ID)) { - args.Player.SendMessage($"已重置玩家 [ {list[0].Name} ] 的数据", new Color(0, 255, 0)); - list[0].SendMessage("您的人物数据已被重置", broadcastColor); + args.Player.SendMessage(GetString($"已重置玩家 [ {list[0].Name} ] 的数据"), new Color(0, 255, 0)); + list[0].SendMessage(GetString("您的人物数据已被重置"), broadcastColor); } else { - args.Player.SendInfoMessage("重置失败"); + args.Player.SendInfoMessage(GetString("重置失败")); } - return; } } /// - /// 重置所有用户所有数据方法指令 + /// 重置所有用户所有数据方法指令 /// /// private void ZResetPlayerAll(CommandArgs args) { if (args.Parameters.Count != 0) { - args.Player.SendInfoMessage("输入 /zresetallplayers 来清理所有玩家的所有数据"); + args.Player.SendInfoMessage(GetString($"输入 /zresetallplayers 来清理所有玩家的所有数据")); return; } + try { foreach (var tsplayer in TShock.Players) @@ -1213,6 +1200,7 @@ private void ZResetPlayerAll(CommandArgs args) this.ResetPlayer(tsplayer); } } + TShock.DB.Query("delete from tsCharacter"); ZPDataBase.ClearALLZPlayerDB(ZPDataBase); ZPExtraDB.ClearALLZPlayerExtraDB(ZPExtraDB); @@ -1220,33 +1208,35 @@ private void ZResetPlayerAll(CommandArgs args) } catch (Exception ex) { - args.Player.SendMessage("清理失败 ZResetPlayerAll :" + ex.ToString(), new Color(255, 0, 0)); - TShock.Log.Error("清理失败 ZResetPlayerAll :" + ex.ToString()); + args.Player.SendMessage(GetString($"清理失败 ZResetPlayerAll :") + ex, new Color(255, 0, 0)); + TShock.Log.Error(GetString($"清理失败 ZResetPlayerAll :") + ex); return; } + if (!args.Player.IsLoggedIn) { - args.Player.SendMessage("玩家已全部初始化", new Color(0, 255, 0)); - TSPlayer.All.SendMessage("所有玩家的所有数据均已全部初始化", broadcastColor); + args.Player.SendMessage(GetString($"玩家已全部初始化"), new Color(0, 255, 0)); + TSPlayer.All.SendMessage(GetString($"所有玩家的所有数据均已全部初始化"), broadcastColor); } else { - TShock.Utils.Broadcast("所有玩家的所有数据均已全部初始化", broadcastColor); + TShock.Utils.Broadcast(GetString($"所有玩家的所有数据均已全部初始化"), broadcastColor); } } /// - /// 分类查阅指令 + /// 分类查阅指令 /// /// private void ViewInvent(CommandArgs args) { if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /vi <玩家名> 来查看该玩家的库存"); + args.Player.SendInfoMessage(GetString($"输入 /vi <玩家名> 来查看该玩家的库存")); return; } + //显示模式 var model = args.Player.IsLoggedIn ? 0 : 1; @@ -1291,16 +1281,16 @@ private void ViewInvent(CommandArgs args) if (list.Count == 1) { - sb.AppendLine("玩家 【" + li.Name + "】 的所有库存如下:"); + sb.AppendLine(GetString($"玩家 【{li.Name}】 的所有库存如下:")); } else { - sb.AppendLine("多个结果 玩家 【" + li.Name + "】 的所有库存如下:"); + sb.AppendLine(GetString($"多个结果 玩家 【{li.Name}】 的所有库存如下:")); } if (inventory.Length > 0 && inventory != null && inventory != "") { - sb.AppendLine("背包:"); + sb.AppendLine(GetString($"背包:")); if (model == 0) { sb.AppendLine(FormatArrangement(inventory, 30, " ")); @@ -1310,69 +1300,80 @@ private void ViewInvent(CommandArgs args) sb.AppendLine(inventory); } } + //装备栏 if (armor.Length > 0 && armor != null && armor != "") { - sb.AppendLine("盔甲 + 饰品 + 时装:"); - sb.AppendLine("当前装备栏:"); + sb.AppendLine(GetString($"盔甲 + 饰品 + 时装:")); + sb.AppendLine(GetString($"当前装备栏:")); sb.AppendLine(armor); } + if (armor1.Length > 0 && armor1 != null && armor1 != "") { - sb.AppendLine("装备栏1:"); + sb.AppendLine(GetString($"装备栏1:")); sb.AppendLine(armor1); } + if (armor2.Length > 0 && armor2 != null && armor2 != "") { - sb.AppendLine("装备栏2:"); + sb.AppendLine(GetString($"装备栏2:")); sb.AppendLine(armor2); } + if (armor3.Length > 0 && armor3 != null && armor3 != "") { - sb.AppendLine("装备栏3:"); + sb.AppendLine(GetString($"装备栏3:")); sb.AppendLine(armor3); } + //染料 if (dyestuff.Length > 0 && dyestuff != null && dyestuff != "") { - sb.AppendLine("当前染料:"); + sb.AppendLine(GetString($"当前染料:")); sb.AppendLine(dyestuff); } + if (dyestuff1.Length > 0 && dyestuff1 != null && dyestuff1 != "") { - sb.AppendLine("染料1:"); + sb.AppendLine(GetString($"染料1:")); sb.AppendLine(dyestuff1); } + if (dyestuff2.Length > 0 && dyestuff2 != null && dyestuff2 != "") { - sb.AppendLine("染料2:"); + sb.AppendLine(GetString($"染料2:")); sb.AppendLine(dyestuff2); } + if (dyestuff3.Length > 0 && dyestuff3 != null && dyestuff3 != "") { - sb.AppendLine("染料3:"); + sb.AppendLine(GetString($"染料3:")); sb.AppendLine(dyestuff3); } if (misc.Length > 0 && misc != null && misc != "") { - sb.AppendLine("宠物 + 矿车 + 坐骑 + 钩爪:"); + sb.AppendLine(GetString($"宠物 + 矿车 + 坐骑 + 钩爪:")); sb.AppendLine(misc); } + if (miscDye.Length > 0 && miscDye != null && miscDye != "") { - sb.AppendLine("宠物 矿车 坐骑 钩爪 染料:"); + sb.AppendLine(GetString($"宠物 矿车 坐骑 钩爪 染料:")); sb.AppendLine(miscDye); } + if (trash != "") { - sb.AppendLine("垃圾桶:"); + sb.AppendLine(GetString($"垃圾桶:")); sb.AppendLine(trash); } + if (pig.Length > 0 && pig != null && pig != "") { - sb.AppendLine("猪猪储蓄罐:"); + sb.AppendLine(GetString($"猪猪储蓄罐:")); if (model == 0) { sb.AppendLine(FormatArrangement(pig, 30, " ")); @@ -1382,9 +1383,10 @@ private void ViewInvent(CommandArgs args) sb.AppendLine(pig); } } + if (safe.Length > 0 && safe != null && safe != "") { - sb.AppendLine("保险箱:"); + sb.AppendLine(GetString($"保险箱:")); if (model == 0) { sb.AppendLine(FormatArrangement(safe, 30, " ")); @@ -1394,9 +1396,10 @@ private void ViewInvent(CommandArgs args) sb.AppendLine(safe); } } + if (forge.Length > 0 && forge != null && forge != "") { - sb.AppendLine("护卫熔炉:"); + sb.AppendLine(GetString($"护卫熔炉:")); if (model == 0) { sb.AppendLine(FormatArrangement(forge, 30, " ")); @@ -1406,9 +1409,10 @@ private void ViewInvent(CommandArgs args) sb.AppendLine(forge); } } + if (vault.Length > 0 && vault != null && vault != "") { - sb.AppendLine("虚空金库:"); + sb.AppendLine(GetString($"虚空金库:")); if (model == 0) { sb.AppendLine(FormatArrangement(vault, 30, " ")); @@ -1418,13 +1422,14 @@ private void ViewInvent(CommandArgs args) sb.AppendLine(vault); } } + if (sb.Length > 0 && sb != null && !string.IsNullOrEmpty(sb.ToString())) { - args.Player.SendMessage(sb.ToString() + "\n", TextColor()); + args.Player.SendMessage(sb + "\n", TextColor()); } else { - args.Player.SendInfoMessage("玩家 【" + li.Name + "】 未携带任何东西"); + args.Player.SendInfoMessage(GetString($"玩家 【{li.Name}】 未携带任何东西")); } } } @@ -1433,7 +1438,7 @@ private void ViewInvent(CommandArgs args) args.Player.SendInfoMessage(this.offlineplayer); var users = new Dictionary(); var temp = TShock.UserAccounts.GetUserAccountsByName(name, true); - if (temp.Count == 1 || temp.Count > 1 && temp.Exists(x => x.Name == name)) + if (temp.Count == 1 || (temp.Count > 1 && temp.Exists(x => x.Name == name))) { if (temp.Count == 1) { @@ -1451,7 +1456,7 @@ private void ViewInvent(CommandArgs args) { users.Add(u, temp2); } - else//如果未找到就说明,你找到名字完全符合的没有charater数据,那么返回之前的多个模糊查找的结果 + else //如果未找到就说明,你找到名字完全符合的没有charater数据,那么返回之前的多个模糊查找的结果 { foreach (var t in temp) { @@ -1475,6 +1480,7 @@ private void ViewInvent(CommandArgs args) } } } + if (users.Count == 0) { args.Player.SendInfoMessage(this.noplayer); @@ -1494,16 +1500,16 @@ private void ViewInvent(CommandArgs args) { if (users.Count > 1) { - args.Player.SendMessage("多个结果 玩家 【" + p.Key.Name + "】 的所有库存如下:" + "\n" + offAll, TextColor()); + args.Player.SendMessage(GetString($"多个结果 玩家 【{p.Key.Name}】 的所有库存如下:" + "\n") + offAll, TextColor()); } else { - args.Player.SendMessage("玩家 【" + p.Key.Name + "】 的所有库存如下:" + "\n" + offAll, TextColor()); + args.Player.SendMessage(GetString($"玩家 【{p.Key.Name}】 的所有库存如下:") + "\n" + offAll, TextColor()); } } else { - args.Player.SendInfoMessage("玩家 【" + p.Key.Name + "】 未携带任何东西\n"); + args.Player.SendInfoMessage(GetString($"玩家 【{p.Key.Name}】 未携带任何东西\n")); } } } @@ -1512,16 +1518,17 @@ private void ViewInvent(CommandArgs args) /// - /// 不分类查阅指令 + /// 不分类查阅指令 /// /// private void ViewInventDisorder(CommandArgs args) { if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /vid <玩家名> 来查看该玩家的库存,不进行排列"); + args.Player.SendInfoMessage(GetString($"输入 /vid <玩家名> 来查看该玩家的库存,不进行排列")); return; } + var model = args.Player.IsLoggedIn ? 0 : 1; var name = args.Parameters[0]; @@ -1572,16 +1579,16 @@ private void ViewInventDisorder(CommandArgs args) { if (list.Count == 1) { - args.Player.SendMessage("玩家 【" + li.Name + "】 的所有库存如下:\n" + all + "\n", TextColor()); + args.Player.SendMessage(GetString($"玩家 【{li.Name}】 的所有库存如下:\n") + all + "\n", TextColor()); } else { - args.Player.SendMessage("多个结果 玩家 【" + li.Name + "】 的所有库存如下:\n" + all + "\n", TextColor()); + args.Player.SendMessage(GetString($"多个结果 玩家 【{li.Name}】 的所有库存如下:\n") + all + "\n", TextColor()); } } else { - args.Player.SendInfoMessage("玩家 【" + li.Name + "】未携带任何东西\n"); + args.Player.SendInfoMessage(GetString($"玩家 【{li.Name}】未携带任何东西\n")); } } } @@ -1590,7 +1597,7 @@ private void ViewInventDisorder(CommandArgs args) args.Player.SendInfoMessage(this.offlineplayer); var users = new Dictionary(); var temp = TShock.UserAccounts.GetUserAccountsByName(name, true); - if (temp.Count == 1 || temp.Count > 1 && temp.Exists(x => x.Name == name)) + if (temp.Count == 1 || (temp.Count > 1 && temp.Exists(x => x.Name == name))) { if (temp.Count == 1) { @@ -1608,7 +1615,7 @@ private void ViewInventDisorder(CommandArgs args) { users.Add(u, temp2); } - else//如果未找到就说明,你找到名字完全符合的没有charater数据,那么返回之前的多个模糊查找的结果 + else //如果未找到就说明,你找到名字完全符合的没有charater数据,那么返回之前的多个模糊查找的结果 { foreach (var t in temp) { @@ -1632,6 +1639,7 @@ private void ViewInventDisorder(CommandArgs args) } } } + if (users.Count == 0) { args.Player.SendInfoMessage(this.noplayer); @@ -1650,16 +1658,16 @@ private void ViewInventDisorder(CommandArgs args) { if (users.Count > 1) { - args.Player.SendMessage("多个结果 玩家 【" + p.Key.Name + "】 的所有库存如下:" + "\n" + offAll + "\n", TextColor()); + args.Player.SendMessage(GetString($"多个结果 玩家 【{p.Key.Name}】 的所有库存如下:") + "\n" + offAll + "\n", TextColor()); } else { - args.Player.SendMessage("玩家 【" + p.Key.Name + "】 的所有库存如下:" + "\n" + offAll + "\n", TextColor()); + args.Player.SendMessage(GetString($"玩家 【{p.Key.Name}】 的所有库存如下:") + "\n" + offAll + "\n", TextColor()); } } else { - args.Player.SendInfoMessage("玩家 【" + p.Key.Name + "】 未携带任何东西\n"); + args.Player.SendInfoMessage(GetString($"玩家 【{p.Key.Name}】 未携带任何东西\n")); } } } @@ -1668,7 +1676,7 @@ private void ViewInventDisorder(CommandArgs args) /// - /// 查询玩家的状态 + /// 查询玩家的状态 /// /// /// @@ -1676,9 +1684,10 @@ private void ViewState(CommandArgs args) { if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /vs <玩家名> 来查看该玩家的状态"); + args.Player.SendInfoMessage(GetString("输入 /vs <玩家名> 来查看该玩家的状态")); return; } + var name = args.Parameters[0]; var list = this.BestFindPlayerByNameOrIndex(name); if (name.Equals("me", StringComparison.OrdinalIgnoreCase) && args.Player.IsLoggedIn) @@ -1693,12 +1702,12 @@ private void ViewState(CommandArgs args) { var sb = new StringBuilder(); var ex = edPlayers.Find(x => x.Name == list[0].Name); - sb.AppendLine("玩家 【" + list[0].Name + "】 的状态如下:"); - sb.AppendLine("最大生命值[i:29]:" + list[0].TPlayer.statLifeMax + " 当前生命值[i:58]:" + list[0].TPlayer.statLife); - sb.AppendLine("最大魔力值[i:109]:" + list[0].TPlayer.statManaMax2 + " 当前魔力值[i:184]:" + list[0].TPlayer.statMana); - sb.AppendLine("完成渔夫任务数[i:3120]:" + list[0].TPlayer.anglerQuestsFinished); - sb.AppendLine("库存硬币数[i:855]:" + this.cointostring(this.getPlayerCoin(list[0].Name))); - sb.Append("各种buff[i:678]:"); + sb.AppendLine(GetString($"玩家 【{list[0].Name}】 的状态如下:")); + sb.AppendLine(GetString("最大生命值[i:29]:") + list[0].TPlayer.statLifeMax +GetString(" 当前生命值[i:58]:") + list[0].TPlayer.statLife); + sb.AppendLine(GetString("最大魔力值[i:109]:") + list[0].TPlayer.statManaMax2 + GetString(" 当前魔力值[i:184]:") + list[0].TPlayer.statMana); + sb.AppendLine(GetString("完成渔夫任务数[i:3120]:") + list[0].TPlayer.anglerQuestsFinished); + sb.AppendLine(GetString("库存硬币数[i:855]:") + this.cointostring(this.getPlayerCoin(list[0].Name))); + sb.Append(GetString("各种buff[i:678]:")); var flag = 0; foreach (var buff in list[0].TPlayer.buffType) { @@ -1712,90 +1721,104 @@ private void ViewState(CommandArgs args) } } } + if (flag == 0) { - sb.Append("无"); + sb.Append(GetString("无")); } + sb.AppendLine(); - sb.Append("各种永久增益:"); + sb.Append("GetString(各种永久增益:"); flag = 0; if (list[0].TPlayer.extraAccessory) { flag++; sb.Append("[i:3335] "); } + if (list[0].TPlayer.unlockedBiomeTorches) { flag++; sb.Append("[i:5043] "); } + if (list[0].TPlayer.ateArtisanBread) { flag++; sb.Append("[i:5326] "); } + if (list[0].TPlayer.usedAegisCrystal) { flag++; sb.Append("[i:5337] "); } + if (list[0].TPlayer.usedAegisFruit) { flag++; sb.Append("[i:5338] "); } + if (list[0].TPlayer.usedArcaneCrystal) { flag++; sb.Append("[i:5339] "); } + if (list[0].TPlayer.usedGalaxyPearl) { flag++; sb.Append("[i:5340] "); } + if (list[0].TPlayer.usedGummyWorm) { flag++; sb.Append("[i:5341] "); } + if (list[0].TPlayer.usedAmbrosia) { flag++; sb.Append("[i:5342] "); } + if (list[0].TPlayer.unlockedSuperCart) { flag++; sb.Append("[i:5289]"); } + if (flag == 0) { - sb.Append("无"); + sb.Append(GetString("无")); } + sb.AppendLine(); if (ex != null) { if (config.EnableOnlineTimeTracking) { - sb.AppendLine("在线时长[i:3099]:" + this.timetostring(ex.time)); + sb.AppendLine(GetString("在线时长[i:3099]:") + this.timetostring(ex.time)); } if (config.EnableDeathCountTracking) { - sb.AppendLine("死亡次数[i:321]:" + ex.deathCount); + sb.AppendLine(GetString("死亡次数[i:321]:") + ex.deathCount); } if (config.EnableNpcKillTracking) { - sb.AppendLine("已击杀生物数[i:3095]:" + ex.killNPCnum + " 个"); - sb.AppendLine("已击杀Boss[i:3868]:" + DictionaryToVSString(ex.killBossID)); - sb.AppendLine("已击杀罕见生物[i:4274]:" + DictionaryToVSString(ex.killRareNPCID)); + sb.AppendLine(GetString($"已击杀生物数[i:3095]:{ex.killNPCnum} 个")); + sb.AppendLine(GetString("已击杀Boss[i:3868]:") + DictionaryToVSString(ex.killBossID)); + sb.AppendLine(GetString("已击杀罕见生物[i:4274]:") + DictionaryToVSString(ex.killRareNPCID)); } + if (config.EnablePointTracking && config.EnableNpcKillTracking) { - sb.AppendLine("点数[i:575]:" + ex.point); + sb.AppendLine(GetString("点数[i:575]:") + ex.point); } } @@ -1806,7 +1829,7 @@ private void ViewState(CommandArgs args) args.Player.SendInfoMessage(this.offlineplayer); var users = new Dictionary(); var temp = TShock.UserAccounts.GetUserAccountsByName(name, true); - if (temp.Count == 1 || temp.Count > 1 && temp.Exists(x => x.Name == name)) + if (temp.Count == 1 || (temp.Count > 1 && temp.Exists(x => x.Name == name))) { if (temp.Count == 1) { @@ -1848,6 +1871,7 @@ private void ViewState(CommandArgs args) } } } + if (users.Count == 0) { args.Player.SendInfoMessage(this.noplayer); @@ -1860,95 +1884,107 @@ private void ViewState(CommandArgs args) var ex = ZPExtraDB.ReadExtraDB(p.Key.ID); if (users.Count == 1) { - sb.AppendLine("玩家 【" + p.Key.Name + "】 的状态如下:"); + sb.AppendLine($"玩家 【{p.Key.Name}】 的状态如下:"); } else { - sb.AppendLine("多个结果 玩家 【" + p.Key.Name + "】 的状态如下:"); + sb.AppendLine(GetString($"多个结果 玩家 【{p.Key.Name}】 的状态如下:")); } - sb.AppendLine("最大生命值[i:29]:" + p.Value.maxHealth + " 当前生命值[i:58]:" + p.Value.health); - sb.AppendLine("最大魔力值[i:109]:" + p.Value.maxMana + " 当前魔力值[i:184]:" + p.Value.mana); - sb.AppendLine("完成渔夫任务数[i:3120]:" + p.Value.questsCompleted); - sb.AppendLine("库存硬币数[i:855]:" + this.cointostring(this.getPlayerCoin(p.Key.Name))); - sb.Append("各种永久增益:"); + sb.AppendLine(GetString("最大生命值[i:29]:") + p.Value.maxHealth + GetString(" 当前生命值[i:58]:") + p.Value.health); + sb.AppendLine(GetString("最大魔力值[i:109]:") + p.Value.maxMana + GetString(" 当前魔力值[i:184]:") + p.Value.mana); + sb.AppendLine(GetString("完成渔夫任务数[i:3120]:") + p.Value.questsCompleted); + sb.AppendLine(GetString("库存硬币数[i:855]:") + this.cointostring(this.getPlayerCoin(p.Key.Name))); + sb.Append(GetString("各种永久增益:")); var flag = 0; if (p.Value.extraSlot != null && p.Value.extraSlot.GetValueOrDefault() == 1) { flag++; sb.Append("[i:3335] "); } + if (p.Value.unlockedBiomeTorches == 1) { flag++; sb.Append("[i:5043] "); } + if (p.Value.ateArtisanBread == 1) { flag++; sb.Append("[i:5326] "); } + if (p.Value.usedAegisCrystal == 1) { flag++; sb.Append("[i:5337] "); } + if (p.Value.usedAegisFruit == 1) { flag++; sb.Append("[i:5338] "); } + if (p.Value.usedArcaneCrystal == 1) { flag++; sb.Append("[i:5339] "); } + if (p.Value.usedGalaxyPearl == 1) { flag++; sb.Append("[i:5340] "); } + if (p.Value.usedGummyWorm == 1) { flag++; sb.Append("[i:5341] "); } + if (p.Value.usedAmbrosia == 1) { flag++; sb.Append("[i:5342] "); } + if (p.Value.unlockedSuperCart == 1) { flag++; sb.Append("[i:5289]"); } + if (flag == 0) { - sb.Append("无"); + sb.Append(GetString("无")); } + sb.AppendLine(); if (ex != null) { if (config.EnableOnlineTimeTracking) { - sb.AppendLine("在线时长[i:3099]:" + this.timetostring(ex.time)); + sb.AppendLine(GetString("在线时长[i:3099]:") + this.timetostring(ex.time)); } if (config.EnableDeathCountTracking) { - sb.AppendLine("死亡次数[i:321]:" + ex.deathCount); + sb.AppendLine(GetString("死亡次数[i:321]:") + ex.deathCount); } if (config.EnableNpcKillTracking) { - sb.AppendLine("已击杀生物数[i:3095]:" + ex.killNPCnum + " 个"); - sb.AppendLine("已击杀Boss[i:3868]:" + DictionaryToVSString(ex.killBossID)); - sb.AppendLine("已击杀罕见生物[i:4274]:" + DictionaryToVSString(ex.killRareNPCID)); + sb.AppendLine(GetString($"已击杀生物数[i:3095]:{ex.killNPCnum} 个")); + sb.AppendLine(GetString("已击杀Boss[i:3868]:") + DictionaryToVSString(ex.killBossID)); + sb.AppendLine(GetString("已击杀罕见生物[i:4274]:") + DictionaryToVSString(ex.killRareNPCID)); } + if (config.EnablePointTracking && config.EnableNpcKillTracking) { - sb.AppendLine("点数[i:575]:" + ex.point); + sb.AppendLine(GetString("点数[i:575]:") + ex.point); } } @@ -1963,12 +1999,12 @@ private void ViewState(CommandArgs args) { var sb = new StringBuilder(); var ex = edPlayers.Find(x => x.Name == list[0].Name); - sb.AppendLine("玩家 【" + list[0].Name + "】 的状态如下:"); - sb.AppendLine("最大生命值:" + list[0].TPlayer.statLifeMax + " 当前生命值:" + list[0].TPlayer.statLife); - sb.AppendLine("最大魔力值:" + list[0].TPlayer.statManaMax2 + " 当前魔力值:" + list[0].TPlayer.statMana); - sb.AppendLine("完成渔夫任务数:" + list[0].TPlayer.anglerQuestsFinished); - sb.AppendLine("库存硬币数:" + this.cointostring(this.getPlayerCoin(list[0].Name), 1)); - sb.Append("各种buff:"); + sb.AppendLine(GetString($"玩家 【{list[0].Name}】 的状态如下:")); + sb.AppendLine(GetString("最大生命值:") + list[0].TPlayer.statLifeMax + GetString(" 当前生命值:") + list[0].TPlayer.statLife); + sb.AppendLine(GetString("最大魔力值:") + list[0].TPlayer.statManaMax2 + GetString(" 当前魔力值:") + list[0].TPlayer.statMana); + sb.AppendLine(GetString("完成渔夫任务数:") + list[0].TPlayer.anglerQuestsFinished); + sb.AppendLine(GetString("库存硬币数:") + this.cointostring(this.getPlayerCoin(list[0].Name), 1)); + sb.Append(GetString("各种buff:")); var flag = 0; foreach (var buff in list[0].TPlayer.buffType) { @@ -1978,90 +2014,104 @@ private void ViewState(CommandArgs args) sb.Append(Lang.GetBuffName(buff) + " "); } } + if (flag == 0) { - sb.Append("无"); + sb.Append(GetString("无")); } + sb.AppendLine(); - sb.Append("各种永久增益:"); + sb.Append(GetString("各种永久增益:")); flag = 0; if (list[0].TPlayer.extraAccessory) { flag++; sb.Append(Lang.GetItemNameValue(3335) + " "); } + if (list[0].TPlayer.unlockedBiomeTorches) { flag++; sb.Append(Lang.GetItemNameValue(5043) + " "); } + if (list[0].TPlayer.ateArtisanBread) { flag++; sb.Append(Lang.GetItemNameValue(5326) + " "); } + if (list[0].TPlayer.usedAegisCrystal) { flag++; sb.Append(Lang.GetItemNameValue(5337) + " "); } + if (list[0].TPlayer.usedAegisFruit) { flag++; sb.Append(Lang.GetItemNameValue(5338) + " "); } + if (list[0].TPlayer.usedArcaneCrystal) { flag++; sb.Append(Lang.GetItemNameValue(5339) + " "); } + if (list[0].TPlayer.usedGalaxyPearl) { flag++; sb.Append(Lang.GetItemNameValue(5340) + " "); } + if (list[0].TPlayer.usedGummyWorm) { flag++; sb.Append(Lang.GetItemNameValue(5341) + " "); } + if (list[0].TPlayer.usedAmbrosia) { flag++; sb.Append(Lang.GetItemNameValue(5342) + " "); } + if (list[0].TPlayer.unlockedSuperCart) { flag++; sb.Append(Lang.GetItemNameValue(5289)); } + if (flag == 0) { - sb.Append("无"); + sb.Append(GetString("无")); } + sb.AppendLine(); if (ex != null) { if (config.EnableOnlineTimeTracking) { - sb.AppendLine("在线时长:" + this.timetostring(ex.time)); + sb.AppendLine(GetString("在线时长:") + this.timetostring(ex.time)); } if (config.EnableDeathCountTracking) { - sb.AppendLine("死亡次数:" + ex.deathCount); + sb.AppendLine(GetString("死亡次数:") + ex.deathCount); } if (config.EnableNpcKillTracking) { - sb.AppendLine("已击杀生物数:" + ex.killNPCnum + " 个"); - sb.AppendLine("已击杀Boss:" + DictionaryToVSString(ex.killBossID, false)); - sb.AppendLine("已击杀罕见生物:" + DictionaryToVSString(ex.killRareNPCID, false)); + sb.AppendLine(GetString($"已击杀生物数:{ex.killNPCnum} 个")); + sb.AppendLine(GetString("已击杀Boss:") + DictionaryToVSString(ex.killBossID, false)); + sb.AppendLine(GetString("已击杀罕见生物:") + DictionaryToVSString(ex.killRareNPCID, false)); } + if (config.EnableNpcKillTracking && config.EnablePointTracking) { - sb.AppendLine("点数:" + ex.point); + sb.AppendLine(GetString("点数:") + ex.point); } } @@ -2072,7 +2122,7 @@ private void ViewState(CommandArgs args) args.Player.SendInfoMessage(this.offlineplayer); var users = new Dictionary(); var temp = TShock.UserAccounts.GetUserAccountsByName(name, true); - if (temp.Count == 1 || temp.Count > 1 && temp.Exists(x => x.Name == name)) + if (temp.Count == 1 || (temp.Count > 1 && temp.Exists(x => x.Name == name))) { if (temp.Count == 1) { @@ -2118,6 +2168,7 @@ private void ViewState(CommandArgs args) } } } + if (users.Count == 0) { args.Player.SendInfoMessage(this.noplayer); @@ -2130,95 +2181,107 @@ private void ViewState(CommandArgs args) var ex = ZPExtraDB.ReadExtraDB(p.Key.ID); if (users.Count == 1) { - sb.AppendLine("玩家 【" + p.Key.Name + "】 的状态如下:"); + sb.AppendLine(GetString($"玩家 【{p.Key.Name}】 的状态如下:")); } else { - sb.AppendLine("多个结果 玩家 【" + p.Key.Name + "】 的状态如下:"); + sb.AppendLine(GetString($"多个结果 玩家 【{p.Key.Name}】 的状态如下:")); } - sb.AppendLine("最大生命值:" + p.Value.maxHealth + " 当前生命值:" + p.Value.health); - sb.AppendLine("最大魔力值:" + p.Value.maxMana + " 当前魔力值:" + p.Value.mana); - sb.AppendLine("完成渔夫任务数:" + p.Value.questsCompleted); - sb.AppendLine("库存硬币数:" + this.cointostring(this.getPlayerCoin(p.Key.Name), 1)); - sb.Append("各种永久增益:"); + sb.AppendLine(GetString("最大生命值:") + p.Value.maxHealth + GetString(" 当前生命值:") + p.Value.health); + sb.AppendLine(GetString("最大魔力值:") + p.Value.maxMana + GetString(" 当前魔力值:") + p.Value.mana); + sb.AppendLine(GetString("完成渔夫任务数:") + p.Value.questsCompleted); + sb.AppendLine(GetString("库存硬币数:") + this.cointostring(this.getPlayerCoin(p.Key.Name), 1)); + sb.Append(GetString("各种永久增益:")); var flag = 0; if (p.Value.extraSlot != null && p.Value.extraSlot.GetValueOrDefault() == 1) { flag++; sb.Append(Lang.GetItemNameValue(3335) + " "); } + if (p.Value.unlockedBiomeTorches == 1) { flag++; sb.Append(Lang.GetItemNameValue(5043) + " "); } + if (p.Value.ateArtisanBread == 1) { flag++; sb.Append(Lang.GetItemNameValue(5326) + " "); } + if (p.Value.usedAegisCrystal == 1) { flag++; sb.Append(Lang.GetItemNameValue(5337) + " "); } + if (p.Value.usedAegisFruit == 1) { flag++; sb.Append(Lang.GetItemNameValue(5338) + " "); } + if (p.Value.usedArcaneCrystal == 1) { flag++; sb.Append(Lang.GetItemNameValue(5339) + " "); } + if (p.Value.usedGalaxyPearl == 1) { flag++; sb.Append(Lang.GetItemNameValue(5340) + " "); } + if (p.Value.usedGummyWorm == 1) { flag++; sb.Append(Lang.GetItemNameValue(5341) + " "); } + if (p.Value.usedAmbrosia == 1) { flag++; sb.Append(Lang.GetItemNameValue(5342) + " "); } + if (p.Value.unlockedSuperCart == 1) { flag++; sb.Append(Lang.GetItemNameValue(5289)); } + if (flag == 0) { sb.Append("无"); } + sb.AppendLine(); if (ex != null) { if (config.EnableOnlineTimeTracking) { - sb.AppendLine("在线时长:" + this.timetostring(ex.time)); + sb.AppendLine(GetString("在线时长:") + this.timetostring(ex.time)); } if (config.EnableDeathCountTracking) { - sb.AppendLine("死亡次数:" + ex.deathCount); + sb.AppendLine(GetString("死亡次数:") + ex.deathCount); } if (config.EnableNpcKillTracking) { - sb.AppendLine("已击杀生物数:" + ex.killNPCnum + " 个"); - sb.AppendLine("已击杀Boss:" + DictionaryToVSString(ex.killBossID, false)); - sb.AppendLine("已击杀罕见生物:" + DictionaryToVSString(ex.killRareNPCID, false)); + sb.AppendLine(GetString("已击杀生物数:") + ex.killNPCnum + " 个"); + sb.AppendLine(GetString("已击杀Boss:") + DictionaryToVSString(ex.killBossID, false)); + sb.AppendLine(GetString("已击杀罕见生物:") + DictionaryToVSString(ex.killRareNPCID, false)); } + if (config.EnablePointTracking && config.EnableNpcKillTracking) { - sb.AppendLine("点数:" + ex.point); + sb.AppendLine(GetString("点数:") + ex.point); } } @@ -2231,25 +2294,26 @@ private void ViewState(CommandArgs args) /// - /// 清理 + /// 清理 /// /// private void Clear(CommandArgs args) { if (args.Parameters.Count < 1 || args.Parameters.Count > 2) { - args.Player.SendInfoMessage("输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n输入 /zclear buff 来清理该玩家的所有Buff\n输入 /zclear buff all 来清理所有玩家所有Buff"); + args.Player.SendInfoMessage(GetString("输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n输入 /zclear buff 来清理该玩家的所有Buff\n输入 /zclear buff all 来清理所有玩家所有Buff")); return; } + if (args.Parameters.Count == 1 && args.Parameters[0].Equals("useless", StringComparison.OrdinalIgnoreCase)) { this.cleartime = Timer + 1200L; if (!args.Player.IsLoggedIn) { - args.Player.SendMessage("服务器将在20秒后清理世界内所有无用NPC,射弹和物品", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("服务器将在20秒后清理世界内所有无用NPC,射弹和物品"), new Color(255, 0, 0)); } - TSPlayer.All.SendMessage("服务器将在20秒后清理世界内所有无用NPC,射弹和物品", new Color(255, 0, 0)); + TSPlayer.All.SendMessage(GetString("服务器将在20秒后清理世界内所有无用NPC,射弹和物品"), new Color(255, 0, 0)); } else if (args.Parameters.Count == 2 && args.Parameters[0].Equals("buff", StringComparison.OrdinalIgnoreCase)) { @@ -2262,13 +2326,15 @@ private void Clear(CommandArgs args) this.clearAllBuffFromPlayer(tSPlayer); } } - args.Player.SendMessage($"所有玩家的所有Buff均已消除", new Color(0, 255, 0)); + + args.Player.SendMessage(GetString("所有玩家的所有Buff均已消除"), new Color(0, 255, 0)); return; } + var ts = this.BestFindPlayerByNameOrIndex(args.Parameters[1]); if (ts.Count == 0) { - args.Player.SendInfoMessage("该玩家不在线或不存在"); + args.Player.SendInfoMessage(GetString("该玩家不在线或不存在")); } else if (ts.Count > 1) { @@ -2277,18 +2343,18 @@ private void Clear(CommandArgs args) else { this.clearAllBuffFromPlayer(ts[0]); - args.Player.SendMessage($"玩家 [ {ts[0].Name} ] 的所有Buff均已消除", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [ {ts[0].Name} ] 的所有Buff均已消除"), new Color(0, 255, 0)); } } else { - args.Player.SendInfoMessage("输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n输入 /zclear buff 来清理该玩家的所有Buff\n输入 /zclear buff all 来清理所有玩家所有Buff"); + args.Player.SendInfoMessage(GetString("输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n输入 /zclear buff 来清理该玩家的所有Buff\n输入 /zclear buff all 来清理所有玩家所有Buff")); } } /// - /// 游戏更新,用来实现人物额外数据如时间的同步增加,这里实现对进服人员的添加和time自增 + /// 游戏更新,用来实现人物额外数据如时间的同步增加,这里实现对进服人员的添加和time自增 /// /// private void OnGameUpdate(EventArgs args) @@ -2306,7 +2372,7 @@ private void OnGameUpdate(EventArgs args) if (tsp != null && tsp.IsLoggedIn) { //如果当前玩家已存在,那么更新额外数据 - var extraData = edPlayers.Find((ExtraData x) => x.Name == tsp.Name); + var extraData = edPlayers.Find(x => x.Name == tsp.Name); if (extraData != null) { if (config.EnableOnlineTimeTracking) @@ -2317,12 +2383,13 @@ private void OnGameUpdate(EventArgs args) if (config.EnablePointTracking) { extraData.point += 1000; - this.SendText(tsp, "点数奖励 + 1000", broadcastColor, tsp.TPlayer.Center); + this.SendText(tsp, GetString("点数奖励 + 1000"), broadcastColor, tsp.TPlayer.Center); } + tsp.SendMessage("您已经在线了 " + this.timetostring(extraData.time), broadcastColor); - TShock.Log.Info("玩家 " + extraData.Name + " 已经在线了 " + this.timetostring(extraData.time)); - NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(tsp.TPlayer.Center, 4), tsp.Index, -1); - Projectile.NewProjectile(null, tsp.TPlayer.Center, -Vector2.UnitY * 4f, Main.rand.Next(415, 419), 0, 0f, -1, 0f, 0f, 0f); + TShock.Log.Info(GetString($"玩家 {extraData.Name} 已经在线了 {this.timetostring(extraData.time)}")); + NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(tsp.TPlayer.Center, 4), tsp.Index); + Projectile.NewProjectile(null, tsp.TPlayer.Center, -Vector2.UnitY * 4f, Main.rand.Next(415, 419), 0, 0f); } } } @@ -2351,15 +2418,16 @@ private void OnGameUpdate(EventArgs args) if (config.EnablePlayerAutoBackup && Timer % 3600L == 0L) { foreach (var ex in edPlayers) - {//到达备份间隔时长,备份一次 + { + //到达备份间隔时长,备份一次 foreach (var ts in TShock.Players) { if (ts != null && ts.IsLoggedIn && ts.Name == ex.Name && ex.backuptime != 0L && Timer % (3600L * ex.backuptime) == 0L) { ZPExtraDB.WriteExtraDB(ex); ZPDataBase.AddZPlayerDB(ts); - ts.SendMessage("已自动备份您的人物存档,自动保存您的额外数据", new Color(0, 255, 0)); - TShock.Log.Info($"玩家【{ts.Name}】的人物存档和额外数据已备份和保存"); + ts.SendMessage(GetString("已自动备份您的人物存档,自动保存您的额外数据"), new Color(0, 255, 0)); + TShock.Log.Info(GetString($"玩家【{ts.Name}】的人物存档和额外数据已备份和保存")); } } } @@ -2369,9 +2437,19 @@ private void OnGameUpdate(EventArgs args) //清理世界无效数据处理 if (Timer > this.cleartime) { - var asset = new List { - NPCID.Creeper, NPCID.LunarTowerNebula, NPCID.LunarTowerSolar, NPCID.LunarTowerStardust, NPCID.LunarTowerVortex, - 68,128,129,130,131,400 + var asset = new List + { + NPCID.Creeper, + NPCID.LunarTowerNebula, + NPCID.LunarTowerSolar, + NPCID.LunarTowerStardust, + NPCID.LunarTowerVortex, + 68, + 128, + 129, + 130, + 131, + 400 }; foreach (var v in Main.npc) @@ -2379,9 +2457,10 @@ private void OnGameUpdate(EventArgs args) if (v.active && !v.boss && !v.townNPC && !asset.Contains(v.netID)) { v.active = false; - NetMessage.SendData(23, -1, -1, null, v.whoAmI, 0f, 0f, 0f, 0, 0, 0); + NetMessage.SendData(23, -1, -1, null, v.whoAmI); } } + foreach (var v in Main.projectile) { if (v.active) @@ -2390,16 +2469,18 @@ private void OnGameUpdate(EventArgs args) TSPlayer.All.SendData(PacketTypes.ProjectileDestroy, "", v.identity, v.owner); } } + foreach (var v in Main.item) { if (v.active) { v.active = false; - TSPlayer.All.SendData(PacketTypes.ItemDrop, "", v.whoAmI, 0f, 0f, 0f, 0); + TSPlayer.All.SendData(PacketTypes.ItemDrop, "", v.whoAmI); } } + this.cleartime = long.MaxValue; - TSPlayer.All.SendMessage("已清理所有射弹,物品,无用NPC", new Color(65, 165, 238)); + TSPlayer.All.SendMessage(GetString("已清理所有射弹,物品,无用NPC"), new Color(65, 165, 238)); } } @@ -2410,7 +2491,7 @@ private void OnGameUpdate(EventArgs args) { TShock.Players.ForEach(x => { - if (x != null && x.IsLoggedIn && (x.UUID.Equals(v.uuid) || x.Name.Equals(v.name) || !string.IsNullOrEmpty(v.IPs) && !string.IsNullOrEmpty(x.IP) && this.IPStostringIPs(v.IPs).Contains(x.IP))) + if (x != null && x.IsLoggedIn && (x.UUID.Equals(v.uuid) || x.Name.Equals(v.name) || (!string.IsNullOrEmpty(v.IPs) && !string.IsNullOrEmpty(x.IP) && this.IPStostringIPs(v.IPs).Contains(x.IP)))) { for (var i = 0; i < 22; i++) { @@ -2435,25 +2516,27 @@ private void OnGameUpdate(EventArgs args) break; } } - x.SendData(PacketTypes.PlayerBuff, "", x.Index, 0f, 0f, 0f, 0); - x.SetBuff(149, 720);//网住 - x.SetBuff(156, 720);//石化 + + x.SendData(PacketTypes.PlayerBuff, "", x.Index); + x.SetBuff(149, 720); //网住 + x.SetBuff(156, 720); //石化 x.SetBuff(47, 300); //冰冻 x.SetBuff(23, 300); //诅咒 x.SetBuff(31, 300); //困惑 x.SetBuff(80, 300); //灯火管制 x.SetBuff(88, 300); //混沌 - x.SetBuff(120, 300);//臭气 - x.SetBuff(145, 300);//月食 - x.SetBuff(163, 300);//阻塞 - x.SetBuff(199, 300);//创意震撼 - x.SetBuff(160, 300);//眩晕 - x.SetBuff(197, 300);//粘液 + x.SetBuff(120, 300); //臭气 + x.SetBuff(145, 300); //月食 + x.SetBuff(163, 300); //阻塞 + x.SetBuff(199, 300); //创意震撼 + x.SetBuff(160, 300); //眩晕 + x.SetBuff(197, 300); //粘液 if (Timer % 240L == 0) { - x.SendInfoMessage("您已被冻结,详情请询问管理员"); - this.SendText(x, "您已被冻结", Color.Red, x.TPlayer.Center); + x.SendInfoMessage(GetString("您已被冻结,详情请询问管理员")); + this.SendText(x, GetString("您已被冻结"), Color.Red, x.TPlayer.Center); } + x.Teleport(v.pos.X, v.pos.Y); if (Timer > v.clock + 90) { @@ -2466,12 +2549,13 @@ private void OnGameUpdate(EventArgs args) break; } } + if (!flag) { - NetMessage.SendPlayerDeath(x.Index, PlayerDeathReason.ByCustomReason(""), int.MaxValue, new Random().Next(-1, 1), false, -1, -1); + NetMessage.SendPlayerDeath(x.Index, PlayerDeathReason.ByCustomReason(""), int.MaxValue, new Random().Next(-1, 1), false); if (Timer % 240L == 0) { - x.SendInfoMessage("不要耍小聪明"); + x.SendInfoMessage(GetString("不要耍小聪明")); } } } @@ -2483,7 +2567,7 @@ private void OnGameUpdate(EventArgs args) /// - /// 对进入服务器的玩家进行一些限制 + /// 对进入服务器的玩家进行一些限制 /// /// private void OnServerJoin(JoinEventArgs args) @@ -2492,51 +2576,52 @@ private void OnServerJoin(JoinEventArgs args) { return; } + if (config.EnableSpecialNameBan) { var tsplayer = TShock.Players[args.Who]; if (string.IsNullOrWhiteSpace(tsplayer.Name)) { - tsplayer.Kick("请不要起空名字", true); + tsplayer.Kick(GetString("请不要起空名字"), true); } else if (int.TryParse(tsplayer.Name, out var num) || double.TryParse(tsplayer.Name, out var num2)) { - tsplayer.Kick("请不要起纯数字名字", true); + tsplayer.Kick(GetString("请不要起纯数字名字"), true); } else if ((tsplayer.Name[0] >= ' ' && tsplayer.Name[0] <= '/') || (tsplayer.Name[0] >= ':' && tsplayer.Name[0] <= '@') || (tsplayer.Name[0] > '[' && tsplayer.Name[0] <= '`') || (tsplayer.Name[0] >= '{' && tsplayer.Name[0] <= '~')) { - tsplayer.Kick("请不要在名字中使用特殊符号", true); + tsplayer.Kick(GetString("请不要在名字中使用特殊符号"), true); } else if (tsplayer.Name.Equals("all", StringComparison.OrdinalIgnoreCase)) { - tsplayer.Kick("你的名字含有指令关键字: all ,请更换", true); + tsplayer.Kick(GetString("你的名字含有指令关键字: all ,请更换"), true); } else if (tsplayer.Name.Equals("time", StringComparison.OrdinalIgnoreCase)) { - tsplayer.Kick("你的名字含有指令关键字: time ,请更换", true); + tsplayer.Kick(GetString("你的名字含有指令关键字: time ,请更换"), true); } else if (tsplayer.Name.Equals("help", StringComparison.OrdinalIgnoreCase)) { - tsplayer.Kick("你的名字含有指令关键字: help ,请更换", true); + tsplayer.Kick(GetString("你的名字含有指令关键字: help ,请更换"), true); } else if (tsplayer.Name.Equals("me", StringComparison.OrdinalIgnoreCase)) { - tsplayer.Kick("你的名字含有指令关键字: me ,请更换", true); + tsplayer.Kick(GetString("你的名字含有指令关键字: me ,请更换"), true); } else if (tsplayer.Name.Equals("uuid", StringComparison.OrdinalIgnoreCase)) { - tsplayer.Kick("你的名字含有指令关键字: uuid ,请更换", true); + tsplayer.Kick(GetString("你的名字含有指令关键字: uuid ,请更换"), true); } else if (tsplayer.Name.Equals("ip", StringComparison.OrdinalIgnoreCase)) { - tsplayer.Kick("你的名字含有指令关键字: ip ,请更换", true); + tsplayer.Kick(GetString("你的名字含有指令关键字: ip ,请更换"), true); } } } /// - /// 对离开服务区的玩家的额外数据库,进行保存 + /// 对离开服务区的玩家的额外数据库,进行保存 /// /// private void OnServerLeave(LeaveEventArgs args) @@ -2545,6 +2630,7 @@ private void OnServerLeave(LeaveEventArgs args) { return; } + //清理掉这个离开服务器的玩家的额外数据内存 foreach (var v in edPlayers) { @@ -2555,6 +2641,7 @@ private void OnServerLeave(LeaveEventArgs args) break; } } + //顺便遍历下整个edplayers,移除所有和tsplayers不同步的元素,免得越堆越多 for (var i = 0; i < edPlayers.Count; i++) { @@ -2563,9 +2650,11 @@ private void OnServerLeave(LeaveEventArgs args) { if (p != null && p.IsLoggedIn && (p.Name == edPlayers[i].Name || p.Account.ID == edPlayers[i].Account)) { - flag = true; break; + flag = true; + break; } } + if (!flag) { ZPExtraDB.WriteExtraDB(edPlayers[i]); @@ -2577,19 +2666,20 @@ private void OnServerLeave(LeaveEventArgs args) /// - /// 对提示隐藏的指令 + /// 对提示隐藏的指令 /// /// private void HideTips(CommandArgs args) { if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示"); + args.Player.SendInfoMessage(GetString("输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示")); return; } + if (!args.Player.IsLoggedIn) { - args.Player.SendInfoMessage("对象不正确,请检查您的状态,您是否为游戏内玩家?"); + args.Player.SendInfoMessage(GetString("对象不正确,请检查您的状态,您是否为游戏内玩家?")); return; } @@ -2600,7 +2690,7 @@ private void HideTips(CommandArgs args) if (x.Name == args.Player.Name) { x.hideKillTips = !x.hideKillTips; - args.Player.SendMessage($"修改成功,您现在已{(x.hideKillTips ? "隐藏" : "启用")}击杀数提示", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"修改成功,您现在已{(x.hideKillTips ? GetString("隐藏") : GetString("启用"))}击杀数提示"), new Color(0, 255, 0)); } }); } @@ -2611,36 +2701,37 @@ private void HideTips(CommandArgs args) if (x.Name == args.Player.Name) { x.hidePointTips = !x.hidePointTips; - args.Player.SendMessage($"修改成功,您现在已{(x.hidePointTips ? "隐藏" : "启用")}点数提示", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"修改成功,您现在已{(x.hidePointTips ? GetString("隐藏") : GetString("启用"))}点数提示"), new Color(0, 255, 0)); } }); } else if (!config.EnableNpcKillTracking && args.Parameters[0].Equals("kill", StringComparison.OrdinalIgnoreCase)) { - args.Player.SendInfoMessage("未启用击杀NPC统计,该功能不可用"); + args.Player.SendInfoMessage(GetString("未启用击杀NPC统计,该功能不可用")); } else if (!config.EnablePointTracking && args.Parameters[0].Equals("point", StringComparison.OrdinalIgnoreCase)) { - args.Player.SendInfoMessage("未启用点数统计,该功能不可用"); + args.Player.SendInfoMessage(GetString("未启用点数统计,该功能不可用")); } else { - args.Player.SendInfoMessage("输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示"); + args.Player.SendInfoMessage(GetString("输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示")); } } /// - /// 导出这个玩家的人物存档 + /// 导出这个玩家的人物存档 /// /// private void ZhiExportPlayer(CommandArgs args) { if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /zout 来导出该玩家的人物存档\n输入 /zout all 来导出所有人物的存档"); + args.Player.SendInfoMessage(GetString("输入 /zout 来导出该玩家的人物存档\n输入 /zout all 来导出所有人物的存档")); return; } + //对每个导出的文件夹做时间名称后缀 this.now = "_" + this.FormatFileName(DateTime.Now.ToString()); if (args.Parameters[0].Equals("all", StringComparison.OrdinalIgnoreCase)) @@ -2657,8 +2748,9 @@ private void ZhiExportPlayer(CommandArgs args) players.Add(user, TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), num)); } } - args.Player.SendMessage("预计导出所有用户存档数目:" + players.Count, new Color(100, 233, 255)); - TShock.Log.Info("预计导出所有用户存档数目:" + players.Count.ToString()); + + args.Player.SendMessage(GetString("预计导出所有用户存档数目:") + players.Count, new Color(100, 233, 255)); + TShock.Log.Info(GetString("预计导出所有用户存档数目:") + players.Count); if (players.Count < 1) { return; @@ -2674,29 +2766,32 @@ private void ZhiExportPlayer(CommandArgs args) { if (args.Player.IsLoggedIn) { - args.Player.SendMessage($"用户 [{player!.name}] 已导出,目录:tshock/Zhipm/{worldName + this.now}/{player!.name}.plr", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"用户 [{player!.name}] 已导出,目录:tshock/Zhipm/{worldName + this.now}/{player!.name}.plr"), new Color(0, 255, 0)); } else { - sb.AppendLine($"用户 [{player!.name}] 已导出,目录:tshock/Zhipm/{worldName + this.now}/{player!.name}.plr"); + sb.AppendLine(GetString($"用户 [{player!.name}] 已导出,目录:tshock/Zhipm/{worldName + this.now}/{player!.name}.plr")); } - TShock.Log.Info($"用户 [{player!.name}] 已导出,目录:tshock/Zhipm/{worldName + this.now}/{player!.name}.plr"); + + TShock.Log.Info(GetString($"用户 [{player!.name}] 已导出,目录:tshock/Zhipm/{worldName + this.now}/{player!.name}.plr")); } else { if (args.Player.IsLoggedIn) { - args.Player.SendInfoMessage("用户 [" + one.Key + "] 因数据错误导出失败"); + args.Player.SendInfoMessage(GetString($"用户 [{one.Key}] 因数据错误导出失败")); } else { - sb.AppendLine($"用户 [{one.Key.Name}] 因数据错误导出失败"); + sb.AppendLine(GetString($"用户 [{one.Key.Name}] 因数据错误导出失败")); } + failedcount++; - TShock.Log.Info($"用户 [{one.Key.Name}] 因数据错误导出失败"); + TShock.Log.Info(GetString($"用户 [{one.Key.Name}] 因数据错误导出失败")); } } - sb.AppendLine($"{failedcount} 名用户因数据错误导出失败"); + + sb.AppendLine(GetString($"{failedcount} 名用户因数据错误导出失败")); //压缩打包 var sourcePath = $"{TShock.SavePath}/Zhipm/{worldName + this.now}"; var destPath = $"{TShock.SavePath}/Zhipm/{worldName + this.now}.zip"; @@ -2707,58 +2802,57 @@ private void ZhiExportPlayer(CommandArgs args) ZipFile.CreateFromDirectory(sourcePath, destPath, CompressionLevel.SmallestSize, false); Directory.Delete(sourcePath, true); - sb.AppendLine($"已打包为{TShock.SavePath}/Zhipm/{worldName + this.now}.zip"); + sb.AppendLine(GetString($"已打包为{TShock.SavePath}/Zhipm/{worldName + this.now}.zip")); if (!args.Player.IsLoggedIn) { args.Player.SendInfoMessage(sb.ToString()); } else { - args.Player.SendSuccessMessage($"{failedcount} 名用户因数据残缺导出失败\n已全部打包为{TShock.SavePath}/Zhipm/{worldName + this.now}.zip"); + args.Player.SendSuccessMessage(GetString($"{failedcount} 名用户因数据残缺导出失败\n已全部打包为{TShock.SavePath}/Zhipm/{worldName + this.now}.zip")); } } catch (Exception ex) { - TShock.Log.Error("错误 ZhiExportPlayer :" + ex.ToString()); - args.Player.SendErrorMessage("错误 ZhiExportPlayer :" + ex.ToString()); - Console.WriteLine("错误 ZhiExportPlayer :" + ex.ToString()); + TShock.Log.ConsoleInfo(GetString("错误 ZhiExportPlayer :") + ex); } + return; } + //只导出一人或搜到的多人 var list = this.BestFindPlayerByNameOrIndex(args.Parameters[0]); - if (list.Count == 0)//查不到,开始模糊搜索 + if (list.Count == 0) //查不到,开始模糊搜索 { args.Player.SendInfoMessage(this.offlineplayer); var users = TShock.UserAccounts.GetUserAccountsByName(args.Parameters[0], true); - if (users.Count == 1 || users.Count > 1 && users.Exists(x => x.Name == args.Parameters[0])) + if (users.Count == 1 || (users.Count > 1 && users.Exists(x => x.Name == args.Parameters[0]))) { if (users.Count > 1) { users[0] = users.Find(x => x.Name == args.Parameters[0]); } + var playerData = TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), users[0].ID); var player = this.CreateAPlayer(args.Parameters[0], playerData); if (this.ExportPlayer(player, ZPExtraDB.getPlayerExtraDBTime(users[0].ID))) { - args.Player.SendMessage($"导出成功!目录:tshock/Zhipm/{Main.worldName + this.now}/{args.Parameters[0]}.plr", new Color(0, 255, 0)); - TShock.Log.Info($"导出成功!目录:tshock/Zhipm/{Main.worldName + this.now}/{args.Parameters[0]}.plr"); + args.Player.SendMessage(GetString($"导出成功!目录:tshock/Zhipm/{Main.worldName + this.now}/{args.Parameters[0]}.plr"), new Color(0, 255, 0)); + TShock.Log.Info(GetString($"导出成功!目录:tshock/Zhipm/{Main.worldName + this.now}/{args.Parameters[0]}.plr")); } else { - args.Player.SendErrorMessage("导出失败,因数据错误"); - TShock.Log.Info("导出失败,因数据错误"); + args.Player.SendErrorMessage(GetString("导出失败,因数据错误")); + TShock.Log.Info(GetString("导出失败,因数据错误")); } } else if (users.Count == 0) { args.Player.SendInfoMessage(this.noplayer); - return; } else if (users.Count > 1) { args.Player.SendInfoMessage(this.manyplayer); - return; } } else if (list.Count > 1) @@ -2767,78 +2861,90 @@ private void ZhiExportPlayer(CommandArgs args) } else if (this.ExportPlayer(list[0].TPlayer, ZPExtraDB.getPlayerExtraDBTime(list[0].Account.ID))) { - args.Player.SendMessage($"导出成功!目录:tshock/Zhipm/{Main.worldName + this.now}/{list[0].Name}.plr", new Color(0, 255, 0)); - TShock.Log.Info($"导出成功!目录:tshock/Zhipm/{Main.worldName + this.now}/{list[0].Name}.plr"); + args.Player.SendMessage(GetString($"导出成功!目录:tshock/Zhipm/{Main.worldName + this.now}/{list[0].Name}.plr"), new Color(0, 255, 0)); + TShock.Log.Info(GetString($"导出成功!目录:tshock/Zhipm/{Main.worldName + this.now}/{list[0].Name}.plr")); } else { - args.Player.SendErrorMessage("导出失败,因输入错误"); - TShock.Log.Info("导出失败,因输入错误"); + args.Player.SendErrorMessage(GetString("导出失败,因输入错误")); + TShock.Log.Info(GetString("导出失败,因输入错误")); } } /// - /// 对玩家在线时常进行排序 + /// 对玩家在线时常进行排序 /// /// private void ZhiSortPlayer(CommandArgs args) { if (args.Parameters.Count != 1 && args.Parameters.Count != 2) { - args.Player.SendInfoMessage("输入 /zsort help 来查看排序系列指令帮助"); + args.Player.SendInfoMessage(GetString("输入 /zsort help 来查看排序系列指令帮助")); return; } + //帮助指令 if (args.Parameters[0].Equals("help", StringComparison.OrdinalIgnoreCase)) { - var temp1 = config.EnableOnlineTimeTracking ? ("输入 /zsort time 来查看人物在线时间排行榜前十名\n" + - "输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜\n" + - "输入 /zsort time all 来查看所有玩家在线时常排行榜\n") : ""; - var temp2 = config.EnableNpcKillTracking ? ("\n输入 /zsort kill [num] 来查看当前[num]个人物击杀生物数排行榜\n" + - "输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n" + - "输入 /zsort kill all 来查看所有玩家击杀生物数排行榜\n" + - "输入 /zsort boss [num] 来查看当前[num]个人物击杀Boss总数排行榜\n" + - "输入 /zsort boss 来查看人物击杀Boss总数排行榜前十名\n" + - "输入 /zsort boss all 来查看所有玩家击杀Boss总数排行榜\n" + - "输入 /zsort rarenpc [num] 来查看当前[num]个人物击杀罕见生物总数排行榜\n" + - "输入 /zsort rarenpc 来查看人物击杀罕见生物总数排行榜前十名\n" + - "输入 /zsort rarenpc all 来查看所有玩家击杀罕见生物总数排行榜") : ""; - var temp3 = config.EnablePointTracking ? ("\n输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n" + - "输入 /zsort point 来查看人物点数排行榜前十名\n" + - "输入 /zsort point all 来查看所有玩家点数排行榜") : ""; - var temp4 = config.EnableDeathCountTracking ? ("\n输入 /zsort death [num] 来查看当前[num]个人物死亡次数排行榜\n" + - "输入 /zsort death 来查看人物死亡次数排行榜前十名\n" + - "输入 /zsort death all 来查看所有玩家死亡次数排行榜") : ""; - var temp5 = config.EnableDeathCountTracking && config.EnableOnlineTimeTracking ? - ("\n输入 /zsort clumsy 来查看人物手残排行榜前十名\n" + - "输入 /zsort clumsy [num] 来查看当前[num]个人物手残排行榜\n" + - "输入 /zsort clumsy all 来查看所有玩家手残排行榜") : ""; + var temp1 = config.EnableOnlineTimeTracking + ? GetString("输入 /zsort time 来查看人物在线时间排行榜前十名\n") + + GetString("输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜\n") + + GetString("输入 /zsort time all 来查看所有玩家在线时常排行榜\n") + : ""; + var temp2 = config.EnableNpcKillTracking + ? GetString("\n输入 /zsort kill [num] 来查看当前[num]个人物击杀生物数排行榜\n") + + GetString("输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n") + + GetString("输入 /zsort kill all 来查看所有玩家击杀生物数排行榜\n" )+ + GetString("输入 /zsort boss [num] 来查看当前[num]个人物击杀Boss总数排行榜\n" )+ + GetString("输入 /zsort boss 来查看人物击杀Boss总数排行榜前十名\n") + + GetString("输入 /zsort boss all 来查看所有玩家击杀Boss总数排行榜\n") + + GetString("输入 /zsort rarenpc [num] 来查看当前[num]个人物击杀罕见生物总数排行榜\n") + + GetString("输入 /zsort rarenpc 来查看人物击杀罕见生物总数排行榜前十名\n") + + GetString("输入 /zsort rarenpc all 来查看所有玩家击杀罕见生物总数排行榜") + : ""; + var temp3 = config.EnablePointTracking + ? GetString("\n输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n") + + GetString("输入 /zsort point 来查看人物点数排行榜前十名\n") + + GetString("输入 /zsort point all 来查看所有玩家点数排行榜") + : ""; + var temp4 = config.EnableDeathCountTracking + ? GetString("\n输入 /zsort death [num] 来查看当前[num]个人物死亡次数排行榜\n") + + GetString("输入 /zsort death 来查看人物死亡次数排行榜前十名\n") + + GetString("输入 /zsort death all 来查看所有玩家死亡次数排行榜") + : ""; + var temp5 = config.EnableDeathCountTracking && config.EnableOnlineTimeTracking + ? GetString("\n输入 /zsort clumsy 来查看人物手残排行榜前十名\n") + + GetString("输入 /zsort clumsy [num] 来查看当前[num]个人物手残排行榜\n") + + GetString("输入 /zsort clumsy all 来查看所有玩家手残排行榜") + : ""; args.Player.SendMessage( temp1 + - "输入 /zsort coin 来查看人物硬币数目排行榜前十名\n" + - "输入 /zsort coin [num] 来查看当前[num]个人物硬币数目排行榜\n" + - "输入 /zsort coin all 来查看所有玩家硬币数目排行榜\n" + - "输入 /zsort fish 来查看人物任务鱼数目排行榜前十名\n" + - "输入 /zsort fish [num] 来查看当前[num]个人物任务鱼数目排行榜\n" + - "输入 /zsort fish all 来查看所有玩家任务鱼数目排行榜" + - temp4 + temp2 + temp3 + temp5 + GetString("输入 /zsort coin 来查看人物硬币数目排行榜前十名\n") + + GetString("输入 /zsort coin [num] 来查看当前[num]个人物硬币数目排行榜\n") + + GetString("输入 /zsort coin all 来查看所有玩家硬币数目排行榜\n") + + GetString("输入 /zsort fish 来查看人物任务鱼数目排行榜前十名\n") + + GetString("输入 /zsort fish [num] 来查看当前[num]个人物任务鱼数目排行榜\n") + + GetString("输入 /zsort fish all 来查看所有玩家任务鱼数目排行榜") + + temp4 + temp2 + temp3 + temp5 , TextColor()); return; } //时间排序 - else if (config.EnableOnlineTimeTracking && args.Parameters[0].Equals("time", StringComparison.OrdinalIgnoreCase)) + + if (config.EnableOnlineTimeTracking && args.Parameters[0].Equals("time", StringComparison.OrdinalIgnoreCase)) { // time 排序前先保存 foreach (var ex in edPlayers) { ZPExtraDB.WriteExtraDB(ex); } + var list = ZPExtraDB.ListAllExtraDB(ExtraDataDate.time, false); if (list.Count == 0) { - args.Player.SendInfoMessage("没有任何数据"); + args.Player.SendInfoMessage(GetString("没有任何数据")); } else if (args.Parameters.Count == 1) { @@ -2847,11 +2953,13 @@ private void ZhiSortPlayer(CommandArgs args) { num = list.Count; } + var sb = new StringBuilder(); for (var i = 0; i < num; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 在线时长 {this.timetostring(list[i].time)}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 在线时长 {this.timetostring(list[i].time)}")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -2861,19 +2969,22 @@ private void ZhiSortPlayer(CommandArgs args) { if (count <= 0) { - args.Player.SendInfoMessage("数字无效"); + args.Player.SendInfoMessage(GetString("数字无效")); return; } + var sb = new StringBuilder(); if (count > list.Count) { - sb.AppendLine("当前最多 " + list.Count + " 人"); + sb.AppendLine(GetString($"当前最多 {list.Count} 人")); count = list.Count; } + for (var i = 0; i < count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 在线时长 {this.timetostring(list[i].time)}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 在线时长 {this.timetostring(list[i].time)}")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -2882,14 +2993,15 @@ private void ZhiSortPlayer(CommandArgs args) var sb = new StringBuilder(); for (var i = 0; i < list.Count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 在线时长 {this.timetostring(list[i].time)}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 在线时长 {this.timetostring(list[i].time)}")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } else { - args.Player.SendInfoMessage("输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜\n输入 /zsort time 来查看人物在线时间排行榜前十名\n输入 /zsort time all 来查看所有玩家在线时常排行榜"); + args.Player.SendInfoMessage(GetString("输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜\n输入 /zsort time 来查看人物在线时间排行榜前十名\n输入 /zsort time all 来查看所有玩家在线时常排行榜")); } } } @@ -2905,11 +3017,13 @@ private void ZhiSortPlayer(CommandArgs args) list.Add(TShock.UserAccounts.GetUserAccountByID(num)); } } + if (list.Count == 0) { - args.Player.SendInfoMessage("没有任何数据"); + args.Player.SendInfoMessage(GetString("没有任何数据")); return; } + list.Sort((p1, p2) => this.getPlayerCoin(p2.Name).CompareTo(this.getPlayerCoin(p1.Name))); if (args.Parameters.Count == 1) { @@ -2918,18 +3032,20 @@ private void ZhiSortPlayer(CommandArgs args) { num = list.Count; } + var sb = new StringBuilder(); for (var i = 0; i < num; i++) { if (args.Player.IsLoggedIn) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name))}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name))}")); } else { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name), 1)}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name), 1)}")); } } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -2939,26 +3055,29 @@ private void ZhiSortPlayer(CommandArgs args) { if (count <= 0) { - args.Player.SendInfoMessage("数字无效"); + args.Player.SendInfoMessage(GetString("数字无效")); return; } + var sb = new StringBuilder(); if (count > list.Count) { - sb.AppendLine("当前最多 " + list.Count + " 人"); + sb.AppendLine(GetString($"当前最多 {list.Count} 人")); count = list.Count; } + for (var i = 0; i < count; i++) { if (args.Player.IsLoggedIn) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name))}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name))}")); } else { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name), 1)}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name), 1)}")); } } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -2969,19 +3088,20 @@ private void ZhiSortPlayer(CommandArgs args) { if (args.Player.IsLoggedIn) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name))}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name))}")); } else { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name), 1)}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 总硬币数 {this.cointostring(this.getPlayerCoin(list[i].Name), 1)}")); } } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } else { - args.Player.SendInfoMessage("输入 /zsort coin 来查看人物硬币数目排行榜前十名\n输入 /zsort coin [num] 来查看当前[num]个人物硬币数目排行榜\n输入 /zsort coin all 来查看所有玩家硬币数目排行榜"); + args.Player.SendInfoMessage(GetString("输入 /zsort coin 来查看人物硬币数目排行榜前十名\n输入 /zsort coin [num] 来查看当前[num]个人物硬币数目排行榜\n输入 /zsort coin all 来查看所有玩家硬币数目排行榜")); } } } @@ -2997,11 +3117,13 @@ private void ZhiSortPlayer(CommandArgs args) list.Add(TShock.UserAccounts.GetUserAccountByID(num)); } } + if (list.Count == 0) { - args.Player.SendInfoMessage("没有任何数据"); + args.Player.SendInfoMessage(GetString("没有任何数据")); return; } + if (args.Parameters.Count == 1) { var num = 10; @@ -3009,11 +3131,13 @@ private void ZhiSortPlayer(CommandArgs args) { num = list.Count; } + var sb = new StringBuilder(); for (var i = 0; i < num; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 总完成任务鱼数 {TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), list[i].ID).questsCompleted}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 总完成任务鱼数 {TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), list[i].ID).questsCompleted}")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3023,19 +3147,22 @@ private void ZhiSortPlayer(CommandArgs args) { if (count <= 0) { - args.Player.SendInfoMessage("数字无效"); + args.Player.SendInfoMessage(GetString("数字无效")); return; } + var sb = new StringBuilder(); if (count > list.Count) { - sb.AppendLine("当前最多 " + list.Count + " 人"); + sb.AppendLine(GetString($"当前最多 {list.Count} 人")); count = list.Count; } + for (var i = 0; i < count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 总完成任务鱼数 {TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), list[i].ID).questsCompleted}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 总完成任务鱼数 {TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), list[i].ID).questsCompleted}")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3044,28 +3171,31 @@ private void ZhiSortPlayer(CommandArgs args) var sb = new StringBuilder(); for (var i = 0; i < list.Count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 总完成任务鱼数 {TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), list[i].ID).questsCompleted}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 总完成任务鱼数 {TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), list[i].ID).questsCompleted}")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } else { - args.Player.SendInfoMessage("输入 /zsort fish 来查看人物任务鱼数目排行榜前十名\n输入 /zsort fish [num] 来查看当前[num]个人物任务鱼数目排行榜\n输入 /zsort fish all 来查看所有玩家任务鱼数目排行榜"); + args.Player.SendInfoMessage(GetString("输入 /zsort fish 来查看人物任务鱼数目排行榜前十名\n输入 /zsort fish [num] 来查看当前[num]个人物任务鱼数目排行榜\n输入 /zsort fish all 来查看所有玩家任务鱼数目排行榜")); } } } //斩杀数排序 else if (config.EnableNpcKillTracking && args.Parameters[0].Equals("kill", StringComparison.OrdinalIgnoreCase)) - { //排序前先保存 + { + //排序前先保存 foreach (var ex in edPlayers) { ZPExtraDB.WriteExtraDB(ex); } + var list = ZPExtraDB.ListAllExtraDB(ExtraDataDate.killNPCnum, false); if (list.Count == 0) { - args.Player.SendInfoMessage("没有任何数据"); + args.Player.SendInfoMessage(GetString("没有任何数据")); } else if (args.Parameters.Count == 1) { @@ -3074,11 +3204,13 @@ private void ZhiSortPlayer(CommandArgs args) { num = list.Count; } + var sb = new StringBuilder(); for (var i = 0; i < num; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 击杀生物总数 {list[i].killNPCnum} 个"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 击杀生物总数 {list[i].killNPCnum} 个")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3088,19 +3220,22 @@ private void ZhiSortPlayer(CommandArgs args) { if (count <= 0) { - args.Player.SendInfoMessage("数字无效"); + args.Player.SendInfoMessage(GetString("数字无效")); return; } + var sb = new StringBuilder(); if (count > list.Count) { - sb.AppendLine("当前最多 " + list.Count + " 人"); + sb.AppendLine(GetString($"当前最多 {list.Count} 人")); count = list.Count; } + for (var i = 0; i < count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 击杀生物总数 {list[i].killNPCnum} 个"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 击杀生物总数 {list[i].killNPCnum} 个")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3109,30 +3244,34 @@ private void ZhiSortPlayer(CommandArgs args) var sb = new StringBuilder(); for (var i = 0; i < list.Count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 击杀生物总数 {list[i].killNPCnum} 个"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 击杀生物总数 {list[i].killNPCnum} 个")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } else { - args.Player.SendInfoMessage("输入 /zsort kill [num] 来查看当前[num]个人物击杀生物数排行榜\n输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n输入 /zsort kill all 来查看所有玩家击杀生物数排行榜"); + args.Player.SendInfoMessage(GetString("输入 /zsort kill [num] 来查看当前[num]个人物击杀生物数排行榜\n输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n输入 /zsort kill all 来查看所有玩家击杀生物数排行榜")); } } } //斩杀Boss排序 else if (config.EnableNpcKillTracking && args.Parameters[0].Equals("boss", StringComparison.OrdinalIgnoreCase)) - { //排序前先保存 + { + //排序前先保存 foreach (var ex in edPlayers) { ZPExtraDB.WriteExtraDB(ex); } + var list = ZPExtraDB.ListAllExtraDB(); if (list.Count == 0) { - args.Player.SendInfoMessage("没有任何数据"); + args.Player.SendInfoMessage(GetString("没有任何数据")); return; } + list.Sort((p1, p2) => this.getKillNumFromDictionary(p2.killBossID).CompareTo(this.getKillNumFromDictionary(p1.killBossID))); if (args.Parameters.Count == 1) { @@ -3141,11 +3280,13 @@ private void ZhiSortPlayer(CommandArgs args) { num = list.Count; } + var sb = new StringBuilder(); for (var i = 0; i < num; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 击杀Boss总数 {this.getKillNumFromDictionary(list[i].killBossID)} 个"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 击杀Boss总数 {this.getKillNumFromDictionary(list[i].killBossID)} 个")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3155,19 +3296,22 @@ private void ZhiSortPlayer(CommandArgs args) { if (count <= 0) { - args.Player.SendInfoMessage("数字无效"); + args.Player.SendInfoMessage(GetString("数字无效")); return; } + var sb = new StringBuilder(); if (count > list.Count) { - sb.AppendLine("当前最多 " + list.Count + " 人"); + sb.AppendLine(GetString($"当前最多 {list.Count} 人")); count = list.Count; } + for (var i = 0; i < count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 击杀Boss总数 {this.getKillNumFromDictionary(list[i].killBossID)} 个"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 击杀Boss总数 {this.getKillNumFromDictionary(list[i].killBossID)} 个")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3176,30 +3320,34 @@ private void ZhiSortPlayer(CommandArgs args) var sb = new StringBuilder(); for (var i = 0; i < list.Count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 击杀Boss总数 {this.getKillNumFromDictionary(list[i].killBossID)} 个"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 击杀Boss总数 {this.getKillNumFromDictionary(list[i].killBossID)} 个")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } else { - args.Player.SendInfoMessage("输入 /zsort boss [num] 来查看当前[num]个人物击杀Boss总数排行榜\n输入 /zsort boss 来查看人物击杀Boss总数排行榜前十名\n输入 /zsort boss all 来查看所有玩家击杀Boss总数排行榜"); + args.Player.SendInfoMessage(GetString("输入 /zsort boss [num] 来查看当前[num]个人物击杀Boss总数排行榜\n输入 /zsort boss 来查看人物击杀Boss总数排行榜前十名\n输入 /zsort boss all 来查看所有玩家击杀Boss总数排行榜")); } } } //斩杀罕见生物排序 else if (config.EnableNpcKillTracking && args.Parameters[0].Equals("rarenpc", StringComparison.OrdinalIgnoreCase)) - { //排序前先保存 + { + //排序前先保存 foreach (var ex in edPlayers) { ZPExtraDB.WriteExtraDB(ex); } + var list = ZPExtraDB.ListAllExtraDB(); if (list.Count == 0) { - args.Player.SendInfoMessage("没有任何数据"); + args.Player.SendInfoMessage(GetString("没有任何数据")); return; } + list.Sort((p1, p2) => this.getKillNumFromDictionary(p2.killRareNPCID).CompareTo(this.getKillNumFromDictionary(p1.killRareNPCID))); if (args.Parameters.Count == 1) { @@ -3208,11 +3356,13 @@ private void ZhiSortPlayer(CommandArgs args) { num = list.Count; } + var sb = new StringBuilder(); for (var i = 0; i < num; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 击杀罕见生物总数 {this.getKillNumFromDictionary(list[i].killRareNPCID)} 个"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 击杀罕见生物总数 {this.getKillNumFromDictionary(list[i].killRareNPCID)} 个")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3222,19 +3372,22 @@ private void ZhiSortPlayer(CommandArgs args) { if (count <= 0) { - args.Player.SendInfoMessage("数字无效"); + args.Player.SendInfoMessage(GetString("数字无效")); return; } + var sb = new StringBuilder(); if (count > list.Count) { - sb.AppendLine("当前最多 " + list.Count + " 人"); + sb.AppendLine(GetString("当前最多 " + list.Count + " 人")); count = list.Count; } + for (var i = 0; i < count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 击杀罕见生物总数 {this.getKillNumFromDictionary(list[i].killRareNPCID)} 个"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 击杀罕见生物总数 {this.getKillNumFromDictionary(list[i].killRareNPCID)} 个")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3243,30 +3396,34 @@ private void ZhiSortPlayer(CommandArgs args) var sb = new StringBuilder(); for (var i = 0; i < list.Count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 击杀罕见生物总数 {this.getKillNumFromDictionary(list[i].killRareNPCID)} 个"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 击杀罕见生物总数 {this.getKillNumFromDictionary(list[i].killRareNPCID)} 个")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } else { - args.Player.SendInfoMessage("输入 /zsort rarenpc [num] 来查看当前[num]个人物击杀罕见生物总数排行榜\n输入 /zsort rarenpc 来查看人物击杀罕见生物总数排行榜前十名\n输入 /zsort rarenpc all 来查看所有玩家击杀罕见生物总数排行榜"); + args.Player.SendInfoMessage(GetString("输入 /zsort rarenpc [num] 来查看当前[num]个人物击杀罕见生物总数排行榜\n输入 /zsort rarenpc 来查看人物击杀罕见生物总数排行榜前十名\n输入 /zsort rarenpc all 来查看所有玩家击杀罕见生物总数排行榜")); } } } //点数排行 else if (config.EnablePointTracking && args.Parameters[0].Equals("point", StringComparison.OrdinalIgnoreCase)) - { //排序前先保存 + { + //排序前先保存 foreach (var ex in edPlayers) { ZPExtraDB.WriteExtraDB(ex); } + var list = ZPExtraDB.ListAllExtraDB(ExtraDataDate.point, false); if (list.Count == 0) { - args.Player.SendInfoMessage("没有任何数据"); + args.Player.SendInfoMessage(GetString("没有任何数据")); return; } + if (args.Parameters.Count == 1) { var num = 10; @@ -3274,11 +3431,13 @@ private void ZhiSortPlayer(CommandArgs args) { num = list.Count; } + var sb = new StringBuilder(); for (var i = 0; i < num; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 点数 {list[i].point} "); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 点数 {list[i].point} ")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3288,19 +3447,22 @@ private void ZhiSortPlayer(CommandArgs args) { if (count <= 0) { - args.Player.SendInfoMessage("数字无效"); + args.Player.SendInfoMessage(GetString("数字无效")); return; } + var sb = new StringBuilder(); if (count > list.Count) { - sb.AppendLine("当前最多 " + list.Count + " 人"); + sb.AppendLine(GetString($"当前最多 {list.Count} 人")); count = list.Count; } + for (var i = 0; i < count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 点数 {list[i].point}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 点数 {list[i].point}")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3309,30 +3471,34 @@ private void ZhiSortPlayer(CommandArgs args) var sb = new StringBuilder(); for (var i = 0; i < list.Count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 点数 {list[i].point}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 点数 {list[i].point}")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } else { - args.Player.SendInfoMessage("输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n输入 /zsort point 来查看人物点数排行榜前十名\n输入 /zsort point all 来查看所有玩家点数排行榜"); + args.Player.SendInfoMessage(GetString("输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n输入 /zsort point 来查看人物点数排行榜前十名\n输入 /zsort point all 来查看所有玩家点数排行榜")); } } } //死亡次数排行 else if (config.EnableDeathCountTracking && args.Parameters[0].Equals("death", StringComparison.OrdinalIgnoreCase)) - {//排序前先保存 + { + //排序前先保存 foreach (var ex in edPlayers) { ZPExtraDB.WriteExtraDB(ex); } + var list = ZPExtraDB.ListAllExtraDB(ExtraDataDate.deathCount, false); if (list.Count == 0) { - args.Player.SendInfoMessage("没有任何数据"); + args.Player.SendInfoMessage(GetString("没有任何数据")); return; } + if (args.Parameters.Count == 1) { var num = 10; @@ -3340,11 +3506,13 @@ private void ZhiSortPlayer(CommandArgs args) { num = list.Count; } + var sb = new StringBuilder(); for (var i = 0; i < num; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 死亡次数 {list[i].deathCount} "); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 死亡次数 {list[i].deathCount} ")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3354,19 +3522,22 @@ private void ZhiSortPlayer(CommandArgs args) { if (count <= 0) { - args.Player.SendInfoMessage("数字无效"); + args.Player.SendInfoMessage(GetString("数字无效")); return; } + var sb = new StringBuilder(); if (count > list.Count) { - sb.AppendLine("当前最多 " + list.Count + " 人"); + sb.AppendLine(GetString($"当前最多 {list.Count} 人")); count = list.Count; } + for (var i = 0; i < count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 死亡次数 {list[i].deathCount}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 死亡次数 {list[i].deathCount}")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3375,30 +3546,34 @@ private void ZhiSortPlayer(CommandArgs args) var sb = new StringBuilder(); for (var i = 0; i < list.Count; i++) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 死亡次数 {list[i].deathCount}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 死亡次数 {list[i].deathCount}")); } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } else { - args.Player.SendInfoMessage("输入 /zsort death [num] 来查看当前[num]个人物死亡次数排行榜\n输入 /zsort death 来查看人物死亡次数排行榜前十名\n输入 /zsort death all 来查看所有玩家死亡次数排行榜"); + args.Player.SendInfoMessage(GetString("输入 /zsort death [num] 来查看当前[num]个人物死亡次数排行榜\n输入 /zsort death 来查看人物死亡次数排行榜前十名\n输入 /zsort death all 来查看所有玩家死亡次数排行榜")); } } } //菜鸡榜 else if (config.EnableDeathCountTracking && config.EnableOnlineTimeTracking && args.Parameters[0].Equals("clumsy", StringComparison.OrdinalIgnoreCase)) - {//排序前先保存 + { + //排序前先保存 foreach (var ex in edPlayers) { ZPExtraDB.WriteExtraDB(ex); } + var list = ZPExtraDB.ListAllExtraDB(); if (list.Count == 0) { - args.Player.SendInfoMessage("没有任何数据"); + args.Player.SendInfoMessage(GetString("没有任何数据")); return; } + list.Sort((p1, p2) => { double k1 = 0.0, k2 = 0.0; @@ -3406,10 +3581,12 @@ private void ZhiSortPlayer(CommandArgs args) { k1 = p1.deathCount * 100.0 / p1.time; } + if (p2.time > 0L) { k2 = p2.deathCount * 100.0 / p2.time; } + return k2.CompareTo(k1); }); if (args.Parameters.Count == 1) @@ -3419,18 +3596,20 @@ private void ZhiSortPlayer(CommandArgs args) { num = list.Count; } + var sb = new StringBuilder(); for (var i = 0; i < num; i++) { if (args.Player.IsLoggedIn) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}")); } else { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}")); } } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3440,26 +3619,29 @@ private void ZhiSortPlayer(CommandArgs args) { if (count <= 0) { - args.Player.SendInfoMessage("数字无效"); + args.Player.SendInfoMessage(GetString("数字无效")); return; } + var sb = new StringBuilder(); if (count > list.Count) { - sb.AppendLine("当前最多 " + list.Count + " 人"); + sb.AppendLine(GetString($"当前最多 {list.Count} 人")); count = list.Count; } + for (var i = 0; i < count; i++) { if (args.Player.IsLoggedIn) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}")); } else { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}")); } } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } @@ -3470,52 +3652,55 @@ private void ZhiSortPlayer(CommandArgs args) { if (args.Player.IsLoggedIn) { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}")); } else { - sb.AppendLine($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}"); + sb.AppendLine(GetString($"第 {i + 1} 名:【{list[i].Name}】 菜鸡值 {list[i].deathCount * 1000.0 / list[i].time:0.00}")); } } + args.Player.SendMessage(sb.ToString(), TextColor()); TShock.Log.Info(sb.ToString()); } else { - args.Player.SendInfoMessage("输入 /zsort clumsy 来查看人物手残排行榜前十名\n输入 /zsort clumsy [num] 来查看当前[num]个人物手残排行榜\n输入 /zsort clumsy all 来查看所有玩家手残排行榜"); + args.Player.SendInfoMessage(GetString("输入 /zsort clumsy 来查看人物手残排行榜前十名\n输入 /zsort clumsy [num] 来查看当前[num]个人物手残排行榜\n输入 /zsort clumsy all 来查看所有玩家手残排行榜")); } } } else { - args.Player.SendInfoMessage("输入 /zsort help 来查看排序系列指令帮助"); + args.Player.SendInfoMessage(GetString("输入 /zsort help 来查看排序系列指令帮助")); } } /// - /// 办掉离线或在线的玩家,超级ban指令 + /// 办掉离线或在线的玩家,超级ban指令 /// /// private void SuperBan(CommandArgs args) { if (args.Parameters.Count < 2) { - args.Player.SendInfoMessage("输入 /zban add [reason] 来封禁无论是否在线的玩家,reason 可不填\n" + - "输入 /zban add uuid [reason] 来封禁uuid\n" + - "输入 /zban add ip [reason] 来封禁ip"); + args.Player.SendInfoMessage(GetString("输入 /zban add [reason] 来封禁无论是否在线的玩家,reason 可不填\n") + + GetString("输入 /zban add uuid [reason] 来封禁uuid\n") + + GetString("输入 /zban add ip [reason] 来封禁ip")); return; } + if (args.Parameters[0].Equals("add", StringComparison.OrdinalIgnoreCase)) { if (args.Parameters[1].Equals("uuid", StringComparison.OrdinalIgnoreCase)) { if (args.Parameters.Count < 3 || string.IsNullOrWhiteSpace(args.Parameters[2])) { - args.Player.SendInfoMessage("参数过少"); + args.Player.SendInfoMessage(GetString("参数过少")); return; } - var reason = args.Parameters.Count == 4 ? args.Parameters[3] : "检测到违规行为,请联系管理员"; + + var reason = args.Parameters.Count == 4 ? args.Parameters[3] : GetString("检测到违规行为,请联系管理员"); TSPlayer? suspect = null; foreach (var v in TShock.Players) { @@ -3525,26 +3710,28 @@ private void SuperBan(CommandArgs args) break; } } + if (suspect != null && suspect.Ban(reason, "ZHIPlayerManager by " + args.Player.Name)) { - args.Player.SendMessage($"用户 {suspect.Name} 已被 {args.Player.Name} 封禁", broadcastColor); - TShock.Log.Info($"用户 {suspect.Name} 已被 {args.Player.Name} 封禁"); + args.Player.SendMessage(GetString($"用户 {suspect.Name} 已被 {args.Player.Name} 封禁"), broadcastColor); + TShock.Log.Info(GetString($"用户 {suspect.Name} 已被 {args.Player.Name} 封禁")); } else { TShock.Bans.InsertBan("uuid:" + args.Parameters[2], reason, "ZHIPlayerManager by " + args.Player.Name, DateTime.UtcNow, DateTime.MaxValue); - TSPlayer.All.SendMessage($"uuid: {args.Parameters[2]} 已被 {args.Player.Name} 封禁", broadcastColor); - TShock.Log.Info($"uuid: {args.Parameters[2]} 已被 {args.Player.Name} 封禁"); + TSPlayer.All.SendMessage(GetString($"uuid: {args.Parameters[2]} 已被 {args.Player.Name} 封禁"), broadcastColor); + TShock.Log.Info(GetString($"uuid: {args.Parameters[2]} 已被 {args.Player.Name} 封禁")); } } else if (args.Parameters[1].Equals("ip", StringComparison.OrdinalIgnoreCase)) { if (args.Parameters.Count < 3 || string.IsNullOrWhiteSpace(args.Parameters[2])) { - args.Player.SendInfoMessage("参数过少"); + args.Player.SendInfoMessage(GetString("参数过少")); return; } - var reason = args.Parameters.Count == 4 ? args.Parameters[3] : "检测到违规行为,请联系管理员"; + + var reason = args.Parameters.Count == 4 ? args.Parameters[3] : GetString("检测到违规行为,请联系管理员"); TSPlayer? suspect = null; foreach (var v in TShock.Players) { @@ -3554,19 +3741,20 @@ private void SuperBan(CommandArgs args) break; } } + if (suspect != null && suspect.Ban(reason, "ZHIPlayerManager by " + args.Player.Name)) { - args.Player.SendMessage($"用户 {suspect.Name} 已被 {args.Player.Name} 封禁", broadcastColor); - TShock.Log.Info($"用户 {suspect.Name} 已被 {args.Player.Name} 封禁"); + args.Player.SendMessage(GetString($"用户 {suspect.Name} 已被 {args.Player.Name} 封禁"), broadcastColor); + TShock.Log.Info(GetString($"用户 {suspect.Name} 已被 {args.Player.Name} 封禁")); } else { TShock.Bans.InsertBan("ip:" + args.Parameters[2], reason, "ZHIPlayerManager by " + args.Player.Name, DateTime.UtcNow, DateTime.MaxValue); - TSPlayer.All.SendMessage($"ip: {args.Parameters[2]} 已被 {args.Player.Name} 封禁", broadcastColor); - TShock.Log.Info($"ip: {args.Parameters[2]} 已被 {args.Player.Name} 封禁"); + TSPlayer.All.SendMessage(GetString($"ip: {args.Parameters[2]} 已被 {args.Player.Name} 封禁"), broadcastColor); + TShock.Log.Info(GetString($"ip: {args.Parameters[2]} 已被 {args.Player.Name} 封禁")); } } - else//正常封禁玩家 + else //正常封禁玩家 { var list = this.BestFindPlayerByNameOrIndex(args.Parameters[1]); //封禁原因,可不填 @@ -3575,13 +3763,14 @@ private void SuperBan(CommandArgs args) { if (list[0].Ban(reason, "ZHIPlayerManager by " + args.Player.Name)) { - args.Player.SendMessage($"用户 {list[0].Name} 已被 {args.Player.Name} 封禁", broadcastColor); - TShock.Log.Info($"用户 {list[0].Name} 已被 {args.Player.Name} 封禁"); + args.Player.SendMessage(GetString($"用户 {list[0].Name} 已被 {args.Player.Name} 封禁"), broadcastColor); + TShock.Log.Info(GetString($"用户 {list[0].Name} 已被 {args.Player.Name} 封禁")); } else - { //实际上这个情况永远不会发生,因为Ban方法的返回值就没返回false过 - args.Player.SendInfoMessage($"用户 {list[0].Name} 封禁失败,可能该玩家已被封禁或所在组被禁止封禁"); - TShock.Log.Info($"用户 {list[0].Name} 封禁失败,可能该玩家已被封禁或所在组被禁止封禁"); + { + //实际上这个情况永远不会发生,因为Ban方法的返回值就没返回false过 + args.Player.SendInfoMessage(GetString($"用户 {list[0].Name} 封禁失败,可能该玩家已被封禁或所在组被禁止封禁")); + TShock.Log.Info(GetString($"用户 {list[0].Name} 封禁失败,可能该玩家已被封禁或所在组被禁止封禁")); } } else if (list.Count > 1) @@ -3595,7 +3784,7 @@ private void SuperBan(CommandArgs args) var user = TShock.UserAccounts.GetUserAccountByName(args.Parameters[1]); if (user == null) { - args.Player.SendInfoMessage("精准查找未找到,正在尝试模糊查找"); + args.Player.SendInfoMessage(GetString("精准查找未找到,正在尝试模糊查找")); var users = TShock.UserAccounts.GetUserAccountsByName(args.Parameters[1], true); if (users.Count == 1) { @@ -3603,15 +3792,16 @@ private void SuperBan(CommandArgs args) } else if (users.Count > 1) { - args.Player.SendInfoMessage("人数不唯一,为避免误封,请重新输入。若玩家名称带有空格可用英文引号将名称整个括起来"); + args.Player.SendInfoMessage(GetString("人数不唯一,为避免误封,请重新输入。若玩家名称带有空格可用英文引号将名称整个括起来")); return; } else { - args.Player.SendInfoMessage(this.noplayer + "。若玩家名称带有空格可用英文引号将名称整个括起来"); + args.Player.SendInfoMessage(this.noplayer + GetString("。若玩家名称带有空格可用英文引号将名称整个括起来")); return; } } + if (!string.IsNullOrWhiteSpace(user.Name)) { TShock.Bans.InsertBan("acc:" + user.Name, reason, "ZHIPlayerManager by " + args.Player.Name, DateTime.UtcNow, DateTime.MaxValue); @@ -3633,27 +3823,28 @@ private void SuperBan(CommandArgs args) } } } + if (!args.Player.IsLoggedIn) { - args.Player.SendMessage($"用户 {user.Name} 已被 {args.Player.Name} 封禁", broadcastColor); + args.Player.SendMessage(GetString($"用户 {user.Name} 已被 {args.Player.Name} 封禁"), broadcastColor); } - TSPlayer.All.SendMessage($"用户 {user.Name} 已被 {args.Player.Name} 封禁", broadcastColor); - TShock.Log.Info($"用户 {user.Name} 已被 {args.Player.Name} 封禁"); + TSPlayer.All.SendMessage(GetString($"用户 {user.Name} 已被 {args.Player.Name} 封禁"), broadcastColor); + TShock.Log.Info(GetString($"用户 {user.Name} 已被 {args.Player.Name} 封禁")); } } } else { - args.Player.SendInfoMessage("输入 /zban add [name] [reason] 来封禁无论是否在线的玩家,reason 可不填\n" + - "输入 /zban add uuid [uuid] [reason] 来封禁uuid\n" + - "输入 /zban add ip [ip] [reason] 来封禁ip"); + args.Player.SendInfoMessage(GetString("输入 /zban add [name] [reason] 来封禁无论是否在线的玩家,reason 可不填\n") + + GetString("输入 /zban add uuid [uuid] [reason] 来封禁uuid\n") + + GetString("输入 /zban add ip [ip] [reason] 来封禁ip")); } } /// - /// 冻结该玩家,禁止他做出任何操作 + /// 冻结该玩家,禁止他做出任何操作 /// /// /// @@ -3661,9 +3852,10 @@ private void ZFreeze(CommandArgs args) { if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /zfre [name] 来冻结该玩家"); + args.Player.SendInfoMessage(GetString("输入 /zfre [name] 来冻结该玩家")); return; } + var ts = this.BestFindPlayerByNameOrIndex(args.Parameters[0]); if (ts.Count == 0) { @@ -3673,39 +3865,37 @@ private void ZFreeze(CommandArgs args) { if (frePlayers.Exists(x => x.name == user.Name && x.uuid == user.UUID && (x.IPs == null ? true : x.IPs.Equals(user.KnownIps)))) { - args.Player.SendMessage($"玩家 [{user.Name}] 已冻结过!", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{user.Name}] 已冻结过!"), new Color(0, 255, 0)); } else { frePlayers.Add(new MessPlayer(user.ID, user.Name, user.UUID, user.KnownIps, Vector2.Zero)); - args.Player.SendMessage($"玩家 [{user.Name}] 冻结成功", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{user.Name}] 冻结成功"), new Color(0, 255, 0)); } } else { - args.Player.SendInfoMessage("精准查找未找到,正在尝试模糊查找"); + args.Player.SendInfoMessage(GetString("精准查找未找到,正在尝试模糊查找")); var users = TShock.UserAccounts.GetUserAccountsByName(args.Parameters[0], true); if (users.Count == 1) { if (frePlayers.Exists(x => x.name == users[0].Name && x.uuid == users[0].UUID && (x.IPs == null ? true : x.IPs.Equals(users[0].KnownIps)))) { - args.Player.SendMessage($"玩家 [{users[0].Name}] 已冻结过!", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{users[0].Name}] 已冻结过!"), new Color(0, 255, 0)); } else { frePlayers.Add(new MessPlayer(users[0].ID, users[0].Name, users[0].UUID, users[0].KnownIps, Vector2.Zero)); - args.Player.SendMessage($"玩家 [{users[0].Name}] 冻结成功", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{users[0].Name}] 冻结成功"), new Color(0, 255, 0)); } } else if (users.Count > 1) { args.Player.SendInfoMessage(this.manyplayer); - return; } else { args.Player.SendInfoMessage(this.noplayer); - return; } } } @@ -3717,20 +3907,20 @@ private void ZFreeze(CommandArgs args) { if (frePlayers.Exists(x => x.name == ts[0].Name && x.uuid == ts[0].UUID && (x.IPs == null ? true : x.IPs.Equals(ts[0].Account.KnownIps)))) { - args.Player.SendMessage($"玩家 [{ts[0].Name}] 已冻结过!", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{ts[0].Name}] 已冻结过!"), new Color(0, 255, 0)); } else { this.clearAllBuffFromPlayer(ts[0]); frePlayers.Add(new MessPlayer(ts[0].Account.ID, ts[0].Name, ts[0].UUID, ts[0].Account.KnownIps, ts[0].TPlayer.Center)); - args.Player.SendMessage($"玩家 [{ts[0].Name}] 冻结成功", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{ts[0].Name}] 冻结成功"), new Color(0, 255, 0)); } } } /// - /// 取消冻结该玩家 + /// 取消冻结该玩家 /// /// /// @@ -3738,9 +3928,10 @@ private void ZUnFreeze(CommandArgs args) { if (args.Parameters.Count != 1) { - args.Player.SendInfoMessage("输入 /zunfre [name] 来解冻该玩家\n输入 /zunfre all 来解冻所有玩家"); + args.Player.SendInfoMessage(GetString("输入 /zunfre [name] 来解冻该玩家\n输入 /zunfre all 来解冻所有玩家")); return; } + if (args.Parameters[0].Equals("all", StringComparison.OrdinalIgnoreCase)) { frePlayers.ForEach(x => @@ -3752,9 +3943,10 @@ private void ZUnFreeze(CommandArgs args) } }); frePlayers.Clear(); - args.Player.SendMessage("所有玩家均已解冻", new Color(0, 255, 0)); + args.Player.SendMessage(GetString("所有玩家均已解冻"), new Color(0, 255, 0)); return; } + var ts = this.BestFindPlayerByNameOrIndex(args.Parameters[0]); if (ts.Count == 0) { @@ -3762,41 +3954,40 @@ private void ZUnFreeze(CommandArgs args) var user = TShock.UserAccounts.GetUserAccountByName(args.Parameters[0]); if (user != null) { - var c = frePlayers.RemoveAll(x => x.uuid == user.UUID || x.name == user.Name || !string.IsNullOrEmpty(x.IPs) && !string.IsNullOrEmpty(user.KnownIps) && this.IPStostringIPs(x.IPs).Any(y => this.IPStostringIPs(user.KnownIps).Contains(y)) || string.IsNullOrEmpty(x.IPs) && string.IsNullOrEmpty(user.KnownIps)); + var c = frePlayers.RemoveAll(x => x.uuid == user.UUID || x.name == user.Name || (!string.IsNullOrEmpty(x.IPs) && !string.IsNullOrEmpty(user.KnownIps) && this.IPStostringIPs(x.IPs).Any(y => this.IPStostringIPs(user.KnownIps).Contains(y))) || (string.IsNullOrEmpty(x.IPs) && string.IsNullOrEmpty(user.KnownIps))); if (c > 0) { - args.Player.SendMessage($"玩家 [{user.Name}] 已解冻", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{user.Name}] 已解冻"), new Color(0, 255, 0)); } else { - args.Player.SendMessage($"玩家 [{user.Name}] 未被冻结!", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{user.Name}] 未被冻结!"), new Color(0, 255, 0)); } } else { - args.Player.SendInfoMessage("精准查找未找到,正在尝试模糊查找"); + args.Player.SendInfoMessage(GetString("精准查找未找到,正在尝试模糊查找")); var users = TShock.UserAccounts.GetUserAccountsByName(args.Parameters[0], true); if (users.Count > 1) { args.Player.SendInfoMessage(this.manyplayer); return; } - else if (users.Count == 0) + + if (users.Count == 0) { args.Player.SendInfoMessage(this.noplayer); return; } + + var c = frePlayers.RemoveAll(x => x.uuid == users[0].UUID || x.name == users[0].Name || (!string.IsNullOrEmpty(x.IPs) && !string.IsNullOrEmpty(users[0].KnownIps) && this.IPStostringIPs(x.IPs).Any(y => this.IPStostringIPs(users[0].KnownIps).Contains(y))) || (string.IsNullOrEmpty(x.IPs) && string.IsNullOrEmpty(users[0].KnownIps))); + if (c > 0) + { + args.Player.SendMessage(GetString($"玩家 [{users[0].Name}] 已解冻"), new Color(0, 255, 0)); + } else { - var c = frePlayers.RemoveAll(x => x.uuid == users[0].UUID || x.name == users[0].Name || !string.IsNullOrEmpty(x.IPs) && !string.IsNullOrEmpty(users[0].KnownIps) && this.IPStostringIPs(x.IPs).Any(y => this.IPStostringIPs(users[0].KnownIps).Contains(y)) || string.IsNullOrEmpty(x.IPs) && string.IsNullOrEmpty(users[0].KnownIps)); - if (c > 0) - { - args.Player.SendMessage($"玩家 [{users[0].Name}] 已解冻", new Color(0, 255, 0)); - } - else - { - args.Player.SendMessage($"玩家 [{users[0].Name}] 未被冻结", new Color(0, 255, 0)); - } + args.Player.SendMessage(GetString($"玩家 [{users[0].Name}] 未被冻结"), new Color(0, 255, 0)); } } } @@ -3806,23 +3997,23 @@ private void ZUnFreeze(CommandArgs args) } else { - var c = frePlayers.RemoveAll(x => x.uuid == ts[0].UUID || x.name == ts[0].Name || !string.IsNullOrEmpty(x.IPs) && !string.IsNullOrEmpty(ts[0].IP) && this.IPStostringIPs(x.IPs).Any(x => ts[0].IP == x)); + var c = frePlayers.RemoveAll(x => x.uuid == ts[0].UUID || x.name == ts[0].Name || (!string.IsNullOrEmpty(x.IPs) && !string.IsNullOrEmpty(ts[0].IP) && this.IPStostringIPs(x.IPs).Any(x => ts[0].IP == x))); if (c > 0) { this.clearAllBuffFromPlayer(ts[0]); - args.Player.SendMessage($"玩家 [{ts[0].Name}] 已解冻", new Color(0, 255, 0)); - ts[0].SendMessage("您已被解冻", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{ts[0].Name}] 已解冻"), new Color(0, 255, 0)); + ts[0].SendMessage(GetString("您已被解冻"), new Color(0, 255, 0)); } else { - args.Player.SendMessage($"玩家 [{ts[0].Name}] 未被冻结", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{ts[0].Name}] 未被冻结"), new Color(0, 255, 0)); } } } /// - /// 击中npc时进行标记 + /// 击中npc时进行标记 /// /// private void OnNpcStrike(NpcStrikeEventArgs args) @@ -3842,29 +4033,26 @@ private void OnNpcStrike(NpcStrikeEventArgs args) //这个生物是否以前被击中过 var strike = strikeNPC.Find(x => x.index == args.Npc.whoAmI && x.id == args.Npc.netID); if (strike != null && strike.name != string.Empty) - { //如果击中过,寻找击中他的玩家是否被记录 + { + //如果击中过,寻找击中他的玩家是否被记录 if (strike.playerAndDamage.ContainsKey(players[0].Account.ID)) - { //已被记录,那么伤害记录加数值 - if (args.Damage <= TShock.Config.Settings.MaxDamage && args.Damage <= TShock.Config.Settings.MaxProjDamage)//不正常的伤害应舍去 + { + //已被记录,那么伤害记录加数值 + if (args.Damage <= TShock.Config.Settings.MaxDamage && args.Damage <= TShock.Config.Settings.MaxProjDamage) //不正常的伤害应舍去 { strike.playerAndDamage[players[0].Account.ID] += args.Damage; strike.AllDamage += args.Damage; } } - else//否则,创建新的 player->damage + else //否则,创建新的 player->damage { strike.playerAndDamage.Add(players[0].Account.ID, args.Damage); strike.AllDamage += args.Damage; } } - else//如果没有击中过,创建新的 npc + else //如果没有击中过,创建新的 npc { - var snpc = new StrikeNPC - { - id = args.Npc.netID, - index = args.Npc.whoAmI, - name = args.Npc.FullName - }; + var snpc = new StrikeNPC { id = args.Npc.netID, index = args.Npc.whoAmI, name = args.Npc.FullName }; if (config.EnablePointTracking) { @@ -3905,12 +4093,13 @@ private void OnNpcStrike(NpcStrikeEventArgs args) -23 or -22 or 173 or 239 or 240 or 181 or 6 or -12 or -11 or 7 or 8 or 9 => args.Npc.value + 200, //毒兔兔等可量产化的生物 464 or 465 or 57 or 47 => 0, - _ => args.Npc.value, + _ => args.Npc.value }; if (!Main.hardMode) { switch (snpc.id) - {//肉前真菌敌怪价格降低 2/3 + { + //肉前真菌敌怪价格降低 2/3 case 254: case 255: case 257: @@ -3920,8 +4109,8 @@ private void OnNpcStrike(NpcStrikeEventArgs args) case 261: case 634: case 635: - snpc.value /= 3; break; - default: break; + snpc.value /= 3; + break; } } @@ -3941,7 +4130,7 @@ private void OnNpcStrike(NpcStrikeEventArgs args) { //世界吞噬者 13 or 14 or 15 or 325 or 327 or 564 or 565 or 576 or 577 or 551 or 344 or 345 or 346 or 517 or 422 or 493 or 507 or 68 => true, - _ => args.Npc.boss, + _ => args.Npc.boss }; snpc.playerAndDamage.Add(players[0].Account.ID, args.Damage); snpc.AllDamage += args.Damage; @@ -3951,7 +4140,7 @@ private void OnNpcStrike(NpcStrikeEventArgs args) /// - /// 杀死npc时计数 + /// 杀死npc时计数 /// /// private void OnNPCKilled(NpcKilledEventArgs args) @@ -3969,7 +4158,8 @@ private void OnNPCKilled(NpcKilledEventArgs args) //毁灭者的处理,这个npc的死亡钩子只记录他的头,所以这里没有写135和136,并且没有放在 for (int i = 0; i < strikeNPC.Count; i++) 里,因为这个boss可能没有被击中过头部 //为什么移到外面,因为用于判断毁灭者死亡条件的头部可能一直不会被击中 if (args.npc.netID == 134) - {//遍历所有被击中过的strikeNPC,记录 135 和 136 的击中情况 + { + //遍历所有被击中过的strikeNPC,记录 135 和 136 的击中情况 foreach (var sss in strikeNPC) { if (sss.id == 134 || sss.id == 135 || sss.id == 136) @@ -3987,11 +4177,13 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + var sum = 0; foreach (var des in this.Destroyer) { sum += des.Value; } + foreach (var x in edPlayers) { if (this.Destroyer.TryGetValue(x.Account, out var value)) @@ -4004,9 +4196,9 @@ private void OnNPCKilled(NpcKilledEventArgs args) point = (int) (2000f * value / sum); if (point < 0 || point >= int.MaxValue) { - TShock.Log.Error("错误的点数:" + point); - TSPlayer.All.SendInfoMessage("错误的点数:" + point); + TShock.Log.ConsoleError(GetString("错误的点数:") + point); } + x.point += point >= 0 && point < int.MaxValue ? point : 1; } @@ -4027,7 +4219,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) this.SendAllText(temp[0], "kill + 1", Color.White, Color.Gray, args.npc.Center - (Vector2.UnitY * 10)); } - NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index, -1); + NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index); if (!x.hidePointTips && config.EnablePointTracking) { this.SendAllText(temp[0], $"+ {point} $", new Color(255, 100, 255), new Color(150, 75, 150), temp[0].TPlayer.Center); @@ -4035,6 +4227,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (config.EnableBossDamageLeaderboard) { this.SendKillBossMessage(args.npc.FullName, this.Destroyer, sum); @@ -4045,8 +4238,10 @@ private void OnNPCKilled(NpcKilledEventArgs args) return; } //肉山同理,肉山嘴巴 - else if (args.npc.netID == 113) - {//遍历所有被击中过的strikeNPC,记录 113 和 114 的击中情况 + + if (args.npc.netID == 113) + { + //遍历所有被击中过的strikeNPC,记录 113 和 114 的击中情况 foreach (var sss in strikeNPC) { if (sss.id == 113 || sss.id == 114) @@ -4064,11 +4259,13 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + var sum = 0; foreach (var fw in this.FleshWall) { sum += fw.Value; } + foreach (var x in edPlayers) { if (this.FleshWall.TryGetValue(x.Account, out var value)) @@ -4081,9 +4278,9 @@ private void OnNPCKilled(NpcKilledEventArgs args) point = (int) (2000f * value / sum); if (point < 0 || point >= int.MaxValue) { - TShock.Log.Error("错误的点数:" + point); - TSPlayer.All.SendInfoMessage("错误的点数:" + point); + TShock.Log.ConsoleError(GetString("错误的点数:") + point); } + x.point += point >= 0 && point < int.MaxValue ? point : 1; } @@ -4104,7 +4301,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) this.SendAllText(temp[0], "kill + 1", Color.White, Color.Gray, args.npc.Center - (Vector2.UnitY * 10)); } - NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index, -1); + NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index); if (!x.hidePointTips && config.EnablePointTracking) { this.SendAllText(temp[0], $"+ {point} $", new Color(255, 100, 255), new Color(150, 75, 150), temp[0].TPlayer.Center); @@ -4112,9 +4309,10 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (config.EnableBossDamageLeaderboard) { - this.SendKillBossMessage("血肉墙", this.FleshWall, sum); + this.SendKillBossMessage(GetString("血肉墙"), this.FleshWall, sum); } this.FleshWall.Clear(); @@ -4129,7 +4327,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) { switch (strikeNPC[i].id) { - case 13://世界吞噬者特殊处理,特殊点:可以有多个头,只有最后一个头死亡时计入击杀 + case 13: //世界吞噬者特殊处理,特殊点:可以有多个头,只有最后一个头死亡时计入击杀 case 14: case 15: { @@ -4138,9 +4336,11 @@ private void OnNPCKilled(NpcKilledEventArgs args) { if (n.whoAmI != args.npc.whoAmI && (n.type == 13 || n.type == 14 || n.type == 15) && n.active) { - flag = false; break;//如果boss被杀死,设为true + flag = false; + break; //如果boss被杀死,设为true } } + foreach (var ss in strikeNPC[i].playerAndDamage) { if (this.Eaterworld.ContainsKey(ss.Key)) @@ -4152,6 +4352,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) this.Eaterworld.Add(ss.Key, ss.Value); } } + if (flag) { var sum = 0; @@ -4159,6 +4360,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) { sum += eater.Value; } + foreach (var x in edPlayers) { if (this.Eaterworld.TryGetValue(x.Account, out var value)) @@ -4171,9 +4373,9 @@ private void OnNPCKilled(NpcKilledEventArgs args) point = (int) (1250f * value / sum); if (point < 0 || point >= int.MaxValue) { - TShock.Log.Error("错误的点数:" + point); - TSPlayer.All.SendInfoMessage("错误的点数:" + point); + TShock.Log.ConsoleError(GetString("错误的点数:") + point); } + x.point += point >= 0 && point < int.MaxValue ? point : 1; } @@ -4194,7 +4396,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) this.SendAllText(temp[0], "kill + 1", Color.White, Color.Gray, args.npc.Center - (Vector2.UnitY * 10)); } - NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index, -1); + NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index); if (!x.hidePointTips && config.EnablePointTracking) { this.SendAllText(temp[0], $"+ {point} $", new Color(255, 100, 255), new Color(150, 75, 150), temp[0].TPlayer.Center); @@ -4202,6 +4404,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (config.EnableBossDamageLeaderboard) { this.SendKillBossMessage(args.npc.FullName, this.Eaterworld, sum); @@ -4212,8 +4415,8 @@ private void OnNPCKilled(NpcKilledEventArgs args) return; } } - break; - case 492://荷兰飞船的处理,特殊点:本体不可被击中,在其他炮塔全死亡后计入击杀 + break; + case 492: //荷兰飞船的处理,特殊点:本体不可被击中,在其他炮塔全死亡后计入击杀 { var flag = true; var index = -1; @@ -4223,11 +4426,13 @@ private void OnNPCKilled(NpcKilledEventArgs args) { flag = false; } + if (n.netID == 491) { index = n.whoAmI; } } + if (index >= 0) { var st = strikeNPC.Find(x => x.id == 491); @@ -4252,6 +4457,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (flag) { var airship = strikeNPC.Find(x => x.id == 491); @@ -4260,6 +4466,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) strikeNPC.RemoveAll(x => x.id == 491 || x.id == 492 || x.id != Main.npc[x.index].netID || !Main.npc[x.index].active); return; } + foreach (var x in edPlayers) { if (airship.playerAndDamage.TryGetValue(x.Account, out var value)) @@ -4272,9 +4479,9 @@ private void OnNPCKilled(NpcKilledEventArgs args) point = (int) (airship.value * value / airship.AllDamage / 100); if (point < 0 || point >= int.MaxValue) { - TShock.Log.Error("错误的点数:" + point); - TSPlayer.All.SendInfoMessage("错误的点数:" + point); + TShock.Log.ConsoleError(GetString("错误的点数:") + point); } + x.point += point >= 0 && point < int.MaxValue ? point : 1; } @@ -4295,7 +4502,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) this.SendAllText(temp[0], "kill + 1", Color.White, Color.Gray, args.npc.Center - (Vector2.UnitY * 10)); } - NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index, -1); + NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index); if (!x.hidePointTips && config.EnablePointTracking) { this.SendAllText(temp[0], $"+ {point} $", new Color(255, 100, 255), new Color(150, 75, 150), temp[0].TPlayer.Center); @@ -4303,6 +4510,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (config.EnableBossDamageLeaderboard) { this.SendKillBossMessage(airship.name, airship.playerAndDamage, airship.AllDamage); @@ -4312,8 +4520,8 @@ private void OnNPCKilled(NpcKilledEventArgs args) return; } } - break; - case 398://月球领主的处理,特殊点,本体可被击中,但肢体会假死,击中肢体也应该算入本体中 + break; + case 398: //月球领主的处理,特殊点,本体可被击中,但肢体会假死,击中肢体也应该算入本体中 { var strikenpcs = strikeNPC.FindAll(x => x.id == 397 || x.id == 396); if (strikenpcs.Count > 0) @@ -4335,6 +4543,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + foreach (var x in edPlayers) { if (strikeNPC[i].playerAndDamage.TryGetValue(x.Account, out var value)) @@ -4347,9 +4556,9 @@ private void OnNPCKilled(NpcKilledEventArgs args) point = (int) (value * 1f / strikeNPC[i].AllDamage * strikeNPC[i].value / 100); if (point < 0 || point >= int.MaxValue) { - TShock.Log.Error("错误的点数:" + point); - TSPlayer.All.SendInfoMessage("错误的点数:" + point); + TShock.Log.ConsoleError(GetString("错误的点数:") + point); } + x.point += point >= 0 && point < int.MaxValue ? point : 1; } @@ -4370,7 +4579,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) this.SendAllText(temp[0], "kill + 1", Color.White, Color.Gray, args.npc.Center - (Vector2.UnitY * 10)); } - NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index, -1); + NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index); if (!x.hidePointTips && config.EnablePointTracking) { this.SendAllText(temp[0], $"+ {point} $", new Color(255, 100, 255), new Color(150, 75, 150), temp[0].TPlayer.Center); @@ -4378,15 +4587,16 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (config.EnableBossDamageLeaderboard) { - this.SendKillBossMessage("月亮领主", strikeNPC[i].playerAndDamage, strikeNPC[i].AllDamage); + this.SendKillBossMessage(GetString("月亮领主"), strikeNPC[i].playerAndDamage, strikeNPC[i].AllDamage); } strikeNPC.RemoveAll(x => x.id == 398 || x.id == 397 || x.id == 396 || x.id != Main.npc[x.index].netID || !Main.npc[x.index].active); return; } - case 127://机械骷髅王的处理,特殊点,本体可能被击中,其他肢体可能会死 + case 127: //机械骷髅王的处理,特殊点,本体可能被击中,其他肢体可能会死 case 128: case 129: case 130: @@ -4403,15 +4613,17 @@ private void OnNPCKilled(NpcKilledEventArgs args) index = n.whoAmI; } } - if (index == -1)//我认为不可能发生这种情况 + + if (index == -1) //我认为不可能发生这种情况 { strikeNPC.RemoveAll(x => x.id == 127 || x.id == 128 || x.id == 129 || x.id == 130 || x.id == 131 || x.id != Main.npc[x.index].netID || !Main.npc[x.index].active); return; } + strike = new StrikeNPC(index, 127, Main.npc[index].FullName, true, strikeNPC[i].playerAndDamage, strikeNPC[i].AllDamage, 300000); strikeNPC.Add(strike); } - else if (strikeNPC[i].id != 127)//把肢体受伤计算加入到本体头部中 + else if (strikeNPC[i].id != 127) //把肢体受伤计算加入到本体头部中 { foreach (var v in strikeNPC[i].playerAndDamage) { @@ -4427,6 +4639,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (strikeNPC[i].id == 127) { foreach (var x in edPlayers) @@ -4441,9 +4654,9 @@ private void OnNPCKilled(NpcKilledEventArgs args) point = (int) (value * 1.0f / strikeNPC[i].AllDamage * strikeNPC[i].value / 100); if (point < 0 || point >= int.MaxValue) { - TShock.Log.Error("错误的点数:" + point); - TSPlayer.All.SendInfoMessage("错误的点数:" + point); + TShock.Log.ConsoleError(GetString("错误的点数:") + point); } + x.point += point >= 0 && point < int.MaxValue ? point : 1; } @@ -4464,7 +4677,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) this.SendAllText(temp[0], "kill + 1", Color.White, Color.Gray, args.npc.Center - (Vector2.UnitY * 10)); } - NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index, -1); + NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index); if (!x.hidePointTips && config.EnablePointTracking) { this.SendAllText(temp[0], $"+ {point} $", new Color(255, 100, 255), new Color(150, 75, 150), temp[0].TPlayer.Center); @@ -4472,6 +4685,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (config.EnableBossDamageLeaderboard) { this.SendKillBossMessage(args.npc.FullName, strikeNPC[i].playerAndDamage, strikeNPC[i].AllDamage); @@ -4481,8 +4695,8 @@ private void OnNPCKilled(NpcKilledEventArgs args) return; } } - break; - case 245://石巨人的特殊处理 + break; + case 245: //石巨人的特殊处理 case 246: case 247: case 248: @@ -4498,15 +4712,17 @@ private void OnNPCKilled(NpcKilledEventArgs args) index = n.whoAmI; } } - if (index == -1)//不可能发生这种情况 + + if (index == -1) //不可能发生这种情况 { strikeNPC.RemoveAll(x => x.id == 245 || x.id == 246 || x.id == 247 || x.id == 248 || x.id != Main.npc[x.index].netID || !Main.npc[x.index].active); return; } + strike = new StrikeNPC(index, 245, Main.npc[index].FullName, true, strikeNPC[i].playerAndDamage, strikeNPC[i].AllDamage, 400000); strikeNPC.Add(strike); } - else if (strikeNPC[i].id != 245)//把除了本体以外的肢体的伤害计算加到本体上 + else if (strikeNPC[i].id != 245) //把除了本体以外的肢体的伤害计算加到本体上 { foreach (var v in strikeNPC[i].playerAndDamage) { @@ -4522,6 +4738,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (strikeNPC[i].id == 245) { foreach (var x in edPlayers) @@ -4536,9 +4753,9 @@ private void OnNPCKilled(NpcKilledEventArgs args) point = (int) (value * 1.0f / strikeNPC[i].AllDamage * strikeNPC[i].value / 100); if (point < 0 || point >= int.MaxValue) { - TShock.Log.Error("错误的点数:" + point); - TSPlayer.All.SendInfoMessage("错误的点数:" + point); + TShock.Log.ConsoleError(GetString("错误的点数:") + point); } + x.point += point >= 0 && point < int.MaxValue ? point : 1; } @@ -4559,7 +4776,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) this.SendAllText(temp[0], "kill + 1", Color.White, Color.Gray, args.npc.Center - (Vector2.UnitY * 10)); } - NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index, -1); + NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index); if (!x.hidePointTips && config.EnablePointTracking) { this.SendAllText(temp[0], $"+ {point} $", new Color(255, 100, 255), new Color(150, 75, 150), temp[0].TPlayer.Center); @@ -4567,6 +4784,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (config.EnableBossDamageLeaderboard) { this.SendKillBossMessage(args.npc.FullName, strikeNPC[i].playerAndDamage, strikeNPC[i].AllDamage); @@ -4576,8 +4794,8 @@ private void OnNPCKilled(NpcKilledEventArgs args) return; } } - break; - case 266://克苏鲁之脑的特殊处理 + break; + case 266: //克苏鲁之脑的特殊处理 case 267: { var strike = strikeNPC.Find(x => x.id == 266); @@ -4591,15 +4809,17 @@ private void OnNPCKilled(NpcKilledEventArgs args) index = n.whoAmI; } } - if (index == -1)//不可能发生这种情况 + + if (index == -1) //不可能发生这种情况 { strikeNPC.RemoveAll(x => x.id == 266 || x.id == 267 || x.id != Main.npc[x.index].netID || !Main.npc[x.index].active); return; } + strike = new StrikeNPC(index, 266, Main.npc[index].FullName, true, strikeNPC[i].playerAndDamage, strikeNPC[i].AllDamage, 125000); strikeNPC.Add(strike); } - else if (strikeNPC[i].id != 266)//把除了本体以外的飞眼怪的伤害计算加到本体上 + else if (strikeNPC[i].id != 266) //把除了本体以外的飞眼怪的伤害计算加到本体上 { foreach (var v in strikeNPC[i].playerAndDamage) { @@ -4615,6 +4835,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (strikeNPC[i].id == 266) { foreach (var x in edPlayers) @@ -4629,9 +4850,9 @@ private void OnNPCKilled(NpcKilledEventArgs args) point = (int) (value * 1.0f / strikeNPC[i].AllDamage * strikeNPC[i].value / 100); if (point < 0 || point >= int.MaxValue) { - TShock.Log.Error("错误的点数:" + point); - TSPlayer.All.SendInfoMessage("错误的点数:" + point); + TShock.Log.ConsoleError(GetString("错误的点数:") + point); } + x.point += point >= 0 && point < int.MaxValue ? point : 1; } @@ -4652,7 +4873,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) this.SendAllText(temp[0], "kill + 1", Color.White, Color.Gray, args.npc.Center - (Vector2.UnitY * 10)); } - NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index, -1); + NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index); if (!x.hidePointTips && config.EnablePointTracking) { this.SendAllText(temp[0], $"+ {point} $", new Color(255, 100, 255), new Color(150, 75, 150), temp[0].TPlayer.Center); @@ -4660,6 +4881,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (config.EnableBossDamageLeaderboard) { this.SendKillBossMessage(args.npc.FullName, strikeNPC[i].playerAndDamage, strikeNPC[i].AllDamage); @@ -4669,7 +4891,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) return; } } - break; + break; default: { foreach (var x in edPlayers) @@ -4694,9 +4916,9 @@ private void OnNPCKilled(NpcKilledEventArgs args) if (point < 0 || point >= int.MaxValue) { - TShock.Log.Error("错误的点数:" + point); - TSPlayer.All.SendInfoMessage("错误的点数:" + point); + TShock.Log.ConsoleError(GetString("错误的点数:") + point); } + x.point += point >= 0 && point < int.MaxValue ? point : 1; } @@ -4712,7 +4934,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } - if (args.npc.rarity > 0 || config.CreaturesTreatedAsRareForKills.Count > 0 && config.CreaturesTreatedAsRareForKills.Contains(args.npc.netID)) + if (args.npc.rarity > 0 || (config.CreaturesTreatedAsRareForKills.Count > 0 && config.CreaturesTreatedAsRareForKills.Contains(args.npc.netID))) { if (x.killRareNPCID.ContainsKey(strikeNPC[i].id)) { @@ -4742,9 +4964,10 @@ private void OnNPCKilled(NpcKilledEventArgs args) this.SendAllText(temp[0], "kill + 1", Color.White, Color.Gray, args.npc.Center - (Vector2.UnitY * 10)); } } + if (strikeNPC[i].isBoss) { - NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index, -1); + NetMessage.PlayNetSound(new NetMessage.NetSoundInfo(temp[0].TPlayer.Center, 4), temp[0].Index); } if (!x.hidePointTips && config.EnablePointTracking) @@ -4754,16 +4977,19 @@ private void OnNPCKilled(NpcKilledEventArgs args) } } } + if (config.EnableBossDamageLeaderboard && (args.npc.boss || args.npc.netID == 551 || args.npc.netID == 125 || args.npc.netID == 126 || config.AdditionalCreaturesForDamageLeaderboard.Contains(args.npc.netID))) { this.SendKillBossMessage(args.npc.FullName, strikeNPC[i].playerAndDamage, strikeNPC[i].AllDamage); } + strikeNPC.RemoveAt(i); strikeNPC.RemoveAll(x => x.id != Main.npc[x.index].netID || !Main.npc[x.index].active); return; } } } + //清理因为意外导致的不正确的数据 if (i >= 0 && (strikeNPC[i].id != Main.npc[strikeNPC[i].index].netID || !Main.npc[strikeNPC[i].index].active)) { @@ -4775,7 +5001,7 @@ private void OnNPCKilled(NpcKilledEventArgs args) /// - /// 记录死亡事件 + /// 记录死亡事件 /// /// /// @@ -4792,6 +5018,7 @@ private void OnPlayerKilled(object? sender, GetDataHandlers.KillMeEventArgs e) { ext.deathCount++; } + if (config.EnablePointTracking && !avoid) { var temp = (long) (ext.point * 0.01f * config.PointsLossMultiplierOnDeath); @@ -4802,15 +5029,16 @@ private void OnPlayerKilled(object? sender, GetDataHandlers.KillMeEventArgs e) if (ext.point >= temp) { - e.Player.SendInfoMessage("您遗失了:" + temp + " 点数"); + e.Player.SendInfoMessage(GetString($"您遗失了:{temp} 点数")); ext.point -= temp; } else { - e.Player.SendInfoMessage("您遗失了:" + ext.point + " 点数,已扣完"); + e.Player.SendInfoMessage(GetString($"您遗失了:{ext.point} 点数,已扣完")); ext.point = 0; } } + if (config.AllowPlayerRespawnAtLastDeathPoint && !avoid) { ext.deadPos = e.Player.TPlayer.Center; @@ -4819,53 +5047,56 @@ private void OnPlayerKilled(object? sender, GetDataHandlers.KillMeEventArgs e) /// - /// 功能 + /// 功能 /// /// private void Function(CommandArgs args) { if (args.Parameters.Count > 0) { - args.Player.SendInfoMessage("输入 /zbpos 来返回上次死亡地点"); + args.Player.SendInfoMessage(GetString("输入 /zbpos 来返回上次死亡地点")); return; } + if (config.AllowPlayerRespawnAtLastDeathPoint) { if (!args.Player.IsLoggedIn) { - args.Player.SendInfoMessage("对象不正确,请检查您的状态,您是否为游戏内玩家?"); + args.Player.SendInfoMessage(GetString("对象不正确,请检查您的状态,您是否为游戏内玩家?")); return; } + var ex = edPlayers.Find(x => x.Name == args.Player.Name); if (ex == null) { - args.Player.SendInfoMessage("数据异常,请重试"); + args.Player.SendInfoMessage(GetString("数据异常,请重试")); } else if (ex.deadPos == Vector2.Zero) { - args.Player.SendInfoMessage("你没有上次死亡的地点"); + args.Player.SendInfoMessage(GetString("你没有上次死亡的地点")); } else if (ex.point >= config.RespawnCostPoints || !config.EnablePointTracking) { if (config.EnablePointTracking) { ex.point -= config.RespawnCostPoints > 0 ? config.RespawnCostPoints : 0; - TSPlayer.All.SendInfoMessage($"玩家 {args.Player.Name} 已传送到上次死亡地点" + (config.RespawnCostPoints > 0 ? $",消耗点数 {config.RespawnCostPoints}" : "")); + TSPlayer.All.SendInfoMessage($"玩家 {args.Player.Name} 已传送到上次死亡地点{(config.RespawnCostPoints > 0 ? GetString($",消耗点数 {config.RespawnCostPoints}") : "")}"); } else { - TSPlayer.All.SendInfoMessage($"玩家 {args.Player.Name} 已传送到上次死亡地点"); + TSPlayer.All.SendInfoMessage(GetString($"玩家 {args.Player.Name} 已传送到上次死亡地点")); } + args.Player.Teleport(ex.deadPos.X, ex.deadPos.Y); } else { - args.Player.SendInfoMessage("点数不足,无法回溯上次死亡地点"); + args.Player.SendInfoMessage(GetString("点数不足,无法回溯上次死亡地点")); } } else { - args.Player.SendInfoMessage("未被允许死亡回调传送,请在配置文件中修改"); + args.Player.SendInfoMessage(GetString("未被允许死亡回调传送,请在配置文件中修改")); } } @@ -4882,7 +5113,7 @@ private void FindItem(CommandArgs args) return; } - + using (QueryResult queryResult = TShock.DB.QueryReader("SELECT * FROM tsCharacter")) { if (queryResult.Read()) @@ -4899,13 +5130,13 @@ private void FindItem(CommandArgs args) playerData.extraSlot = new int?(queryResult.Get("extraSlot")); } } - + } */ /// - /// 重新加载配置 + /// 重新加载配置 /// /// private void OnReload(ReloadEventArgs e) @@ -4914,8 +5145,9 @@ private void OnReload(ReloadEventArgs e) if (config.MaxBackupsPerPlayer < 1) { config.MaxBackupsPerPlayer = 5; - e.Player.SendMessage("备份存档数目最小为 1 ,请不要输入无效值,已修改为默认 5", new Color(255, 0, 0)); + e.Player.SendMessage(GetString("备份存档数目最小为 1 ,请不要输入无效值,已修改为默认 5"), new Color(255, 0, 0)); } + config.SaveConfigFile(); } } \ No newline at end of file diff --git a/src/ZHIPlayerManager/ZHIPM.Utils.cs b/src/ZHIPlayerManager/ZHIPM.Utils.cs index 0887d216..c84f45d7 100644 --- a/src/ZHIPlayerManager/ZHIPM.Utils.cs +++ b/src/ZHIPlayerManager/ZHIPM.Utils.cs @@ -494,8 +494,7 @@ public bool UpdateTshockDBCharac(int accid, PlayerData pd) } catch (Exception ex) { - TShock.Log.Error("错误:UpdateTshockDBCharac " + ex.ToString()); - Console.WriteLine("错误:UpdateTshockDBCharac " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:UpdateTshockDBCharac ") + ex); return false; } } @@ -633,8 +632,7 @@ public bool ResetPlayer(TSPlayer p) } catch (Exception ex) { - TShock.Log.Error("错误 ResetPlayer :" + ex.ToString()); - Console.WriteLine("错误 ResetPlayer :" + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误 ResetPlayer :" )+ ex.ToString()); return false; } } @@ -801,7 +799,7 @@ public void MySSCBack2(CommandArgs args, int slot) var list = this.BestFindPlayerByNameOrIndex(args.Parameters[0]); if (list.Count > 1) { - var names = "检测到符合该条件的玩家数目不唯一,请重新输入\n包含:"; + var names = GetString("检测到符合该条件的玩家数目不唯一,请重新输入\n包含:"); foreach (var v in list) { names += v.Name + ", "; @@ -824,7 +822,7 @@ public void MySSCBack2(CommandArgs args, int slot) var playerData = TShock.CharacterDB.GetPlayerData(new TSPlayer(-1), user.ID); if (playerData == null || !playerData.exists) { - args.Player.SendInfoMessage("未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入"); + args.Player.SendInfoMessage(GetString("未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入")); } else { @@ -833,25 +831,23 @@ public void MySSCBack2(CommandArgs args, int slot) var playerData2 = ZPDataBase.ReadZPlayerDB(new TSPlayer(-1), user.ID, slot); if (playerData2 == null || !playerData2.exists) { - args.Player.SendMessage("回档失败!未找到 [" + user.ID + "-" + slot + "] 号该备份", new Color(255, 0, 0)); + args.Player.SendMessage(GetString($"回档失败!未找到 [{user.ID} - {slot}] 号该备份"), new Color(255, 0, 0)); } else { if (this.UpdateTshockDBCharac(user.ID, playerData2)) { - args.Player.SendMessage($"玩家 [{user.Name}] 回档成功!启用备份 [ {user.ID.ToString() + "-" + slot} ]", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{user.Name}] 回档成功!启用备份 [ {user.ID.ToString() + "-" + slot} ]"), new Color(0, 255, 0)); } else { - args.Player.SendMessage("回档失败!", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("回档失败!"), new Color(255, 0, 0)); } } } catch (Exception ex) { - TShock.Log.Error("错误:BackUp " + ex.ToString()); - args.Player.SendErrorMessage("错误:BackUp " + ex.ToString()); - Console.WriteLine("错误:BackUp " + ex.ToString()); + TShock.Log.ConsoleError(GetString("错误:BackUp ") + ex); } } } @@ -865,12 +861,12 @@ public void MySSCBack2(CommandArgs args, int slot) { if (args.Player.Index != list[0].Index) { - args.Player.SendMessage($"玩家 [{list[0].Name}] 回档成功!启用备份 [ {list[0].Account.ID + "-" + slot} ]", new Color(0, 255, 0)); - list[0].SendMessage("您已回档成功!", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{list[0].Name}] 回档成功!启用备份 [ {list[0].Account.ID + "-" + slot} ]"), new Color(0, 255, 0)); + list[0].SendMessage(GetString("您已回档成功!"), new Color(0, 255, 0)); } else { - args.Player.SendMessage($"玩家 [{list[0].Name}] 回档成功!启用备份 [ {list[0].Account.ID + "-" + slot} ]", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{list[0].Name}] 回档成功!启用备份 [ {list[0].Account.ID + "-" + slot} ]"), new Color(0, 255, 0)); } } //如果他是管理,那就不用向原版数据写入了 @@ -878,17 +874,17 @@ public void MySSCBack2(CommandArgs args, int slot) { if (args.Player.Index != list[0].Index) { - args.Player.SendMessage($"玩家 [{list[0].Name}] 回档成功!启用备份 [ {list[0].Account.ID + "-" + slot} ]", new Color(0, 255, 0)); - list[0].SendMessage("您已回档成功!", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{list[0].Name}] 回档成功!启用备份 [ {list[0].Account.ID + "-" + slot} ]"), new Color(0, 255, 0)); + list[0].SendMessage(GetString("您已回档成功!"), new Color(0, 255, 0)); } else { - args.Player.SendMessage($"玩家 [{list[0].Name}] 回档成功!启用备份 [ {list[0].Account.ID + "-" + slot} ]", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"玩家 [{list[0].Name}] 回档成功!启用备份 [ {list[0].Account.ID + "-" + slot} ]"), new Color(0, 255, 0)); } } else { - args.Player.SendMessage("回档失败!未备份数据或该玩家未登录", new Color(255, 0, 0)); + args.Player.SendMessage(GetString("回档失败!未备份数据或该玩家未登录"), new Color(255, 0, 0)); } } } @@ -909,7 +905,7 @@ public string timetostring(long t) h = min / 60L; min %= 60L; } - return $"{h}小时 {min}分钟 {s}秒"; + return GetString($"{h}小时 {min}分钟 {s}秒"); } @@ -929,8 +925,8 @@ public string cointostring(long coin, int Model = 0) coin /= 100; var platinum = coin; //74 return Model == 0 - ? $"{platinum}[i:74] {gold}[i:73] {silver}[i:72] {copper}[i:71]" - : $"{platinum}铂金币 {gold}金币 {silver}银币 {copper}铜币"; + ? GetString($"{platinum}[i:74] {gold}[i:73] {silver}[i:72] {copper}[i:71]") + : GetString($"{platinum}铂金币 {gold}金币 {silver}银币 {copper}铜币"); } @@ -998,10 +994,10 @@ public static string DictionaryToVSString(Dictionary keyValues, bool i switch (v.Key)//处理一下特殊npc { case 592: - sb.Append($"蹦跶{Lang.GetNPCNameValue(v.Key)}({v.Value}),"); + sb.Append(GetString($"蹦跶{Lang.GetNPCNameValue(v.Key)}({v.Value}),")); break; case 593: - sb.Append($"游雨{Lang.GetNPCNameValue(v.Key)}({v.Value}),"); + sb.Append(GetString($"游雨{Lang.GetNPCNameValue(v.Key)}({v.Value}),")); break; case 564: sb.Append($"T1{Lang.GetNPCNameValue(v.Key)}({v.Value}),"); @@ -1016,7 +1012,7 @@ public static string DictionaryToVSString(Dictionary keyValues, bool i sb.Append($"T3{Lang.GetNPCNameValue(v.Key)}({v.Value}),"); break; case 398: - sb.Append("月亮领主(" + v.Value + ")"); + sb.Append(GetString("月亮领主(" + v.Value + ")")); break; default: sb.Append($"{Lang.GetNPCNameValue(v.Key)}({v.Value}),"); @@ -1112,10 +1108,8 @@ public bool ExportPlayer(Player? player, long time = 0L) } catch (Exception ex) { - TShock.Log.Error("错误:ExportPlayer " + ex.ToString()); - TShock.Log.Error("路径:" + playerFileData.Path + " 名字:" + text); - Console.WriteLine("错误:ExportPlayer " + ex.ToString()); - Console.WriteLine("路径:" + playerFileData.Path + " 名字:" + text); + TShock.Log.ConsoleError(GetString("错误:ExportPlayer ") + ex.ToString()); + TShock.Log.ConsoleError(GetString("路径:") + playerFileData.Path + GetString(" 名字:") + text); return false; } } @@ -1534,8 +1528,7 @@ public bool ExportPlayer(Player? player, long time = 0L) } catch (Exception ex) { - TShock.Log.Info("正常的意外因玩家 [ " + name + " ] 数据残缺而导出人物失败 CreateAPlayer"); - Console.WriteLine("正常的意外因玩家 [ " + name + " ] 数据残缺而导出人物失败 CreateAPlayer"); + TShock.Log.ConsoleError(GetString($"正常的意外因玩家 [ {name} ] 数据残缺而导出人物失败 CreateAPlayer")); return null; } } @@ -1714,7 +1707,7 @@ public void SendKillBossMessage(string BossName, Dictionary playerAndD var sb = new StringBuilder(); var sortpairs = new Dictionary(); - sb.AppendLine($"共有 [c/74F3C9:{playerAndDamage.Count}] 位玩家击败了 [c/74F3C9:{BossName}]"); + sb.AppendLine(GetString($"共有 [c/74F3C9:{playerAndDamage.Count}] 位玩家击败了 [c/74F3C9:{BossName}]")); //简单的排个序 while (playerAndDamage.Count > 0) { @@ -1737,7 +1730,7 @@ public void SendKillBossMessage(string BossName, Dictionary playerAndD foreach (var v in sortpairs) { - sb.AppendLine($"{TShock.UserAccounts.GetUserAccountByID(v.Key).Name} 伤害: [c/74F3C9:{v.Value}] 比重: {v.Value * 1.0f / alldamage:0.00%} "); + sb.AppendLine(GetString($"{TShock.UserAccounts.GetUserAccountByID(v.Key).Name} 伤害: [c/74F3C9:{v.Value}] 比重: {v.Value * 1.0f / alldamage:0.00%} ")); } TSPlayer.All.SendMessage(sb.ToString(), Color.Bisque); } diff --git a/src/ZHIPlayerManager/ZHIPM.cs b/src/ZHIPlayerManager/ZHIPM.cs index 46da5847..cd7ca22e 100644 --- a/src/ZHIPlayerManager/ZHIPM.cs +++ b/src/ZHIPlayerManager/ZHIPM.cs @@ -15,7 +15,7 @@ public partial class ZHIPM : TerrariaPlugin public override string Name => "ZHIPlayerManager"; - public override Version Version => new Version(1, 0, 0, 6); + public override Version Version => new Version(1, 0, 0, 7); #region 字段或属性 /// @@ -59,9 +59,9 @@ public static long Timer /// public static List strikeNPC = new List(); - public readonly string noplayer = "该玩家不存在,请重新输入"; - public readonly string manyplayer = "该玩家不唯一,请重新输入"; - public readonly string offlineplayer = "该玩家不在线,正在查询离线数据"; + public readonly string noplayer = GetString("该玩家不存在,请重新输入"); + public readonly string manyplayer = GetString("该玩家不唯一,请重新输入"); + public readonly string offlineplayer = GetString("该玩家不在线,正在查询离线数据"); public static ZhipmConfig config = new ZhipmConfig(); @@ -86,7 +86,7 @@ public override void Initialize() { if (!TShock.ServerSideCharacterConfig.Settings.Enabled) { - Console.WriteLine("该插件需要开启SSC才能使用"); + Console.WriteLine(GetString("该插件需要开启SSC才能使用")); return; } Timer = 0L; From 5b3cae7460a30ae8d373aeb20a61d08a585f80fb Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 10:37:24 +0800 Subject: [PATCH 03/18] =?UTF-8?q?=E7=BF=BB=E8=AF=91:=20=E6=B7=BB=E5=8A=A0A?= =?UTF-8?q?utoReset=E7=BF=BB=E8=AF=91,=E4=BF=AE=E6=AD=A3VeinMiner=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=20=E6=9B=B4=E6=96=B0:=20AutoReset=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=BB=85=E9=87=8D=E7=BD=AE=E6=95=B0=E6=8D=AE=E8=80=8C=E4=B8=8D?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=9C=B0=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AutoReset/AutoResetPlugin.cs | 60 +++++++++++++++--------------- src/AutoReset/README.md | 13 ++++--- src/AutoReset/README_EN.md | 52 ++++++++++++++++++++++++++ src/AutoReset/Utils.cs | 2 +- src/VeinMiner/README_EN.md | 9 ++--- src/VeinMiner/i18n/en-US.po | 64 ++++++++++++++++---------------- src/VeinMiner/i18n/template.pot | 44 +++++++++++----------- 7 files changed, 149 insertions(+), 95 deletions(-) create mode 100644 src/AutoReset/README_EN.md diff --git a/src/AutoReset/AutoResetPlugin.cs b/src/AutoReset/AutoResetPlugin.cs index 37a022b9..b7cc1a1a 100644 --- a/src/AutoReset/AutoResetPlugin.cs +++ b/src/AutoReset/AutoResetPlugin.cs @@ -32,7 +32,7 @@ public AutoResetPlugin(Main game) : base(game) public override string Name => "AutoReset"; - public override Version Version => new(2024, 8, 25); + public override Version Version => new(2024, 9, 1); public override string Author => "cc04 & Leader & 棱镜 & Cai & 肝帝熙恩"; @@ -42,8 +42,8 @@ public override void Initialize() { this.LoadConfig(); Commands.ChatCommands.Add(new Command("reset.admin", this.ResetCmd, "reset", "重置世界")); + Commands.ChatCommands.Add(new Command("reset.admin", this.ResetDataCmd, "resetdata", "重置数据")); Commands.ChatCommands.Add(new Command("", this.OnWho, "who", "playing", "online")); - Commands.ChatCommands.Add(new Command("reset.admin", this.ResetSetting, "rs", "重置设置")); ServerApi.Hooks.ServerJoin.Register(this, this.OnServerJoin, int.MaxValue); ServerApi.Hooks.WorldSave.Register(this, this.OnWorldSave, int.MaxValue); @@ -52,6 +52,12 @@ public override void Initialize() ; } + private void ResetDataCmd(CommandArgs args) + { + this.PostReset(); + TSPlayer.All.SendSuccessMessage(GetString("[AutoReset]服务器数据重置成功~")); + } + protected override void Dispose(bool disposing) { if (disposing) @@ -89,7 +95,7 @@ private void ReloadConfig(ReloadEventArgs e) File.WriteAllText(this._configPath, Config.ToJson()); } - e.Player.SendSuccessMessage("[AutoReset]自动重置插件配置已重载"); + e.Player.SendSuccessMessage(GetString("[AutoReset]自动重置插件配置已重载")); } private void LoadConfig() @@ -138,12 +144,12 @@ private void OnWho(CommandArgs args) if (args.Player.RealPlayer) { args.Player.SendInfoMessage( - $"[i:3611]击杀自动重置:{Lang.GetNPCName(Config.KillToReset.NpcId)}({Config.KillToReset.KillCount}/{Config.KillToReset.NeedKillCount})"); + GetString($"[i:3611]击杀自动重置:{Lang.GetNPCName(Config.KillToReset.NpcId)}({Config.KillToReset.KillCount}/{Config.KillToReset.NeedKillCount})")); } else { args.Player.SendInfoMessage( - $"📝击杀自动重置:{Lang.GetNPCName(Config.KillToReset.NpcId)}({Config.KillToReset.KillCount}/{Config.KillToReset.NeedKillCount})"); + GetString($"📝击杀自动重置:{Lang.GetNPCName(Config.KillToReset.NpcId)}({Config.KillToReset.KillCount}/{Config.KillToReset.NeedKillCount})")); } } @@ -151,10 +157,10 @@ private void OnWho(CommandArgs args) switch (status) { case Status.Cleaning: - args.Player.SendInfoMessage("重置数据中, 请稍后..."); + args.Player.SendInfoMessage(GetString("重置数据中, 请稍后...")); break; case Status.Generating: - args.Player.SendInfoMessage("生成地图中: " + this.GetProgress()); + args.Player.SendInfoMessage(GetString("生成地图中: ") + this.GetProgress()); break; case Status.Available: break; @@ -170,7 +176,7 @@ private void CountKill(NpcKilledEventArgs args) File.WriteAllText(this._configPath, Config.ToJson()); TShock.Utils.Broadcast( string.Format( - $"[自动重置]服务器中已经击杀{Lang.GetNPCName(Config.KillToReset.NpcId)}{Config.KillToReset.KillCount}/{Config.KillToReset.NeedKillCount}"), + GetString($"[AutoReset]服务器中已经击杀{Lang.GetNPCName(Config.KillToReset.NpcId)}{Config.KillToReset.KillCount}/{Config.KillToReset.NeedKillCount}")), Color.Orange); if (Config.KillToReset.NeedKillCount <= Config.KillToReset.KillCount) { @@ -189,16 +195,16 @@ private void ResetCmd(CommandArgs e) Task.Run(delegate { this._status = Status.Cleaning; - TShock.Utils.Broadcast("[自动重置]服务器即将开始重置...", Color.Orange); + TShock.Utils.Broadcast(GetString("[AutoReset]服务器即将开始重置..."), Color.Orange); for (var i = 60; i >= 0; i--) { - TShock.Utils.Broadcast(string.Format("[自动重置]{0}s后关闭服务器...", i), Color.Orange); + TShock.Utils.Broadcast(string.Format(GetString("[AutoReset]{0}s后关闭服务器..."), i), Color.Orange); Thread.Sleep(1000); } TShock.Players.ForEach(delegate (TSPlayer? p) { - p?.Kick("[自动重置]服务器已开始重置...", true, true); + p?.Kick(GetString("[AutoReset]服务器已开始重置..."), true, true); }); @@ -280,20 +286,16 @@ void ShowHelpText() List lines = new() { "/rs info", - "/rs name <地图名>", - "/rs seed <种子>", - "或", - "/rs 信息", - "/rs 名字 <地图名>", - "/rs 种子 <种子>" + GetString("/rs name <地图名>"), + GetString("/rs seed <种子>"), }; PaginationTools.SendPage( op, pageNumber, lines, new PaginationTools.Settings { - HeaderFormat = "帮助 ({0}/{1}):", - FooterFormat = "输入 {0}rs help {{0}} 查看更多".SFormat(Commands.Specifier) + HeaderFormat = GetString("帮助 ({0}/{1}):"), + FooterFormat = GetString("输入 {0}rs help {{0}} 查看更多").SFormat(Commands.Specifier) } ); } @@ -319,8 +321,8 @@ void ShowHelpText() // 世界信息 case "信息": case "info": - op.SendInfoMessage($"地图名: {(Config.SetWorld.Name ?? Main.worldName)}\n" + - $"种子: {(Config.SetWorld.Seed ?? "随机")}"); + op.SendInfoMessage(GetString($"地图名: {(Config.SetWorld.Name ?? Main.worldName)}\n") + + GetString($"种子: {(Config.SetWorld.Seed ?? GetString("随机"))}")); break; case "名字": case "name": @@ -328,13 +330,13 @@ void ShowHelpText() { Config.SetWorld.Name = null; File.WriteAllText(this._configPath, Config.ToJson()); - op.SendSuccessMessage("世界名字已设置为跟随原世界"); + op.SendSuccessMessage(GetString("世界名字已设置为跟随原世界")); } else { Config.SetWorld.Name = args.Parameters[1]; File.WriteAllText(this._configPath, Config.ToJson()); - op.SendSuccessMessage("世界名字已设置为 " + args.Parameters[1]); + op.SendSuccessMessage(GetString("世界名字已设置为 ") + args.Parameters[1]); } break; @@ -344,7 +346,7 @@ void ShowHelpText() { Config.SetWorld.Seed = null; File.WriteAllText(this._configPath, Config.ToJson()); - op.SendSuccessMessage("世界种子已设为随机"); + op.SendSuccessMessage(GetString("世界种子已设为随机")); } else { @@ -363,7 +365,7 @@ void ShowHelpText() Config.SetWorld.Seed = string.Join(" ", seedParts); File.WriteAllText(this._configPath, Config.ToJson()); - op.SendSuccessMessage("世界种子已设置为:" + Config.SetWorld.Seed); + op.SendSuccessMessage(GetString("世界种子已设置为:") + Config.SetWorld.Seed); } break; @@ -380,7 +382,7 @@ private void PostReset() } catch (Exception ex) { - TShock.Log.ConsoleWarn($"[AutoReset]重置SQL({c})执行失败: {ex.Message}"); + TShock.Log.ConsoleWarn(GetString($"[AutoReset]重置SQL({c})执行失败: {ex.Message}")); } }); foreach (var keyValuePair in Config.Files!) @@ -399,7 +401,7 @@ private void PostReset() } catch (Exception ex) { - TShock.Log.ConsoleWarn($"[AutoReset]重置文件({keyValuePair.Key})替换失败: {ex.Message}"); + TShock.Log.ConsoleWarn(GetString($"[AutoReset]重置文件({keyValuePair.Key})替换失败: {ex.Message}")); } } @@ -420,11 +422,11 @@ private void OnServerJoin(JoinEventArgs args) switch (status) { case Status.Cleaning: - plr.Disconnect("[AutoReset]重置数据中,请稍后..."); + plr.Disconnect(GetString("[AutoReset]重置数据中,请稍后...")); args.Handled = true; break; case Status.Generating: - plr.Disconnect("[AutoReset]生成地图中:\n" + this.GetProgress()); + plr.Disconnect(GetString("[AutoReset]生成地图中:\n") + this.GetProgress()); args.Handled = true; break; case Status.Available: diff --git a/src/AutoReset/README.md b/src/AutoReset/README.md index 798e28fa..da86abae 100644 --- a/src/AutoReset/README.md +++ b/src/AutoReset/README.md @@ -7,18 +7,19 @@ ## 更新日志 ``` -v.2024.8.25 - +v.2024.9.1 +添加英文翻译,添加resetdata以重置数据不生成地图 v.2024.8.24 尝试完善卸载函数 ``` ## 指令 -| 语法 | 权限 | 说明 | -| -------------- | :-----------------: | :------: | -| /reset 或 /重置世界 | reset.admin | 重置世界| -| /rs 或 /重置设置 | reset.admin | 重置设置| +| 语法 | 权限 | 说明 | +|---------------------| :-----------------: |:----:| +| /reset 或 /重置世界 | reset.admin | 重置世界 | +| /resetdata 或 /重置数据 | reset.admin | 重置数据 | +| /rs 或 /重置设置 | reset.admin | 重置设置 | ## 文件位置 diff --git a/src/AutoReset/README_EN.md b/src/AutoReset/README_EN.md new file mode 100644 index 00000000..bbd1a784 --- /dev/null +++ b/src/AutoReset/README_EN.md @@ -0,0 +1,52 @@ +# AutoReset / OneKeyReset + +- Authors: cc04 & Leader & 棱镜 & Cai & 肝帝熙恩 +- Fully automatic reset plugin, fully customizable reset, freeing your hands. + +## Commands + +| Command | permission | Details | +|-------------| :-----------------: |:-----------------------------:| +| /reset | reset.admin | Generating map and reset data | +| /resetdata | reset.admin | Only reset data | +| /rs | reset.admin | Reset Setting | + + +## Config +> Configuration file location:tshock/AutoReset/reset_config.json +```json +{ + "替换文件": { //Replace Files + "/tshock/原神.json": "原神.json", // Replace /tshock/原神.json with 原神.json + "/tshock/XSB数据缓存.json": "" // Delete /tshock/XSB数据缓存.json + }, + "击杀重置": { // Kill to reset setting + "击杀重置开关": false, // Enable or disable the kill to reset feature + "已击杀次数": 0, // Current kill count + "生物ID": 50, // NPC ID of the creature to be killed + "需要击杀次数": 50 // Number of kills required to trigger the reset + }, + "重置后指令": [ // Commands to execute after reset + "/reload", // Reload the server + "/初始化进度补给箱", + "/rpg reset" + ], + "重置前指令": [ // Commands to execute before reset + "/结算金币" + ], + "重置后SQL命令": [ // SQL commands to execute after reset + "DELETE FROM tsCharacter" // Delete all characters from the tsCharacter table + ], + "地图预设": { // Map presets + "地图名": null, // Name of the map + "地图种子": null // Seed of the map + }, + "重置提醒": false, // Enable or disable CaiBot reset reminders (CaiBot is a QQ Group BOT) + "CaiBot服务器令牌": "西江超级可爱喵" // CaiBot server token +} +``` + +## FeedBack +- Github Issue -> TShockPlugin Repo: https://github.com/UnrealMultiple/TShockPlugin +- TShock QQ Group: 816771079 +- China Terraria Forum: trhub.cn, bbstr.net, tr.monika.love diff --git a/src/AutoReset/Utils.cs b/src/AutoReset/Utils.cs index 6fd0ac5e..29965ba9 100644 --- a/src/AutoReset/Utils.cs +++ b/src/AutoReset/Utils.cs @@ -22,7 +22,7 @@ public static void CallApi() .Result; if (response.StatusCode != HttpStatusCode.OK) { - TShock.Log.ConsoleWarn($"[自动重置]调用API失败! (状态码: {(int) response.StatusCode})"); + TShock.Log.ConsoleWarn(GetString($"[自动重置]调用API失败! (状态码: {(int) response.StatusCode})")); } } catch (Exception ex) diff --git a/src/VeinMiner/README_EN.md b/src/VeinMiner/README_EN.md index eaf971e2..f50d3df6 100644 --- a/src/VeinMiner/README_EN.md +++ b/src/VeinMiner/README_EN.md @@ -10,7 +10,7 @@ ## Commands -| Command | permission | 说明 | +| Command | permission | Details | |----------------|:----------:|:---------------------------------------:| | /vm | veinminer | Toggle vein mining | | /vm [Any agrs] | veinminer | Toggle vein mining notification message | @@ -78,8 +78,7 @@ } ``` - ## FeedBack -- Github Issue -> TShockPlugin Repo:https://github.com/UnrealMultiple/TShockPlugin -- TShock QQ Group:816771079 -- China Terraria Forum:trhub.cn ,bbstr.net , tr.monika.love +- Github Issue -> TShockPlugin Repo: https://github.com/UnrealMultiple/TShockPlugin +- TShock QQ Group: 816771079 +- China Terraria Forum: trhub.cn, bbstr.net, tr.monika.love diff --git a/src/VeinMiner/i18n/en-US.po b/src/VeinMiner/i18n/en-US.po index 25e03ba2..e68107ad 100644 --- a/src/VeinMiner/i18n/en-US.po +++ b/src/VeinMiner/i18n/en-US.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: VeinMiner\n" -"POT-Creation-Date: 2024-09-01 09:59:49+0800\n" +"POT-Creation-Date: 2024-09-01 10:12:09+0800\n" "PO-Revision-Date: 2024-08-31 19:55+0800\n" "Last-Translator: Cai\n" "Language-Team: UnrealMultiple\n" @@ -11,15 +11,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.5\n" -#: ..\..\VeinMiner.cs:151 -#, csharp-format -msgid "" -"[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:" -"{1}] ." -msgstr "" -"[c/95CFA6:] Inventory full, space needed: [c/95CFA6:{0}] to " -"insert [c/95CFA6:{1}] ." - #: ..\..\VeinMiner.cs:125 msgid "未知" msgstr "Unknown" @@ -34,36 +25,49 @@ msgstr "[c/95CFA6:] Mined [c/95CFA6: {0} {1} ]." msgid "[c/95CFA6: 挖矿消息已{0}]." msgstr "[c/95CFA6: Mining Status {0}.]" +#: ..\..\Config.cs:32 +msgid " 配置已重新加载。" +msgstr " Config reloaded." + #: ..\..\VeinMiner.cs:39 -msgid "关闭! | 要仅关闭挖矿消息提示请输入:/vm {任意参数}" -msgstr "Deactivated! | To turn off only mining status messages use: /vm msg" +#, csharp-format +msgid "[c/95CFA6: 已{0}.]" +msgstr "[c/95CFA6: {0} .]" -#: ..\..\VeinMiner.cs:34 -msgid "关闭" -msgstr "Deactivated" +#: ..\..\VeinMiner.cs:161 +#, csharp-format +msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." +msgstr "[c/95CFA6:] Mining [c/95CFA6: {0} {1} ]." #: ..\..\VeinMiner.cs:129 #, csharp-format msgid "[c/95CFA6:] 背包已满,还需空位:[c/95CFA6:{0}] ." msgstr "[c/95CFA6:] Inventory full, space needed: [c/95CFA6:{0}] ." -#: ..\..\VeinMiner.cs:34 ..\..\VeinMiner.cs:39 -msgid "开启" -msgstr "Activated" +#: ..\..\VeinMiner.cs:34 +msgid "关闭" +msgstr "Deactivated" -#: ..\..\Config.cs:32 -msgid " 配置已重新加载。" -msgstr " Config reloaded." +#: ..\..\VeinMiner.cs:39 +msgid "关闭! | 要仅关闭挖矿消息提示请输入:/vm {任意参数}" +msgstr "Deactivated! | To turn off only mining status messages use: /vm msg" -#: ..\..\VeinMiner.cs:161 +#: ..\..\VeinMiner.cs:151 #, csharp-format -msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." -msgstr "[c/95CFA6:] Mining [c/95CFA6: {0} {1} ]." +msgid "" +"[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:" +"{1}] ." +msgstr "" +"[c/95CFA6:] Inventory full, space needed: [c/95CFA6:{0}] to " +"insert [c/95CFA6:{1}] ." -#: ..\..\VeinMiner.cs:39 -#, csharp-format -msgid "[c/95CFA6: 已{0}.]" -msgstr "[c/95CFA6: {0} .]" +#: ..\..\Config.cs:38 +msgid " 读取配置文件失败。" +msgstr " Failed to read config file." + +#: ..\..\VeinMiner.cs:34 ..\..\VeinMiner.cs:39 +msgid "开启" +msgstr "Activated" #: ..\..\VeinMiner.cs:167 msgid "" @@ -71,7 +75,3 @@ msgid "" msgstr "" "[c/95CFA6:] Unable to mine ore, possibly because there is an " "indestructible object above the ore." - -#: ..\..\Config.cs:38 -msgid " 读取配置文件失败。" -msgstr " Failed to read config file." diff --git a/src/VeinMiner/i18n/template.pot b/src/VeinMiner/i18n/template.pot index 14e9f830..a7467b00 100644 --- a/src/VeinMiner/i18n/template.pot +++ b/src/VeinMiner/i18n/template.pot @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: VeinMiner\n" -"POT-Creation-Date: 2024-09-01 09:59:49+0800\n" -"PO-Revision-Date: 2024-09-01 09:59:50+0800\n" +"POT-Creation-Date: 2024-09-01 10:12:09+0800\n" +"PO-Revision-Date: 2024-09-01 10:12:09+0800\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -10,11 +10,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: GetText.NET Extractor\n" -#: ..\..\VeinMiner.cs:151 -#, csharp-format -msgid "[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:{1}] ." -msgstr "" - #: ..\..\VeinMiner.cs:125 msgid "未知" msgstr "" @@ -29,12 +24,18 @@ msgstr "" msgid "[c/95CFA6: 挖矿消息已{0}]." msgstr "" +#: ..\..\Config.cs:32 +msgid " 配置已重新加载。" +msgstr "" + #: ..\..\VeinMiner.cs:39 -msgid "关闭! | 要仅关闭挖矿消息提示请输入:/vm {任意参数}" +#, csharp-format +msgid "[c/95CFA6: 已{0}.]" msgstr "" -#: ..\..\VeinMiner.cs:34 -msgid "关闭" +#: ..\..\VeinMiner.cs:161 +#, csharp-format +msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." msgstr "" #: ..\..\VeinMiner.cs:129 @@ -43,29 +44,28 @@ msgid "[c/95CFA6:] 背包已满,还需空位:[c/95CFA6:{0}] ." msgstr "" #: ..\..\VeinMiner.cs:34 -#: ..\..\VeinMiner.cs:39 -msgid "开启" +msgid "关闭" msgstr "" -#: ..\..\Config.cs:32 -msgid " 配置已重新加载。" +#: ..\..\VeinMiner.cs:39 +msgid "关闭! | 要仅关闭挖矿消息提示请输入:/vm {任意参数}" msgstr "" -#: ..\..\VeinMiner.cs:161 +#: ..\..\VeinMiner.cs:151 #, csharp-format -msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." +msgid "[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:{1}] ." +msgstr "" + +#: ..\..\Config.cs:38 +msgid " 读取配置文件失败。" msgstr "" +#: ..\..\VeinMiner.cs:34 #: ..\..\VeinMiner.cs:39 -#, csharp-format -msgid "[c/95CFA6: 已{0}.]" +msgid "开启" msgstr "" #: ..\..\VeinMiner.cs:167 msgid "[c/95CFA6:] 无法挖取矿石,可能是因为矿石上方有不可破坏的物体." msgstr "" -#: ..\..\Config.cs:38 -msgid " 读取配置文件失败。" -msgstr "" - From b41f97c4457aee107e7f71f021975b285cef6bb3 Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 10:43:35 +0800 Subject: [PATCH 04/18] =?UTF-8?q?=E7=BF=BB=E8=AF=91:=20=E6=B7=BB=E5=8A=A0B?= =?UTF-8?q?ack=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Back/BackPlugin.cs | 16 ++++++++-------- src/Back/README.md | 2 ++ src/Back/README_EN.md | 24 ++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 src/Back/README_EN.md diff --git a/src/Back/BackPlugin.cs b/src/Back/BackPlugin.cs index 9c9ed904..55246a07 100644 --- a/src/Back/BackPlugin.cs +++ b/src/Back/BackPlugin.cs @@ -14,7 +14,7 @@ public class BackPlugin : TerrariaPlugin public override string Author => "Megghy,熙恩改"; public override string Description => "允许玩家传送回死亡地点"; public override string Name => "BackPlugin"; - public override Version Version => new Version(1, 0, 0, 4); + public override Version Version => new Version(1, 0, 0, 5); public static Configuration Config; public BackPlugin(Main game) : base(game) { @@ -29,7 +29,7 @@ private static void LoadConfig() private static void ReloadConfig(ReloadEventArgs args) { LoadConfig(); - args.Player?.SendSuccessMessage("[{0}] 重新加载配置完毕。", typeof(BackPlugin).Name); + args.Player?.SendSuccessMessage(GetString("[Back] 重新加载配置完毕。")); } public override void Initialize() { @@ -40,7 +40,7 @@ public override void Initialize() Commands.ChatCommands.Add(new Command("back", this.Back, "back") { - HelpText = "返回最后一次死亡的位置", + HelpText = GetString("返回最后一次死亡的位置"), AllowServer = false }); } @@ -74,32 +74,32 @@ private void Back(CommandArgs args) if (args.Player.TPlayer.dead) { - args.Player.SendErrorMessage("你尚未复活,无法传送回死亡地点."); + args.Player.SendErrorMessage(GetString("你尚未复活,无法传送回死亡地点.")); } else if (data != Point.Zero) { if (!this.CanUseCommand(args.Player)) { var remainingCooldown = this.GetRemainingCooldown(args.Player); - args.Player.SendErrorMessage($"你还需要等待 {remainingCooldown.TotalSeconds:F} 秒才能再次使用此命令."); + args.Player.SendErrorMessage(GetString($"你还需要等待 {remainingCooldown.TotalSeconds:F} 秒才能再次使用此命令.")); return; } try { args.Player.Teleport(data.X, data.Y, 1); - args.Player.SendSuccessMessage($"已传送至死亡地点 [c/8DF9D8:<{data.X / 16} - {data.Y / 16}>]."); + args.Player.SendSuccessMessage(GetString($"已传送至死亡地点 [c/8DF9D8:<{data.X / 16} - {data.Y / 16}>].")); this.SetCooldown(args.Player); } catch (Exception ex) { - TShock.Log.Error($"BackPlugin: 传送玩家 {args.Player.Name} 时发生错误: {ex}"); + TShock.Log.Error(GetString($"BackPlugin: 传送玩家 {args.Player.Name} 时发生错误: {ex}")); } } else { - args.Player.SendErrorMessage("你还未死亡过"); + args.Player.SendErrorMessage(GetString("你还未死亡过")); } } diff --git a/src/Back/README.md b/src/Back/README.md index e4b9b4ef..c45b3835 100644 --- a/src/Back/README.md +++ b/src/Back/README.md @@ -7,6 +7,8 @@ ## 更新日志 ``` +v1.0.0.5 +更新英文翻译 v1.0.0.4 补全卸载函数 ``` diff --git a/src/Back/README_EN.md b/src/Back/README_EN.md new file mode 100644 index 00000000..7a3f5878 --- /dev/null +++ b/src/Back/README_EN.md @@ -0,0 +1,24 @@ +# Back + +- Authors: Megghy,肝帝熙恩 +- Source: TShock QQ Group +- It can return to the player’s last death location and allows for customizable cooldown time. + +## Commands + +| Command | permission | Details | +| -------------- | :-----------------: |:-------------------------:| +| /back | back | Return to Death Location | + +## Config +> Configuration file location:tshock/Back.json +```json +{ + "back冷却时间": 20 //Cool Down Time +} +``` + +## FeedBack +- Github Issue -> TShockPlugin Repo: https://github.com/UnrealMultiple/TShockPlugin +- TShock QQ Group: 816771079 +- China Terraria Forum: trhub.cn, bbstr.net, tr.monika.love From 42bae17393bf4eb64291e19a8ef35380b5a86c4f Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 10:50:07 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E7=BF=BB=E8=AF=91:=20=E6=B7=BB=E5=8A=A0A?= =?UTF-8?q?utoTeamPlus=E7=9A=84=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AutoTeam/AutoTeamPlus.cs | 16 ++++++++-------- src/AutoTeam/README.md | 2 ++ src/AutoTeam/README_EN.md | 29 +++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 src/AutoTeam/README_EN.md diff --git a/src/AutoTeam/AutoTeamPlus.cs b/src/AutoTeam/AutoTeamPlus.cs index 19122b29..701000e1 100644 --- a/src/AutoTeam/AutoTeamPlus.cs +++ b/src/AutoTeam/AutoTeamPlus.cs @@ -10,7 +10,7 @@ namespace autoteam; public class Autoteam : TerrariaPlugin { public override string Author => "十七改,肝帝熙恩改"; - public override Version Version => new Version(2, 4, 1); + public override Version Version => new Version(2, 4, 2); public override string Description => "自动队伍"; public override string Name => "AutoTeamPlus"; public static Configuration Config; @@ -29,7 +29,7 @@ private static void LoadConfig() private static void ReloadConfig(ReloadEventArgs args) { LoadConfig(); - args.Player?.SendSuccessMessage("[{0}] 重新加载配置完毕。", typeof(Autoteam).Name); + args.Player?.SendSuccessMessage(GetString("[AutoTeam] 重新加载配置完毕。")); } public override void Initialize() @@ -61,7 +61,7 @@ private void TogglePlugin(CommandArgs args) if (parameters.Count < 1) { - player.SendErrorMessage("用法: /autoteam "); + player.SendErrorMessage(GetString("用法: /autoteam ")); return; } @@ -70,14 +70,14 @@ private void TogglePlugin(CommandArgs args) { case "on": Config.Enabled = true; - player.SendSuccessMessage("AutoTeamPlus 插件已启用."); + player.SendSuccessMessage(GetString("AutoTeamPlus 插件已启用.")); break; case "off": Config.Enabled = false; - player.SendSuccessMessage("AutoTeamPlus 插件已禁用."); + player.SendSuccessMessage(GetString("AutoTeamPlus 插件已禁用.")); break; default: - player.SendErrorMessage("无效的操作。请使用 'on' 或 'off'。"); + player.SendErrorMessage(GetString("无效的操作。请使用 'on' 或 'off'。")); break; } } @@ -127,11 +127,11 @@ private void SetTeam(TSPlayer player) if (teamIndex != -1) { player.SetTeam(teamIndex); - player.SendInfoMessage($"你的队伍已切换为 {teamName}."); + player.SendInfoMessage(GetString($"你的队伍已切换为 {teamName}.")); } else { - player.SendInfoMessage("未配置,可随意切换."); + player.SendInfoMessage(GetString("未配置,可随意切换.")); } } diff --git a/src/AutoTeam/README.md b/src/AutoTeam/README.md index 00d338b3..4ad9d8b9 100644 --- a/src/AutoTeam/README.md +++ b/src/AutoTeam/README.md @@ -7,6 +7,8 @@ ## 更新日志 ``` +v2.4.2 +添加英文翻译 v2.4.1 补全卸载函数 ``` diff --git a/src/AutoTeam/README_EN.md b/src/AutoTeam/README_EN.md new file mode 100644 index 00000000..be2bca8c --- /dev/null +++ b/src/AutoTeam/README_EN.md @@ -0,0 +1,29 @@ +# AutoTeamPlus + +- Authors: 十七,肝帝熙恩 +- Source: No +- 自动分配一个组的玩家到特定队伍 + +## Commands + +| Command | permission | Details | +|------------------| :-----------------: | :------: | +| /autoteam or /at | autoteam.toggle | Toggle the automatic team assignment feature. | +| No | noautoteam | Having this permission will not automatically assign you to a team. | + +## Config +> Configuration file location:tshock/AutoTeamPlus.json +```json +{ + "组的队伍": { //Group -> Team + "组名字": "队伍名称中文或English",//本行和下面两行均可改 + "default": "red", + "admin": "green" + }, + "开启插件": true //Enable +} +``` +## FeedBack +- Github Issue -> TShockPlugin Repo: https://github.com/UnrealMultiple/TShockPlugin +- TShock QQ Group: 816771079 +- China Terraria Forum: trhub.cn, bbstr.net, tr.monika.love From 52ff1208619e1d8b7ec4696120b1bbd742c6ca0c Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 11:01:24 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E7=BF=BB=E8=AF=91:=20=E6=B7=BB=E5=8A=A0B?= =?UTF-8?q?agPing=20=E5=92=8C=20HelpPlus=20=E7=9A=84=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BagPing/BagPing.cs | 4 ++-- src/BagPing/README.md | 2 ++ src/BagPing/README_EN.md | 9 ++++++++ src/HelpPlus/Help.cs | 26 +++++++++++------------ src/HelpPlus/README.md | 3 ++- src/HelpPlus/README_EN.md | 44 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 72 insertions(+), 16 deletions(-) create mode 100644 src/BagPing/README_EN.md create mode 100644 src/HelpPlus/README_EN.md diff --git a/src/BagPing/BagPing.cs b/src/BagPing/BagPing.cs index 846f1667..d02db710 100644 --- a/src/BagPing/BagPing.cs +++ b/src/BagPing/BagPing.cs @@ -17,7 +17,7 @@ public class BagPing : TerrariaPlugin public override string Name => "BagPing"; - public override Version Version => new Version(1, 0, 1); + public override Version Version => new Version(1, 0, 3); public BagPing(Main game) : base(game) @@ -47,7 +47,7 @@ private void OnNpcKilled(NpcKilledEventArgs e) if (e.npc.boss) { TSPlayer.All.SendSuccessMessage(TShock.Utils.ItemTag(new Item() { netID = 3318, stack = 1, prefix = 0 }) - + $"宝藏袋掉落在坐标({(int) e.npc.position.X / 16},{(int) e.npc.position.Y / 16}),已在小地图上标记!"); + +GetString( $"宝藏袋掉落在坐标({(int) e.npc.position.X / 16},{(int) e.npc.position.Y / 16}),已在小地图上标记!")); Task.Run(() => { for (var i = 0; i < 4; i++) diff --git a/src/BagPing/README.md b/src/BagPing/README.md index c98026f1..53335f55 100644 --- a/src/BagPing/README.md +++ b/src/BagPing/README.md @@ -6,6 +6,8 @@ ## 更新日志 ``` +1.0.3 +添加英文翻译 1.0.1 修改了描述 ``` diff --git a/src/BagPing/README_EN.md b/src/BagPing/README_EN.md new file mode 100644 index 00000000..0e848e07 --- /dev/null +++ b/src/BagPing/README_EN.md @@ -0,0 +1,9 @@ +# BagPing + +- Authors: Cai +- Source: [github](https://github.com/THEXN/CaiPlugins) +- Mark the dropped Boss bags on the map (60 seconds). +## FeedBack +- Github Issue -> TShockPlugin Repo: https://github.com/UnrealMultiple/TShockPlugin +- TShock QQ Group: 816771079 +- China Terraria Forum: trhub.cn, bbstr.net, tr.monika.love \ No newline at end of file diff --git a/src/HelpPlus/Help.cs b/src/HelpPlus/Help.cs index 5b7eb365..e161d000 100644 --- a/src/HelpPlus/Help.cs +++ b/src/HelpPlus/Help.cs @@ -43,7 +43,7 @@ public override void Initialize() private void GeneralHooks_ReloadEvent(ReloadEventArgs e) { Config.Read(); - e.Player.SendSuccessMessage("[HelpPlus]插件配置已重载!"); + e.Player.SendSuccessMessage(GetString("[HelpPlus]插件配置已重载!")); } private static bool IsWhiteSpace(char c) @@ -182,7 +182,7 @@ private static void Help(CommandArgs args) var Specifier = TShock.Config.Settings.CommandSpecifier; if (args.Parameters.Count > 1) { - args.Player.SendErrorMessage(string.Format("无效用法.正确用法: {0}help <命令/页码>", Specifier)); + args.Player.SendErrorMessage(GetString( "无效用法.正确用法: {0}help <命令/页码>", Specifier)); return; } @@ -200,8 +200,8 @@ where cmd.CanRun(args.Player) && (cmd.Name != "setup" || TShock.SetupToken != 0) PaginationTools.SendPage(args.Player, pageNumber, PaginationTools.BuildLinesFromTerms(cmdNames), new PaginationTools.Settings { - HeaderFormat = "命令列表 ({0}/{1}):", - FooterFormat = string.Format("输入 {0}help {{0}} 翻页.", Specifier) + HeaderFormat = GetString("命令列表 ({0}/{1}):"), + FooterFormat = GetString("输入 {0}help {{0}} 翻页.", Specifier) }); } else @@ -215,17 +215,17 @@ where cmd.CanRun(args.Player) && (cmd.Name != "setup" || TShock.SetupToken != 0) var command = Commands.ChatCommands.Find(c => c.Names.Contains(commandName)); if (command == null) { - args.Player.SendErrorMessage("无效命令."); + args.Player.SendErrorMessage(GetString("无效命令.")); return; } if (!command.CanRun(args.Player)) { - args.Player.SendErrorMessage("你没有权限查询此命令."); + args.Player.SendErrorMessage(GetString("你没有权限查询此命令.")); return; } - args.Player.SendSuccessMessage(string.Format("{0}{1}的帮助:", Specifier, command.Name)); + args.Player.SendSuccessMessage(GetString("{0}{1}的帮助:", Specifier, command.Name)); if (command.HelpDesc == null) { args.Player.SendWarningMessage(command.HelpText); @@ -240,24 +240,24 @@ where cmd.CanRun(args.Player) && (cmd.Name != "setup" || TShock.SetupToken != 0) if (command.Names.Count > 1) { - args.Player.SendInfoMessage($"别名: [c/00ffff:{string.Join(',', command.Names)}]"); + args.Player.SendInfoMessage(GetString($"别名: [c/00ffff:{string.Join(',', command.Names)}]")); } args.Player.SendInfoMessage( - $"权限: {(command.Permissions.Count == 0 || command.Permissions.Count(i => i == "") == command.Permissions.Count ? "[c/c2ff39:无权限限制]" : "[c/bf0705:" + string.Join(',', command.Permissions) + "]")}"); + GetString($"权限: {(command.Permissions.Count == 0 || command.Permissions.Count(i => i == "") == command.Permissions.Count ? GetString("[c/c2ff39:无权限限制]") : "[c/bf0705:" + string.Join(',', command.Permissions) + "]")}")); args.Player.SendInfoMessage( - $"来源插件: [c/8500ff:{command.CommandDelegate.Method.DeclaringType.Assembly.FullName.Split(',').First()}]"); + GetString($"来源插件: [c/8500ff:{command.CommandDelegate.Method.DeclaringType.Assembly.FullName.Split(',').First()}]")); if (!command.AllowServer) { - args.Player.SendInfoMessage("*此命令只能游戏内执行"); + args.Player.SendInfoMessage(GetString("*此命令只能游戏内执行")); } if (!command.DoLog) { - args.Player.SendInfoMessage("*此命令不记录命令参数"); + args.Player.SendInfoMessage(GetString("*此命令不记录命令参数")); } - args.Player.SendInfoMessage("*本插件只能查询主命令权限,详细权限请使用/whynot查看!"); + args.Player.SendInfoMessage(GetString("*本插件只能查询主命令权限,详细权限请使用/whynot查看!")); } } diff --git a/src/HelpPlus/README.md b/src/HelpPlus/README.md index 11d3f398..5ca3b77f 100644 --- a/src/HelpPlus/README.md +++ b/src/HelpPlus/README.md @@ -9,8 +9,9 @@ ## 更新日志 ``` -- v1.0.0 修复Help需要权限的奇怪问题 +- v2024.9.1.1 更新翻译 - v2024.7.28.1 修复/death、/roll等原版命令 +- v1.0.0 修复Help需要权限的奇怪问题 ``` ## 指令 diff --git a/src/HelpPlus/README_EN.md b/src/HelpPlus/README_EN.md new file mode 100644 index 00000000..be1c73a4 --- /dev/null +++ b/src/HelpPlus/README_EN.md @@ -0,0 +1,44 @@ +# HelpPlus + +- Authors: Cai +- Source: Here + Fix the issue where the /help command cannot be used in non-English Lang. + Add a brief prompt for /help. + Use /help to see more detailed command help. + + +## Commands + +| Command | permission | Details | +|-----------------|:----------:| :------: | +| help | no | view the list of commands | +| /help | no | view detailed help for the command | + +## Config +> Configuration file location:tshock/HelpPlus.json + +```json +{ + "简短提示开关": true, //Enable brief prompt + "简短提示对应": { //Brief prompt setting + "user": "用户管理", + "login": "登录", + "logout": "登出", + "password": "修改密码", + "register": "注册", + "accountinfo": "账号信息", + "ban": "封禁", + "broadcast": "广播", + ...... + "deal": "交易", + "igen": "快速构建", + "relive": "复活NPC", + "bossinfo": "进度查询" + } +} +``` + +## FeedBack +- Github Issue -> TShockPlugin Repo: https://github.com/UnrealMultiple/TShockPlugin +- TShock QQ Group: 816771079 +- China Terraria Forum: trhub.cn, bbstr.net, tr.monika.love From 426950c0a85d5218232e1bd233b1f2cc679dd429 Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 11:06:41 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E7=BF=BB=E8=AF=91=EF=BC=9A=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0MapTP=E7=BF=BB=E8=AF=91=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E5=B0=8F=E7=BB=86=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AutoReset/README_EN.md | 10 +++++----- src/AutoTeam/README_EN.md | 8 ++++---- src/Back/README_EN.md | 6 +++--- src/HelpPlus/README_EN.md | 2 +- src/MapTp/MapTeleport.cs | 4 ++-- src/MapTp/README.md | 18 ++++++++++-------- src/MapTp/README_EN.md | 18 ++++++++++++++++++ src/VeinMiner/README_EN.md | 2 +- 8 files changed, 44 insertions(+), 24 deletions(-) create mode 100644 src/MapTp/README_EN.md diff --git a/src/AutoReset/README_EN.md b/src/AutoReset/README_EN.md index bbd1a784..7ab1a735 100644 --- a/src/AutoReset/README_EN.md +++ b/src/AutoReset/README_EN.md @@ -5,11 +5,11 @@ ## Commands -| Command | permission | Details | -|-------------| :-----------------: |:-----------------------------:| -| /reset | reset.admin | Generating map and reset data | -| /resetdata | reset.admin | Only reset data | -| /rs | reset.admin | Reset Setting | +| Command | Permission | Details | +|-------------|:-----------:|:-----------------------------:| +| /reset | reset.admin | Generating map and reset data | +| /resetdata | reset.admin | Only reset data | +| /rs | reset.admin | Reset Setting | ## Config diff --git a/src/AutoTeam/README_EN.md b/src/AutoTeam/README_EN.md index be2bca8c..6b6db7fa 100644 --- a/src/AutoTeam/README_EN.md +++ b/src/AutoTeam/README_EN.md @@ -6,10 +6,10 @@ ## Commands -| Command | permission | Details | -|------------------| :-----------------: | :------: | -| /autoteam or /at | autoteam.toggle | Toggle the automatic team assignment feature. | -| No | noautoteam | Having this permission will not automatically assign you to a team. | +| Command | Permission | Details | +|------------------|:---------------:| :------: | +| /autoteam or /at | autoteam.toggle | Toggle the automatic team assignment feature. | +| No | noautoteam | Having this permission will not automatically assign you to a team. | ## Config > Configuration file location:tshock/AutoTeamPlus.json diff --git a/src/Back/README_EN.md b/src/Back/README_EN.md index 7a3f5878..8eeff931 100644 --- a/src/Back/README_EN.md +++ b/src/Back/README_EN.md @@ -6,9 +6,9 @@ ## Commands -| Command | permission | Details | -| -------------- | :-----------------: |:-------------------------:| -| /back | back | Return to Death Location | +| Command | Permission | Details | +| -------------- |:----------:|:-------------------------:| +| /back | back | Return to Death Location | ## Config > Configuration file location:tshock/Back.json diff --git a/src/HelpPlus/README_EN.md b/src/HelpPlus/README_EN.md index be1c73a4..ca9dadc2 100644 --- a/src/HelpPlus/README_EN.md +++ b/src/HelpPlus/README_EN.md @@ -9,7 +9,7 @@ ## Commands -| Command | permission | Details | +| Command | Permission | Details | |-----------------|:----------:| :------: | | help | no | view the list of commands | | /help | no | view detailed help for the command | diff --git a/src/MapTp/MapTeleport.cs b/src/MapTp/MapTeleport.cs index 840647e6..25e38906 100644 --- a/src/MapTp/MapTeleport.cs +++ b/src/MapTp/MapTeleport.cs @@ -12,7 +12,7 @@ public MapTeleport(Main game) : base(game) { this.Order = 1; } - public override Version Version => new Version(1, 0, 1); + public override Version Version => new Version(1, 0, 2); public override string Author => "Nova4334,肝帝熙恩汉化适配1449"; public override string Name => "MapTeleport"; public override string Description => "允许玩家传送到地图上的选定位置."; @@ -49,7 +49,7 @@ private void teleport(object unused, GetDataHandlers.ReadNetModuleEventArgs args } else { - args.Player.SendErrorMessage("您正在尝试传送到实心方块中。请在地图上选择一个不包含实心方块的地方,然后重试."); + args.Player.SendErrorMessage(GetString("您正在尝试传送到实心方块中。请在地图上选择一个不包含实心方块的地方,然后重试.")); } return; diff --git a/src/MapTp/README.md b/src/MapTp/README.md index cf69cd1c..5927b9c7 100644 --- a/src/MapTp/README.md +++ b/src/MapTp/README.md @@ -8,23 +8,25 @@ ## 更新日志 ``` +v1.0.2 +添加英文翻译 v1.0.1 完善卸载函数 ``` ## 指令 -| 语法 | 权限 | 说明 | -| -------------- | :-----------------: | :------: | -| 无 | maptp.noclip | 允许双击传送(不包括实心方块)| -| 无 | maptp | 允许双击传送(包括实心方块)| +| Command | Perminsion | 说明 | +|---------|:------------:| :------: | +| None | maptp.noclip | Allows double-click teleportation (excluding solid blocks)| +| None | maptp | Allows double-click teleportation (including solid blocks)| ## 配置 ``` 暂无 ``` -## 反馈 -- 优先发issued -> 共同维护的插件库:https://github.com/UnrealMultiple/TShockPlugin -- 次优先:TShock官方群:816771079 -- 大概率看不到但是也可以:国内社区trhub.cn ,bbstr.net , tr.monika.love +## FeedBack +- Github Issue -> TShockPlugin Repo: https://github.com/UnrealMultiple/TShockPlugin +- TShock QQ Group: 816771079 +- China Terraria Forum: trhub.cn, bbstr.net, tr.monika.love diff --git a/src/MapTp/README_EN.md b/src/MapTp/README_EN.md new file mode 100644 index 00000000..9fb419e3 --- /dev/null +++ b/src/MapTp/README_EN.md @@ -0,0 +1,18 @@ +# Maptp + +- Authors: Nova4334,肝帝熙恩 +- Source: Unknown +- Players with permission can open the map and double-click to go to the specified location. +- Further determine whether to allow teleportation to solid blocks. + +## Commands + +| Command | Permission | Details | +| -------------- | :-----------------: | :------: | +| 无 | maptp.noclip | 允许双击传送(不包括实心方块)| +| 无 | maptp | 允许双击传送(包括实心方块)| + +## FeedBack +- Github Issue -> TShockPlugin Repo: https://github.com/UnrealMultiple/TShockPlugin +- TShock QQ Group: 816771079 +- China Terraria Forum: trhub.cn, bbstr.net, tr.monika.love diff --git a/src/VeinMiner/README_EN.md b/src/VeinMiner/README_EN.md index f50d3df6..526504d4 100644 --- a/src/VeinMiner/README_EN.md +++ b/src/VeinMiner/README_EN.md @@ -10,7 +10,7 @@ ## Commands -| Command | permission | Details | +| Command | Permission | Details | |----------------|:----------:|:---------------------------------------:| | /vm | veinminer | Toggle vein mining | | /vm [Any agrs] | veinminer | Toggle vein mining notification message | From 7d7b6b4abf38ab6935bb5fa409288cdfbec87248 Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 11:18:25 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BF=BB=E8=AF=91:=20T?= =?UTF-8?q?PA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/TeleportRequest/README.md | 2 +- src/TeleportRequest/README_EN.md | 30 ++++++++++ src/TeleportRequest/TeleportRequest.cs | 83 +++++++++++++------------- 3 files changed, 71 insertions(+), 44 deletions(-) create mode 100644 src/TeleportRequest/README_EN.md diff --git a/src/TeleportRequest/README.md b/src/TeleportRequest/README.md index 8cbd9466..51307eaf 100644 --- a/src/TeleportRequest/README.md +++ b/src/TeleportRequest/README.md @@ -7,7 +7,7 @@ ## 更新日志 ``` -暂无 +v1.0.2 添加英文翻译 ``` ## 指令 diff --git a/src/TeleportRequest/README_EN.md b/src/TeleportRequest/README_EN.md new file mode 100644 index 00000000..222fde25 --- /dev/null +++ b/src/TeleportRequest/README_EN.md @@ -0,0 +1,30 @@ +# TeleportRequest + +- Authors: MarioE, 修改者: Dr.Toxic,肝帝熙恩 +- Source: [github](https://github.com/MarioE/TeleportRequest) +- The teleportation request needs to be accepted or denied by the recipient before the teleportation occurs, which is referred to as tpa. + +## Commands + +| Command | Permission | Details | +|-----------------------| :---------------------: | :------------------- | +| `/atp` | `tprequest.gettpr` | Accept teleport request | +| `/autodeny` ` | `tprequest.tpauto` | Automatically deny all teleport requests | +| `/autoaccept` ` | `tprequest.tpauto` | Automatically accept all teleport requests | +| `/dtp` | `tprequest.gettpr` | Deny teleport request | +| `/tpahere ` ` | `tprequest.tpat` | Request to teleport the specified player to your current location | +| `/tpa ` ` | `tprequest.tpat` | Request to teleport to the specified player’s current location | + + +## Config +> Configuration file location:tshock/tpconfig.json +```json +{ + "间隔秒数": 3, //Interval Seconds + "超时次数": 3 //Timeout Count +} +``` +## FeedBack +- Github Issue -> TShockPlugin Repo: https://github.com/UnrealMultiple/TShockPlugin +- TShock QQ Group: 816771079 +- China Terraria Forum: trhub.cn, bbstr.net, tr.monika.love diff --git a/src/TeleportRequest/TeleportRequest.cs b/src/TeleportRequest/TeleportRequest.cs index a51c8d35..d4ed8e8f 100644 --- a/src/TeleportRequest/TeleportRequest.cs +++ b/src/TeleportRequest/TeleportRequest.cs @@ -27,7 +27,7 @@ public class TeleportRequest : TerrariaPlugin public override string Name => "传送请求"; - public override Version Version => new(1, 0, 1); + public override Version Version => new(1, 0, 2); public TeleportRequest(Main game) : base(game) @@ -72,14 +72,14 @@ private void OnElapsed(object sender, ElapsedEventArgs e) tPRequest.timeout--; if (tPRequest.timeout == 0) { - tSPlayer2.SendErrorMessage("传送请求已超时."); - tSPlayer.SendInfoMessage("玩家[{0}]的传送请求已超时.", tSPlayer2.Name); + tSPlayer2.SendErrorMessage(GetString("传送请求已超时.")); + tSPlayer.SendInfoMessage(GetString("玩家[{0}]的传送请求已超时.", tSPlayer2.Name)); continue; } - var format = string.Format("玩家[{{0}}]要求传送到你当前位置. ({0}接受tp ({0}atp) 或 {0}拒绝tp ({0}dtp))", Commands.Specifier); + var format = GetString("玩家[{{0}}]要求传送到你当前位置. ({0}接受tp ({0}atp) 或 {0}拒绝tp ({0}dtp))", Commands.Specifier); if (tPRequest.dir) { - format = string.Format("你被请求传送到玩家[{{0}}]的当前位置. ({0}接受tp ({0}atp) 或 {0}拒绝tp ({0}dtp))", Commands.Specifier); + format = GetString("你被请求传送到玩家[{{0}}]的当前位置. ({0}接受tp ({0}atp) 或 {0}拒绝tp ({0}dtp))", Commands.Specifier); } tSPlayer.SendInfoMessage(format, tSPlayer2.Name); } @@ -90,32 +90,32 @@ private void OnInitialize(EventArgs e) Commands.ChatCommands.Add(new Command("tprequest.gettpr", this.TPAccept, "接受tp", "atp") { AllowServer = false, - HelpText = "接受传送请求." + HelpText = GetString("接受传送请求.") }); Commands.ChatCommands.Add(new Command("tprequest.tpauto", this.TPAutoDeny, "自动拒绝tp", "autodeny") { AllowServer = false, - HelpText = "自动拒绝所有人的传送请求." + HelpText = GetString("自动拒绝所有人的传送请求.") }); Commands.ChatCommands.Add(new Command("tprequest.tpauto", this.TPAutoAccept, "自动接受tp", "autoaccept") { AllowServer = false, - HelpText = "自动接受所有人的传送请求." + HelpText = GetString("自动接受所有人的传送请求.") }); Commands.ChatCommands.Add(new Command("tprequest.gettpr", this.TPDeny, "拒绝tp", "dtp") { AllowServer = false, - HelpText = "拒绝传送请求." + HelpText = GetString("拒绝传送请求.") }); Commands.ChatCommands.Add(new Command("tprequest.tpat", this.TPAHere, "tpahere") { AllowServer = false, - HelpText = "发出把指定玩家传送到你当前位置的请求." + HelpText = GetString("发出把指定玩家传送到你当前位置的请求.") }); Commands.ChatCommands.Add(new Command("tprequest.tpat", this.TPA, "tpa") { AllowServer = false, - HelpText = "发出传送到指定玩家当前位置的请求." + HelpText = GetString("发出传送到指定玩家当前位置的请求.") }); this.SetupConfig(); this.Timer = new System.Timers.Timer(tpConfig.IntervalInSeconds * 1000); @@ -134,29 +134,29 @@ private void TPA(CommandArgs e) { if (e.Parameters.Count == 0) { - e.Player.SendErrorMessage("格式错误! 正确格式为: {0}tpa <玩家>", Commands.Specifier); + e.Player.SendErrorMessage(GetString("格式错误! 正确格式为: {0}tpa <玩家>", Commands.Specifier)); return; } var search = string.Join(" ", e.Parameters.ToArray()); var list = TSPlayer.FindByNameOrID(search); if (list.Count == 0) { - e.Player.SendErrorMessage("找不到这位玩家!"); + e.Player.SendErrorMessage(GetString("找不到这位玩家!")); return; } if (list.Count > 1) { - e.Player.SendErrorMessage("匹对到多于一位玩家!"); + e.Player.SendErrorMessage(GetString("匹对到多于一位玩家!")); return; } if (list[0].Equals(e.Player)) { - e.Player.SendErrorMessage("禁止向自己发送传送请求!"); + e.Player.SendErrorMessage(GetString("禁止向自己发送传送请求!")); return; } if ((!list[0].TPAllow || this.TPAllows[list[0].Index]) && !e.Player.Group.HasPermission(Permissions.tpoverride)) { - e.Player.SendErrorMessage("你无法传送到玩家[{0}].", list[0].Name); + e.Player.SendErrorMessage(GetString("你无法传送到玩家[{0}].", list[0].Name)); return; } if ((list[0].TPAllow && this.TPacpt[list[0].Index]) || e.Player.Group.HasPermission(Permissions.tpoverride)) @@ -166,8 +166,8 @@ private void TPA(CommandArgs e) var tSPlayer2 = flag ? e.Player : TShock.Players[list[0].Index]; if (tSPlayer.Teleport(tSPlayer2.X, tSPlayer2.Y, 1)) { - tSPlayer.SendSuccessMessage("已经传送到玩家[{0}]的当前位置.", tSPlayer2.Name); - tSPlayer2.SendSuccessMessage("玩家[{0}]已传送到你的当前位置.", tSPlayer.Name); + tSPlayer.SendSuccessMessage(GetString("已经传送到玩家[{0}]的当前位置.", tSPlayer2.Name)); + tSPlayer2.SendSuccessMessage(GetString("玩家[{0}]已传送到你的当前位置.", tSPlayer.Name)); } return; } @@ -176,14 +176,14 @@ private void TPA(CommandArgs e) var tPRequest = this.TPRequests[i]; if (tPRequest.timeout > 0 && tPRequest.dst == list[0].Index) { - e.Player.SendErrorMessage("玩家[{0}]已被其他玩家发出传送请求.", list[0].Name); + e.Player.SendErrorMessage(GetString("玩家[{0}]已被其他玩家发出传送请求.", list[0].Name)); return; } } this.TPRequests[e.Player.Index].dir = false; this.TPRequests[e.Player.Index].dst = (byte) list[0].Index; this.TPRequests[e.Player.Index].timeout = tpConfig.TimeoutCount + 1; - e.Player.SendSuccessMessage("已成功向玩家[{0}]发出传送请求.", list[0].Name); + e.Player.SendSuccessMessage(GetString("已成功向玩家[{0}]发出传送请求.", list[0].Name)); } private void TPAccept(CommandArgs e) @@ -197,38 +197,38 @@ private void TPAccept(CommandArgs e) var tSPlayer2 = tPRequest.dir ? TShock.Players[i] : e.Player; if (tSPlayer.Teleport(tSPlayer2.X, tSPlayer2.Y, 1)) { - tSPlayer.SendSuccessMessage("已经传送到玩家[{0}]的当前位置.", tSPlayer2.Name); - tSPlayer2.SendSuccessMessage("玩家[{0}]已传送到你的当前位置.", tSPlayer.Name); + tSPlayer.SendSuccessMessage(GetString("已经传送到玩家[{0}]的当前位置.", tSPlayer2.Name)); + tSPlayer2.SendSuccessMessage(GetString("玩家[{0}]已传送到你的当前位置.", tSPlayer.Name)); } tPRequest.timeout = 0; return; } } - e.Player.SendErrorMessage("你暂时没有收到其他玩家的传送请求."); + e.Player.SendErrorMessage(GetString("你暂时没有收到其他玩家的传送请求.")); } private void TPAHere(CommandArgs e) { if (e.Parameters.Count == 0) { - e.Player.SendErrorMessage("格式错误! 正确格式为: {0}tpahere <玩家>", Commands.Specifier); + e.Player.SendErrorMessage(GetString("格式错误! 正确格式为: {0}tpahere <玩家>", Commands.Specifier)); return; } var search = string.Join(" ", e.Parameters.ToArray()); var list = TSPlayer.FindByNameOrID(search); if (list.Count == 0) { - e.Player.SendErrorMessage("找不到这位玩家!"); + e.Player.SendErrorMessage(GetString("找不到这位玩家!")); return; } if (list.Count > 1) { - e.Player.SendErrorMessage("匹对到多于一位玩家!"); + e.Player.SendErrorMessage(GetString("匹对到多于一位玩家!")); return; } if ((!list[0].TPAllow || this.TPAllows[list[0].Index]) && !e.Player.Group.HasPermission(Permissions.tpoverride)) { - e.Player.SendErrorMessage("你无法传送到玩家[{0}].", list[0].Name); + e.Player.SendErrorMessage(GetString("你无法传送到玩家[{0}]."), list[0].Name); return; } if ((list[0].TPAllow && this.TPacpt[list[0].Index]) || e.Player.Group.HasPermission(Permissions.tpoverride)) @@ -238,8 +238,8 @@ private void TPAHere(CommandArgs e) var tSPlayer2 = flag ? e.Player : TShock.Players[list[0].Index]; if (tSPlayer.Teleport(tSPlayer2.X, tSPlayer2.Y, 1)) { - tSPlayer.SendSuccessMessage("已经传送到玩家[{0}]的当前位置.", tSPlayer2.Name); - tSPlayer2.SendSuccessMessage("玩家[{0}]已传送到你的当前位置.", tSPlayer.Name); + tSPlayer.SendSuccessMessage(GetString("已经传送到玩家[{0}]的当前位置."), tSPlayer2.Name); + tSPlayer2.SendSuccessMessage(GetString("玩家[{0}]已传送到你的当前位置."), tSPlayer.Name); } return; } @@ -248,25 +248,25 @@ private void TPAHere(CommandArgs e) var tPRequest = this.TPRequests[i]; if (tPRequest.timeout > 0 && tPRequest.dst == list[0].Index) { - e.Player.SendErrorMessage("玩家[{0}]已被其他玩家发出传送请求.", list[0].Name); + e.Player.SendErrorMessage(GetString("玩家[{0}]已被其他玩家发出传送请求."), list[0].Name); return; } } this.TPRequests[e.Player.Index].dir = true; this.TPRequests[e.Player.Index].dst = (byte) list[0].Index; this.TPRequests[e.Player.Index].timeout = tpConfig.TimeoutCount + 1; - e.Player.SendSuccessMessage("已成功向玩家[{0}]发出传送请求.", list[0].Name); + e.Player.SendSuccessMessage(GetString("已成功向玩家[{0}]发出传送请求."), list[0].Name); } private void TPAutoDeny(CommandArgs e) { if (this.TPacpt[e.Player.Index]) { - e.Player.SendErrorMessage("请先解除自动接受传送"); + e.Player.SendErrorMessage(GetString("请先解除自动接受传送")); return; } this.TPAllows[e.Player.Index] = !this.TPAllows[e.Player.Index]; - e.Player.SendInfoMessage("{0}自动拒绝传送请求.", this.TPAllows[e.Player.Index] ? "启用" : "解除"); + e.Player.SendInfoMessage(GetString("{0}自动拒绝传送请求.", this.TPAllows[e.Player.Index] ? GetString("启用") : GetString("解除"))); } private void TPDeny(CommandArgs e) @@ -276,24 +276,24 @@ private void TPDeny(CommandArgs e) var tPRequest = this.TPRequests[i]; if (tPRequest.timeout > 0 && tPRequest.dst == e.Player.Index) { - e.Player.SendSuccessMessage("已拒绝玩家[{0}]的传送请求.", TShock.Players[i].Name); - TShock.Players[i].SendErrorMessage("玩家[{0}]拒绝你的传送请求.", e.Player.Name); + e.Player.SendSuccessMessage(GetString("已拒绝玩家[{0}]的传送请求.", TShock.Players[i].Name)); + TShock.Players[i].SendErrorMessage(GetString("玩家[{0}]拒绝你的传送请求.", e.Player.Name)); tPRequest.timeout = 0; return; } } - e.Player.SendErrorMessage("你暂时没有收到其他玩家的传送请求."); + e.Player.SendErrorMessage(GetString("你暂时没有收到其他玩家的传送请求.")); } private void TPAutoAccept(CommandArgs e) { if (this.TPAllows[e.Player.Index]) { - e.Player.SendErrorMessage("请先解除自动拒绝传送"); + e.Player.SendErrorMessage(GetString("请先解除自动拒绝传送")); return; } this.TPacpt[e.Player.Index] = !this.TPacpt[e.Player.Index]; - e.Player.SendInfoMessage("{0}自动接受传送请求.", this.TPacpt[e.Player.Index] ? "启用" : "解除"); + e.Player.SendInfoMessage(GetString("{0}自动接受传送请求.", this.TPacpt[e.Player.Index] ? GetString("启用") : GetString("解除"))); } private void SetupConfig() @@ -308,10 +308,7 @@ private void SetupConfig() } catch (Exception ex) { - Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine("TPR配置发生错误"); - Console.ForegroundColor = ConsoleColor.Gray; - TShock.Log.ConsoleError("TPR配置出现异常"); + TShock.Log.ConsoleError(GetString("TPR配置出现异常")); TShock.Log.ConsoleError(ex.ToString()); } } @@ -319,6 +316,6 @@ private void SetupConfig() private void ReloadTPR(ReloadEventArgs args) { this.SetupConfig(); - args.Player?.SendSuccessMessage("[{0}] 重新加载配置完毕。", typeof(TeleportRequest).Name); + args.Player?.SendSuccessMessage(GetString("[TeleportRequest] 重新加载配置完毕。")); } } \ No newline at end of file From 66fb30521ef15d9745539354d68e2f9e4da05a67 Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 11:44:51 +0800 Subject: [PATCH 09/18] =?UTF-8?q?=E7=BF=BB=E8=AF=91:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AutoReset/i18n/en-US.po | 124 ++ src/AutoReset/i18n/template.pot | 126 ++ src/AutoTeam/i18n/en-US.po | 41 + src/AutoTeam/i18n/template.pot | 41 + src/Back/i18n/en-US.po | 44 + src/Back/i18n/template.pot | 43 + src/BagPing/i18n/en-US.po | 17 + src/BagPing/i18n/template.pot | 17 + src/Challenger/i18n/template.pot | 762 +++++----- src/HelpPlus/i18n/template.pot | 74 + src/MapTp/i18n/en-US.po | 16 + src/MapTp/i18n/template.pot | 16 + src/TeleportRequest/i18n/en-US.po | 147 ++ src/TeleportRequest/i18n/template.pot | 157 ++ src/VeinMiner/i18n/en-US.po | 54 +- src/VeinMiner/i18n/template.pot | 42 +- src/ZHIPlayerManager/i18n/en-US.po | 169 +++ src/ZHIPlayerManager/i18n/template.pot | 1815 ++++++++++++++++++++++++ 18 files changed, 3276 insertions(+), 429 deletions(-) create mode 100644 src/AutoReset/i18n/en-US.po create mode 100644 src/AutoReset/i18n/template.pot create mode 100644 src/AutoTeam/i18n/en-US.po create mode 100644 src/AutoTeam/i18n/template.pot create mode 100644 src/Back/i18n/en-US.po create mode 100644 src/Back/i18n/template.pot create mode 100644 src/BagPing/i18n/en-US.po create mode 100644 src/BagPing/i18n/template.pot create mode 100644 src/HelpPlus/i18n/template.pot create mode 100644 src/MapTp/i18n/en-US.po create mode 100644 src/MapTp/i18n/template.pot create mode 100644 src/TeleportRequest/i18n/en-US.po create mode 100644 src/TeleportRequest/i18n/template.pot create mode 100644 src/ZHIPlayerManager/i18n/en-US.po create mode 100644 src/ZHIPlayerManager/i18n/template.pot diff --git a/src/AutoReset/i18n/en-US.po b/src/AutoReset/i18n/en-US.po new file mode 100644 index 00000000..2cf81852 --- /dev/null +++ b/src/AutoReset/i18n/en-US.po @@ -0,0 +1,124 @@ +msgid "" +msgstr "" +"Project-Id-Version: AutoReset\n" +"POT-Creation-Date: 2024-09-01 11:28:02+0800\n" +"PO-Revision-Date: 2024-09-01 10:15+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.5\n" + +#: ..\..\Utils.cs:25 +#, csharp-format +msgid "[自动重置]调用API失败! (状态码: {0})" +msgstr "[AutoReset] API call failed! (Status code: {0})" + +#: ..\..\AutoResetPlugin.cs:325 +#, csharp-format +msgid "种子: {0}" +msgstr "Seed: {0}" + +#: ..\..\AutoResetPlugin.cs:290 +msgid "/rs seed <种子>" +msgstr "/rs seed " + +#: ..\..\AutoResetPlugin.cs:349 +msgid "世界种子已设为随机" +msgstr "The world seed has been set to random" + +#: ..\..\AutoResetPlugin.cs:324 +#, csharp-format +msgid "地图名: {0}\n" +msgstr "Map name: {0}\n" + +#: ..\..\AutoResetPlugin.cs:198 +msgid "[AutoReset]服务器即将开始重置..." +msgstr "[AutoReset] The server is about to reset…" + +#: ..\..\AutoResetPlugin.cs:385 +#, csharp-format +msgid "[AutoReset]重置SQL({0})执行失败: {1}" +msgstr "[AutoReset] Resetting SQL ({0}) failed: {1}" + +#: ..\..\AutoResetPlugin.cs:160 +msgid "重置数据中, 请稍后..." +msgstr "Resetting data, please wait…" + +#: ..\..\AutoResetPlugin.cs:333 +msgid "世界名字已设置为跟随原世界" +msgstr "The world name has been set to follow the original world" + +#: ..\..\AutoResetPlugin.cs:368 +msgid "世界种子已设置为:" +msgstr "The world seed has been set to:" + +#: ..\..\AutoResetPlugin.cs:163 +msgid "生成地图中: " +msgstr "Generating map… " + +#: ..\..\AutoResetPlugin.cs:404 +#, csharp-format +msgid "[AutoReset]重置文件({0})替换失败: {1}" +msgstr "[AutoReset] Resetting file ({0}) failed: {1}" + +#: ..\..\AutoResetPlugin.cs:298 +msgid "输入 {0}rs help {{0}} 查看更多" +msgstr "Type {0}rs help {{0}} for more information" + +#: ..\..\AutoResetPlugin.cs:98 +msgid "[AutoReset]自动重置插件配置已重载" +msgstr "[AutoReset] Auto-reset plugin configuration reloaded" + +#: ..\..\AutoResetPlugin.cs:58 +msgid "[AutoReset]服务器数据重置成功~" +msgstr "[AutoReset] Server data reset successfully~" + +#: ..\..\AutoResetPlugin.cs:425 +msgid "[AutoReset]重置数据中,请稍后..." +msgstr "[AutoReset] Resetting data, please wait…" + +#: ..\..\AutoResetPlugin.cs:147 +#, csharp-format +msgid "[i:3611]击杀自动重置:{0}({1}/{2})" +msgstr "[i:3611] Auto-reset on kill: {0} ({1}/{2})" + +#: ..\..\AutoResetPlugin.cs:339 +msgid "世界名字已设置为 " +msgstr "[AutoReset] The world name has been set to " + +#: ..\..\AutoResetPlugin.cs:429 +msgid "[AutoReset]生成地图中:\n" +msgstr "[AutoReset] Generating map…\n" + +#: ..\..\AutoResetPlugin.cs:297 +msgid "帮助 ({0}/{1}):" +msgstr "Help ({0}/{1}):" + +#: ..\..\AutoResetPlugin.cs:289 +msgid "/rs name <地图名>" +msgstr "/rs name " + +#: ..\..\AutoResetPlugin.cs:325 +msgid "随机" +msgstr "Random" + +#: ..\..\AutoResetPlugin.cs:179 +#, csharp-format +msgid "[AutoReset]服务器中已经击杀{0}{1}/{2}" +msgstr "[AutoReset] {0}{1}/{2} have been killed in the server." + +#: ..\..\AutoResetPlugin.cs:152 +#, csharp-format +msgid "📝击杀自动重置:{0}({1}/{2})" +msgstr "📝 Auto-reset on kill: {0} ({1}/{2})" + +#: ..\..\AutoResetPlugin.cs:201 +msgid "[AutoReset]{0}s后关闭服务器..." +msgstr "[AutoReset] The server will shut down in {0}s..." + +#: ..\..\AutoResetPlugin.cs:207 +msgid "[AutoReset]服务器已开始重置..." +msgstr "[AutoReset] The server has started resetting." diff --git a/src/AutoReset/i18n/template.pot b/src/AutoReset/i18n/template.pot new file mode 100644 index 00000000..d31b3fce --- /dev/null +++ b/src/AutoReset/i18n/template.pot @@ -0,0 +1,126 @@ +msgid "" +msgstr "" +"Project-Id-Version: AutoReset\n" +"POT-Creation-Date: 2024-09-01 11:28:02+0800\n" +"PO-Revision-Date: 2024-09-01 11:28:02+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Utils.cs:25 +#, csharp-format +msgid "[自动重置]调用API失败! (状态码: {0})" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:325 +#, csharp-format +msgid "种子: {0}" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:290 +msgid "/rs seed <种子>" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:349 +msgid "世界种子已设为随机" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:324 +#, csharp-format +msgid "" +"地图名: {0}\n" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:198 +msgid "[AutoReset]服务器即将开始重置..." +msgstr "" + +#: ..\..\AutoResetPlugin.cs:385 +#, csharp-format +msgid "[AutoReset]重置SQL({0})执行失败: {1}" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:160 +msgid "重置数据中, 请稍后..." +msgstr "" + +#: ..\..\AutoResetPlugin.cs:333 +msgid "世界名字已设置为跟随原世界" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:368 +msgid "世界种子已设置为:" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:163 +msgid "生成地图中: " +msgstr "" + +#: ..\..\AutoResetPlugin.cs:404 +#, csharp-format +msgid "[AutoReset]重置文件({0})替换失败: {1}" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:298 +msgid "输入 {0}rs help {{0}} 查看更多" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:98 +msgid "[AutoReset]自动重置插件配置已重载" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:58 +msgid "[AutoReset]服务器数据重置成功~" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:425 +msgid "[AutoReset]重置数据中,请稍后..." +msgstr "" + +#: ..\..\AutoResetPlugin.cs:147 +#, csharp-format +msgid "[i:3611]击杀自动重置:{0}({1}/{2})" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:339 +msgid "世界名字已设置为 " +msgstr "" + +#: ..\..\AutoResetPlugin.cs:429 +msgid "" +"[AutoReset]生成地图中:\n" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:297 +msgid "帮助 ({0}/{1}):" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:289 +msgid "/rs name <地图名>" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:325 +msgid "随机" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:179 +#, csharp-format +msgid "[AutoReset]服务器中已经击杀{0}{1}/{2}" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:152 +#, csharp-format +msgid "📝击杀自动重置:{0}({1}/{2})" +msgstr "" + +#: ..\..\AutoResetPlugin.cs:201 +msgid "[AutoReset]{0}s后关闭服务器..." +msgstr "" + +#: ..\..\AutoResetPlugin.cs:207 +msgid "[AutoReset]服务器已开始重置..." +msgstr "" + diff --git a/src/AutoTeam/i18n/en-US.po b/src/AutoTeam/i18n/en-US.po new file mode 100644 index 00000000..3e1db1ec --- /dev/null +++ b/src/AutoTeam/i18n/en-US.po @@ -0,0 +1,41 @@ +msgid "" +msgstr "" +"Project-Id-Version: AutoTeam\n" +"POT-Creation-Date: 2024-09-01 11:28:03+0800\n" +"PO-Revision-Date: 2024-09-01 11:23+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.5\n" + +#: ..\..\AutoTeamPlus.cs:134 +msgid "未配置,可随意切换." +msgstr "Not configured, can freely switch teams." + +#: ..\..\AutoTeamPlus.cs:130 +#, csharp-format +msgid "你的队伍已切换为 {0}." +msgstr "Your team has been switched to {0}." + +#: ..\..\AutoTeamPlus.cs:64 +msgid "用法: /autoteam " +msgstr "Usage: /autoteam " + +#: ..\..\AutoTeamPlus.cs:77 +msgid "AutoTeamPlus 插件已禁用." +msgstr "The AutoTeamPlus plugin has been disabled." + +#: ..\..\AutoTeamPlus.cs:73 +msgid "AutoTeamPlus 插件已启用." +msgstr "The AutoTeamPlus plugin has been enabled." + +#: ..\..\AutoTeamPlus.cs:32 +msgid "[AutoTeam] 重新加载配置完毕。" +msgstr "[AutoTeam] Configuration reloaded successfully." + +#: ..\..\AutoTeamPlus.cs:80 +msgid "无效的操作。请使用 'on' 或 'off'。" +msgstr "Invalid operation. Please use ‘on’ or ‘off’." diff --git a/src/AutoTeam/i18n/template.pot b/src/AutoTeam/i18n/template.pot new file mode 100644 index 00000000..bb326db1 --- /dev/null +++ b/src/AutoTeam/i18n/template.pot @@ -0,0 +1,41 @@ +msgid "" +msgstr "" +"Project-Id-Version: AutoTeam\n" +"POT-Creation-Date: 2024-09-01 11:28:03+0800\n" +"PO-Revision-Date: 2024-09-01 11:28:03+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\AutoTeamPlus.cs:134 +msgid "未配置,可随意切换." +msgstr "" + +#: ..\..\AutoTeamPlus.cs:130 +#, csharp-format +msgid "你的队伍已切换为 {0}." +msgstr "" + +#: ..\..\AutoTeamPlus.cs:64 +msgid "用法: /autoteam " +msgstr "" + +#: ..\..\AutoTeamPlus.cs:77 +msgid "AutoTeamPlus 插件已禁用." +msgstr "" + +#: ..\..\AutoTeamPlus.cs:73 +msgid "AutoTeamPlus 插件已启用." +msgstr "" + +#: ..\..\AutoTeamPlus.cs:32 +msgid "[AutoTeam] 重新加载配置完毕。" +msgstr "" + +#: ..\..\AutoTeamPlus.cs:80 +msgid "无效的操作。请使用 'on' 或 'off'。" +msgstr "" + diff --git a/src/Back/i18n/en-US.po b/src/Back/i18n/en-US.po new file mode 100644 index 00000000..da9a3046 --- /dev/null +++ b/src/Back/i18n/en-US.po @@ -0,0 +1,44 @@ +msgid "" +msgstr "" +"Project-Id-Version: Back\n" +"POT-Creation-Date: 2024-09-01 11:28:03+0800\n" +"PO-Revision-Date: 2024-09-01 11:24+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.5\n" + +#: ..\..\BackPlugin.cs:43 +msgid "返回最后一次死亡的位置" +msgstr "Return to the last death location" + +#: ..\..\BackPlugin.cs:102 +msgid "你还未死亡过" +msgstr "You have not died yet" + +#: ..\..\BackPlugin.cs:97 +#, csharp-format +msgid "BackPlugin: 传送玩家 {0} 时发生错误: {1}" +msgstr "BackPlugin: Error occurred while teleporting player {0}: {1}" + +#: ..\..\BackPlugin.cs:91 +#, csharp-format +msgid "已传送至死亡地点 [c/8DF9D8:<{0} - {1}>]." +msgstr "Teleported to death location [c/8DF9D8:<{0} - {1}>]." + +#: ..\..\BackPlugin.cs:84 +#, csharp-format +msgid "你还需要等待 {0:F} 秒才能再次使用此命令." +msgstr "You need to wait {0:F} seconds before using this command again." + +#: ..\..\BackPlugin.cs:77 +msgid "你尚未复活,无法传送回死亡地点." +msgstr "" +"You have not respawned yet and cannot teleport back to the death location." + +#: ..\..\BackPlugin.cs:32 +msgid "[Back] 重新加载配置完毕。" +msgstr "[Back] Configuration reloaded successfully." diff --git a/src/Back/i18n/template.pot b/src/Back/i18n/template.pot new file mode 100644 index 00000000..756e4e12 --- /dev/null +++ b/src/Back/i18n/template.pot @@ -0,0 +1,43 @@ +msgid "" +msgstr "" +"Project-Id-Version: Back\n" +"POT-Creation-Date: 2024-09-01 11:28:03+0800\n" +"PO-Revision-Date: 2024-09-01 11:28:04+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\BackPlugin.cs:43 +msgid "返回最后一次死亡的位置" +msgstr "" + +#: ..\..\BackPlugin.cs:102 +msgid "你还未死亡过" +msgstr "" + +#: ..\..\BackPlugin.cs:97 +#, csharp-format +msgid "BackPlugin: 传送玩家 {0} 时发生错误: {1}" +msgstr "" + +#: ..\..\BackPlugin.cs:91 +#, csharp-format +msgid "已传送至死亡地点 [c/8DF9D8:<{0} - {1}>]." +msgstr "" + +#: ..\..\BackPlugin.cs:84 +#, csharp-format +msgid "你还需要等待 {0:F} 秒才能再次使用此命令." +msgstr "" + +#: ..\..\BackPlugin.cs:77 +msgid "你尚未复活,无法传送回死亡地点." +msgstr "" + +#: ..\..\BackPlugin.cs:32 +msgid "[Back] 重新加载配置完毕。" +msgstr "" + diff --git a/src/BagPing/i18n/en-US.po b/src/BagPing/i18n/en-US.po new file mode 100644 index 00000000..ae56a115 --- /dev/null +++ b/src/BagPing/i18n/en-US.po @@ -0,0 +1,17 @@ +msgid "" +msgstr "" +"Project-Id-Version: BagPing\n" +"POT-Creation-Date: 2024-09-01 11:20:42+0800\n" +"PO-Revision-Date: 2024-09-01 11:25+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.5\n" + +#: ..\..\BagPing.cs:50 +#, csharp-format +msgid "宝藏袋掉落在坐标({0},{1}),已在小地图上标记!" +msgstr "The Boss Bag has dropped at coordinates ({0},{1}) and has been marked on the mini-map!" diff --git a/src/BagPing/i18n/template.pot b/src/BagPing/i18n/template.pot new file mode 100644 index 00000000..4fd4262e --- /dev/null +++ b/src/BagPing/i18n/template.pot @@ -0,0 +1,17 @@ +msgid "" +msgstr "" +"Project-Id-Version: BagPing\n" +"POT-Creation-Date: 2024-09-01 11:28:04+0800\n" +"PO-Revision-Date: 2024-09-01 11:28:05+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\BagPing.cs:50 +#, csharp-format +msgid "宝藏袋掉落在坐标({0},{1}),已在小地图上标记!" +msgstr "" + diff --git a/src/Challenger/i18n/template.pot b/src/Challenger/i18n/template.pot index af62a59a..921b472b 100644 --- a/src/Challenger/i18n/template.pot +++ b/src/Challenger/i18n/template.pot @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: Challenger\n" -"POT-Creation-Date: 2024-09-01 09:59:49+0800\n" -"PO-Revision-Date: 2024-09-01 09:59:49+0800\n" +"POT-Creation-Date: 2024-09-01 11:28:05+0800\n" +"PO-Revision-Date: 2024-09-01 11:28:05+0800\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -10,67 +10,94 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: GetText.NET Extractor\n" -#: ..\..\Challenger\Challenger.cs:2013 +#: ..\..\Challenger.CNPCs\QueenBee.cs:129 +msgid "谁人惊扰了我的蜂巢!" +msgstr "" + +#: ..\..\Challenger.CProjs\CrystalLeafShot.cs:35 +#: ..\..\Challenger.CProjs\CrystalLeafShot.cs:36 #, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:即将挂起风" +msgid "CrystalLeafShot -> MyEffect 异常:{0}" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:178 -msgid "吱嗡" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:234 +msgid "看我创死你" msgstr "" -#: ..\..\Challenger\Challenger.cs:1956 -#: ..\..\Challenger\Challenger.cs:1957 -msgid "永夜剑辉已启用" +#: ..\..\Challenger\Challenger.cs:60 +msgid "输入 /cenable 来启用挑战模式,再次使用取消" msgstr "" -#: ..\..\Challenger.CNPCs\WallofFlesh.cs:109 -msgid "速度与激情" +#: ..\..\Challenger\Challenger.cs:533 +#, csharp-format +msgid "[c/95CFA6:<挑战者:挖矿套>] 背包已满,还需空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:{1}] ." msgstr "" -#: ..\..\Challenger\Challenger.cs:295 -msgid "陨石回魔 + 3" +#: ..\..\Challenger\Challenger.cs:1867 +msgid "文字提示已取消" msgstr "" -#: ..\..\Challenger\Challenger.cs:1880 -msgid "输入 /cenable 来启用挑战模式,再次使用取消" +#: ..\..\Challenger.CNPCs\Skeletron.cs:162 +msgid "再让我逮到一下你就玩玩" msgstr "" -#: ..\..\Challenger\Challenger.cs:1872 -msgid "文字提示已启用" +#: ..\..\Challenger\Challenger.cs:2006 +#, csharp-format +msgid "{0} 收听了 {1} 天气预报收音广播:不会有风" msgstr "" -#: ..\..\Challenger\Challenger.cs:1310 -msgid "" -"【蜘蛛套装】\n" -"挑战模式奖励:攻击时,给予敌人中毒和剧毒减益\n" -",按“up”键生成一个毒牙药水瓶,砸中敌人时爆炸" +#: ..\..\Challenger\Challenger.cs:1935 +msgid "未启用挑战模式!" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:139 -msgid "诅咒开始应验" +#: ..\..\Challenger\Challenger.cs:2067 +#, csharp-format +msgid "状态异常,使用失败: {0}" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:217 -msgid "疯狗狂叫!!!" +#: ..\..\Challenger.CNPCs\WallofFlesh.cs:99 +msgid "付出代价吧!" msgstr "" -#: ..\..\Challenger.CNPCs\SkeletronHand.cs:106 -msgid "离地牢远点!!!" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:204 +msgid "走位真菜" msgstr "" -#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:80 -msgid "你真的能分清真假血弹吗" +#: ..\..\Challenger.CProjs\Honey.cs:43 +#, csharp-format +msgid "蜂糖罐治疗 + {0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1383 +#: ..\..\Challenger\Challenger.cs:1409 msgid "" -"【皇家凝胶】\n" -"挑战模式奖励:天空开始下凝胶小雨" +"【箭袋】\n" +"挑战模式奖励:无限补充弹药,额外获得BUFF" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:172 -msgid "嗡嗡" +#: ..\..\Challenger\Challenger.cs:1258 +msgid "" +"【化石套装】\n" +"挑战模式奖励:在头上召唤一个琥珀光球,向敌人\n" +"抛出极快的闪电矢" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1271 +msgid "" +"【暗影套装】\n" +"挑战模式奖励:暴击时从玩家周围生成吞噬怪飞弹\n" +"攻击周围敌人,冷却 1秒" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1993 +#, csharp-format +msgid "{0} 收听了 {1} 天气预报收音广播:即将下雨" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1290 +msgid "" +"【死灵套装】\n" +"挑战模式奖励:受到伤害时,向四周飞溅骨头;攻\n" +"击时偶尔发射骨箭" msgstr "" #: ..\..\Challenger\Challenger.cs:1395 @@ -79,68 +106,69 @@ msgid "" "挑战模式奖励:输入“/cf”混乱周围所有敌怪" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:129 -msgid "谁人惊扰了我的蜂巢!" +#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:39 +#: ..\..\Challenger.CNPCs\Skeletron.cs:165 +msgid "创死你" msgstr "" -#: ..\..\Challenger\Challenger.cs:1380 +#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:92 +msgid "怒不可遏" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1412 msgid "" -"【阴森套装】\n" -"挑战模式奖励:使用鞭子时,甩出蝙蝠或南\n" -"瓜头" +"【挥发明胶】\n" +"挑战模式奖励:击中敌人有概率掉落碎魔晶,珍珠\n" +"石,凝胶等" msgstr "" -#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:103 -msgid "糊你一脸" +#: ..\..\Challenger.CNPCs\Skeletron.cs:149 +msgid "惨朽不堪" msgstr "" -#: ..\..\Challenger\Challenger.cs:1320 -msgid "" -"【禁戒套装】\n" -"挑战模式奖励:释放自动寻的灵焰魂火攻击附近的\n" -"敌人" +#: ..\..\Challenger\Challenger.cs:2048 +#, csharp-format +msgid "{0} 收听了 {1} 世界先知广播:{2}灯笼夜" msgstr "" -#: ..\..\Challenger.CNPCs\SlimeKing.cs:181 -msgid "你感觉寒冷刺骨" +#: ..\..\Challenger.CProjs\BeetleHeal.cs:53 +#, csharp-format +msgid "你被 {0} 治疗了 {1} 点生命值" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:42 -msgid "呜哇哇" +#: ..\..\Challenger.CNPCs\QueenBee.cs:175 +msgid "嗡嗡嗡嗡" msgstr "" -#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:107 -msgid "哇哇嗷" +#: ..\..\Challenger.CNPCs\Deerclops.cs:145 +msgid "你将受到灭顶之灾" msgstr "" -#: ..\..\Challenger.CNPCs\SlimeKing.cs:157 -msgid "史莱姆王习得冰魔法归来" +#: ..\..\Challenger\Challenger.cs:1928 +#, csharp-format +msgid "挑战模式启用,祝您愉快。[操作来自:{0}]" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:207 -msgid "猪突猛进!" +#: ..\..\Challenger.CNPCs\Skeletron.cs:139 +msgid "诅咒开始应验" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:119 -msgid "刺啦" +#: ..\..\Challenger.CNPCs\SkeletronHand.cs:103 +msgid "看我一记耳光" msgstr "" -#: ..\..\Challenger\Challenger.cs:1369 -msgid "" -"【蘑菇套装】\n" -"挑战模式奖励:射弹会不稳定地留下蘑菇" +#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:107 +msgid "哇哇嗷" msgstr "" -#: ..\..\Challenger\Challenger.cs:1295 -msgid "" -"【蜜蜂套装】\n" -"挑战模式奖励:给予永久的蜂蜜增益;不间断地向\n" -"四周撒蜂糖罐,玩家接触后回血并给予15秒蜂蜜增\n" -"益;对玩家自身的治疗量略低于对其他玩家" +#: ..\..\Challenger\Challenger.cs:1956 +#: ..\..\Challenger\Challenger.cs:1957 +msgid "永夜剑辉已启用" msgstr "" -#: ..\..\Challenger\Challenger.cs:1940 -msgid "请在游戏里使用该指令" +#: ..\..\Challenger.CProjs\BloodBagProj.cs:125 +#, csharp-format +msgid "血包治疗 + {0}" msgstr "" #: ..\..\Challenger\Challenger.cs:1300 @@ -150,29 +178,32 @@ msgid "" "(仅对非boss生物和非高血量怪物有效)" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:36 -msgid "毒牙咬击" +#: ..\..\Challenger\Challenger.cs:1356 +msgid "" +"【提基套装】\n" +"挑战模式奖励:增加20血上限,在鞭子的轨迹上留\n" +"下孢子" msgstr "" -#: ..\..\Challenger\Challenger.cs:1271 -msgid "" -"【暗影套装】\n" -"挑战模式奖励:暴击时从玩家周围生成吞噬怪飞弹\n" -"攻击周围敌人,冷却 1秒" +#: ..\..\Challenger.CNPCs\Skeletron.cs:115 +msgid "被封印的骷髅帝王苏醒" msgstr "" -#: ..\..\Challenger\Challenger.cs:1114 -#, csharp-format -msgid "魔力值上限 - {0}" +#: ..\..\Challenger\Challenger.cs:1305 +msgid "" +"【狱炎套装】\n" +"挑战模式奖励:免疫岩浆,给予永久的地狱火增益" msgstr "" -#: ..\..\Challenger\Challenger.cs:533 -#, csharp-format -msgid "[c/95CFA6:<挑战者:挖矿套>] 背包已满,还需空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:{1}] ." +#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:90 +msgid "虚虚实实,实实虚虚" msgstr "" -#: ..\..\Challenger\Challenger.cs:64 -msgid "输入 /ctip 来启用内容提示,如各种物品的强化文字提示,再次使用取消" +#: ..\..\Challenger\Challenger.cs:1248 +msgid "" +"【垂钓套装】\n" +"挑战模式奖励:给予永久的声纳、钓鱼、宝匣、镇\n" +"定Buff" msgstr "" #: ..\..\Challenger\Challenger.cs:1253 @@ -182,81 +213,87 @@ msgid "" "释放烟雾" msgstr "" -#: ..\..\Challenger\Challenger.cs:1392 -#, csharp-format +#: ..\..\Challenger\Challenger.cs:1858 +msgid "输入 /ctip 来启用内容提示,如各种物品装备的修改文字提示,再次使用取消" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1315 msgid "" -"【忍者大师装备】\n" -"挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" -"{0}秒" +"【水晶刺客套装】\n" +"挑战模式奖励:当有敌人在附近时,自身释放出水\n" +"晶碎片;若玩家被击中,释放出更强大的碎片" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:162 -msgid "再让我逮到一下你就玩玩" +#: ..\..\Challenger.CNPCs\Deerclops.cs:158 +msgid "拆掉拆掉!" msgstr "" -#: ..\..\Challenger\Challenger.cs:1189 -msgid "冲刺类饰品冷却完成" +#: ..\..\Challenger\Challenger.cs:1276 +msgid "" +"【陨石套装】\n" +"挑战模式奖励:暴击时恢复些许魔力,间歇地降下\n" +"高伤害落星攻击敌人" msgstr "" -#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:68 -msgid "畸形怪脑发现了新鲜的脑子" +#: ..\..\Challenger\Challenger.cs:1325 +msgid "" +"【寒霜套装】\n" +"挑战模式奖励:你周围开始下雪" msgstr "" -#: ..\..\Challenger\Challenger.cs:2056 -#, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:顺其自然,不会发生任何事件" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:195 +msgid "你找到那颗子弹了吗" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:141 -msgid "不许抢我的蜂蜜" +#: ..\..\Challenger.CNPCs\Deerclops.cs:123 +msgid "远方的巨兽将会摧毁你所拥有的一切" msgstr "" -#: ..\..\Challenger\Challenger.cs:1258 -msgid "" -"【化石套装】\n" -"挑战模式奖励:在头上召唤一个琥珀光球,向敌人\n" -"抛出极快的闪电矢" +#: ..\..\Challenger\Challenger.cs:529 +#, csharp-format +msgid "[c/95CFA6:<挑战者:挖矿套>] 连锁挖掘了 [c/95CFA6: {0} {1}]." msgstr "" -#: ..\..\Challenger.CNPCs\SkeletronHand.cs:100 -msgid "就这还想打倒我骷髅王爷爷" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:207 +msgid "猪突猛进!" msgstr "" -#: ..\..\Challenger.CNPCs\WallofFleshEye.cs:101 -msgid "这么想看清我的卡姿兰大眼是吧" +#: ..\..\Challenger\Challenger.cs:1398 +msgid "" +"【蠕虫围巾】\n" +"挑战模式奖励:免疫寒冷,霜火,灵液和咒火" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:168 -msgid "想再贴贴吗?" +#: ..\..\Challenger\Challenger.cs:1880 +msgid "输入 /cenable 来启用挑战模式,再次使用取消" msgstr "" -#: ..\..\Challenger\Challenger.cs:1862 -msgid "挑战模式已关闭,无法开启文字提示" +#: ..\..\Challenger\Challenger.cs:2019 +#, csharp-format +msgid "{0} 收听了 {1} 天气预报收音广播:即将挂起狂风" msgstr "" -#: ..\..\Challenger\Challenger.cs:2006 +#: ..\..\Challenger\Challenger.cs:2052 #, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:不会有风" +msgid "{0} 收听了 {1} 世界先知广播:{2}有流星" msgstr "" -#: ..\..\Challenger\Challenger.cs:1867 -msgid "文字提示已取消" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:157 +msgid "史莱姆王习得冰魔法归来" msgstr "" -#: ..\..\Challenger.CNPCs\Deerclops.cs:158 -msgid "拆掉拆掉!" +#: ..\..\Challenger\Challenger.cs:1369 +msgid "" +"【蘑菇套装】\n" +"挑战模式奖励:射弹会不稳定地留下蘑菇" msgstr "" -#: ..\..\Challenger.CNPCs\Deerclops.cs:123 -msgid "远方的巨兽将会摧毁你所拥有的一切" +#: ..\..\Challenger.CNPCs\Skeletron.cs:127 +msgid "嘎吱作响" msgstr "" -#: ..\..\Challenger\Challenger.cs:1389 -#, csharp-format -msgid "" -"【分趾袜】\n" -"挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" -"{0}秒" +#: ..\..\Challenger.CNPCs\Skeletron.cs:168 +msgid "想再贴贴吗?" msgstr "" #: ..\..\Challenger\Challenger.cs:1263 @@ -266,105 +303,93 @@ msgid "" "血量随着敌怪数目增多吸血量-1,冷却 5秒" msgstr "" -#: ..\..\Challenger\Challenger.cs:1290 +#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:119 +msgid "刺啦" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1401 msgid "" -"【死灵套装】\n" -"挑战模式奖励:受到伤害时,向四周飞溅骨头;攻\n" -"击时偶尔发射骨箭" +"【收音机零件】\n" +"挑战模式奖励:输入“/cf”收听天气预报,在困难\n" +"模式中可以收听世界先知预报" msgstr "" -#: ..\..\Challenger\Challenger.cs:766 -#: ..\..\Challenger\Challenger.cs:813 -#: ..\..\Challenger\Challenger.cs:873 -#: ..\..\Challenger\Challenger.cs:910 -#: ..\..\Challenger\Challenger.cs:1047 -#, csharp-format -msgid "生命值上限 + {0}" +#: ..\..\Challenger\Challenger.cs:2063 +msgid "没有套装效果启用" msgstr "" -#: ..\..\Challenger\Challenger.cs:2031 -#, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:即将刮起沙尘暴" +#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:82 +msgid "有毒的鳞甲炸裂开来" msgstr "" -#: ..\..\Challenger\Challenger.cs:2019 -#, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:即将挂起狂风" +#: ..\..\Challenger.CNPCs\QueenBee.cs:178 +msgid "吱嗡" msgstr "" -#: ..\..\Challenger.CNPCs\SkeletronHand.cs:103 -msgid "看我一记耳光" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:169 +msgid "寒风呼啸" msgstr "" -#: ..\..\Challenger.CNPCs\SlimeKing.cs:210 -msgid "小辣鸡" +#: ..\..\Challenger.CNPCs\WallofFlesh.cs:119 +msgid "咬碎你" msgstr "" -#: ..\..\Challenger.CProjs\BloodBagProj.cs:99 -#, csharp-format -msgid "敌怪治疗 + {0}" +#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:123 +msgid "小心我爆炸的鳞甲" msgstr "" -#: ..\..\Challenger.CProjs\Honey.cs:43 +#: ..\..\Challenger\Challenger.cs:766 +#: ..\..\Challenger\Challenger.cs:813 +#: ..\..\Challenger\Challenger.cs:873 +#: ..\..\Challenger\Challenger.cs:910 +#: ..\..\Challenger\Challenger.cs:1047 #, csharp-format -msgid "蜂糖罐治疗 + {0}" +msgid "生命值上限 + {0}" msgstr "" -#: ..\..\Challenger.CNPCs\WallofFlesh.cs:87 -msgid "罪恶血祭召唤远古守卫" +#: ..\..\Challenger\Challenger.cs:1189 +msgid "冲刺类饰品冷却完成" msgstr "" -#: ..\..\Challenger\Challenger.cs:1362 -msgid "" -"【甲虫套装】\n" -"挑战模式奖励:增加60血上限,敌人的伤害的一部\n" -"分会治疗周围的队友并给予buff;当装备帕拉丁盾\n" -"或其上级合成物时,帕拉丁之锤伤害翻倍" +#: ..\..\Challenger.CNPCs\SkeletronHand.cs:63 +msgid "你打痛我左手了!!!" msgstr "" -#: ..\..\Challenger\Challenger.cs:1935 -msgid "未启用挑战模式!" +#: ..\..\Challenger.CNPCs\QueenBee.cs:172 +msgid "嗡嗡" msgstr "" -#: ..\..\Challenger\Challenger.cs:1412 -msgid "" -"【挥发明胶】\n" -"挑战模式奖励:击中敌人有概率掉落碎魔晶,珍珠\n" -"石,凝胶等" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:217 +msgid "疯狗狂叫!!!" msgstr "" -#: ..\..\Challenger\Challenger.cs:1356 -msgid "" -"【提基套装】\n" -"挑战模式奖励:增加20血上限,在鞭子的轨迹上留\n" -"下孢子" +#: ..\..\Challenger\Challenger.cs:107 +msgid "[挑战者模式]重新加载配置完毕。" msgstr "" -#: ..\..\Challenger\Challenger.cs:1398 -msgid "" -"【蠕虫围巾】\n" -"挑战模式奖励:免疫寒冷,霜火,灵液和咒火" +#: ..\..\Challenger.CNPCs\WallofFleshEye.cs:101 +msgid "这么想看清我的卡姿兰大眼是吧" msgstr "" -#: ..\..\Challenger.CNPCs\Deerclops.cs:162 -msgid "嗷嗷" +#: ..\..\Challenger\Challenger.cs:1093 +#, csharp-format +msgid "魔力值上限 + {0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:107 -msgid "[挑战者模式]重新加载配置完毕。" +#: ..\..\Challenger\Challenger.cs:1346 +msgid "" +"【叶绿套装】\n" +"挑战模式奖励:释放不精确的叶绿水晶矢,丛林之\n" +"力给你更高的生命上限" msgstr "" -#: ..\..\Challenger.CProjs\BeetleHeal.cs:52 +#: ..\..\Challenger\Challenger.cs:2056 #, csharp-format -msgid "甲虫治疗 + {0} 治疗者:{1}" -msgstr "" - -#: ..\..\Challenger\Challenger.cs:60 -msgid "输入 /cenable 来启用挑战模式,再次使用取消" +msgid "{0} 收听了 {1} 天气预报收音广播:顺其自然,不会发生任何事件" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:82 -msgid "有毒的鳞甲炸裂开来" +#: ..\..\Challenger\Challenger.cs:31 +msgid "增强游戏难度,更好的游戏体验" msgstr "" #: ..\..\Challenger\Challenger.cs:2026 @@ -372,109 +397,77 @@ msgstr "" msgid "{0} 收听了 {1} 天气预报收音广播:不会有沙尘暴" msgstr "" -#: ..\..\Challenger\Challenger.cs:1425 -msgid "世界已开启挑战模式,祝您好运!" -msgstr "" - -#: ..\..\Challenger\Challenger.cs:1284 +#: ..\..\Challenger\Challenger.cs:1375 msgid "" -"【丛林套装】\n" -"挑战模式奖励:间歇地从玩家周围生成伤害性的孢子" +"【幽魂套装】\n" +"挑战模式奖励:根据头饰选择增加40血上限或80魔\n" +"力上限;召唤 2个幽魂诅咒环绕玩家,向附近敌人攻击" msgstr "" -#: ..\..\Challenger\Challenger.cs:2040 +#: ..\..\Challenger\Challenger.cs:1114 #, csharp-format -msgid "{0} 收听了 {1} 世界先知广播:{2}血月" -msgstr "" - -#: ..\..\Challenger\Challenger.cs:1429 -msgid "世界已关闭挑战模式,快乐游玩吧" -msgstr "" - -#: ..\..\Challenger\Challenger.cs:1315 -msgid "" -"【水晶刺客套装】\n" -"挑战模式奖励:当有敌人在附近时,自身释放出水\n" -"晶碎片;若玩家被击中,释放出更强大的碎片" +msgid "魔力值上限 - {0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1339 +#: ..\..\Challenger\Challenger.cs:1310 msgid "" -"【神圣套装】\n" -"挑战模式奖励:击中敌人时召唤光与暗剑气,输入\n" -"“/cf”切换剑气类型" -msgstr "" - -#: ..\..\Challenger\Challenger.cs:2067 -#, csharp-format -msgid "状态异常,使用失败: {0}" +"【蜘蛛套装】\n" +"挑战模式奖励:攻击时,给予敌人中毒和剧毒减益\n" +",按“up”键生成一个毒牙药水瓶,砸中敌人时爆炸" msgstr "" -#: ..\..\Challenger.CNPCs\WallofFlesh.cs:99 -msgid "付出代价吧!" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:183 +msgid "燃烧!无法熄灭的火焰" msgstr "" -#: ..\..\Challenger.CProjs\BeetleHeal.cs:53 +#: ..\..\Challenger.CProjs\BeetleHeal.cs:52 #, csharp-format -msgid "你被 {0} 治疗了 {1} 点生命值" -msgstr "" - -#: ..\..\Challenger.CNPCs\SlimeKing.cs:207 -msgid "连我都打不过,回家喝奶吧你" +msgid "甲虫治疗 + {0} 治疗者:{1}" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:70 -msgid "邪恶的蠕虫寻找新的受害者" +#: ..\..\Challenger\Challenger.cs:1429 +msgid "世界已关闭挑战模式,快乐游玩吧" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:92 -msgid "怒不可遏" +#: ..\..\Challenger\Challenger.cs:1295 +msgid "" +"【蜜蜂套装】\n" +"挑战模式奖励:给予永久的蜂蜜增益;不间断地向\n" +"四周撒蜂糖罐,玩家接触后回血并给予15秒蜂蜜增\n" +"益;对玩家自身的治疗量略低于对其他玩家" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:175 -msgid "嗡嗡嗡嗡" +#: ..\..\Challenger\Challenger.cs:1872 +msgid "文字提示已启用" msgstr "" -#: ..\..\Challenger.CNPCs\QueenBee.cs:153 -msgid "毒刺射你一脸" +#: ..\..\Challenger.CNPCs\QueenBee.cs:141 +msgid "不许抢我的蜂蜜" msgstr "" -#: ..\..\Challenger\Challenger.cs:1093 +#: ..\..\Challenger.CProjs\BeetleHeal.cs:66 +#: ..\..\Challenger.CProjs\BeetleHeal.cs:67 #, csharp-format -msgid "魔力值上限 + {0}" +msgid "代码异常4:{0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1248 +#: ..\..\Challenger\Challenger.cs:1404 msgid "" -"【垂钓套装】\n" -"挑战模式奖励:给予永久的声纳、钓鱼、宝匣、镇\n" -"定Buff" -msgstr "" - -#: ..\..\Challenger\Challenger.cs:1858 -msgid "输入 /ctip 来启用内容提示,如各种物品装备的修改文字提示,再次使用取消" -msgstr "" - -#: ..\..\Challenger\Challenger.cs:529 -#, csharp-format -msgid "[c/95CFA6:<挑战者:挖矿套>] 连锁挖掘了 [c/95CFA6: {0} {1}]." -msgstr "" - -#: ..\..\Challenger\Challenger.cs:2048 -#, csharp-format -msgid "{0} 收听了 {1} 世界先知广播:{2}灯笼夜" +"【蜜蜂背包】\n" +"挑战模式奖励:不间断地向四周扔出毒蜂罐,爆炸\n" +"后释放一只蜜蜂" msgstr "" -#: ..\..\Challenger\Challenger.cs:197 -msgid "闪避锁血成功!" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:210 +msgid "小辣鸡" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:234 -msgid "看我创死你" +#: ..\..\Challenger.CNPCs\QueenBee.cs:153 +msgid "毒刺射你一脸" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:183 -msgid "燃烧!无法熄灭的火焰" +#: ..\..\Challenger.CNPCs\WallofFlesh.cs:87 +msgid "罪恶血祭召唤远古守卫" msgstr "" #: ..\..\Challenger\Challenger.cs:2036 @@ -482,80 +475,62 @@ msgstr "" msgid "{0} 收听了 {1} 世界先知广播:{2}满月" msgstr "" -#: ..\..\Challenger.CNPCs\WallofFlesh.cs:119 -msgid "咬碎你" -msgstr "" - -#: ..\..\Challenger\Challenger.cs:1401 +#: ..\..\Challenger\Challenger.cs:1392 +#, csharp-format msgid "" -"【收音机零件】\n" -"挑战模式奖励:输入“/cf”收听天气预报,在困难\n" -"模式中可以收听世界先知预报" +"【忍者大师装备】\n" +"挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" +"{0}秒" msgstr "" -#: ..\..\Challenger\Challenger.cs:1276 -msgid "" -"【陨石套装】\n" -"挑战模式奖励:暴击时恢复些许魔力,间歇地降下\n" -"高伤害落星攻击敌人" +#: ..\..\Challenger\Challenger.cs:2031 +#, csharp-format +msgid "{0} 收听了 {1} 天气预报收音广播:即将刮起沙尘暴" msgstr "" -#: ..\..\Challenger\Challenger.cs:1993 -#, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:即将下雨" +#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:36 +msgid "毒牙咬击" msgstr "" -#: ..\..\Challenger\Challenger.cs:2063 -msgid "没有套装效果启用" +#: ..\..\Challenger.CNPCs\SkeletronHand.cs:100 +msgid "就这还想打倒我骷髅王爷爷" msgstr "" -#: ..\..\Challenger\Challenger.cs:777 -#: ..\..\Challenger\Challenger.cs:824 -#: ..\..\Challenger\Challenger.cs:884 -#: ..\..\Challenger\Challenger.cs:921 -#: ..\..\Challenger\Challenger.cs:1071 +#: ..\..\Challenger\Challenger.cs:2040 #, csharp-format -msgid "生命值上限 - {0}" +msgid "{0} 收听了 {1} 世界先知广播:{2}血月" msgstr "" #: ..\..\Challenger.CNPCs\Deerclops.cs:135 msgid "冰雪从天而降" msgstr "" -#: ..\..\Challenger.CProjs\CrystalLeafShot.cs:35 -#: ..\..\Challenger.CProjs\CrystalLeafShot.cs:36 -#, csharp-format -msgid "CrystalLeafShot -> MyEffect 异常:{0}" -msgstr "" - -#: ..\..\Challenger\Challenger.cs:1346 +#: ..\..\Challenger\Challenger.cs:1320 msgid "" -"【叶绿套装】\n" -"挑战模式奖励:释放不精确的叶绿水晶矢,丛林之\n" -"力给你更高的生命上限" -msgstr "" - -#: ..\..\Challenger.CNPCs\SlimeKing.cs:204 -msgid "走位真菜" +"【禁戒套装】\n" +"挑战模式奖励:释放自动寻的灵焰魂火攻击附近的\n" +"敌人" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:195 -msgid "你找到那颗子弹了吗" +#: ..\..\Challenger\Challenger.cs:1951 +#: ..\..\Challenger\Challenger.cs:1952 +msgid "神圣剑辉已启用" msgstr "" -#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:90 -msgid "虚虚实实,实实虚虚" +#: ..\..\Challenger.CProjs\BloodBagProj.cs:99 +#, csharp-format +msgid "敌怪治疗 + {0}" msgstr "" -#: ..\..\Challenger\Challenger.cs:1404 +#: ..\..\Challenger\Challenger.cs:1380 msgid "" -"【蜜蜂背包】\n" -"挑战模式奖励:不间断地向四周扔出毒蜂罐,爆炸\n" -"后释放一只蜜蜂" +"【阴森套装】\n" +"挑战模式奖励:使用鞭子时,甩出蝙蝠或南\n" +"瓜头" msgstr "" -#: ..\..\Challenger.CNPCs\SlimeKing.cs:169 -msgid "寒风呼啸" +#: ..\..\Challenger.CNPCs\SkeletronHand.cs:106 +msgid "离地牢远点!!!" msgstr "" #: ..\..\Challenger\Challenger.cs:1351 @@ -565,73 +540,78 @@ msgid "" "炸碎片" msgstr "" -#: ..\..\Challenger\Challenger.cs:1409 +#: ..\..\Challenger\Challenger.cs:1243 msgid "" -"【箭袋】\n" -"挑战模式奖励:无限补充弹药,额外获得BUFF" +"【挖矿套装】\n" +"挑战模式奖励:给予永久的挖矿、糖果冲刺Buff\n" +"启用连锁挖矿能力" msgstr "" -#: ..\..\Challenger.CNPCs\Deerclops.cs:145 -msgid "你将受到灭顶之灾" +#: ..\..\Challenger.CNPCs\SkeletronHand.cs:67 +msgid "你打痛我右手了!!!" msgstr "" -#: ..\..\Challenger.CProjs\BeetleHeal.cs:66 -#: ..\..\Challenger.CProjs\BeetleHeal.cs:67 -#, csharp-format -msgid "代码异常4:{0}" +#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:70 +msgid "邪恶的蠕虫寻找新的受害者" msgstr "" -#: ..\..\Challenger\Challenger.cs:1978 -#, csharp-format -msgid "{0} 发动了混乱之脑迷惑,成功迷惑了附近 {1}个敌人" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:181 +msgid "你感觉寒冷刺骨" msgstr "" -#: ..\..\Challenger\Challenger.cs:1928 +#: ..\..\Challenger\Challenger.cs:2044 #, csharp-format -msgid "挑战模式启用,祝您愉快。[操作来自:{0}]" +msgid "{0} 收听了 {1} 世界先知广播:明天日食" msgstr "" -#: ..\..\Challenger\Challenger.cs:1305 -msgid "" -"【狱炎套装】\n" -"挑战模式奖励:免疫岩浆,给予永久的地狱火增益" +#: ..\..\Challenger\Challenger.cs:1940 +msgid "请在游戏里使用该指令" msgstr "" -#: ..\..\Challenger\Challenger.cs:1386 +#: ..\..\Challenger\Challenger.cs:1389 #, csharp-format msgid "" -"【克苏鲁之盾】\n" +"【分趾袜】\n" "挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" "{0}秒" msgstr "" -#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:230 -msgid "就这就这!" +#: ..\..\Challenger.CNPCs\Deerclops.cs:162 +msgid "嗷嗷" msgstr "" -#: ..\..\Challenger\Challenger.cs:1375 +#: ..\..\Challenger\Challenger.cs:197 +msgid "闪避锁血成功!" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:2013 +#, csharp-format +msgid "{0} 收听了 {1} 天气预报收音广播:即将挂起风" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1339 msgid "" -"【幽魂套装】\n" -"挑战模式奖励:根据头饰选择增加40血上限或80魔\n" -"力上限;召唤 2个幽魂诅咒环绕玩家,向附近敌人攻击" +"【神圣套装】\n" +"挑战模式奖励:击中敌人时召唤光与暗剑气,输入\n" +"“/cf”切换剑气类型" msgstr "" -#: ..\..\Challenger.CNPCs\SkeletronHand.cs:67 -msgid "你打痛我右手了!!!" +#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:80 +msgid "你真的能分清真假血弹吗" msgstr "" -#: ..\..\Challenger.CNPCs\SkeletronHand.cs:63 -msgid "你打痛我左手了!!!" +#: ..\..\Challenger\Challenger.cs:1383 +msgid "" +"【皇家凝胶】\n" +"挑战模式奖励:天空开始下凝胶小雨" msgstr "" -#: ..\..\Challenger\Challenger.cs:2052 -#, csharp-format -msgid "{0} 收听了 {1} 世界先知广播:{2}有流星" +#: ..\..\Challenger\Challenger.cs:1425 +msgid "世界已开启挑战模式,祝您好运!" msgstr "" -#: ..\..\Challenger\Challenger.cs:1467 -#: ..\..\Challenger\Challenger.cs:1468 -msgid "Challenger.OnServerLeave异常3:" +#: ..\..\Challenger.CNPCs\SlimeKing.cs:191 +msgid "史莱姆王发怒了" msgstr "" #: ..\..\Challenger\Challenger.cs:1915 @@ -639,69 +619,89 @@ msgstr "" msgid "挑战模式已取消,您觉得太难了?[操作来自:{0}]" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:127 -msgid "嘎吱作响" +#: ..\..\Challenger\Challenger.cs:1862 +msgid "挑战模式已关闭,无法开启文字提示" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsBody.cs:123 -msgid "小心我爆炸的鳞甲" +#: ..\..\Challenger\Challenger.cs:295 +msgid "陨石回魔 + 3" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:115 -msgid "被封印的骷髅帝王苏醒" +#: ..\..\Challenger\Challenger.cs:1386 +#, csharp-format +msgid "" +"【克苏鲁之盾】\n" +"挑战模式奖励:冲刺时获得一小段无敌时间,冷却\n" +"{0}秒" msgstr "" -#: ..\..\Challenger\Challenger.cs:1325 +#: ..\..\Challenger\Challenger.cs:1284 msgid "" -"【寒霜套装】\n" -"挑战模式奖励:你周围开始下雪" +"【丛林套装】\n" +"挑战模式奖励:间歇地从玩家周围生成伤害性的孢子" msgstr "" -#: ..\..\Challenger\Challenger.cs:1999 -#, csharp-format -msgid "{0} 收听了 {1} 天气预报收音广播:不会下雨" +#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:103 +msgid "糊你一脸" msgstr "" -#: ..\..\Challenger\Challenger.cs:31 -msgid "增强游戏难度,更好的游戏体验" +#: ..\..\Challenger.CNPCs\BrainofCthulhu.cs:68 +msgid "畸形怪脑发现了新鲜的脑子" msgstr "" -#: ..\..\Challenger\Challenger.cs:1951 -#: ..\..\Challenger\Challenger.cs:1952 -msgid "神圣剑辉已启用" +#: ..\..\Challenger\Challenger.cs:777 +#: ..\..\Challenger\Challenger.cs:824 +#: ..\..\Challenger\Challenger.cs:884 +#: ..\..\Challenger\Challenger.cs:921 +#: ..\..\Challenger\Challenger.cs:1071 +#, csharp-format +msgid "生命值上限 - {0}" msgstr "" -#: ..\..\Challenger.CProjs\BloodBagProj.cs:125 -#, csharp-format -msgid "血包治疗 + {0}" +#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:42 +msgid "呜哇哇" msgstr "" -#: ..\..\Challenger.CNPCs\EaterofWorldsHead.cs:39 -#: ..\..\Challenger.CNPCs\Skeletron.cs:165 -msgid "创死你" +#: ..\..\Challenger\Challenger.cs:64 +msgid "输入 /ctip 来启用内容提示,如各种物品的强化文字提示,再次使用取消" msgstr "" -#: ..\..\Challenger\Challenger.cs:2044 +#: ..\..\Challenger\Challenger.cs:1978 #, csharp-format -msgid "{0} 收听了 {1} 世界先知广播:明天日食" +msgid "{0} 发动了混乱之脑迷惑,成功迷惑了附近 {1}个敌人" msgstr "" -#: ..\..\Challenger\Challenger.cs:1243 -msgid "" -"【挖矿套装】\n" -"挑战模式奖励:给予永久的挖矿、糖果冲刺Buff\n" -"启用连锁挖矿能力" +#: ..\..\Challenger.CNPCs\EyeofCthulhu.cs:230 +msgid "就这就这!" msgstr "" #: ..\..\Challenger\Challenger.cs:68 msgid "输入 /cf 来实现某些技能的或状态的切换" msgstr "" -#: ..\..\Challenger.CNPCs\SlimeKing.cs:191 -msgid "史莱姆王发怒了" +#: ..\..\Challenger.CNPCs\WallofFlesh.cs:109 +msgid "速度与激情" msgstr "" -#: ..\..\Challenger.CNPCs\Skeletron.cs:149 -msgid "惨朽不堪" +#: ..\..\Challenger\Challenger.cs:1467 +#: ..\..\Challenger\Challenger.cs:1468 +msgid "Challenger.OnServerLeave异常3:" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1999 +#, csharp-format +msgid "{0} 收听了 {1} 天气预报收音广播:不会下雨" +msgstr "" + +#: ..\..\Challenger\Challenger.cs:1362 +msgid "" +"【甲虫套装】\n" +"挑战模式奖励:增加60血上限,敌人的伤害的一部\n" +"分会治疗周围的队友并给予buff;当装备帕拉丁盾\n" +"或其上级合成物时,帕拉丁之锤伤害翻倍" +msgstr "" + +#: ..\..\Challenger.CNPCs\SlimeKing.cs:207 +msgid "连我都打不过,回家喝奶吧你" msgstr "" diff --git a/src/HelpPlus/i18n/template.pot b/src/HelpPlus/i18n/template.pot new file mode 100644 index 00000000..1d0ac82d --- /dev/null +++ b/src/HelpPlus/i18n/template.pot @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"Project-Id-Version: HelpPlus\n" +"POT-Creation-Date: 2024-09-01 11:28:06+0800\n" +"PO-Revision-Date: 2024-09-01 11:28:06+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Help.cs:46 +msgid "[HelpPlus]插件配置已重载!" +msgstr "" + +#: ..\..\Help.cs:257 +msgid "*此命令不记录命令参数" +msgstr "" + +#: ..\..\Help.cs:185 +#, csharp-format +msgid "无效用法.正确用法: {0}help <命令/页码>" +msgstr "" + +#: ..\..\Help.cs:203 +msgid "命令列表 ({0}/{1}):" +msgstr "" + +#: ..\..\Help.cs:218 +msgid "无效命令." +msgstr "" + +#: ..\..\Help.cs:247 +#, csharp-format +msgid "权限: {0}" +msgstr "" + +#: ..\..\Help.cs:252 +msgid "*此命令只能游戏内执行" +msgstr "" + +#: ..\..\Help.cs:243 +#, csharp-format +msgid "别名: [c/00ffff:{0}]" +msgstr "" + +#: ..\..\Help.cs:249 +#, csharp-format +msgid "来源插件: [c/8500ff:{0}]" +msgstr "" + +#: ..\..\Help.cs:247 +msgid "[c/c2ff39:无权限限制]" +msgstr "" + +#: ..\..\Help.cs:228 +#, csharp-format +msgid "{0}{1}的帮助:" +msgstr "" + +#: ..\..\Help.cs:224 +msgid "你没有权限查询此命令." +msgstr "" + +#: ..\..\Help.cs:204 +#, csharp-format +msgid "输入 {0}help {{0}} 翻页." +msgstr "" + +#: ..\..\Help.cs:260 +msgid "*本插件只能查询主命令权限,详细权限请使用/whynot查看!" +msgstr "" + diff --git a/src/MapTp/i18n/en-US.po b/src/MapTp/i18n/en-US.po new file mode 100644 index 00000000..70c95e48 --- /dev/null +++ b/src/MapTp/i18n/en-US.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: MapTp\n" +"POT-Creation-Date: 2024-09-01 11:20:45+0800\n" +"PO-Revision-Date: 2024-09-01 11:27+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.5\n" + +#: ..\..\MapTeleport.cs:52 +msgid "您正在尝试传送到实心方块中。请在地图上选择一个不包含实心方块的地方,然后重试." +msgstr "You are attempting to teleport into a solid block. Please select a location on the map that does not contain solid blocks and try again." diff --git a/src/MapTp/i18n/template.pot b/src/MapTp/i18n/template.pot new file mode 100644 index 00000000..cb025e14 --- /dev/null +++ b/src/MapTp/i18n/template.pot @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: MapTp\n" +"POT-Creation-Date: 2024-09-01 11:28:07+0800\n" +"PO-Revision-Date: 2024-09-01 11:28:07+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\MapTeleport.cs:52 +msgid "您正在尝试传送到实心方块中。请在地图上选择一个不包含实心方块的地方,然后重试." +msgstr "" + diff --git a/src/TeleportRequest/i18n/en-US.po b/src/TeleportRequest/i18n/en-US.po new file mode 100644 index 00000000..f5e4aa7d --- /dev/null +++ b/src/TeleportRequest/i18n/en-US.po @@ -0,0 +1,147 @@ +msgid "" +msgstr "" +"Project-Id-Version: TeleportRequest\n" +"POT-Creation-Date: 2024-09-01 11:28:07+0800\n" +"PO-Revision-Date: 2024-09-01 11:32+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.5\n" + +#: ..\..\TeleportRequest.cs:98 +msgid "自动拒绝所有人的传送请求." +msgstr "Automatically deny all teleport requests." + +#: ..\..\TeleportRequest.cs:137 +#, csharp-format +msgid "格式错误! 正确格式为: {0}tpa <玩家>" +msgstr "Syntax error! The correct syntax is: {0}tpa " + +#: ..\..\TeleportRequest.cs:269 +#, csharp-format +msgid "{0}自动拒绝传送请求." +msgstr "{0} automatically denies teleport requests." + +#: ..\..\TeleportRequest.cs:214 +#, csharp-format +msgid "格式错误! 正确格式为: {0}tpahere <玩家>" +msgstr "Syntax error! The correct syntax is: {0}tpahere " + +#: ..\..\TeleportRequest.cs:169 ..\..\TeleportRequest.cs:200 ..\..\TeleportRequest.cs:241 +msgid "已经传送到玩家[{0}]的当前位置." +msgstr "Teleported to player [{0}]'s current location." + +#: ..\..\TeleportRequest.cs:113 +msgid "发出把指定玩家传送到你当前位置的请求." +msgstr "Request to teleport the specified player to your current location." + +#: ..\..\TeleportRequest.cs:296 +#, csharp-format +msgid "{0}自动接受传送请求." +msgstr "{0} automatically accepts teleport requests." + +#: ..\..\TeleportRequest.cs:280 +#, csharp-format +msgid "玩家[{0}]拒绝你的传送请求." +msgstr "Player [{0}] denied your teleport request." + +#: ..\..\TeleportRequest.cs:118 +msgid "发出传送到指定玩家当前位置的请求." +msgstr "Request to teleport to the specified player's current location." + +#: ..\..\TeleportRequest.cs:265 +msgid "请先解除自动接受传送" +msgstr "Please disable automatic acceptance of teleport requests first." + +#: ..\..\TeleportRequest.cs:108 +msgid "拒绝传送请求." +msgstr "Deny teleport request." + +#: ..\..\TeleportRequest.cs:149 ..\..\TeleportRequest.cs:226 +msgid "匹对到多于一位玩家!" +msgstr "Matched more than one player!" + +#: ..\..\TeleportRequest.cs:207 ..\..\TeleportRequest.cs:285 +msgid "你暂时没有收到其他玩家的传送请求." +msgstr "You have not received any teleport requests from other players." + +#: ..\..\TeleportRequest.cs:319 +msgid "[TeleportRequest] 重新加载配置完毕。" +msgstr "[TeleportRequest] Configuration reloaded successfully." + +#: ..\..\TeleportRequest.cs:82 +#, csharp-format +msgid "你被请求传送到玩家[{{0}}]的当前位置. ({0}接受tp ({0}atp) 或 {0}拒绝tp ({0}dtp))" +msgstr "" +"You are requested to teleport to player [{{0}}]'s current location. ({0} accept tp ({0}atp) or {0} deny tp ({0}dtp))" + +#: ..\..\TeleportRequest.cs:159 ..\..\TeleportRequest.cs:231 +msgid "你无法传送到玩家[{0}]." +msgstr "You cannot teleport to player [{0}]." + +#: ..\..\TeleportRequest.cs:269 ..\..\TeleportRequest.cs:296 +msgid "启用" +msgstr "Enable" + +#: ..\..\TeleportRequest.cs:186 ..\..\TeleportRequest.cs:258 +msgid "已成功向玩家[{0}]发出传送请求." +msgstr "Successfully sent a teleport request to player [{0}]." + +#: ..\..\TeleportRequest.cs:170 ..\..\TeleportRequest.cs:201 ..\..\TeleportRequest.cs:242 +msgid "玩家[{0}]已传送到你的当前位置." +msgstr "Player [{0}] has teleported to your current location." + +#: ..\..\TeleportRequest.cs:269 ..\..\TeleportRequest.cs:296 +msgid "解除" +msgstr "Disable" + +#: ..\..\TeleportRequest.cs:93 +msgid "接受传送请求." +msgstr "Accept teleport request." + +#: ..\..\TeleportRequest.cs:179 ..\..\TeleportRequest.cs:251 +msgid "玩家[{0}]已被其他玩家发出传送请求." +msgstr "Player [{0}] has been requested to teleport by another player." + +#: ..\..\TeleportRequest.cs:79 +#, csharp-format +msgid "玩家[{{0}}]要求传送到你当前位置. ({0}接受tp ({0}atp) 或 {0}拒绝tp ({0}dtp))" +msgstr "" +"Player [{{0}}] requests to teleport to your current location. ({0} accept tp ({0}atp) or {0} deny tp ({0}dtp))" + +#: ..\..\TeleportRequest.cs:103 +msgid "自动接受所有人的传送请求." +msgstr "Automatically accept all teleport requests." + +#: ..\..\TeleportRequest.cs:75 +msgid "传送请求已超时." +msgstr "Teleport request has timed out." + +#: ..\..\TeleportRequest.cs:144 ..\..\TeleportRequest.cs:221 +msgid "找不到这位玩家!" +msgstr "Player not found!" + +#: ..\..\TeleportRequest.cs:292 +msgid "请先解除自动拒绝传送" +msgstr "Please disable automatic denial of teleport requests first." + +#: ..\..\TeleportRequest.cs:76 +#, csharp-format +msgid "玩家[{0}]的传送请求已超时." +msgstr "Player [{0}]'s teleport request has timed out." + +#: ..\..\TeleportRequest.cs:311 +msgid "TPR配置出现异常" +msgstr "TPR configuration error" + +#: ..\..\TeleportRequest.cs:279 +#, csharp-format +msgid "已拒绝玩家[{0}]的传送请求." +msgstr "Denied player [{0}]'s teleport request." + +#: ..\..\TeleportRequest.cs:154 +msgid "禁止向自己发送传送请求!" +msgstr "You are sending teleport requests to yourself!" diff --git a/src/TeleportRequest/i18n/template.pot b/src/TeleportRequest/i18n/template.pot new file mode 100644 index 00000000..f872f697 --- /dev/null +++ b/src/TeleportRequest/i18n/template.pot @@ -0,0 +1,157 @@ +msgid "" +msgstr "" +"Project-Id-Version: TeleportRequest\n" +"POT-Creation-Date: 2024-09-01 11:28:07+0800\n" +"PO-Revision-Date: 2024-09-01 11:28:08+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\TeleportRequest.cs:98 +msgid "自动拒绝所有人的传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:137 +#, csharp-format +msgid "格式错误! 正确格式为: {0}tpa <玩家>" +msgstr "" + +#: ..\..\TeleportRequest.cs:269 +#, csharp-format +msgid "{0}自动拒绝传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:214 +#, csharp-format +msgid "格式错误! 正确格式为: {0}tpahere <玩家>" +msgstr "" + +#: ..\..\TeleportRequest.cs:169 +#: ..\..\TeleportRequest.cs:200 +#: ..\..\TeleportRequest.cs:241 +msgid "已经传送到玩家[{0}]的当前位置." +msgstr "" + +#: ..\..\TeleportRequest.cs:113 +msgid "发出把指定玩家传送到你当前位置的请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:296 +#, csharp-format +msgid "{0}自动接受传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:280 +#, csharp-format +msgid "玩家[{0}]拒绝你的传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:118 +msgid "发出传送到指定玩家当前位置的请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:265 +msgid "请先解除自动接受传送" +msgstr "" + +#: ..\..\TeleportRequest.cs:108 +msgid "拒绝传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:149 +#: ..\..\TeleportRequest.cs:226 +msgid "匹对到多于一位玩家!" +msgstr "" + +#: ..\..\TeleportRequest.cs:207 +#: ..\..\TeleportRequest.cs:285 +msgid "你暂时没有收到其他玩家的传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:319 +msgid "[TeleportRequest] 重新加载配置完毕。" +msgstr "" + +#: ..\..\TeleportRequest.cs:82 +#, csharp-format +msgid "你被请求传送到玩家[{{0}}]的当前位置. ({0}接受tp ({0}atp) 或 {0}拒绝tp ({0}dtp))" +msgstr "" + +#: ..\..\TeleportRequest.cs:159 +#: ..\..\TeleportRequest.cs:231 +msgid "你无法传送到玩家[{0}]." +msgstr "" + +#: ..\..\TeleportRequest.cs:269 +#: ..\..\TeleportRequest.cs:296 +msgid "启用" +msgstr "" + +#: ..\..\TeleportRequest.cs:186 +#: ..\..\TeleportRequest.cs:258 +msgid "已成功向玩家[{0}]发出传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:170 +#: ..\..\TeleportRequest.cs:201 +#: ..\..\TeleportRequest.cs:242 +msgid "玩家[{0}]已传送到你的当前位置." +msgstr "" + +#: ..\..\TeleportRequest.cs:269 +#: ..\..\TeleportRequest.cs:296 +msgid "解除" +msgstr "" + +#: ..\..\TeleportRequest.cs:93 +msgid "接受传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:179 +#: ..\..\TeleportRequest.cs:251 +msgid "玩家[{0}]已被其他玩家发出传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:79 +#, csharp-format +msgid "玩家[{{0}}]要求传送到你当前位置. ({0}接受tp ({0}atp) 或 {0}拒绝tp ({0}dtp))" +msgstr "" + +#: ..\..\TeleportRequest.cs:103 +msgid "自动接受所有人的传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:75 +msgid "传送请求已超时." +msgstr "" + +#: ..\..\TeleportRequest.cs:144 +#: ..\..\TeleportRequest.cs:221 +msgid "找不到这位玩家!" +msgstr "" + +#: ..\..\TeleportRequest.cs:292 +msgid "请先解除自动拒绝传送" +msgstr "" + +#: ..\..\TeleportRequest.cs:76 +#, csharp-format +msgid "玩家[{0}]的传送请求已超时." +msgstr "" + +#: ..\..\TeleportRequest.cs:311 +msgid "TPR配置出现异常" +msgstr "" + +#: ..\..\TeleportRequest.cs:279 +#, csharp-format +msgid "已拒绝玩家[{0}]的传送请求." +msgstr "" + +#: ..\..\TeleportRequest.cs:154 +msgid "禁止向自己发送传送请求!" +msgstr "" + diff --git a/src/VeinMiner/i18n/en-US.po b/src/VeinMiner/i18n/en-US.po index e68107ad..9dafb541 100644 --- a/src/VeinMiner/i18n/en-US.po +++ b/src/VeinMiner/i18n/en-US.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: VeinMiner\n" -"POT-Creation-Date: 2024-09-01 10:12:09+0800\n" +"POT-Creation-Date: 2024-09-01 11:28:08+0800\n" "PO-Revision-Date: 2024-08-31 19:55+0800\n" "Last-Translator: Cai\n" "Language-Team: UnrealMultiple\n" @@ -11,19 +11,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.5\n" -#: ..\..\VeinMiner.cs:125 -msgid "未知" -msgstr "Unknown" +#: ..\..\VeinMiner.cs:129 +#, csharp-format +msgid "[c/95CFA6:] 背包已满,还需空位:[c/95CFA6:{0}] ." +msgstr "[c/95CFA6:] Inventory full, space needed: [c/95CFA6:{0}] ." #: ..\..\VeinMiner.cs:125 #, csharp-format msgid "[c/95CFA6:] 挖掘了 [c/95CFA6: {0} {1}]." msgstr "[c/95CFA6:] Mined [c/95CFA6: {0} {1} ]." +#: ..\..\VeinMiner.cs:125 +msgid "未知" +msgstr "Unknown" + #: ..\..\VeinMiner.cs:34 +msgid "关闭" +msgstr "Deactivated" + +#: ..\..\VeinMiner.cs:161 #, csharp-format -msgid "[c/95CFA6: 挖矿消息已{0}]." -msgstr "[c/95CFA6: Mining Status {0}.]" +msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." +msgstr "[c/95CFA6:] Mining [c/95CFA6: {0} {1} ]." #: ..\..\Config.cs:32 msgid " 配置已重新加载。" @@ -34,33 +43,15 @@ msgstr " Config reloaded." msgid "[c/95CFA6: 已{0}.]" msgstr "[c/95CFA6: {0} .]" -#: ..\..\VeinMiner.cs:161 -#, csharp-format -msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." -msgstr "[c/95CFA6:] Mining [c/95CFA6: {0} {1} ]." - -#: ..\..\VeinMiner.cs:129 -#, csharp-format -msgid "[c/95CFA6:] 背包已满,还需空位:[c/95CFA6:{0}] ." -msgstr "[c/95CFA6:] Inventory full, space needed: [c/95CFA6:{0}] ." - #: ..\..\VeinMiner.cs:34 -msgid "关闭" -msgstr "Deactivated" +#, csharp-format +msgid "[c/95CFA6: 挖矿消息已{0}]." +msgstr "[c/95CFA6: Mining Status {0}.]" #: ..\..\VeinMiner.cs:39 msgid "关闭! | 要仅关闭挖矿消息提示请输入:/vm {任意参数}" msgstr "Deactivated! | To turn off only mining status messages use: /vm msg" -#: ..\..\VeinMiner.cs:151 -#, csharp-format -msgid "" -"[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:" -"{1}] ." -msgstr "" -"[c/95CFA6:] Inventory full, space needed: [c/95CFA6:{0}] to " -"insert [c/95CFA6:{1}] ." - #: ..\..\Config.cs:38 msgid " 读取配置文件失败。" msgstr " Failed to read config file." @@ -75,3 +66,12 @@ msgid "" msgstr "" "[c/95CFA6:] Unable to mine ore, possibly because there is an " "indestructible object above the ore." + +#: ..\..\VeinMiner.cs:151 +#, csharp-format +msgid "" +"[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:" +"{1}] ." +msgstr "" +"[c/95CFA6:] Inventory full, space needed: [c/95CFA6:{0}] to " +"insert [c/95CFA6:{1}] ." diff --git a/src/VeinMiner/i18n/template.pot b/src/VeinMiner/i18n/template.pot index a7467b00..f1a816cc 100644 --- a/src/VeinMiner/i18n/template.pot +++ b/src/VeinMiner/i18n/template.pot @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: VeinMiner\n" -"POT-Creation-Date: 2024-09-01 10:12:09+0800\n" -"PO-Revision-Date: 2024-09-01 10:12:09+0800\n" +"POT-Creation-Date: 2024-09-01 11:28:08+0800\n" +"PO-Revision-Date: 2024-09-01 11:28:08+0800\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -10,8 +10,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: GetText.NET Extractor\n" -#: ..\..\VeinMiner.cs:125 -msgid "未知" +#: ..\..\VeinMiner.cs:129 +#, csharp-format +msgid "[c/95CFA6:] 背包已满,还需空位:[c/95CFA6:{0}] ." msgstr "" #: ..\..\VeinMiner.cs:125 @@ -19,9 +20,17 @@ msgstr "" msgid "[c/95CFA6:] 挖掘了 [c/95CFA6: {0} {1}]." msgstr "" +#: ..\..\VeinMiner.cs:125 +msgid "未知" +msgstr "" + #: ..\..\VeinMiner.cs:34 +msgid "关闭" +msgstr "" + +#: ..\..\VeinMiner.cs:161 #, csharp-format -msgid "[c/95CFA6: 挖矿消息已{0}]." +msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." msgstr "" #: ..\..\Config.cs:32 @@ -33,29 +42,15 @@ msgstr "" msgid "[c/95CFA6: 已{0}.]" msgstr "" -#: ..\..\VeinMiner.cs:161 -#, csharp-format -msgid "[c/95CFA6:] 正在挖掘 [c/95CFA6:{0} {1}]." -msgstr "" - -#: ..\..\VeinMiner.cs:129 -#, csharp-format -msgid "[c/95CFA6:] 背包已满,还需空位:[c/95CFA6:{0}] ." -msgstr "" - #: ..\..\VeinMiner.cs:34 -msgid "关闭" +#, csharp-format +msgid "[c/95CFA6: 挖矿消息已{0}]." msgstr "" #: ..\..\VeinMiner.cs:39 msgid "关闭! | 要仅关闭挖矿消息提示请输入:/vm {任意参数}" msgstr "" -#: ..\..\VeinMiner.cs:151 -#, csharp-format -msgid "[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:{1}] ." -msgstr "" - #: ..\..\Config.cs:38 msgid " 读取配置文件失败。" msgstr "" @@ -69,3 +64,8 @@ msgstr "" msgid "[c/95CFA6:] 无法挖取矿石,可能是因为矿石上方有不可破坏的物体." msgstr "" +#: ..\..\VeinMiner.cs:151 +#, csharp-format +msgid "[c/95CFA6:] 背包已满,需额外空位:[c/95CFA6:{0}] 以放入 [c/95CFA6:{1}] ." +msgstr "" + diff --git a/src/ZHIPlayerManager/i18n/en-US.po b/src/ZHIPlayerManager/i18n/en-US.po new file mode 100644 index 00000000..1b2b0d6c --- /dev/null +++ b/src/ZHIPlayerManager/i18n/en-US.po @@ -0,0 +1,169 @@ +#: ..\..\ZHIPM.Initialize.cs:177 +#, csharp-format +msgid "" +"修改成功,你的存档将每隔{0}分钟自动备份一次,请注意存档覆盖情况,这可能会覆盖" +"你手动备份的部分" +msgstr "" +"Modification successful, your save file will be automatically backed up every {0} minutes. Please pay attention to the save file overwrite situation, as this may overwrite the parts you manually backed up." + +#: ..\..\ZHIPM.Initialize.cs:2782 ..\..\ZHIPM.Initialize.cs:2786 +#: ..\..\ZHIPM.Initialize.cs:2790 +#, csharp-format +msgid "用户 [{0}] 因数据错误导出失败" +msgstr "User [{0}] failed to export due to data error." + +#: ..\..\ZHIPM.Initialize.cs:3255 +msgid "" +"输入 /zsort kill [num] 来查看当前[num]个人物击杀生物数排行榜\n" +"输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n" +"输入 /zsort kill all 来查看所有玩家击杀生物数排行榜" +msgstr "" +"Enter /zsort kill [num] to view the current [num] character creature kill leaderboard\n" +"Enter /zsort kill to view the top ten character creature kill leaderboard\n" +"Enter /zsort kill all to view the creature kill leaderboard for all players" + +#: ..\..\ZHIPM.Initialize.cs:2617 +msgid "你的名字含有指令关键字: ip ,请更换" +msgstr "Your name contains the command keyword: ip, please change it." + +#: ..\..\ZHIPM.Initialize.cs:1293 +msgid "背包:" +msgstr "Backpack:" + +#: ..\..\ZHIPM.Initialize.cs:2893 +msgid "输入 /zsort time all 来查看所有玩家在线时常排行榜" +msgstr "Enter /zsort time all to view the online time leaderboard for all players." + +#: ..\..\ZHIPM.Initialize.cs:2304 ..\..\ZHIPM.Initialize.cs:2351 +msgid "" +"输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n" +"输入 /zclear buff 来清理该玩家的所有Buff\n" +"输入 /zclear buff all 来清理所有玩家所有Buff" +msgstr "" +"Enter /zclear useless to clean up the world's dropped items, non-town or Boss NPCs, and useless projectiles\n" +"Enter /zclear buff to clear all buffs for the player\n" +"Enter /zclear buff all to clear all buffs for all players" + +#: ..\..\ZHIPM.Initialize.cs:2907 +msgid "" +"\n" +"输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n" +msgstr "" +"\n" +"Enter /zsort point [num] to view the current [num] character point leaderboard\n" + +#: ..\..\ZHIPM.Initialize.cs:632 +msgid "输入 /zmodify [name] all [0或1] 来关闭或开启所有玩家增益" +msgstr "Enter /zmodify [name] all [0 or 1] to turn off or on all player buffs." + +#: ..\..\ZHIPM.Initialize.cs:474 ..\..\ZHIPM.Initialize.cs:556 +msgid "玩家1不存在" +msgstr "Player 1 does not exist." + +#: ..\..\ZHIPM.Initialize.cs:3960 ..\..\ZHIPM.Initialize.cs:3986 +#: ..\..\ZHIPM.Initialize.cs:4004 +#, csharp-format +msgid "玩家 [{0}] 已解冻" +msgstr "Player [{0}] has been unfrozen." + +#: ..\..\ZHIPM.Initialize.cs:621 +msgid "输入 /zmodify [name] manamax [num] 来修改玩家的魔力上限" +msgstr "Enter /zmodify [name] manamax [num] to modify the player's mana limit." + +#: ..\..\ZHIPM.Initialize.cs:1101 +msgid "输入 /zresetex all 来清理所有玩家的额外数据" +msgstr "Enter /zresetex all to clear the extra data for all players." + +#: ..\..\ZHIPM.Initialize.cs:53 +msgid "" +"输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n" +msgstr "" +"Enter /zclear useless to clean up the world's dropped items, non-town or Boss NPCs, and useless projectiles\n" + +#: ..\..\ZHIPM.Initialize.cs:517 ..\..\ZHIPM.Initialize.cs:573 +msgid "玩家2不存在" +msgstr "Player 2 does not exist." + +#: ..\..\ZHIPM.Initialize.cs:951 ..\..\ZHIPM.Initialize.cs:972 +#: ..\..\ZHIPM.Initialize.cs:994 ..\..\ZHIPM.Initialize.cs:1031 +#: ..\..\ZHIPM.Initialize.cs:1054 ..\..\ZHIPM.Initialize.cs:1076 +#: ..\..\ZHIPM.Initialize.cs:1176 +msgid "重置失败" +msgstr "Reset failed." + +#: ..\..\ZHIPM.Initialize.cs:2892 +msgid "输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜" +msgstr "Enter /zsort time [num] to view the current [num] character online time leaderboard." + +#: ..\..\ZHIPM.Initialize.cs:40 +msgid "输入 /vid 来查看该玩家的库存,不分类\n" +msgstr "Enter /vid to view the player's inventory, unclassified\n" + +#: ..\..\ZHIPM.Initialize.cs:740 +msgid "您的埃癸斯果增益开启状态:" +msgstr "Your Ambrosia Fruit buff status:" + +#: ..\..\ZHIPM.Initialize.cs:626 +msgid "输入 /zmodify [name] heart [0或1] 来关闭或开启埃癸斯水晶增益\n" +msgstr "Enter /zmodify [name] heart [0 or 1] to turn off or on the Ambrosia Crystal buff\n" + +#: ..\..\ZHIPM.Initialize.cs:1211 ..\..\ZHIPM.Initialize.cs:1212 +msgid "清理失败 ZResetPlayerAll :" +msgstr "Cleanup failed ZResetPlayerAll:" + +#: ..\..\ZHIPM.Initialize.cs:787 +msgid "您的所有永久增益均开启" +msgstr "All your permanent buffs are enabled." + +#: ..\..\ZHIPM.Initialize.cs:1804 ..\..\ZHIPM.Initialize.cs:1970 +msgid "在线时长[i:3099]:" +msgstr "Online duration[i:3099]:" + +#: ..\..\ZHIPM.Initialize.cs:1072 +#, csharp-format +msgid "已重置离线玩家 [ {0} ] 的额外数据" +msgstr "The extra data of the offline player [ {0} ] has been reset." + +#: ..\..\ZHIPM.Initialize.cs:1814 ..\..\ZHIPM.Initialize.cs:1980 +#, csharp-format +msgid "已击杀生物数[i:3095]:{0} 个" +msgstr "Number of creatures killed[i:3095]: {0}" + +#: ..\..\ZHIPM.Initialize.cs:1345 +msgid "染料2:" +msgstr "Dye 2:" + +#: ..\..\ZHIPM.Initialize.cs:1172 +msgid "您的人物数据已被重置" +msgstr "Your character data has been reset." + +#: ..\..\ZHIPM.Initialize.cs:2714 +msgid "未启用点数统计,该功能不可用" +msgstr "Point statistics not enabled, this feature is not available." + +#: ..\..\ZHIPM.Initialize.cs:5083 +#, csharp-format +msgid ",消耗点数 {0}" +msgstr ", consumed points {0}" + +#: ..\..\ZHIPM.Initialize.cs:1049 +#, csharp-format +msgid "已重置玩家 [ {0} ] 的额外数据" +msgstr "The extra data of player [ {0} ] has been reset." + +#: ..\..\ZHIPM.Initialize.cs:36 +msgid "输入 /zclone 将玩家1的人物数据复制给玩家2\n" +msgstr "Enter /zclone to copy player 1's character data to player 2\n" + +#: ..\..\ZHIPM.Initialize.cs:2913 +msgid "输入 /zsort death 来查看人物死亡次数排行榜前十名\n" +msgstr "Enter /zsort death to view the top ten character death leaderboard\n" + +#: ..\..\ZHIPM.Initialize.cs:1050 +msgid "您的额外数据已重置" +msgstr "Your extra data has been reset." + +#: ..\..\ZHIPM.Initialize.cs:1126 ..\..\ZHIPM.Initialize.cs:1127 +#: ..\..\ZHIPM.Initialize.cs:1131 +msgid "所有玩家的人物数据均已重置" +msgstr "The diff --git a/src/ZHIPlayerManager/i18n/template.pot b/src/ZHIPlayerManager/i18n/template.pot new file mode 100644 index 00000000..2a9041cc --- /dev/null +++ b/src/ZHIPlayerManager/i18n/template.pot @@ -0,0 +1,1815 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZHIPlayerManager\n" +"POT-Creation-Date: 2024-09-01 11:28:09+0800\n" +"PO-Revision-Date: 2024-09-01 11:28:09+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\ZHIPM.Initialize.cs:177 +#, csharp-format +msgid "修改成功,你的存档将每隔{0}分钟自动备份一次,请注意存档覆盖情况,这可能会覆盖你手动备份的部分" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2782 +#: ..\..\ZHIPM.Initialize.cs:2786 +#: ..\..\ZHIPM.Initialize.cs:2790 +#, csharp-format +msgid "用户 [{0}] 因数据错误导出失败" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3255 +msgid "" +"输入 /zsort kill [num] 来查看当前[num]个人物击杀生物数排行榜\n" +"输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n" +"输入 /zsort kill all 来查看所有玩家击杀生物数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2617 +msgid "你的名字含有指令关键字: ip ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1293 +msgid "背包:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2893 +msgid "" +"输入 /zsort time all 来查看所有玩家在线时常排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2304 +#: ..\..\ZHIPM.Initialize.cs:2351 +msgid "" +"输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n" +"输入 /zclear buff 来清理该玩家的所有Buff\n" +"输入 /zclear buff all 来清理所有玩家所有Buff" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2907 +msgid "" +"\n" +"输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:632 +msgid "输入 /zmodify [name] all [0或1] 来关闭或开启所有玩家增益" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:474 +#: ..\..\ZHIPM.Initialize.cs:556 +msgid "玩家1不存在" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3960 +#: ..\..\ZHIPM.Initialize.cs:3986 +#: ..\..\ZHIPM.Initialize.cs:4004 +#, csharp-format +msgid "玩家 [{0}] 已解冻" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:621 +msgid "" +"输入 /zmodify [name] manamax [num] 来修改玩家的魔力上限\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1101 +msgid "" +"输入 /zresetex all 来清理所有玩家的额外数据\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:53 +msgid "" +"输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:517 +#: ..\..\ZHIPM.Initialize.cs:573 +msgid "玩家2不存在" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:951 +#: ..\..\ZHIPM.Initialize.cs:972 +#: ..\..\ZHIPM.Initialize.cs:994 +#: ..\..\ZHIPM.Initialize.cs:1031 +#: ..\..\ZHIPM.Initialize.cs:1054 +#: ..\..\ZHIPM.Initialize.cs:1076 +#: ..\..\ZHIPM.Initialize.cs:1176 +msgid "重置失败" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2892 +msgid "" +"输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:40 +msgid "" +"输入 /vid 来查看该玩家的库存,不分类\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:740 +msgid "您的埃癸斯果增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:626 +msgid "" +"输入 /zmodify [name] heart [0或1] 来关闭或开启埃癸斯水晶增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1211 +#: ..\..\ZHIPM.Initialize.cs:1212 +msgid "清理失败 ZResetPlayerAll :" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:787 +msgid "您的所有永久增益均开启" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1804 +#: ..\..\ZHIPM.Initialize.cs:1970 +msgid "在线时长[i:3099]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1072 +#, csharp-format +msgid "已重置离线玩家 [ {0} ] 的额外数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1814 +#: ..\..\ZHIPM.Initialize.cs:1980 +#, csharp-format +msgid "已击杀生物数[i:3095]:{0} 个" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1345 +msgid "染料2:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1172 +msgid "您的人物数据已被重置" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2714 +msgid "未启用点数统计,该功能不可用" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5083 +#, csharp-format +msgid ",消耗点数 {0}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1049 +#, csharp-format +msgid "已重置玩家 [ {0} ] 的额外数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:36 +msgid "" +"输入 /zclone 将玩家1的人物数据复制给玩家2\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2913 +msgid "" +"输入 /zsort death 来查看人物死亡次数排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1050 +msgid "您的额外数据已重置" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1126 +#: ..\..\ZHIPM.Initialize.cs:1127 +#: ..\..\ZHIPM.Initialize.cs:1131 +msgid "所有玩家的人物数据均已重置" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2704 +#, csharp-format +msgid "修改成功,您现在已{0}点数提示" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:625 +msgid "" +"输入 /zmodify [name] bread [0或1] 来关闭或开启工匠面包增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3839 +msgid "" +"输入 /zban add [name] [reason] 来封禁无论是否在线的玩家,reason 可不填\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:4005 +msgid "您已被解冻" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1284 +#: ..\..\ZHIPM.Initialize.cs:1507 +#: ..\..\ZHIPM.Initialize.cs:1665 +#, csharp-format +msgid "玩家 【{0}】 的所有库存如下:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:967 +#, csharp-format +msgid "已重置玩家 [ {0} ] 的备份数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:439 +msgid "请不要对同一个人进行克隆" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:54 +msgid "" +"输入 /zclear buff 来清理该玩家的所有Buff\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:825 +msgid "未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:4315 +msgid "血肉墙" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2909 +msgid "输入 /zsort point all 来查看所有玩家点数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1733 +#, csharp-format +msgid "{0} 伤害: [c/74F3C9:{1}] 比重: {2:0.00%} " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:915 +#: ..\..\ZHIPM.Initialize.cs:916 +msgid "修改失败!错误:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:86 +#: ..\..\ZHIPM.Initialize.cs:216 +#: ..\..\ZHIPM.Initialize.cs:258 +#, csharp-format +msgid "玩家最多有 {0} 个备份存档,范围 1 ~ {1},请重新输入" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1112 +msgid " 名字:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2731 +msgid "" +"输入 /zout 来导出该玩家的人物存档\n" +"输入 /zout all 来导出所有人物的存档" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3287 +#: ..\..\ZHIPM.Initialize.cs:3312 +#: ..\..\ZHIPM.Initialize.cs:3323 +#, csharp-format +msgid "第 {0} 名:【{1}】 击杀Boss总数 {2} 个" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3211 +#: ..\..\ZHIPM.Initialize.cs:3236 +#: ..\..\ZHIPM.Initialize.cs:3247 +#, csharp-format +msgid "第 {0} 名:【{1}】 击杀生物总数 {2} 个" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:113 +#: ..\..\ZHIPM.Initialize.cs:155 +#: ..\..\ZHIPM.Initialize.cs:202 +#: ..\..\ZHIPM.Initialize.cs:363 +#: ..\..\ZHIPM.Initialize.cs:2682 +#: ..\..\ZHIPM.Initialize.cs:5065 +msgid "对象不正确,请检查您的状态,您是否为游戏内玩家?" +msgstr "" + +#: ..\..\ZHIPM.cs:89 +msgid "该插件需要开启SSC才能使用" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:170 +msgid "修改失败,请重进服务器重试" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2917 +msgid "" +"\n" +"输入 /zsort clumsy 来查看人物手残排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1898 +#: ..\..\ZHIPM.Initialize.cs:2025 +#: ..\..\ZHIPM.Initialize.cs:2195 +msgid "各种永久增益:" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:635 +msgid "错误 ResetPlayer :" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:559 +msgid "错误:WriteExtraDB 2 " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2589 +msgid "请不要起纯数字名字" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:394 +#: ..\..\ZHIPM.Initialize.cs:415 +#, csharp-format +msgid "克隆成功!您已将玩家[{0}]的数据克隆到你身上" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:534 +msgid "错误:WriteExtraDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:673 +msgid "您的生命上限已被修改为:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2947 +#: ..\..\ZHIPM.Initialize.cs:3023 +#: ..\..\ZHIPM.Initialize.cs:3123 +#: ..\..\ZHIPM.Initialize.cs:3198 +#: ..\..\ZHIPM.Initialize.cs:3271 +#: ..\..\ZHIPM.Initialize.cs:3347 +#: ..\..\ZHIPM.Initialize.cs:3423 +#: ..\..\ZHIPM.Initialize.cs:3498 +#: ..\..\ZHIPM.Initialize.cs:3573 +msgid "没有任何数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2005 +#: ..\..\ZHIPM.Initialize.cs:2193 +msgid "完成渔夫任务数:" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:997 +#, csharp-format +msgid "蹦跶{0}({1})," +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2593 +msgid "请不要在名字中使用特殊符号" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1326 +msgid "装备栏3:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2896 +msgid "" +"\n" +"输入 /zsort kill [num] 来查看当前[num]个人物击杀生物数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1687 +msgid "输入 /vs <玩家名> 来查看该玩家的状态" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2869 +#: ..\..\ZHIPM.Initialize.cs:2870 +msgid "导出失败,因输入错误" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:29 +msgid "" +"输入 /zsaveauto 来每隔 minute 分钟自动备份自己的人物存档,当 minute 为 0 时关闭该功能\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1591 +#, csharp-format +msgid "" +"玩家 【{0}】未携带任何东西\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:47 +msgid "" +"输入 /zout 来导出该玩家的人物存档\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:716 +msgid "您的火把神增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:685 +msgid "您的魔力上限已被修改为:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:628 +msgid "" +"输入 /zmodify [name] pearl [0或1] 来关闭或开启银河珍珠增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3990 +#: ..\..\ZHIPM.Initialize.cs:4009 +#, csharp-format +msgid "玩家 [{0}] 未被冻结" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:467 +msgid "玩家1不在线,正在查询离线数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:758 +msgid "您的粘性蠕虫增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:50 +msgid "" +"输入 /zban add 来封禁无论是否在线的玩家,reason 可不填\n" +msgstr "" + +#: ..\..\ZHIPM.cs:63 +msgid "该玩家不唯一,请重新输入" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1111 +msgid "错误:ExportPlayer " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:306 +msgid "该玩家还未备份" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:619 +msgid "" +"输入 /zmodify [name] lifemax [num] 来修改玩家的血量上限\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:764 +msgid "您的珍馐增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3182 +msgid "" +"输入 /zsort fish 来查看人物任务鱼数目排行榜前十名\n" +"输入 /zsort fish [num] 来查看当前[num]个人物任务鱼数目排行榜\n" +"输入 /zsort fish all 来查看所有玩家任务鱼数目排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2812 +#, csharp-format +msgid "" +"{0} 名用户因数据残缺导出失败\n" +"已全部打包为{1}/Zhipm/{2}.zip" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2710 +msgid "未启用击杀NPC统计,该功能不可用" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3855 +msgid "输入 /zfre [name] 来冻结该玩家" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:480 +#: ..\..\ZHIPM.Initialize.cs:562 +msgid "玩家1不唯一" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1000 +#, csharp-format +msgid "游雨{0}({1})," +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1402 +msgid "护卫熔炉:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3557 +msgid "" +"输入 /zsort death [num] 来查看当前[num]个人物死亡次数排行榜\n" +"输入 /zsort death 来查看人物死亡次数排行榜前十名\n" +"输入 /zsort death all 来查看所有玩家死亡次数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2919 +msgid "输入 /zsort clumsy all 来查看所有玩家手残排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2902 +msgid "" +"输入 /zsort rarenpc [num] 来查看当前[num]个人物击杀罕见生物总数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:746 +msgid "您的奥术水晶增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5076 +msgid "你没有上次死亡的地点" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:51 +msgid "" +"输入 /zban add uuid 来封禁uuid\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3795 +msgid "人数不唯一,为避免误封,请重新输入。若玩家名称带有空格可用英文引号将名称整个括起来" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:30 +msgid "" +"输入 /zvisa 来查看自己的人物备份\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1010 +msgid "" +"输入 /zresetex [name] 来清理该玩家的额外数据\n" +"输入 /zresetex all 来清理所有玩家的额外数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1727 +#: ..\..\ZHIPM.Initialize.cs:1796 +#: ..\..\ZHIPM.Initialize.cs:1962 +#: ..\..\ZHIPM.Initialize.cs:2020 +#: ..\..\ZHIPM.Initialize.cs:2089 +msgid "无" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:44 +msgid "" +"输入 /zunfre 来解冻该玩家\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:181 +msgid "修改成功,你的自动备份已关" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:39 +msgid "" +"输入 /vi 来查看该玩家的库存\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2897 +msgid "" +"输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2898 +msgid "" +"输入 /zsort kill all 来查看所有玩家击杀生物数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2430 +#, csharp-format +msgid "玩家【{0}】的人物存档和额外数据已备份和保存" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:752 +msgid "您的银河珍珠增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1707 +#: ..\..\ZHIPM.Initialize.cs:1895 +msgid "最大魔力值[i:109]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1339 +msgid "染料1:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2924 +msgid "" +"输入 /zsort coin 来查看人物硬币数目排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3873 +#: ..\..\ZHIPM.Initialize.cs:3889 +#: ..\..\ZHIPM.Initialize.cs:3916 +#, csharp-format +msgid "玩家 [{0}] 冻结成功" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:56 +msgid "" +"输入 /zbpos 来返回上次死亡地点\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1531 +#, csharp-format +msgid "正常的意外因玩家 [ {0} ] 数据残缺而导出人物失败 CreateAPlayer" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1320 +msgid "装备栏2:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2004 +#: ..\..\ZHIPM.Initialize.cs:2192 +msgid " 当前魔力值:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2004 +#: ..\..\ZHIPM.Initialize.cs:2192 +msgid "最大魔力值:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1219 +#: ..\..\ZHIPM.Initialize.cs:1223 +msgid "所有玩家的所有数据均已全部初始化" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:534 +#: ..\..\ZHIPM.Initialize.cs:589 +#, csharp-format +msgid "克隆成功!您已将玩家 [{0}] 的数据克隆到玩家 [{1}] 身上" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:485 +msgid "错误:ReadExtraDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3931 +msgid "" +"输入 /zunfre [name] 来解冻该玩家\n" +"输入 /zunfre all 来解冻所有玩家" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:941 +#: ..\..\ZHIPM.Initialize.cs:942 +#: ..\..\ZHIPM.Initialize.cs:946 +msgid "所有玩家的备份数据均已重置" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3772 +#: ..\..\ZHIPM.Initialize.cs:3773 +#, csharp-format +msgid "用户 {0} 封禁失败,可能该玩家已被封禁或所在组被禁止封禁" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2601 +msgid "你的名字含有指令关键字: time ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3407 +msgid "" +"输入 /zsort rarenpc [num] 来查看当前[num]个人物击杀罕见生物总数排行榜\n" +"输入 /zsort rarenpc 来查看人物击杀罕见生物总数排行榜前十名\n" +"输入 /zsort rarenpc all 来查看所有玩家击杀罕见生物总数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:38 +msgid "" +"输入 /zmodify help 查看修改玩家数据的指令帮助\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2891 +msgid "" +"输入 /zsort time 来查看人物在线时间排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1171 +#, csharp-format +msgid "已重置玩家 [ {0} ] 的数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3722 +#: ..\..\ZHIPM.Initialize.cs:3723 +#, csharp-format +msgid "uuid: {0} 已被 {1} 封禁" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3800 +msgid "。若玩家名称带有空格可用英文引号将名称整个括起来" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:107 +msgid "输入 /zsave 来备份自己的人物存档" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:80 +#: ..\..\ZHIPM.Initialize.cs:94 +msgid "" +"输入 /zback 来读取该玩家的最新人物存档\n" +"输入 /zback 来读取该玩家的第几个人物存档" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:840 +#: ..\..\ZHIPM.Utils.cs:864 +#: ..\..\ZHIPM.Utils.cs:869 +#: ..\..\ZHIPM.Utils.cs:877 +#: ..\..\ZHIPM.Utils.cs:882 +#, csharp-format +msgid "玩家 [{0}] 回档成功!启用备份 [ {1} ]" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1708 +#: ..\..\ZHIPM.Initialize.cs:1896 +msgid "完成渔夫任务数[i:3120]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1706 +#: ..\..\ZHIPM.Initialize.cs:1894 +msgid " 当前生命值[i:58]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3668 +msgid "" +"输入 /zsort clumsy 来查看人物手残排行榜前十名\n" +"输入 /zsort clumsy [num] 来查看当前[num]个人物手残排行榜\n" +"输入 /zsort clumsy all 来查看所有玩家手残排行榜" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:301 +msgid "错误:getZPlayerDBMaxSlot " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:35 +msgid "" +"输入 /zback 来读取该玩家的第几个人物存档\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:492 +#, csharp-format +msgid "克隆成功!您已将玩家 [{0}] 的数据克隆到玩家 [{1}]身上" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1100 +msgid "" +"输入 /zresetex 来清理该玩家的额外数据\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:31 +msgid "" +"输入 /zvisa name 来查看该玩家的第几个人物备份\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2536 +msgid "您已被冻结,详情请询问管理员" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1512 +#: ..\..\ZHIPM.Initialize.cs:1670 +#, csharp-format +msgid "" +"玩家 【{0}】 未携带任何东西\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:125 +msgid "您的备份保存成功!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:453 +#: ..\..\ZHIPM.Initialize.cs:496 +msgid "克隆成功!已将玩家 [] 的数据克隆到你身上" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2929 +msgid "输入 /zsort fish all 来查看所有玩家任务鱼数目排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2097 +#: ..\..\ZHIPM.Initialize.cs:2267 +msgid "在线时长:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1705 +#: ..\..\ZHIPM.Initialize.cs:2002 +#: ..\..\ZHIPM.Initialize.cs:2184 +#, csharp-format +msgid "玩家 【{0}】 的状态如下:" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:268 +msgid "错误:WriteZPlayerDB 2 " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:48 +msgid "" +"输入 /zout all 来导出所有人物的存档并压缩打包\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2960 +#: ..\..\ZHIPM.Initialize.cs:2985 +#: ..\..\ZHIPM.Initialize.cs:2996 +#, csharp-format +msgid "第 {0} 名:【{1}】 在线时长 {2}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1099 +msgid "" +"输入 /zresetdb all 来清理所有玩家的备份数据\n" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:603 +msgid "错误:ClearZPlayerExtraDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3868 +#: ..\..\ZHIPM.Initialize.cs:3884 +#: ..\..\ZHIPM.Initialize.cs:3910 +#, csharp-format +msgid "玩家 [{0}] 已冻结过!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3688 +msgid "" +"输入 /zban add uuid [reason] 来封禁uuid\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2903 +msgid "" +"输入 /zsort rarenpc 来查看人物击杀罕见生物总数排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5037 +#, csharp-format +msgid "您遗失了:{0} 点数,已扣完" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1370 +msgid "垃圾桶:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2904 +msgid "输入 /zsort rarenpc all 来查看所有玩家击杀罕见生物总数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1307 +msgid "盔甲 + 饰品 + 时装:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:630 +msgid "" +"输入 /zmodify [name] ambrosia [0或1] 来关闭或开启珍馐增益\n" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:580 +msgid "错误:ClearALLZPlayerExtraDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2914 +msgid "输入 /zsort death all 来查看所有玩家死亡次数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3463 +#: ..\..\ZHIPM.Initialize.cs:3474 +#, csharp-format +msgid "第 {0} 名:【{1}】 点数 {2}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2927 +msgid "" +"输入 /zsort fish 来查看人物任务鱼数目排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:850 +msgid "错误:BackUp " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:34 +msgid "" +"输入 /zback 来读取该玩家的人物存档\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:510 +msgid "玩家2不在线,正在查询离线数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2585 +msgid "请不要起空名字" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1710 +#, csharp-format +msgid "共有 [c/74F3C9:{0}] 位玩家击败了 [c/74F3C9:{1}]" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2693 +#, csharp-format +msgid "修改成功,您现在已{0}击杀数提示" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:349 +msgid "" +"输入 /zclone [name1] [name2] 将玩家1的人物数据复制给玩家2\n" +"输入 /zclone [name] 将该玩家的人物数据复制给自己" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:149 +#: ..\..\ZHIPM.Initialize.cs:186 +msgid "输入 /zsaveauto [minute] 来每隔 minute 分钟自动备份自己的人物存档,当 minute 为 0 时关闭该功能" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1091 +msgid "" +"输入 /zreset 来清理该玩家的人物数据\n" +"输入 /zreset all 来清理所有玩家的人物数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:33 +msgid "" +"输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:398 +#: ..\..\ZHIPM.Initialize.cs:419 +#: ..\..\ZHIPM.Initialize.cs:458 +#: ..\..\ZHIPM.Initialize.cs:501 +#: ..\..\ZHIPM.Initialize.cs:538 +#: ..\..\ZHIPM.Initialize.cs:593 +msgid "克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1156 +#, csharp-format +msgid "已重置离线玩家 [ {0} ] 的数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1710 +msgid "各种buff[i:678]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:722 +msgid "您的恶魔心增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1308 +msgid "当前装备栏:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1809 +#: ..\..\ZHIPM.Initialize.cs:1975 +msgid "死亡次数[i:321]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:49 +msgid "" +"输入 /zreset help 来查看zreset系列指令帮助\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2006 +#: ..\..\ZHIPM.Initialize.cs:2194 +msgid "库存硬币数:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:547 +msgid "玩家都不在线,正在查询离线数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1288 +#, csharp-format +msgid "多个结果 玩家 【{0}】 的所有库存如下:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:627 +msgid "" +"输入 /zmodify [name] fruit [0或1] 来关闭或开启埃癸斯果增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1358 +msgid "宠物 + 矿车 + 坐骑 + 钩爪:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2972 +#: ..\..\ZHIPM.Initialize.cs:3058 +#: ..\..\ZHIPM.Initialize.cs:3150 +#: ..\..\ZHIPM.Initialize.cs:3223 +#: ..\..\ZHIPM.Initialize.cs:3299 +#: ..\..\ZHIPM.Initialize.cs:3375 +#: ..\..\ZHIPM.Initialize.cs:3450 +#: ..\..\ZHIPM.Initialize.cs:3525 +#: ..\..\ZHIPM.Initialize.cs:3622 +msgid "数字无效" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2752 +#: ..\..\ZHIPM.Initialize.cs:2753 +msgid "预计导出所有用户存档数目:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2693 +#: ..\..\ZHIPM.Initialize.cs:2704 +msgid "隐藏" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:990 +#, csharp-format +msgid "已重置离线玩家 [ {0} ] 的备份数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:608 +#: ..\..\ZHIPM.Initialize.cs:637 +msgid "输入 /zmodify help 查看修改玩家数据的指令帮助" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:728 +msgid "您的工匠面包增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2840 +#: ..\..\ZHIPM.Initialize.cs:2841 +#: ..\..\ZHIPM.Initialize.cs:2864 +#: ..\..\ZHIPM.Initialize.cs:2865 +#, csharp-format +msgid "导出成功!目录:tshock/Zhipm/{0}/{1}.plr" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1102 +msgid "" +"输入 /zreset 来清理该玩家的人物数据\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1112 +msgid "路径:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2003 +#: ..\..\ZHIPM.Initialize.cs:2191 +msgid " 当前生命值:" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:355 +msgid "错误:AddZPlayerDB 1 " +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:802 +msgid "" +"检测到符合该条件的玩家数目不唯一,请重新输入\n" +"包含:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:734 +msgid "您的埃癸斯水晶增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:691 +msgid "您的渔夫任务完成数已被修改为:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2928 +msgid "" +"输入 /zsort fish [num] 来查看当前[num]个人物任务鱼数目排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3687 +msgid "" +"输入 /zban add [reason] 来封禁无论是否在线的玩家,reason 可不填\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2900 +msgid "" +"输入 /zsort boss 来查看人物击杀Boss总数排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1218 +msgid "玩家已全部初始化" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:129 +msgid "您的备份保存失败!请尝试重进游戏重试" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:928 +#, csharp-format +msgid "{0}[i:74] {1}[i:73] {2}[i:72] {3}[i:71]" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2558 +msgid "不要耍小聪明" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:618 +msgid "" +"输入 /zmodify [name] life [num] 来修改玩家的血量\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3716 +#: ..\..\ZHIPM.Initialize.cs:3717 +#: ..\..\ZHIPM.Initialize.cs:3747 +#: ..\..\ZHIPM.Initialize.cs:3748 +#: ..\..\ZHIPM.Initialize.cs:3766 +#: ..\..\ZHIPM.Initialize.cs:3767 +#: ..\..\ZHIPM.Initialize.cs:3829 +#: ..\..\ZHIPM.Initialize.cs:3832 +#: ..\..\ZHIPM.Initialize.cs:3833 +#, csharp-format +msgid "用户 {0} 已被 {1} 封禁" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:844 +msgid "回档失败!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3482 +msgid "" +"输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n" +"输入 /zsort point 来查看人物点数排行榜前十名\n" +"输入 /zsort point all 来查看所有玩家点数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2609 +msgid "你的名字含有指令关键字: me ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:865 +#: ..\..\ZHIPM.Utils.cs:878 +msgid "您已回档成功!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1816 +#: ..\..\ZHIPM.Initialize.cs:1982 +msgid "已击杀罕见生物[i:4274]:" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:929 +#, csharp-format +msgid "{0}铂金币 {1}金币 {2}银币 {3}铜币" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:834 +#, csharp-format +msgid "回档失败!未找到 [{0} - {1}] 号该备份" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3840 +msgid "" +"输入 /zban add uuid [uuid] [reason] 来封禁uuid\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2007 +msgid "各种buff:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:4199 +#: ..\..\ZHIPM.Initialize.cs:4281 +#: ..\..\ZHIPM.Initialize.cs:4376 +#: ..\..\ZHIPM.Initialize.cs:4482 +#: ..\..\ZHIPM.Initialize.cs:4559 +#: ..\..\ZHIPM.Initialize.cs:4657 +#: ..\..\ZHIPM.Initialize.cs:4756 +#: ..\..\ZHIPM.Initialize.cs:4853 +#: ..\..\ZHIPM.Initialize.cs:4919 +msgid "错误的点数:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2390 +#, csharp-format +msgid "玩家 {0} 已经在线了 {1}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3004 +msgid "" +"输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜\n" +"输入 /zsort time 来查看人物在线时间排行榜前十名\n" +"输入 /zsort time all 来查看所有玩家在线时常排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:523 +#: ..\..\ZHIPM.Initialize.cs:579 +msgid "玩家2不唯一" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:4593 +msgid "月亮领主" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:334 +msgid "错误:AddZPlayerDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2794 +#, csharp-format +msgid "{0} 名用户因数据错误导出失败" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:41 +msgid "" +"输入 /vs 来查看该玩家的状态\n" +msgstr "" + +#: ..\..\ZHIPM.cs:62 +msgid "该玩家不存在,请重新输入" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3605 +#: ..\..\ZHIPM.Initialize.cs:3609 +#: ..\..\ZHIPM.Initialize.cs:3637 +#: ..\..\ZHIPM.Initialize.cs:3641 +#: ..\..\ZHIPM.Initialize.cs:3655 +#: ..\..\ZHIPM.Initialize.cs:3659 +#, csharp-format +msgid "第 {0} 名:【{1}】 菜鸡值 {2:0.00}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2693 +#: ..\..\ZHIPM.Initialize.cs:2704 +msgid "启用" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1815 +#: ..\..\ZHIPM.Initialize.cs:1981 +msgid "已击杀Boss[i:3868]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2003 +#: ..\..\ZHIPM.Initialize.cs:2191 +msgid "最大生命值:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:968 +msgid "您的备份数据已重置" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1364 +msgid "宠物 矿车 坐骑 钩爪 染料:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3964 +#, csharp-format +msgid "玩家 [{0}] 未被冻结!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5072 +msgid "数据异常,请重试" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:631 +msgid "" +"输入 /zmodify [name] cart [0或1] 来关闭或开启超级矿车增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3841 +msgid "输入 /zban add ip [ip] [reason] 来封禁ip" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:623 +msgid "" +"输入 /zmodify [name] torch [0或1] 来关闭或开启火把神增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:770 +msgid "您的超级矿车增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:46 +msgid "" +"输入 /zsort help 来查看排序系列指令帮助\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2313 +#: ..\..\ZHIPM.Initialize.cs:2316 +msgid "服务器将在20秒后清理世界内所有无用NPC,射弹和物品" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:699 +msgid "您的点数已被修改为:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:28 +msgid "" +"输入 /zsave 来备份自己的人物存档\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:887 +msgid "回档失败!未备份数据或该玩家未登录" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1709 +#: ..\..\ZHIPM.Initialize.cs:1897 +msgid "库存硬币数[i:855]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3787 +#: ..\..\ZHIPM.Initialize.cs:3878 +#: ..\..\ZHIPM.Initialize.cs:3969 +msgid "精准查找未找到,正在尝试模糊查找" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5148 +msgid "备份存档数目最小为 1 ,请不要输入无效值,已修改为默认 5" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2883 +#: ..\..\ZHIPM.Initialize.cs:3674 +msgid "输入 /zsort help 来查看排序系列指令帮助" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3753 +#: ..\..\ZHIPM.Initialize.cs:3754 +#, csharp-format +msgid "ip: {0} 已被 {1} 封禁" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:620 +msgid "" +"输入 /zmodify [name] mana [num] 来修改玩家的魔力\n" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:146 +msgid "错误:ReadZPlayerDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:329 +#, csharp-format +msgid "" +"玩家[{0}]备份 [{1} - {2}] 的内容为:\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2346 +#, csharp-format +msgid "玩家 [ {0} ] 的所有Buff均已消除" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2277 +msgid "已击杀生物数:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1707 +#: ..\..\ZHIPM.Initialize.cs:1895 +msgid " 当前魔力值[i:184]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3699 +#: ..\..\ZHIPM.Initialize.cs:3730 +msgid "参数过少" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1415 +msgid "虚空金库:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2605 +msgid "你的名字含有指令关键字: help ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2817 +msgid "错误 ZhiExportPlayer :" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1236 +msgid "输入 /vi <玩家名> 来查看该玩家的库存" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1314 +msgid "装备栏1:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2925 +msgid "" +"输入 /zsort coin [num] 来查看当前[num]个人物硬币数目排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5057 +msgid "输入 /zbpos 来返回上次死亡地点" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3104 +msgid "" +"输入 /zsort coin 来查看人物硬币数目排行榜前十名\n" +"输入 /zsort coin [num] 来查看当前[num]个人物硬币数目排行榜\n" +"输入 /zsort coin all 来查看所有玩家硬币数目排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1333 +msgid "当前染料:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5087 +#, csharp-format +msgid "玩家 {0} 已传送到上次死亡地点" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2337 +msgid "该玩家不在线或不存在" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:143 +msgid "自动备份被禁用,请联系管理员询问详情" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:810 +#: ..\..\ZHIPM.Initialize.cs:911 +msgid "修改成功!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1528 +msgid "输入 /vid <玩家名> 来查看该玩家的库存,不进行排列" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2845 +#: ..\..\ZHIPM.Initialize.cs:2846 +msgid "导出失败,因数据错误" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2114 +#: ..\..\ZHIPM.Initialize.cs:2284 +msgid "点数:" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:401 +msgid "错误:ClearZPlayerDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1582 +#, csharp-format +msgid "" +"玩家 【{0}】 的所有库存如下:\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5094 +msgid "点数不足,无法回溯上次死亡地点" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:802 +msgid "您的所有永久增益均关闭" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3538 +#: ..\..\ZHIPM.Initialize.cs:3549 +#, csharp-format +msgid "第 {0} 名:【{1}】 死亡次数 {2}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3438 +#, csharp-format +msgid "第 {0} 名:【{1}】 点数 {2} " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1098 +msgid "" +"输入 /zresetdb 来清理该玩家的备份数据\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5099 +msgid "未被允许死亡回调传送,请在配置文件中修改" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2102 +#: ..\..\ZHIPM.Initialize.cs:2272 +msgid "死亡次数:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2918 +msgid "" +"输入 /zsort clumsy [num] 来查看当前[num]个人物手残排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2676 +#: ..\..\ZHIPM.Initialize.cs:2718 +msgid "" +"输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n" +"输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1389 +msgid "保险箱:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5032 +#, csharp-format +msgid "您遗失了:{0} 点数" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2979 +#: ..\..\ZHIPM.Initialize.cs:3065 +#: ..\..\ZHIPM.Initialize.cs:3157 +#: ..\..\ZHIPM.Initialize.cs:3230 +#: ..\..\ZHIPM.Initialize.cs:3306 +#: ..\..\ZHIPM.Initialize.cs:3457 +#: ..\..\ZHIPM.Initialize.cs:3532 +#: ..\..\ZHIPM.Initialize.cs:3629 +#, csharp-format +msgid "当前最多 {0} 人" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:677 +msgid "错误:ListAllExtraDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2926 +msgid "" +"输入 /zsort coin all 来查看所有玩家硬币数目排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2613 +msgid "你的名字含有指令关键字: uuid ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:357 +msgid "克隆失败!请不要克隆自己" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:497 +msgid "错误:UpdateTshockDBCharac " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2901 +msgid "" +"输入 /zsort boss all 来查看所有玩家击杀Boss总数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1376 +msgid "猪猪储蓄罐:" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:218 +msgid "错误:WriteZPlayerDB " +msgstr "" + +#: ..\..\ZHIPM.DB.cs:378 +msgid "错误:ClearALLZPlayerDB " +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1015 +msgid "月亮领主()" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1160 +msgid "重置失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新输入" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2107 +#, csharp-format +msgid "已击杀生物数:{0} 个" +msgstr "" + +#: ..\..\ZHIPM.cs:64 +msgid "该玩家不在线,正在查询离线数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3689 +msgid "输入 /zban add ip [reason] 来封禁ip" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2386 +msgid "点数奖励 + 1000" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:679 +msgid "您的魔力值已被修改为:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:648 +#: ..\..\ZHIPM.Initialize.cs:709 +#: ..\..\ZHIPM.Initialize.cs:806 +#: ..\..\ZHIPM.Initialize.cs:863 +msgid "格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2769 +#: ..\..\ZHIPM.Initialize.cs:2773 +#: ..\..\ZHIPM.Initialize.cs:2776 +#, csharp-format +msgid "用户 [{0}] 已导出,目录:tshock/Zhipm/{1}/{2}.plr" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:622 +msgid "" +"输入 /zmodify [name] fish [num] 来修改玩家的渔夫任务数\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2429 +msgid "已自动备份您的人物存档,自动保存您的额外数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:226 +msgid "您还未备份" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1891 +#: ..\..\ZHIPM.Initialize.cs:2188 +#, csharp-format +msgid "多个结果 玩家 【{0}】 的状态如下:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3703 +#: ..\..\ZHIPM.Initialize.cs:3734 +msgid "检测到违规行为,请联系管理员" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3382 +msgid "当前最多 人" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3363 +#: ..\..\ZHIPM.Initialize.cs:3388 +#: ..\..\ZHIPM.Initialize.cs:3399 +#, csharp-format +msgid "第 {0} 名:【{1}】 击杀罕见生物总数 {2} 个" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:336 +msgid "" +"输入 /zvisa [num] 来查看自己的第几个人物备份\n" +"输入 /zvisa name [num] 来查看该玩家的第几个人物备份" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1706 +#: ..\..\ZHIPM.Initialize.cs:1894 +msgid "最大生命值[i:29]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:703 +msgid "不可预料的错误,请重试或让该玩家重进游戏" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2597 +msgid "你的名字含有指令关键字: all ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3041 +#: ..\..\ZHIPM.Initialize.cs:3045 +#: ..\..\ZHIPM.Initialize.cs:3073 +#: ..\..\ZHIPM.Initialize.cs:3077 +#: ..\..\ZHIPM.Initialize.cs:3091 +#: ..\..\ZHIPM.Initialize.cs:3095 +#, csharp-format +msgid "第 {0} 名:【{1}】 总硬币数 {2}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:43 +msgid "" +"输入 /zfre 来冻结该玩家\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1021 +#: ..\..\ZHIPM.Initialize.cs:1022 +#: ..\..\ZHIPM.Initialize.cs:1026 +msgid "所有玩家的额外数据均已重置" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:629 +msgid "" +"输入 /zmodify [name] worm [0或1] 来关闭或开启粘性蠕虫增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2109 +#: ..\..\ZHIPM.Initialize.cs:2279 +msgid "已击杀罕见生物:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:624 +msgid "" +"输入 /zmodify [name] demmon [0或1] 来关闭或开启恶魔心增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2805 +#, csharp-format +msgid "已打包为{0}/Zhipm/{1}.zip" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3138 +#: ..\..\ZHIPM.Initialize.cs:3163 +#: ..\..\ZHIPM.Initialize.cs:3174 +#, csharp-format +msgid "第 {0} 名:【{1}】 总完成任务鱼数 {2}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:42 +msgid "" +"输入 /vs me 来查看自己的状态\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1104 +#: ..\..\ZHIPM.Initialize.cs:1190 +msgid "输入 /zresetallplayers 来清理所有玩家的所有数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:449 +#, csharp-format +msgid "克隆成功!您已将玩家 [{0}] 的数据克隆到 [{1}] 身上" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1503 +#: ..\..\ZHIPM.Initialize.cs:1586 +#, csharp-format +msgid "" +"多个结果 玩家 【{0}】 的所有库存如下:\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:163 +msgid "数字不合理" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1351 +msgid "染料3:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1432 +#, csharp-format +msgid "玩家 【{0}】 未携带任何东西" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:52 +msgid "" +"输入 /zban add ip 来封禁ip\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:908 +#, csharp-format +msgid "{0}小时 {1}分钟 {2}秒" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:37 +msgid "" +"输入 /zclone 将该玩家的人物数据复制给自己\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3331 +msgid "" +"输入 /zsort boss [num] 来查看当前[num]个人物击杀Boss总数排行榜\n" +"输入 /zsort boss 来查看人物击杀Boss总数排行榜前十名\n" +"输入 /zsort boss all 来查看所有玩家击杀Boss总数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3513 +#, csharp-format +msgid "第 {0} 名:【{1}】 死亡次数 {2} " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1103 +msgid "" +"输入 /zreset all 来清理所有玩家的人物数据\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3946 +msgid "所有玩家均已解冻" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2899 +msgid "" +"输入 /zsort boss [num] 来查看当前[num]个人物击杀Boss总数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2108 +#: ..\..\ZHIPM.Initialize.cs:2278 +msgid "已击杀Boss:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:240 +#, csharp-format +msgid "" +"您的备份[{0} - {1}]的内容为:\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:931 +msgid "" +"输入 /zresetdb [name] 来清理该玩家的备份数据\n" +"输入 /zresetdb all 来清理所有玩家的备份数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:55 +msgid "" +"输入 /zclear buff all 来清理所有玩家所有Buff\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2330 +msgid "所有玩家的所有Buff均已消除" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:24 +msgid "输入 /zhelp 来查看指令帮助" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2908 +msgid "" +"输入 /zsort point 来查看人物点数排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2537 +msgid "您已被冻结" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2483 +msgid "已清理所有射弹,物品,无用NPC" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1661 +#, csharp-format +msgid "多个结果 玩家 【{0}】 的所有库存如下:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2912 +msgid "" +"\n" +"输入 /zsort death [num] 来查看当前[num]个人物死亡次数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:45 +msgid "" +"输入 /zunfre all 来解冻所有玩家\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1821 +#: ..\..\ZHIPM.Initialize.cs:1987 +msgid "点数[i:575]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:32 +msgid "" +"输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n" +msgstr "" + From 25d6bc494905ee960f7fbea38b4a474c61dd8f9e Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 11:54:19 +0800 Subject: [PATCH 10/18] =?UTF-8?q?=E7=BF=BB=E8=AF=91=EF=BC=9A=E9=87=8D?= =?UTF-8?q?=E7=BD=AEZPM=E7=BF=BB=E8=AF=91,=E6=B7=BB=E5=8A=A0HelpPlus?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/HelpPlus/i18n/en-US.po | 74 ++ src/ZHIPlayerManager/i18n/en-US.po | 1557 +++++++++++++++++++++++++++- 2 files changed, 1586 insertions(+), 45 deletions(-) create mode 100644 src/HelpPlus/i18n/en-US.po diff --git a/src/HelpPlus/i18n/en-US.po b/src/HelpPlus/i18n/en-US.po new file mode 100644 index 00000000..0a5c6e4b --- /dev/null +++ b/src/HelpPlus/i18n/en-US.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"Project-Id-Version: HelpPlus\n" +"POT-Creation-Date: 2024-09-01 11:28:06+0800\n" +"PO-Revision-Date: 2024-09-01 11:52+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.5\n" + +#: ..\..\Help.cs:46 +msgid "[HelpPlus]插件配置已重载!" +msgstr "[HelpPlus] Plugin configuration reloaded!" + +#: ..\..\Help.cs:257 +msgid "*此命令不记录命令参数" +msgstr "*This command does not log command parameters" + +#: ..\..\Help.cs:185 +#, csharp-format +msgid "无效用法.正确用法: {0}help <命令/页码>" +msgstr "Invalid usage. Correct usage: {0}help " + +#: ..\..\Help.cs:203 +msgid "命令列表 ({0}/{1}):" +msgstr "Command list ({0}/{1}):" + +#: ..\..\Help.cs:218 +msgid "无效命令." +msgstr "Invalid command." + +#: ..\..\Help.cs:247 +#, csharp-format +msgid "权限: {0}" +msgstr "Permission: {0}" + +#: ..\..\Help.cs:252 +msgid "*此命令只能游戏内执行" +msgstr "*This command can only be executed in-game" + +#: ..\..\Help.cs:243 +#, csharp-format +msgid "别名: [c/00ffff:{0}]" +msgstr "Alias: [c/00ffff:{0}]" + +#: ..\..\Help.cs:249 +#, csharp-format +msgid "来源插件: [c/8500ff:{0}]" +msgstr "Source plugin: [c/8500ff:{0}]" + +#: ..\..\Help.cs:247 +msgid "[c/c2ff39:无权限限制]" +msgstr "[c/c2ff39:No permission restrictions]" + +#: ..\..\Help.cs:228 +#, csharp-format +msgid "{0}{1}的帮助:" +msgstr "Help for {0}{1}:" + +#: ..\..\Help.cs:224 +msgid "你没有权限查询此命令." +msgstr "You do not have permission to query this command." + +#: ..\..\Help.cs:204 +#, csharp-format +msgid "输入 {0}help {{0}} 翻页." +msgstr "Type {0}help {{0}} to turn the page." + +#: ..\..\Help.cs:260 +msgid "*本插件只能查询主命令权限,详细权限请使用/whynot查看!" +msgstr "*This plugin can only query main command permissions, for detailed permissions please use /whynot!" diff --git a/src/ZHIPlayerManager/i18n/en-US.po b/src/ZHIPlayerManager/i18n/en-US.po index 1b2b0d6c..8e137828 100644 --- a/src/ZHIPlayerManager/i18n/en-US.po +++ b/src/ZHIPlayerManager/i18n/en-US.po @@ -1,16 +1,28 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZHIPlayerManager\n" +"POT-Creation-Date: 2024-09-01 11:28:09+0800\n" +"PO-Revision-Date: 2024-09-01 11:53+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.5\n" + #: ..\..\ZHIPM.Initialize.cs:177 #, csharp-format msgid "" -"修改成功,你的存档将每隔{0}分钟自动备份一次,请注意存档覆盖情况,这可能会覆盖" -"你手动备份的部分" +"修改成功,你的存档将每隔{0}分钟自动备份一次,请注意存档覆盖情况,这可能会覆" +"盖你手动备份的部分" msgstr "" -"Modification successful, your save file will be automatically backed up every {0} minutes. Please pay attention to the save file overwrite situation, as this may overwrite the parts you manually backed up." #: ..\..\ZHIPM.Initialize.cs:2782 ..\..\ZHIPM.Initialize.cs:2786 #: ..\..\ZHIPM.Initialize.cs:2790 #, csharp-format msgid "用户 [{0}] 因数据错误导出失败" -msgstr "User [{0}] failed to export due to data error." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:3255 msgid "" @@ -18,21 +30,18 @@ msgid "" "输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n" "输入 /zsort kill all 来查看所有玩家击杀生物数排行榜" msgstr "" -"Enter /zsort kill [num] to view the current [num] character creature kill leaderboard\n" -"Enter /zsort kill to view the top ten character creature kill leaderboard\n" -"Enter /zsort kill all to view the creature kill leaderboard for all players" #: ..\..\ZHIPM.Initialize.cs:2617 msgid "你的名字含有指令关键字: ip ,请更换" -msgstr "Your name contains the command keyword: ip, please change it." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1293 msgid "背包:" -msgstr "Backpack:" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:2893 -msgid "输入 /zsort time all 来查看所有玩家在线时常排行榜" -msgstr "Enter /zsort time all to view the online time leaderboard for all players." +msgid "输入 /zsort time all 来查看所有玩家在线时常排行榜\n" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:2304 ..\..\ZHIPM.Initialize.cs:2351 msgid "" @@ -40,130 +49,1588 @@ msgid "" "输入 /zclear buff 来清理该玩家的所有Buff\n" "输入 /zclear buff all 来清理所有玩家所有Buff" msgstr "" -"Enter /zclear useless to clean up the world's dropped items, non-town or Boss NPCs, and useless projectiles\n" -"Enter /zclear buff to clear all buffs for the player\n" -"Enter /zclear buff all to clear all buffs for all players" #: ..\..\ZHIPM.Initialize.cs:2907 msgid "" "\n" "输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n" msgstr "" -"\n" -"Enter /zsort point [num] to view the current [num] character point leaderboard\n" #: ..\..\ZHIPM.Initialize.cs:632 msgid "输入 /zmodify [name] all [0或1] 来关闭或开启所有玩家增益" -msgstr "Enter /zmodify [name] all [0 or 1] to turn off or on all player buffs." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:474 ..\..\ZHIPM.Initialize.cs:556 msgid "玩家1不存在" -msgstr "Player 1 does not exist." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:3960 ..\..\ZHIPM.Initialize.cs:3986 #: ..\..\ZHIPM.Initialize.cs:4004 #, csharp-format msgid "玩家 [{0}] 已解冻" -msgstr "Player [{0}] has been unfrozen." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:621 -msgid "输入 /zmodify [name] manamax [num] 来修改玩家的魔力上限" -msgstr "Enter /zmodify [name] manamax [num] to modify the player's mana limit." +msgid "输入 /zmodify [name] manamax [num] 来修改玩家的魔力上限\n" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1101 -msgid "输入 /zresetex all 来清理所有玩家的额外数据" -msgstr "Enter /zresetex all to clear the extra data for all players." +msgid "输入 /zresetex all 来清理所有玩家的额外数据\n" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:53 msgid "" "输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n" msgstr "" -"Enter /zclear useless to clean up the world's dropped items, non-town or Boss NPCs, and useless projectiles\n" #: ..\..\ZHIPM.Initialize.cs:517 ..\..\ZHIPM.Initialize.cs:573 msgid "玩家2不存在" -msgstr "Player 2 does not exist." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:951 ..\..\ZHIPM.Initialize.cs:972 #: ..\..\ZHIPM.Initialize.cs:994 ..\..\ZHIPM.Initialize.cs:1031 #: ..\..\ZHIPM.Initialize.cs:1054 ..\..\ZHIPM.Initialize.cs:1076 #: ..\..\ZHIPM.Initialize.cs:1176 msgid "重置失败" -msgstr "Reset failed." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:2892 -msgid "输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜" -msgstr "Enter /zsort time [num] to view the current [num] character online time leaderboard." +msgid "输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜\n" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:40 msgid "输入 /vid 来查看该玩家的库存,不分类\n" -msgstr "Enter /vid to view the player's inventory, unclassified\n" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:740 msgid "您的埃癸斯果增益开启状态:" -msgstr "Your Ambrosia Fruit buff status:" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:626 msgid "输入 /zmodify [name] heart [0或1] 来关闭或开启埃癸斯水晶增益\n" -msgstr "Enter /zmodify [name] heart [0 or 1] to turn off or on the Ambrosia Crystal buff\n" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1211 ..\..\ZHIPM.Initialize.cs:1212 msgid "清理失败 ZResetPlayerAll :" -msgstr "Cleanup failed ZResetPlayerAll:" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:787 msgid "您的所有永久增益均开启" -msgstr "All your permanent buffs are enabled." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1804 ..\..\ZHIPM.Initialize.cs:1970 msgid "在线时长[i:3099]:" -msgstr "Online duration[i:3099]:" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1072 #, csharp-format msgid "已重置离线玩家 [ {0} ] 的额外数据" -msgstr "The extra data of the offline player [ {0} ] has been reset." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1814 ..\..\ZHIPM.Initialize.cs:1980 #, csharp-format msgid "已击杀生物数[i:3095]:{0} 个" -msgstr "Number of creatures killed[i:3095]: {0}" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1345 msgid "染料2:" -msgstr "Dye 2:" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1172 msgid "您的人物数据已被重置" -msgstr "Your character data has been reset." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:2714 msgid "未启用点数统计,该功能不可用" -msgstr "Point statistics not enabled, this feature is not available." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:5083 #, csharp-format msgid ",消耗点数 {0}" -msgstr ", consumed points {0}" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1049 #, csharp-format msgid "已重置玩家 [ {0} ] 的额外数据" -msgstr "The extra data of player [ {0} ] has been reset." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:36 msgid "输入 /zclone 将玩家1的人物数据复制给玩家2\n" -msgstr "Enter /zclone to copy player 1's character data to player 2\n" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:2913 msgid "输入 /zsort death 来查看人物死亡次数排行榜前十名\n" -msgstr "Enter /zsort death to view the top ten character death leaderboard\n" +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1050 msgid "您的额外数据已重置" -msgstr "Your extra data has been reset." +msgstr "" #: ..\..\ZHIPM.Initialize.cs:1126 ..\..\ZHIPM.Initialize.cs:1127 #: ..\..\ZHIPM.Initialize.cs:1131 msgid "所有玩家的人物数据均已重置" -msgstr "The +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2704 +#, csharp-format +msgid "修改成功,您现在已{0}点数提示" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:625 +msgid "输入 /zmodify [name] bread [0或1] 来关闭或开启工匠面包增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3839 +msgid "" +"输入 /zban add [name] [reason] 来封禁无论是否在线的玩家,reason 可不填\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:4005 +msgid "您已被解冻" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1284 ..\..\ZHIPM.Initialize.cs:1507 +#: ..\..\ZHIPM.Initialize.cs:1665 +#, csharp-format +msgid "玩家 【{0}】 的所有库存如下:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:967 +#, csharp-format +msgid "已重置玩家 [ {0} ] 的备份数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:439 +msgid "请不要对同一个人进行克隆" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:54 +msgid "输入 /zclear buff 来清理该玩家的所有Buff\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:825 +msgid "" +"未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新" +"输入" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:4315 +msgid "血肉墙" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2909 +msgid "输入 /zsort point all 来查看所有玩家点数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1733 +#, csharp-format +msgid "{0} 伤害: [c/74F3C9:{1}] 比重: {2:0.00%} " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:915 ..\..\ZHIPM.Initialize.cs:916 +msgid "修改失败!错误:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:86 ..\..\ZHIPM.Initialize.cs:216 +#: ..\..\ZHIPM.Initialize.cs:258 +#, csharp-format +msgid "玩家最多有 {0} 个备份存档,范围 1 ~ {1},请重新输入" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1112 +msgid " 名字:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2731 +msgid "" +"输入 /zout 来导出该玩家的人物存档\n" +"输入 /zout all 来导出所有人物的存档" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3287 ..\..\ZHIPM.Initialize.cs:3312 +#: ..\..\ZHIPM.Initialize.cs:3323 +#, csharp-format +msgid "第 {0} 名:【{1}】 击杀Boss总数 {2} 个" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3211 ..\..\ZHIPM.Initialize.cs:3236 +#: ..\..\ZHIPM.Initialize.cs:3247 +#, csharp-format +msgid "第 {0} 名:【{1}】 击杀生物总数 {2} 个" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:113 ..\..\ZHIPM.Initialize.cs:155 +#: ..\..\ZHIPM.Initialize.cs:202 ..\..\ZHIPM.Initialize.cs:363 +#: ..\..\ZHIPM.Initialize.cs:2682 ..\..\ZHIPM.Initialize.cs:5065 +msgid "对象不正确,请检查您的状态,您是否为游戏内玩家?" +msgstr "" + +#: ..\..\ZHIPM.cs:89 +msgid "该插件需要开启SSC才能使用" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:170 +msgid "修改失败,请重进服务器重试" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2917 +msgid "" +"\n" +"输入 /zsort clumsy 来查看人物手残排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1898 ..\..\ZHIPM.Initialize.cs:2025 +#: ..\..\ZHIPM.Initialize.cs:2195 +msgid "各种永久增益:" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:635 +msgid "错误 ResetPlayer :" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:559 +msgid "错误:WriteExtraDB 2 " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2589 +msgid "请不要起纯数字名字" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:394 ..\..\ZHIPM.Initialize.cs:415 +#, csharp-format +msgid "克隆成功!您已将玩家[{0}]的数据克隆到你身上" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:534 +msgid "错误:WriteExtraDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:673 +msgid "您的生命上限已被修改为:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2947 ..\..\ZHIPM.Initialize.cs:3023 +#: ..\..\ZHIPM.Initialize.cs:3123 ..\..\ZHIPM.Initialize.cs:3198 +#: ..\..\ZHIPM.Initialize.cs:3271 ..\..\ZHIPM.Initialize.cs:3347 +#: ..\..\ZHIPM.Initialize.cs:3423 ..\..\ZHIPM.Initialize.cs:3498 +#: ..\..\ZHIPM.Initialize.cs:3573 +msgid "没有任何数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2005 ..\..\ZHIPM.Initialize.cs:2193 +msgid "完成渔夫任务数:" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:997 +#, csharp-format +msgid "蹦跶{0}({1})," +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2593 +msgid "请不要在名字中使用特殊符号" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1326 +msgid "装备栏3:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2896 +msgid "" +"\n" +"输入 /zsort kill [num] 来查看当前[num]个人物击杀生物数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1687 +msgid "输入 /vs <玩家名> 来查看该玩家的状态" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2869 ..\..\ZHIPM.Initialize.cs:2870 +msgid "导出失败,因输入错误" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:29 +msgid "" +"输入 /zsaveauto 来每隔 minute 分钟自动备份自己的人物存档,当 " +"minute 为 0 时关闭该功能\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1591 +#, csharp-format +msgid "玩家 【{0}】未携带任何东西\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:47 +msgid "输入 /zout 来导出该玩家的人物存档\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:716 +msgid "您的火把神增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:685 +msgid "您的魔力上限已被修改为:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:628 +msgid "输入 /zmodify [name] pearl [0或1] 来关闭或开启银河珍珠增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3990 ..\..\ZHIPM.Initialize.cs:4009 +#, csharp-format +msgid "玩家 [{0}] 未被冻结" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:467 +msgid "玩家1不在线,正在查询离线数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:758 +msgid "您的粘性蠕虫增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:50 +msgid "" +"输入 /zban add 来封禁无论是否在线的玩家,reason 可不填\n" +msgstr "" + +#: ..\..\ZHIPM.cs:63 +msgid "该玩家不唯一,请重新输入" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1111 +msgid "错误:ExportPlayer " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:306 +msgid "该玩家还未备份" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:619 +msgid "输入 /zmodify [name] lifemax [num] 来修改玩家的血量上限\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:764 +msgid "您的珍馐增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3182 +msgid "" +"输入 /zsort fish 来查看人物任务鱼数目排行榜前十名\n" +"输入 /zsort fish [num] 来查看当前[num]个人物任务鱼数目排行榜\n" +"输入 /zsort fish all 来查看所有玩家任务鱼数目排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2812 +#, csharp-format +msgid "" +"{0} 名用户因数据残缺导出失败\n" +"已全部打包为{1}/Zhipm/{2}.zip" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2710 +msgid "未启用击杀NPC统计,该功能不可用" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3855 +msgid "输入 /zfre [name] 来冻结该玩家" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:480 ..\..\ZHIPM.Initialize.cs:562 +msgid "玩家1不唯一" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1000 +#, csharp-format +msgid "游雨{0}({1})," +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1402 +msgid "护卫熔炉:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3557 +msgid "" +"输入 /zsort death [num] 来查看当前[num]个人物死亡次数排行榜\n" +"输入 /zsort death 来查看人物死亡次数排行榜前十名\n" +"输入 /zsort death all 来查看所有玩家死亡次数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2919 +msgid "输入 /zsort clumsy all 来查看所有玩家手残排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2902 +msgid "" +"输入 /zsort rarenpc [num] 来查看当前[num]个人物击杀罕见生物总数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:746 +msgid "您的奥术水晶增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5076 +msgid "你没有上次死亡的地点" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:51 +msgid "输入 /zban add uuid 来封禁uuid\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3795 +msgid "" +"人数不唯一,为避免误封,请重新输入。若玩家名称带有空格可用英文引号将名称整" +"个括起来" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:30 +msgid "输入 /zvisa 来查看自己的人物备份\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1010 +msgid "" +"输入 /zresetex [name] 来清理该玩家的额外数据\n" +"输入 /zresetex all 来清理所有玩家的额外数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1727 ..\..\ZHIPM.Initialize.cs:1796 +#: ..\..\ZHIPM.Initialize.cs:1962 ..\..\ZHIPM.Initialize.cs:2020 +#: ..\..\ZHIPM.Initialize.cs:2089 +msgid "无" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:44 +msgid "输入 /zunfre 来解冻该玩家\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:181 +msgid "修改成功,你的自动备份已关" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:39 +msgid "输入 /vi 来查看该玩家的库存\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2897 +msgid "输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2898 +msgid "输入 /zsort kill all 来查看所有玩家击杀生物数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2430 +#, csharp-format +msgid "玩家【{0}】的人物存档和额外数据已备份和保存" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:752 +msgid "您的银河珍珠增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1707 ..\..\ZHIPM.Initialize.cs:1895 +msgid "最大魔力值[i:109]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1339 +msgid "染料1:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2924 +msgid "输入 /zsort coin 来查看人物硬币数目排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3873 ..\..\ZHIPM.Initialize.cs:3889 +#: ..\..\ZHIPM.Initialize.cs:3916 +#, csharp-format +msgid "玩家 [{0}] 冻结成功" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:56 +msgid "输入 /zbpos 来返回上次死亡地点\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1531 +#, csharp-format +msgid "正常的意外因玩家 [ {0} ] 数据残缺而导出人物失败 CreateAPlayer" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1320 +msgid "装备栏2:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2004 ..\..\ZHIPM.Initialize.cs:2192 +msgid " 当前魔力值:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2004 ..\..\ZHIPM.Initialize.cs:2192 +msgid "最大魔力值:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1219 ..\..\ZHIPM.Initialize.cs:1223 +msgid "所有玩家的所有数据均已全部初始化" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:534 ..\..\ZHIPM.Initialize.cs:589 +#, csharp-format +msgid "克隆成功!您已将玩家 [{0}] 的数据克隆到玩家 [{1}] 身上" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:485 +msgid "错误:ReadExtraDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3931 +msgid "" +"输入 /zunfre [name] 来解冻该玩家\n" +"输入 /zunfre all 来解冻所有玩家" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:941 ..\..\ZHIPM.Initialize.cs:942 +#: ..\..\ZHIPM.Initialize.cs:946 +msgid "所有玩家的备份数据均已重置" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3772 ..\..\ZHIPM.Initialize.cs:3773 +#, csharp-format +msgid "用户 {0} 封禁失败,可能该玩家已被封禁或所在组被禁止封禁" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2601 +msgid "你的名字含有指令关键字: time ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3407 +msgid "" +"输入 /zsort rarenpc [num] 来查看当前[num]个人物击杀罕见生物总数排行榜\n" +"输入 /zsort rarenpc 来查看人物击杀罕见生物总数排行榜前十名\n" +"输入 /zsort rarenpc all 来查看所有玩家击杀罕见生物总数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:38 +msgid "输入 /zmodify help 查看修改玩家数据的指令帮助\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2891 +msgid "输入 /zsort time 来查看人物在线时间排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1171 +#, csharp-format +msgid "已重置玩家 [ {0} ] 的数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3722 ..\..\ZHIPM.Initialize.cs:3723 +#, csharp-format +msgid "uuid: {0} 已被 {1} 封禁" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3800 +msgid "。若玩家名称带有空格可用英文引号将名称整个括起来" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:107 +msgid "输入 /zsave 来备份自己的人物存档" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:80 ..\..\ZHIPM.Initialize.cs:94 +msgid "" +"输入 /zback 来读取该玩家的最新人物存档\n" +"输入 /zback 来读取该玩家的第几个人物存档" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:840 ..\..\ZHIPM.Utils.cs:864 ..\..\ZHIPM.Utils.cs:869 +#: ..\..\ZHIPM.Utils.cs:877 ..\..\ZHIPM.Utils.cs:882 +#, csharp-format +msgid "玩家 [{0}] 回档成功!启用备份 [ {1} ]" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1708 ..\..\ZHIPM.Initialize.cs:1896 +msgid "完成渔夫任务数[i:3120]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1706 ..\..\ZHIPM.Initialize.cs:1894 +msgid " 当前生命值[i:58]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3668 +msgid "" +"输入 /zsort clumsy 来查看人物手残排行榜前十名\n" +"输入 /zsort clumsy [num] 来查看当前[num]个人物手残排行榜\n" +"输入 /zsort clumsy all 来查看所有玩家手残排行榜" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:301 +msgid "错误:getZPlayerDBMaxSlot " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:35 +msgid "输入 /zback 来读取该玩家的第几个人物存档\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:492 +#, csharp-format +msgid "克隆成功!您已将玩家 [{0}] 的数据克隆到玩家 [{1}]身上" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1100 +msgid "输入 /zresetex 来清理该玩家的额外数据\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:31 +msgid "输入 /zvisa name 来查看该玩家的第几个人物备份\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2536 +msgid "您已被冻结,详情请询问管理员" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1512 ..\..\ZHIPM.Initialize.cs:1670 +#, csharp-format +msgid "玩家 【{0}】 未携带任何东西\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:125 +msgid "您的备份保存成功!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:453 ..\..\ZHIPM.Initialize.cs:496 +msgid "克隆成功!已将玩家 [] 的数据克隆到你身上" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2929 +msgid "输入 /zsort fish all 来查看所有玩家任务鱼数目排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2097 ..\..\ZHIPM.Initialize.cs:2267 +msgid "在线时长:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1705 ..\..\ZHIPM.Initialize.cs:2002 +#: ..\..\ZHIPM.Initialize.cs:2184 +#, csharp-format +msgid "玩家 【{0}】 的状态如下:" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:268 +msgid "错误:WriteZPlayerDB 2 " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:48 +msgid "输入 /zout all 来导出所有人物的存档并压缩打包\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2960 ..\..\ZHIPM.Initialize.cs:2985 +#: ..\..\ZHIPM.Initialize.cs:2996 +#, csharp-format +msgid "第 {0} 名:【{1}】 在线时长 {2}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1099 +msgid "输入 /zresetdb all 来清理所有玩家的备份数据\n" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:603 +msgid "错误:ClearZPlayerExtraDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3868 ..\..\ZHIPM.Initialize.cs:3884 +#: ..\..\ZHIPM.Initialize.cs:3910 +#, csharp-format +msgid "玩家 [{0}] 已冻结过!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3688 +msgid "输入 /zban add uuid [reason] 来封禁uuid\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2903 +msgid "输入 /zsort rarenpc 来查看人物击杀罕见生物总数排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5037 +#, csharp-format +msgid "您遗失了:{0} 点数,已扣完" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1370 +msgid "垃圾桶:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2904 +msgid "输入 /zsort rarenpc all 来查看所有玩家击杀罕见生物总数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1307 +msgid "盔甲 + 饰品 + 时装:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:630 +msgid "输入 /zmodify [name] ambrosia [0或1] 来关闭或开启珍馐增益\n" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:580 +msgid "错误:ClearALLZPlayerExtraDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2914 +msgid "输入 /zsort death all 来查看所有玩家死亡次数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3463 ..\..\ZHIPM.Initialize.cs:3474 +#, csharp-format +msgid "第 {0} 名:【{1}】 点数 {2}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2927 +msgid "输入 /zsort fish 来查看人物任务鱼数目排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:850 +msgid "错误:BackUp " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:34 +msgid "输入 /zback 来读取该玩家的人物存档\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:510 +msgid "玩家2不在线,正在查询离线数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2585 +msgid "请不要起空名字" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1710 +#, csharp-format +msgid "共有 [c/74F3C9:{0}] 位玩家击败了 [c/74F3C9:{1}]" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2693 +#, csharp-format +msgid "修改成功,您现在已{0}击杀数提示" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:349 +msgid "" +"输入 /zclone [name1] [name2] 将玩家1的人物数据复制给玩家2\n" +"输入 /zclone [name] 将该玩家的人物数据复制给自己" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:149 ..\..\ZHIPM.Initialize.cs:186 +msgid "" +"输入 /zsaveauto [minute] 来每隔 minute 分钟自动备份自己的人物存档,当 " +"minute 为 0 时关闭该功能" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1091 +msgid "" +"输入 /zreset 来清理该玩家的人物数据\n" +"输入 /zreset all 来清理所有玩家的人物数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:33 +msgid "输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:398 ..\..\ZHIPM.Initialize.cs:419 +#: ..\..\ZHIPM.Initialize.cs:458 ..\..\ZHIPM.Initialize.cs:501 +#: ..\..\ZHIPM.Initialize.cs:538 ..\..\ZHIPM.Initialize.cs:593 +msgid "" +"克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检" +"测,再重新输入" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1156 +#, csharp-format +msgid "已重置离线玩家 [ {0} ] 的数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1710 +msgid "各种buff[i:678]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:722 +msgid "您的恶魔心增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1308 +msgid "当前装备栏:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1809 ..\..\ZHIPM.Initialize.cs:1975 +msgid "死亡次数[i:321]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:49 +msgid "输入 /zreset help 来查看zreset系列指令帮助\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2006 ..\..\ZHIPM.Initialize.cs:2194 +msgid "库存硬币数:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:547 +msgid "玩家都不在线,正在查询离线数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1288 +#, csharp-format +msgid "多个结果 玩家 【{0}】 的所有库存如下:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:627 +msgid "输入 /zmodify [name] fruit [0或1] 来关闭或开启埃癸斯果增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1358 +msgid "宠物 + 矿车 + 坐骑 + 钩爪:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2972 ..\..\ZHIPM.Initialize.cs:3058 +#: ..\..\ZHIPM.Initialize.cs:3150 ..\..\ZHIPM.Initialize.cs:3223 +#: ..\..\ZHIPM.Initialize.cs:3299 ..\..\ZHIPM.Initialize.cs:3375 +#: ..\..\ZHIPM.Initialize.cs:3450 ..\..\ZHIPM.Initialize.cs:3525 +#: ..\..\ZHIPM.Initialize.cs:3622 +msgid "数字无效" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2752 ..\..\ZHIPM.Initialize.cs:2753 +msgid "预计导出所有用户存档数目:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2693 ..\..\ZHIPM.Initialize.cs:2704 +msgid "隐藏" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:990 +#, csharp-format +msgid "已重置离线玩家 [ {0} ] 的备份数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:608 ..\..\ZHIPM.Initialize.cs:637 +msgid "输入 /zmodify help 查看修改玩家数据的指令帮助" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:728 +msgid "您的工匠面包增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2840 ..\..\ZHIPM.Initialize.cs:2841 +#: ..\..\ZHIPM.Initialize.cs:2864 ..\..\ZHIPM.Initialize.cs:2865 +#, csharp-format +msgid "导出成功!目录:tshock/Zhipm/{0}/{1}.plr" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1102 +msgid "输入 /zreset 来清理该玩家的人物数据\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1112 +msgid "路径:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2003 ..\..\ZHIPM.Initialize.cs:2191 +msgid " 当前生命值:" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:355 +msgid "错误:AddZPlayerDB 1 " +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:802 +msgid "" +"检测到符合该条件的玩家数目不唯一,请重新输入\n" +"包含:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:734 +msgid "您的埃癸斯水晶增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:691 +msgid "您的渔夫任务完成数已被修改为:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2928 +msgid "输入 /zsort fish [num] 来查看当前[num]个人物任务鱼数目排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3687 +msgid "" +"输入 /zban add [reason] 来封禁无论是否在线的玩家,reason 可不填\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2900 +msgid "输入 /zsort boss 来查看人物击杀Boss总数排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1218 +msgid "玩家已全部初始化" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:129 +msgid "您的备份保存失败!请尝试重进游戏重试" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:928 +#, csharp-format +msgid "{0}[i:74] {1}[i:73] {2}[i:72] {3}[i:71]" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2558 +msgid "不要耍小聪明" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:618 +msgid "输入 /zmodify [name] life [num] 来修改玩家的血量\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3716 ..\..\ZHIPM.Initialize.cs:3717 +#: ..\..\ZHIPM.Initialize.cs:3747 ..\..\ZHIPM.Initialize.cs:3748 +#: ..\..\ZHIPM.Initialize.cs:3766 ..\..\ZHIPM.Initialize.cs:3767 +#: ..\..\ZHIPM.Initialize.cs:3829 ..\..\ZHIPM.Initialize.cs:3832 +#: ..\..\ZHIPM.Initialize.cs:3833 +#, csharp-format +msgid "用户 {0} 已被 {1} 封禁" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:844 +msgid "回档失败!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3482 +msgid "" +"输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n" +"输入 /zsort point 来查看人物点数排行榜前十名\n" +"输入 /zsort point all 来查看所有玩家点数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2609 +msgid "你的名字含有指令关键字: me ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:865 ..\..\ZHIPM.Utils.cs:878 +msgid "您已回档成功!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1816 ..\..\ZHIPM.Initialize.cs:1982 +msgid "已击杀罕见生物[i:4274]:" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:929 +#, csharp-format +msgid "{0}铂金币 {1}金币 {2}银币 {3}铜币" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:834 +#, csharp-format +msgid "回档失败!未找到 [{0} - {1}] 号该备份" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3840 +msgid "输入 /zban add uuid [uuid] [reason] 来封禁uuid\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2007 +msgid "各种buff:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:4199 ..\..\ZHIPM.Initialize.cs:4281 +#: ..\..\ZHIPM.Initialize.cs:4376 ..\..\ZHIPM.Initialize.cs:4482 +#: ..\..\ZHIPM.Initialize.cs:4559 ..\..\ZHIPM.Initialize.cs:4657 +#: ..\..\ZHIPM.Initialize.cs:4756 ..\..\ZHIPM.Initialize.cs:4853 +#: ..\..\ZHIPM.Initialize.cs:4919 +msgid "错误的点数:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2390 +#, csharp-format +msgid "玩家 {0} 已经在线了 {1}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3004 +msgid "" +"输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜\n" +"输入 /zsort time 来查看人物在线时间排行榜前十名\n" +"输入 /zsort time all 来查看所有玩家在线时常排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:523 ..\..\ZHIPM.Initialize.cs:579 +msgid "玩家2不唯一" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:4593 +msgid "月亮领主" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:334 +msgid "错误:AddZPlayerDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2794 +#, csharp-format +msgid "{0} 名用户因数据错误导出失败" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:41 +msgid "输入 /vs 来查看该玩家的状态\n" +msgstr "" + +#: ..\..\ZHIPM.cs:62 +msgid "该玩家不存在,请重新输入" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3605 ..\..\ZHIPM.Initialize.cs:3609 +#: ..\..\ZHIPM.Initialize.cs:3637 ..\..\ZHIPM.Initialize.cs:3641 +#: ..\..\ZHIPM.Initialize.cs:3655 ..\..\ZHIPM.Initialize.cs:3659 +#, csharp-format +msgid "第 {0} 名:【{1}】 菜鸡值 {2:0.00}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2693 ..\..\ZHIPM.Initialize.cs:2704 +msgid "启用" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1815 ..\..\ZHIPM.Initialize.cs:1981 +msgid "已击杀Boss[i:3868]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2003 ..\..\ZHIPM.Initialize.cs:2191 +msgid "最大生命值:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:968 +msgid "您的备份数据已重置" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1364 +msgid "宠物 矿车 坐骑 钩爪 染料:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3964 +#, csharp-format +msgid "玩家 [{0}] 未被冻结!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5072 +msgid "数据异常,请重试" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:631 +msgid "输入 /zmodify [name] cart [0或1] 来关闭或开启超级矿车增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3841 +msgid "输入 /zban add ip [ip] [reason] 来封禁ip" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:623 +msgid "输入 /zmodify [name] torch [0或1] 来关闭或开启火把神增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:770 +msgid "您的超级矿车增益开启状态:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:46 +msgid "输入 /zsort help 来查看排序系列指令帮助\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2313 ..\..\ZHIPM.Initialize.cs:2316 +msgid "服务器将在20秒后清理世界内所有无用NPC,射弹和物品" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:699 +msgid "您的点数已被修改为:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:28 +msgid "输入 /zsave 来备份自己的人物存档\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:887 +msgid "回档失败!未备份数据或该玩家未登录" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1709 ..\..\ZHIPM.Initialize.cs:1897 +msgid "库存硬币数[i:855]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3787 ..\..\ZHIPM.Initialize.cs:3878 +#: ..\..\ZHIPM.Initialize.cs:3969 +msgid "精准查找未找到,正在尝试模糊查找" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5148 +msgid "备份存档数目最小为 1 ,请不要输入无效值,已修改为默认 5" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2883 ..\..\ZHIPM.Initialize.cs:3674 +msgid "输入 /zsort help 来查看排序系列指令帮助" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3753 ..\..\ZHIPM.Initialize.cs:3754 +#, csharp-format +msgid "ip: {0} 已被 {1} 封禁" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:620 +msgid "输入 /zmodify [name] mana [num] 来修改玩家的魔力\n" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:146 +msgid "错误:ReadZPlayerDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:329 +#, csharp-format +msgid "玩家[{0}]备份 [{1} - {2}] 的内容为:\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2346 +#, csharp-format +msgid "玩家 [ {0} ] 的所有Buff均已消除" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2277 +msgid "已击杀生物数:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1707 ..\..\ZHIPM.Initialize.cs:1895 +msgid " 当前魔力值[i:184]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3699 ..\..\ZHIPM.Initialize.cs:3730 +msgid "参数过少" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1415 +msgid "虚空金库:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2605 +msgid "你的名字含有指令关键字: help ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2817 +msgid "错误 ZhiExportPlayer :" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1236 +msgid "输入 /vi <玩家名> 来查看该玩家的库存" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1314 +msgid "装备栏1:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2925 +msgid "输入 /zsort coin [num] 来查看当前[num]个人物硬币数目排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5057 +msgid "输入 /zbpos 来返回上次死亡地点" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3104 +msgid "" +"输入 /zsort coin 来查看人物硬币数目排行榜前十名\n" +"输入 /zsort coin [num] 来查看当前[num]个人物硬币数目排行榜\n" +"输入 /zsort coin all 来查看所有玩家硬币数目排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1333 +msgid "当前染料:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5087 +#, csharp-format +msgid "玩家 {0} 已传送到上次死亡地点" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2337 +msgid "该玩家不在线或不存在" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:143 +msgid "自动备份被禁用,请联系管理员询问详情" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:810 ..\..\ZHIPM.Initialize.cs:911 +msgid "修改成功!" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1528 +msgid "输入 /vid <玩家名> 来查看该玩家的库存,不进行排列" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2845 ..\..\ZHIPM.Initialize.cs:2846 +msgid "导出失败,因数据错误" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2114 ..\..\ZHIPM.Initialize.cs:2284 +msgid "点数:" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:401 +msgid "错误:ClearZPlayerDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1582 +#, csharp-format +msgid "玩家 【{0}】 的所有库存如下:\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5094 +msgid "点数不足,无法回溯上次死亡地点" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:802 +msgid "您的所有永久增益均关闭" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3538 ..\..\ZHIPM.Initialize.cs:3549 +#, csharp-format +msgid "第 {0} 名:【{1}】 死亡次数 {2}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3438 +#, csharp-format +msgid "第 {0} 名:【{1}】 点数 {2} " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1098 +msgid "输入 /zresetdb 来清理该玩家的备份数据\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5099 +msgid "未被允许死亡回调传送,请在配置文件中修改" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2102 ..\..\ZHIPM.Initialize.cs:2272 +msgid "死亡次数:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2918 +msgid "输入 /zsort clumsy [num] 来查看当前[num]个人物手残排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2676 ..\..\ZHIPM.Initialize.cs:2718 +msgid "" +"输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n" +"输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1389 +msgid "保险箱:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:5032 +#, csharp-format +msgid "您遗失了:{0} 点数" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2979 ..\..\ZHIPM.Initialize.cs:3065 +#: ..\..\ZHIPM.Initialize.cs:3157 ..\..\ZHIPM.Initialize.cs:3230 +#: ..\..\ZHIPM.Initialize.cs:3306 ..\..\ZHIPM.Initialize.cs:3457 +#: ..\..\ZHIPM.Initialize.cs:3532 ..\..\ZHIPM.Initialize.cs:3629 +#, csharp-format +msgid "当前最多 {0} 人" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:677 +msgid "错误:ListAllExtraDB " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2926 +msgid "输入 /zsort coin all 来查看所有玩家硬币数目排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2613 +msgid "你的名字含有指令关键字: uuid ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:357 +msgid "克隆失败!请不要克隆自己" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:497 +msgid "错误:UpdateTshockDBCharac " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2901 +msgid "输入 /zsort boss all 来查看所有玩家击杀Boss总数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1376 +msgid "猪猪储蓄罐:" +msgstr "" + +#: ..\..\ZHIPM.DB.cs:218 +msgid "错误:WriteZPlayerDB " +msgstr "" + +#: ..\..\ZHIPM.DB.cs:378 +msgid "错误:ClearALLZPlayerDB " +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:1015 +msgid "月亮领主()" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1160 +msgid "" +"重置失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检" +"测,再重新输入" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2107 +#, csharp-format +msgid "已击杀生物数:{0} 个" +msgstr "" + +#: ..\..\ZHIPM.cs:64 +msgid "该玩家不在线,正在查询离线数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3689 +msgid "输入 /zban add ip [reason] 来封禁ip" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2386 +msgid "点数奖励 + 1000" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:679 +msgid "您的魔力值已被修改为:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:648 ..\..\ZHIPM.Initialize.cs:709 +#: ..\..\ZHIPM.Initialize.cs:806 ..\..\ZHIPM.Initialize.cs:863 +msgid "格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2769 ..\..\ZHIPM.Initialize.cs:2773 +#: ..\..\ZHIPM.Initialize.cs:2776 +#, csharp-format +msgid "用户 [{0}] 已导出,目录:tshock/Zhipm/{1}/{2}.plr" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:622 +msgid "输入 /zmodify [name] fish [num] 来修改玩家的渔夫任务数\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2429 +msgid "已自动备份您的人物存档,自动保存您的额外数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:226 +msgid "您还未备份" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1891 ..\..\ZHIPM.Initialize.cs:2188 +#, csharp-format +msgid "多个结果 玩家 【{0}】 的状态如下:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3703 ..\..\ZHIPM.Initialize.cs:3734 +msgid "检测到违规行为,请联系管理员" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3382 +msgid "当前最多 人" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3363 ..\..\ZHIPM.Initialize.cs:3388 +#: ..\..\ZHIPM.Initialize.cs:3399 +#, csharp-format +msgid "第 {0} 名:【{1}】 击杀罕见生物总数 {2} 个" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:336 +msgid "" +"输入 /zvisa [num] 来查看自己的第几个人物备份\n" +"输入 /zvisa name [num] 来查看该玩家的第几个人物备份" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1706 ..\..\ZHIPM.Initialize.cs:1894 +msgid "最大生命值[i:29]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:703 +msgid "不可预料的错误,请重试或让该玩家重进游戏" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2597 +msgid "你的名字含有指令关键字: all ,请更换" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3041 ..\..\ZHIPM.Initialize.cs:3045 +#: ..\..\ZHIPM.Initialize.cs:3073 ..\..\ZHIPM.Initialize.cs:3077 +#: ..\..\ZHIPM.Initialize.cs:3091 ..\..\ZHIPM.Initialize.cs:3095 +#, csharp-format +msgid "第 {0} 名:【{1}】 总硬币数 {2}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:43 +msgid "输入 /zfre 来冻结该玩家\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1021 ..\..\ZHIPM.Initialize.cs:1022 +#: ..\..\ZHIPM.Initialize.cs:1026 +msgid "所有玩家的额外数据均已重置" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:629 +msgid "输入 /zmodify [name] worm [0或1] 来关闭或开启粘性蠕虫增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2109 ..\..\ZHIPM.Initialize.cs:2279 +msgid "已击杀罕见生物:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:624 +msgid "输入 /zmodify [name] demmon [0或1] 来关闭或开启恶魔心增益\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2805 +#, csharp-format +msgid "已打包为{0}/Zhipm/{1}.zip" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3138 ..\..\ZHIPM.Initialize.cs:3163 +#: ..\..\ZHIPM.Initialize.cs:3174 +#, csharp-format +msgid "第 {0} 名:【{1}】 总完成任务鱼数 {2}" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:42 +msgid "输入 /vs me 来查看自己的状态\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1104 ..\..\ZHIPM.Initialize.cs:1190 +msgid "输入 /zresetallplayers 来清理所有玩家的所有数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:449 +#, csharp-format +msgid "克隆成功!您已将玩家 [{0}] 的数据克隆到 [{1}] 身上" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1503 ..\..\ZHIPM.Initialize.cs:1586 +#, csharp-format +msgid "多个结果 玩家 【{0}】 的所有库存如下:\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:163 +msgid "数字不合理" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1351 +msgid "染料3:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1432 +#, csharp-format +msgid "玩家 【{0}】 未携带任何东西" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:52 +msgid "输入 /zban add ip 来封禁ip\n" +msgstr "" + +#: ..\..\ZHIPM.Utils.cs:908 +#, csharp-format +msgid "{0}小时 {1}分钟 {2}秒" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:37 +msgid "输入 /zclone 将该玩家的人物数据复制给自己\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3331 +msgid "" +"输入 /zsort boss [num] 来查看当前[num]个人物击杀Boss总数排行榜\n" +"输入 /zsort boss 来查看人物击杀Boss总数排行榜前十名\n" +"输入 /zsort boss all 来查看所有玩家击杀Boss总数排行榜" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3513 +#, csharp-format +msgid "第 {0} 名:【{1}】 死亡次数 {2} " +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1103 +msgid "输入 /zreset all 来清理所有玩家的人物数据\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:3946 +msgid "所有玩家均已解冻" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2899 +msgid "输入 /zsort boss [num] 来查看当前[num]个人物击杀Boss总数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2108 ..\..\ZHIPM.Initialize.cs:2278 +msgid "已击杀Boss:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:240 +#, csharp-format +msgid "您的备份[{0} - {1}]的内容为:\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:931 +msgid "" +"输入 /zresetdb [name] 来清理该玩家的备份数据\n" +"输入 /zresetdb all 来清理所有玩家的备份数据" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:55 +msgid "输入 /zclear buff all 来清理所有玩家所有Buff\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2330 +msgid "所有玩家的所有Buff均已消除" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:24 +msgid "输入 /zhelp 来查看指令帮助" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2908 +msgid "输入 /zsort point 来查看人物点数排行榜前十名\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2537 +msgid "您已被冻结" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2483 +msgid "已清理所有射弹,物品,无用NPC" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1661 +#, csharp-format +msgid "多个结果 玩家 【{0}】 的所有库存如下:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:2912 +msgid "" +"\n" +"输入 /zsort death [num] 来查看当前[num]个人物死亡次数排行榜\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:45 +msgid "输入 /zunfre all 来解冻所有玩家\n" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:1821 ..\..\ZHIPM.Initialize.cs:1987 +msgid "点数[i:575]:" +msgstr "" + +#: ..\..\ZHIPM.Initialize.cs:32 +msgid "输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n" +msgstr "" From bd5245cc904dbe5ec05284fb47074ebb631c7563 Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 11:54:52 +0800 Subject: [PATCH 11/18] =?UTF-8?q?=E5=B0=86TShock=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E8=BD=AC=E7=A7=BB=E5=88=B0=E5=8F=A6=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- InstallTShock.ps1 | 109 ---------------------------------------------- README.md | 10 +---- README_en.md | 25 ++++------- 3 files changed, 10 insertions(+), 134 deletions(-) delete mode 100644 InstallTShock.ps1 diff --git a/InstallTShock.ps1 b/InstallTShock.ps1 deleted file mode 100644 index 14cc0022..00000000 --- a/InstallTShock.ps1 +++ /dev/null @@ -1,109 +0,0 @@ -Add-Type -AssemblyName System.Windows.Forms - -function Get-DownloadUrl { - [CmdletBinding()] - param( - [Parameter(Mandatory=$false, Position=0)] - [string]$url = "https://api.github.com/repos/Pryaxis/TShock/releases/latest" - ) - - process { - try { - $response = Invoke-WebRequest -Uri $url -UseBasicParsing - - # 检查HTTP状态码 - if ($response.StatusCode -ne 200) { - throw "Failed to retrieve the resource at '$url'. Status code: $($response.StatusCode)" - } - - $json = $response.Content | ConvertFrom-Json - - if (-not ($json -and $json.assets[3].browser_download_url)) { - throw "The JSON content at '$url' does not contain a valid 'browser_download_url' property." - } - - return $json.assets[3].browser_download_url - } - catch [System.Net.WebException], [System.Management.Automation.PSInvocationException] { - # 处理可能的网络异常和JSON解析异常 - throw "Error when attempting to get version from '$url': $_" - } - } -} - -function Get-Dotnet{ - $dotnetVersions = dotnet --list-runtimes - $hasNet6OrHigher = $false - foreach ($version in $dotnetVersions) { - if ($version -match "^Microsoft\.NETCore\.App\s+(\d+\.\d+)\.") { - $majorVersion = [int]$Matches[1] - if ($majorVersion -ge 6) { - $hasNet6OrHigher = $true - break - } - } - } - if(-not $hasNet6OrHigher){ - Write-Host ".net6 is not installed, start installing .net" - $scriptUrl = "https://dot.net/v1/dotnet-install.ps1" - # 下载并执行安装脚本 - Invoke-WebRequest -Uri $scriptUrl -OutFile "dotnet-install.ps1" - powershell -ExecutionPolicy ByPass -File ./dotnet-install.ps1 -Runtime "dotnet" -NoPath - } -} - - -function Get-TShockZip{ - param( - [Parameter(Mandatory=$true)] - [string]$proxy - ) - - process { - try { - $download_url = Get-DownloadUrl - $url = $proxy + $download_url - if($null -eq $download_url){ - throw "Not Get TShock Version Info!" - } - Write-Host "Download $url...." - #禁用进度条,进度条可能会导致下载变慢! - #$ProgressPreference = 'SilentlyContinue' - $zipFile = "./TShock.zip" - - $response = Invoke-WebRequest -Uri $url -UseBasicParsing - # 检查HTTP状态码 - if ($response.StatusCode -ne 200) { - throw "Failed to retrieve the resource at '$url'. Status code: $($response.StatusCode)" - } - [IO.File]::WriteAllBytes($zipFile, $response.Content) - Write-Host "Ready to start unzipping TShock.zip...." - Expand-Archive -Path "./TShock.zip" -DestinationPath "./TShockServer/" - Remove-Item -Path $zipFile -Force - $result = [System.Windows.Forms.MessageBox]::Show("Start TShock.Server ?", "Hint", [System.Windows.Forms.MessageBoxButtons]::YesNo, [System.Windows.Forms.MessageBoxIcon]::Question) - if ($result -eq [System.Windows.Forms.DialogResult]::Yes) { - Set-Location ./TShockServer - Start-Process -FilePath ./TShock.Server.exe -ArgumentList "-lang 7" - } - }catch [System.Net.WebException], [System.Management.Automation.PSInvocationException] { - # 处理可能的网络异常 - throw "Error when attempting to get zip from '$url': $_" - } - } -} - -Get-Dotnet -$proxys = "https://gh.ddlc.top/","https://gh.llkk.cc/","https://mirror.ghproxy.com/","https://github.moeyy.xyz/","https://ghproxy.net/" -Write-Host "Places Choice Proxy Download TShock!" -$i = 1 -foreach($url in $proxys){ - Write-Host $i"." $url - $i = $i + 1 -} -$choice = Read-Host -$index = [int]$choice -if ($proxys -ge 0 -and ($index -1) -lt $proxys.Length){ - Get-TShockZip -proxy $proxys[$index - 1] -}else{ - Write-Host "Input Number Error!" -} \ No newline at end of file diff --git a/README.md b/README.md index 8b62d95e..78828d29 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
[![TShockPlugin](https://socialify.git.ci/UnrealMultiple/TShockPlugin/image?description=1&descriptionEditable=%E4%B8%80%E4%B8%AATShock%E6%94%B6%E9%9B%86%E4%BB%93%E5%BA%93&font=Inter&forks=1&issues=1&language=1&logo=https%3A%2F%2Fgithub.com%2FUnrealMultiple%2FTShockPlugin%2Fblob%2Fmaster%2Ficon.png%3Fraw%3Dtrue&name=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Auto)](https://github.com/UnrealMultiple/TShockPlugin) -[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/UnrealMultiple/TShockPlugin/.github%2Fworkflows%2Fplugins_publish.yml)](https://github.com/UnrealMultiple/TShockPlugin/actions) +[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/UnrealMultiple/TShockPlugin/.github%2Fworkflows%2Fbuild.yml)](https://github.com/UnrealMultiple/TShockPlugin/actions) [![GitHub contributors](https://img.shields.io/github/contributors/UnrealMultiple/TShockPlugin?style=flat)](https://github.com/UnrealMultiple/TShockPlugin/graphs/contributors) [![NET6](https://img.shields.io/badge/Core-%20.NET_6-blue)](https://dotnet.microsoft.com/zh-cn/) [![QQ](https://img.shields.io/badge/QQ-EB1923?logo=tencent-qq&logoColor=white)](https://qm.qq.com/cgi-bin/qm/qr?k=54tOesIU5g13yVBNFIuMBQ6AzjgE6f0m&jump_from=webapi&authKey=6jzafzJEqQGzq7b2mAHBw+Ws5uOdl83iIu7CvFmrfm/Xxbo2kNHKSNXJvDGYxhSW) @@ -30,14 +30,6 @@ - Gitee发布(国内推荐): [Plugins.zip](https://gitee.com/kksjsj/TShockPlugin/releases/download/V1.0.0.0/Plugins.zip) - Github发布: [Plugins.zip](https://github.com/UnrealMultiple/TShockPlugin/releases/download/V1.0.0.0/Plugins.zip) - -## 如何安装TShock -- 如果你是Window用户可以选择使用以下命令一次性安装(在pwsh中运行此命令即可) -``` -curl -o install.ps1 https://gitee.com/kksjsj/TShockPlugin/raw/master/InstallTShock.ps1 -powershell -ExecutionPolicy ByPass -File ./install.ps1 -verb runas -``` - ## 开发者注意事项 > 代码规范 diff --git a/README_en.md b/README_en.md index 593783d9..67960421 100644 --- a/README_en.md +++ b/README_en.md @@ -30,13 +30,6 @@ - Github Release: [Plugins.zip](https://github.com/UnrealMultiple/TShockPlugin/releases/download/V1.0.0.0/Plugins.zip) - Gitee Release: [Plugins.zip](https://gitee.com/kksjsj/TShockPlugin/releases/download/V1.0.0.0/Plugins.zip) -## How to Install TShock -- If you are a Windows user, you can choose to install it using the following command (run this command in pwsh): -```powershell -curl -o install.ps1 https://github.com/UnrealMultiple/TShockPlugin/blob/master/InstallTShock.ps1 -powershell -ExecutionPolicy ByPass -File ./install.ps1 -verb runas -``` - ## Developer Notes > Coding Standards @@ -60,8 +53,8 @@ powershell -ExecutionPolicy ByPass -File ./install.ps1 -verb runas
Plugin List -| Plugin Name | Plugin Description | Precondition | -|------------------------------------------------------------------|:----------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| +| Plugin Name | Plugin Description | Precondition | +|----------------------------------------------------------------------|:----------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| | [ChattyBridge](src/ChattyBridge/README.md) | Used for cross-server chat. | No | | [EconomicsAPI](src/EconomicsAPI/README.md) | Economic plugin prerequisite | No | | [Economics.RPG](src/Economics.RPG/README.md) | RPG | [EconomicsAPI](src/EconomicsAPI/README.md) | @@ -75,7 +68,7 @@ powershell -ExecutionPolicy ByPass -File ./install.ps1 -verb runas | [Economics.Task](src/Economics.Task/README.md) | Task plugin | [EconomicsAPI](src/EconomicsAPI/README.md)
[Economics.RPG](src/https://github.com/UnrealMultiple/TShockPlugin/blob/master/Economics.RPG/README.md) | | [CreateSpawn](src/CreateSpawn/README.md) | Spawn point building generation | No | | [AutoBroadcast](src/AutoBroadcast/README.md) | Automatic broadcast | No | -| [AutoTeam](src/AutoTeam/README.md) | AutoTeam | No | +| [AutoTeam](src/AutoTeam/README_EN.md) | AutoTeam | No | | [BridgeBuilder](src/BridgeBuilder/README.md) | Quick bridge laying | No | | [OnlineGiftPackage](src/OnlineGiftPackage/README.md) | Online gift pack | No | | [LifemaxExtra](src/LifemaxExtra/README.md) | Eat more Life Fruits/Life Crystal | No | @@ -84,9 +77,9 @@ powershell -ExecutionPolicy ByPass -File ./install.ps1 -verb runas | [ShortCommand](src/ShortCommand/README.md) | Short Command | No | | [ProgressBag](src/ProgressBag/README.md) | Progress gift pack | No | | [CriticalHit](src/CriticalHit/README.md) | Hit prompt | No | -| [Back](src/Back/README.md) | Return to the point of death | No | +| [Back](src/Back/README_EN.md) | Return to the point of death | No | | [BanNpc](src/BanNpc/README.md) | Prevent monster generation | No | -| [MapTeleport](src/MapTp/README.md) | Double-click the map to teleport. | No | +| [MapTeleport](src/MapTp/READM_EN.md) | Double-click the map to teleport. | No | | [RandReSpawn](src/RandRespawn/README.md) | Random spawn point | No | | [CGive](src/CGive/README.md) | Offline commands | No | | [RainbowChat](src/RainbowChat/README.md) | Random chat color | No | @@ -115,7 +108,7 @@ powershell -ExecutionPolicy ByPass -File ./install.ps1 -verb runas | [AutoClear](src/Autoclear/README.md) | Intelligent automatic cleaning | No | | [EssentialsPlus](src/EssentialsPlus/README.md) | More management commands | No | | [ShowArmors](src/ShowArmors/README.md) | Display equipment bar | No | -| [VeinMiner](src/VeinMiner/README.md) | Chain mining | No | +| [VeinMiner](src/VeinMiner/README_EN.md) | Chain mining | No | | [PersonalPermission](src/PersonalPermission/README.md) | Set permissions individually for players | No | | [ItemPreserver](src/ItemPreserver/README.md) | Specified items do not consume | No | | [SimultaneousUseFix](src/SimultaneousUseFix/README.md) | Solve problems like stuck double hammer and star spin machine gun | [Chireiden.TShock.Omni](src/https://github.com/sgkoishi/yaaiomni/releases) | @@ -124,14 +117,14 @@ powershell -ExecutionPolicy ByPass -File ./install.ps1 -verb runas | [BuildMaster](src/BuildMaster/README.md) | Red Bean Mini Game·Master Builder Mode | [MiniGamesAPI](src/MiniGamesAPI/README.md) | | [journeyUnlock](src/journeyUnlock/README.md) | Unlock Journey Items | No | | [ListPlugins](src/ListPlugins/README.md) | List Installed Plugins | No | -| [BagPing](src/BagPing/README.md) | Mark Treasure Bag on Map | No | +| [BagPing](src/BagPing/README_EN.md) | Mark Treasure Bag on Map | No | | [ServerTools](src/ServerTools/README.md) | Server Management Tools | No | | [Platform](src/Platform/README.md) | Determine Player Device | No | | [CaiLib](src/CaiLib/README.md) | Cai’s Preload Library | No | | [GenerateMap](src/GenerateMap/README.md) | Generate Map Image | [CaiLib](src/CaiLib/README.md) | | [RestInventory](src/RestInventory/README.md) | Provide REST Query Backpack Interface | No | | [WikiLangPackLoader](src/WikiLangPackLoader/README.md) | Load Chinese Wiki Language Pack for Server | No | -| [HelpPlus](src/HelpPlus/README.md) | Fix and Enhance Help Command | No | +| [HelpPlus](src/HelpPlus/README_EN.md) | Fix and Enhance Help Command | No | | [CaiBot](src/CaiBot/README.md) | CaiBot(QQ) Adapter Plugin | Built-in Precondition | | [HouseRegion](src/HouseRegion/README.md) | Land Claiming Plugin | No | | [SignInSign](src/SignInSign/README.md) | Signboard Login Plugin | No | @@ -160,7 +153,7 @@ powershell -ExecutionPolicy ByPass -File ./install.ps1 -verb runas | [SpawnInfra](src/SpawnInfra/README.md) | Generate Basic Infrastructure | No | | [CNPCShop](src/CNPCShop/README.md) | Custom NPC Shop | No | | [SessionSentinel](src/SessionSentinel/README.md) | Handle Players Not Sending Data Packets for a Long Time | No | -| [TeleportRequest](src/TeleportRequest/README.md) | Teleport Request | No | +| [TeleportRequest](src/TeleportRequest/README_EN.md) | Teleport Request | No | | [CaiRewardChest](src/CaiRewardChest/README.md) | Convert Naturally Generated Chests into Reward Chests that Everyone Can Claim Once | No | | [ProxyProtocolSocket](src/ProxyProtocolSocket/README.md) | Accept proxy protocol connections | No | | [UnseenInventory](src/UnseenInventory/README.md) | Allows the server to generate items that are normally 'unobtainable'. | No | From 6974d3b8bdb80b4cd3edc2cf0efed669b434afa1 Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 11:56:31 +0800 Subject: [PATCH 12/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E7=89=88=E7=94=A8=E6=B3=95=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Usage.txt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Usage.txt b/Usage.txt index 8817c786..c3cc9d47 100644 --- a/Usage.txt +++ b/Usage.txt @@ -1,3 +1,4 @@ +简体中文: [使用说明] 1. 本仓库所有插件都开源免费,按GNU General Public License v3.0许可授权使用。 2. 使用插件前请详细阅读每个插件的文档(md,或在 https://tr.monika.love/resources/104/ 查看) @@ -8,4 +9,17 @@ pdb: 插件的调试文件,和dll放在一起即可,安装后插件报错可 md: 仓库插件的READEME文件,如果没有md查看器,可以在 https://tr.monika.love/resources/104/ 的插件列表中查看每个插件的文档、 LICENSE: 插件仓库的开源协议(GNU General Public License v3.0) Plugins.json: 插件仓库插件的版本信息,一般用于自动更新 -TShockPlugin.md: 插件仓库的文档文件,有插件列表和一些说明 \ No newline at end of file +TShockPlugin.md: 插件仓库的文档文件,有插件列表和一些说明 + +English: +[Instructions] +1. All plugins in this repository are open-source and free to use under the GNU General Public License v3.0. +2. Please read the documentation for each plugin (md files, or view at https://tr.monika.love/resources/104/) before using the plugins. +3. If you encounter any issues while using the latest version of the plugins from this repository, you can ask questions on GitHub through Issues. +[File Functions] +dll: The main plugin file, to be placed in the ServerPlugins folder. +pdb: The plugin’s debug file, to be placed together with the dll. It provides more detailed error messages to help developers quickly locate errors. +md: The README file for the repository plugins. If you don’t have an md viewer, you can view the documentation for each plugin in the plugin list at https://tr.monika.love/resources/104/. +LICENSE: The open-source license for the plugin repository (GNU General Public License v3.0). +Plugins.json: The version information for the repository plugins, generally used for automatic updates. +TShockPlugin.md: The documentation file for the plugin repository, containing the plugin list and some instructions. \ No newline at end of file From 3c8da9d1a6bbe9fa3c570f5fc7d2cecb3fe6a9ea Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 12:02:12 +0800 Subject: [PATCH 13/18] =?UTF-8?q?=E5=B0=86APM=E6=B7=BB=E5=8A=A0=E8=BF=9B?= =?UTF-8?q?=E4=B8=BB=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++++ README_en.md | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 78828d29..c413bb23 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,11 @@ - Gitee发布(国内推荐): [Plugins.zip](https://gitee.com/kksjsj/TShockPlugin/releases/download/V1.0.0.0/Plugins.zip) - Github发布: [Plugins.zip](https://github.com/UnrealMultiple/TShockPlugin/releases/download/V1.0.0.0/Plugins.zip) +#### AutoPluginManager插件 (本仓库推出的插件管理器) + /apm l 列出所有插件 + /apm i <插件名> 一键安装插件 + /apm u [插件名] 检查并且更新插件 + ## 开发者注意事项 > 代码规范 diff --git a/README_en.md b/README_en.md index 67960421..d74d568a 100644 --- a/README_en.md +++ b/README_en.md @@ -29,7 +29,10 @@ - Github Release: [Plugins.zip](https://github.com/UnrealMultiple/TShockPlugin/releases/download/V1.0.0.0/Plugins.zip) - Gitee Release: [Plugins.zip](https://gitee.com/kksjsj/TShockPlugin/releases/download/V1.0.0.0/Plugins.zip) - +#### AutoPluginManager + /apm l List all plugins + /apm i One-click install plugin + /apm u [plugin name] Check and update plugin ## Developer Notes > Coding Standards From 29a9ffd099907de18261beee72510f5124296b8d Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 12:18:08 +0800 Subject: [PATCH 14/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/BuildHelper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/BuildHelper.py b/scripts/BuildHelper.py index 08dc479e..f742c169 100644 --- a/scripts/BuildHelper.py +++ b/scripts/BuildHelper.py @@ -42,7 +42,7 @@ def zip_files_in_folder(folder_path, zip_file_path): try: if file_name.endswith('.csproj'): source_path = os.path.join(dir_path, 'README_EN.md') - destination_path = os.path.join(cwd, 'out', f'{build_type}', file_name.replace('.csproj', '.md')) + destination_path = os.path.join(cwd, 'out', f'{build_type}', file_name.replace('.csproj', '_EN.md')) shutil.copyfile(source_path, destination_path) print(f"🔍 找到README_EN.md({destination_path})") except: From d17803a1c64036e41cc76135e0cae294576a7e29 Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 12:22:25 +0800 Subject: [PATCH 15/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/BuildHelper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/BuildHelper.py b/scripts/BuildHelper.py index f742c169..987969a7 100644 --- a/scripts/BuildHelper.py +++ b/scripts/BuildHelper.py @@ -27,7 +27,7 @@ def zip_files_in_folder(folder_path, zip_file_path): print("📝 开始移动README.md...") cwd = os.getcwd() - for dir_name in os.listdir(cwd): + for dir_name in os.listdir(os.path.join(cwd,"src")): dir_path = os.path.join(cwd, dir_name) if os.path.isdir(dir_path): for file_name in os.listdir(dir_path): From 007c2d78a1dc5c940e789bd4b610455ef4f833f8 Mon Sep 17 00:00:00 2001 From: Cai <13110818005@qq.com> Date: Sun, 1 Sep 2024 12:29:07 +0800 Subject: [PATCH 16/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/BuildHelper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/BuildHelper.py b/scripts/BuildHelper.py index 987969a7..a3b329a0 100644 --- a/scripts/BuildHelper.py +++ b/scripts/BuildHelper.py @@ -28,7 +28,7 @@ def zip_files_in_folder(folder_path, zip_file_path): print("📝 开始移动README.md...") cwd = os.getcwd() for dir_name in os.listdir(os.path.join(cwd,"src")): - dir_path = os.path.join(cwd, dir_name) + dir_path = os.path.join(cwd,'src', dir_name) if os.path.isdir(dir_path): for file_name in os.listdir(dir_path): try: From d4464ddfa18d8a848d2109ddea4a2fab2ea8bcef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=91=E5=8F=B8=E5=91=BD?= <79201070+Controllerdestiny@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:34:06 +0800 Subject: [PATCH 17/18] Delete scripts/BuildHelper.py --- scripts/BuildHelper.py | 101 ----------------------------------------- 1 file changed, 101 deletions(-) delete mode 100644 scripts/BuildHelper.py diff --git a/scripts/BuildHelper.py b/scripts/BuildHelper.py deleted file mode 100644 index a3b329a0..00000000 --- a/scripts/BuildHelper.py +++ /dev/null @@ -1,101 +0,0 @@ -import os -import glob -import shutil -import sys -import zipfile -import requests - -def zip_files_in_folder(folder_path, zip_file_path): - with zipfile.ZipFile(zip_file_path, 'w', compression=zipfile.ZIP_DEFLATED, compresslevel=9) as zipf: - for foldername, subfolders, filenames in os.walk(folder_path): - for filename in filenames: - file_path = os.path.join(foldername, filename) - arcname = os.path.relpath(file_path, folder_path) - zipf.write(file_path, arcname=arcname) - print(f"📦 压缩包已生成: {zip_file_path}") - - -if __name__ == '__main__': - print(f"🚀 开始执行打包脚本...(By Cai 😋)") - build_type = sys.argv[1] - - print(f"🗑️ 开始删除json文件...") - for file in glob.glob(os.path.join(f"out/{build_type}/", "*.json")): - os.remove(file) - print(f"✅ 已删除文件: {file}") - print("✅ json文件删除成功!") - - print("📝 开始移动README.md...") - cwd = os.getcwd() - for dir_name in os.listdir(os.path.join(cwd,"src")): - dir_path = os.path.join(cwd,'src', dir_name) - if os.path.isdir(dir_path): - for file_name in os.listdir(dir_path): - try: - if file_name.endswith('.csproj'): - source_path = os.path.join(dir_path, 'README.md') - destination_path = os.path.join(cwd, 'out', f'{build_type}', file_name.replace('.csproj', '.md')) - shutil.copyfile(source_path, destination_path) - print(f"🔍 找到README.md({destination_path})") - except: - print(f"⚠️ README移动失败({file_name})") - try: - if file_name.endswith('.csproj'): - source_path = os.path.join(dir_path, 'README_EN.md') - destination_path = os.path.join(cwd, 'out', f'{build_type}', file_name.replace('.csproj', '_EN.md')) - shutil.copyfile(source_path, destination_path) - print(f"🔍 找到README_EN.md({destination_path})") - except: - pass - - - os.makedirs(f'out/{build_type}/Plugins', exist_ok=True) - - out_dir = f'out/{build_type}' - files = [f for f in os.listdir(out_dir) if os.path.isfile(os.path.join(out_dir, f))] - - - for file in files: - shutil.move(os.path.join(out_dir, file), os.path.join(f'out/{build_type}/Plugins', file)) - - shutil.copyfile('README.md', f"out/{build_type}/TShockPlugin.md") - print("✅ README.md移动成功!") - - shutil.copyfile('Usage.txt', f"out/{build_type}/使用前须知.txt") - print("✅ 使用前须知.txt移动成功!") - - shutil.copyfile('Plugins.json', f"out/{build_type}/Plugins.json") - print("✅ Plugins.json移动成功!") - - shutil.copyfile('LICENSE', f"out/{build_type}/LICENSE") - print("✅ 开源协议移动成功!") - - print("📦 准备打包插件...") - zip_files_in_folder(f"out/{build_type}", "Plugins.zip") - print("📦 插件打包成功!") - if build_type == "Release" and len(sys.argv) > 2: - gitee_token = sys.argv[2] - owner = 'kksjsj' - repo = 'TShockPlugin' - release_id = 431070 - headers = { - 'Authorization': f'token {gitee_token}' - } - files = { - 'file': open('Plugins.zip', 'rb') - } - attachments = requests.get(f"https://gitee.com/api/v5/repos/{owner}/{repo}/releases/{release_id}/attach_files?&page=1&per_page=100&direction=asc",headers=headers).json() - for attachment in attachments: - response = requests.delete(f"https://gitee.com/api/v5/repos/{owner}/{repo}/releases/{release_id}/attach_files/{attachment['id']}",headers=headers) - print(f'🗑️ 附件 {attachment["name"]} 删除{"成功" if response.status_code == 204 else "失败"}:{response.status_code}') - - response = requests.post(f"https://gitee.com/api/v5/repos/{owner}/{repo}/releases/{release_id}/attach_files", headers=headers, files=files) - if response.status_code == 201: - print('✨ Gitee插件包上传成功!') - print('下载链接:', response.json()['browser_download_url']) - else: - print('❓Gitee插件包上传失败:', response.status_code) - print(response.json()) - - print("📦 插件打包结束!") - From 7e2e6f4661887d7996c988223dcb57fabefe712b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=91=E5=8F=B8=E5=91=BD?= <79201070+Controllerdestiny@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:41:17 +0800 Subject: [PATCH 18/18] Delete src/ZHIPlayerManager/i18n/en-US.po --- src/ZHIPlayerManager/i18n/en-US.po | 1636 ---------------------------- 1 file changed, 1636 deletions(-) delete mode 100644 src/ZHIPlayerManager/i18n/en-US.po diff --git a/src/ZHIPlayerManager/i18n/en-US.po b/src/ZHIPlayerManager/i18n/en-US.po deleted file mode 100644 index 8e137828..00000000 --- a/src/ZHIPlayerManager/i18n/en-US.po +++ /dev/null @@ -1,1636 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: ZHIPlayerManager\n" -"POT-Creation-Date: 2024-09-01 11:28:09+0800\n" -"PO-Revision-Date: 2024-09-01 11:53+0800\n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: en_US\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.5\n" - -#: ..\..\ZHIPM.Initialize.cs:177 -#, csharp-format -msgid "" -"修改成功,你的存档将每隔{0}分钟自动备份一次,请注意存档覆盖情况,这可能会覆" -"盖你手动备份的部分" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2782 ..\..\ZHIPM.Initialize.cs:2786 -#: ..\..\ZHIPM.Initialize.cs:2790 -#, csharp-format -msgid "用户 [{0}] 因数据错误导出失败" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3255 -msgid "" -"输入 /zsort kill [num] 来查看当前[num]个人物击杀生物数排行榜\n" -"输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n" -"输入 /zsort kill all 来查看所有玩家击杀生物数排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2617 -msgid "你的名字含有指令关键字: ip ,请更换" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1293 -msgid "背包:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2893 -msgid "输入 /zsort time all 来查看所有玩家在线时常排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2304 ..\..\ZHIPM.Initialize.cs:2351 -msgid "" -"输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n" -"输入 /zclear buff 来清理该玩家的所有Buff\n" -"输入 /zclear buff all 来清理所有玩家所有Buff" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2907 -msgid "" -"\n" -"输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:632 -msgid "输入 /zmodify [name] all [0或1] 来关闭或开启所有玩家增益" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:474 ..\..\ZHIPM.Initialize.cs:556 -msgid "玩家1不存在" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3960 ..\..\ZHIPM.Initialize.cs:3986 -#: ..\..\ZHIPM.Initialize.cs:4004 -#, csharp-format -msgid "玩家 [{0}] 已解冻" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:621 -msgid "输入 /zmodify [name] manamax [num] 来修改玩家的魔力上限\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1101 -msgid "输入 /zresetex all 来清理所有玩家的额外数据\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:53 -msgid "" -"输入 /zclear useless 来清理世界的掉落物品,非城镇或BossNPC,和无用射弹\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:517 ..\..\ZHIPM.Initialize.cs:573 -msgid "玩家2不存在" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:951 ..\..\ZHIPM.Initialize.cs:972 -#: ..\..\ZHIPM.Initialize.cs:994 ..\..\ZHIPM.Initialize.cs:1031 -#: ..\..\ZHIPM.Initialize.cs:1054 ..\..\ZHIPM.Initialize.cs:1076 -#: ..\..\ZHIPM.Initialize.cs:1176 -msgid "重置失败" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2892 -msgid "输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:40 -msgid "输入 /vid 来查看该玩家的库存,不分类\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:740 -msgid "您的埃癸斯果增益开启状态:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:626 -msgid "输入 /zmodify [name] heart [0或1] 来关闭或开启埃癸斯水晶增益\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1211 ..\..\ZHIPM.Initialize.cs:1212 -msgid "清理失败 ZResetPlayerAll :" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:787 -msgid "您的所有永久增益均开启" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1804 ..\..\ZHIPM.Initialize.cs:1970 -msgid "在线时长[i:3099]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1072 -#, csharp-format -msgid "已重置离线玩家 [ {0} ] 的额外数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1814 ..\..\ZHIPM.Initialize.cs:1980 -#, csharp-format -msgid "已击杀生物数[i:3095]:{0} 个" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1345 -msgid "染料2:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1172 -msgid "您的人物数据已被重置" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2714 -msgid "未启用点数统计,该功能不可用" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:5083 -#, csharp-format -msgid ",消耗点数 {0}" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1049 -#, csharp-format -msgid "已重置玩家 [ {0} ] 的额外数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:36 -msgid "输入 /zclone 将玩家1的人物数据复制给玩家2\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2913 -msgid "输入 /zsort death 来查看人物死亡次数排行榜前十名\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1050 -msgid "您的额外数据已重置" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1126 ..\..\ZHIPM.Initialize.cs:1127 -#: ..\..\ZHIPM.Initialize.cs:1131 -msgid "所有玩家的人物数据均已重置" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2704 -#, csharp-format -msgid "修改成功,您现在已{0}点数提示" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:625 -msgid "输入 /zmodify [name] bread [0或1] 来关闭或开启工匠面包增益\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3839 -msgid "" -"输入 /zban add [name] [reason] 来封禁无论是否在线的玩家,reason 可不填\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:4005 -msgid "您已被解冻" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1284 ..\..\ZHIPM.Initialize.cs:1507 -#: ..\..\ZHIPM.Initialize.cs:1665 -#, csharp-format -msgid "玩家 【{0}】 的所有库存如下:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:967 -#, csharp-format -msgid "已重置玩家 [ {0} ] 的备份数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:439 -msgid "请不要对同一个人进行克隆" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:54 -msgid "输入 /zclear buff 来清理该玩家的所有Buff\n" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:825 -msgid "" -"未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检测,再重新" -"输入" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:4315 -msgid "血肉墙" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2909 -msgid "输入 /zsort point all 来查看所有玩家点数排行榜" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:1733 -#, csharp-format -msgid "{0} 伤害: [c/74F3C9:{1}] 比重: {2:0.00%} " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:915 ..\..\ZHIPM.Initialize.cs:916 -msgid "修改失败!错误:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:86 ..\..\ZHIPM.Initialize.cs:216 -#: ..\..\ZHIPM.Initialize.cs:258 -#, csharp-format -msgid "玩家最多有 {0} 个备份存档,范围 1 ~ {1},请重新输入" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:1112 -msgid " 名字:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2731 -msgid "" -"输入 /zout 来导出该玩家的人物存档\n" -"输入 /zout all 来导出所有人物的存档" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3287 ..\..\ZHIPM.Initialize.cs:3312 -#: ..\..\ZHIPM.Initialize.cs:3323 -#, csharp-format -msgid "第 {0} 名:【{1}】 击杀Boss总数 {2} 个" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3211 ..\..\ZHIPM.Initialize.cs:3236 -#: ..\..\ZHIPM.Initialize.cs:3247 -#, csharp-format -msgid "第 {0} 名:【{1}】 击杀生物总数 {2} 个" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:113 ..\..\ZHIPM.Initialize.cs:155 -#: ..\..\ZHIPM.Initialize.cs:202 ..\..\ZHIPM.Initialize.cs:363 -#: ..\..\ZHIPM.Initialize.cs:2682 ..\..\ZHIPM.Initialize.cs:5065 -msgid "对象不正确,请检查您的状态,您是否为游戏内玩家?" -msgstr "" - -#: ..\..\ZHIPM.cs:89 -msgid "该插件需要开启SSC才能使用" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:170 -msgid "修改失败,请重进服务器重试" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2917 -msgid "" -"\n" -"输入 /zsort clumsy 来查看人物手残排行榜前十名\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1898 ..\..\ZHIPM.Initialize.cs:2025 -#: ..\..\ZHIPM.Initialize.cs:2195 -msgid "各种永久增益:" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:635 -msgid "错误 ResetPlayer :" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:559 -msgid "错误:WriteExtraDB 2 " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2589 -msgid "请不要起纯数字名字" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:394 ..\..\ZHIPM.Initialize.cs:415 -#, csharp-format -msgid "克隆成功!您已将玩家[{0}]的数据克隆到你身上" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:534 -msgid "错误:WriteExtraDB " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:673 -msgid "您的生命上限已被修改为:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2947 ..\..\ZHIPM.Initialize.cs:3023 -#: ..\..\ZHIPM.Initialize.cs:3123 ..\..\ZHIPM.Initialize.cs:3198 -#: ..\..\ZHIPM.Initialize.cs:3271 ..\..\ZHIPM.Initialize.cs:3347 -#: ..\..\ZHIPM.Initialize.cs:3423 ..\..\ZHIPM.Initialize.cs:3498 -#: ..\..\ZHIPM.Initialize.cs:3573 -msgid "没有任何数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2005 ..\..\ZHIPM.Initialize.cs:2193 -msgid "完成渔夫任务数:" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:997 -#, csharp-format -msgid "蹦跶{0}({1})," -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2593 -msgid "请不要在名字中使用特殊符号" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1326 -msgid "装备栏3:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2896 -msgid "" -"\n" -"输入 /zsort kill [num] 来查看当前[num]个人物击杀生物数排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1687 -msgid "输入 /vs <玩家名> 来查看该玩家的状态" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2869 ..\..\ZHIPM.Initialize.cs:2870 -msgid "导出失败,因输入错误" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:29 -msgid "" -"输入 /zsaveauto 来每隔 minute 分钟自动备份自己的人物存档,当 " -"minute 为 0 时关闭该功能\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1591 -#, csharp-format -msgid "玩家 【{0}】未携带任何东西\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:47 -msgid "输入 /zout 来导出该玩家的人物存档\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:716 -msgid "您的火把神增益开启状态:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:685 -msgid "您的魔力上限已被修改为:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:628 -msgid "输入 /zmodify [name] pearl [0或1] 来关闭或开启银河珍珠增益\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3990 ..\..\ZHIPM.Initialize.cs:4009 -#, csharp-format -msgid "玩家 [{0}] 未被冻结" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:467 -msgid "玩家1不在线,正在查询离线数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:758 -msgid "您的粘性蠕虫增益开启状态:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:50 -msgid "" -"输入 /zban add 来封禁无论是否在线的玩家,reason 可不填\n" -msgstr "" - -#: ..\..\ZHIPM.cs:63 -msgid "该玩家不唯一,请重新输入" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:1111 -msgid "错误:ExportPlayer " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:306 -msgid "该玩家还未备份" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:619 -msgid "输入 /zmodify [name] lifemax [num] 来修改玩家的血量上限\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:764 -msgid "您的珍馐增益开启状态:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3182 -msgid "" -"输入 /zsort fish 来查看人物任务鱼数目排行榜前十名\n" -"输入 /zsort fish [num] 来查看当前[num]个人物任务鱼数目排行榜\n" -"输入 /zsort fish all 来查看所有玩家任务鱼数目排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2812 -#, csharp-format -msgid "" -"{0} 名用户因数据残缺导出失败\n" -"已全部打包为{1}/Zhipm/{2}.zip" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2710 -msgid "未启用击杀NPC统计,该功能不可用" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3855 -msgid "输入 /zfre [name] 来冻结该玩家" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:480 ..\..\ZHIPM.Initialize.cs:562 -msgid "玩家1不唯一" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:1000 -#, csharp-format -msgid "游雨{0}({1})," -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1402 -msgid "护卫熔炉:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3557 -msgid "" -"输入 /zsort death [num] 来查看当前[num]个人物死亡次数排行榜\n" -"输入 /zsort death 来查看人物死亡次数排行榜前十名\n" -"输入 /zsort death all 来查看所有玩家死亡次数排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2919 -msgid "输入 /zsort clumsy all 来查看所有玩家手残排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2902 -msgid "" -"输入 /zsort rarenpc [num] 来查看当前[num]个人物击杀罕见生物总数排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:746 -msgid "您的奥术水晶增益开启状态:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:5076 -msgid "你没有上次死亡的地点" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:51 -msgid "输入 /zban add uuid 来封禁uuid\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3795 -msgid "" -"人数不唯一,为避免误封,请重新输入。若玩家名称带有空格可用英文引号将名称整" -"个括起来" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:30 -msgid "输入 /zvisa 来查看自己的人物备份\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1010 -msgid "" -"输入 /zresetex [name] 来清理该玩家的额外数据\n" -"输入 /zresetex all 来清理所有玩家的额外数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1727 ..\..\ZHIPM.Initialize.cs:1796 -#: ..\..\ZHIPM.Initialize.cs:1962 ..\..\ZHIPM.Initialize.cs:2020 -#: ..\..\ZHIPM.Initialize.cs:2089 -msgid "无" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:44 -msgid "输入 /zunfre 来解冻该玩家\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:181 -msgid "修改成功,你的自动备份已关" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:39 -msgid "输入 /vi 来查看该玩家的库存\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2897 -msgid "输入 /zsort kill 来查看人物击杀生物数排行榜前十名\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2898 -msgid "输入 /zsort kill all 来查看所有玩家击杀生物数排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2430 -#, csharp-format -msgid "玩家【{0}】的人物存档和额外数据已备份和保存" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:752 -msgid "您的银河珍珠增益开启状态:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1707 ..\..\ZHIPM.Initialize.cs:1895 -msgid "最大魔力值[i:109]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1339 -msgid "染料1:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2924 -msgid "输入 /zsort coin 来查看人物硬币数目排行榜前十名\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3873 ..\..\ZHIPM.Initialize.cs:3889 -#: ..\..\ZHIPM.Initialize.cs:3916 -#, csharp-format -msgid "玩家 [{0}] 冻结成功" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:56 -msgid "输入 /zbpos 来返回上次死亡地点\n" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:1531 -#, csharp-format -msgid "正常的意外因玩家 [ {0} ] 数据残缺而导出人物失败 CreateAPlayer" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1320 -msgid "装备栏2:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2004 ..\..\ZHIPM.Initialize.cs:2192 -msgid " 当前魔力值:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2004 ..\..\ZHIPM.Initialize.cs:2192 -msgid "最大魔力值:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1219 ..\..\ZHIPM.Initialize.cs:1223 -msgid "所有玩家的所有数据均已全部初始化" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:534 ..\..\ZHIPM.Initialize.cs:589 -#, csharp-format -msgid "克隆成功!您已将玩家 [{0}] 的数据克隆到玩家 [{1}] 身上" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:485 -msgid "错误:ReadExtraDB " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3931 -msgid "" -"输入 /zunfre [name] 来解冻该玩家\n" -"输入 /zunfre all 来解冻所有玩家" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:941 ..\..\ZHIPM.Initialize.cs:942 -#: ..\..\ZHIPM.Initialize.cs:946 -msgid "所有玩家的备份数据均已重置" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3772 ..\..\ZHIPM.Initialize.cs:3773 -#, csharp-format -msgid "用户 {0} 封禁失败,可能该玩家已被封禁或所在组被禁止封禁" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2601 -msgid "你的名字含有指令关键字: time ,请更换" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3407 -msgid "" -"输入 /zsort rarenpc [num] 来查看当前[num]个人物击杀罕见生物总数排行榜\n" -"输入 /zsort rarenpc 来查看人物击杀罕见生物总数排行榜前十名\n" -"输入 /zsort rarenpc all 来查看所有玩家击杀罕见生物总数排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:38 -msgid "输入 /zmodify help 查看修改玩家数据的指令帮助\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2891 -msgid "输入 /zsort time 来查看人物在线时间排行榜前十名\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1171 -#, csharp-format -msgid "已重置玩家 [ {0} ] 的数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3722 ..\..\ZHIPM.Initialize.cs:3723 -#, csharp-format -msgid "uuid: {0} 已被 {1} 封禁" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3800 -msgid "。若玩家名称带有空格可用英文引号将名称整个括起来" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:107 -msgid "输入 /zsave 来备份自己的人物存档" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:80 ..\..\ZHIPM.Initialize.cs:94 -msgid "" -"输入 /zback 来读取该玩家的最新人物存档\n" -"输入 /zback 来读取该玩家的第几个人物存档" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:840 ..\..\ZHIPM.Utils.cs:864 ..\..\ZHIPM.Utils.cs:869 -#: ..\..\ZHIPM.Utils.cs:877 ..\..\ZHIPM.Utils.cs:882 -#, csharp-format -msgid "玩家 [{0}] 回档成功!启用备份 [ {1} ]" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1708 ..\..\ZHIPM.Initialize.cs:1896 -msgid "完成渔夫任务数[i:3120]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1706 ..\..\ZHIPM.Initialize.cs:1894 -msgid " 当前生命值[i:58]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3668 -msgid "" -"输入 /zsort clumsy 来查看人物手残排行榜前十名\n" -"输入 /zsort clumsy [num] 来查看当前[num]个人物手残排行榜\n" -"输入 /zsort clumsy all 来查看所有玩家手残排行榜" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:301 -msgid "错误:getZPlayerDBMaxSlot " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:35 -msgid "输入 /zback 来读取该玩家的第几个人物存档\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:492 -#, csharp-format -msgid "克隆成功!您已将玩家 [{0}] 的数据克隆到玩家 [{1}]身上" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1100 -msgid "输入 /zresetex 来清理该玩家的额外数据\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:31 -msgid "输入 /zvisa name 来查看该玩家的第几个人物备份\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2536 -msgid "您已被冻结,详情请询问管理员" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1512 ..\..\ZHIPM.Initialize.cs:1670 -#, csharp-format -msgid "玩家 【{0}】 未携带任何东西\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:125 -msgid "您的备份保存成功!" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:453 ..\..\ZHIPM.Initialize.cs:496 -msgid "克隆成功!已将玩家 [] 的数据克隆到你身上" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2929 -msgid "输入 /zsort fish all 来查看所有玩家任务鱼数目排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2097 ..\..\ZHIPM.Initialize.cs:2267 -msgid "在线时长:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1705 ..\..\ZHIPM.Initialize.cs:2002 -#: ..\..\ZHIPM.Initialize.cs:2184 -#, csharp-format -msgid "玩家 【{0}】 的状态如下:" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:268 -msgid "错误:WriteZPlayerDB 2 " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:48 -msgid "输入 /zout all 来导出所有人物的存档并压缩打包\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2960 ..\..\ZHIPM.Initialize.cs:2985 -#: ..\..\ZHIPM.Initialize.cs:2996 -#, csharp-format -msgid "第 {0} 名:【{1}】 在线时长 {2}" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1099 -msgid "输入 /zresetdb all 来清理所有玩家的备份数据\n" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:603 -msgid "错误:ClearZPlayerExtraDB " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3868 ..\..\ZHIPM.Initialize.cs:3884 -#: ..\..\ZHIPM.Initialize.cs:3910 -#, csharp-format -msgid "玩家 [{0}] 已冻结过!" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3688 -msgid "输入 /zban add uuid [reason] 来封禁uuid\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2903 -msgid "输入 /zsort rarenpc 来查看人物击杀罕见生物总数排行榜前十名\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:5037 -#, csharp-format -msgid "您遗失了:{0} 点数,已扣完" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1370 -msgid "垃圾桶:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2904 -msgid "输入 /zsort rarenpc all 来查看所有玩家击杀罕见生物总数排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1307 -msgid "盔甲 + 饰品 + 时装:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:630 -msgid "输入 /zmodify [name] ambrosia [0或1] 来关闭或开启珍馐增益\n" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:580 -msgid "错误:ClearALLZPlayerExtraDB " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2914 -msgid "输入 /zsort death all 来查看所有玩家死亡次数排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3463 ..\..\ZHIPM.Initialize.cs:3474 -#, csharp-format -msgid "第 {0} 名:【{1}】 点数 {2}" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2927 -msgid "输入 /zsort fish 来查看人物任务鱼数目排行榜前十名\n" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:850 -msgid "错误:BackUp " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:34 -msgid "输入 /zback 来读取该玩家的人物存档\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:510 -msgid "玩家2不在线,正在查询离线数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2585 -msgid "请不要起空名字" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:1710 -#, csharp-format -msgid "共有 [c/74F3C9:{0}] 位玩家击败了 [c/74F3C9:{1}]" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2693 -#, csharp-format -msgid "修改成功,您现在已{0}击杀数提示" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:349 -msgid "" -"输入 /zclone [name1] [name2] 将玩家1的人物数据复制给玩家2\n" -"输入 /zclone [name] 将该玩家的人物数据复制给自己" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:149 ..\..\ZHIPM.Initialize.cs:186 -msgid "" -"输入 /zsaveauto [minute] 来每隔 minute 分钟自动备份自己的人物存档,当 " -"minute 为 0 时关闭该功能" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1091 -msgid "" -"输入 /zreset 来清理该玩家的人物数据\n" -"输入 /zreset all 来清理所有玩家的人物数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:33 -msgid "输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:398 ..\..\ZHIPM.Initialize.cs:419 -#: ..\..\ZHIPM.Initialize.cs:458 ..\..\ZHIPM.Initialize.cs:501 -#: ..\..\ZHIPM.Initialize.cs:538 ..\..\ZHIPM.Initialize.cs:593 -msgid "" -"克隆失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检" -"测,再重新输入" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1156 -#, csharp-format -msgid "已重置离线玩家 [ {0} ] 的数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1710 -msgid "各种buff[i:678]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:722 -msgid "您的恶魔心增益开启状态:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1308 -msgid "当前装备栏:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1809 ..\..\ZHIPM.Initialize.cs:1975 -msgid "死亡次数[i:321]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:49 -msgid "输入 /zreset help 来查看zreset系列指令帮助\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2006 ..\..\ZHIPM.Initialize.cs:2194 -msgid "库存硬币数:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:547 -msgid "玩家都不在线,正在查询离线数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1288 -#, csharp-format -msgid "多个结果 玩家 【{0}】 的所有库存如下:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:627 -msgid "输入 /zmodify [name] fruit [0或1] 来关闭或开启埃癸斯果增益\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1358 -msgid "宠物 + 矿车 + 坐骑 + 钩爪:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2972 ..\..\ZHIPM.Initialize.cs:3058 -#: ..\..\ZHIPM.Initialize.cs:3150 ..\..\ZHIPM.Initialize.cs:3223 -#: ..\..\ZHIPM.Initialize.cs:3299 ..\..\ZHIPM.Initialize.cs:3375 -#: ..\..\ZHIPM.Initialize.cs:3450 ..\..\ZHIPM.Initialize.cs:3525 -#: ..\..\ZHIPM.Initialize.cs:3622 -msgid "数字无效" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2752 ..\..\ZHIPM.Initialize.cs:2753 -msgid "预计导出所有用户存档数目:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2693 ..\..\ZHIPM.Initialize.cs:2704 -msgid "隐藏" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:990 -#, csharp-format -msgid "已重置离线玩家 [ {0} ] 的备份数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:608 ..\..\ZHIPM.Initialize.cs:637 -msgid "输入 /zmodify help 查看修改玩家数据的指令帮助" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:728 -msgid "您的工匠面包增益开启状态:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2840 ..\..\ZHIPM.Initialize.cs:2841 -#: ..\..\ZHIPM.Initialize.cs:2864 ..\..\ZHIPM.Initialize.cs:2865 -#, csharp-format -msgid "导出成功!目录:tshock/Zhipm/{0}/{1}.plr" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1102 -msgid "输入 /zreset 来清理该玩家的人物数据\n" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:1112 -msgid "路径:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2003 ..\..\ZHIPM.Initialize.cs:2191 -msgid " 当前生命值:" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:355 -msgid "错误:AddZPlayerDB 1 " -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:802 -msgid "" -"检测到符合该条件的玩家数目不唯一,请重新输入\n" -"包含:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:734 -msgid "您的埃癸斯水晶增益开启状态:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:691 -msgid "您的渔夫任务完成数已被修改为:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2928 -msgid "输入 /zsort fish [num] 来查看当前[num]个人物任务鱼数目排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3687 -msgid "" -"输入 /zban add [reason] 来封禁无论是否在线的玩家,reason 可不填\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2900 -msgid "输入 /zsort boss 来查看人物击杀Boss总数排行榜前十名\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1218 -msgid "玩家已全部初始化" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:129 -msgid "您的备份保存失败!请尝试重进游戏重试" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:928 -#, csharp-format -msgid "{0}[i:74] {1}[i:73] {2}[i:72] {3}[i:71]" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2558 -msgid "不要耍小聪明" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:618 -msgid "输入 /zmodify [name] life [num] 来修改玩家的血量\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3716 ..\..\ZHIPM.Initialize.cs:3717 -#: ..\..\ZHIPM.Initialize.cs:3747 ..\..\ZHIPM.Initialize.cs:3748 -#: ..\..\ZHIPM.Initialize.cs:3766 ..\..\ZHIPM.Initialize.cs:3767 -#: ..\..\ZHIPM.Initialize.cs:3829 ..\..\ZHIPM.Initialize.cs:3832 -#: ..\..\ZHIPM.Initialize.cs:3833 -#, csharp-format -msgid "用户 {0} 已被 {1} 封禁" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:844 -msgid "回档失败!" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3482 -msgid "" -"输入 /zsort point [num] 来查看当前[num]个人物点数排行榜\n" -"输入 /zsort point 来查看人物点数排行榜前十名\n" -"输入 /zsort point all 来查看所有玩家点数排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2609 -msgid "你的名字含有指令关键字: me ,请更换" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:865 ..\..\ZHIPM.Utils.cs:878 -msgid "您已回档成功!" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1816 ..\..\ZHIPM.Initialize.cs:1982 -msgid "已击杀罕见生物[i:4274]:" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:929 -#, csharp-format -msgid "{0}铂金币 {1}金币 {2}银币 {3}铜币" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:834 -#, csharp-format -msgid "回档失败!未找到 [{0} - {1}] 号该备份" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3840 -msgid "输入 /zban add uuid [uuid] [reason] 来封禁uuid\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2007 -msgid "各种buff:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:4199 ..\..\ZHIPM.Initialize.cs:4281 -#: ..\..\ZHIPM.Initialize.cs:4376 ..\..\ZHIPM.Initialize.cs:4482 -#: ..\..\ZHIPM.Initialize.cs:4559 ..\..\ZHIPM.Initialize.cs:4657 -#: ..\..\ZHIPM.Initialize.cs:4756 ..\..\ZHIPM.Initialize.cs:4853 -#: ..\..\ZHIPM.Initialize.cs:4919 -msgid "错误的点数:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2390 -#, csharp-format -msgid "玩家 {0} 已经在线了 {1}" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3004 -msgid "" -"输入 /zsort time [num] 来查看当前[num]个人物在线时间排行榜\n" -"输入 /zsort time 来查看人物在线时间排行榜前十名\n" -"输入 /zsort time all 来查看所有玩家在线时常排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:523 ..\..\ZHIPM.Initialize.cs:579 -msgid "玩家2不唯一" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:4593 -msgid "月亮领主" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:334 -msgid "错误:AddZPlayerDB " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2794 -#, csharp-format -msgid "{0} 名用户因数据错误导出失败" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:41 -msgid "输入 /vs 来查看该玩家的状态\n" -msgstr "" - -#: ..\..\ZHIPM.cs:62 -msgid "该玩家不存在,请重新输入" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3605 ..\..\ZHIPM.Initialize.cs:3609 -#: ..\..\ZHIPM.Initialize.cs:3637 ..\..\ZHIPM.Initialize.cs:3641 -#: ..\..\ZHIPM.Initialize.cs:3655 ..\..\ZHIPM.Initialize.cs:3659 -#, csharp-format -msgid "第 {0} 名:【{1}】 菜鸡值 {2:0.00}" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2693 ..\..\ZHIPM.Initialize.cs:2704 -msgid "启用" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1815 ..\..\ZHIPM.Initialize.cs:1981 -msgid "已击杀Boss[i:3868]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2003 ..\..\ZHIPM.Initialize.cs:2191 -msgid "最大生命值:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:968 -msgid "您的备份数据已重置" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1364 -msgid "宠物 矿车 坐骑 钩爪 染料:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3964 -#, csharp-format -msgid "玩家 [{0}] 未被冻结!" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:5072 -msgid "数据异常,请重试" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:631 -msgid "输入 /zmodify [name] cart [0或1] 来关闭或开启超级矿车增益\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3841 -msgid "输入 /zban add ip [ip] [reason] 来封禁ip" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:623 -msgid "输入 /zmodify [name] torch [0或1] 来关闭或开启火把神增益\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:770 -msgid "您的超级矿车增益开启状态:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:46 -msgid "输入 /zsort help 来查看排序系列指令帮助\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2313 ..\..\ZHIPM.Initialize.cs:2316 -msgid "服务器将在20秒后清理世界内所有无用NPC,射弹和物品" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:699 -msgid "您的点数已被修改为:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:28 -msgid "输入 /zsave 来备份自己的人物存档\n" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:887 -msgid "回档失败!未备份数据或该玩家未登录" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1709 ..\..\ZHIPM.Initialize.cs:1897 -msgid "库存硬币数[i:855]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3787 ..\..\ZHIPM.Initialize.cs:3878 -#: ..\..\ZHIPM.Initialize.cs:3969 -msgid "精准查找未找到,正在尝试模糊查找" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:5148 -msgid "备份存档数目最小为 1 ,请不要输入无效值,已修改为默认 5" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2883 ..\..\ZHIPM.Initialize.cs:3674 -msgid "输入 /zsort help 来查看排序系列指令帮助" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3753 ..\..\ZHIPM.Initialize.cs:3754 -#, csharp-format -msgid "ip: {0} 已被 {1} 封禁" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:620 -msgid "输入 /zmodify [name] mana [num] 来修改玩家的魔力\n" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:146 -msgid "错误:ReadZPlayerDB " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:329 -#, csharp-format -msgid "玩家[{0}]备份 [{1} - {2}] 的内容为:\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2346 -#, csharp-format -msgid "玩家 [ {0} ] 的所有Buff均已消除" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2277 -msgid "已击杀生物数:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1707 ..\..\ZHIPM.Initialize.cs:1895 -msgid " 当前魔力值[i:184]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3699 ..\..\ZHIPM.Initialize.cs:3730 -msgid "参数过少" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1415 -msgid "虚空金库:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2605 -msgid "你的名字含有指令关键字: help ,请更换" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2817 -msgid "错误 ZhiExportPlayer :" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1236 -msgid "输入 /vi <玩家名> 来查看该玩家的库存" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1314 -msgid "装备栏1:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2925 -msgid "输入 /zsort coin [num] 来查看当前[num]个人物硬币数目排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:5057 -msgid "输入 /zbpos 来返回上次死亡地点" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3104 -msgid "" -"输入 /zsort coin 来查看人物硬币数目排行榜前十名\n" -"输入 /zsort coin [num] 来查看当前[num]个人物硬币数目排行榜\n" -"输入 /zsort coin all 来查看所有玩家硬币数目排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1333 -msgid "当前染料:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:5087 -#, csharp-format -msgid "玩家 {0} 已传送到上次死亡地点" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2337 -msgid "该玩家不在线或不存在" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:143 -msgid "自动备份被禁用,请联系管理员询问详情" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:810 ..\..\ZHIPM.Initialize.cs:911 -msgid "修改成功!" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1528 -msgid "输入 /vid <玩家名> 来查看该玩家的库存,不进行排列" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2845 ..\..\ZHIPM.Initialize.cs:2846 -msgid "导出失败,因数据错误" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2114 ..\..\ZHIPM.Initialize.cs:2284 -msgid "点数:" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:401 -msgid "错误:ClearZPlayerDB " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1582 -#, csharp-format -msgid "玩家 【{0}】 的所有库存如下:\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:5094 -msgid "点数不足,无法回溯上次死亡地点" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:802 -msgid "您的所有永久增益均关闭" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3538 ..\..\ZHIPM.Initialize.cs:3549 -#, csharp-format -msgid "第 {0} 名:【{1}】 死亡次数 {2}" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3438 -#, csharp-format -msgid "第 {0} 名:【{1}】 点数 {2} " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1098 -msgid "输入 /zresetdb 来清理该玩家的备份数据\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:5099 -msgid "未被允许死亡回调传送,请在配置文件中修改" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2102 ..\..\ZHIPM.Initialize.cs:2272 -msgid "死亡次数:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2918 -msgid "输入 /zsort clumsy [num] 来查看当前[num]个人物手残排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2676 ..\..\ZHIPM.Initialize.cs:2718 -msgid "" -"输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n" -"输入 /zhide point 来取消 + 1 $ 的显示,再次使用启用显示" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1389 -msgid "保险箱:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:5032 -#, csharp-format -msgid "您遗失了:{0} 点数" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2979 ..\..\ZHIPM.Initialize.cs:3065 -#: ..\..\ZHIPM.Initialize.cs:3157 ..\..\ZHIPM.Initialize.cs:3230 -#: ..\..\ZHIPM.Initialize.cs:3306 ..\..\ZHIPM.Initialize.cs:3457 -#: ..\..\ZHIPM.Initialize.cs:3532 ..\..\ZHIPM.Initialize.cs:3629 -#, csharp-format -msgid "当前最多 {0} 人" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:677 -msgid "错误:ListAllExtraDB " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2926 -msgid "输入 /zsort coin all 来查看所有玩家硬币数目排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2613 -msgid "你的名字含有指令关键字: uuid ,请更换" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:357 -msgid "克隆失败!请不要克隆自己" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:497 -msgid "错误:UpdateTshockDBCharac " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2901 -msgid "输入 /zsort boss all 来查看所有玩家击杀Boss总数排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1376 -msgid "猪猪储蓄罐:" -msgstr "" - -#: ..\..\ZHIPM.DB.cs:218 -msgid "错误:WriteZPlayerDB " -msgstr "" - -#: ..\..\ZHIPM.DB.cs:378 -msgid "错误:ClearALLZPlayerDB " -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:1015 -msgid "月亮领主()" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1160 -msgid "" -"重置失败!未在原数据库中查到该玩家,请检查输入是否正确,该玩家是否避免SSC检" -"测,再重新输入" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2107 -#, csharp-format -msgid "已击杀生物数:{0} 个" -msgstr "" - -#: ..\..\ZHIPM.cs:64 -msgid "该玩家不在线,正在查询离线数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3689 -msgid "输入 /zban add ip [reason] 来封禁ip" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2386 -msgid "点数奖励 + 1000" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:679 -msgid "您的魔力值已被修改为:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:648 ..\..\ZHIPM.Initialize.cs:709 -#: ..\..\ZHIPM.Initialize.cs:806 ..\..\ZHIPM.Initialize.cs:863 -msgid "格式错误!输入 /zmodify help 查看修改玩家数据的指令帮助" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2769 ..\..\ZHIPM.Initialize.cs:2773 -#: ..\..\ZHIPM.Initialize.cs:2776 -#, csharp-format -msgid "用户 [{0}] 已导出,目录:tshock/Zhipm/{1}/{2}.plr" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:622 -msgid "输入 /zmodify [name] fish [num] 来修改玩家的渔夫任务数\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2429 -msgid "已自动备份您的人物存档,自动保存您的额外数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:226 -msgid "您还未备份" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1891 ..\..\ZHIPM.Initialize.cs:2188 -#, csharp-format -msgid "多个结果 玩家 【{0}】 的状态如下:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3703 ..\..\ZHIPM.Initialize.cs:3734 -msgid "检测到违规行为,请联系管理员" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3382 -msgid "当前最多 人" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3363 ..\..\ZHIPM.Initialize.cs:3388 -#: ..\..\ZHIPM.Initialize.cs:3399 -#, csharp-format -msgid "第 {0} 名:【{1}】 击杀罕见生物总数 {2} 个" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:336 -msgid "" -"输入 /zvisa [num] 来查看自己的第几个人物备份\n" -"输入 /zvisa name [num] 来查看该玩家的第几个人物备份" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1706 ..\..\ZHIPM.Initialize.cs:1894 -msgid "最大生命值[i:29]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:703 -msgid "不可预料的错误,请重试或让该玩家重进游戏" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2597 -msgid "你的名字含有指令关键字: all ,请更换" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3041 ..\..\ZHIPM.Initialize.cs:3045 -#: ..\..\ZHIPM.Initialize.cs:3073 ..\..\ZHIPM.Initialize.cs:3077 -#: ..\..\ZHIPM.Initialize.cs:3091 ..\..\ZHIPM.Initialize.cs:3095 -#, csharp-format -msgid "第 {0} 名:【{1}】 总硬币数 {2}" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:43 -msgid "输入 /zfre 来冻结该玩家\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1021 ..\..\ZHIPM.Initialize.cs:1022 -#: ..\..\ZHIPM.Initialize.cs:1026 -msgid "所有玩家的额外数据均已重置" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:629 -msgid "输入 /zmodify [name] worm [0或1] 来关闭或开启粘性蠕虫增益\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2109 ..\..\ZHIPM.Initialize.cs:2279 -msgid "已击杀罕见生物:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:624 -msgid "输入 /zmodify [name] demmon [0或1] 来关闭或开启恶魔心增益\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2805 -#, csharp-format -msgid "已打包为{0}/Zhipm/{1}.zip" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3138 ..\..\ZHIPM.Initialize.cs:3163 -#: ..\..\ZHIPM.Initialize.cs:3174 -#, csharp-format -msgid "第 {0} 名:【{1}】 总完成任务鱼数 {2}" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:42 -msgid "输入 /vs me 来查看自己的状态\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1104 ..\..\ZHIPM.Initialize.cs:1190 -msgid "输入 /zresetallplayers 来清理所有玩家的所有数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:449 -#, csharp-format -msgid "克隆成功!您已将玩家 [{0}] 的数据克隆到 [{1}] 身上" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1503 ..\..\ZHIPM.Initialize.cs:1586 -#, csharp-format -msgid "多个结果 玩家 【{0}】 的所有库存如下:\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:163 -msgid "数字不合理" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1351 -msgid "染料3:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1432 -#, csharp-format -msgid "玩家 【{0}】 未携带任何东西" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:52 -msgid "输入 /zban add ip 来封禁ip\n" -msgstr "" - -#: ..\..\ZHIPM.Utils.cs:908 -#, csharp-format -msgid "{0}小时 {1}分钟 {2}秒" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:37 -msgid "输入 /zclone 将该玩家的人物数据复制给自己\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3331 -msgid "" -"输入 /zsort boss [num] 来查看当前[num]个人物击杀Boss总数排行榜\n" -"输入 /zsort boss 来查看人物击杀Boss总数排行榜前十名\n" -"输入 /zsort boss all 来查看所有玩家击杀Boss总数排行榜" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3513 -#, csharp-format -msgid "第 {0} 名:【{1}】 死亡次数 {2} " -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1103 -msgid "输入 /zreset all 来清理所有玩家的人物数据\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:3946 -msgid "所有玩家均已解冻" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2899 -msgid "输入 /zsort boss [num] 来查看当前[num]个人物击杀Boss总数排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2108 ..\..\ZHIPM.Initialize.cs:2278 -msgid "已击杀Boss:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:240 -#, csharp-format -msgid "您的备份[{0} - {1}]的内容为:\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:931 -msgid "" -"输入 /zresetdb [name] 来清理该玩家的备份数据\n" -"输入 /zresetdb all 来清理所有玩家的备份数据" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:55 -msgid "输入 /zclear buff all 来清理所有玩家所有Buff\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2330 -msgid "所有玩家的所有Buff均已消除" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:24 -msgid "输入 /zhelp 来查看指令帮助" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2908 -msgid "输入 /zsort point 来查看人物点数排行榜前十名\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2537 -msgid "您已被冻结" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2483 -msgid "已清理所有射弹,物品,无用NPC" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1661 -#, csharp-format -msgid "多个结果 玩家 【{0}】 的所有库存如下:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:2912 -msgid "" -"\n" -"输入 /zsort death [num] 来查看当前[num]个人物死亡次数排行榜\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:45 -msgid "输入 /zunfre all 来解冻所有玩家\n" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:1821 ..\..\ZHIPM.Initialize.cs:1987 -msgid "点数[i:575]:" -msgstr "" - -#: ..\..\ZHIPM.Initialize.cs:32 -msgid "输入 /zhide kill 来取消 kill + 1 的显示,再次使用启用显示\n" -msgstr ""