Compare commits

...

45 Commits

Author SHA1 Message Date
6430000aad Fix check update 2022-09-01 23:46:31 +08:00
2b6af9aacd Update Screenshots-zh 2022-09-01 23:33:31 +08:00
43ff071250 No popup
Update to no longer automatically pop-up prompts to update
Change when to look for native services
2022-09-01 23:17:38 +08:00
a70a3979e5 Update version to v1.6.5 2022-09-01 22:52:21 +08:00
013b3c76b4 Add Weights chart 2022-09-01 22:50:07 +08:00
6575931ab2 Remove assembly guid 2022-08-29 23:32:03 +08:00
26f5f31be5 Update version to v1.6.4
_VS automatically changed the interface resource_
2022-08-29 20:44:54 +08:00
7204297465 Update Russian UI layout to fit new text 2022-08-29 20:30:14 +08:00
Егор Брон
4dfcb2538d Fixes in Forms/TXTs 2022-08-29 20:30:14 +08:00
EgorBron
e9cd500628 Fix and complete russian README translation 2022-08-29 20:30:14 +08:00
7ce0c132fe Update about(en/ru) 2022-08-28 15:37:09 +08:00
5b1d86b155 Add perm list and clear 2022-08-28 11:12:46 +08:00
53cb968e67 Add comments(zh) 2022-08-28 10:52:58 +08:00
314f9b67e3 Add some comments(zh) 2022-08-28 00:46:11 +08:00
50f7e72ff5 Add code header 2022-08-28 00:36:37 +08:00
ce7ac5bc8a Update version to v1.6.3 2022-08-28 00:35:45 +08:00
aff13c2a97 Add Command Version Control
Add more comments(zh)
Optimize code structure
Update the loading order to avoid repeated loading to optimize startup speed.
2022-08-28 00:35:21 +08:00
eba9db1e35 Update custom command labels 2022-08-27 18:10:18 +08:00
71ac75a4ca Remove N/A Quests 2022-08-27 18:04:47 +08:00
f393b372ec Update auto find local server address 2022-08-26 20:50:00 +08:00
cfb94e70b7 Remove deprecated methods 2022-08-26 12:59:25 +08:00
ab9b955c31 Fix command syntax error 2022-08-26 12:57:25 +08:00
4e4b47a9e6 Update version to v1.6.2 2022-08-26 12:55:50 +08:00
3da3bc4f23 Implementation Freeze stats(#97) 2022-08-26 12:55:40 +08:00
7cc46eb677 Fix Deepwood Memories Invisible 2022-08-26 12:28:56 +08:00
b9d1a2c2cd Fix run button disabled after command failed 2022-08-25 23:54:51 +08:00
a0cc908983 Fix Windows Defender virus reporting problem
by Remove Costuar/Fody
2022-08-25 22:02:43 +08:00
7dc7c7c8ac Update Check Gitee 2022-08-25 18:55:31 +08:00
ad4ca74e71 Add /prop unlockmap (#92) 2022-08-25 14:04:52 +08:00
a079685be8 Allow main stat to be empty 2022-08-25 12:29:06 +08:00
6703037527 Upgrade to PackageReference 2022-08-25 11:38:25 +08:00
417f0b7334 Update Prefabs 2022-08-24 22:35:40 +08:00
45aec44f39 Update Artifact Sets 2022-08-24 22:20:32 +08:00
7dd1e78512 Update Version to v1.6.0 2022-08-24 22:13:18 +08:00
418dfec289 Update 3.0 Resources 2022-08-24 22:11:06 +08:00
bc69a1c4ba Fix UI Issue 2022-07-28 12:22:59 +08:00
63f7eda5c3 Update version to v1.5.5
Fix GOODData Init issue
2022-07-28 08:41:08 +08:00
879bc34358 Update version to v1.5.4 2022-07-27 21:44:28 +08:00
c5a6d7f041 Add GOOD Help 2022-07-27 21:33:49 +08:00
20b1aca700 Fix UI occlusion issue 2022-07-27 20:42:02 +08:00
fb1a332f2c Fix textMapId field changed issue 2022-07-27 20:38:48 +08:00
867bdd1d00 Update README 2022-07-23 10:44:56 +08:00
5e28d1e625 Corrected format 2022-07-23 10:37:57 +08:00
e6ecde9951 Add help for server not connecting 2022-07-23 10:34:07 +08:00
gotoAndDie
2cb9f08caa Implement import from GOOD dump (#86)
* Implement import from GOOD dump

* Optimized implementation

* Add available urls

* Add prompt

Co-authored-by: Leo <chun.huang@student.manchester.ac.uk>
Co-authored-by: 筱傑 <jie65535@qq.com>
2022-07-23 10:18:51 +08:00
100 changed files with 92884 additions and 85104 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -10,24 +10,24 @@
请从 [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases) 中获取最新版本
本工具支持 简中, 繁中, English 与 Русский 等语言。
## 远程执行
服务端需要 [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin) 插件支持
![OpenCommand](Doc/Screenshots/OpenCommand.gif)
---
> 如果你无法连接到服务器,请确认填写的服务器地址是否正确。
>
> 建议配置服务器为HTTP模式如图所示(config.json)
> ![ConfigHttp](Doc/Screenshots/ConfigHttp.png)
>
> 你可以用浏览器访问 http://127.0.0.1/status/server 来测试服务是否正常工作。
>
> 如果使用的不是`80`端口则要在url中指定访问的端口号http://127.0.0.1:443
## TODO List
- [x] 多语言支持
- [x] 简体中文
- [x] 繁体中文
- [x] 英语
- [x] 俄语
- [x] 远程执行命令
- [ ] ~~邮件编辑器(无进度)~~
- [ ] ~~商店编辑器(无进度)~~
- [ ] 服务器公告编辑器(无进度)
---
## 软件截图

View File

@@ -10,24 +10,24 @@
Please download the latest version from [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
Support 简中, 繁中, English and Русский languages.
## Remote command
The server require [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin) support
![OpenCommand](Doc/Screenshots/OpenCommand.gif)
---
> If you cannot connect to the server, please make sure the server address is correct.
>
> It is recommended to configure the server to HTTP mode, as shown in the figure(config.json):
> ![ConfigHttp](Doc/Screenshots/ConfigHttp.png)
>
> You can visit http://127.0.0.1/status/server with a browser to test whether the service is working properly.
>
> If you are not using port `80`, specify the port number to access in the url: http://127.0.0.1:443
## TODO List
- [x] Multi-language support
- [x] Simplified Chinese
- [x] Traditional Chinese
- [x] English
- [x] Russian
- [x] Execute command remotely
- [ ] ~~Mail Editor (no progress)~~
- [ ] ~~Shop Editor (no progress)~~
- [ ] Announcement Editor (no progress)
---
## Screenshots

View File

@@ -4,30 +4,31 @@
[![GitHub звёзды](https://img.shields.io/github/stars/jie65535/GrasscutterCommandGenerator)](https://github.com/jie65535/GrasscutterCommandGenerator/stargazers)
[![Github ВСЕ выпуски](https://img.shields.io/github/downloads/jie65535/GrasscutterCommandGenerator/total.svg)](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
[中文](README.md) | [English](README_en-US.md) | Русский - Перевод Юрий Дворецкий
[中文](README.md) | [English](README_en-US.md) | Русский - Перевод Юрий Дворецкий (с исправлениями от EgorBron)
## Генератор команд
Пожалуйса загрузите последнюю версию с [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
Пожалуйста, загрузите последнюю версию из вкладки [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
Поддерживает 简中 (китайский упр.), 繁中 (китайский трад.), English (английский) и Русский языки.
## Удаленная команда
Сервер требует [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin) помощь
Для этого серверу требуется плагин [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin)
![Open Command](Doc/Screenshots/OpenCommand.gif)
---
> Если вы не можете подключиться к серверу, проверьте правильность написания его URL-адреса.
>
> Рекомендуется изменить секцию HTTP в конфиге как на скриншоте ниже (в файле config.json):
>
> ![ConfigHttp](Doc/Screenshots/ConfigHttp.png)
>
> Для проверки можете посетить http://127.0.0.1/status/server в браузере, чтобы проверить работоспособность.
>
> Если вы не указали порт `80` в конфиге, вам нужно указать его в URL-адресе: http://127.0.0.1:443
## Список задач
- [x] Многоязычная поддержка
- [x] Упрощенный китайский
- [x] сложный китайский
- [х] английский
- [х] Русский
- [x] Выполнить команду удаленно
- [ ] ~~Редактор почты (нет прогресса)~~
- [ ] ~~Редактор магазина (нет прогресса)~~
- [ ] Announcement Editor (no progress)
---
## Скриншоты

View File

@@ -17,7 +17,7 @@
<value>10001</value>
</setting>
<setting name="DefaultLanguage" serializeAs="String">
<value>zh-CN</value>
<value />
</setting>
<setting name="ResourcesDirPath" serializeAs="String">
<value />
@@ -38,7 +38,7 @@
<value />
</setting>
<setting name="CommandVersion" serializeAs="String">
<value>1.2.2</value>
<value />
</setting>
<setting name="IsTopMost" serializeAs="String">
<value>False</value>

View File

@@ -1,6 +1,5 @@
using System;
using System.ComponentModel;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;

View File

@@ -18,7 +18,6 @@
**/
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

View File

@@ -129,7 +129,7 @@
<value>390, 35</value>
</data>
<data name="LblBannerEditorOldTip.Text" xml:space="preserve">
<value>Совет: Последняя версия баннера разрабатывается в настоящее время не поддерживается, ждем PR : )</value>
<value>Подсказка: последняя версия баннера разрабатывается и в настоящее время не поддерживается, ждем PR : )</value>
</data>
<data name="LblEventChanceTip.Location" type="System.Drawing.Point, System.Drawing">
<value>401, 262</value>
@@ -180,7 +180,7 @@
<value>81, 17</value>
</data>
<data name="LblRateUpItems2.Text" xml:space="preserve">
<value>4 звезды UP</value>
<value>4 зв. UP</value>
</data>
<data name="LblSoftPity.Location" type="System.Drawing.Point, System.Drawing">
<value>27, 291</value>
@@ -189,7 +189,7 @@
<value>79, 17</value>
</data>
<data name="LblSoftPity.Text" xml:space="preserve">
<value>Мяг. гарант</value>
<value>Софт-гарант</value>
</data>
<data name="LblGachaTypeTip.Size" type="System.Drawing.Size, System.Drawing">
<value>116, 17</value>
@@ -240,7 +240,7 @@
<value>85, 17</value>
</data>
<data name="LblHardPity.Text" xml:space="preserve">
<value>Жест. Гарант</value>
<value>Полный гарант</value>
</data>
<data name="NUDEndTime.Location" type="System.Drawing.Point, System.Drawing">
<value>287, 174</value>
@@ -270,7 +270,7 @@
<value>77, 17</value>
</data>
<data name="LblBasePurpleWeight.Text" xml:space="preserve">
<value>4 звездный</value>
<value>4-звездочный</value>
</data>
<data name="CmbBannerType.Items" xml:space="preserve">
<value>Стандартная Молитва</value>
@@ -285,7 +285,7 @@
<value>101, 17</value>
</data>
<data name="LblSortIdTip.Text" xml:space="preserve">
<value>Показать заказ</value>
<value>Показать порядок</value>
</data>
<data name="LblBannerType.Location" type="System.Drawing.Point, System.Drawing">
<value>18, 87</value>
@@ -330,7 +330,7 @@
<value>Переплетающиеся</value>
</data>
<data name="GrpBannerValues.Text" xml:space="preserve">
<value>Баннеп</value>
<value>Баннер</value>
</data>
<data name="GrpPurplePool.Text" xml:space="preserve">
<value>4 звёздочный пул</value>
@@ -354,6 +354,6 @@
<value>Загр. Json</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Редактор баннеров Gacha</value>
<value>Редактор баннеров</value>
</data>
</root>

View File

@@ -30,6 +30,10 @@ namespace GrasscutterTools.Forms
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormGachaBannerEditor2));
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
this.GrpBannerValues = new System.Windows.Forms.GroupBox();
this.ChkAutoStripRateUpFromFallback = new System.Windows.Forms.CheckBox();
this.LblOptions = new System.Windows.Forms.Label();
@@ -84,6 +88,8 @@ namespace GrasscutterTools.Forms
this.TxtPoolWeight5 = new System.Windows.Forms.TextBox();
this.LblPoolWeight4 = new System.Windows.Forms.Label();
this.LblPoolWeight5 = new System.Windows.Forms.Label();
this.GrpWeightChart = new System.Windows.Forms.GroupBox();
this.ChartWeights = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.GrpBannerValues.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance5)).BeginInit();
@@ -95,11 +101,12 @@ namespace GrasscutterTools.Forms
this.GrpJson.SuspendLayout();
this.GrpWeights.SuspendLayout();
this.GrpBalance.SuspendLayout();
this.GrpWeightChart.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.ChartWeights)).BeginInit();
this.SuspendLayout();
//
// GrpBannerValues
//
resources.ApplyResources(this.GrpBannerValues, "GrpBannerValues");
this.GrpBannerValues.Controls.Add(this.ChkAutoStripRateUpFromFallback);
this.GrpBannerValues.Controls.Add(this.LblOptions);
this.GrpBannerValues.Controls.Add(this.ChkRemoveC6FormPool);
@@ -130,6 +137,7 @@ namespace GrasscutterTools.Forms
this.GrpBannerValues.Controls.Add(this.LblCostItem);
this.GrpBannerValues.Controls.Add(this.LblPrefabPath);
this.GrpBannerValues.Controls.Add(this.RbCostItem223);
resources.ApplyResources(this.GrpBannerValues, "GrpBannerValues");
this.GrpBannerValues.Name = "GrpBannerValues";
this.GrpBannerValues.TabStop = false;
//
@@ -173,9 +181,9 @@ namespace GrasscutterTools.Forms
//
// CmbPrefab
//
resources.ApplyResources(this.CmbPrefab, "CmbPrefab");
this.CmbPrefab.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbPrefab.FormattingEnabled = true;
resources.ApplyResources(this.CmbPrefab, "CmbPrefab");
this.CmbPrefab.Name = "CmbPrefab";
//
// LblEventChance4Tip
@@ -305,13 +313,13 @@ namespace GrasscutterTools.Forms
//
// CmbBannerType
//
resources.ApplyResources(this.CmbBannerType, "CmbBannerType");
this.CmbBannerType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbBannerType.FormattingEnabled = true;
this.CmbBannerType.Items.AddRange(new object[] {
resources.GetString("CmbBannerType.Items"),
resources.GetString("CmbBannerType.Items1"),
resources.GetString("CmbBannerType.Items2")});
resources.ApplyResources(this.CmbBannerType, "CmbBannerType");
this.CmbBannerType.Name = "CmbBannerType";
//
// LblSortIdTip
@@ -358,11 +366,11 @@ namespace GrasscutterTools.Forms
//
// ListFallbackItems
//
resources.ApplyResources(this.ListFallbackItems, "ListFallbackItems");
this.ListFallbackItems.CheckBoxes = true;
this.ListFallbackItems.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.ColFallbackId,
this.ColFallbackName});
resources.ApplyResources(this.ListFallbackItems, "ListFallbackItems");
this.ListFallbackItems.FullRowSelect = true;
this.ListFallbackItems.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups"))),
@@ -386,18 +394,18 @@ namespace GrasscutterTools.Forms
//
// GrpUpPool
//
resources.ApplyResources(this.GrpUpPool, "GrpUpPool");
this.GrpUpPool.Controls.Add(this.ListUpItems);
resources.ApplyResources(this.GrpUpPool, "GrpUpPool");
this.GrpUpPool.Name = "GrpUpPool";
this.GrpUpPool.TabStop = false;
//
// ListUpItems
//
resources.ApplyResources(this.ListUpItems, "ListUpItems");
this.ListUpItems.CheckBoxes = true;
this.ListUpItems.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.ColUpId,
this.ColUpName});
resources.ApplyResources(this.ListUpItems, "ListUpItems");
this.ListUpItems.FullRowSelect = true;
this.ListUpItems.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListUpItems.Groups"))),
@@ -447,12 +455,12 @@ namespace GrasscutterTools.Forms
//
// GrpWeights
//
resources.ApplyResources(this.GrpWeights, "GrpWeights");
this.GrpWeights.Controls.Add(this.LnkWeightHelp);
this.GrpWeights.Controls.Add(this.TxtWeight4);
this.GrpWeights.Controls.Add(this.TxtWeight5);
this.GrpWeights.Controls.Add(this.LblWeight4);
this.GrpWeights.Controls.Add(this.LblWeight5);
resources.ApplyResources(this.GrpWeights, "GrpWeights");
this.GrpWeights.Name = "GrpWeights";
this.GrpWeights.TabStop = false;
//
@@ -485,11 +493,11 @@ namespace GrasscutterTools.Forms
//
// GrpBalance
//
resources.ApplyResources(this.GrpBalance, "GrpBalance");
this.GrpBalance.Controls.Add(this.TxtPoolWeight4);
this.GrpBalance.Controls.Add(this.TxtPoolWeight5);
this.GrpBalance.Controls.Add(this.LblPoolWeight4);
this.GrpBalance.Controls.Add(this.LblPoolWeight5);
resources.ApplyResources(this.GrpBalance, "GrpBalance");
this.GrpBalance.Name = "GrpBalance";
this.GrpBalance.TabStop = false;
//
@@ -513,10 +521,51 @@ namespace GrasscutterTools.Forms
resources.ApplyResources(this.LblPoolWeight5, "LblPoolWeight5");
this.LblPoolWeight5.Name = "LblPoolWeight5";
//
// GrpWeightChart
//
resources.ApplyResources(this.GrpWeightChart, "GrpWeightChart");
this.GrpWeightChart.Controls.Add(this.ChartWeights);
this.GrpWeightChart.Name = "GrpWeightChart";
this.GrpWeightChart.TabStop = false;
//
// ChartWeights
//
chartArea2.AxisX.Minimum = 0D;
chartArea2.AxisY.Maximum = 100D;
chartArea2.AxisY.Minimum = 0D;
chartArea2.AxisY.Title = "%";
chartArea2.Name = "ChartArea1";
this.ChartWeights.ChartAreas.Add(chartArea2);
resources.ApplyResources(this.ChartWeights, "ChartWeights");
legend2.Name = "Legend1";
this.ChartWeights.Legends.Add(legend2);
this.ChartWeights.Name = "ChartWeights";
series3.ChartArea = "ChartArea1";
series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series3.Color = System.Drawing.Color.OrangeRed;
series3.Label = "(#VALX, #VAL)";
series3.Legend = "Legend1";
series3.LegendText = "5*";
series3.Name = "SeriesWeight5";
series3.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
series3.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
series4.ChartArea = "ChartArea1";
series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series4.Color = System.Drawing.Color.Purple;
series4.Label = "(#VALX, #VAL)";
series4.Legend = "Legend1";
series4.LegendText = "4*";
series4.Name = "SeriesWeight4";
series4.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
series4.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
this.ChartWeights.Series.Add(series3);
this.ChartWeights.Series.Add(series4);
//
// FormGachaBannerEditor2
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.GrpWeightChart);
this.Controls.Add(this.GrpBalance);
this.Controls.Add(this.GrpWeights);
this.Controls.Add(this.GrpJson);
@@ -540,6 +589,8 @@ namespace GrasscutterTools.Forms
this.GrpWeights.PerformLayout();
this.GrpBalance.ResumeLayout(false);
this.GrpBalance.PerformLayout();
this.GrpWeightChart.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.ChartWeights)).EndInit();
this.ResumeLayout(false);
}
@@ -599,5 +650,7 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.CheckBox ChkRemoveC6FormPool;
private System.Windows.Forms.CheckBox ChkAutoStripRateUpFromFallback;
private System.Windows.Forms.Label LblOptions;
private System.Windows.Forms.GroupBox GrpWeightChart;
private System.Windows.Forms.DataVisualization.Charting.Chart ChartWeights;
}
}

View File

@@ -19,10 +19,10 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using GrasscutterTools.Game;
using GrasscutterTools.Game.Gacha;
@@ -184,6 +184,15 @@ namespace GrasscutterTools.Forms
TxtWeight4.Text = '[' + string.Join(", ", SelectWeights(banner.Weights4).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
TxtPoolWeight5.Text = '[' + string.Join(", ", SelectWeights(banner.PoolBalanceWeights5).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
TxtPoolWeight4.Text = '[' + string.Join(", ", SelectWeights(banner.PoolBalanceWeights4).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
ChartWeights.SuspendLayout();
ChartWeights.Series[0].Points.Clear();
foreach (var w in SelectWeights(banner.Weights5))
ChartWeights.Series[0].Points.AddXY(w.Count, w.Weight / 100.0);
ChartWeights.Series[1].Points.Clear();
foreach (var w in SelectWeights(banner.Weights4))
ChartWeights.Series[1].Points.AddXY(w.Count, w.Weight / 100.0);
ChartWeights.ResumeLayout();
}
private IEnumerable<GachaWeight> SelectWeights(int[,] weights)
@@ -296,6 +305,7 @@ namespace GrasscutterTools.Forms
var json = JsonConvert.SerializeObject(banner);
json = json.Replace(",\"", ",\r\n \"").Insert(1, "\r\n ");
TxtJson.Text = json.Insert(json.Length-1, "\r\n");
ShowBanner(banner);
}
}
catch (Exception ex)

View File

@@ -431,6 +431,9 @@
<data name="LblPoolWeight5.Text" xml:space="preserve">
<value>Pool Weight 5</value>
</data>
<data name="GrpWeightChart.Text" xml:space="preserve">
<value>Weight Chart</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Gacha Banner Editor</value>
</data>

File diff suppressed because it is too large Load Diff

View File

@@ -233,10 +233,10 @@
<value>Молитва события с оружием</value>
</data>
<data name="LblSortIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>101, 17</value>
<value>121, 17</value>
</data>
<data name="LblSortIdTip.Text" xml:space="preserve">
<value>Показать заказ</value>
<value>Показать порядок</value>
</data>
<data name="LblBannerType.Location" type="System.Drawing.Point, System.Drawing">
<value>18, 87</value>
@@ -283,6 +283,9 @@
<data name="GrpBannerValues.Text" xml:space="preserve">
<value>Баннер</value>
</data>
<data name="GrpFallbackPool.Text" xml:space="preserve">
<value>Запасной Пул</value>
</data>
<data name="ListFallbackItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
@@ -343,8 +346,8 @@
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXMws=
</value>
</data>
<data name="GrpFallbackPool.Text" xml:space="preserve">
<value>Запасной Пул</value>
<data name="GrpUpPool.Text" xml:space="preserve">
<value>Верхний Пул</value>
</data>
<data name="ListUpItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
@@ -386,9 +389,6 @@
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc0Cw==
</value>
</data>
<data name="GrpUpPool.Text" xml:space="preserve">
<value>Верхний Пул</value>
</data>
<data name="BtnGen.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 23</value>
</data>
@@ -404,6 +404,9 @@
<data name="BtnParse.Text" xml:space="preserve">
<value>Загр. Json</value>
</data>
<data name="GrpWeights.Text" xml:space="preserve">
<value>Gacha Веса</value>
</data>
<data name="LnkWeightHelp.Location" type="System.Drawing.Point, System.Drawing">
<value>375, 0</value>
</data>
@@ -431,8 +434,8 @@
<data name="LblWeight5.Text" xml:space="preserve">
<value>Веса 5*</value>
</data>
<data name="GrpWeights.Text" xml:space="preserve">
<value>Gacha Веса</value>
<data name="GrpBalance.Text" xml:space="preserve">
<value>Баланс персонажа и оружия (работают только смешанные пулы)</value>
</data>
<data name="LblPoolWeight4.Location" type="System.Drawing.Point, System.Drawing">
<value>28, 61</value>
@@ -452,8 +455,8 @@
<data name="LblPoolWeight5.Text" xml:space="preserve">
<value>Пул Веса 5*</value>
</data>
<data name="GrpBalance.Text" xml:space="preserve">
<value>Баланс персонажа и оружия (работают только смешанные пулы)</value>
<data name="GrpWeightChart.Text" xml:space="preserve">
<value>Таблица веса</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Редактор баннеров Gacha</value>

View File

@@ -165,6 +165,9 @@
<data name="GrpBannerValues.Text" xml:space="preserve">
<value>卡池參數</value>
</data>
<data name="GrpFallbackPool.Text" xml:space="preserve">
<value>基礎池</value>
</data>
<data name="ListFallbackItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
@@ -225,9 +228,6 @@
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXMws=
</value>
</data>
<data name="GrpFallbackPool.Text" xml:space="preserve">
<value>基礎池</value>
</data>
<data name="ListUpItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
@@ -268,6 +268,9 @@
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc0Cw==
</value>
</data>
<data name="GrpWeights.Text" xml:space="preserve">
<value>卡池權重與保底機制</value>
</data>
<data name="LnkWeightHelp.Text" xml:space="preserve">
<value>幫助</value>
</data>
@@ -277,8 +280,8 @@
<data name="LblWeight5.Text" xml:space="preserve">
<value>5星權重</value>
</data>
<data name="GrpWeights.Text" xml:space="preserve">
<value>卡池權重與保底機制</value>
<data name="GrpBalance.Text" xml:space="preserve">
<value>角色和武器平衡機制(僅混合池有效)</value>
</data>
<data name="LblPoolWeight4.Text" xml:space="preserve">
<value>4星池權重</value>
@@ -286,8 +289,8 @@
<data name="LblPoolWeight5.Text" xml:space="preserve">
<value>5星池權重</value>
</data>
<data name="GrpBalance.Text" xml:space="preserve">
<value>角色和武器平衡機制(僅混合池有效)</value>
<data name="GrpWeightChart.Text" xml:space="preserve">
<value>權重圖表</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>卡池編輯器</value>

View File

@@ -35,6 +35,11 @@ namespace GrasscutterTools.Forms
this.GrpCommand = new System.Windows.Forms.GroupBox();
this.BtnInvokeOpenCommand = new System.Windows.Forms.Button();
this.TPRemoteCall = new System.Windows.Forms.TabPage();
this.LnkLinks = new System.Windows.Forms.LinkLabel();
this.LnkGOODHelp = new System.Windows.Forms.LinkLabel();
this.LnkInventoryKamera = new System.Windows.Forms.LinkLabel();
this.LblGOODHelp = new System.Windows.Forms.Label();
this.ButtonOpenGOODImport = new System.Windows.Forms.Button();
this.LblHostTip = new System.Windows.Forms.Label();
this.GrpServerStatus = new System.Windows.Forms.GroupBox();
this.LnkOpenCommandLabel = new System.Windows.Forms.LinkLabel();
@@ -81,16 +86,18 @@ namespace GrasscutterTools.Forms
this.LblAccountUserName = new System.Windows.Forms.Label();
this.TxtAccountUserName = new System.Windows.Forms.TextBox();
this.GrpPermission = new System.Windows.Forms.GroupBox();
this.LblPermNewCommandTip = new System.Windows.Forms.Label();
this.CmbPerm = new System.Windows.Forms.ComboBox();
this.NUDPermUID = new System.Windows.Forms.NumericUpDown();
this.BtnPermClear = new System.Windows.Forms.Button();
this.BtmPermRemove = new System.Windows.Forms.Button();
this.BtnPermList = new System.Windows.Forms.Button();
this.BtnPermAdd = new System.Windows.Forms.Button();
this.LblPerm = new System.Windows.Forms.Label();
this.LblPermUID = new System.Windows.Forms.Label();
this.TPScene = new System.Windows.Forms.TabPage();
this.TxtSceneFilter = new System.Windows.Forms.TextBox();
this.ChkIncludeSceneId = new System.Windows.Forms.CheckBox();
this.LblTp = new System.Windows.Forms.Label();
this.LblTpZ = new System.Windows.Forms.Label();
this.LblTpY = new System.Windows.Forms.Label();
this.BtnTeleport = new System.Windows.Forms.Button();
@@ -102,6 +109,7 @@ namespace GrasscutterTools.Forms
this.LblClimateType = new System.Windows.Forms.Label();
this.LblSceneDescription = new System.Windows.Forms.Label();
this.ListScenes = new System.Windows.Forms.ListBox();
this.LblTp = new System.Windows.Forms.Label();
this.TPItem = new System.Windows.Forms.TabPage();
this.LblClearGiveItemLogs = new System.Windows.Forms.Label();
this.BtnSaveGiveItemLog = new System.Windows.Forms.Button();
@@ -127,9 +135,9 @@ namespace GrasscutterTools.Forms
this.NUDWeaponLevel = new System.Windows.Forms.NumericUpDown();
this.ListWeapons = new System.Windows.Forms.ListBox();
this.TPStats = new System.Windows.Forms.TabPage();
this.LblResetStatsCommand = new System.Windows.Forms.LinkLabel();
this.LblResetStatsTip = new System.Windows.Forms.Label();
this.GrpSetStats = new System.Windows.Forms.GroupBox();
this.BtnUnlockStat = new System.Windows.Forms.Button();
this.BtnLockStat = new System.Windows.Forms.Button();
this.LblStatTip = new System.Windows.Forms.Label();
this.LblStatPercent = new System.Windows.Forms.Label();
this.NUDStat = new System.Windows.Forms.NumericUpDown();
@@ -208,13 +216,15 @@ namespace GrasscutterTools.Forms
this.BtnSaveCustomCommand = new System.Windows.Forms.Button();
this.TxtCustomName = new System.Windows.Forms.TextBox();
this.TPHome = new System.Windows.Forms.TabPage();
this.LnkNewVersion = new System.Windows.Forms.LinkLabel();
this.LblAbout = new System.Windows.Forms.Label();
this.BtnOpenTextMap = new System.Windows.Forms.Button();
this.BtnOpenGachaBannerEditor = new System.Windows.Forms.Button();
this.GrasscutterToolsIcon = new System.Windows.Forms.PictureBox();
this.GrpSettings = new System.Windows.Forms.GroupBox();
this.LblGCVersion = new System.Windows.Forms.Label();
this.CmbGcVersions = new System.Windows.Forms.ComboBox();
this.ChkTopMost = new System.Windows.Forms.CheckBox();
this.ChkNewCommand = new System.Windows.Forms.CheckBox();
this.CmbLanguage = new System.Windows.Forms.ComboBox();
this.LblLanguage = new System.Windows.Forms.Label();
this.NUDUid = new System.Windows.Forms.NumericUpDown();
@@ -317,15 +327,55 @@ namespace GrasscutterTools.Forms
//
// TPRemoteCall
//
resources.ApplyResources(this.TPRemoteCall, "TPRemoteCall");
this.TPRemoteCall.Controls.Add(this.LnkLinks);
this.TPRemoteCall.Controls.Add(this.LnkGOODHelp);
this.TPRemoteCall.Controls.Add(this.LnkInventoryKamera);
this.TPRemoteCall.Controls.Add(this.LblGOODHelp);
this.TPRemoteCall.Controls.Add(this.ButtonOpenGOODImport);
this.TPRemoteCall.Controls.Add(this.LblHostTip);
this.TPRemoteCall.Controls.Add(this.GrpServerStatus);
this.TPRemoteCall.Controls.Add(this.GrpRemoteCommand);
this.TPRemoteCall.Controls.Add(this.TxtHost);
this.TPRemoteCall.Controls.Add(this.BtnQueryServerStatus);
this.TPRemoteCall.Controls.Add(this.LblHost);
resources.ApplyResources(this.TPRemoteCall, "TPRemoteCall");
this.TPRemoteCall.Name = "TPRemoteCall";
this.TPRemoteCall.UseVisualStyleBackColor = true;
this.TPRemoteCall.Enter += new System.EventHandler(this.TPRemoteCall_Enter);
//
// LnkLinks
//
resources.ApplyResources(this.LnkLinks, "LnkLinks");
this.LnkLinks.Name = "LnkLinks";
this.LnkLinks.TabStop = true;
this.LnkLinks.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkLinks_LinkClicked);
//
// LnkGOODHelp
//
resources.ApplyResources(this.LnkGOODHelp, "LnkGOODHelp");
this.LnkGOODHelp.Cursor = System.Windows.Forms.Cursors.Help;
this.LnkGOODHelp.Name = "LnkGOODHelp";
this.LnkGOODHelp.TabStop = true;
this.LnkGOODHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkGOODHelp_LinkClicked);
//
// LnkInventoryKamera
//
resources.ApplyResources(this.LnkInventoryKamera, "LnkInventoryKamera");
this.LnkInventoryKamera.Name = "LnkInventoryKamera";
this.LnkInventoryKamera.TabStop = true;
this.LnkInventoryKamera.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkInventoryKamera_LinkClicked);
//
// LblGOODHelp
//
resources.ApplyResources(this.LblGOODHelp, "LblGOODHelp");
this.LblGOODHelp.Name = "LblGOODHelp";
//
// ButtonOpenGOODImport
//
resources.ApplyResources(this.ButtonOpenGOODImport, "ButtonOpenGOODImport");
this.ButtonOpenGOODImport.Name = "ButtonOpenGOODImport";
this.ButtonOpenGOODImport.UseVisualStyleBackColor = true;
this.ButtonOpenGOODImport.Click += new System.EventHandler(this.ButtonOpenGOODImport_Click);
//
// LblHostTip
//
@@ -386,15 +436,14 @@ namespace GrasscutterTools.Forms
//
// TPOpenCommandCheck
//
resources.ApplyResources(this.TPOpenCommandCheck, "TPOpenCommandCheck");
this.TPOpenCommandCheck.Controls.Add(this.TPPlayerCheck);
this.TPOpenCommandCheck.Controls.Add(this.TPConsoleCheck);
resources.ApplyResources(this.TPOpenCommandCheck, "TPOpenCommandCheck");
this.TPOpenCommandCheck.Name = "TPOpenCommandCheck";
this.TPOpenCommandCheck.SelectedIndex = 0;
//
// TPPlayerCheck
//
resources.ApplyResources(this.TPPlayerCheck, "TPPlayerCheck");
this.TPPlayerCheck.Controls.Add(this.LnkRCHelp);
this.TPPlayerCheck.Controls.Add(this.NUDRemotePlayerId);
this.TPPlayerCheck.Controls.Add(this.BtnConnectOpenCommand);
@@ -402,6 +451,7 @@ namespace GrasscutterTools.Forms
this.TPPlayerCheck.Controls.Add(this.BtnSendVerificationCode);
this.TPPlayerCheck.Controls.Add(this.NUDVerificationCode);
this.TPPlayerCheck.Controls.Add(this.LblRemotePlayerId);
resources.ApplyResources(this.TPPlayerCheck, "TPPlayerCheck");
this.TPPlayerCheck.Name = "TPPlayerCheck";
this.TPPlayerCheck.UseVisualStyleBackColor = true;
//
@@ -473,11 +523,11 @@ namespace GrasscutterTools.Forms
//
// TPConsoleCheck
//
resources.ApplyResources(this.TPConsoleCheck, "TPConsoleCheck");
this.TPConsoleCheck.Controls.Add(this.BtnConsoleConnect);
this.TPConsoleCheck.Controls.Add(this.TxtToken);
this.TPConsoleCheck.Controls.Add(this.LblToken);
this.TPConsoleCheck.Controls.Add(this.LblConsoleTip);
resources.ApplyResources(this.TPConsoleCheck, "TPConsoleCheck");
this.TPConsoleCheck.Name = "TPConsoleCheck";
this.TPConsoleCheck.UseVisualStyleBackColor = true;
//
@@ -522,10 +572,10 @@ namespace GrasscutterTools.Forms
//
// TPAbout
//
resources.ApplyResources(this.TPAbout, "TPAbout");
this.TPAbout.Controls.Add(this.GrasscutterToolsSupport);
this.TPAbout.Controls.Add(this.LnkGithub);
this.TPAbout.Controls.Add(this.LblSupportDescription);
resources.ApplyResources(this.TPAbout, "TPAbout");
this.TPAbout.Name = "TPAbout";
this.TPAbout.UseVisualStyleBackColor = true;
//
@@ -550,10 +600,10 @@ namespace GrasscutterTools.Forms
//
// TPManage
//
resources.ApplyResources(this.TPManage, "TPManage");
this.TPManage.Controls.Add(this.GrpBanPlayer);
this.TPManage.Controls.Add(this.GrpAccount);
this.TPManage.Controls.Add(this.GrpPermission);
resources.ApplyResources(this.TPManage, "TPManage");
this.TPManage.Name = "TPManage";
this.TPManage.UseVisualStyleBackColor = true;
//
@@ -571,8 +621,8 @@ namespace GrasscutterTools.Forms
//
// DTPBanEndTime
//
resources.ApplyResources(this.DTPBanEndTime, "DTPBanEndTime");
this.DTPBanEndTime.Format = System.Windows.Forms.DateTimePickerFormat.Short;
resources.ApplyResources(this.DTPBanEndTime, "DTPBanEndTime");
this.DTPBanEndTime.MaxDate = new System.DateTime(2034, 12, 31, 0, 0, 0, 0);
this.DTPBanEndTime.MinDate = new System.DateTime(2022, 6, 28, 0, 0, 0, 0);
this.DTPBanEndTime.Name = "DTPBanEndTime";
@@ -594,8 +644,8 @@ namespace GrasscutterTools.Forms
//
// TxtBanReason
//
resources.ApplyResources(this.TxtBanReason, "TxtBanReason");
this.TxtBanReason.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
resources.ApplyResources(this.TxtBanReason, "TxtBanReason");
this.TxtBanReason.Maximum = 0F;
this.TxtBanReason.Minimum = 0F;
this.TxtBanReason.Name = "TxtBanReason";
@@ -682,21 +732,30 @@ namespace GrasscutterTools.Forms
// GrpPermission
//
resources.ApplyResources(this.GrpPermission, "GrpPermission");
this.GrpPermission.Controls.Add(this.LblPermNewCommandTip);
this.GrpPermission.Controls.Add(this.CmbPerm);
this.GrpPermission.Controls.Add(this.NUDPermUID);
this.GrpPermission.Controls.Add(this.BtnPermClear);
this.GrpPermission.Controls.Add(this.BtmPermRemove);
this.GrpPermission.Controls.Add(this.BtnPermList);
this.GrpPermission.Controls.Add(this.BtnPermAdd);
this.GrpPermission.Controls.Add(this.LblPerm);
this.GrpPermission.Controls.Add(this.LblPermUID);
this.GrpPermission.Name = "GrpPermission";
this.GrpPermission.TabStop = false;
//
// LblPermNewCommandTip
//
resources.ApplyResources(this.LblPermNewCommandTip, "LblPermNewCommandTip");
this.LblPermNewCommandTip.ForeColor = System.Drawing.SystemColors.GrayText;
this.LblPermNewCommandTip.Name = "LblPermNewCommandTip";
//
// CmbPerm
//
resources.ApplyResources(this.CmbPerm, "CmbPerm");
this.CmbPerm.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.CmbPerm.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.CmbPerm.FormattingEnabled = true;
resources.ApplyResources(this.CmbPerm, "CmbPerm");
this.CmbPerm.Name = "CmbPerm";
//
// NUDPermUID
@@ -714,6 +773,14 @@ namespace GrasscutterTools.Forms
0,
0});
//
// BtnPermClear
//
resources.ApplyResources(this.BtnPermClear, "BtnPermClear");
this.BtnPermClear.Name = "BtnPermClear";
this.BtnPermClear.Tag = "clear";
this.BtnPermClear.UseVisualStyleBackColor = true;
this.BtnPermClear.Click += new System.EventHandler(this.BtnPermClick);
//
// BtmPermRemove
//
resources.ApplyResources(this.BtmPermRemove, "BtmPermRemove");
@@ -722,6 +789,14 @@ namespace GrasscutterTools.Forms
this.BtmPermRemove.UseVisualStyleBackColor = true;
this.BtmPermRemove.Click += new System.EventHandler(this.BtnPermClick);
//
// BtnPermList
//
resources.ApplyResources(this.BtnPermList, "BtnPermList");
this.BtnPermList.Name = "BtnPermList";
this.BtnPermList.Tag = "list";
this.BtnPermList.UseVisualStyleBackColor = true;
this.BtnPermList.Click += new System.EventHandler(this.BtnPermClick);
//
// BtnPermAdd
//
resources.ApplyResources(this.BtnPermAdd, "BtnPermAdd");
@@ -742,10 +817,8 @@ namespace GrasscutterTools.Forms
//
// TPScene
//
resources.ApplyResources(this.TPScene, "TPScene");
this.TPScene.Controls.Add(this.TxtSceneFilter);
this.TPScene.Controls.Add(this.ChkIncludeSceneId);
this.TPScene.Controls.Add(this.LblTp);
this.TPScene.Controls.Add(this.LblTpZ);
this.TPScene.Controls.Add(this.LblTpY);
this.TPScene.Controls.Add(this.BtnTeleport);
@@ -757,6 +830,8 @@ namespace GrasscutterTools.Forms
this.TPScene.Controls.Add(this.LblClimateType);
this.TPScene.Controls.Add(this.LblSceneDescription);
this.TPScene.Controls.Add(this.ListScenes);
this.TPScene.Controls.Add(this.LblTp);
resources.ApplyResources(this.TPScene, "TPScene");
this.TPScene.Name = "TPScene";
this.TPScene.UseVisualStyleBackColor = true;
//
@@ -772,11 +847,6 @@ namespace GrasscutterTools.Forms
this.ChkIncludeSceneId.Name = "ChkIncludeSceneId";
this.ChkIncludeSceneId.UseVisualStyleBackColor = true;
//
// LblTp
//
resources.ApplyResources(this.LblTp, "LblTp");
this.LblTp.Name = "LblTp";
//
// LblTpZ
//
resources.ApplyResources(this.LblTpZ, "LblTpZ");
@@ -889,9 +959,13 @@ namespace GrasscutterTools.Forms
this.ListScenes.Name = "ListScenes";
this.ListScenes.SelectedIndexChanged += new System.EventHandler(this.ListScenes_SelectedIndexChanged);
//
// LblTp
//
resources.ApplyResources(this.LblTp, "LblTp");
this.LblTp.Name = "LblTp";
//
// TPItem
//
resources.ApplyResources(this.TPItem, "TPItem");
this.TPItem.Controls.Add(this.LblClearGiveItemLogs);
this.TPItem.Controls.Add(this.BtnSaveGiveItemLog);
this.TPItem.Controls.Add(this.BtnRemoveGiveItemLog);
@@ -904,6 +978,7 @@ namespace GrasscutterTools.Forms
this.TPItem.Controls.Add(this.NUDGameItemAmout);
this.TPItem.Controls.Add(this.NUDGameItemLevel);
this.TPItem.Controls.Add(this.LblGiveCommandDescription);
resources.ApplyResources(this.TPItem, "TPItem");
this.TPItem.Name = "TPItem";
this.TPItem.UseVisualStyleBackColor = true;
//
@@ -1021,7 +1096,6 @@ namespace GrasscutterTools.Forms
//
// TPWeapon
//
resources.ApplyResources(this.TPWeapon, "TPWeapon");
this.TPWeapon.Controls.Add(this.TxtWeaponFilter);
this.TPWeapon.Controls.Add(this.LblWeaponDescription);
this.TPWeapon.Controls.Add(this.LblWeaponRefinement);
@@ -1031,6 +1105,7 @@ namespace GrasscutterTools.Forms
this.TPWeapon.Controls.Add(this.NUDWeaponAmout);
this.TPWeapon.Controls.Add(this.NUDWeaponLevel);
this.TPWeapon.Controls.Add(this.ListWeapons);
resources.ApplyResources(this.TPWeapon, "TPWeapon");
this.TPWeapon.Name = "TPWeapon";
this.TPWeapon.UseVisualStyleBackColor = true;
//
@@ -1127,31 +1202,18 @@ namespace GrasscutterTools.Forms
//
// TPStats
//
resources.ApplyResources(this.TPStats, "TPStats");
this.TPStats.Controls.Add(this.LblResetStatsCommand);
this.TPStats.Controls.Add(this.LblResetStatsTip);
this.TPStats.Controls.Add(this.GrpSetStats);
this.TPStats.Controls.Add(this.GrpTalentLevel);
this.TPStats.Controls.Add(this.LblStatsDescription);
resources.ApplyResources(this.TPStats, "TPStats");
this.TPStats.Name = "TPStats";
this.TPStats.UseVisualStyleBackColor = true;
//
// LblResetStatsCommand
//
resources.ApplyResources(this.LblResetStatsCommand, "LblResetStatsCommand");
this.LblResetStatsCommand.Name = "LblResetStatsCommand";
this.LblResetStatsCommand.TabStop = true;
this.LblResetStatsCommand.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LblResetStatsCommand_LinkClicked);
//
// LblResetStatsTip
//
resources.ApplyResources(this.LblResetStatsTip, "LblResetStatsTip");
this.LblResetStatsTip.ForeColor = System.Drawing.SystemColors.ActiveCaption;
this.LblResetStatsTip.Name = "LblResetStatsTip";
//
// GrpSetStats
//
resources.ApplyResources(this.GrpSetStats, "GrpSetStats");
this.GrpSetStats.Controls.Add(this.BtnUnlockStat);
this.GrpSetStats.Controls.Add(this.BtnLockStat);
this.GrpSetStats.Controls.Add(this.LblStatTip);
this.GrpSetStats.Controls.Add(this.LblStatPercent);
this.GrpSetStats.Controls.Add(this.NUDStat);
@@ -1159,11 +1221,25 @@ namespace GrasscutterTools.Forms
this.GrpSetStats.Name = "GrpSetStats";
this.GrpSetStats.TabStop = false;
//
// BtnUnlockStat
//
resources.ApplyResources(this.BtnUnlockStat, "BtnUnlockStat");
this.BtnUnlockStat.Name = "BtnUnlockStat";
this.BtnUnlockStat.UseVisualStyleBackColor = true;
this.BtnUnlockStat.Click += new System.EventHandler(this.BtnUnlockStat_Click);
//
// BtnLockStat
//
resources.ApplyResources(this.BtnLockStat, "BtnLockStat");
this.BtnLockStat.Name = "BtnLockStat";
this.BtnLockStat.UseVisualStyleBackColor = true;
this.BtnLockStat.Click += new System.EventHandler(this.BtnLockStat_Click);
//
// LblStatTip
//
resources.ApplyResources(this.LblStatTip, "LblStatTip");
this.LblStatTip.AutoEllipsis = true;
this.LblStatTip.ForeColor = System.Drawing.SystemColors.GrayText;
resources.ApplyResources(this.LblStatTip, "LblStatTip");
this.LblStatTip.Name = "LblStatTip";
//
// LblStatPercent
@@ -1189,9 +1265,9 @@ namespace GrasscutterTools.Forms
//
// CmbStat
//
resources.ApplyResources(this.CmbStat, "CmbStat");
this.CmbStat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbStat.FormattingEnabled = true;
resources.ApplyResources(this.CmbStat, "CmbStat");
this.CmbStat.Name = "CmbStat";
this.CmbStat.SelectedIndexChanged += new System.EventHandler(this.SetStatsInputChanged);
//
@@ -1251,7 +1327,6 @@ namespace GrasscutterTools.Forms
//
// TPAvatar
//
resources.ApplyResources(this.TPAvatar, "TPAvatar");
this.TPAvatar.Controls.Add(this.BtnGiveAllChar);
this.TPAvatar.Controls.Add(this.LblConstellationTip);
this.TPAvatar.Controls.Add(this.LblAvatarConstellation);
@@ -1261,6 +1336,7 @@ namespace GrasscutterTools.Forms
this.TPAvatar.Controls.Add(this.LblAvatarLevel);
this.TPAvatar.Controls.Add(this.NUDAvatarLevel);
this.TPAvatar.Controls.Add(this.CmbAvatar);
resources.ApplyResources(this.TPAvatar, "TPAvatar");
this.TPAvatar.Name = "TPAvatar";
this.TPAvatar.UseVisualStyleBackColor = true;
//
@@ -1346,7 +1422,6 @@ namespace GrasscutterTools.Forms
//
// TPSpawn
//
resources.ApplyResources(this.TPSpawn, "TPSpawn");
this.TPSpawn.Controls.Add(this.LblClearSpawnLogs);
this.TPSpawn.Controls.Add(this.BtnSaveSpawnLog);
this.TPSpawn.Controls.Add(this.BtnRemoveSpawnLog);
@@ -1359,6 +1434,7 @@ namespace GrasscutterTools.Forms
this.TPSpawn.Controls.Add(this.NUDEntityLevel);
this.TPSpawn.Controls.Add(this.TxtEntityFilter);
this.TPSpawn.Controls.Add(this.ListEntity);
resources.ApplyResources(this.TPSpawn, "TPSpawn");
this.TPSpawn.Name = "TPSpawn";
this.TPSpawn.UseVisualStyleBackColor = true;
//
@@ -1499,13 +1575,13 @@ namespace GrasscutterTools.Forms
//
// TPQuest
//
resources.ApplyResources(this.TPQuest, "TPQuest");
this.TPQuest.Controls.Add(this.GrpQuestFilters);
this.TPQuest.Controls.Add(this.BtnFinishQuest);
this.TPQuest.Controls.Add(this.BtnAddQuest);
this.TPQuest.Controls.Add(this.LblQuestDescription);
this.TPQuest.Controls.Add(this.TxtQuestFilter);
this.TPQuest.Controls.Add(this.ListQuest);
resources.ApplyResources(this.TPQuest, "TPQuest");
this.TPQuest.Name = "TPQuest";
this.TPQuest.UseVisualStyleBackColor = true;
//
@@ -1577,7 +1653,6 @@ namespace GrasscutterTools.Forms
//
// TPArtifact
//
resources.ApplyResources(this.TPArtifact, "TPArtifact");
this.TPArtifact.Controls.Add(this.LblArtifactLevelTip);
this.TPArtifact.Controls.Add(this.BtnAddSubAttr);
this.TPArtifact.Controls.Add(this.LblArtifactName);
@@ -1597,6 +1672,7 @@ namespace GrasscutterTools.Forms
this.TPArtifact.Controls.Add(this.NUDArtifactLevel);
this.TPArtifact.Controls.Add(this.LblArtifactStars);
this.TPArtifact.Controls.Add(this.NUDArtifactStars);
resources.ApplyResources(this.TPArtifact, "TPArtifact");
this.TPArtifact.Name = "TPArtifact";
this.TPArtifact.UseVisualStyleBackColor = true;
//
@@ -1762,7 +1838,6 @@ namespace GrasscutterTools.Forms
//
// TPCustom
//
resources.ApplyResources(this.TPCustom, "TPCustom");
this.TPCustom.Controls.Add(this.BtnExportCustomCommands);
this.TPCustom.Controls.Add(this.BtnLoadCustomCommands);
this.TPCustom.Controls.Add(this.LblCustomName);
@@ -1770,6 +1845,7 @@ namespace GrasscutterTools.Forms
this.TPCustom.Controls.Add(this.BtnRemoveCustomCommand);
this.TPCustom.Controls.Add(this.BtnSaveCustomCommand);
this.TPCustom.Controls.Add(this.TxtCustomName);
resources.ApplyResources(this.TPCustom, "TPCustom");
this.TPCustom.Name = "TPCustom";
this.TPCustom.UseVisualStyleBackColor = true;
//
@@ -1833,15 +1909,23 @@ namespace GrasscutterTools.Forms
//
// TPHome
//
resources.ApplyResources(this.TPHome, "TPHome");
this.TPHome.Controls.Add(this.LnkNewVersion);
this.TPHome.Controls.Add(this.LblAbout);
this.TPHome.Controls.Add(this.BtnOpenTextMap);
this.TPHome.Controls.Add(this.BtnOpenGachaBannerEditor);
this.TPHome.Controls.Add(this.GrasscutterToolsIcon);
this.TPHome.Controls.Add(this.GrpSettings);
resources.ApplyResources(this.TPHome, "TPHome");
this.TPHome.Name = "TPHome";
this.TPHome.UseVisualStyleBackColor = true;
//
// LnkNewVersion
//
resources.ApplyResources(this.LnkNewVersion, "LnkNewVersion");
this.LnkNewVersion.Name = "LnkNewVersion";
this.LnkNewVersion.TabStop = true;
this.LnkNewVersion.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkNewVersion_LinkClicked);
//
// LblAbout
//
resources.ApplyResources(this.LblAbout, "LblAbout");
@@ -1871,8 +1955,9 @@ namespace GrasscutterTools.Forms
// GrpSettings
//
resources.ApplyResources(this.GrpSettings, "GrpSettings");
this.GrpSettings.Controls.Add(this.LblGCVersion);
this.GrpSettings.Controls.Add(this.CmbGcVersions);
this.GrpSettings.Controls.Add(this.ChkTopMost);
this.GrpSettings.Controls.Add(this.ChkNewCommand);
this.GrpSettings.Controls.Add(this.CmbLanguage);
this.GrpSettings.Controls.Add(this.LblLanguage);
this.GrpSettings.Controls.Add(this.NUDUid);
@@ -1881,27 +1966,30 @@ namespace GrasscutterTools.Forms
this.GrpSettings.Name = "GrpSettings";
this.GrpSettings.TabStop = false;
//
// LblGCVersion
//
resources.ApplyResources(this.LblGCVersion, "LblGCVersion");
this.LblGCVersion.Name = "LblGCVersion";
//
// CmbGcVersions
//
this.CmbGcVersions.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbGcVersions.FormattingEnabled = true;
resources.ApplyResources(this.CmbGcVersions, "CmbGcVersions");
this.CmbGcVersions.Name = "CmbGcVersions";
//
// ChkTopMost
//
resources.ApplyResources(this.ChkTopMost, "ChkTopMost");
this.ChkTopMost.Name = "ChkTopMost";
this.ChkTopMost.UseVisualStyleBackColor = true;
this.ChkTopMost.CheckedChanged += new System.EventHandler(this.ChkTopMost_CheckedChanged);
//
// ChkNewCommand
//
resources.ApplyResources(this.ChkNewCommand, "ChkNewCommand");
this.ChkNewCommand.Name = "ChkNewCommand";
this.ChkNewCommand.UseVisualStyleBackColor = true;
this.ChkNewCommand.CheckedChanged += new System.EventHandler(this.ChkNewCommand_CheckedChanged);
//
// CmbLanguage
//
resources.ApplyResources(this.CmbLanguage, "CmbLanguage");
this.CmbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbLanguage.FormattingEnabled = true;
resources.ApplyResources(this.CmbLanguage, "CmbLanguage");
this.CmbLanguage.Name = "CmbLanguage";
this.CmbLanguage.SelectedIndexChanged += new System.EventHandler(this.CmbLanguage_SelectedIndexChanged);
//
// LblLanguage
//
@@ -2227,7 +2315,6 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.PictureBox GrasscutterToolsIcon;
private System.Windows.Forms.GroupBox GrpSettings;
private System.Windows.Forms.CheckBox ChkTopMost;
private System.Windows.Forms.CheckBox ChkNewCommand;
private System.Windows.Forms.ComboBox CmbLanguage;
private System.Windows.Forms.Label LblLanguage;
private System.Windows.Forms.NumericUpDown NUDUid;
@@ -2237,12 +2324,23 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.Label LblArtifactLevelTip;
private System.Windows.Forms.Label LblClearSpawnLogs;
private System.Windows.Forms.Label LblClearGiveItemLogs;
private System.Windows.Forms.LinkLabel LblResetStatsCommand;
private System.Windows.Forms.Label LblResetStatsTip;
private System.Windows.Forms.Label LblAvatarConstellation;
private System.Windows.Forms.NumericUpDown NUDAvatarConstellation;
private System.Windows.Forms.Label LblConstellationTip;
private System.Windows.Forms.Button BtnGiveAllChar;
private System.Windows.Forms.Label LblHostTip;
private System.Windows.Forms.Button ButtonOpenGOODImport;
private System.Windows.Forms.LinkLabel LnkInventoryKamera;
private System.Windows.Forms.Label LblGOODHelp;
private System.Windows.Forms.LinkLabel LnkGOODHelp;
private System.Windows.Forms.LinkLabel LnkLinks;
private System.Windows.Forms.Button BtnUnlockStat;
private System.Windows.Forms.Button BtnLockStat;
private System.Windows.Forms.Label LblGCVersion;
private System.Windows.Forms.ComboBox CmbGcVersions;
private System.Windows.Forms.Label LblPermNewCommandTip;
private System.Windows.Forms.Button BtnPermClear;
private System.Windows.Forms.Button BtnPermList;
private System.Windows.Forms.LinkLabel LnkNewVersion;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -127,14 +127,20 @@
<data name="ChkAutoCopy.Text" xml:space="preserve">
<value>Auto</value>
</data>
<data name="GrpCommand.Text" xml:space="preserve">
<value>Command (Press and hold Ctrl to run automatically)</value>
</data>
<data name="BtnInvokeOpenCommand.Text" xml:space="preserve">
<value>Run(F5)</value>
</data>
<data name="TPRemoteCall.Text" xml:space="preserve">
<value>Remote</value>
<data name="GrpCommand.Text" xml:space="preserve">
<value>Command (Press and hold Ctrl to run automatically)</value>
</data>
<data name="LnkInventoryKamera.Text" xml:space="preserve">
<value>InventoryKamera</value>
</data>
<data name="LblGOODHelp.Text" xml:space="preserve">
<value>Come and import your official server archive into GC!</value>
</data>
<data name="ButtonOpenGOODImport.Text" xml:space="preserve">
<value>Import GOOD</value>
</data>
<data name="LblHostTip.Location" type="System.Drawing.Point, System.Drawing">
<value>108, 16</value>
@@ -145,9 +151,6 @@
<data name="LblHostTip.Text" xml:space="preserve">
<value>Please be sure https:// or http:// is included with the IP address</value>
</data>
<data name="GrpServerStatus.Text" xml:space="preserve">
<value>Server status</value>
</data>
<data name="LnkOpenCommandLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 63</value>
</data>
@@ -184,11 +187,8 @@
<data name="LblPlayerCountLabel.Text" xml:space="preserve">
<value>Player count</value>
</data>
<data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>Remote Cell</value>
</data>
<data name="TPPlayerCheck.Text" xml:space="preserve">
<value>Player</value>
<data name="GrpServerStatus.Text" xml:space="preserve">
<value>Server status</value>
</data>
<data name="LnkRCHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>35, 17</value>
@@ -208,8 +208,8 @@
<data name="BtnSendVerificationCode.Text" xml:space="preserve">
<value>Send Code</value>
</data>
<data name="TPConsoleCheck.Text" xml:space="preserve">
<value>Console</value>
<data name="TPPlayerCheck.Text" xml:space="preserve">
<value>Player</value>
</data>
<data name="BtnConsoleConnect.Text" xml:space="preserve">
<value>Connect</value>
@@ -217,6 +217,12 @@
<data name="LblConsoleTip.Text" xml:space="preserve">
<value>Note that normal commands in the console state must specify the target (set include UID)</value>
</data>
<data name="TPConsoleCheck.Text" xml:space="preserve">
<value>Console</value>
</data>
<data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>Remote Cell</value>
</data>
<data name="TxtHost.Location" type="System.Drawing.Point, System.Drawing">
<value>111, 36</value>
</data>
@@ -238,20 +244,22 @@
<data name="LblHost.Text" xml:space="preserve">
<value>Server IP</value>
</data>
<data name="TPAbout.Text" xml:space="preserve">
<value>About</value>
<data name="TPRemoteCall.Text" xml:space="preserve">
<value>Remote</value>
</data>
<data name="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>110, 17</value>
<value>387, 102</value>
</data>
<data name="LblSupportDescription.Text" xml:space="preserve">
<value>Grasscutter Tools</value>
<value>Grasscutter Tools
This is a free and open source project.
If you think this is helpful to you, you can give me a free Star.
If there is a problem with the command generation,
or there is a new feature request, you can file an issue on Github.</value>
</data>
<data name="TPManage.Text" xml:space="preserve">
<value>Manage</value>
</data>
<data name="GrpBanPlayer.Text" xml:space="preserve">
<value>Ban</value>
<data name="TPAbout.Text" xml:space="preserve">
<value>About</value>
</data>
<data name="BtnUnban.Text" xml:space="preserve">
<value>Unban</value>
@@ -271,8 +279,8 @@
<data name="LblBanUID.Text" xml:space="preserve">
<value>UID</value>
</data>
<data name="GrpAccount.Text" xml:space="preserve">
<value>Account</value>
<data name="GrpBanPlayer.Text" xml:space="preserve">
<value>Ban</value>
</data>
<data name="ChkAccountSetUid.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 21</value>
@@ -307,8 +315,8 @@
<data name="TxtAccountUserName.Size" type="System.Drawing.Size, System.Drawing">
<value>127, 23</value>
</data>
<data name="GrpPermission.Text" xml:space="preserve">
<value>Permissions</value>
<data name="GrpAccount.Text" xml:space="preserve">
<value>Account</value>
</data>
<data name="CmbPerm.Location" type="System.Drawing.Point, System.Drawing">
<value>262, 21</value>
@@ -316,9 +324,15 @@
<data name="CmbPerm.Size" type="System.Drawing.Size, System.Drawing">
<value>138, 25</value>
</data>
<data name="BtnPermClear.Text" xml:space="preserve">
<value>Clear</value>
</data>
<data name="BtmPermRemove.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="BtnPermList.Text" xml:space="preserve">
<value>List</value>
</data>
<data name="BtnPermAdd.Text" xml:space="preserve">
<value>Add</value>
</data>
@@ -337,8 +351,11 @@
<data name="LblPermUID.Text" xml:space="preserve">
<value>UID</value>
</data>
<data name="TPScene.Text" xml:space="preserve">
<value>Scene</value>
<data name="GrpPermission.Text" xml:space="preserve">
<value>Permissions</value>
</data>
<data name="TPManage.Text" xml:space="preserve">
<value>Manage</value>
</data>
<data name="ChkIncludeSceneId.Location" type="System.Drawing.Point, System.Drawing">
<value>91, 213</value>
@@ -410,8 +427,8 @@ In the command, you can use ~ to indicate the current position, and ~100 to indi
<value>Scene control
Tip: Most of the scenes have no effect and cannot be entered.</value>
</data>
<data name="TPItem.Text" xml:space="preserve">
<value>Items</value>
<data name="TPScene.Text" xml:space="preserve">
<value>Scene</value>
</data>
<data name="LblClearGiveItemLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 17</value>
@@ -464,8 +481,8 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="LblGiveCommandDescription.Text" xml:space="preserve">
<value>Give item to player</value>
</data>
<data name="TPWeapon.Text" xml:space="preserve">
<value>Weapons</value>
<data name="TPItem.Text" xml:space="preserve">
<value>Items</value>
</data>
<data name="LblWeaponDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>86, 17</value>
@@ -506,35 +523,20 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="NUDWeaponLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>147, 216</value>
</data>
<data name="TPStats.Text" xml:space="preserve">
<value>Stats</value>
<data name="TPWeapon.Text" xml:space="preserve">
<value>Weapons</value>
</data>
<data name="LblResetStatsCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>126, 135</value>
<data name="BtnUnlockStat.Text" xml:space="preserve">
<value>Unlock</value>
</data>
<data name="LblResetStatsCommand.Size" type="System.Drawing.Size, System.Drawing">
<value>112, 17</value>
</data>
<data name="LblResetStatsCommand.Text" xml:space="preserve">
<value>When getting CEP</value>
</data>
<data name="LblResetStatsTip.Location" type="System.Drawing.Point, System.Drawing">
<value>235, 135</value>
</data>
<data name="LblResetStatsTip.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 17</value>
</data>
<data name="LblResetStatsTip.Text" xml:space="preserve">
<value>the current character's stats will be reset</value>
</data>
<data name="GrpSetStats.Text" xml:space="preserve">
<value>Stats</value>
<data name="BtnLockStat.Text" xml:space="preserve">
<value>Lock</value>
</data>
<data name="LblStatTip.Text" xml:space="preserve">
<value>Tip</value>
</data>
<data name="GrpTalentLevel.Text" xml:space="preserve">
<value>Talent Level</value>
<data name="GrpSetStats.Text" xml:space="preserve">
<value>Stats</value>
</data>
<data name="LnkTalentE.Location" type="System.Drawing.Point, System.Drawing">
<value>283, 24</value>
@@ -566,14 +568,17 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="NUDTalentLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 23</value>
</data>
<data name="GrpTalentLevel.Text" xml:space="preserve">
<value>Talent Level</value>
</data>
<data name="LblStatsDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>179, 17</value>
</data>
<data name="LblStatsDescription.Text" xml:space="preserve">
<value>Set current active Avatar data</value>
</data>
<data name="TPAvatar.Text" xml:space="preserve">
<value>Avatar</value>
<data name="TPStats.Text" xml:space="preserve">
<value>Stats</value>
</data>
<data name="BtnGiveAllChar.Text" xml:space="preserve">
<value>Give All Char</value>
@@ -605,8 +610,8 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="LblAvatarLevel.Text" xml:space="preserve">
<value>Level</value>
</data>
<data name="TPSpawn.Text" xml:space="preserve">
<value>Spawn</value>
<data name="TPAvatar.Text" xml:space="preserve">
<value>Avatar</value>
</data>
<data name="LblClearSpawnLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 17</value>
@@ -623,9 +628,6 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="GrpSpawnRecord.Text" xml:space="preserve">
<value>Records</value>
</data>
<data name="GrpEntityType.Text" xml:space="preserve">
<value>Class</value>
</data>
<data name="RbEntityAnimal.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 21</value>
</data>
@@ -638,6 +640,9 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="RbEntityMonster.Text" xml:space="preserve">
<value>Monster</value>
</data>
<data name="GrpEntityType.Text" xml:space="preserve">
<value>Class</value>
</data>
<data name="LblSpawnDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 17</value>
</data>
@@ -665,11 +670,8 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="NUDEntityLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>146, 216</value>
</data>
<data name="TPQuest.Text" xml:space="preserve">
<value>Quest</value>
</data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>List Filter</value>
<data name="TPSpawn.Text" xml:space="preserve">
<value>Spawn</value>
</data>
<data name="ChkQuestFilterTEST.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 21</value>
@@ -689,6 +691,9 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="ChkQuestFilterHIDDEN.Text" xml:space="preserve">
<value>Hidden</value>
</data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>List Filter</value>
</data>
<data name="BtnFinishQuest.Text" xml:space="preserve">
<value>Finish</value>
</data>
@@ -700,8 +705,8 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
Tip: Many quest require server-side scripting support
Therefore, the quest can be added and finished, but not necessarily work.</value>
</data>
<data name="TPArtifact.Text" xml:space="preserve">
<value>Artifacts</value>
<data name="TPQuest.Text" xml:space="preserve">
<value>Quest</value>
</data>
<data name="BtnAddSubAttr.Text" xml:space="preserve">
<value>+ Add</value>
@@ -760,8 +765,8 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="LblArtifactStars.Text" xml:space="preserve">
<value>Stars</value>
</data>
<data name="TPCustom.Text" xml:space="preserve">
<value>Custom</value>
<data name="TPArtifact.Text" xml:space="preserve">
<value>Artifacts</value>
</data>
<data name="BtnExportCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>533, 216</value>
@@ -787,9 +792,6 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="LblCustomName.Text" xml:space="preserve">
<value>Tag</value>
</data>
<data name="groupBox1.Text" xml:space="preserve">
<value>List</value>
</data>
<data name="LnkResetCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>531, -1</value>
</data>
@@ -799,6 +801,9 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="LnkResetCustomCommands.Text" xml:space="preserve">
<value>Restore</value>
</data>
<data name="groupBox1.Text" xml:space="preserve">
<value>List</value>
</data>
<data name="BtnRemoveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>393, 216</value>
</data>
@@ -820,8 +825,8 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="TxtCustomName.Size" type="System.Drawing.Size, System.Drawing">
<value>267, 23</value>
</data>
<data name="TPHome.Text" xml:space="preserve">
<value>Home</value>
<data name="TPCustom.Text" xml:space="preserve">
<value>Custom</value>
</data>
<data name="LblAbout.Location" type="System.Drawing.Point, System.Drawing">
<value>74, 38</value>
@@ -841,9 +846,6 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="BtnOpenGachaBannerEditor.Text" xml:space="preserve">
<value>Banner Editor</value>
</data>
<data name="GrpSettings.Text" xml:space="preserve">
<value>Settings</value>
</data>
<data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing">
<value>109, 21</value>
</data>
@@ -856,4 +858,10 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="ChkIncludeUID.Text" xml:space="preserve">
<value>Include UID</value>
</data>
<data name="GrpSettings.Text" xml:space="preserve">
<value>Settings</value>
</data>
<data name="TPHome.Text" xml:space="preserve">
<value>Home</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -117,10 +117,22 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="TxtCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>132, 22</value>
</data>
<data name="TxtCommand.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 23</value>
</data>
<data name="BtnCopy.Location" type="System.Drawing.Point, System.Drawing">
<value>450, 22</value>
</data>
<data name="BtnCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>92, 23</value>
</data>
<data name="BtnCopy.Text" xml:space="preserve">
<value>Копировать</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ChkAutoCopy.Location" type="System.Drawing.Point, System.Drawing">
<value>548, 24</value>
</data>
@@ -130,14 +142,23 @@
<data name="ChkAutoCopy.Text" xml:space="preserve">
<value>Авто</value>
</data>
<data name="GrpCommand.Text" xml:space="preserve">
<value>Команда (нажмите и удерживайте Ctrl для автоматического запуска)</value>
<data name="BtnInvokeOpenCommand.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 23</value>
</data>
<data name="BtnInvokeOpenCommand.Text" xml:space="preserve">
<value>Выполнить (F5)</value>
</data>
<data name="TPRemoteCall.Text" xml:space="preserve">
<value>Подключение к БД</value>
<data name="GrpCommand.Text" xml:space="preserve">
<value>Команда (нажмите и удерживайте Ctrl для автоматического запуска)</value>
</data>
<data name="LnkInventoryKamera.Text" xml:space="preserve">
<value>InventoryKamera</value>
</data>
<data name="LblGOODHelp.Text" xml:space="preserve">
<value>Приходите и импортируйте свой официальный архив сервера в GC!</value>
</data>
<data name="ButtonOpenGOODImport.Text" xml:space="preserve">
<value>Импортировать GOOD</value>
</data>
<data name="LblHostTip.Location" type="System.Drawing.Point, System.Drawing">
<value>83, 16</value>
@@ -148,20 +169,17 @@
<data name="LblHostTip.Text" xml:space="preserve">
<value>Убедитесь, что https:// или http:// включены в IP-адрес.</value>
</data>
<data name="GrpServerStatus.Text" xml:space="preserve">
<value>Состояние сервера</value>
</data>
<data name="LnkOpenCommandLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 63</value>
</data>
<data name="LnkOpenCommandLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>123, 17</value>
<value>100, 17</value>
</data>
<data name="LnkOpenCommandLabel.Text" xml:space="preserve">
<value>Открытая команда</value>
<value>OpenCommand</value>
</data>
<data name="LblOpenCommandSupport.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 63</value>
<value>119, 63</value>
</data>
<data name="LblServerVersion.Location" type="System.Drawing.Point, System.Drawing">
<value>119, 29</value>
@@ -179,19 +197,19 @@
<value>Версия игры</value>
</data>
<data name="LblPlayerCountLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 46</value>
<value>7, 46</value>
</data>
<data name="LblPlayerCountLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 17</value>
<value>106, 17</value>
</data>
<data name="LblPlayerCountLabel.Text" xml:space="preserve">
<value>Кол. игроков</value>
<value>Кол-во игроков</value>
</data>
<data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>Удалить ячейку</value>
<data name="GrpServerStatus.Text" xml:space="preserve">
<value>Состояние сервера</value>
</data>
<data name="TPPlayerCheck.Text" xml:space="preserve">
<value>игрок</value>
<data name="LnkRCHelp.Location" type="System.Drawing.Point, System.Drawing">
<value>176, 15</value>
</data>
<data name="LnkRCHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 17</value>
@@ -199,8 +217,17 @@
<data name="LnkRCHelp.Text" xml:space="preserve">
<value>Помощь</value>
</data>
<data name="NUDRemotePlayerId.Location" type="System.Drawing.Point, System.Drawing">
<value>52, 13</value>
</data>
<data name="BtnConnectOpenCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>93, 81</value>
</data>
<data name="BtnConnectOpenCommand.Size" type="System.Drawing.Size, System.Drawing">
<value>110, 23</value>
</data>
<data name="BtnConnectOpenCommand.Text" xml:space="preserve">
<value>Подключить</value>
<value>Подключиться</value>
</data>
<data name="LblVerificationCode.Size" type="System.Drawing.Size, System.Drawing">
<value>31, 17</value>
@@ -208,17 +235,29 @@
<data name="LblVerificationCode.Text" xml:space="preserve">
<value>Код</value>
</data>
<data name="BtnSendVerificationCode.Location" type="System.Drawing.Point, System.Drawing">
<value>176, 42</value>
</data>
<data name="BtnSendVerificationCode.Size" type="System.Drawing.Size, System.Drawing">
<value>110, 23</value>
</data>
<data name="BtnSendVerificationCode.Text" xml:space="preserve">
<value>Отправить код</value>
</data>
<data name="TPConsoleCheck.Text" xml:space="preserve">
<value>консоль</value>
<data name="NUDVerificationCode.Location" type="System.Drawing.Point, System.Drawing">
<value>52, 42</value>
</data>
<data name="LblRemotePlayerId.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 15</value>
</data>
<data name="TPPlayerCheck.Text" xml:space="preserve">
<value>Игрок</value>
</data>
<data name="BtnConsoleConnect.Text" xml:space="preserve">
<value>Подключить</value>
<value>Подключиться (консоль)</value>
</data>
<data name="LblConsoleTip.Font" type="System.Drawing.Font, System.Drawing">
<value>微软雅黑, 8pt, style=Italic</value>
<value>Microsoft YaHei UI, 8pt, style=Italic</value>
</data>
<data name="LblConsoleTip.Location" type="System.Drawing.Point, System.Drawing">
<value>15, 34</value>
@@ -228,7 +267,13 @@
</data>
<data name="LblConsoleTip.Text" xml:space="preserve">
<value>Обратите внимание, что обычные команды в состоянии консоли должны указывать цель
(набор содержит UID)</value>
(установите "Включить UID")</value>
</data>
<data name="TPConsoleCheck.Text" xml:space="preserve">
<value>Консоль</value>
</data>
<data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>Удалить ячейку</value>
</data>
<data name="TxtHost.Location" type="System.Drawing.Point, System.Drawing">
<value>86, 36</value>
@@ -251,32 +296,51 @@
<data name="LblHost.Text" xml:space="preserve">
<value>Хост</value>
</data>
<data name="TPAbout.Text" xml:space="preserve">
<value>Справка</value>
<data name="TPRemoteCall.Text" xml:space="preserve">
<value>Подключение к OpenCommand</value>
</data>
<data name="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>355, 68</value>
<value>552, 170</value>
</data>
<data name="LblSupportDescription.Text" xml:space="preserve">
<value>Grasscutter Tools - основной перевод Юрий Дворецкий
<value>Grasscutter Tools - основной перевод Юрий Дворецкий (с исправлениями от EgorBron)
Это бесплатный проект с открытым исходным кодом.
Если вы считаете, что это полезно для вас,
вы можете дать мне бесплатную звезду.
Если возникла проблема с генерацией команды или
есть запрос на новую функцию,
вы можете написать в Issues на Github.
Спасибо:Dhar_Jinxed
</value>
</data>
<data name="TPManage.Text" xml:space="preserve">
<value>Управлять</value>
<data name="TPAbout.Text" xml:space="preserve">
<value>Справка</value>
</data>
<data name="GrpBanPlayer.Text" xml:space="preserve">
<value>управление запретом</value>
<data name="BtnUnban.Location" type="System.Drawing.Point, System.Drawing">
<value>453, 22</value>
</data>
<data name="BtnUnban.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="BtnUnban.Text" xml:space="preserve">
<value>unban</value>
<value>Разбанить</value>
</data>
<data name="BtnBan.Location" type="System.Drawing.Point, System.Drawing">
<value>367, 22</value>
</data>
<data name="BtnBan.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="BtnBan.Text" xml:space="preserve">
<value>ban</value>
<value>Забанить</value>
</data>
<data name="TxtBanReason.Size" type="System.Drawing.Size, System.Drawing">
<value>111, 23</value>
</data>
<data name="TxtBanReason.Watermark" xml:space="preserve">
<value>причина</value>
<value>Причина</value>
</data>
<data name="NUDBanUID.Location" type="System.Drawing.Point, System.Drawing">
<value>42, 22</value>
@@ -290,8 +354,8 @@
<data name="LblBanUID.Text" xml:space="preserve">
<value>UID</value>
</data>
<data name="GrpAccount.Text" xml:space="preserve">
<value>Управление аккаунтом</value>
<data name="GrpBanPlayer.Text" xml:space="preserve">
<value>Управление банами</value>
</data>
<data name="ChkAccountSetUid.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 21</value>
@@ -335,38 +399,62 @@
<data name="TxtAccountUserName.Size" type="System.Drawing.Size, System.Drawing">
<value>113, 23</value>
</data>
<data name="GrpPermission.Text" xml:space="preserve">
<value>Управление правами</value>
<data name="GrpAccount.Text" xml:space="preserve">
<value>Управление аккаунтом</value>
</data>
<data name="LblPermNewCommandTip.Location" type="System.Drawing.Point, System.Drawing">
<value>212, 54</value>
</data>
<data name="CmbPerm.Location" type="System.Drawing.Point, System.Drawing">
<value>240, 21</value>
<value>212, 21</value>
</data>
<data name="CmbPerm.Size" type="System.Drawing.Size, System.Drawing">
<value>136, 25</value>
<value>130, 25</value>
</data>
<data name="NUDPermUID.Location" type="System.Drawing.Point, System.Drawing">
<value>42, 23</value>
</data>
<data name="NUDPermUID.Size" type="System.Drawing.Size, System.Drawing">
<value>106, 23</value>
</data>
<data name="BtnPermClear.Location" type="System.Drawing.Point, System.Drawing">
<value>454, 48</value>
</data>
<data name="BtnPermClear.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="BtnPermClear.Text" xml:space="preserve">
<value>Очистить</value>
</data>
<data name="BtmPermRemove.Location" type="System.Drawing.Point, System.Drawing">
<value>463, 22</value>
<value>453, 21</value>
</data>
<data name="BtmPermRemove.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 23</value>
<value>80, 23</value>
</data>
<data name="BtmPermRemove.Text" xml:space="preserve">
<value>Удалить</value>
</data>
<data name="BtnPermList.Location" type="System.Drawing.Point, System.Drawing">
<value>353, 48</value>
</data>
<data name="BtnPermList.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 23</value>
</data>
<data name="BtnPermList.Text" xml:space="preserve">
<value>Список прав</value>
</data>
<data name="BtnPermAdd.Location" type="System.Drawing.Point, System.Drawing">
<value>387, 22</value>
<value>367, 21</value>
</data>
<data name="BtnPermAdd.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 23</value>
<value>80, 23</value>
</data>
<data name="BtnPermAdd.Text" xml:space="preserve">
<value>Добавить</value>
</data>
<data name="LblPerm.Location" type="System.Drawing.Point, System.Drawing">
<value>188, 25</value>
<value>160, 25</value>
</data>
<data name="LblPerm.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 17</value>
@@ -380,8 +468,11 @@
<data name="LblPermUID.Text" xml:space="preserve">
<value>UID</value>
</data>
<data name="TPScene.Text" xml:space="preserve">
<value>Сцена</value>
<data name="GrpPermission.Text" xml:space="preserve">
<value>Управление правами</value>
</data>
<data name="TPManage.Text" xml:space="preserve">
<value>Аккаунты</value>
</data>
<data name="ChkIncludeSceneId.Location" type="System.Drawing.Point, System.Drawing">
<value>91, 213</value>
@@ -392,24 +483,6 @@
<data name="ChkIncludeSceneId.Text" xml:space="preserve">
<value>Включить идентификатор сцены</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LblTp.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="LblTp.Font" type="System.Drawing.Font, System.Drawing">
<value>微软雅黑, 8pt</value>
</data>
<data name="LblTp.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 89</value>
</data>
<data name="LblTp.Size" type="System.Drawing.Size, System.Drawing">
<value>337, 90</value>
</data>
<data name="LblTp.Text" xml:space="preserve">
<value>Телепортация
Совет: Вы можете быстро телепортироваться через отметку «рыболовный крючок» на миникарте в игре.
В команде вы можете использовать ~, чтобы указать текущую позицию, и ~100, чтобы указать относительную текущую 100</value>
</data>
<data name="LblTpZ.Location" type="System.Drawing.Point, System.Drawing">
<value>219, 184</value>
</data>
@@ -446,6 +519,7 @@
<data name="LblClimateType.Text" xml:space="preserve">
<value>Погода</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LblSceneDescription.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
@@ -453,11 +527,28 @@
<value>287, 55</value>
</data>
<data name="LblSceneDescription.Text" xml:space="preserve">
<value>Управление сценой
Совет: Большинство сцен не имеют эффекта и не могут быть введены.</value>
<value>Управление сценами.
Подсказка: большинство сцен не имеют видимого эффекта и не могут быть введены здесь.</value>
</data>
<data name="TPItem.Text" xml:space="preserve">
<value>Предметы</value>
<data name="LblTp.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="LblTp.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft YaHei UI, 8pt</value>
</data>
<data name="LblTp.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 84</value>
</data>
<data name="LblTp.Size" type="System.Drawing.Size, System.Drawing">
<value>337, 100</value>
</data>
<data name="LblTp.Text" xml:space="preserve">
<value>Телепортация
Подсказка: вы можете быстро телепортироваться через отметку «рыболовный крючок» на миникарте в игре.
В команде вы можете использовать ~, чтобы указать текущую позицию, и ~100, чтобы указать смещение на 100 относительно текущей позиции</value>
</data>
<data name="TPScene.Text" xml:space="preserve">
<value>Сцена</value>
</data>
<data name="LblClearGiveItemLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 17</value>
@@ -465,12 +556,30 @@
<data name="LblClearGiveItemLogs.Text" xml:space="preserve">
<value>X Очистить</value>
</data>
<data name="BtnSaveGiveItemLog.Location" type="System.Drawing.Point, System.Drawing">
<value>260, 48</value>
</data>
<data name="BtnSaveGiveItemLog.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="BtnSaveGiveItemLog.Text" xml:space="preserve">
<value>√ Запись</value>
</data>
<data name="BtnRemoveGiveItemLog.Location" type="System.Drawing.Point, System.Drawing">
<value>260, 77</value>
</data>
<data name="BtnRemoveGiveItemLog.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="BtnRemoveGiveItemLog.Text" xml:space="preserve">
<value>× Удалить</value>
</data>
<data name="ListGiveItemLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>238, 140</value>
</data>
<data name="GrpGiveItemRecord.Size" type="System.Drawing.Size, System.Drawing">
<value>244, 162</value>
</data>
<data name="GrpGiveItemRecord.Text" xml:space="preserve">
<value>Запись</value>
</data>
@@ -484,10 +593,10 @@
<value>Дроп</value>
</data>
<data name="LblGameItemAmount.Size" type="System.Drawing.Size, System.Drawing">
<value>34, 17</value>
<value>51, 17</value>
</data>
<data name="LblGameItemAmount.Text" xml:space="preserve">
<value>Кол.</value>
<value>Кол-во</value>
</data>
<data name="LblGameItemLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>143, 218</value>
@@ -499,10 +608,10 @@
<value>Уровень</value>
</data>
<data name="NUDGameItemAmout.Location" type="System.Drawing.Point, System.Drawing">
<value>46, 216</value>
<value>63, 216</value>
</data>
<data name="NUDGameItemAmout.Size" type="System.Drawing.Size, System.Drawing">
<value>90, 23</value>
<value>73, 23</value>
</data>
<data name="NUDGameItemLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>209, 215</value>
@@ -513,17 +622,17 @@
<data name="LblGiveCommandDescription.Text" xml:space="preserve">
<value>Дать предмет игроку</value>
</data>
<data name="TPWeapon.Text" xml:space="preserve">
<value>Оружие</value>
<data name="TPItem.Text" xml:space="preserve">
<value>Предметы</value>
</data>
<data name="LblWeaponDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>97, 17</value>
<value>89, 17</value>
</data>
<data name="LblWeaponDescription.Text" xml:space="preserve">
<value>Дайть Оружие</value>
<value>Дать Оружие</value>
</data>
<data name="LblWeaponRefinement.Location" type="System.Drawing.Point, System.Drawing">
<value>190, 218</value>
<value>207, 218</value>
</data>
<data name="LblWeaponRefinement.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 17</value>
@@ -532,13 +641,13 @@
<value>Улучшение</value>
</data>
<data name="LblWeaponAmount.Size" type="System.Drawing.Size, System.Drawing">
<value>34, 17</value>
<value>51, 17</value>
</data>
<data name="LblWeaponAmount.Text" xml:space="preserve">
<value>Кол.</value>
<value>Кол-во</value>
</data>
<data name="LblWeaponLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>102, 218</value>
<value>119, 218</value>
</data>
<data name="LblWeaponLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>26, 17</value>
@@ -547,46 +656,34 @@
<value>Ур.</value>
</data>
<data name="NUDWeaponRefinement.Location" type="System.Drawing.Point, System.Drawing">
<value>271, 216</value>
<value>288, 216</value>
</data>
<data name="NUDWeaponAmout.Location" type="System.Drawing.Point, System.Drawing">
<value>46, 216</value>
<value>63, 216</value>
</data>
<data name="NUDWeaponLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>134, 216</value>
<value>151, 216</value>
</data>
<data name="TPStats.Text" xml:space="preserve">
<value>Статы</value>
<data name="TPWeapon.Text" xml:space="preserve">
<value>Оружие</value>
</data>
<data name="LblResetStatsCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>88, 135</value>
<data name="BtnUnlockStat.Size" type="System.Drawing.Size, System.Drawing">
<value>140, 23</value>
</data>
<data name="LblResetStatsCommand.Size" type="System.Drawing.Size, System.Drawing">
<value>130, 17</value>
<data name="BtnUnlockStat.Text" xml:space="preserve">
<value>Разморозить статы</value>
</data>
<data name="LblResetStatsCommand.Text" xml:space="preserve">
<value>При получении CEP</value>
<data name="BtnLockStat.Text" xml:space="preserve">
<value>Заморозить статы</value>
</data>
<data name="LblResetStatsTip.Location" type="System.Drawing.Point, System.Drawing">
<value>214, 135</value>
</data>
<data name="LblResetStatsTip.Size" type="System.Drawing.Size, System.Drawing">
<value>301, 17</value>
</data>
<data name="LblResetStatsTip.Text" xml:space="preserve">
<value>атрибуты текущего персонажа будут сброшены</value>
<data name="LblStatTip.Text" xml:space="preserve">
<value>Подсказка</value>
</data>
<data name="GrpSetStats.Text" xml:space="preserve">
<value>Статистика</value>
</data>
<data name="LblStatTip.Text" xml:space="preserve">
<value>Совет</value>
</data>
<data name="GrpTalentLevel.Text" xml:space="preserve">
<value>Уровень таланта</value>
</data>
<data name="LnkTalentE.Location" type="System.Drawing.Point, System.Drawing">
<value>299, 24</value>
<value>309, 24</value>
</data>
<data name="LnkTalentE.Size" type="System.Drawing.Size, System.Drawing">
<value>15, 17</value>
@@ -595,7 +692,7 @@
<value>E</value>
</data>
<data name="LnkTalentQ.Location" type="System.Drawing.Point, System.Drawing">
<value>275, 24</value>
<value>285, 24</value>
</data>
<data name="LnkTalentQ.Size" type="System.Drawing.Size, System.Drawing">
<value>18, 17</value>
@@ -607,22 +704,25 @@
<value>178, 24</value>
</data>
<data name="LnkTalentNormalATK.Size" type="System.Drawing.Size, System.Drawing">
<value>91, 17</value>
<value>101, 17</value>
</data>
<data name="LnkTalentNormalATK.Text" xml:space="preserve">
<value>Обычная ATK</value>
<value>Обычная атака</value>
</data>
<data name="NUDTalentLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 23</value>
</data>
<data name="GrpTalentLevel.Text" xml:space="preserve">
<value>Уровень таланта</value>
</data>
<data name="LblStatsDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>316, 17</value>
</data>
<data name="LblStatsDescription.Text" xml:space="preserve">
<value>Установите текущие активные данные персонажа</value>
</data>
<data name="TPAvatar.Text" xml:space="preserve">
<value>Персонаж</value>
<data name="TPStats.Text" xml:space="preserve">
<value>Статы</value>
</data>
<data name="BtnGiveAllChar.Location" type="System.Drawing.Point, System.Drawing">
<value>370, 196</value>
@@ -631,7 +731,7 @@
<value>200, 33</value>
</data>
<data name="BtnGiveAllChar.Text" xml:space="preserve">
<value> Дайте ВСЕХ персонажей</value>
<value> Дать ВСЕХ персонажей</value>
</data>
<data name="LblConstellationTip.Location" type="System.Drawing.Point, System.Drawing">
<value>373, 160</value>
@@ -640,7 +740,7 @@
<value>200, 42</value>
</data>
<data name="LblConstellationTip.Text" xml:space="preserve">
<value>※Вступает в силу только при получении всех ролей.</value>
<value>※Вступает в силу только при получении всех персонажей.</value>
</data>
<data name="LblAvatarConstellation.Location" type="System.Drawing.Point, System.Drawing">
<value>373, 139</value>
@@ -687,8 +787,8 @@
<data name="CmbAvatar.Size" type="System.Drawing.Size, System.Drawing">
<value>115, 25</value>
</data>
<data name="TPSpawn.Text" xml:space="preserve">
<value>Спавн</value>
<data name="TPAvatar.Text" xml:space="preserve">
<value>Персонаж</value>
</data>
<data name="LblClearSpawnLogs.Location" type="System.Drawing.Point, System.Drawing">
<value>192, 218</value>
@@ -702,33 +802,30 @@
<data name="BtnSaveSpawnLog.Location" type="System.Drawing.Point, System.Drawing">
<value>266, 31</value>
</data>
<data name="BtnSaveSpawnLog.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="BtnSaveSpawnLog.Text" xml:space="preserve">
<value>√ Запись</value>
</data>
<data name="BtnRemoveSpawnLog.Location" type="System.Drawing.Point, System.Drawing">
<value>266, 62</value>
</data>
<data name="BtnRemoveSpawnLog.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="BtnRemoveSpawnLog.Text" xml:space="preserve">
<value>× Удалить</value>
</data>
<data name="ListSpawnLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>234, 162</value>
</data>
<data name="GrpSpawnRecord.Size" type="System.Drawing.Size, System.Drawing">
<value>240, 184</value>
</data>
<data name="GrpSpawnRecord.Text" xml:space="preserve">
<value>Запись</value>
</data>
<data name="ListSpawnLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>234, 162</value>
</data>
<data name="GrpEntityType.Location" type="System.Drawing.Point, System.Drawing">
<value>256, 94</value>
</data>
<data name="GrpEntityType.Size" type="System.Drawing.Size, System.Drawing">
<value>97, 117</value>
</data>
<data name="GrpEntityType.Text" xml:space="preserve">
<value>Класс</value>
</data>
<data name="RbEntityAnimal.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 21</value>
</data>
@@ -741,6 +838,15 @@
<data name="RbEntityMonster.Text" xml:space="preserve">
<value>Монстры</value>
</data>
<data name="GrpEntityType.Location" type="System.Drawing.Point, System.Drawing">
<value>256, 94</value>
</data>
<data name="GrpEntityType.Size" type="System.Drawing.Size, System.Drawing">
<value>97, 117</value>
</data>
<data name="GrpEntityType.Text" xml:space="preserve">
<value>Класс</value>
</data>
<data name="LblSpawnDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 17</value>
</data>
@@ -762,11 +868,8 @@
<data name="NUDEntityLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>129, 216</value>
</data>
<data name="TPQuest.Text" xml:space="preserve">
<value>Квест</value>
</data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>Фильтр списка</value>
<data name="TPSpawn.Text" xml:space="preserve">
<value>Спавн</value>
</data>
<data name="ChkQuestFilterTEST.Size" type="System.Drawing.Size, System.Drawing">
<value>52, 21</value>
@@ -786,19 +889,22 @@
<data name="ChkQuestFilterHIDDEN.Text" xml:space="preserve">
<value>Скрытый</value>
</data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>Фильтр списка</value>
</data>
<data name="BtnFinishQuest.Text" xml:space="preserve">
<value>Финиш</value>
<value>Завершить</value>
</data>
<data name="BtnAddQuest.Text" xml:space="preserve">
<value>Добавить</value>
</data>
<data name="LblQuestDescription.Text" xml:space="preserve">
<value>Добавить или завершить задание
Совет: Для многих квестов требуется поддержка сценариев на стороне сервера
Поэтому квест можно добавлять и заканчивать, но не обязательно можно работать</value>
<value>Добавить или завершить задание.
Подсказка: для многих квестов требуется поддержка скриптов на стороне сервера.
Поэтому квест может быть добавлен или закончен, но завершён игроком - вряд ли.</value>
</data>
<data name="TPArtifact.Text" xml:space="preserve">
<value>Артефакт</value>
<data name="TPQuest.Text" xml:space="preserve">
<value>Квест</value>
</data>
<data name="BtnAddSubAttr.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 23</value>
@@ -872,8 +978,8 @@
<data name="LblArtifactStars.Text" xml:space="preserve">
<value>Звезды</value>
</data>
<data name="TPCustom.Text" xml:space="preserve">
<value>Кастомное</value>
<data name="TPArtifact.Text" xml:space="preserve">
<value>Артефакт</value>
</data>
<data name="BtnExportCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>526, 216</value>
@@ -899,17 +1005,17 @@
<data name="LblCustomName.Text" xml:space="preserve">
<value>Метка</value>
</data>
<data name="groupBox1.Text" xml:space="preserve">
<value>Список</value>
</data>
<data name="LnkResetCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>488, -1</value>
</data>
<data name="LnkResetCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
<value>96, 17</value>
<value>97, 17</value>
</data>
<data name="LnkResetCustomCommands.Text" xml:space="preserve">
<value>перезагрузить</value>
<value>Перезагрузить</value>
</data>
<data name="groupBox1.Text" xml:space="preserve">
<value>Список</value>
</data>
<data name="BtnRemoveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>369, 216</value>
@@ -935,8 +1041,8 @@
<data name="TxtCustomName.Size" type="System.Drawing.Size, System.Drawing">
<value>204, 23</value>
</data>
<data name="TPHome.Text" xml:space="preserve">
<value>Главная</value>
<data name="TPCustom.Text" xml:space="preserve">
<value>Кастомное</value>
</data>
<data name="LblAbout.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 41</value>
@@ -962,14 +1068,11 @@
<data name="BtnOpenGachaBannerEditor.Text" xml:space="preserve">
<value>Редактор баннеров</value>
</data>
<data name="GrpSettings.Text" xml:space="preserve">
<value>Настройки</value>
</data>
<data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing">
<value>122, 21</value>
<value>140, 21</value>
</data>
<data name="ChkTopMost.Text" xml:space="preserve">
<value>самый верхний</value>
<value>Последняя версия</value>
</data>
<data name="ChkIncludeUID.Size" type="System.Drawing.Size, System.Drawing">
<value>113, 21</value>
@@ -977,7 +1080,10 @@
<data name="ChkIncludeUID.Text" xml:space="preserve">
<value>Включить UID</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>GrasscutterTools - перевод Юрий Дворецкий</value>
<data name="GrpSettings.Text" xml:space="preserve">
<value>Настройки</value>
</data>
<data name="TPHome.Text" xml:space="preserve">
<value>Главная</value>
</data>
</root>

View File

@@ -129,6 +129,15 @@
<data name="GrpCommand.Text" xml:space="preserve">
<value>命令(按住 Ctrl 自動執行)</value>
</data>
<data name="LnkInventoryKamera.Text" xml:space="preserve">
<value>存檔掃描開源工具</value>
</data>
<data name="LblGOODHelp.Text" xml:space="preserve">
<value>快來把你的官服存檔導入GC吧</value>
</data>
<data name="ButtonOpenGOODImport.Text" xml:space="preserve">
<value>導入GOOD檔案</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LblHostTip.Size" type="System.Drawing.Size, System.Drawing">
<value>206, 17</value>
@@ -281,11 +290,11 @@
<data name="LblWeaponLevel.Text" xml:space="preserve">
<value>等級</value>
</data>
<data name="LblResetStatsCommand.Text" xml:space="preserve">
<value>獲得角色經驗時</value>
<data name="BtnUnlockStat.Text" xml:space="preserve">
<value>解鎖</value>
</data>
<data name="LblResetStatsTip.Text" xml:space="preserve">
<value>當前角色屬性將會重置</value>
<data name="BtnLockStat.Text" xml:space="preserve">
<value>鎖定</value>
</data>
<data name="GrpSetStats.Text" xml:space="preserve">
<value>角色屬性</value>

View File

@@ -18,7 +18,6 @@
**/
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text.RegularExpressions;
using System.Windows.Forms;

View File

@@ -134,7 +134,7 @@
<value>80, 21</value>
</data>
<data name="ChkTopMost.Text" xml:space="preserve">
<value>Always on top</value>
<value>TopMost</value>
</data>
<data name="LblResourcesPath.Size" type="System.Drawing.Size, System.Drawing">
<value>294, 17</value>

View File

@@ -0,0 +1,94 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using Newtonsoft.Json;
namespace GrasscutterTools.GOOD
{
/// <summary>
/// Artifact data representation
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Artifact.cs
/// </summary>
public class Artifact
{
/// <summary>
/// e.g. "GladiatorsFinale"
/// </summary>
[JsonProperty("setKey")]
public string SetName { get; set; }
/// <summary>
/// //e.g. "plume"
/// type SlotKey = "flower" | "plume" | "sands" | "goblet" | "circlet"
/// </summary>
[JsonProperty("slotKey")]
public string GearSlot { get; set; }
/// <summary>
/// 1-5 inclusive
/// </summary>
[JsonProperty("rarity")]
public int Rarity { get; set; }
/// <summary>
/// mainStatKey
/// </summary>
[JsonProperty("mainStatKey")]
public string MainStat { get; set; }
/// <summary>
/// 0-20 inclusive
/// </summary>
[JsonProperty("level")]
public int Level { get; set; }
/// <summary>
/// substats
/// </summary>
[JsonProperty("substats")]
public SubStat[] SubStats { get; set; }
/// <summary>
/// where "" means not equipped.
/// </summary>
[JsonProperty("location")]
public string EquippedCharacter { get; set; }
/// <summary>
/// Whether the artifact is locked in game.
/// </summary>
[JsonProperty("lock")]
public bool Lock { get; set; }
public struct SubStat
{
/// <summary>
/// e.g. "critDMG_"
/// </summary>
[JsonProperty("key")]
public string Stat { get; set; }
/// <summary>
/// e.g. 19.4
/// </summary>
[JsonProperty("value")]
public double Value { get; set; }
}
}
}

View File

@@ -0,0 +1,72 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using Newtonsoft.Json;
namespace GrasscutterTools.GOOD
{
/// <summary>
/// Character data representation
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Character.cs
/// </summary>
public class Character
{
/// <summary>
/// e.g. "Rosaria"
/// </summary>
[JsonProperty("key")]
public string Name { get; set; }
/// <summary>
/// 1-90 inclusive
/// </summary>
[JsonProperty("level")]
public int Level { get; set; }
/// <summary>
/// 0-6 inclusive
/// </summary>
[JsonProperty("constellation")]
public int Constellation { get; set; }
/// <summary>
/// 0-6 inclusive. need to disambiguate 80/90 or 80/80
/// </summary>
[JsonProperty("ascension")]
public int Ascension { get; set; }
/// <summary>
/// does not include boost from constellations. 1-15 inclusive
/// </summary>
[JsonProperty("talent")]
public Talents Talents { get; set; }
}
public struct Talents
{
[JsonProperty("auto")]
public int Auto { get; set; }
[JsonProperty("skill")]
public int Skill { get; set; }
[JsonProperty("burst")]
public int Burst { get; set; }
}
}

View File

@@ -0,0 +1,63 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System.Collections.Generic;
using Newtonsoft.Json;
namespace GrasscutterTools.GOOD
{
/// <summary>
/// Genshin Open Object Description (GOOD)
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/data/GOOD.cs
///
/// Available for
/// https://frzyc.github.io/genshin-optimizer/
/// https://github.com/Andrewthe13th/Inventory_Kamera
/// https://genshin.aspirine.su/
/// https://seelie.me/
/// https://github.com/daydreaming666/Amenoma
/// https://www.mona-uranai.com/
/// https://genshin.mingyulab.com/
/// https://genshin-center.com/
/// </summary>
public class GOOD
{
[JsonProperty("format")]
public string Format { get; set; }
[JsonProperty("version")]
public int Version { get; set; }
[JsonProperty("source")]
public string Source { get; set; }
[JsonProperty("weapons", DefaultValueHandling = DefaultValueHandling.Ignore)]
public List<Weapon> Weapons { get; set; }
[JsonProperty("artifacts", DefaultValueHandling = DefaultValueHandling.Ignore)]
public List<Artifact> Artifacts { get; set; }
[JsonProperty("characters", DefaultValueHandling = DefaultValueHandling.Ignore)]
public List<Character> Characters { get; set; }
[JsonProperty("materials", DefaultValueHandling = DefaultValueHandling.Ignore)]
public Dictionary<string, int> Materials { get; set; }
}
}

View File

@@ -0,0 +1,108 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System.Collections.Generic;
using System.Globalization;
using System.Text.RegularExpressions;
using GrasscutterTools.Game;
using GrasscutterTools.Properties;
namespace GrasscutterTools.GOOD
{
public static class GOODData
{
static GOODData()
{
var cultureInfo = CultureInfo.GetCultureInfo("en-US");
var regex = new Regex(@"[\W]", RegexOptions.Compiled);
Dictionary<string, int> ToGOODMap(ItemMap itemMap)
{
var dic = new Dictionary<string, int>(itemMap.Count);
for (int i = 0; i < itemMap.Count; i++)
{
var name = itemMap.Names[i];
var pascalCase = cultureInfo.TextInfo.ToTitleCase(name);
var nameGOOD = regex.Replace(pascalCase, string.Empty);
dic[nameGOOD] = itemMap.Ids[i];
//dic.Add(nameGOOD, itemMap.Ids[i]);
}
return dic;
}
var artifactCats = new ItemMap(Resources.ResourceManager.GetString("ArtifactCat", cultureInfo));
var avatars = new ItemMap(Resources.ResourceManager.GetString("Avatar", cultureInfo));
var weapons = new ItemMap(Resources.ResourceManager.GetString("Weapon", cultureInfo));
ArtifactCats = ToGOODMap(artifactCats);
Avatars = ToGOODMap(avatars);
Weapons = ToGOODMap(weapons);
}
public static Dictionary<string, int> ArtifactCats { get; private set; }
public static Dictionary<string, string> ArtifactSlotMap = new Dictionary<string, string> {
{"goblet", "1"}, {"plume", "2"}, {"circlet", "3"}, {"flower", "4"}, {"sands", "5"}
};
public static Dictionary<string, int> ArtifactMainAttribution { get; } = new Dictionary<string, int>
{
{ "hp" , 10001 },
{ "hp_" , 10002 },
{ "atk" , 10003 },
{ "atk_" , 10004 },
{ "def" , 10005 },
{ "def_" , 10006 },
{ "enerRech_" , 10007 },
{ "eleMas" , 10008 },
{ "critRate_" , 13007 },
{ "critDMG_" , 13008 },
{ "heal_" , 13009 },
{ "pyro_dmg_" , 15008 },
{ "electro_dmg_" , 15009 },
{ "cryo_dmg_" , 15010 },
{ "hydro_dmg_" , 15011 },
{ "anemo_dmg_" , 15012 },
{ "geo_dmg_" , 15013 },
{ "dendro_dmg_" , 15014 },
{ "physical_dmg_", 15015 },
};
public static Dictionary<string, int> ArtifactSubAttribution { get; } = new Dictionary<string, int>
{
{ "hp" , 102 },
{ "hp_" , 103 },
{ "atk" , 105 },
{ "atk_" , 106 },
{ "def" , 108 },
{ "def_" , 109 },
{ "critRate_", 120 },
{ "critDMG_" , 122 },
{ "enerRech_", 123 },
{ "eleMas" , 124 },
};
public static Dictionary<string, int> Avatars { get; private set; }
public static Dictionary<string, int> Weapons { get; private set; }
}
}

View File

@@ -0,0 +1,68 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System.ComponentModel;
using Newtonsoft.Json;
namespace GrasscutterTools.GOOD
{
/// <summary>
/// Weapon data representation
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Weapon.cs
/// </summary>
public class Weapon
{
/// <summary>
/// e.g. "CrescentPike"
/// </summary>
[JsonProperty("key")]
public string Name { get; set; }
/// <summary>
/// 1-90 inclusive
/// </summary>
[JsonProperty("level")]
public int Level { get; set; }
/// <summary>
/// 0-6 inclusive. need to disambiguate 80/90 or 80/80
/// </summary>
[JsonProperty("ascension")]
public int AscensionLevel { get; set; }
/// <summary>
/// 1-5 inclusive
/// </summary>
[JsonProperty("refinement")]
public int RefinementLevel { get; set; }
/// <summary>
/// where "" means not equipped.
/// </summary>
[JsonProperty("location")]
[DefaultValue("")]
public string EquippedCharacter { get; set; }
/// <summary>
/// Whether the weapon is locked in game.
/// </summary>
[JsonProperty("lock")]
public bool Lock { get; set; }
}
}

View File

@@ -0,0 +1,112 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System;
namespace GrasscutterTools.Game
{
/// <summary>
/// 命令版本
///
/// 用法:
/// ver = Version.TryParse(input, out Version current) ? new CommandVersion(current) : CommandVersion.Latest();
///
/// </summary>
internal class CommandVersion
{
/// <summary>
/// 初始化当前版本
/// </summary>
/// <param name="current"></param>
public CommandVersion(Version current)
{
this.current = current ?? throw new ArgumentNullException(nameof(current));
}
private Version current;
/// <summary>
/// 当前命令版本
/// </summary>
public Version Current
{
get => current;
set
{
if (current != value)
{
current = value;
OnVersionChanged();
}
}
}
/// <summary>
/// 选中版本改变事件
/// </summary>
public event EventHandler VersionChanged;
/// <summary>
/// 触发版本更改事件
/// </summary>
private void OnVersionChanged() => VersionChanged?.Invoke(this, EventArgs.Empty);
/// <summary>
/// 当前支持的最新版本 - 当未选择版本时,默认为最新版本
/// </summary>
public static CommandVersion Latest() => new CommandVersion(List[List.Length - 1]);
#region - Version List -
// 忽略更早以前的版本
/// <summary>
/// v1.2.1 2022/6/18
/// git 30c7bb94439a123417a6a1e0116acd3c40f2d115
/// </summary>
public static readonly Version V1_2_1 = new Version(1, 2, 1);
/// <summary>
/// v1.2.1 -> v1.2.2 2022/6/22
/// git aa43943025fefcda9739c9fcf242e67f1a7b83b4
/// </summary>
public static readonly Version V1_2_2 = new Version(1, 2, 2);
/// <summary>
/// v1.2.2 -> v1.2.3 2022/7/21
/// git a07b3f21e6fbeb9abfad8862d6fa0dc4a1c3c1a3
/// </summary>
public static readonly Version V1_2_3 = new Version(1, 2, 3);
// More...
/// <summary>
/// v1.2.3 -> v1.2.4 2022/7/21
/// git hash
/// </summary>
//public static readonly Version V1_2_4 = new Version(1, 2, 4);
public static Version[] List { get; } = new Version[] {
V1_2_1,
V1_2_2,
V1_2_3,
//V1_2_4,
};
#endregion - Version List -
}
}

View File

@@ -16,8 +16,6 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System.ComponentModel;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

View File

@@ -38,7 +38,7 @@ namespace GrasscutterTools.Game
if (si > 0 && int.TryParse(line.Substring(0, si).Trim(), out int id))
{
var name = line.Substring(si + 1).Trim();
if (!string.IsNullOrEmpty(name))
if (!string.IsNullOrEmpty(name) && name != "null")
{
//IdMap[id] = name;
//NameMap[name] = id;

View File

@@ -46,7 +46,7 @@ namespace GrasscutterTools.Game
ManualTextMap = new Dictionary<string, string>();
while (reader.Read())
{
if (reader.TokenType == JsonToken.PropertyName && (string)reader.Value == "TextMapId")
if (reader.TokenType == JsonToken.PropertyName && ((string)reader.Value == "TextMapId" || (string)reader.Value == "textMapId"))
{
var textMapId = reader.ReadAsString();
reader.Read();

View File

@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props" Condition="Exists('..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props')" />
<Import Project="..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -40,160 +38,21 @@
<PropertyGroup>
<ApplicationIcon>Resources\IconGrasscutter.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup />
<ItemGroup>
<Reference Include="Costura, Version=5.7.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Costura.Fody.5.7.0\lib\netstandard1.0\Costura.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Framework" />
<Reference Include="Microsoft.Build.Utilities.v4.0" />
<Reference Include="Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
<HintPath>Resources\Newtonsoft.Json.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
<Private>False</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.AppContext, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Console, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Console.4.3.0\lib\net46\System.Console.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.Tracing, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Globalization.Calendars, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.IO.Compression.ZipFile, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.FileSystem.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Linq, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Linq.Expressions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Reflection, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Extensions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.InteropServices, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Text.RegularExpressions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Windows.Forms.DataVisualization" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Forms.DataVisualization" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Controls\TextBoxXP.cs">
@@ -225,6 +84,7 @@
<Compile Include="Forms\FormTextMapBrowser.Designer.cs">
<DependentUpon>FormTextMapBrowser.cs</DependentUpon>
</Compile>
<Compile Include="Game\CommandVersion.cs" />
<Compile Include="Game\Gacha\GachaBanner2.cs" />
<Compile Include="Game\GameCommand.cs" />
<Compile Include="Game\Gacha\BannerType.cs" />
@@ -233,7 +93,11 @@
<Compile Include="Game\ItemMap.cs" />
<Compile Include="Game\SetStatsCommand.cs" />
<Compile Include="Game\TextMapData.cs" />
<Compile Include="Github\ReleaseAPI.cs" />
<Compile Include="GOOD\GOOD.cs" />
<Compile Include="GOOD\Artifact.cs" />
<Compile Include="GOOD\Character.cs" />
<Compile Include="GOOD\GOODData.cs" />
<Compile Include="GOOD\Weapon.cs" />
<Compile Include="OpenCommand\OpenCommandAPI.cs" />
<Compile Include="MultiLanguage.cs" />
<Compile Include="Program.cs" />
@@ -243,7 +107,10 @@
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="Settings.cs" />
<Compile Include="Utils\ArtifactUtils.cs" />
<Compile Include="Utils\HttpHelper.cs" />
<Compile Include="Utils\ReleaseAPI.cs" />
<EmbeddedResource Include="Forms\FormGachaBannerEditor2.en-us.resx">
<DependentUpon>FormGachaBannerEditor2.cs</DependentUpon>
</EmbeddedResource>
@@ -281,6 +148,7 @@
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormMain.zh-TW.resx">
<DependentUpon>FormMain.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormTextMapBrowser.en-US.resx">
<DependentUpon>FormTextMapBrowser.cs</DependentUpon>
@@ -329,8 +197,6 @@
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="packages.config" />
<None Include="Properties\app.manifest" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
@@ -363,6 +229,7 @@
<Content Include="Resources\en-us\Quest.txt" />
<Content Include="Resources\en-us\Scene.txt" />
<Content Include="Resources\en-us\Weapon.txt" />
<None Include="Resources\Newtonsoft.Json.dll" />
<Content Include="Resources\ru-ru\Animal.txt" />
<Content Include="Resources\ru-ru\Artifact.txt" />
<Content Include="Resources\ru-ru\ArtifactCat.txt" />
@@ -419,24 +286,11 @@
<ProductName>Microsoft .NET Framework 4.8 %28x86 和 x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Resource.Embedder">
<Version>2.2.0</Version>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props'))" />
<Error Condition="!Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets'))" />
<Error Condition="!Exists('..\packages\Fody.6.6.1\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.6.1\build\Fody.targets'))" />
<Error Condition="!Exists('..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props'))" />
<Error Condition="!Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets'))" />
</Target>
<Import Project="..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets" Condition="Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" />
<Import Project="..\packages\Fody.6.6.1\build\Fody.targets" Condition="Exists('..\packages\Fody.6.6.1\build\Fody.targets')" />
<Import Project="..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
</Project>

View File

@@ -23,14 +23,20 @@ namespace GrasscutterTools
{
internal static class MultiLanguage
{
public static string DefaultLanguage = "zh-CN";
/// <summary>
/// 语言名称列表
/// </summary>
public static readonly string[] LanguageNames = new string[] { "简体中文", "繁體中文", "English", "Русский" };
/// <summary>
/// 语言代码列表
/// </summary>
public static readonly string[] Languages = new string[] { "zh-CN", "zh-TW", "en-US", "ru-RU" };
public static void SetDefaultLanguage(string lang)
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang);
DefaultLanguage = lang;
Properties.Settings.Default.DefaultLanguage = lang;
Properties.Settings.Default.Save();
}
/// <summary>

View File

@@ -17,6 +17,8 @@
*
**/
using System;
using System.Globalization;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Windows.Forms;
@@ -27,6 +29,33 @@ namespace GrasscutterTools
{
internal static class Program
{
static Program()
{
AppDomain.CurrentDomain.AssemblyResolve += OnResolveAssembly;
}
private static Assembly OnResolveAssembly(object sender, ResolveEventArgs args)
{
//var executingAssembly = Assembly.GetExecutingAssembly();
//var assemblyName = new AssemblyName(args.Name);
//var path = assemblyName.Name + ".dll";
//if (assemblyName.CultureInfo.Equals(CultureInfo.InvariantCulture) == false)
// path = $@"{assemblyName.CultureInfo}\{path}";
//using (var stream = executingAssembly.GetManifestResourceStream(path))
//{
// if (stream == null) return null;
// var assemblyRawBytes = new byte[stream.Length];
// stream.Read(assemblyRawBytes, 0, assemblyRawBytes.Length);
// return Assembly.Load(assemblyRawBytes);
//}
// 手工加载嵌入的dll文件
if (new AssemblyName(args.Name).Name == "Newtonsoft.Json")
return Assembly.Load(Resources.Newtonsoft_Json);
return null;
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
@@ -43,6 +72,10 @@ namespace GrasscutterTools
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
// 初始化语言环境
if (!string.IsNullOrEmpty(Settings.Default.DefaultLanguage))
MultiLanguage.SetDefaultLanguage(Settings.Default.DefaultLanguage);
Application.Run(new Forms.FormMain());
}

View File

@@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("GrasscutterTools")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyDescription("Grasscutter Command Generator")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyCompany("jie65535")]
[assembly: AssemblyProduct("GrasscutterTools")]
[assembly: AssemblyCopyright("Copyright © jie65535 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyTrademark("jie65535")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
@@ -19,7 +19,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("b26333ff-5560-4cba-af3c-4b80db6f8025")]
//[assembly: Guid("b26333ff-5560-4cba-af3c-4b80db6f8025")]
// 程序集的版本信息由下列四个值组成:
//
@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.5.3")]
[assembly: AssemblyFileVersion("1.0.0")]
[assembly: AssemblyVersion("1.6.5")]
[assembly: AssemblyFileVersion("1.6.5")]

View File

@@ -67,25 +67,6 @@ namespace GrasscutterTools.Properties {
///28010104:将军蟹
///28010105:薄红蟹
///28010106:螃蟹
///28020101: 雪狐
///28020102: 红狐
///28020103: 送礼雪狐
///28020104: 送大礼雪狐
///28020105: 雪狐
///28020106: 红狐
///28020201: 松鼠
///28030101: 蓝翎鹭
///28030102: 菫鹮
///28030201: 茶羽鹰
///28030202: 棕翎鹰
///28030203: 石鸢
///28030204: 白练鹰
///28050101: 风晶蝶
///28050102: 岩晶蝶
///28050103: 冰晶蝶
///28050104: 雷晶蝶
///28050105: 珊瑚蝶
///28050301: 吉光虫
///28010201:蓝角蜥
///28010202:红角蜥
///28010203:绿角蜥
@@ -95,7 +76,28 @@ namespace GrasscutterTools.Properties {
///28010207:嗜髓蜥
///28010301:青蛙
///28010302:泥蛙
///2801030 [字符串的其余部分被截断]&quot;; 的本地化字符串。
///28010303:蓝蛙
///28010401:藤纹陆鳗鳗
///28010402:深海鳗鳗
///28010403:赤鳍陆鳗鳗
///28020101:雪狐
///28020102:红狐
///28020103:送礼雪狐
///28020104:送大礼雪狐
///28020105:雪狐
///28020106:红狐
///28020201:松鼠
///28020301:野林猪
///28020302:小野林猪
///28020303:雪猪
///28020304:「大雪猪王」
///28020305:冰冻雪猪
///28020306:雪猪
///28020307:野林猪
///28020308:冰冻雪猪
///28020309:「大雪猪王」
///28020401:北地犬
/// [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Animal {
get {
@@ -104,46 +106,46 @@ namespace GrasscutterTools.Properties {
}
/// <summary>
/// 查找类似 51110: 异国之盏
///51111: 异国之盏
///51112: 异国之盏
///51113: 异国之盏
///51114: 异国之盏
///51120: 归乡之羽
///51121: 归乡之羽
///51122: 归乡之羽
///51123: 归乡之羽
///51124: 归乡之羽
///51130: 感别之冠
///51131: 感别之冠
///51132: 感别之冠
///51133: 感别之冠
///51134: 感别之
///51140: 故人之心
///51141: 故人之心
///51142: 故人之心
///51143: 故人之心
///51144: 故人之心
///51150: 逐光之石
///51151: 逐光之石
///51152: 逐光之石
///51153: 逐光之石
///51154: 逐光之石
///51210: 异国之盏
///51211: 异国之盏
///51212: 异国之盏
///51213: 异国之盏
///51214: 异国之盏
///51220: 归乡之羽
///51221: 归乡之羽
///51222: 归乡之
///51223: 归乡之
///51224: 归乡之羽
///51230: 感别之冠
///51231: 感别之冠
///51232: 感别之冠
///51233: 感别之冠
///51234 [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// 查找类似 20412:迷误者之灯
///20413:迷误者之灯
///20422:翠蔓的智者
///20423:翠蔓的智者
///20432:月桂的宝冠
///20433:月桂的宝冠
///20442:迷宫的游人
///20443:迷宫的游人
///20452:贤智的定期
///20453:贤智的定期
///20513:迷误者之灯
///20514:迷误者之灯
///20523:翠蔓的智者
///20524:翠蔓的智者
///20533:月桂的宝
///20534:月桂的宝冠
///20543:迷宫的游人
///20544:迷宫的游人
///20553:贤智的定期
///20554:贤智的定期
///21412:如蜜的终宴
///21413:如蜜的终宴
///21422:裁断的翎羽
///21423:裁断的翎羽
///21432:沙王的投影
///21433:沙王的投影
///21442:梦中的铁花
///21443:梦中的铁花
///21452:沉金的岁月
///21453:沉金的岁月
///21513:如蜜的终宴
///21514:如蜜的终宴
///21523:裁断的翎
///21524:裁断的翎
///21533:沙王的投影
///21534:沙王的投影
///21543:梦中的铁花
///21544:梦中的铁花
///21553:沉金的岁月
///21554 [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Artifact {
get {
@@ -152,7 +154,9 @@ namespace GrasscutterTools.Properties {
}
/// <summary>
/// 查找类似 51: 行者之心
/// 查找类似 20:深林的记忆
///21:饰金之梦
///51:行者之心
///52:勇士之心
///53:守护之心
///54:奇迹
@@ -302,40 +306,60 @@ namespace GrasscutterTools.Properties {
}
/// <summary>
/// 查找类似 10000001 : 凯特
///10000002 : 神里绫华
///10000003 : 琴
///10000005 : 旅行者
///10000006 : 丽莎
///10000007 : 旅行者
///10000014 : 芭芭拉
///10000015 : 凯亚
///10000016 : 迪卢克
///10000020 : 雷泽
///10000021 : 安柏
///10000022 : 温迪
///10000023 : 香菱
///10000024 : 北斗
///10000025 : 行秋
///10000026 : 魈
///10000027 : 凝光
///10000029 : 可莉
///10000030 : 钟离
///10000031 : 菲谢尔
///10000032 : 班尼特
///10000033 : 达达利亚
///10000034 : 诺艾尔
///10000035 : 七七
///10000036 : 重云
///10000037 : 甘雨
///10000038 : 阿贝多
///10000039 : 迪奥
///10000041 : 莫娜
///10000042 : 刻晴
///10000043 : 砂糖
///10000044 : 辛焱
///10000045 : 罗莎莉亚
///1000 [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// 查找类似 1002:神里绫华
///1003:琴
///1005:空
///1006:丽莎
///1007:荧
///1014:芭芭拉
///1015:凯亚
///1016:迪卢克
///1020:雷泽
///1021:安柏
///1022:温迪
///1023:香菱
///1024:北斗
///1025:行秋
///1026:魈
///1027:凝光
///1029:可莉
///1030:钟离
///1031:菲谢尔
///1032:班尼特
///1033:达达利亚
///1034:诺艾尔
///1035:七七
///1036:重云
///1037:甘雨
///1038:阿贝多
///1039:迪奥娜
///1041:莫
///1042:刻晴
///1043:砂糖
///1044:辛焱
///1045:罗莎莉亚
///1046:胡桃
///1047:枫原万叶
///1048:烟绯
///1049:宵宫
///1050:托马
///1051:优菈
///1052:雷电将军
///1053:早柚
///1054:珊瑚宫心海
///1055:五郎
///1056:九条裟罗
///1057:荒泷一斗
///1058:八重神子
///1059:鹿野院平藏
///1060:夜兰
///1062:埃洛伊
///1063:申鹤
///1064:云堇
///1065:久岐忍
///1066:神里绫人
///1067:柯莱
///1068:多 [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Avatar {
get {
@@ -484,21 +508,25 @@ namespace GrasscutterTools.Properties {
/// <summary>
/// 查找类似 无敌
////prop godmode on
////prop god on
///无限体力
////prop nostamina on
////prop ns on
///无限能量
////prop unlimitedenergy on
////prop ue on
///升到60级
////give 102 x1880200
///设置世界等级
////prop worldlevel 8
////prop wl 8
///点亮地图
////prop unlockmap 1
///一键解锁深渊
////prop abyss 12
////prop ut 12
///设置纪行等级
////prop bp 50
///设置好感等级
////setfetterlevel 10
///奶
////heal
////h
///自杀
////kill 0
///全队充能
@@ -513,8 +541,8 @@ namespace GrasscutterTools.Properties {
////give 224 x10000
///十万原石
////give 201 x100000
///十万摩拉
////give 202 x100000
///一亿摩拉
////give 202 x100000000
///重载配置
////reload
///重登
@@ -524,11 +552,9 @@ namespace GrasscutterTools.Properties {
///清空全部角色命之座(需重登)
////resetconst all
///清空背包
////clear all
////clear all lv90 r5 5*
///清空武器
////clear wp
///清空圣遗物
////clea [字符串的其余部分被截断]&quot;; 的本地化字符串。
//// [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string CustomCommands {
get {
@@ -580,7 +606,11 @@ namespace GrasscutterTools.Properties {
///061:鬼门斗宴
///065:出尘入世
///071:华紫樱绯
///076: 苍流踏花 的本地化字符串。
///076:苍流踏花
///081:素霓伣天
///091:提纳里池(非原名)
///092:钟离池(非原名)
///093:猎人之径池(非原名) 的本地化字符串。
/// </summary>
internal static string GachaBennerPrefab {
get {
@@ -588,6 +618,33 @@ namespace GrasscutterTools.Properties {
}
}
/// <summary>
/// 查找类似 导入成功! 的本地化字符串。
/// </summary>
internal static string GOODImportSuccess {
get {
return ResourceManager.GetString("GOODImportSuccess", resourceCulture);
}
}
/// <summary>
/// 查找类似 是否导入 的本地化字符串。
/// </summary>
internal static string GOODImportText {
get {
return ResourceManager.GetString("GOODImportText", resourceCulture);
}
}
/// <summary>
/// 查找类似 导入GOOD档案 的本地化字符串。
/// </summary>
internal static string GOODImportTitle {
get {
return ResourceManager.GetString("GOODImportTitle", resourceCulture);
}
}
/// <summary>
/// 查找类似 帮助 的本地化字符串。
/// </summary>
@@ -640,8 +697,6 @@ namespace GrasscutterTools.Properties {
/// <summary>
/// 查找类似 101:角色经验
///102:冒险阅历
///103 : 星尘
///104 : 星辉
///105:好感经验
///106:原粹树脂
///107:传说钥匙
@@ -678,9 +733,18 @@ namespace GrasscutterTools.Properties {
///138:完璧玉符
///139:降魔玉符
///140:幽蕴砺石
///141:花簇簇的漂流物
///142:战策碎珀
///143:巧思手记
///144:随想草稿
///145:古铁钱
///201:原石
///2 [字符串的其余部分被截断]&quot;; 的本地化字符串。
///202:摩拉
///203:创世结晶
///204:洞天宝钱
///314:声望经验·稻妻
///315:声望经验·蒙德
///316:声 [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Item {
get {
@@ -689,36 +753,38 @@ namespace GrasscutterTools.Properties {
}
/// <summary>
/// 查找类似 21010101: 丘丘人
///21020101: 木盾丘丘暴徒
///21020201: 火斧丘丘暴徒
///21020202: 火斧丘丘暴徒
///21020301: 岩盾丘丘暴徒
///21020401: 丘丘霜铠王
///21020501: 丘丘岩盔王
///21020601: 冰盾丘丘暴徒
///21020701: 雷斧丘丘暴徒
///21020703: 雷斧丘丘暴徒
///21020801: 丘丘雷兜王
///20010101: 草史莱姆
/// 查找类似 20010101:草史莱姆
///20010201:大型草史莱姆
///20010202:大型草史莱姆
///20010301:风史莱姆
///20010302:风史莱姆
///20010401:大型风史莱姆
///20010402:大型风史莱姆
///20010403:大型风史莱姆
///29010101: 裂空的魔龙
///29010102: 裂空的魔龙
///29010103: 裂空的魔龙
///29010104: 裂空的魔龙
///29020101: 北风的王狼,奔狼的领主
///29020102: 北风的王狼,奔狼的领主
///29030103: 「公子」
///29030106: 「公子」
///29040101: 若陀龙王
///29040102: 若陀龙王
///29040103: 若陀龙王
///29040104: 若陀龙王
///290401 [字符串的其余部分被截断]&quot;; 的本地化字符串。
///20010501:雷史莱姆
///20010502:雷史莱姆
///20010601:大型雷史莱姆
///20010602:大型雷史莱姆
///20010604:大型雷史莱姆
///20010701:变异雷史莱姆
///20010702:变异雷史莱姆
///20010703:变异雷史莱姆
///20010801:冰史莱姆
///20010802:冰史莱姆
///20010803:冰史莱姆
///20010901:大型冰史莱姆
///20010902:大型冰史莱姆
///20010903:大型冰史莱姆
///20010904:大型冰史莱姆
///20011001:水史莱姆
///20011002:水史莱姆
///20011101:大型水史莱姆
///20011102:大型水史莱姆
///20011103:大型水史莱姆
///20011201:火史莱姆
///20011202:火史莱姆
///20011203:火史莱姆
///20011301:大型 [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Monster {
get {
@@ -726,6 +792,16 @@ namespace GrasscutterTools.Properties {
}
}
/// <summary>
/// 查找 System.Byte[] 类型的本地化资源。
/// </summary>
internal static byte[] Newtonsoft_Json {
get {
object obj = ResourceManager.GetObject("Newtonsoft_Json", resourceCulture);
return ((byte[])(obj));
}
}
/// <summary>
/// 查找类似 版本名:{0}
///更新时间:{1}
@@ -793,33 +869,29 @@ namespace GrasscutterTools.Properties {
///player.**
///server.*
///server.**
///player.changescene
///permission
///player.clearinv
///player.clearinv.others
///player.enterdungeon
///player.enterdungeon.others
///player.give
///player.giveall
///player.giveart
///player.givechar
///player.godmode
///player.give.others
///player.heal
///player.heal.others
///player.killcharacter
///player.killcharacter.others
///player.quest
///player.quest.others
///player.resetconstellation
///player.resetconstellation.others
///player.setfetterlevel
///player.setfetterlevel.others
///player.setprop
///player.setprop.others
///player.setstats
///player.setstats.others
///player.settalent
///player.setworldlevel
///player.teleport
///player.tpall
///player.weather
///server.broadcast
///server.coop
///server.drop
///server.kick
///server.killall
///server.reload
///server.resetshop
///server.sendmail
///server.sendmessage
///p [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Permissions {
get {
@@ -837,27 +909,20 @@ namespace GrasscutterTools.Properties {
}
/// <summary>
/// <summary>
/// 查找类似 30302 : 女神像解锁$HIDDEN -
///30303 : 女神像解锁$HIDDEN -
///30304 : 女神像解锁$HIDDEN -
///30305 : 女神像解锁$HIDDEN -
///30306 : 女神像解锁$HIDDEN -
///30307 : 女神像解锁$HIDDEN -
///30308 : 女神像解锁$HIDDEN -
///30309 : 女神像解锁$HIDDEN -
///30310 : 女神像解锁$HIDDEN -
///30311 : 女神像解锁$HIDDEN -
///30312 : 女神像解锁$HIDDEN -
///30313 : 女神像解锁$HIDDEN -
///30314 : 女神像解锁$HIDDEN -
///30315 : 女神像解锁$HIDDEN -
///30316 : 女神像解锁$HIDDEN -
///30317 : 女神像解锁$HIDDEN -
///30600 : 昔日的风 - 在庙宇门口跟安柏见面
///30601 : 昔日的风 - 与安柏对话
///30602 : 昔日的风 - 进入庙宇
///30603 : 昔日的风 - 探索庙宇深处
/// 查找类似 30302:女神像解锁$HIDDEN - [N/A] 362713143
///30303:女神像解锁$HIDDEN - [N/A] 715511863
///30304:女神像解锁$HIDDEN - [N/A] 163018255
///30305:女神像解锁$HIDDEN - [N/A] 3694648119
///30306:女神像解锁$HIDDEN - [N/A] 3223799591
///30307:女神像解锁$HIDDEN - [N/A] 1232757671
///30308:女神像解锁$HIDDEN - [N/A] 3056513767
///30309:女神像解锁$HIDDEN - [N/A] 2426653367
///30310:女神像解锁$HIDDEN - [N/A] 2003131071
///30311:女神像解锁$HIDDEN - [N/A] 105277231
///30312:女神像解锁$HIDDEN - [N/A] 3391806215
///30313:女神像解锁$HIDDEN - [N/A] 1357500887
///30314:女神像解锁$HIDDEN - [N/A] 3054344935
///30315:女神像 [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Quest {
get {
@@ -884,38 +949,34 @@ namespace GrasscutterTools.Properties {
}
/// <summary>
/// <summary>
/// 查找类似 1 : 提瓦特
/// 查找类似 1: BigWorld_LevelStreaming
///2: BigWorld_LevelStreaming
///3: 提瓦特
///3 : 提瓦特
///4: 金苹果群岛(1.6)
///5: 渊下宫
///6: 层岩巨渊·地下矿区
///7: 三界路飨祭
///7 : 三界路飨祭
///2001 : 罗浮洞
///2002 : 翠黛峰
///2003 : 清琼岛
///2004 : 绘绮庭
///2201 : 尘歌壶室内_蒙德
///2202 : 尘歌壶室内_璃月
///2203 : 尘歌壶室内_稻妻
///20008: 深入狼之殿
///20008: 丘丘人大本营(test)
///20008: 丘丘人巢穴(test)
///20007: 小岩洞据点(test)
///20007: 小岩洞据点(test)
///20007: 小岩洞秘境(test)
///20006: 遗迹遇险点(test)
///20006: 丘丘人小据点(test)
///20006: 丘丘人大据点(test)
///1006: 密林、废墟与龙之泪
///1017: 壶中天
///1019: 洞天云海地城玩法测试(test)
///1011: 角色战斗测试(test)
///9: 金苹果群岛(2.8)
///1001: 移动平台性能测试(test)
///1001: 移动平台性能测试(test)
///50003: 战斗性能测试(test)
///50004: 电桩电源白盒(test)
///1002: ClimbTest2
///1003: TheBigWorld
///1004: Knight_Inside_Test
///1005: ChurchSteal
///1006: 密林、废墟与龙之泪
///1008: ChurchLobby
///1009: AngelShare
///1011: 角色战斗测试(test)
///1013: SneakAdvancedTest
///1015: 飞翔是勇气的奖励
///1016: 飞翔是勇气的奖励
///1017: 壶中天
///1018: Chateau
///1019: 洞天云海地城玩法测试(test)
///1023: Level_Yurenzhong
///1024: 黑夜循环地城(test)
///1030: TestIntercept_LiYue
///1031: 爬塔丘丘人模板(test)
///1032: 云海白 [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Scene {
get {
@@ -1000,11 +1061,17 @@ namespace GrasscutterTools.Properties {
///11413:腐殖之剑
///11414:天目影打刀
///11415:辰砂之纺锤
///11416:笼钓瓶一心
///11419:「一心传」名刀
///11420:「一心传」名刀
///11421:「一心传」名刀
///11501:风鹰剑
///11502:天空之刃
///11503:苍古自由之誓
///11504:斫峰之刃
///11505:磐岩结绿
///11506:磐岩结绿
///11507:凭虚
///11509:雾切之回光
///11510:波乱月白经津
///12101:训练大剑
@@ -1014,7 +1081,7 @@ namespace GrasscutterTools.Properties {
///12303:白铁大剑
///12304:石英大剑
///12305:以理服人
///12305 : 以理服人
///12306: [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Weapon {
get {

View File

@@ -255,4 +255,14 @@ Do you want to check for updates? Selecting No will no longer remind you of this
<data name="WeaponColor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WeaponColor.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="GOODImportText" xml:space="preserve">
<value>Do you wish to import </value>
</data>
<data name="GOODImportTitle" xml:space="preserve">
<value>Import GOOD dump file</value>
</data>
<data name="GOODImportSuccess" xml:space="preserve">
<value>Import success!</value>
</data>
</root>

View File

@@ -184,6 +184,9 @@
<data name="GachaBennerPrefab" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\GachaBennerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="SettingSaveError" xml:space="preserve">
<value>保存设置时异常:</value>
</data>
<data name="Help" xml:space="preserve">
<value>帮助</value>
</data>
@@ -243,9 +246,6 @@
<data name="SettingLoadError" xml:space="preserve">
<value>加载设置时异常:</value>
</data>
<data name="SettingSaveError" xml:space="preserve">
<value>保存设置时异常:</value>
</data>
<data name="Tips" xml:space="preserve">
<value>提示</value>
</data>
@@ -264,4 +264,16 @@
<data name="WeaponColor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WeaponColor.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="GOODImportText" xml:space="preserve">
<value>是否导入 </value>
</data>
<data name="GOODImportTitle" xml:space="preserve">
<value>导入GOOD档案</value>
</data>
<data name="GOODImportSuccess" xml:space="preserve">
<value>导入成功!</value>
</data>
<data name="Newtonsoft_Json" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Newtonsoft.Json.dll;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@@ -252,4 +252,13 @@
<data name="WeaponColor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WeaponColor.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="GOODImportText" xml:space="preserve">
<value>是否導入 </value>
</data>
<data name="GOODImportTitle" xml:space="preserve">
<value>導入GOOD檔案</value>
</data>
<data name="GOODImportSuccess" xml:space="preserve">
<value>導入成功!</value>
</data>
</root>

View File

@@ -12,7 +12,7 @@ namespace GrasscutterTools.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.2.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -49,7 +49,7 @@ namespace GrasscutterTools.Properties {
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("zh-CN")]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string DefaultLanguage {
get {
return ((string)(this["DefaultLanguage"]));
@@ -133,7 +133,7 @@ namespace GrasscutterTools.Properties {
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("1.2.2")]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string CommandVersion {
get {
return ((string)(this["CommandVersion"]));

View File

@@ -9,7 +9,7 @@
<Value Profile="(Default)">10001</Value>
</Setting>
<Setting Name="DefaultLanguage" Type="System.String" Scope="User">
<Value Profile="(Default)">zh-CN</Value>
<Value Profile="(Default)" />
</Setting>
<Setting Name="ResourcesDirPath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
@@ -30,7 +30,7 @@
<Value Profile="(Default)" />
</Setting>
<Setting Name="CommandVersion" Type="System.String" Scope="User">
<Value Profile="(Default)">1.2.2</Value>
<Value Profile="(Default)" />
</Setting>
<Setting Name="IsTopMost" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>

View File

@@ -1,73 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 清单选项
如果想要更改 Windows 用户帐户控制级别,请使用
以下节点之一替换 requestedExecutionLevel 节点。
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
如果你的应用程序需要此虚拟化来实现向后兼容性,则移除此
元素。
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
</applicationRequestMinimum>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
Windows 版本的列表。取消评论适当的元素,
Windows 将自动选择最兼容的环境。 -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
<!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI无需
选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。
将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
-->
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>

Binary file not shown.

View File

@@ -142,3 +142,4 @@
15507:yellow
15508:yellow
15509:yellow
15511:yellow

View File

@@ -1,4 +1,44 @@
51110: Goblet of the Sojourner
20412:Lamp of the Lost
20413:Lamp of the Lost
20422:Scholar of Vines
20423:Scholar of Vines
20432:Laurel Coronet
20433:Laurel Coronet
20442:Labyrinth Wayfarer
20443:Labyrinth Wayfarer
20452:A Time of Insight
20453:A Time of Insight
20513:Lamp of the Lost
20514:Lamp of the Lost
20523:Scholar of Vines
20524:Scholar of Vines
20533:Laurel Coronet
20534:Laurel Coronet
20543:Labyrinth Wayfarer
20544:Labyrinth Wayfarer
20553:A Time of Insight
20554:A Time of Insight
21412:Honeyed Final Feast
21413:Honeyed Final Feast
21422:Feather of Judgment
21423:Feather of Judgment
21432:Shadow of the Sand King
21433:Shadow of the Sand King
21442:Dreaming Steelbloom
21443:Dreaming Steelbloom
21452:The Sunken Years
21453:The Sunken Years
21513:Honeyed Final Feast
21514:Honeyed Final Feast
21523:Feather of Judgment
21524:Feather of Judgment
21533:Shadow of the Sand King
21534:Shadow of the Sand King
21543:Dreaming Steelbloom
21544:Dreaming Steelbloom
21553:The Sunken Years
21554:The Sunken Years
51110:Goblet of the Sojourner
51111:Goblet of the Sojourner
51112:Goblet of the Sojourner
51113:Goblet of the Sojourner

View File

@@ -1,4 +1,6 @@
51: Resolution of Sojourner
20:Deepwood Memories
21:Gilded Dreams
51:Resolution of Sojourner
52:Brave Heart
53:Defender's Will
54:Tiny Miracle

View File

@@ -50,3 +50,6 @@
1064:Yun Jin
1065:Kuki Shinobu
1066:Kamisato Ayato
1067:Collei
1068:Dori
1069:Tighnari

View File

@@ -8,6 +8,8 @@ Level up to 60
/give 102 x1880200
Set World Level
/prop wl 8
Unlock Map
/prop unlockmap 1
Unlock The Tower
/prop ut 12
Set BattlePass Level

View File

@@ -34,3 +34,6 @@
071:Everbloom Violet
076:Azure Excursion
081:Discerner of Enigmas
091:Tighnari banner (Non original name)
092:Zhongli banner (Non original name)
093:Hunter's Path banner (Non original name)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -149,3 +149,4 @@
15507:Polar Star
15508:Aqua Simulacra
15509:Thundering Pulse
15511:Hunter's Path

View File

@@ -1,3 +1,43 @@
20412:Лампа заблудших
20413:Лампа заблудших
20422:Мудрец лозы
20423:Мудрец лозы
20432:Лавровый венец
20433:Лавровый венец
20442:Странник лабиринта
20443:Странник лабиринта
20452:Час осмысления
20453:Час осмысления
20513:Лампа заблудших
20514:Лампа заблудших
20523:Мудрец лозы
20524:Мудрец лозы
20533:Лавровый венец
20534:Лавровый венец
20543:Странник лабиринта
20544:Странник лабиринта
20553:Час осмысления
20554:Час осмысления
21412:Последний медовый пир
21413:Последний медовый пир
21422:Перо суждения
21423:Перо суждения
21432:Тень Короля песков
21433:Тень Короля песков
21442:Сон железного цветка
21443:Сон железного цветка
21452:Золотые годы
21453:Золотые годы
21513:Последний медовый пир
21514:Последний медовый пир
21523:Перо суждения
21524:Перо суждения
21533:Тень Короля песков
21534:Тень Короля песков
21543:Сон железного цветка
21544:Сон железного цветка
21553:Золотые годы
21554:Золотые годы
51110:Кубок временщика
51111:Кубок временщика
51112:Кубок временщика

View File

@@ -1,4 +1,6 @@
51 Решимость временщика
20:Deepwood Memories
21:Gilded Dreams
51:Решимость временщика
52:Душа храбреца
53:Воля защитника
54:Маленькое чудо

View File

@@ -1,66 +1,66 @@
10001: Здоровья
10002: Здоровья Процент
10003: Атаки
10004: Атаки Процент
10005: Защиты
10006: Защиты Процент
10007: Восстановление Энергии
10008: Мастерство стехий
10009: Пиро Сопротивление
10010: Электро Сопротивление
10011: Крио Сопротивление
10012: Гидро Сопротивление
10013: Анемо Сопротивление
10014: Гео Сопротивление
10015: Дендро Сопротивление
12001: Атаки
13001: Здоровья
13002: Здоровья Процент
13003: Атаки
13004: Атаки Процент
13005: Защиты
13006: Защиты Процент
13007: Крит шанс
13008: Крит урон
13009: Бонус Лечения
13010: Мастерство стехий
14001: Здоровья
15001: Здоровья
15002: Здоровья Процент
15003: Атаки
15004: Атаки Процент
15005: Защиты
15006: Защиты Процент
15007: Мастерство стехий
15008: Пиро Бонус урона
15009: Электро Бонус урона
15010: Крио Бонус урона
15011: Гидро Бонус урона
15012: Анемо Бонус урона
15013: Гео Бонус урона
15014: Дендро Бонус урона
15015: Физ. Бонус урона
10990: Атаки Процент
10980: Здоровья Процент
10970: Защиты Процент
10960: Восстановление Энергии
10950: Мастерство стехий
30990: Атаки Процент
30980: Здоровья Процент
30970: Защиты Процент
30960: Крит шанс
30950: Крит урон
30940: Бонус Лечения
30930: Мастерство стехий
50990: Атаки Процент
50980: Здоровья Процент
50970: Защиты Процент
50960: Бонус пиро урона
50950: Бонус электро урона
50940: Бонус крио урона
50930: Бонус гидро урона
50920: Бонус анемо урона
50910: Бонус гео урона
50900: Бонус дендро урона
10001: Здоровье (HP)
10002: Процент здоровья (HP%)
10003: Атака
10004: Процент атаки
10005: Защита
10006: Процент защиты
10007: Восстановление энергии
10008: Мастерство стихий
10009: Пиро сопротивление
10010: Электро сопротивление
10011: Крио сопротивление
10012: Гидро сопротивление
10013: Анемо сопротивление
10014: Гео сопротивление
10015: Дендро сопротивление
12001: Атака
13001: Здоровье (HP)
13002: Процент здоровья (HP%)
13003: Атака
13004: Процент атаки
13005: Защита
13006: Процент защиты
13007: Шанс крит. урона
13008: Критический урон
13009: Бонус лечения
13010: Мастерство стихий
14001: Здоровье (HP)
15001: Здоровье (HP)
15002: Процент здоровья (HP%)
15003: Атака
15004: Процент атаки
15005: Защита
15006: Процент защиты
15007: Мастерство стихий
15008: Бонус Пиро урона
15009: Бонус Электро урона
15010: Бонус Крио урона
15011: Бонус Гидро урона
15012: Бонус Анемо урона
15013: Бонус Гео урона
15014: Бонус Дендро урона
15015: Бонус физического урона
10990: Процент атаки
10980: Процент здоровья (HP%)
10970: Процент защиты
10960: Восстановление энергии
10950: Мастерство стихий
30990: Процент атаки
30980: Процент здоровья (HP%)
30970: Процент защиты
30960: Шанс крит. урона
30950: Критический урон
30940: Бонус лечения
30930: Мастерство стихий
50990: Процент атаки
50980: Процент здоровья (HP%)
50970: Процент защиты
50960: Бонус Пиро урона
50950: Бонус Электро урона
50940: Бонус Крио урона
50930: Бонус Гидро урона
50920: Бонус Анемо урона
50910: Бонус Гео урона
50900: Бонус Дендро урона
50890: Бонус физического урона
50880: Мастерство стехий
50880: Мастерство стихий

View File

@@ -1,37 +1,37 @@
101021: Здоровье+24
101022: Здоровье+30
201021: Здоровье+50
201022: Здоровье+61
201023: Здоровье+72
301021: Здоровье+100
301022: Здоровье+115
301023: Здоровье+129
301024: Здоровье+143
401021: Здоровье+167
401022: Здоровье+191
401023: Здоровье+215
401024: Здоровье+239
501021: Здоровье+209
501022: Здоровье+239
501023: Здоровье+269
501024: Здоровье+299
101031: Здоровье Процент+1.2%
101032: Здоровье Процент+1.5%
201031: Здоровье Процент+1.6%
201032: Здоровье Процент+2.0%
201033: Здоровье Процент+2.3%
301031: Здоровье Процент+2.4%
301032: Здоровье Процент+2.8%
301033: Здоровье Процент+3.2%
301034: Здоровье Процент+3.5%
401031: Здоровье Процент+3.3%
401032: Здоровье Процент+3.7%
401033: Здоровье Процент+4.2%
401034: Здоровье Процент+4.7%
501031: Здоровье Процент+4.1%
501032: Здоровье Процент+4.7%
501033: Здоровье Процент+5.2%
501034: Здоровье Процент+5.8%
101021: Здоровье (HP)+24
101022: Здоровье (HP)+30
201021: Здоровье (HP)+50
201022: Здоровье (HP)+61
201023: Здоровье (HP)+72
301021: Здоровье (HP)+100
301022: Здоровье (HP)+115
301023: Здоровье (HP)+129
301024: Здоровье (HP)+143
401021: Здоровье (HP)+167
401022: Здоровье (HP)+191
401023: Здоровье (HP)+215
401024: Здоровье (HP)+239
501021: Здоровье (HP)+209
501022: Здоровье (HP)+239
501023: Здоровье (HP)+269
501024: Здоровье (HP)+299
101031: Процент здоровья (HP%)+1.2%
101032: Процент здоровья (HP%)+1.5%
201031: Процент здоровья (HP%)+1.6%
201032: Процент здоровья (HP%)+2.0%
201033: Процент здоровья (HP%)+2.3%
301031: Процент здоровья (HP%)+2.4%
301032: Процент здоровья (HP%)+2.8%
301033: Процент здоровья (HP%)+3.2%
301034: Процент здоровья (HP%)+3.5%
401031: Процент здоровья (HP%)+3.3%
401032: Процент здоровья (HP%)+3.7%
401033: Процент здоровья (HP%)+4.2%
401034: Процент здоровья (HP%)+4.7%
501031: Процент здоровья (HP%)+4.1%
501032: Процент здоровья (HP%)+4.7%
501033: Процент здоровья (HP%)+5.2%
501034: Процент здоровья (HP%)+5.8%
101051: Атака+2
101052: Атака+2
201051: Атака+3
@@ -49,23 +49,23 @@
501052: Атака+16
501053: Атака+18
501054: Атака+19
101061: Атака Процент+1.2%
101062: Атака Процент+1.5%
201061: Атака Процент+1.6%
201062: Атака Процент+2.0%
201063: Атака Процент+2.3%
301061: Атака Процент+2.4%
301062: Атака Процент+2.8%
301063: Атака Процент+3.2%
301064: Атака Процент+3.5%
401061: Атака Процент+3.3%
401062: Атака Процент+3.7%
401063: Атака Процент+4.2%
401064: Атака Процент+4.7%
501061: Атака Процент+4.1%
501062: Атака Процент+4.7%
501063: Атака Процент+5.2%
501064: Атака Процент+5.8%
101061: Процент атаки+1.2%
101062: Процент атаки+1.5%
201061: Процент атаки+1.6%
201062: Процент атаки+2.0%
201063: Процент атаки+2.3%
301061: Процент атаки+2.4%
301062: Процент атаки+2.8%
301063: Процент атаки+3.2%
301064: Процент атаки+3.5%
401061: Процент атаки+3.3%
401062: Процент атаки+3.7%
401063: Процент атаки+4.2%
401064: Процент атаки+4.7%
501061: Процент атаки+4.1%
501062: Процент атаки+4.7%
501063: Процент атаки+5.2%
501064: Процент атаки+5.8%
101081: Защита+2
101082: Защита+2
201081: Защита+4
@@ -83,253 +83,253 @@
501082: Защита+19
501083: Защита+21
501084: Защита+23
101091: Защита Процент+1.5%
101092: Защита Процент+1.8%
201091: Защита Процент+2.0%
201092: Защита Процент+2.5%
201093: Защита Процент+2.9%
301091: Защита Процент+3.1%
301092: Защита Процент+3.5%
301093: Защита Процент+3.9%
301094: Защита Процент+4.4%
401091: Защита Процент+4.1%
401092: Защита Процент+4.7%
401093: Защита Процент+5.2%
401094: Защита Процент+5.8%
501091: Защита Процент+5.1%
501092: Защита Процент+5.8%
501093: Защита Процент+6.6%
501094: Защита Процент+7.3%
101231: Энергетическая перезарядка+1.3%
101232: Энергетическая перезарядка+1.6%
201231: Энергетическая перезарядка+1.8%
201232: Энергетическая перезарядка+2.2%
201233: Энергетическая перезарядка+2.6%
301231: Энергетическая перезарядка+2.7%
301232: Энергетическая перезарядка+3.1%
301233: Энергетическая перезарядка+3.5%
301234: Энергетическая перезарядка+3.9%
401231: Энергетическая перезарядка+3.6%
401232: Энергетическая перезарядка+4.1%
401233: Энергетическая перезарядка+4.7%
401234: Энергетическая перезарядка+5.2%
501231: Энергетическая перезарядка+4.5%
501232: Энергетическая перезарядка+5.2%
501233: Энергетическая перезарядка+5.8%
501234: Энергетическая перезарядка+6.5%
101241: Элементальное мастерство+5
101242: Элементальное мастерство+6
201241: Элементальное мастерство+7
201242: Элементальное мастерство+8
201243: Элементальное мастерство+9
301241: Элементальное мастерство+10
301242: Элементальное мастерство+11
301243: Элементальное мастерство+13
301244: Элементальное мастерство+14
401241: Элементальное мастерство+13
401242: Элементальное мастерство+15
401243: Элементальное мастерство+17
401244: Элементальное мастерство+19
501241: Элементальное мастерство+16
501242: Элементальное мастерство+19
501243: Элементальное мастерство+21
501244: Элементальное мастерство+23
101201: КРИТ Рейтинг+0.8%
101202: КРИТ Рейтинг+1.0%
201201: КРИТ Рейтинг+1.1%
201202: КРИТ Рейтинг+1.3%
201203: КРИТ Рейтинг+1.5%
301201: КРИТ Рейтинг+1.6%
301202: КРИТ Рейтинг+1.9%
301203: КРИТ Рейтинг+2.1%
301204: КРИТ Рейтинг+2.3%
401201: КРИТ Рейтинг+2.2%
401202: КРИТ Рейтинг+2.5%
401203: КРИТ Рейтинг+2.8%
401204: КРИТ Рейтинг+3.1%
501201: КРИТ Рейтинг+2.7%
501202: КРИТ Рейтинг+3.1%
501203: КРИТ Рейтинг+3.5%
501204: КРИТ Рейтинг+3.9%
101221: КРИТИЧЕСКИЙ Урон+1.5%
101222: КРИТИЧЕСКИЙ Урон+1.9%
201221: КРИТИЧЕСКИЙ Урон+2.2%
201222: КРИТИЧЕСКИЙ Урон+2.6%
201223: КРИТИЧЕСКИЙ Урон+3.1%
301221: КРИТИЧЕСКИЙ Урон+3.3%
301222: КРИТИЧЕСКИЙ Урон+3.7%
301223: КРИТИЧЕСКИЙ Урон+4.2%
301224: КРИТИЧЕСКИЙ Урон+4.7%
401221: КРИТИЧЕСКИЙ Урон+4.3%
401222: КРИТИЧЕСКИЙ Урон+5.0%
401223: КРИТИЧЕСКИЙ Урон+5.6%
401224: КРИТИЧЕСКИЙ Урон+6.2%
501221: КРИТИЧЕСКИЙ Урон+5.4%
501222: КРИТИЧЕСКИЙ Урон+6.2%
501223: КРИТИЧЕСКИЙ Урон+7.0%
501224: КРИТИЧЕСКИЙ Урон+7.8%
999001: КРИТИЧЕСКИЙ Урон+350.0%
999002: КРИТ Рейтинг+100.0%
101091: Процент защиты+1.5%
101092: Процент защиты+1.8%
201091: Процент защиты+2.0%
201092: Процент защиты+2.5%
201093: Процент защиты+2.9%
301091: Процент защиты+3.1%
301092: Процент защиты+3.5%
301093: Процент защиты+3.9%
301094: Процент защиты+4.4%
401091: Процент защиты+4.1%
401092: Процент защиты+4.7%
401093: Процент защиты+5.2%
401094: Процент защиты+5.8%
501091: Процент защиты+5.1%
501092: Процент защиты+5.8%
501093: Процент защиты+6.6%
501094: Процент защиты+7.3%
101231: Восстановление энергии+1.3%
101232: Восстановление энергии+1.6%
201231: Восстановление энергии+1.8%
201232: Восстановление энергии+2.2%
201233: Восстановление энергии+2.6%
301231: Восстановление энергии+2.7%
301232: Восстановление энергии+3.1%
301233: Восстановление энергии+3.5%
301234: Восстановление энергии+3.9%
401231: Восстановление энергии+3.6%
401232: Восстановление энергии+4.1%
401233: Восстановление энергии+4.7%
401234: Восстановление энергии+5.2%
501231: Восстановление энергии+4.5%
501232: Восстановление энергии+5.2%
501233: Восстановление энергии+5.8%
501234: Восстановление энергии+6.5%
101241: Мастерство стихий+5
101242: Мастерство стихий+6
201241: Мастерство стихий+7
201242: Мастерство стихий+8
201243: Мастерство стихий+9
301241: Мастерство стихий+10
301242: Мастерство стихий+11
301243: Мастерство стихий+13
301244: Мастерство стихий+14
401241: Мастерство стихий+13
401242: Мастерство стихий+15
401243: Мастерство стихий+17
401244: Мастерство стихий+19
501241: Мастерство стихий+16
501242: Мастерство стихий+19
501243: Мастерство стихий+21
501244: Мастерство стихий+23
101201: Шанс крит. урона+0.8%
101202: Шанс крит. урона+1.0%
201201: Шанс крит. урона+1.1%
201202: Шанс крит. урона+1.3%
201203: Шанс крит. урона+1.5%
301201: Шанс крит. урона+1.6%
301202: Шанс крит. урона+1.9%
301203: Шанс крит. урона+2.1%
301204: Шанс крит. урона+2.3%
401201: Шанс крит. урона+2.2%
401202: Шанс крит. урона+2.5%
401203: Шанс крит. урона+2.8%
401204: Шанс крит. урона+3.1%
501201: Шанс крит. урона+2.7%
501202: Шанс крит. урона+3.1%
501203: Шанс крит. урона+3.5%
501204: Шанс крит. урона+3.9%
101221: Критический урон+1.5%
101222: Критический урон+1.9%
201221: Критический урон+2.2%
201222: Критический урон+2.6%
201223: Критический урон+3.1%
301221: Критический урон+3.3%
301222: Критический урон+3.7%
301223: Критический урон+4.2%
301224: Критический урон+4.7%
401221: Критический урон+4.3%
401222: Критический урон+5.0%
401223: Критический урон+5.6%
401224: Критический урон+6.2%
501221: Критический урон+5.4%
501222: Критический урон+6.2%
501223: Критический урон+7.0%
501224: Критический урон+7.8%
999001: Критический урон+350.0%
999002: Шанс крит. урона+100.0%
999003: Атака+233333
999004: Защита+233333
998001: Здоровье Процент+14.6%
998002: Атака Процент+14.6%
998003: Защита Процент+18.2%
998004: КРИТ Рейтинг+9.7%
998005: Энергетическая перезарядка+16.2%
998006: Элементальное мастерство+58
998007: КРИТИЧЕСКИЙ Урон+19.4%
995001: Здоровье Процент+14.6%
995002: Атака Процент+14.6%
995003: Защита Процент+18.2%
995004: КРИТ Рейтинг+9.7%
995005: Энергетическая перезарядка+16.2%
995006: Элементальное мастерство+58
995007: КРИТИЧЕСКИЙ Урон+19.4%
997001: Здоровье Процент+9.3%
997002: Атака Процент+9.3%
997003: Защита Процент+11.7%
997004: КРИТ Рейтинг+6.2%
997005: Энергетическая перезарядка+10.4%
997006: Элементальное мастерство+37
997007: КРИТИЧЕСКИЙ Урон+12.4%
996001: Здоровье Процент+9.3%
996002: Атака Процент+9.3%
996003: Защита Процент+11.7%
996004: КРИТ Рейтинг+6.2%
996005: Энергетическая перезарядка+10.4%
996006: Элементальное мастерство+37
996007: КРИТИЧЕСКИЙ Урон+12.4%
994001: КРИТ Рейтинг+80.0%
993001: КРИТИЧЕСКИЙ Урон+80.0%
998001: Процент здоровья (HP%)+14.6%
998002: Процент атаки+14.6%
998003: Процент защиты+18.2%
998004: Шанс крит. урона+9.7%
998005: Восстановление энергии+16.2%
998006: Мастерство стихий+58
998007: Критический урон+19.4%
995001: Процент здоровья (HP%)+14.6%
995002: Процент атаки+14.6%
995003: Процент защиты+18.2%
995004: Шанс крит. урона+9.7%
995005: Восстановление энергии+16.2%
995006: Мастерство стихий+58
995007: Критический урон+19.4%
997001: Процент здоровья (HP%)+9.3%
997002: Процент атаки+9.3%
997003: Процент защиты+11.7%
997004: Шанс крит. урона+6.2%
997005: Восстановление энергии+10.4%
997006: Мастерство стихий+37
997007: Критический урон+12.4%
996001: Процент здоровья (HP%)+9.3%
996002: Процент атаки+9.3%
996003: Процент защиты+11.7%
996004: Шанс крит. урона+6.2%
996005: Восстановление энергии+10.4%
996006: Мастерство стихий+37
996007: Критический урон+12.4%
994001: Шанс крит. урона+80.0%
993001: Критический урон+80.0%
992001: Прочность щита+80.0%
991001: Бонус Исцеления+80.0%
990001: Бонус Исцеление+80.0%
991001: Бонус лечения+80.0%
990001: Бонус лечения+80.0%
989001: Уменшение отката+50.0%
988001: Скорость переджения+30.0%
987001: Пиро Урон Bonus+80.0%
986001: Электро Урон Bonus+80.0%
985001: Гидро Урон Bonus+80.0%
984001: Дендро Урон Bonus+80.0%
983001: Анемо Урон Bonus+80.0%
982001: Гео Урон Bonus+80.0%
981001: Крио Урон Bonus+80.0%
980001: Физ. Урон Bonus+80.0%
979001: Пиро Сопротивленин+80.0%
978001: Электро Сопротивленин+80.0%
977001: Гидро Сопротивленин+80.0%
976001: Дендро Сопротивленин+80.0%
975001: Анемо Сопротивленин+80.0%
974001: Гео Сопротивленин+80.0%
973001: Крио Сопротивленин+80.0%
972001: Физ. Сопротивленин+80.0%
988001: Скорость передвижения+30.0%
987001: Бонус Пиро урона+80.0%
986001: Бонус Электро урона+80.0%
985001: Бонус Гидро урона+80.0%
984001: Бонус Дендро урона+80.0%
983001: Бонус Анемо урона+80.0%
982001: Бонус Гео урона+80.0%
981001: Бонус Крио урона+80.0%
980001: Бонус физ. урона+80.0%
979001: Пиро сопротивление+80.0%
978001: Электро сопротивление+80.0%
977001: Гидро сопротивление+80.0%
976001: Дендро сопротивление+80.0%
975001: Анемо сопротивление+80.0%
974001: Гео сопротивление+80.0%
973001: Крио сопротивление+80.0%
972001: Сопротивление физ. урону+80.0%
971001: Бонус урона+80.0%
970001: Уменьшение урона+80.0%
969001: Защита+-500
968001: Элементальное мастерство+-300
951001: Здоровье Процент+14.6%
951002: Атака Процент+14.6%
951003: Защита Процент+18.2%
951004: КРИТ Рейтинг+9.7%
951005: Энергетическая перезарядка+16.2%
951006: Элементальное мастерство+58
951007: КРИТИЧЕСКИЙ Урон+19.4%
952001: Здоровье Процент+14.6%
952002: Атака Процент+14.6%
952003: Защита Процент+18.2%
952004: КРИТ Рейтинг+9.7%
952005: Энергетическая перезарядка+16.2%
952006: Элементальное мастерство+58
952007: КРИТИЧЕСКИЙ Урон+19.4%
953001: Здоровье Процент+14.6%
953002: Атака Процент+14.6%
953003: Защита Процент+18.2%
953004: КРИТ Рейтинг+9.7%
953005: Энергетическая перезарядка+16.2%
953006: Элементальное мастерство+58
953007: КРИТИЧЕСКИЙ Урон+19.4%
956001: Здоровье Процент+14.6%
956002: Атака Процент+14.6%
956003: Защита Процент+18.2%
956004: КРИТ Рейтинг+9.7%
956005: Энергетическая перезарядка+16.2%
956006: Элементальное мастерство+58
956007: КРИТИЧЕСКИЙ Урон+19.4%
941001: Здоровье Процент+9.3%
941002: Атака Процент+9.3%
941003: Защита Процент+11.7%
941004: КРИТ Рейтинг+6.2%
941005: Энергетическая перезарядка+10.4%
941006: Элементальное мастерство+37
941007: КРИТИЧЕСКИЙ Урон+12.4%
942001: Здоровье Процент+9.3%
942002: Атака Процент+9.3%
942003: Защита Процент+11.7%
942004: КРИТ Рейтинг+6.2%
942005: Энергетическая перезарядка+10.4%
942006: Элементальное мастерство+37
942007: КРИТИЧЕСКИЙ Урон+12.4%
943001: Здоровье Процент+9.3%
943002: Атака Процент+9.3%
943003: Защита Процент+11.7%
943004: КРИТ Рейтинг+6.2%
943005: Энергетическая перезарядка+10.4%
943006: Элементальное мастерство+37
943007: КРИТИЧЕСКИЙ Урон+12.4%
946001: Здоровье Процент+9.3%
946002: Атака Процент+9.3%
946003: Защита Процент+11.7%
946004: КРИТ Рейтинг+6.2%
946005: Энергетическая перезарядка+10.4%
946006: Элементальное мастерство+37
946007: КРИТИЧЕСКИЙ Урон+12.4%
961001: Здоровье Процент+14.6%
961002: Атака Процент+14.6%
961003: Защита Процент+18.2%
961004: КРИТ Рейтинг+9.7%
961005: Энергетическая перезарядка+16.2%
961006: Элементальное мастерство+58
961007: КРИТИЧЕСКИЙ Урон+19.4%
961008: Здоровье+747
968001: Мастерство стихий+-300
951001: Процент здоровья (HP%)+14.6%
951002: Процент атаки+14.6%
951003: Процент защиты+18.2%
951004: Шанс крит. урона+9.7%
951005: Восстановление энергии+16.2%
951006: Мастерство стихий+58
951007: Критический урон+19.4%
952001: Процент здоровья (HP%)+14.6%
952002: Процент атаки+14.6%
952003: Процент защиты+18.2%
952004: Шанс крит. урона+9.7%
952005: Восстановление энергии+16.2%
952006: Мастерство стихий+58
952007: Критический урон+19.4%
953001: Процент здоровья (HP%)+14.6%
953002: Процент атаки+14.6%
953003: Процент защиты+18.2%
953004: Шанс крит. урона+9.7%
953005: Восстановление энергии+16.2%
953006: Мастерство стихий+58
953007: Критический урон+19.4%
956001: Процент здоровья (HP%)+14.6%
956002: Процент атаки+14.6%
956003: Процент защиты+18.2%
956004: Шанс крит. урона+9.7%
956005: Восстановление энергии+16.2%
956006: Мастерство стихий+58
956007: Критический урон+19.4%
941001: Процент здоровья (HP%)+9.3%
941002: Процент атаки+9.3%
941003: Процент защиты+11.7%
941004: Шанс крит. урона+6.2%
941005: Восстановление энергии+10.4%
941006: Мастерство стихий+37
941007: Критический урон+12.4%
942001: Процент здоровья (HP%)+9.3%
942002: Процент атаки+9.3%
942003: Процент защиты+11.7%
942004: Шанс крит. урона+6.2%
942005: Восстановление энергии+10.4%
942006: Мастерство стихий+37
942007: Критический урон+12.4%
943001: Процент здоровья (HP%)+9.3%
943002: Процент атаки+9.3%
943003: Процент защиты+11.7%
943004: Шанс крит. урона+6.2%
943005: Восстановление энергии+10.4%
943006: Мастерство стихий+37
943007: Критический урон+12.4%
946001: Процент здоровья (HP%)+9.3%
946002: Процент атаки+9.3%
946003: Процент защиты+11.7%
946004: Шанс крит. урона+6.2%
946005: Восстановление энергии+10.4%
946006: Мастерство стихий+37
946007: Критический урон+12.4%
961001: Процент здоровья (HP%)+14.6%
961002: Процент атаки+14.6%
961003: Процент защиты+18.2%
961004: Шанс крит. урона+9.7%
961005: Восстановление энергии+16.2%
961006: Мастерство стихий+58
961007: Критический урон+19.4%
961008: Здоровье (HP)+747
961009: Атака+49
961010: Защита+5787.0%
962001: Здоровье Процент+14.6%
962002: Атака Процент+14.6%
962003: Защита Процент+18.2%
962004: КРИТ Рейтинг+9.7%
962005: Энергетическая перезарядка+16.2%
962006: Элементальное мастерство+58
962007: КРИТИЧЕСКИЙ Урон+19.4%
962008: Здоровье+747
962001: Процент здоровья (HP%)+14.6%
962002: Процент атаки+14.6%
962003: Процент защиты+18.2%
962004: Шанс крит. урона+9.7%
962005: Восстановление энергии+16.2%
962006: Мастерство стихий+58
962007: Критический урон+19.4%
962008: Здоровье (HP)+747
962009: Атака+49
962010: Защита+58
963001: Здоровье Процент+14.6%
963002: Атака Процент+14.6%
963003: Защита Процент+18.2%
963004: КРИТ Рейтинг+9.7%
963005: Энергетическая перезарядка+16.2%
963006: Элементальное мастерство+58
963007: КРИТИЧЕСКИЙ Урон+19.4%
963008: Здоровье+747
963001: Процент здоровья (HP%)+14.6%
963002: Процент атаки+14.6%
963003: Процент защиты+18.2%
963004: Шанс крит. урона+9.7%
963005: Восстановление энергии+16.2%
963006: Мастерство стихий+58
963007: Критический урон+19.4%
963008: Здоровье (HP)+747
963009: Атака+49
963010: Защита+58
964001: Здоровье Процент+14.6%
964002: Атака Процент+14.6%
964003: Защита Процент+18.2%
964004: КРИТ Рейтинг+9.7%
964005: Энергетическая перезарядка+16.2%
964006: Элементальное мастерство+58
964007: КРИТИЧЕСКИЙ Урон+19.4%
964008: Здоровье+747
964001: Процент здоровья (HP%)+14.6%
964002: Процент атаки+14.6%
964003: Процент защиты+18.2%
964004: Шанс крит. урона+9.7%
964005: Восстановление энергии+16.2%
964006: Мастерство стихий+58
964007: Критический урон+19.4%
964008: Здоровье (HP)+747
964009: Атака+49
964010: Защита+58
965001: Здоровье Процент+14.6%
965002: Атака Процент+14.6%
965003: Защита Процент+18.2%
965004: КРИТ Рейтинг+9.7%
965005: Энергетическая перезарядка+16.2%
965006: Элементальное мастерство+58
965007: КРИТИЧЕСКИЙ Урон+19.4%
965008: Здоровье+747
965001: Процент здоровья (HP%)+14.6%
965002: Процент атаки+14.6%
965003: Процент защиты+18.2%
965004: Шанс крит. урона+9.7%
965005: Восстановление энергии+16.2%
965006: Мастерство стихий+58
965007: Критический урон+19.4%
965008: Здоровье (HP)+747
965009: Атака+49
965010: Защита+58

View File

@@ -50,3 +50,6 @@
1064:Юнь Цзинь
1065:Куки Синобу
1066:Камисато Аято
1067:Коллеи
1068:Дори
1069:Тигнари

View File

@@ -1,24 +1,24 @@
[
{
"Name": "Текущая HP",
"Name": "Текущее здоровье (HP)",
"ArgName": "hp",
"Percent": false,
"Tip": ""
},
{
"Name": "Макс. HP",
"Name": "Макс. здоровье (HP)",
"ArgName": "maxhp",
"Percent": false,
"Tip": ""
},
{
"Name": "Текущая силы атаки",
"Name": "Текущая сила атаки",
"ArgName": "atk",
"Percent": false,
"Tip": ""
},
{
"Name": "Базовая атака",
"Name": "Базовая сила атаки",
"ArgName": "atkb",
"Percent": false,
"Tip": "Похоже, это не пересчитывает силу атаки и может работать только с классами баффов."
@@ -42,7 +42,7 @@
"Tip": ""
},
{
"Name": "Крит. урон",
"Name": "Критический урон",
"ArgName": "cdmg",
"Percent": true,
"Tip": ""
@@ -186,7 +186,7 @@
"Tip": ""
},
{
"Name": "Игнорировать DEF",
"Name": "Игнорирование защиты",
"ArgName": "defi",
"Percent": true,
"Tip": "Это, кажется, не работает."

View File

@@ -1,24 +1,26 @@
Непобедимый
Непобедимость
/prop god on
Неограниченная выносливость
/prop ns on
бесконечная энергия
Бесконечная энергия
/prop ue on
60 ранг приключений
/give 102 x1880200
Уровень мира
8 уровень мира
/prop wl 8
Разгадка бездны
Открыть всю карту
/prop unlockmap 1
Открыть всю Витую бездну
/prop ut 12
Уровень Боевой пропуск
Макс. уровень БП
/prop bp 50
Уровень дружбы
Макс. уровень дружбы у текущего персонажа
/setfetterlevel 10
Лечение
/h
Самоубийство
/kill 0
Наполнить энергией
Заспавнить шар с элем. энергией
/spawn 2008 25
Текущая позиция
/pos
@@ -38,27 +40,27 @@
/kick
Очистить рюкзак (ВСЁ)
/clear all lv90 r5 5*
Очистить Оружия
Очистить только Оружия
/clear wp lv90 r5 5*
Очистить Артефакты
Очистить только Артефакты
/clear art lv20 5*
Очистить Материалы
Очистить только Материалы
/clear mat
Сброс текущего Созвездия (Требуется повторный вход в систему)
Сброс Созвездия текущего персонажа (Требуется повторный вход в систему)
/resetconst
Сброс ВСЕ Созвездия (Требуется повторный вход в систему)
Сброс Созвездия ВСЕХ персонажей (Требуется повторный вход в систему)
/resetconst all
Убить всех монстров
/killall
Кооператив
Мультиплеер
/coop
Телепортировать всех
/tpall
Список всех игроков
/list uid
Транслировать
Сообщение всем
/say Всем привет~
Сообщение Сервера
Сообщение сервера
/a Добро пожаловать в grasscutter PS!
Закройте Сервер
Закрыть сервер
/stop

View File

@@ -34,3 +34,6 @@
071:Вечноцветущий пурпур
076:Лазурный поход
081:Белая радуга
091:Патруль лесной чащи
092:Горы и рынки
093:Охотничья тропа

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -149,3 +149,4 @@
15507:Полярная звезда
15508:Аква симулякрум
15509:Громовой пульс
15511:Охотничья тропа

View File

@@ -227,3 +227,22 @@
28250104:尘歌壶:雷晶蝶
28250105:尘歌壶:珊瑚蝶
28250301:尘歌壶:吉光虫
28020313:大蕈猪?
28030313:暝彩鸟
28020314:蕈猪
28060101:棘冠鳄
28060201:长鬓虎
28060601:牦牦驮兽
28040801:真果角鲀
28040802:沉波蜜桃
28040803:吹沙角鲀
28040804:暮云角鲀
28040901:青金斧枪鱼
28040902:翡玉斧枪鱼
28050106:草晶蝶
28010304:丛林树蛙
28010208:赤尾蜥
31010101:友军 打手丘丘人
31020101:友军 木盾丘丘暴徒
31020201:友军 火斧丘丘暴徒
35210101:友军 娜菈

View File

@@ -1,4 +1,44 @@
51110: 异国之盏
20412:迷误者之灯
20413:迷误者之灯
20422:翠蔓的智者
20423:翠蔓的智者
20432:月桂的宝冠
20433:月桂的宝冠
20442:迷宫的游人
20443:迷宫的游人
20452:贤智的定期
20453:贤智的定期
20513:迷误者之灯
20514:迷误者之灯
20523:翠蔓的智者
20524:翠蔓的智者
20533:月桂的宝冠
20534:月桂的宝冠
20543:迷宫的游人
20544:迷宫的游人
20553:贤智的定期
20554:贤智的定期
21412:如蜜的终宴
21413:如蜜的终宴
21422:裁断的翎羽
21423:裁断的翎羽
21432:沙王的投影
21433:沙王的投影
21442:梦中的铁花
21443:梦中的铁花
21452:沉金的岁月
21453:沉金的岁月
21513:如蜜的终宴
21514:如蜜的终宴
21523:裁断的翎羽
21524:裁断的翎羽
21533:沙王的投影
21534:沙王的投影
21543:梦中的铁花
21544:梦中的铁花
21553:沉金的岁月
21554:沉金的岁月
51110:异国之盏
51111:异国之盏
51112:异国之盏
51113:异国之盏

View File

@@ -1,4 +1,6 @@
51: 行者之心
20:深林的记忆
21:饰金之梦
51:行者之心
52:勇士之心
53:守护之心
54:奇迹

View File

@@ -50,3 +50,6 @@
1064:云堇
1065:久岐忍
1066:神里绫人
1067:柯莱
1068:多莉
1069:提纳里

View File

@@ -4,25 +4,27 @@
/prop ns on
无限能量
/prop ue on
60级
冒险等阶升60级
/give 102 x1880200
设置世界等级
设置世界等级8
/prop wl 8
一键解锁深渊
点亮地图
/prop unlockmap 1
一键解锁深渊12层
/prop ut 12
设置纪行等级
设置纪行等级50
/prop bp 50
设置好感等级
设置好感等级10
/setfetterlevel 10
回血
/h
自杀
/kill 0
全队充能
/spawn 2008 25
我在哪?
查看坐标
/pos
我全都要!
获取全部物品
/give all x9999 lv90 c6 r5
一万纠缠
/give 223 x10000
@@ -48,13 +50,13 @@
/clear art lv20 5*
清空材料
/clear mat
清场
击杀全部怪物
/killall
进入多人
进入多人游戏
/coop
速速集合!
[多人游戏]全体传送
/tpall
都有谁在?
玩家列表
/list uid
发送广播
/say 大家好啊~

View File

@@ -34,3 +34,6 @@
071:华紫樱绯
076:苍流踏花
081:素霓伣天
091:提纳里池(非原名)
092:钟离池(非原名)
093:猎人之径池(非原名)

File diff suppressed because it is too large Load Diff

View File

@@ -338,3 +338,25 @@
29060201:祸津御建鸣神命
29060202:祸津御建鸣神命
29060203:祸津御建鸣神命
20060701:草飘浮灵
24030201:遗迹龙兽·地巡
24030101:遗迹龙兽·空巡
25210101:镀金旅团·阵前斧手
25210201:镀金旅团·机弩兵
25210301:镀金旅团·鸦喙戟手
25210401:镀金旅团·破阵者
25210501:镀金旅团·刀舞者
25310101:镀金旅团·沙中净水
25310201:镀金旅团·炽阳凝冰
25310301:镀金旅团·白日鸣雷
26020301:掣电树
26090201:浮游草蕈兽
26090201:旋转雷蕈兽
26090401:旋转冰蕈兽
26090501:伸缩火蕈兽
26090701:伸缩风蕈兽
26090801:伸缩岩蕈兽
26090901:陆行水本真蕈
26120101:有翼草本真蕈
26120201:有翼冰本真蕈
26110101:翠翎恐蕈

File diff suppressed because it is too large Load Diff

View File

@@ -149,3 +149,4 @@
15507:冬极白星
15508:若水
15509:飞雷之弦振
15511:猎人之径

View File

@@ -227,3 +227,22 @@
28250104: 塵歌壺:雷晶蝶
28250105: 塵歌壺:珊瑚蝶
28250301: 塵歌壺:吉光蟲
28020313: 大蕈猪?
28030313: 暝彩鸟
28020314: 蕈猪
28060101: 棘冠鳄
28060201: 长鬓虎
28060601: 牦牦驮兽
28040801: 真果角鲀
28040802: 沉波蜜桃
28040803: 吹沙角鲀
28040804: 暮云角鲀
28040901: 青金斧枪鱼
28040902: 翡玉斧枪鱼
28050106: 草晶蝶
28010304: 丛林树蛙
28010208: 赤尾蜥
31010101: 友军 打手丘丘人
31020101: 友军 木盾丘丘暴徒
31020201: 友军 火斧丘丘暴徒
35210101: 友军 娜菈

View File

@@ -1,3 +1,43 @@
20412:迷誤者之燈
20413:迷誤者之燈
20422:翠蔓的智者
20423:翠蔓的智者
20432:月桂的寶冠
20433:月桂的寶冠
20442:迷宮的遊人
20443:迷宮的遊人
20452:賢智的定期
20453:賢智的定期
20513:迷誤者之燈
20514:迷誤者之燈
20523:翠蔓的智者
20524:翠蔓的智者
20533:月桂的寶冠
20534:月桂的寶冠
20543:迷宮的遊人
20544:迷宮的遊人
20553:賢智的定期
20554:賢智的定期
21412:如蜜的終宴
21413:如蜜的終宴
21422:裁斷的翎羽
21423:裁斷的翎羽
21432:沙王的投影
21433:沙王的投影
21442:夢中的鐵花
21443:夢中的鐵花
21452:沉金的歲月
21453:沉金的歲月
21513:如蜜的終宴
21514:如蜜的終宴
21523:裁斷的翎羽
21524:裁斷的翎羽
21533:沙王的投影
21534:沙王的投影
21543:夢中的鐵花
21544:夢中的鐵花
21553:沉金的歲月
21554:沉金的歲月
51110:異國之盞
51111:異國之盞
51112:異國之盞

View File

@@ -1,3 +1,5 @@
20:深林的記憶
21:飾金之夢
51:行者之心
52:勇士之心
53:守護之心

View File

@@ -50,3 +50,6 @@
1064:雲堇
1065:久岐忍
1066:神里綾人
1067:柯萊
1068:多莉
1069:提納里

View File

@@ -4,25 +4,27 @@
/prop ns on
無限能量
/prop ue on
60級
冒險等階升60級
/give 102 x1880200
設置世界等級
設置世界等級8
/prop wl 8
一鍵解鎖深淵
點亮地圖
/prop unlockmap 1
一鍵解鎖深淵12層
/prop ut 12
設置紀行等級
設置紀行等級50
/prop bp 50
設置好感等級
設置好感等級10
/setfetterlevel 10
治療
/h
自殺
/kill 0
全隊充能
/spawn 2008 25
我在哪?
查看坐標
/pos
我全都要!
獲取全部物品
/give all x9999 lv90 c6 r5
一萬糾纏
/give 223 x10000
@@ -48,13 +50,13 @@
/clear art lv20 5*
清空材料
/clear mat
清場
擊殺全部怪物
/killall
進入多人
進入多人遊戲
/coop
速速集合!
[多人遊戲]全體傳送
/tpall
都有誰在?
玩家列表
/list uid
發送廣播
/say 大家好啊~

View File

@@ -34,3 +34,6 @@
071:華紫櫻緋
076:蒼流踏花
081:素霓俔天
091:提納里池(非原名)
092:钟离池(非原名)
093:獵人之徑池(非原名)

File diff suppressed because it is too large Load Diff

View File

@@ -338,3 +338,25 @@
29060201:禍津御建鳴神命
29060202:禍津御建鳴神命
29060203:禍津御建鳴神命
20060701:草飄浮靈
24030201:遺跡龍獸·地巡
24030101:遺跡龍獸·空巡
25210101:鍍金旅團·陣前斧手
25210201:鍍金旅團·機弩兵
25210301:鍍金旅團·鴉喙戟手
25210401:鍍金旅團·破陣者
25210501:鍍金旅團·刀舞者
25310101:鍍金旅團·沙中淨水
25310201:鍍金旅團·熾陽凝冰
25310301:鍍金旅團·白日鳴雷
26020301:掣電樹
26090201:浮游草蕈獸
26090201:旋轉雷蕈獸
26090401:旋轉冰蕈獸
26090501:伸縮火蕈獸
26090701:伸縮風蕈獸
26090801:伸縮岩蕈獸
26090901:陸行水本真蕈
26120101:有翼草本真蕈
26120201:有翼冰本真蕈
26110101:翠翎恐蕈

File diff suppressed because it is too large Load Diff

View File

@@ -149,3 +149,4 @@
15507:冬極白星
15508:若水
15509:飛雷之弦振
15511:獵人之徑

View File

@@ -0,0 +1,28 @@
namespace GrasscutterTools.Properties {
// 通过此类可以处理设置类的特定事件:
// 在更改某个设置的值之前将引发 SettingChanging 事件。
// 在更改某个设置的值之后将引发 PropertyChanged 事件。
// 在加载设置值之后将引发 SettingsLoaded 事件。
// 在保存设置值之前将引发 SettingsSaving 事件。
internal sealed partial class Settings {
public Settings() {
// // 若要为保存和更改设置添加事件处理程序,请取消注释下列行:
//
// this.SettingChanging += this.SettingChangingEventHandler;
//
// this.SettingsSaving += this.SettingsSavingEventHandler;
//
}
private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
// 在此处添加用于处理 SettingChangingEvent 事件的代码。
}
private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
// 在此处添加用于处理 SettingsSaving 事件的代码。
}
}
}

View File

@@ -0,0 +1,222 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System;
using System.Collections.Generic;
using System.Linq;
namespace GrasscutterTools.Utils
{
class SubstatSumEquality : IEqualityComparer<List<KeyValuePair<int, double>>>
{
public bool Equals(List<KeyValuePair<int, double>> left, List<KeyValuePair<int, double>> right)
{
if (sum_substat(left) == sum_substat(right))
return true;
else
return false;
}
public int GetHashCode(List<KeyValuePair<int, double>> dict)
{
return sum_substat(dict).GetHashCode();
}
public static double sum_substat(List<KeyValuePair<int, double>> dict)
{
double sum = 0;
foreach (KeyValuePair<int, double> kvp in dict)
{
sum += kvp.Value;
}
return sum;
}
}
class ArtifactUtils
{
public static Dictionary<string, double[][]> substats_rolls = new Dictionary<string, double[][]>
{
{
"hp",
new double[][] {
new double[] {23.9, 29.88},
new double[] {50.19, 60.95, 71.7},
new double[] {100.38, 114.72, 129.06, 143.4},
new double[] {167.3, 191.2, 215.1, 239},
new double[] {209.13, 239, 268.88, 298.75}
}
},
{
"hp_",
new double[][] {
new double[] {1.17, 1.46},
new double[] {1.63, 1.98, 2.33},
new double[] {2.45, 2.8, 3.15, 3.5},
new double[] {3.26, 3.73, 4.2, 4.66},
new double[] {4.08, 4.66, 5.25, 5.83}
}
},
{
"atk",
new double[][] {
new double[] {1.56, 1.95},
new double[] {3.27, 3.97, 4.67},
new double[] {6.54, 7.47, 8.4, 9.34},
new double[] {10.89, 12.45, 14, 15.56},
new double[] {13.62, 15.56, 17.51, 19.45 }
}
},
{
"atk_",
new double[][] {
new double[] {1.17, 1.46},
new double[] {1.63, 1.98, 2.33},
new double[] {2.45, 2.8, 3.15, 3.5},
new double[] {3.26, 3.73, 4.2, 4.66},
new double[] {4.08, 4.66, 5.25, 5.83}
}
},
{
"def",
new double[][] {
new double[] {1.85, 2.31},
new double[] {3.89, 4.72, 5.56},
new double[] {10, 11.11, 7.78, 8.89},
new double[] {12.96, 14.82, 16.67, 18.52},
new double[] {16.2, 18.52, 20.83, 23.15}
}
},
{
"def_",
new double[][] {
new double[] {1.46, 1.82},
new double[] {2.04, 2.48, 2.91},
new double[] {3.06, 3.5, 3.93, 4.37},
new double[] {4.08, 4.66, 5.25, 5.83},
new double[] {5.1, 5.83, 6.56, 7.29}
}
},
{
"critRate_",
new double[][] {
new double[] {.78, .97},
new double[] {1.09, 1.32, 1.55},
new double[] {1.63, 1.86, 2.1, 2.33},
new double[] {2.18, 2.49, 2.8, 3.11},
new double[] {2.72, 3.11, 3.5, 3.89}
}
},
{
"critDMG_",
new double[][] {
new double[] {1.55, 1.94},
new double[] {2.18, 2.64, 3.11},
new double[] {3.26, 3.73, 4.2, 4.66},
new double[] {4.35, 4.97, 5.6, 6.22},
new double[] {5.44, 6.22, 6.99, 7.77}
}
},
{
"eleMas",
new double[][] {
new double[] {4.66, 5.83},
new double[] {6.53, 7.93, 9.33},
new double[] {11.19, 12.59, 13.99, 9.79},
new double[] {13.06, 14.92, 16.79, 18.65},
new double[] {16.32, 18.65, 20.98, 23.31}
}
},
{
"enerRech_",
new double[][] {
new double[] {1.3, 1.62},
new double[] {1.81, 2.2, 2.59},
new double[] {2.72, 3.11, 3.5, 3.89},
new double[] {3.63, 4.14, 4.66, 5.18},
new double[] {4.53, 5.18, 5.83, 6.48}
}
}
};
// ArtifactSub -> Rarity -> Stat value -> Stat index list
public static Dictionary<string, Dictionary<int, List<KeyValuePair<double, int[]>>>> substats_dict;
public static int[] SplitSubstats(string type, int rarity, double value)
{
if (!substats_initiated)
{
InitSubstats();
substats_initiated = true;
}
double last_stat_diff = 99999;
int[] last_stat_list = { 4, 4, 4, 4, 4, 4 };
foreach (KeyValuePair<double, int[]> value_to_list in substats_dict[type][rarity])
{
if (Math.Abs(value - value_to_list.Key) >= last_stat_diff)
{
return last_stat_list;
}
last_stat_diff = value - value_to_list.Key;
last_stat_list = value_to_list.Value;
}
// Default, should never happen
return last_stat_list;
}
private static void InitSubstats()
{
substats_dict = new Dictionary<string, Dictionary<int, List<KeyValuePair<double, int[]>>>>();
foreach (KeyValuePair<string, double[][]> stat_block_info in substats_rolls)
{
string stat_name = stat_block_info.Key;
substats_dict[stat_name] = new Dictionary<int, List<KeyValuePair<double, int[]>>>();
for (int rarity_index = 0; rarity_index < stat_block_info.Value.Length; rarity_index++)
{
var substat_options = new List<KeyValuePair<int, double>>();
// Substat index == 0 means no substat upgrade
substat_options.Add(new KeyValuePair<int, double>(0, 0));
for (int substat_index = 0; substat_index < substats_rolls[stat_name][rarity_index].Length; substat_index++)
{
substat_options.Add(new KeyValuePair<int, double>(substat_index+1, substats_rolls[stat_name][rarity_index][substat_index]));
}
var substat_sum_data = (from s1 in substat_options from s2 in substat_options from s3 in substat_options from s4 in substat_options from s5 in substat_options from s6 in substat_options select new { s1, s2, s3, s4, s5, s6 })
.Select(x => new List<KeyValuePair<int, double>> { x.s1, x.s2, x.s3, x.s4, x.s5, x.s6 })
.Distinct(new SubstatSumEquality());
var stats_map = new List<KeyValuePair<double, int[]>>();
foreach (List<KeyValuePair<int, double>> val in substat_sum_data.ToArray().OrderBy(list => SubstatSumEquality.sum_substat(list)))
{
var index_list = new List<int>();
foreach (KeyValuePair<int, double> pair in val)
{
if (pair.Key != 0)
index_list.Add(pair.Key);
}
stats_map.Add(new KeyValuePair<double, int[]>(SubstatSumEquality.sum_substat(val), index_list.ToArray()));
}
substats_dict[stat_name][rarity_index + 1] = stats_map;
}
}
}
private static bool substats_initiated = false;
}
}

View File

@@ -2,11 +2,11 @@
using System.Net.Http.Headers;
using System.Threading.Tasks;
using GrasscutterTools.Utils;
using Newtonsoft.Json;
namespace GrasscutterTools.Github
namespace GrasscutterTools.Utils
{
public static class ReleaseAPI
internal class ReleaseAPI
{
public static async Task<ReleaseInfo> GetReleasesLastest(string username, string repo)
{
@@ -14,15 +14,14 @@ namespace GrasscutterTools.Github
try
{
HttpHelper.HttpClient.DefaultRequestHeaders.UserAgent.Add(headerValue);
var r = await HttpHelper.GetAsync<dynamic>($"https://api.github.com/repos/{username}/{repo}/releases/latest");
return new ReleaseInfo
return await HttpHelper.GetAsync<ReleaseInfo>($"https://api.github.com/repos/{username}/{repo}/releases/latest");
}
catch
{
TagName = r.tag_name,
Url = r.html_url,
CraeteTime = r.created_at,
Name = r.name,
Body = r.body
};
// 如果Github无法访问尝试从Gitee获取
var release = await HttpHelper.GetAsync<ReleaseInfo>($"https://gitee.com/api/v5/repos/{username}/{repo}/releases/latest");
release.Url = $"https://gitee.com/{username}/{repo}/releases";
return release;
}
finally
{
@@ -32,14 +31,19 @@ namespace GrasscutterTools.Github
public class ReleaseInfo
{
[JsonProperty("tag_name")]
public string TagName { get; set; }
[JsonProperty("html_url")]
public string Url { get; set; }
[JsonProperty("created_at")]
public DateTimeOffset CraeteTime { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("body")]
public string Body { get; set; }
}
}

View File

@@ -1,53 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Costura.Fody" version="5.7.0" targetFramework="net48" developmentDependency="true" />
<package id="Fody" version="6.6.1" targetFramework="net48" developmentDependency="true" />
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net48" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net48" />
<package id="NETStandard.Library" version="2.0.3" targetFramework="net48" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net452" />
<package id="Resource.Embedder" version="2.2.0" targetFramework="net48" />
<package id="System.AppContext" version="4.3.0" targetFramework="net48" />
<package id="System.Collections" version="4.3.0" targetFramework="net48" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net48" />
<package id="System.Console" version="4.3.0" targetFramework="net48" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net48" />
<package id="System.Diagnostics.DiagnosticSource" version="4.3.0" targetFramework="net48" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net48" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net48" />
<package id="System.Globalization" version="4.3.0" targetFramework="net48" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net48" />
<package id="System.IO" version="4.3.0" targetFramework="net48" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net48" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net48" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net48" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Linq" version="4.3.0" targetFramework="net48" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net48" />
<package id="System.Net.Http" version="4.3.0" targetFramework="net48" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net48" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net48" />
<package id="System.Reflection" version="4.3.0" targetFramework="net48" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net48" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net48" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net48" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net48" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net48" />
<package id="System.Threading" version="4.3.0" targetFramework="net48" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net48" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net48" />
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net48" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net48" />
</packages>