Compare commits
105 Commits
Author | SHA1 | Date | |
---|---|---|---|
cd25afe0c7 | |||
302e4e327d | |||
52317d8d5a | |||
757bb2dd95 | |||
3be6550593 | |||
![]() |
f79764dbb5 | ||
![]() |
61a598d7e3 | ||
dc61940e3c | |||
086c4da557 | |||
d79b50527e | |||
4a91e5a6bd | |||
8db5fd1efd | |||
![]() |
d22ba331d9 | ||
![]() |
cc20e81ebf | ||
0dac9051f7 | |||
![]() |
78106ee726 | ||
b708cff0cd | |||
aa075f5f91 | |||
8d42ddee10 | |||
2a3100c822 | |||
97bc9d8f6a | |||
f2c4bfb7d3 | |||
d84f8036f7 | |||
16a57f38d3 | |||
88031a79d0 | |||
a36ce1af0f | |||
397ec8472b | |||
160b49d752 | |||
fd515b18cf | |||
5c7c64ea6c | |||
64626ad065 | |||
8a65120e47 | |||
150e3a1132 | |||
fbe53a7a0b | |||
641d130a72 | |||
6313373283 | |||
f70e61c686 | |||
7d19876072 | |||
74613a809d | |||
60e54b1c91 | |||
c860180564 | |||
f0885a1fee | |||
641a4b0006 | |||
fec144cb64 | |||
c6b2c0ea65 | |||
8c42aca027 | |||
d84a34b268 | |||
![]() |
eb6f15f078 | ||
![]() |
bd7aac6fcf | ||
346a68ddb4 | |||
e8736c997a | |||
![]() |
5d383ad72f | ||
![]() |
0ec942275e | ||
![]() |
24a38cbdf4 | ||
c0a798ba93 | |||
d930e3ee11 | |||
![]() |
3dbfa76de9 | ||
8634d37977 | |||
f2a923a654 | |||
5737a967b3 | |||
5f80a270c1 | |||
e3664f577e | |||
46eb1ee6b1 | |||
a43744c89d | |||
12d7dde2e7 | |||
![]() |
69068fad63 | ||
![]() |
2975ef0b49 | ||
0871238e59 | |||
5f2755f5bb | |||
746254c348 | |||
c43b73db3f | |||
af40aed3f3 | |||
![]() |
ea013737f6 | ||
79d4b266b8 | |||
6430000aad | |||
2b6af9aacd | |||
43ff071250 | |||
a70a3979e5 | |||
013b3c76b4 | |||
6575931ab2 | |||
26f5f31be5 | |||
7204297465 | |||
![]() |
4dfcb2538d | ||
![]() |
e9cd500628 | ||
7ce0c132fe | |||
5b1d86b155 | |||
53cb968e67 | |||
314f9b67e3 | |||
50f7e72ff5 | |||
ce7ac5bc8a | |||
aff13c2a97 | |||
eba9db1e35 | |||
71ac75a4ca | |||
f393b372ec | |||
cfb94e70b7 | |||
ab9b955c31 | |||
4e4b47a9e6 | |||
3da3bc4f23 | |||
7cc46eb677 | |||
b9d1a2c2cd | |||
a0cc908983 | |||
7dc7c7c8ac | |||
ad4ca74e71 | |||
a079685be8 | |||
6703037527 |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 40 KiB |
BIN
Doc/Screenshots-en/15-DropEditor.png
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
Doc/Screenshots-en/16-MailEditor.png
Normal file
After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 268 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 80 KiB |
BIN
Doc/Screenshots-ru/10-Waypoints.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Doc/Screenshots-ru/11-Manage.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
Doc/Screenshots-ru/12-Credits.png
Normal file
After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 258 KiB |
BIN
Doc/Screenshots-ru/13-Remote.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
Doc/Screenshots-ru/14-GachaBannerEditor.png
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
Doc/Screenshots-ru/15-DropEditor.png
Normal file
After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
BIN
Doc/Screenshots-ru/16-MailEditor.png
Normal file
After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 165 KiB |
BIN
Doc/Screenshots-ru/3-Quest.png
Normal file
After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 206 KiB |
BIN
Doc/Screenshots-ru/4-SpawnEntity.png
Normal file
After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 239 KiB |
Before Width: | Height: | Size: 253 KiB |
BIN
Doc/Screenshots-ru/7-CustomWeapon.png
Normal file
After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 132 KiB |
BIN
Doc/Screenshots-ru/8-GiveItem.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
Doc/Screenshots-ru/9-ChangeScene.png
Normal file
After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 143 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 49 KiB |
BIN
Doc/Screenshots/15-DropEditor.png
Normal file
After Width: | Height: | Size: 69 KiB |
BIN
Doc/Screenshots/16-MailEditor.png
Normal file
After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 31 KiB |
BIN
Doc/Screenshots/RunMultipleCommands.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
65
README.md
@@ -3,60 +3,71 @@
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/blob/main/LICENSE)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/stargazers)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
|
||||
[](https://qm.qq.com/cgi-bin/qm/qr?k=PdS9--b-n8LEAmYjX8fNFXtKDcsp4NHN&jump_from=webapi&authKey=7ty3ZCKYMKLGWLmO8O84qiNAZ0EuCnSGF+acP+74xuDMKYXXNjuPP7iUzffHz4r2)
|
||||
|
||||
中文 | [English](README_en-US.md) | [Русский](README_ru-RU.md)
|
||||
English | [简体中文](README_zh-cn.md) | [Русский](README_ru-RU.md)
|
||||
|
||||
## Commands Generator
|
||||
|
||||
请从 [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases) 中获取最新版本
|
||||
Please download the latest version from [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
|
||||
|
||||
本工具支持 简中, 繁中, English 与 Русский 等语言。
|
||||
Support 简体中文, 繁体中文, English and Русский languages.
|
||||
|
||||
## 远程执行
|
||||
Welcome everyone to improve the [ID Resource](/Source/GrasscutterTools/Resources/en-us).
|
||||
|
||||
服务端需要 [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin) 插件支持
|
||||
## Update log
|
||||
### GrasscutterTools-v1.7.0
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Remote command
|
||||
|
||||
The server require [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin) support
|
||||
|
||||

|
||||
|
||||
> 如果你无法连接到服务器,请确认填写的服务器地址是否正确。
|
||||
>
|
||||
> 建议配置服务器为HTTP模式,如图所示(config.json):
|
||||
> 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):
|
||||
> 
|
||||
>
|
||||
> 你可以用浏览器访问 http://127.0.0.1/status/server 来测试服务是否正常工作。
|
||||
>
|
||||
> 如果使用的不是`80`端口,则要在url中指定访问的端口号:http://127.0.0.1:443
|
||||
> 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
|
||||
|
||||
---
|
||||
|
||||
## 软件截图
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
|
||||

|
||||

|
||||
|
@@ -1,62 +0,0 @@
|
||||
# Grasscutter Tools
|
||||
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/blob/main/LICENSE)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/stargazers)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
|
||||
|
||||
[中文](README.md) | English | [Русский](README_ru-RU.md)
|
||||
|
||||
## Commands Generator
|
||||
|
||||
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
|
||||
|
||||

|
||||
|
||||
> 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):
|
||||
> 
|
||||
>
|
||||
> 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
|
||||
|
||||
---
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
@@ -4,28 +4,40 @@
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/stargazers)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
|
||||
|
||||
[中文](README.md) | [English](README_en-US.md) | Русский - Перевод Юрий Дворецкий
|
||||
[English](README.md) | [简体中文](README_zh-cn.md) | Русский - Перевод [Юрий Дворецкий](https://github.com/yurikenjx) (с исправлениями от [EgorBron](https://github.com/EgorBron))
|
||||
|
||||
## Генератор команд
|
||||
## Генератор команд (GCG)
|
||||
|
||||
Пожалуйса загрузите последнюю версию с [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
|
||||
Загрузите последнюю версию из вкладки [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases).
|
||||
|
||||
Support 简中, 繁中, English and Русский languages.
|
||||
GCG поддерживает 简体中文 (китайский упр.), 繁体中文 (китайский трад.), English (английский) и Русский языки.
|
||||
|
||||
## Удаленная команда
|
||||
Приглашаем всех улучшить [ID ресурсов и перевод](/Source/GrasscutterTools/Resources/ru-ru)
|
||||
|
||||
Сервер требует [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin) помощь
|
||||
## Update log
|
||||
### GrasscutterTools-v1.7.0
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Удаленная команда (OpenCommand)
|
||||
|
||||
Чтобы использовать команды прямо из GCG, серверу требуется плагин [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin).
|
||||
|
||||

|
||||
|
||||
> If you cannot connect to the server, please make sure the server address is correct.
|
||||
> Если вы не можете подключиться к серверу, проверьте правильность написания его URL-адреса.
|
||||
>
|
||||
> Рекомендуется изменить секцию HTTP в конфиге как на скриншоте ниже (конфиг - файл config.json):
|
||||
>
|
||||
> It is recommended to configure the server to HTTP mode, as shown in the figure(config.json):
|
||||
> 
|
||||
>
|
||||
> 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
|
||||
> Для проверки можете посетить http://127.0.0.1/status/server в браузере, чтобы проверить работоспособность OpenCommand.
|
||||
>
|
||||
> Если вы не указали порт `80` в конфиге, вам нужно указать свой порт в URL-адресе (например, http://127.0.0.1:443)
|
||||
|
||||
---
|
||||
|
||||
@@ -35,28 +47,30 @@ Support 简中, 繁中, English and Русский languages.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
77
README_zh-cn.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# Grasscutter Tools
|
||||
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/blob/main/LICENSE)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/stargazers)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
|
||||
[](https://qm.qq.com/cgi-bin/qm/qr?k=PdS9--b-n8LEAmYjX8fNFXtKDcsp4NHN&jump_from=webapi&authKey=7ty3ZCKYMKLGWLmO8O84qiNAZ0EuCnSGF+acP+74xuDMKYXXNjuPP7iUzffHz4r2)
|
||||
|
||||
[English](README.md) | 简体中文 | [Русский](README_ru-RU.md)
|
||||
|
||||
## Commands Generator
|
||||
|
||||
请从 [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases) 中获取最新版本
|
||||
|
||||
本工具支持 简体中文, 繁体中文, English 与 Русский 语言。
|
||||
|
||||
欢迎大家一起来完善工具的[内置资源](/Source/GrasscutterTools/Resources/zh-cn)。
|
||||
|
||||
## Update log
|
||||
|
||||
### GrasscutterTools-v1.7.1
|
||||
|
||||

|
||||
|
||||
### GrasscutterTools-v1.7.0
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 远程执行
|
||||
|
||||
服务端需要 [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin) 插件支持
|
||||
|
||||

|
||||
|
||||
> 如果你无法连接到服务器,请确认填写的服务器地址是否正确。
|
||||
>
|
||||
> 建议配置服务器为HTTP模式,如图所示(config.json):
|
||||
> 
|
||||
>
|
||||
> 你可以用浏览器访问 http://127.0.0.1/status/server 来测试服务是否正常工作。
|
||||
>
|
||||
> 如果使用的不是`80`端口,则要在url中指定访问的端口号:http://127.0.0.1:443
|
||||
|
||||
---
|
||||
|
||||
## 软件截图
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
@@ -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,11 +38,20 @@
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="CommandVersion" serializeAs="String">
|
||||
<value>1.2.2</value>
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="IsTopMost" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="DropJsonPath" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="DefaultMailSender" serializeAs="String">
|
||||
<value>GrasscutterTools</value>
|
||||
</setting>
|
||||
<setting name="ShopJsonPath" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
</GrasscutterTools.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows.Forms;
|
||||
|
||||
|
366
Source/GrasscutterTools/Forms/FormDropEditor.Designer.cs
generated
Normal file
@@ -0,0 +1,366 @@
|
||||
namespace GrasscutterTools.Forms
|
||||
{
|
||||
partial class FormDropEditor
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormDropEditor));
|
||||
this.LblDropPathLabel = new System.Windows.Forms.Label();
|
||||
this.TxtDropJsonPath = new System.Windows.Forms.TextBox();
|
||||
this.BtnLoad = new System.Windows.Forms.Button();
|
||||
this.BtnSave = new System.Windows.Forms.Button();
|
||||
this.ListMonsters = new System.Windows.Forms.ListBox();
|
||||
this.TxtMonsterFilter = new System.Windows.Forms.TextBox();
|
||||
this.TxtItemFilter = new System.Windows.Forms.TextBox();
|
||||
this.ListDropData = new System.Windows.Forms.ListBox();
|
||||
this.GrpDropList = new System.Windows.Forms.GroupBox();
|
||||
this.BtnCopyAll = new System.Windows.Forms.Button();
|
||||
this.BtnClear = new System.Windows.Forms.Button();
|
||||
this.BtnPaste = new System.Windows.Forms.Button();
|
||||
this.BtnCopy = new System.Windows.Forms.Button();
|
||||
this.TxtItem = new System.Windows.Forms.TextBox();
|
||||
this.BtnDelete = new System.Windows.Forms.Button();
|
||||
this.BtnAddOrUpdate = new System.Windows.Forms.Button();
|
||||
this.LblItemLabel = new System.Windows.Forms.Label();
|
||||
this.LblTilde2 = new System.Windows.Forms.Label();
|
||||
this.LblTilde1 = new System.Windows.Forms.Label();
|
||||
this.NUDMaxWeight = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDMinWeight = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDMaxCount = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDMinCount = new System.Windows.Forms.NumericUpDown();
|
||||
this.LblWeightLabel = new System.Windows.Forms.Label();
|
||||
this.LblCountLabel = new System.Windows.Forms.Label();
|
||||
this.ListItems = new System.Windows.Forms.ListBox();
|
||||
this.GrpMonsterList = new System.Windows.Forms.GroupBox();
|
||||
this.GrpItemList = new System.Windows.Forms.GroupBox();
|
||||
this.GrpDropList.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMaxWeight)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMinWeight)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMaxCount)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMinCount)).BeginInit();
|
||||
this.GrpMonsterList.SuspendLayout();
|
||||
this.GrpItemList.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// LblDropPathLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblDropPathLabel, "LblDropPathLabel");
|
||||
this.LblDropPathLabel.Name = "LblDropPathLabel";
|
||||
//
|
||||
// TxtDropJsonPath
|
||||
//
|
||||
resources.ApplyResources(this.TxtDropJsonPath, "TxtDropJsonPath");
|
||||
this.TxtDropJsonPath.Name = "TxtDropJsonPath";
|
||||
//
|
||||
// BtnLoad
|
||||
//
|
||||
resources.ApplyResources(this.BtnLoad, "BtnLoad");
|
||||
this.BtnLoad.Name = "BtnLoad";
|
||||
this.BtnLoad.UseVisualStyleBackColor = true;
|
||||
this.BtnLoad.Click += new System.EventHandler(this.BtnLoad_Click);
|
||||
//
|
||||
// BtnSave
|
||||
//
|
||||
resources.ApplyResources(this.BtnSave, "BtnSave");
|
||||
this.BtnSave.Name = "BtnSave";
|
||||
this.BtnSave.UseVisualStyleBackColor = true;
|
||||
this.BtnSave.Click += new System.EventHandler(this.BtnSave_Click);
|
||||
//
|
||||
// ListMonsters
|
||||
//
|
||||
resources.ApplyResources(this.ListMonsters, "ListMonsters");
|
||||
this.ListMonsters.FormattingEnabled = true;
|
||||
this.ListMonsters.Name = "ListMonsters";
|
||||
this.ListMonsters.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.ListMonsters.SelectedIndexChanged += new System.EventHandler(this.ListMonsters_SelectedIndexChanged);
|
||||
//
|
||||
// TxtMonsterFilter
|
||||
//
|
||||
resources.ApplyResources(this.TxtMonsterFilter, "TxtMonsterFilter");
|
||||
this.TxtMonsterFilter.Name = "TxtMonsterFilter";
|
||||
this.TxtMonsterFilter.TextChanged += new System.EventHandler(this.TxtMonsterFilter_TextChanged);
|
||||
//
|
||||
// TxtItemFilter
|
||||
//
|
||||
resources.ApplyResources(this.TxtItemFilter, "TxtItemFilter");
|
||||
this.TxtItemFilter.Name = "TxtItemFilter";
|
||||
this.TxtItemFilter.TextChanged += new System.EventHandler(this.TxtItemFilter_TextChanged);
|
||||
//
|
||||
// ListDropData
|
||||
//
|
||||
resources.ApplyResources(this.ListDropData, "ListDropData");
|
||||
this.ListDropData.FormattingEnabled = true;
|
||||
this.ListDropData.Name = "ListDropData";
|
||||
this.ListDropData.SelectedIndexChanged += new System.EventHandler(this.ListDropData_SelectedIndexChanged);
|
||||
//
|
||||
// GrpDropList
|
||||
//
|
||||
resources.ApplyResources(this.GrpDropList, "GrpDropList");
|
||||
this.GrpDropList.Controls.Add(this.BtnCopyAll);
|
||||
this.GrpDropList.Controls.Add(this.BtnClear);
|
||||
this.GrpDropList.Controls.Add(this.BtnPaste);
|
||||
this.GrpDropList.Controls.Add(this.BtnCopy);
|
||||
this.GrpDropList.Controls.Add(this.TxtItem);
|
||||
this.GrpDropList.Controls.Add(this.BtnDelete);
|
||||
this.GrpDropList.Controls.Add(this.BtnAddOrUpdate);
|
||||
this.GrpDropList.Controls.Add(this.LblItemLabel);
|
||||
this.GrpDropList.Controls.Add(this.LblTilde2);
|
||||
this.GrpDropList.Controls.Add(this.LblTilde1);
|
||||
this.GrpDropList.Controls.Add(this.NUDMaxWeight);
|
||||
this.GrpDropList.Controls.Add(this.NUDMinWeight);
|
||||
this.GrpDropList.Controls.Add(this.NUDMaxCount);
|
||||
this.GrpDropList.Controls.Add(this.NUDMinCount);
|
||||
this.GrpDropList.Controls.Add(this.LblWeightLabel);
|
||||
this.GrpDropList.Controls.Add(this.LblCountLabel);
|
||||
this.GrpDropList.Controls.Add(this.ListDropData);
|
||||
this.GrpDropList.Name = "GrpDropList";
|
||||
this.GrpDropList.TabStop = false;
|
||||
//
|
||||
// BtnCopyAll
|
||||
//
|
||||
resources.ApplyResources(this.BtnCopyAll, "BtnCopyAll");
|
||||
this.BtnCopyAll.Name = "BtnCopyAll";
|
||||
this.BtnCopyAll.UseVisualStyleBackColor = true;
|
||||
this.BtnCopyAll.Click += new System.EventHandler(this.BtnCopyAll_Click);
|
||||
//
|
||||
// BtnClear
|
||||
//
|
||||
resources.ApplyResources(this.BtnClear, "BtnClear");
|
||||
this.BtnClear.Name = "BtnClear";
|
||||
this.BtnClear.UseVisualStyleBackColor = true;
|
||||
this.BtnClear.Click += new System.EventHandler(this.BtnClear_Click);
|
||||
//
|
||||
// BtnPaste
|
||||
//
|
||||
resources.ApplyResources(this.BtnPaste, "BtnPaste");
|
||||
this.BtnPaste.Name = "BtnPaste";
|
||||
this.BtnPaste.UseVisualStyleBackColor = true;
|
||||
this.BtnPaste.Click += new System.EventHandler(this.BtnPaste_Click);
|
||||
//
|
||||
// BtnCopy
|
||||
//
|
||||
resources.ApplyResources(this.BtnCopy, "BtnCopy");
|
||||
this.BtnCopy.Name = "BtnCopy";
|
||||
this.BtnCopy.UseVisualStyleBackColor = true;
|
||||
this.BtnCopy.Click += new System.EventHandler(this.BtnCopy_Click);
|
||||
//
|
||||
// TxtItem
|
||||
//
|
||||
resources.ApplyResources(this.TxtItem, "TxtItem");
|
||||
this.TxtItem.Name = "TxtItem";
|
||||
//
|
||||
// BtnDelete
|
||||
//
|
||||
resources.ApplyResources(this.BtnDelete, "BtnDelete");
|
||||
this.BtnDelete.Name = "BtnDelete";
|
||||
this.BtnDelete.UseVisualStyleBackColor = true;
|
||||
this.BtnDelete.Click += new System.EventHandler(this.BtnDelete_Click);
|
||||
//
|
||||
// BtnAddOrUpdate
|
||||
//
|
||||
resources.ApplyResources(this.BtnAddOrUpdate, "BtnAddOrUpdate");
|
||||
this.BtnAddOrUpdate.Name = "BtnAddOrUpdate";
|
||||
this.BtnAddOrUpdate.UseVisualStyleBackColor = true;
|
||||
this.BtnAddOrUpdate.Click += new System.EventHandler(this.BtnAddOrUpdate_Click);
|
||||
//
|
||||
// LblItemLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblItemLabel, "LblItemLabel");
|
||||
this.LblItemLabel.Name = "LblItemLabel";
|
||||
//
|
||||
// LblTilde2
|
||||
//
|
||||
resources.ApplyResources(this.LblTilde2, "LblTilde2");
|
||||
this.LblTilde2.Name = "LblTilde2";
|
||||
//
|
||||
// LblTilde1
|
||||
//
|
||||
resources.ApplyResources(this.LblTilde1, "LblTilde1");
|
||||
this.LblTilde1.Name = "LblTilde1";
|
||||
//
|
||||
// NUDMaxWeight
|
||||
//
|
||||
resources.ApplyResources(this.NUDMaxWeight, "NUDMaxWeight");
|
||||
this.NUDMaxWeight.Maximum = new decimal(new int[] {
|
||||
10000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDMaxWeight.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDMaxWeight.Name = "NUDMaxWeight";
|
||||
this.NUDMaxWeight.Value = new decimal(new int[] {
|
||||
10000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// NUDMinWeight
|
||||
//
|
||||
resources.ApplyResources(this.NUDMinWeight, "NUDMinWeight");
|
||||
this.NUDMinWeight.Maximum = new decimal(new int[] {
|
||||
10000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDMinWeight.Name = "NUDMinWeight";
|
||||
//
|
||||
// NUDMaxCount
|
||||
//
|
||||
resources.ApplyResources(this.NUDMaxCount, "NUDMaxCount");
|
||||
this.NUDMaxCount.Maximum = new decimal(new int[] {
|
||||
1000000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDMaxCount.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDMaxCount.Name = "NUDMaxCount";
|
||||
this.NUDMaxCount.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// NUDMinCount
|
||||
//
|
||||
resources.ApplyResources(this.NUDMinCount, "NUDMinCount");
|
||||
this.NUDMinCount.Maximum = new decimal(new int[] {
|
||||
10000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDMinCount.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDMinCount.Name = "NUDMinCount";
|
||||
this.NUDMinCount.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// LblWeightLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblWeightLabel, "LblWeightLabel");
|
||||
this.LblWeightLabel.Name = "LblWeightLabel";
|
||||
//
|
||||
// LblCountLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblCountLabel, "LblCountLabel");
|
||||
this.LblCountLabel.Name = "LblCountLabel";
|
||||
//
|
||||
// ListItems
|
||||
//
|
||||
resources.ApplyResources(this.ListItems, "ListItems");
|
||||
this.ListItems.FormattingEnabled = true;
|
||||
this.ListItems.Name = "ListItems";
|
||||
this.ListItems.SelectedIndexChanged += new System.EventHandler(this.ListItems_SelectedIndexChanged);
|
||||
//
|
||||
// GrpMonsterList
|
||||
//
|
||||
resources.ApplyResources(this.GrpMonsterList, "GrpMonsterList");
|
||||
this.GrpMonsterList.Controls.Add(this.ListMonsters);
|
||||
this.GrpMonsterList.Controls.Add(this.TxtMonsterFilter);
|
||||
this.GrpMonsterList.Name = "GrpMonsterList";
|
||||
this.GrpMonsterList.TabStop = false;
|
||||
//
|
||||
// GrpItemList
|
||||
//
|
||||
resources.ApplyResources(this.GrpItemList, "GrpItemList");
|
||||
this.GrpItemList.Controls.Add(this.TxtItemFilter);
|
||||
this.GrpItemList.Controls.Add(this.ListItems);
|
||||
this.GrpItemList.Name = "GrpItemList";
|
||||
this.GrpItemList.TabStop = false;
|
||||
//
|
||||
// FormDropEditor
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.GrpItemList);
|
||||
this.Controls.Add(this.GrpMonsterList);
|
||||
this.Controls.Add(this.GrpDropList);
|
||||
this.Controls.Add(this.BtnSave);
|
||||
this.Controls.Add(this.BtnLoad);
|
||||
this.Controls.Add(this.TxtDropJsonPath);
|
||||
this.Controls.Add(this.LblDropPathLabel);
|
||||
this.Name = "FormDropEditor";
|
||||
this.GrpDropList.ResumeLayout(false);
|
||||
this.GrpDropList.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMaxWeight)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMinWeight)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMaxCount)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMinCount)).EndInit();
|
||||
this.GrpMonsterList.ResumeLayout(false);
|
||||
this.GrpMonsterList.PerformLayout();
|
||||
this.GrpItemList.ResumeLayout(false);
|
||||
this.GrpItemList.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label LblDropPathLabel;
|
||||
private System.Windows.Forms.TextBox TxtDropJsonPath;
|
||||
private System.Windows.Forms.Button BtnLoad;
|
||||
private System.Windows.Forms.Button BtnSave;
|
||||
private System.Windows.Forms.ListBox ListMonsters;
|
||||
private System.Windows.Forms.TextBox TxtMonsterFilter;
|
||||
private System.Windows.Forms.TextBox TxtItemFilter;
|
||||
private System.Windows.Forms.ListBox ListDropData;
|
||||
private System.Windows.Forms.GroupBox GrpDropList;
|
||||
private System.Windows.Forms.Label LblTilde2;
|
||||
private System.Windows.Forms.Label LblTilde1;
|
||||
private System.Windows.Forms.NumericUpDown NUDMaxWeight;
|
||||
private System.Windows.Forms.NumericUpDown NUDMinWeight;
|
||||
private System.Windows.Forms.NumericUpDown NUDMaxCount;
|
||||
private System.Windows.Forms.NumericUpDown NUDMinCount;
|
||||
private System.Windows.Forms.Label LblWeightLabel;
|
||||
private System.Windows.Forms.Label LblCountLabel;
|
||||
private System.Windows.Forms.Label LblItemLabel;
|
||||
private System.Windows.Forms.ListBox ListItems;
|
||||
private System.Windows.Forms.GroupBox GrpMonsterList;
|
||||
private System.Windows.Forms.GroupBox GrpItemList;
|
||||
private System.Windows.Forms.Button BtnDelete;
|
||||
private System.Windows.Forms.Button BtnAddOrUpdate;
|
||||
private System.Windows.Forms.TextBox TxtItem;
|
||||
private System.Windows.Forms.Button BtnCopy;
|
||||
private System.Windows.Forms.Button BtnPaste;
|
||||
private System.Windows.Forms.Button BtnClear;
|
||||
private System.Windows.Forms.Button BtnCopyAll;
|
||||
}
|
||||
}
|
512
Source/GrasscutterTools/Forms/FormDropEditor.cs
Normal file
@@ -0,0 +1,512 @@
|
||||
/**
|
||||
* 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.IO;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using GrasscutterTools.Game;
|
||||
using GrasscutterTools.Game.Drop;
|
||||
using GrasscutterTools.Properties;
|
||||
using GrasscutterTools.Utils;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Forms
|
||||
{
|
||||
public partial class FormDropEditor : Form
|
||||
{
|
||||
#region - 成员 -
|
||||
|
||||
/// <summary>
|
||||
/// 掉落池
|
||||
/// Key:怪物ID
|
||||
/// Value:掉落列表
|
||||
/// </summary>
|
||||
private Dictionary<int, List<DropData>> Banners;
|
||||
|
||||
/// <summary>
|
||||
/// 怪物集
|
||||
/// </summary>
|
||||
private readonly string[] Monsters;
|
||||
|
||||
/// <summary>
|
||||
/// 当前选中项的掉落列表
|
||||
/// (当选中多条时,数据为交集)
|
||||
/// </summary>
|
||||
private readonly List<DropData> SelectedDropList = new List<DropData>();
|
||||
|
||||
/// <summary>
|
||||
/// 掉落物剪贴板
|
||||
/// </summary>
|
||||
private readonly List<DropData> DropClipboard = new List<DropData>();
|
||||
|
||||
#endregion - 成员 -
|
||||
|
||||
#region - 构造与窗体事件 -
|
||||
|
||||
public FormDropEditor()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
Icon = Resources.IconGrasscutter;
|
||||
|
||||
Monsters = GameData.Monsters.AllLines.ToArray();
|
||||
Array.Sort(Monsters);
|
||||
|
||||
ListMonsters.Items.AddRange(Monsters);
|
||||
ListItems.Items.AddRange(GameData.Items.Lines);
|
||||
|
||||
Banners = new Dictionary<int, List<DropData>>();
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
try
|
||||
{
|
||||
// 加载文件路径
|
||||
var path = Settings.Default.DropJsonPath;
|
||||
TxtDropJsonPath.Text = path;
|
||||
if (!string.IsNullOrEmpty(path) && File.Exists(path))
|
||||
LoadBanners(path);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnFormClosed(FormClosedEventArgs e)
|
||||
{
|
||||
// 保存文件路径
|
||||
Settings.Default.DropJsonPath = TxtDropJsonPath.Text;
|
||||
Settings.Default.Save();
|
||||
|
||||
base.OnFormClosed(e);
|
||||
}
|
||||
|
||||
#endregion - 构造与窗体事件 -
|
||||
|
||||
#region - Drop.json 文件相关 -
|
||||
|
||||
/// <summary>
|
||||
/// 加载按钮点击时触发
|
||||
/// </summary>
|
||||
private void BtnLoad_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var path = TxtDropJsonPath.Text.Trim();
|
||||
if (path == string.Empty)
|
||||
{
|
||||
var dialog = new OpenFileDialog
|
||||
{
|
||||
FileName = "Drop.json",
|
||||
Filter = "Drop.Json (*.json)|*.json|All files (*.*)|*.*",
|
||||
};
|
||||
var result = dialog.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
path = TxtDropJsonPath.Text = dialog.FileName;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
// 反序列化
|
||||
LoadBanners(path);
|
||||
MessageBox.Show("OK", Resources.Tips, MessageBoxButtons.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadBanners(string path)
|
||||
{
|
||||
// 反序列化
|
||||
var banners = JsonConvert.DeserializeObject<List<DropInfo>>(File.ReadAllText(path));
|
||||
Banners = new Dictionary<int, List<DropData>>(banners.Count);
|
||||
foreach (var item in banners)
|
||||
Banners.Add(item.MonsterId, item.DropDataList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存按钮点击时触发
|
||||
/// </summary>
|
||||
private void BtnSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var path = TxtDropJsonPath.Text.Trim();
|
||||
if (path == string.Empty)
|
||||
{
|
||||
var dialog = new SaveFileDialog
|
||||
{
|
||||
FileName = "Drop.json",
|
||||
Filter = "Drop.json (*.json)|*.json|All files (*.*)|*.*",
|
||||
};
|
||||
var result = dialog.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
path = TxtDropJsonPath.Text = dialog.FileName;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
// 序列化
|
||||
var banners = new List<DropInfo>(Banners.Count);
|
||||
foreach (var item in Banners)
|
||||
{
|
||||
banners.Add(new DropInfo
|
||||
{
|
||||
MonsterId = item.Key,
|
||||
DropDataList = item.Value,
|
||||
});
|
||||
}
|
||||
File.WriteAllText(path, JsonConvert.SerializeObject(banners));
|
||||
MessageBox.Show("OK", Resources.Tips, MessageBoxButtons.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion - Drop.json 文件相关 -
|
||||
|
||||
#region - 怪物列表 -
|
||||
|
||||
/// <summary>
|
||||
/// 怪物列表过滤器文本改变时触发
|
||||
/// </summary>
|
||||
private void TxtMonsterFilter_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
UIUtil.ListBoxFilter(ListMonsters, Monsters, TxtMonsterFilter.Text);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 遍历选中项怪物Id集合
|
||||
/// </summary>
|
||||
private IEnumerable<int> SelectedMonsterIds()
|
||||
{
|
||||
foreach (string item in ListMonsters.SelectedItems)
|
||||
yield return ItemMap.ToId(item);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 怪物列表选中项改变时触发
|
||||
/// </summary>
|
||||
private void ListMonsters_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (ListMonsters.SelectedItems.Count == 0) return;
|
||||
|
||||
// 掉落物列表标题显示
|
||||
var sp = GrpDropList.Text.IndexOf(" | ");
|
||||
if (sp >= 0) GrpDropList.Text = GrpDropList.Text.Remove(sp);
|
||||
if (ListMonsters.SelectedItems.Count == 1)
|
||||
{
|
||||
var item = ListMonsters.SelectedItem as string;
|
||||
GrpDropList.Text += " | " + item;
|
||||
}
|
||||
else
|
||||
{
|
||||
GrpDropList.Text += " | Monsters x" + ListMonsters.SelectedItems.Count.ToString();
|
||||
}
|
||||
|
||||
// 获取选中项中相同的掉落物集合(仅物品、掉落数量、掉落概率完全一致的显示)
|
||||
SelectedDropList.Clear();
|
||||
var first = true;
|
||||
foreach (var monsterId in SelectedMonsterIds())
|
||||
{
|
||||
if (Banners.TryGetValue(monsterId, out List<DropData> dropList))
|
||||
{
|
||||
if (first)
|
||||
{
|
||||
SelectedDropList.AddRange(dropList);
|
||||
first = false;
|
||||
}
|
||||
else if (SelectedDropList.Count > 0)
|
||||
{
|
||||
// 仅保留交集
|
||||
var intersect = SelectedDropList.Intersect(dropList).ToList();
|
||||
SelectedDropList.Clear();
|
||||
SelectedDropList.AddRange(intersect);
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectedDropList.Clear();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ShowDropList(SelectedDropList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示指定掉落列表
|
||||
/// </summary>
|
||||
/// <param name="dropList">掉落物列表</param>
|
||||
private void ShowDropList(List<DropData> dropList)
|
||||
{
|
||||
// 显示到列表
|
||||
ListDropData.BeginUpdate();
|
||||
ListDropData.Items.Clear();
|
||||
if (dropList.Count > 0)
|
||||
{
|
||||
ListDropData.Items.AddRange(dropList.Select(it => it.ToString()).ToArray());
|
||||
ListDropData.SelectedIndex = 0;
|
||||
}
|
||||
ListDropData.EndUpdate();
|
||||
}
|
||||
|
||||
#endregion - 怪物列表 -
|
||||
|
||||
#region - 掉落物列表 -
|
||||
|
||||
/// <summary>
|
||||
/// 掉落列表选中项改变时触发
|
||||
/// </summary>
|
||||
private void ListDropData_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (ListDropData.SelectedIndex == -1) return;
|
||||
|
||||
var dropData = SelectedDropList[ListDropData.SelectedIndex];
|
||||
|
||||
TxtItem.Text = $"{dropData.ItemId} : {GameData.Items[dropData.ItemId]}";
|
||||
NUDMinCount.Value = dropData.MinCount;
|
||||
NUDMaxCount.Value = dropData.MaxCount;
|
||||
NUDMinWeight.Value = dropData.MinWeight;
|
||||
NUDMaxWeight.Value = dropData.MaxWeight;
|
||||
|
||||
//BtnCopy.Enabled = true;
|
||||
//BtnDelete.Enabled = true;
|
||||
//BtnAddOrUpdate.Enabled = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击复制按钮时触发
|
||||
/// </summary>
|
||||
private async void BtnCopy_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ListDropData.SelectedIndex == -1) return;
|
||||
DropClipboard.Clear();
|
||||
DropClipboard.Add(SelectedDropList[ListDropData.SelectedIndex]);
|
||||
await UIUtil.ButtonComplete(BtnCopy);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击复制全部按钮时触发
|
||||
/// </summary>
|
||||
private async void BtnCopyAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedDropList.Count == 0) return;
|
||||
DropClipboard.Clear();
|
||||
DropClipboard.AddRange(SelectedDropList);
|
||||
await UIUtil.ButtonComplete(BtnCopyAll);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击粘贴按钮时触发
|
||||
/// </summary>
|
||||
private void BtnPaste_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (DropClipboard.Count == 0) return;
|
||||
foreach (var item in DropClipboard)
|
||||
AddOrUpdateDrop(item);
|
||||
ShowDropList(SelectedDropList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击删除按钮时触发
|
||||
/// </summary>
|
||||
private void BtnDelete_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ListDropData.SelectedIndex == -1) return;
|
||||
|
||||
var dropData = SelectedDropList[ListDropData.SelectedIndex];
|
||||
RemoveDrop(dropData);
|
||||
ShowDropList(SelectedDropList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击清空按钮时触发
|
||||
/// </summary>
|
||||
private void BtnClear_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedDropList.Count == 0)
|
||||
return;
|
||||
if (MessageBox.Show(Resources.AskConfirmDeletion, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
for (int i = SelectedDropList.Count - 1; i >= 0; i--)
|
||||
RemoveDrop(SelectedDropList[i]);
|
||||
ShowDropList(SelectedDropList);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击添加或更新按钮时触发
|
||||
/// </summary>
|
||||
private void BtnAddOrUpdate_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ListMonsters.SelectedItems.Count == 0)
|
||||
return;
|
||||
try
|
||||
{
|
||||
AddOrUpdateDrop(GetInput());
|
||||
}
|
||||
catch (FormatException ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
ShowDropList(SelectedDropList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取输入
|
||||
/// </summary>
|
||||
/// <returns>掉落物信息</returns>
|
||||
private DropData GetInput()
|
||||
{
|
||||
var dropData = new DropData();
|
||||
|
||||
var item = TxtItem.Text;
|
||||
dropData.ItemId = ItemMap.ToId(item);
|
||||
//if (int.TryParse(item.Substring(0, item.IndexOf(':')).Trim(), out int itemId))
|
||||
//{
|
||||
// dropData.ItemId = itemId;
|
||||
//}
|
||||
|
||||
if (NUDMaxCount.Value < NUDMinCount.Value)
|
||||
{
|
||||
dropData.MinCount = (int)NUDMaxCount.Value;
|
||||
dropData.MaxCount = (int)NUDMinCount.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
dropData.MinCount = (int)NUDMinCount.Value;
|
||||
dropData.MaxCount = (int)NUDMaxCount.Value;
|
||||
}
|
||||
|
||||
if (NUDMaxWeight.Value < NUDMinWeight.Value)
|
||||
{
|
||||
dropData.MinWeight = (int)NUDMaxWeight.Value;
|
||||
dropData.MaxWeight = (int)NUDMinWeight.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
dropData.MinWeight = (int)NUDMinWeight.Value;
|
||||
dropData.MaxWeight = (int)NUDMaxWeight.Value;
|
||||
}
|
||||
|
||||
return dropData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加或更新掉落物到当前选中项
|
||||
/// </summary>
|
||||
/// <param name="data">掉落物信息</param>
|
||||
private void AddOrUpdateDrop(DropData data)
|
||||
{
|
||||
if (ListMonsters.SelectedItems.Count == 0)
|
||||
return;
|
||||
|
||||
foreach (var monsterId in SelectedMonsterIds())
|
||||
{
|
||||
if (!Banners.TryGetValue(monsterId, out List<DropData> dropList))
|
||||
{
|
||||
dropList = new List<DropData>();
|
||||
Banners[monsterId] = dropList;
|
||||
}
|
||||
|
||||
AddOrUpdateDrop(dropList, data);
|
||||
}
|
||||
|
||||
AddOrUpdateDrop(SelectedDropList, data);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从当前选中项移除掉落物
|
||||
/// </summary>
|
||||
/// <param name="data">掉落物信息</param>
|
||||
private void RemoveDrop(DropData data)
|
||||
{
|
||||
if (ListMonsters.SelectedItems.Count == 0)
|
||||
return;
|
||||
|
||||
foreach (var monsterId in SelectedMonsterIds())
|
||||
{
|
||||
if (!Banners.TryGetValue(monsterId, out List<DropData> dropList))
|
||||
{
|
||||
dropList = new List<DropData>();
|
||||
Banners[monsterId] = dropList;
|
||||
}
|
||||
|
||||
dropList.Remove(data);
|
||||
}
|
||||
|
||||
SelectedDropList.Remove(data);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加或更新掉落物到指定列表中
|
||||
/// </summary>
|
||||
/// <param name="dropList">掉落物列表</param>
|
||||
/// <param name="data">掉落物信息</param>
|
||||
private void AddOrUpdateDrop(List<DropData> dropList, DropData data)
|
||||
{
|
||||
int i = 0;
|
||||
for (; i < dropList.Count; i++)
|
||||
if (dropList[i].ItemId == data.ItemId)
|
||||
break;
|
||||
if (i == dropList.Count)
|
||||
dropList.Add(data);
|
||||
else
|
||||
dropList[i] = data;
|
||||
}
|
||||
|
||||
|
||||
#endregion - 掉落物列表 -
|
||||
|
||||
#region - 物品列表 -
|
||||
|
||||
/// <summary>
|
||||
/// 物品列表过滤器文本改变时触发
|
||||
/// </summary>
|
||||
private void TxtItemFilter_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
UIUtil.ListBoxFilter(ListItems, GameData.Items.Lines, TxtItemFilter.Text);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 物品列表选中项改变时触发
|
||||
/// </summary>
|
||||
private void ListItems_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
TxtItem.Text = ListItems.SelectedItem as string;
|
||||
}
|
||||
|
||||
#endregion - 物品列表 -
|
||||
}
|
||||
}
|
178
Source/GrasscutterTools/Forms/FormDropEditor.en-US.resx
Normal file
@@ -0,0 +1,178 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<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="LblDropPathLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>97, 17</value>
|
||||
</data>
|
||||
<data name="LblDropPathLabel.Text" xml:space="preserve">
|
||||
<value>Drop.json Path:</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>Load</value>
|
||||
</data>
|
||||
<data name="BtnSave.Text" xml:space="preserve">
|
||||
<value>Save</value>
|
||||
</data>
|
||||
<data name="GrpDropList.Text" xml:space="preserve">
|
||||
<value>Drop list</value>
|
||||
</data>
|
||||
<data name="BtnCopyAll.Text" xml:space="preserve">
|
||||
<value>Copy all</value>
|
||||
</data>
|
||||
<data name="BtnClear.Text" xml:space="preserve">
|
||||
<value>× Clear</value>
|
||||
</data>
|
||||
<data name="BtnPaste.Text" xml:space="preserve">
|
||||
<value>Paste</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Text" xml:space="preserve">
|
||||
<value>Copy</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>- Remove</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ Add or Update</value>
|
||||
</data>
|
||||
<data name="LblItemLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 17</value>
|
||||
</data>
|
||||
<data name="LblItemLabel.Text" xml:space="preserve">
|
||||
<value>Item:</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 17</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.Text" xml:space="preserve">
|
||||
<value>Weight:</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>45, 17</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.Text" xml:space="preserve">
|
||||
<value>Count:</value>
|
||||
</data>
|
||||
<data name="GrpMonsterList.Text" xml:space="preserve">
|
||||
<value>Monster list</value>
|
||||
</data>
|
||||
<data name="GrpItemList.Text" xml:space="preserve">
|
||||
<value>Item list</value>
|
||||
</data>
|
||||
</root>
|
891
Source/GrasscutterTools/Forms/FormDropEditor.resx
Normal file
@@ -0,0 +1,891 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="LblDropPathLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="LblDropPathLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>17, 15</value>
|
||||
</data>
|
||||
<data name="LblDropPathLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>105, 17</value>
|
||||
</data>
|
||||
<data name="LblDropPathLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="LblDropPathLabel.Text" xml:space="preserve">
|
||||
<value>Drop.json 路径:</value>
|
||||
</data>
|
||||
<data name=">>LblDropPathLabel.Name" xml:space="preserve">
|
||||
<value>LblDropPathLabel</value>
|
||||
</data>
|
||||
<data name=">>LblDropPathLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblDropPathLabel.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>LblDropPathLabel.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="TxtDropJsonPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>128, 12</value>
|
||||
</data>
|
||||
<data name="TxtDropJsonPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>487, 23</value>
|
||||
</data>
|
||||
<data name="TxtDropJsonPath.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>TxtDropJsonPath.Name" xml:space="preserve">
|
||||
<value>TxtDropJsonPath</value>
|
||||
</data>
|
||||
<data name=">>TxtDropJsonPath.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtDropJsonPath.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>TxtDropJsonPath.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>621, 12</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name="BtnLoad.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>加载</value>
|
||||
</data>
|
||||
<data name=">>BtnLoad.Name" xml:space="preserve">
|
||||
<value>BtnLoad</value>
|
||||
</data>
|
||||
<data name=">>BtnLoad.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnLoad.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnLoad.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="BtnSave.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>726, 12</value>
|
||||
</data>
|
||||
<data name="BtnSave.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name="BtnSave.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="BtnSave.Text" xml:space="preserve">
|
||||
<value>保存</value>
|
||||
</data>
|
||||
<data name=">>BtnSave.Name" xml:space="preserve">
|
||||
<value>BtnSave</value>
|
||||
</data>
|
||||
<data name=">>BtnSave.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnSave.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnSave.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="ListMonsters.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="ListMonsters.ItemHeight" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
</data>
|
||||
<data name="ListMonsters.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 51</value>
|
||||
</data>
|
||||
<data name="ListMonsters.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>238, 344</value>
|
||||
</data>
|
||||
<data name="ListMonsters.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>ListMonsters.Name" xml:space="preserve">
|
||||
<value>ListMonsters</value>
|
||||
</data>
|
||||
<data name=">>ListMonsters.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>ListMonsters.Parent" xml:space="preserve">
|
||||
<value>GrpMonsterList</value>
|
||||
</data>
|
||||
<data name=">>ListMonsters.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="TxtMonsterFilter.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="TxtMonsterFilter.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 22</value>
|
||||
</data>
|
||||
<data name="TxtMonsterFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>238, 23</value>
|
||||
</data>
|
||||
<data name="TxtMonsterFilter.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>TxtMonsterFilter.Name" xml:space="preserve">
|
||||
<value>TxtMonsterFilter</value>
|
||||
</data>
|
||||
<data name=">>TxtMonsterFilter.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtMonsterFilter.Parent" xml:space="preserve">
|
||||
<value>GrpMonsterList</value>
|
||||
</data>
|
||||
<data name=">>TxtMonsterFilter.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="TxtItemFilter.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="TxtItemFilter.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 22</value>
|
||||
</data>
|
||||
<data name="TxtItemFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>238, 23</value>
|
||||
</data>
|
||||
<data name="TxtItemFilter.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>21</value>
|
||||
</data>
|
||||
<data name=">>TxtItemFilter.Name" xml:space="preserve">
|
||||
<value>TxtItemFilter</value>
|
||||
</data>
|
||||
<data name=">>TxtItemFilter.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtItemFilter.Parent" xml:space="preserve">
|
||||
<value>GrpItemList</value>
|
||||
</data>
|
||||
<data name=">>TxtItemFilter.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="ListDropData.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="ListDropData.ItemHeight" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
</data>
|
||||
<data name="ListDropData.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 22</value>
|
||||
</data>
|
||||
<data name="ListDropData.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>288, 174</value>
|
||||
</data>
|
||||
<data name="ListDropData.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name=">>ListDropData.Name" xml:space="preserve">
|
||||
<value>ListDropData</value>
|
||||
</data>
|
||||
<data name=">>ListDropData.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>ListDropData.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>ListDropData.ZOrder" xml:space="preserve">
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name="GrpDropList.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="BtnCopyAll.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="BtnCopyAll.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>87, 202</value>
|
||||
</data>
|
||||
<data name="BtnCopyAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name="BtnCopyAll.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="BtnCopyAll.Text" xml:space="preserve">
|
||||
<value>复制全部</value>
|
||||
</data>
|
||||
<data name=">>BtnCopyAll.Name" xml:space="preserve">
|
||||
<value>BtnCopyAll</value>
|
||||
</data>
|
||||
<data name=">>BtnCopyAll.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnCopyAll.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>BtnCopyAll.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="BtnClear.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="BtnClear.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>113, 230</value>
|
||||
</data>
|
||||
<data name="BtnClear.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name="BtnClear.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="BtnClear.Text" xml:space="preserve">
|
||||
<value>× 清空</value>
|
||||
</data>
|
||||
<data name=">>BtnClear.Name" xml:space="preserve">
|
||||
<value>BtnClear</value>
|
||||
</data>
|
||||
<data name=">>BtnClear.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnClear.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>BtnClear.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="BtnPaste.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="BtnPaste.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>193, 202</value>
|
||||
</data>
|
||||
<data name="BtnPaste.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name="BtnPaste.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="BtnPaste.Text" xml:space="preserve">
|
||||
<value>粘贴</value>
|
||||
</data>
|
||||
<data name=">>BtnPaste.Name" xml:space="preserve">
|
||||
<value>BtnPaste</value>
|
||||
</data>
|
||||
<data name=">>BtnPaste.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnPaste.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>BtnPaste.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 202</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
</data>
|
||||
<data name="BtnCopy.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Text" xml:space="preserve">
|
||||
<value>复制</value>
|
||||
</data>
|
||||
<data name=">>BtnCopy.Name" xml:space="preserve">
|
||||
<value>BtnCopy</value>
|
||||
</data>
|
||||
<data name=">>BtnCopy.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnCopy.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>BtnCopy.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="TxtItem.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="TxtItem.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>113, 280</value>
|
||||
</data>
|
||||
<data name="TxtItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>137, 23</value>
|
||||
</data>
|
||||
<data name="TxtItem.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name=">>TxtItem.Name" xml:space="preserve">
|
||||
<value>TxtItem</value>
|
||||
</data>
|
||||
<data name=">>TxtItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtItem.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>TxtItem.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 230</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name="BtnDelete.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>- 删除</value>
|
||||
</data>
|
||||
<data name=">>BtnDelete.Name" xml:space="preserve">
|
||||
<value>BtnDelete</value>
|
||||
</data>
|
||||
<data name=">>BtnDelete.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnDelete.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>BtnDelete.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>54, 371</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>196, 23</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>19</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ 添加或更新</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.Name" xml:space="preserve">
|
||||
<value>BtnAddOrUpdate</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="LblItemLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="LblItemLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblItemLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>51, 283</value>
|
||||
</data>
|
||||
<data name="LblItemLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
</data>
|
||||
<data name="LblItemLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name="LblItemLabel.Text" xml:space="preserve">
|
||||
<value>掉落物:</value>
|
||||
</data>
|
||||
<data name=">>LblItemLabel.Name" xml:space="preserve">
|
||||
<value>LblItemLabel</value>
|
||||
</data>
|
||||
<data name=">>LblItemLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblItemLabel.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>LblItemLabel.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="LblTilde2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="LblTilde2.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblTilde2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>167, 342</value>
|
||||
</data>
|
||||
<data name="LblTilde2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>17, 17</value>
|
||||
</data>
|
||||
<data name="LblTilde2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name="LblTilde2.Text" xml:space="preserve">
|
||||
<value>~</value>
|
||||
</data>
|
||||
<data name=">>LblTilde2.Name" xml:space="preserve">
|
||||
<value>LblTilde2</value>
|
||||
</data>
|
||||
<data name=">>LblTilde2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblTilde2.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>LblTilde2.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="LblTilde1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="LblTilde1.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblTilde1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>167, 313</value>
|
||||
</data>
|
||||
<data name="LblTilde1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>17, 17</value>
|
||||
</data>
|
||||
<data name="LblTilde1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name="LblTilde1.Text" xml:space="preserve">
|
||||
<value>~</value>
|
||||
</data>
|
||||
<data name=">>LblTilde1.Name" xml:space="preserve">
|
||||
<value>LblTilde1</value>
|
||||
</data>
|
||||
<data name=">>LblTilde1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblTilde1.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>LblTilde1.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="NUDMaxWeight.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="NUDMaxWeight.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>190, 340</value>
|
||||
</data>
|
||||
<data name="NUDMaxWeight.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 23</value>
|
||||
</data>
|
||||
<data name="NUDMaxWeight.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>18</value>
|
||||
</data>
|
||||
<data name=">>NUDMaxWeight.Name" xml:space="preserve">
|
||||
<value>NUDMaxWeight</value>
|
||||
</data>
|
||||
<data name=">>NUDMaxWeight.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>NUDMaxWeight.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>NUDMaxWeight.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="NUDMinWeight.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="NUDMinWeight.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>101, 342</value>
|
||||
</data>
|
||||
<data name="NUDMinWeight.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 23</value>
|
||||
</data>
|
||||
<data name="NUDMinWeight.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
</data>
|
||||
<data name=">>NUDMinWeight.Name" xml:space="preserve">
|
||||
<value>NUDMinWeight</value>
|
||||
</data>
|
||||
<data name=">>NUDMinWeight.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>NUDMinWeight.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>NUDMinWeight.ZOrder" xml:space="preserve">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="NUDMaxCount.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="NUDMaxCount.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>190, 311</value>
|
||||
</data>
|
||||
<data name="NUDMaxCount.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 23</value>
|
||||
</data>
|
||||
<data name="NUDMaxCount.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name=">>NUDMaxCount.Name" xml:space="preserve">
|
||||
<value>NUDMaxCount</value>
|
||||
</data>
|
||||
<data name=">>NUDMaxCount.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>NUDMaxCount.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>NUDMaxCount.ZOrder" xml:space="preserve">
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="NUDMinCount.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="NUDMinCount.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>101, 311</value>
|
||||
</data>
|
||||
<data name="NUDMinCount.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 23</value>
|
||||
</data>
|
||||
<data name="NUDMinCount.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name=">>NUDMinCount.Name" xml:space="preserve">
|
||||
<value>NUDMinCount</value>
|
||||
</data>
|
||||
<data name=">>NUDMinCount.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>NUDMinCount.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>NUDMinCount.ZOrder" xml:space="preserve">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>51, 344</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 17</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.Text" xml:space="preserve">
|
||||
<value>权重:</value>
|
||||
</data>
|
||||
<data name=">>LblWeightLabel.Name" xml:space="preserve">
|
||||
<value>LblWeightLabel</value>
|
||||
</data>
|
||||
<data name=">>LblWeightLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblWeightLabel.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>LblWeightLabel.ZOrder" xml:space="preserve">
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>51, 313</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 17</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.Text" xml:space="preserve">
|
||||
<value>数量:</value>
|
||||
</data>
|
||||
<data name=">>LblCountLabel.Name" xml:space="preserve">
|
||||
<value>LblCountLabel</value>
|
||||
</data>
|
||||
<data name=">>LblCountLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblCountLabel.Parent" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>LblCountLabel.ZOrder" xml:space="preserve">
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name="GrpDropList.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>270, 41</value>
|
||||
</data>
|
||||
<data name="GrpDropList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>300, 400</value>
|
||||
</data>
|
||||
<data name="GrpDropList.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="GrpDropList.Text" xml:space="preserve">
|
||||
<value>掉落列表</value>
|
||||
</data>
|
||||
<data name=">>GrpDropList.Name" xml:space="preserve">
|
||||
<value>GrpDropList</value>
|
||||
</data>
|
||||
<data name=">>GrpDropList.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>GrpDropList.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>GrpDropList.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="ListItems.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="ListItems.ItemHeight" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
</data>
|
||||
<data name="ListItems.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 51</value>
|
||||
</data>
|
||||
<data name="ListItems.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>238, 344</value>
|
||||
</data>
|
||||
<data name="ListItems.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>22</value>
|
||||
</data>
|
||||
<data name=">>ListItems.Name" xml:space="preserve">
|
||||
<value>ListItems</value>
|
||||
</data>
|
||||
<data name=">>ListItems.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>ListItems.Parent" xml:space="preserve">
|
||||
<value>GrpItemList</value>
|
||||
</data>
|
||||
<data name=">>ListItems.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="GrpMonsterList.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left</value>
|
||||
</data>
|
||||
<data name="GrpMonsterList.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 41</value>
|
||||
</data>
|
||||
<data name="GrpMonsterList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>250, 400</value>
|
||||
</data>
|
||||
<data name="GrpMonsterList.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="GrpMonsterList.Text" xml:space="preserve">
|
||||
<value>怪物列表</value>
|
||||
</data>
|
||||
<data name=">>GrpMonsterList.Name" xml:space="preserve">
|
||||
<value>GrpMonsterList</value>
|
||||
</data>
|
||||
<data name=">>GrpMonsterList.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>GrpMonsterList.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>GrpMonsterList.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="GrpItemList.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Right</value>
|
||||
</data>
|
||||
<data name="GrpItemList.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>576, 41</value>
|
||||
</data>
|
||||
<data name="GrpItemList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>250, 400</value>
|
||||
</data>
|
||||
<data name="GrpItemList.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>20</value>
|
||||
</data>
|
||||
<data name="GrpItemList.Text" xml:space="preserve">
|
||||
<value>物品列表</value>
|
||||
</data>
|
||||
<data name=">>GrpItemList.Name" xml:space="preserve">
|
||||
<value>GrpItemList</value>
|
||||
</data>
|
||||
<data name=">>GrpItemList.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>GrpItemList.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>GrpItemList.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>7, 17</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>839, 450</value>
|
||||
</data>
|
||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>微软雅黑, 9pt</value>
|
||||
</data>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>855, 489</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterScreen</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>Drop.json Editor</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>FormDropEditor</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
</root>
|
193
Source/GrasscutterTools/Forms/FormDropEditor.ru-RU.resx
Normal file
@@ -0,0 +1,193 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<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="LblDropPathLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>99, 17</value>
|
||||
</data>
|
||||
<data name="LblDropPathLabel.Text" xml:space="preserve">
|
||||
<value>Drop.json Путь:</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>Нагрузка</value>
|
||||
</data>
|
||||
<data name="BtnSave.Text" xml:space="preserve">
|
||||
<value>Сохранять</value>
|
||||
</data>
|
||||
<data name="GrpDropList.Text" xml:space="preserve">
|
||||
<value>Drop list</value>
|
||||
</data>
|
||||
<data name="BtnCopyAll.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>94, 202</value>
|
||||
</data>
|
||||
<data name="BtnCopyAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>121, 23</value>
|
||||
</data>
|
||||
<data name="BtnCopyAll.Text" xml:space="preserve">
|
||||
<value>Скопировать все</value>
|
||||
</data>
|
||||
<data name="BtnClear.Text" xml:space="preserve">
|
||||
<value>× Очистить</value>
|
||||
</data>
|
||||
<data name="BtnPaste.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>219, 202</value>
|
||||
</data>
|
||||
<data name="BtnPaste.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
</data>
|
||||
<data name="BtnPaste.Text" xml:space="preserve">
|
||||
<value>Вставить</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>85, 23</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Text" xml:space="preserve">
|
||||
<value>Копировать</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>- Удалить</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ Добавить или обновить</value>
|
||||
</data>
|
||||
<data name="LblItemLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>62, 17</value>
|
||||
</data>
|
||||
<data name="LblItemLabel.Text" xml:space="preserve">
|
||||
<value>предмет:</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>39, 17</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.Text" xml:space="preserve">
|
||||
<value>Веса:</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>58, 17</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.Text" xml:space="preserve">
|
||||
<value>Считать:</value>
|
||||
</data>
|
||||
<data name="GrpMonsterList.Text" xml:space="preserve">
|
||||
<value>Список монстров</value>
|
||||
</data>
|
||||
<data name="GrpItemList.Text" xml:space="preserve">
|
||||
<value>Список предметов</value>
|
||||
</data>
|
||||
</root>
|
144
Source/GrasscutterTools/Forms/FormDropEditor.zh-TW.resx
Normal file
@@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="LblDropPathLabel.Text" xml:space="preserve">
|
||||
<value>Drop.json 路徑:</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>加載</value>
|
||||
</data>
|
||||
<data name="BtnCopyAll.Text" xml:space="preserve">
|
||||
<value>複製全部</value>
|
||||
</data>
|
||||
<data name="BtnPaste.Text" xml:space="preserve">
|
||||
<value>粘貼</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Text" xml:space="preserve">
|
||||
<value>複製</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>- 刪除</value>
|
||||
</data>
|
||||
<data name="LblWeightLabel.Text" xml:space="preserve">
|
||||
<value>權重:</value>
|
||||
</data>
|
||||
<data name="LblCountLabel.Text" xml:space="preserve">
|
||||
<value>數量:</value>
|
||||
</data>
|
||||
</root>
|
@@ -18,7 +18,6 @@
|
||||
**/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
@@ -190,7 +189,7 @@ namespace GrasscutterTools.Forms
|
||||
else
|
||||
{
|
||||
var item = list.Items[i] as string;
|
||||
var id = int.Parse(item.Substring(0, item.IndexOf(':')));
|
||||
var id = ItemMap.ToId(item);
|
||||
list.SetItemChecked(i, Array.IndexOf(checkedIds, id) != -1);
|
||||
}
|
||||
}
|
||||
@@ -218,7 +217,7 @@ namespace GrasscutterTools.Forms
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
foreach (string item in list.CheckedItems)
|
||||
builder.Append(item.Substring(0, item.IndexOf(':')))
|
||||
builder.Append(ItemMap.ToId(item))
|
||||
.Append(", ");
|
||||
txt.Text = builder.ToString(0, builder.Length - 2);
|
||||
}
|
||||
|
@@ -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>
|
||||
@@ -351,9 +351,9 @@
|
||||
<value>85, 23</value>
|
||||
</data>
|
||||
<data name="BtnParse.Text" xml:space="preserve">
|
||||
<value>Загр.Json</value>
|
||||
<value>Загр. Json</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>Редактор баннеров Gacha</value>
|
||||
<value>Редактор баннеров</value>
|
||||
</data>
|
||||
</root>
|
@@ -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 chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
|
||||
System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
|
||||
System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
|
||||
System.Windows.Forms.DataVisualization.Charting.Series series2 = 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,6 +101,8 @@ namespace GrasscutterTools.Forms
|
||||
this.GrpJson.SuspendLayout();
|
||||
this.GrpWeights.SuspendLayout();
|
||||
this.GrpBalance.SuspendLayout();
|
||||
this.GrpWeightChart.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ChartWeights)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// GrpBannerValues
|
||||
@@ -369,8 +377,7 @@ namespace GrasscutterTools.Forms
|
||||
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups1"))),
|
||||
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups2"))),
|
||||
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups3"))),
|
||||
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups4"))),
|
||||
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups5")))});
|
||||
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups4")))});
|
||||
this.ListFallbackItems.HideSelection = false;
|
||||
this.ListFallbackItems.Name = "ListFallbackItems";
|
||||
this.ListFallbackItems.UseCompatibleStateImageBehavior = false;
|
||||
@@ -513,10 +520,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
|
||||
//
|
||||
resources.ApplyResources(this.ChartWeights, "ChartWeights");
|
||||
chartArea1.AxisX.Minimum = 0D;
|
||||
chartArea1.AxisY.Maximum = 100D;
|
||||
chartArea1.AxisY.Minimum = 0D;
|
||||
chartArea1.AxisY.Title = "%";
|
||||
chartArea1.Name = "ChartArea1";
|
||||
this.ChartWeights.ChartAreas.Add(chartArea1);
|
||||
legend1.Name = "Legend1";
|
||||
this.ChartWeights.Legends.Add(legend1);
|
||||
this.ChartWeights.Name = "ChartWeights";
|
||||
series1.ChartArea = "ChartArea1";
|
||||
series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
|
||||
series1.Color = System.Drawing.Color.OrangeRed;
|
||||
series1.Label = "(#VALX, #VAL)";
|
||||
series1.Legend = "Legend1";
|
||||
series1.LegendText = "5*";
|
||||
series1.Name = "SeriesWeight5";
|
||||
series1.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
|
||||
series1.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
|
||||
series2.ChartArea = "ChartArea1";
|
||||
series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
|
||||
series2.Color = System.Drawing.Color.Purple;
|
||||
series2.Label = "(#VALX, #VAL)";
|
||||
series2.Legend = "Legend1";
|
||||
series2.LegendText = "4*";
|
||||
series2.Name = "SeriesWeight4";
|
||||
series2.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
|
||||
series2.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
|
||||
this.ChartWeights.Series.Add(series1);
|
||||
this.ChartWeights.Series.Add(series2);
|
||||
//
|
||||
// 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 +588,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 +649,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;
|
||||
}
|
||||
}
|
@@ -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;
|
||||
@@ -72,16 +72,13 @@ namespace GrasscutterTools.Forms
|
||||
ListFallbackItems.BeginUpdate();
|
||||
var a5 = ListFallbackItems.Groups["GroupA5"];
|
||||
var a4 = ListFallbackItems.Groups["GroupA4"];
|
||||
var a3 = ListFallbackItems.Groups["GroupA3"];
|
||||
var w5 = ListFallbackItems.Groups["GroupW5"];
|
||||
var w4 = ListFallbackItems.Groups["GroupW4"];
|
||||
var w3 = ListFallbackItems.Groups["GroupW3"];
|
||||
var avatars = GetAvatarsByColor("yellow")
|
||||
var avatars = GetAvatarsByColor("5")
|
||||
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, a5) { ForeColor = Color.OrangeRed })
|
||||
.Concat(GetAvatarsByColor("purple")
|
||||
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, a4) { ForeColor = Color.Purple }))
|
||||
.Concat(GetAvatarsByColor("blue")
|
||||
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, a3) { ForeColor = Color.Blue }));
|
||||
.Concat(GetAvatarsByColor("4")
|
||||
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, a4) { ForeColor = Color.Purple }));
|
||||
var weapons = GetWeaponsByColor("yellow")
|
||||
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, w5) { ForeColor = Color.OrangeRed })
|
||||
.Concat(GetWeaponsByColor("purple")
|
||||
@@ -96,9 +93,9 @@ namespace GrasscutterTools.Forms
|
||||
var ua4 = ListUpItems.Groups["GroupUpA4"];
|
||||
var uw5 = ListUpItems.Groups["GroupUpW5"];
|
||||
var uw4 = ListUpItems.Groups["GroupUpW4"];
|
||||
var upAvatars = GetAvatarsByColor("yellow")
|
||||
var upAvatars = GetAvatarsByColor("5")
|
||||
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, ua5) { ForeColor = Color.OrangeRed })
|
||||
.Concat(GetAvatarsByColor("purple")
|
||||
.Concat(GetAvatarsByColor("4")
|
||||
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, ua4) { ForeColor = Color.Purple }));
|
||||
var upWeapons = GetWeaponsByColor("yellow")
|
||||
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, uw5) { ForeColor = Color.OrangeRed })
|
||||
@@ -184,6 +181,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 +302,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)
|
||||
|
@@ -303,16 +303,6 @@
|
||||
</value>
|
||||
</data>
|
||||
<data name="ListFallbackItems.Groups4" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
|
||||
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
|
||||
AwAAAA0zLXN0YXIgYXZhdGFyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
|
||||
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBMws=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ListFallbackItems.Groups5" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
@@ -372,7 +362,7 @@
|
||||
<value>Gen Json</value>
|
||||
</data>
|
||||
<data name="BtnParse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>209, 512</value>
|
||||
<value>409, 201</value>
|
||||
</data>
|
||||
<data name="BtnParse.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>85, 23</value>
|
||||
@@ -431,6 +421,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>
|
||||
|
@@ -137,6 +137,9 @@
|
||||
<data name=">>RbCostItem223.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>ChkRemoveC6FormPool.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnGen.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -156,9 +159,6 @@
|
||||
<data name="LblSortId.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LnkWeightHelp.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance5.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
@@ -201,6 +201,9 @@
|
||||
<data name="LnkWeightHelp.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="ChartWeights.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance5Tip.Name" xml:space="preserve">
|
||||
<value>LblEventChance5Tip</value>
|
||||
</data>
|
||||
@@ -214,14 +217,11 @@
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="GrpJson.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Right</value>
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name=">>ColUpName.Name" xml:space="preserve">
|
||||
<value>ColUpName</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance4.Name" xml:space="preserve">
|
||||
<value>LblEventChance4</value>
|
||||
</data>
|
||||
<data name=">>ChkAutoStripRateUpFromFallback.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
@@ -232,7 +232,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>GrpBannerValues.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="LblEventChance5Tip.Text" xml:space="preserve">
|
||||
<value>%</value>
|
||||
@@ -240,15 +240,15 @@
|
||||
<data name="LblCostItem.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="GrpWeightChart.Text" xml:space="preserve">
|
||||
<value>权重图表</value>
|
||||
</data>
|
||||
<data name=">>GrpJson.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="ListFallbackItems.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="LblWeight5.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>51, 17</value>
|
||||
</data>
|
||||
<data name=">>GrpBannerValues.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -274,9 +274,6 @@
|
||||
<data name="ListUpItems.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="LnkWeightHelp.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name=">>LblGachaType.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -313,15 +310,8 @@
|
||||
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBNAs=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ListFallbackItems.Groups5" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
|
||||
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
|
||||
AwAAAAoz5pif6KeS6ImyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
|
||||
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXMws=
|
||||
</value>
|
||||
<data name="ChkAutoStripRateUpFromFallback.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>217, 260</value>
|
||||
</data>
|
||||
<data name="CmbBannerType.Items1" xml:space="preserve">
|
||||
<value>限时角色祈愿池</value>
|
||||
@@ -338,8 +328,8 @@
|
||||
<data name="GrpBalance.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 453</value>
|
||||
</data>
|
||||
<data name=">>LblEndTime.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name=">>GrpWeightChart.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="RbCostItem223.Text" xml:space="preserve">
|
||||
<value>纠缠之缘</value>
|
||||
@@ -368,9 +358,6 @@
|
||||
<data name=">>NUDEventChance4.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="GrpBalance.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="LblEventChance4Tip.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>89</value>
|
||||
</data>
|
||||
@@ -401,11 +388,14 @@
|
||||
<data name="GrpUpPool.Text" xml:space="preserve">
|
||||
<value>UP池</value>
|
||||
</data>
|
||||
<data name="TxtWeight5.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>300, 23</value>
|
||||
</data>
|
||||
<data name="BtnParse.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="DTPBeginTime.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
<data name=">>LblOptions.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
<data name="RbCostItem224.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>74, 21</value>
|
||||
@@ -422,8 +412,8 @@
|
||||
<data name="BtnParse.Text" xml:space="preserve">
|
||||
<value>解析Json</value>
|
||||
</data>
|
||||
<data name=">>LblPoolWeight4.Parent" xml:space="preserve">
|
||||
<value>GrpBalance</value>
|
||||
<data name="LblScheduleId.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>53</value>
|
||||
</data>
|
||||
<data name=">>LblWeight4.Parent" xml:space="preserve">
|
||||
<value>GrpWeights</value>
|
||||
@@ -441,7 +431,7 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>984, 561</value>
|
||||
<value>1184, 561</value>
|
||||
</data>
|
||||
<data name=">>BtnParse.Parent" xml:space="preserve">
|
||||
<value>GrpJson</value>
|
||||
@@ -449,8 +439,8 @@
|
||||
<data name=">>GrpBalance.Name" xml:space="preserve">
|
||||
<value>GrpBalance</value>
|
||||
</data>
|
||||
<data name=">>TxtWeight4.Parent" xml:space="preserve">
|
||||
<value>GrpWeights</value>
|
||||
<data name=">>LblWeight5.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance5Tip.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
@@ -461,8 +451,8 @@
|
||||
<data name="TxtJson.WordWrap" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>NUDScheduleId.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="CmbPrefab.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>112, 115</value>
|
||||
</data>
|
||||
<data name="LblWeight4.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@@ -509,17 +499,17 @@
|
||||
<data name="GrpBalance.Text" xml:space="preserve">
|
||||
<value>角色和武器平衡机制(仅混合池有效)</value>
|
||||
</data>
|
||||
<data name="LblPoolWeight5.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>43, 32</value>
|
||||
</data>
|
||||
<data name=">>LblBeginTime.ZOrder" xml:space="preserve">
|
||||
<value>20</value>
|
||||
</data>
|
||||
<data name=">>NUDSortId.Name" xml:space="preserve">
|
||||
<value>NUDSortId</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
<data name=">>LblEventChance5Tip.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name=">>TxtPoolWeight5.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="ListUpItems.Groups3" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
@@ -560,8 +550,11 @@
|
||||
<data name=">>ColFallbackId.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="LblScheduleIdTip.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
<data name=">>TxtWeight4.Name" xml:space="preserve">
|
||||
<value>TxtWeight4</value>
|
||||
</data>
|
||||
<data name=">>ChartWeights.Name" xml:space="preserve">
|
||||
<value>ChartWeights</value>
|
||||
</data>
|
||||
<data name=">>RbCostItem224.ZOrder" xml:space="preserve">
|
||||
<value>26</value>
|
||||
@@ -578,14 +571,11 @@
|
||||
<data name="LnkOpenOldEditor.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>53</value>
|
||||
</data>
|
||||
<data name="BtnGen.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>LblPoolWeight5.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="ChartWeights.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 19</value>
|
||||
</data>
|
||||
<data name="ColFallbackName.Width" type="System.Int32, mscorlib">
|
||||
<value>110</value>
|
||||
@@ -638,9 +628,6 @@
|
||||
<data name="LblGachaTypeTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>125, 17</value>
|
||||
</data>
|
||||
<data name="GrpWeights.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name=">>NUDScheduleId.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
@@ -648,13 +635,13 @@
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name=">>GrpWeights.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name=">>ListFallbackItems.Name" xml:space="preserve">
|
||||
<value>ListFallbackItems</value>
|
||||
</data>
|
||||
<data name="GrpJson.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>300, 541</value>
|
||||
<value>500, 230</value>
|
||||
</data>
|
||||
<data name="LnkOpenOldEditor.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 309</value>
|
||||
@@ -662,8 +649,11 @@
|
||||
<data name=">>LblEndTime.Name" xml:space="preserve">
|
||||
<value>LblEndTime</value>
|
||||
</data>
|
||||
<data name=">>ChkRemoveC6FormPool.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="GrpWeightChart.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="LblBannerType.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>59</value>
|
||||
</data>
|
||||
<data name=">>BtnGen.Name" xml:space="preserve">
|
||||
<value>BtnGen</value>
|
||||
@@ -672,7 +662,7 @@
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="GrpJson.Text" xml:space="preserve">
|
||||
<value>Json</value>
|
||||
<value>Json - (./Gresscutter/data/banners.json)</value>
|
||||
</data>
|
||||
<data name=">>LnkWeightHelp.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
@@ -707,8 +697,8 @@
|
||||
<data name=">>LblCostItem.ZOrder" xml:space="preserve">
|
||||
<value>27</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance4Tip.Name" xml:space="preserve">
|
||||
<value>LblEventChance4Tip</value>
|
||||
<data name=">>LblEndTime.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtJson.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -719,8 +709,8 @@
|
||||
<data name=">>LblSortId.Name" xml:space="preserve">
|
||||
<value>LblSortId</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
<data name=">>TxtWeight4.Parent" xml:space="preserve">
|
||||
<value>GrpWeights</value>
|
||||
</data>
|
||||
<data name="ColFallbackId.Width" type="System.Int32, mscorlib">
|
||||
<value>65</value>
|
||||
@@ -731,11 +721,14 @@
|
||||
<data name="LblPoolWeight4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name=">>GrpWeightChart.Name" xml:space="preserve">
|
||||
<value>GrpWeightChart</value>
|
||||
</data>
|
||||
<data name="ColUpName.Text" xml:space="preserve">
|
||||
<value>Name</value>
|
||||
</data>
|
||||
<data name="GrpBannerValues.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left</value>
|
||||
<data name="NUDSortId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name=">>LblScheduleIdTip.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
@@ -749,10 +742,16 @@
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
|
||||
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
|
||||
AwAAAAoz5pif6KeS6ImyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
|
||||
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBMws=
|
||||
AwAAAAoz5pif5q2m5ZmoBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
|
||||
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXMws=
|
||||
</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>GrpBalance.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="NUDScheduleId.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
@@ -792,15 +791,8 @@
|
||||
<data name="GrpFallbackPool.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>210, 305</value>
|
||||
</data>
|
||||
<data name="ListUpItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
|
||||
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
|
||||
AwAAAAo15pif6KeS6ImyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
|
||||
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcEE1Cw==
|
||||
</value>
|
||||
<data name=">>LblEventChance4.Name" xml:space="preserve">
|
||||
<value>LblEventChance4</value>
|
||||
</data>
|
||||
<data name="NUDEventChance4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>302, 231</value>
|
||||
@@ -829,8 +821,11 @@
|
||||
<data name="GrpWeights.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>440, 100</value>
|
||||
</data>
|
||||
<data name="LblEventChance4.Text" xml:space="preserve">
|
||||
<value>4星活动爆率</value>
|
||||
<data name=">>LblEventChance4Tip.Name" xml:space="preserve">
|
||||
<value>LblEventChance4Tip</value>
|
||||
</data>
|
||||
<data name=">>LblWeight4.Name" xml:space="preserve">
|
||||
<value>LblWeight4</value>
|
||||
</data>
|
||||
<data name="ChkAutoStripRateUpFromFallback.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@@ -853,6 +848,9 @@
|
||||
<data name=">>ListFallbackItems.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>LnkOpenOldEditor.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
<data name=">>NUDGachaType.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
@@ -874,8 +872,11 @@
|
||||
<data name=">>GrpUpPool.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="GrpWeightChart.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>500, 302</value>
|
||||
</data>
|
||||
<data name="BtnParse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>219, 512</value>
|
||||
<value>419, 201</value>
|
||||
</data>
|
||||
<data name="LblWeight5.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@@ -886,9 +887,6 @@
|
||||
<data name="LblBeginTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
</data>
|
||||
<data name="ListFallbackItems.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="ChkRemoveC6FormPool.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>90</value>
|
||||
</data>
|
||||
@@ -901,11 +899,8 @@
|
||||
<data name="LblGachaType.Text" xml:space="preserve">
|
||||
<value>GachaType</value>
|
||||
</data>
|
||||
<data name="LblWeight4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>51, 17</value>
|
||||
</data>
|
||||
<data name="GrpFallbackPool.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
<value>Top, Bottom, Left</value>
|
||||
</data>
|
||||
<data name="CmbBannerType.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@@ -928,12 +923,19 @@
|
||||
<data name=">>LnkOpenOldEditor.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="ListUpItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
|
||||
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
|
||||
AwAAAAo15pif6KeS6ImyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
|
||||
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcEE1Cw==
|
||||
</value>
|
||||
</data>
|
||||
<data name="LblPoolWeight4.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="CmbPrefab.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>112, 115</value>
|
||||
</data>
|
||||
<data name="NUDSortId.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>112, 202</value>
|
||||
</data>
|
||||
@@ -952,17 +954,14 @@
|
||||
<data name=">>LblEventChance5.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblWeight4.Name" xml:space="preserve">
|
||||
<value>LblWeight4</value>
|
||||
</data>
|
||||
<data name="TxtJson.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>288, 487</value>
|
||||
<value>488, 176</value>
|
||||
</data>
|
||||
<data name="ColUpId.Text" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
</data>
|
||||
<data name=">>LnkOpenOldEditor.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
<data name="LnkWeightHelp.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name="TxtJson.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@@ -976,8 +975,11 @@
|
||||
<data name="LblEndTime.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>74</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance5Tip.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
<data name="GrpWeightChart.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>674, 248</value>
|
||||
</data>
|
||||
<data name=">>TxtPoolWeight5.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblPrefabPath.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
@@ -991,11 +993,11 @@
|
||||
<data name=">>NUDScheduleId.ZOrder" xml:space="preserve">
|
||||
<value>21</value>
|
||||
</data>
|
||||
<data name="NUDGachaType.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
<data name=">>LblPoolWeight4.Parent" xml:space="preserve">
|
||||
<value>GrpBalance</value>
|
||||
</data>
|
||||
<data name="NUDSortId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
<data name="LblPrefabPath.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>61</value>
|
||||
</data>
|
||||
<data name="NUDScheduleId.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>112, 55</value>
|
||||
@@ -1006,8 +1008,8 @@
|
||||
<data name=">>LblScheduleIdTip.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtWeight4.Name" xml:space="preserve">
|
||||
<value>TxtWeight4</value>
|
||||
<data name="LblScheduleIdTip.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance4.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -1054,6 +1056,9 @@
|
||||
<data name=">>LblSortId.ZOrder" xml:space="preserve">
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name="ChartWeights.Text" xml:space="preserve">
|
||||
<value>chart1</value>
|
||||
</data>
|
||||
<data name="GrpJson.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>674, 12</value>
|
||||
</data>
|
||||
@@ -1075,9 +1080,6 @@
|
||||
<data name=">>LblSortIdTip.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
<data name="CmbBannerType.Items2" xml:space="preserve">
|
||||
<value>限时武器祈愿池</value>
|
||||
</data>
|
||||
<data name=">>NUDEventChance5.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -1088,7 +1090,7 @@
|
||||
<value>基础池</value>
|
||||
</data>
|
||||
<data name=">>GrpFallbackPool.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="LblScheduleIdTip.Text" xml:space="preserve">
|
||||
<value>ID要求唯一</value>
|
||||
@@ -1099,8 +1101,8 @@
|
||||
<data name=">>LblGachaType.Name" xml:space="preserve">
|
||||
<value>LblGachaType</value>
|
||||
</data>
|
||||
<data name=">>BtnGen.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
<data name=">>LblPoolWeight5.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="LblSortIdTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>218, 204</value>
|
||||
@@ -1114,11 +1116,8 @@
|
||||
<data name="LblPrefabPath.Text" xml:space="preserve">
|
||||
<value>预制</value>
|
||||
</data>
|
||||
<data name="ChkAutoStripRateUpFromFallback.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>217, 260</value>
|
||||
</data>
|
||||
<data name=">>GrpBalance.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>DTPEndTime.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.DateTimePicker, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -1129,8 +1128,8 @@
|
||||
<data name="LblEndTime.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="ChkRemoveC6FormPool.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>99, 21</value>
|
||||
<data name="LnkWeightHelp.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>TxtWeight5.Name" xml:space="preserve">
|
||||
<value>TxtWeight5</value>
|
||||
@@ -1144,21 +1143,21 @@
|
||||
<data name="LblOptions.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name=">>LblScheduleIdTip.Name" xml:space="preserve">
|
||||
<value>LblScheduleIdTip</value>
|
||||
<data name="LblWeight5.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>51, 17</value>
|
||||
</data>
|
||||
<data name="LblSortId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name=">>GrpWeightChart.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>50, 176</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance4.ZOrder" xml:space="preserve">
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name=">>GrpWeights.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
</data>
|
||||
@@ -1180,11 +1179,11 @@
|
||||
<data name=">>NUDGachaType.Name" xml:space="preserve">
|
||||
<value>NUDGachaType</value>
|
||||
</data>
|
||||
<data name="LblPrefabPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
<data name=">>LblScheduleIdTip.Name" xml:space="preserve">
|
||||
<value>LblScheduleIdTip</value>
|
||||
</data>
|
||||
<data name=">>CmbPrefab.Name" xml:space="preserve">
|
||||
<value>CmbPrefab</value>
|
||||
<data name=">>ChartWeights.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>LblEndTime.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
@@ -1192,6 +1191,9 @@
|
||||
<data name=">>GrpBalance.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="LblCostItem.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>50, 148</value>
|
||||
</data>
|
||||
<data name=">>TxtJson.Parent" xml:space="preserve">
|
||||
<value>GrpJson</value>
|
||||
</data>
|
||||
@@ -1201,14 +1203,14 @@
|
||||
<data name="LblPoolWeight4.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="GrpUpPool.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
<data name="ChkRemoveC6FormPool.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>99, 21</value>
|
||||
</data>
|
||||
<data name="LblCostItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
</data>
|
||||
<data name="BtnGen.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 512</value>
|
||||
<data name=">>NUDScheduleId.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtWeight4.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -1228,8 +1230,8 @@
|
||||
<data name=">>GrpUpPool.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LnkWeightHelp.Parent" xml:space="preserve">
|
||||
<value>GrpWeights</value>
|
||||
<data name="LblEventChance4.Text" xml:space="preserve">
|
||||
<value>4星活动爆率</value>
|
||||
</data>
|
||||
<data name="LblEventChance4.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@@ -1270,8 +1272,8 @@
|
||||
<data name="GrpBalance.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name=">>ColFallbackName.Name" xml:space="preserve">
|
||||
<value>ColFallbackName</value>
|
||||
<data name=">>BtnGen.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>GrpUpPool.Name" xml:space="preserve">
|
||||
<value>GrpUpPool</value>
|
||||
@@ -1288,8 +1290,8 @@
|
||||
<data name=">>GrpWeights.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="LblCostItem.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>50, 148</value>
|
||||
<data name=">>ColFallbackName.Name" xml:space="preserve">
|
||||
<value>ColFallbackName</value>
|
||||
</data>
|
||||
<data name=">>LblGachaTypeTip.Name" xml:space="preserve">
|
||||
<value>LblGachaTypeTip</value>
|
||||
@@ -1303,8 +1305,8 @@
|
||||
<data name="LblPoolWeight4.Text" xml:space="preserve">
|
||||
<value>4星池权重</value>
|
||||
</data>
|
||||
<data name=">>TxtPoolWeight5.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="BtnGen.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 201</value>
|
||||
</data>
|
||||
<data name="LblScheduleIdTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>69, 17</value>
|
||||
@@ -1330,14 +1332,17 @@
|
||||
<data name=">>LblEventChance5Tip.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="ChartWeights.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>ListFallbackItems.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="TxtJson.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="RbCostItem224.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
<data name="LblPoolWeight5.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>43, 32</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.Text" xml:space="preserve">
|
||||
<value>从400开始,顺序递增</value>
|
||||
@@ -1345,6 +1350,9 @@
|
||||
<data name="LnkOpenOldEditor.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>20</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>51</value>
|
||||
</data>
|
||||
<data name=">>TxtWeight4.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
@@ -1375,8 +1383,8 @@
|
||||
<data name="BtnGen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
</data>
|
||||
<data name=">>TxtPoolWeight5.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<data name="CmbBannerType.Items2" xml:space="preserve">
|
||||
<value>限时武器祈愿池</value>
|
||||
</data>
|
||||
<data name=">>GrpFallbackPool.Name" xml:space="preserve">
|
||||
<value>GrpFallbackPool</value>
|
||||
@@ -1384,6 +1392,12 @@
|
||||
<data name="LblBannerType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
</data>
|
||||
<data name="NUDGachaType.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>GrpWeightChart.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance5.ZOrder" xml:space="preserve">
|
||||
<value>13</value>
|
||||
</data>
|
||||
@@ -1393,6 +1407,9 @@
|
||||
<data name=">>CmbBannerType.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="RbCostItem224.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="LblBannerType.Text" xml:space="preserve">
|
||||
<value>奖池类型</value>
|
||||
</data>
|
||||
@@ -1403,7 +1420,7 @@
|
||||
<value>LblPrefabPath</value>
|
||||
</data>
|
||||
<data name=">>GrpUpPool.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>CmbBannerType.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
@@ -1414,11 +1431,14 @@
|
||||
<data name="LblBeginTime.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>72</value>
|
||||
</data>
|
||||
<data name=">>GrpBalance.Type" xml:space="preserve">
|
||||
<data name=">>GrpWeights.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>51</value>
|
||||
<data name="LblGachaTypeTip.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="ListFallbackItems.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="LblPoolWeight4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>43, 61</value>
|
||||
@@ -1426,8 +1446,11 @@
|
||||
<data name=">>LblPoolWeight4.Name" xml:space="preserve">
|
||||
<value>LblPoolWeight4</value>
|
||||
</data>
|
||||
<data name="TxtWeight5.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>300, 23</value>
|
||||
<data name="LblPrefabPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name="ChartWeights.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>494, 280</value>
|
||||
</data>
|
||||
<data name="CmbBannerType.Items" xml:space="preserve">
|
||||
<value>常驻池</value>
|
||||
@@ -1448,7 +1471,7 @@
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1000, 600</value>
|
||||
<value>1200, 600</value>
|
||||
</data>
|
||||
<data name="LblEventChance5.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>31, 233</value>
|
||||
@@ -1456,17 +1479,23 @@
|
||||
<data name=">>ColFallbackId.Name" xml:space="preserve">
|
||||
<value>ColFallbackId</value>
|
||||
</data>
|
||||
<data name=">>ChartWeights.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.DataVisualization.Charting.Chart, System.Windows.Forms.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</value>
|
||||
</data>
|
||||
<data name="LblSortId.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>75</value>
|
||||
</data>
|
||||
<data name=">>LblBannerType.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="DTPBeginTime.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>ChkAutoStripRateUpFromFallback.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name=">>LnkWeightHelp.Parent" xml:space="preserve">
|
||||
<value>GrpWeights</value>
|
||||
</data>
|
||||
<data name="LblEventChance4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>221, 233</value>
|
||||
@@ -1480,15 +1509,15 @@
|
||||
<data name=">>LblWeight5.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="LblPrefabPath.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>61</value>
|
||||
</data>
|
||||
<data name=">>RbCostItem223.ZOrder" xml:space="preserve">
|
||||
<value>29</value>
|
||||
</data>
|
||||
<data name=">>LblWeight5.Parent" xml:space="preserve">
|
||||
<value>GrpWeights</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>GrpFallbackPool.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
@@ -1513,6 +1542,9 @@
|
||||
<data name="RbCostItem223.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>192, 146</value>
|
||||
</data>
|
||||
<data name=">>ChartWeights.Parent" xml:space="preserve">
|
||||
<value>GrpWeightChart</value>
|
||||
</data>
|
||||
<data name="RbCostItem223.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
@@ -1537,17 +1569,17 @@
|
||||
<data name=">>TxtPoolWeight5.Name" xml:space="preserve">
|
||||
<value>TxtPoolWeight5</value>
|
||||
</data>
|
||||
<data name="GrpWeightChart.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>卡池编辑器</value>
|
||||
</data>
|
||||
<data name="NUDEventChance4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>63, 23</value>
|
||||
</data>
|
||||
<data name=">>LblWeight5.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>LblOptions.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
<data name=">>CmbPrefab.Name" xml:space="preserve">
|
||||
<value>CmbPrefab</value>
|
||||
</data>
|
||||
<data name="GrpBannerValues.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 12</value>
|
||||
@@ -1567,8 +1599,8 @@
|
||||
<data name="LblCostItem.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>80</value>
|
||||
</data>
|
||||
<data name="LblBannerType.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>59</value>
|
||||
<data name="LblWeight4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>51, 17</value>
|
||||
</data>
|
||||
<data name="LblPoolWeight5.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
@@ -1591,7 +1623,4 @@
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>zh-TW</value>
|
||||
</metadata>
|
||||
</root>
|
@@ -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>
|
||||
@@ -324,16 +324,6 @@
|
||||
</value>
|
||||
</data>
|
||||
<data name="ListFallbackItems.Groups4" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
|
||||
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
|
||||
AwAAAA0zLXN0YXIgYXZhdGFyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
|
||||
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBMws=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ListFallbackItems.Groups5" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
@@ -396,13 +386,13 @@
|
||||
<value>Сген. Json</value>
|
||||
</data>
|
||||
<data name="BtnParse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>209, 512</value>
|
||||
<value>409, 201</value>
|
||||
</data>
|
||||
<data name="BtnParse.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>85, 23</value>
|
||||
</data>
|
||||
<data name="BtnParse.Text" xml:space="preserve">
|
||||
<value>Загр.Json</value>
|
||||
<value>Загр. Json</value>
|
||||
</data>
|
||||
<data name="LnkWeightHelp.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>375, 0</value>
|
||||
@@ -455,6 +445,9 @@
|
||||
<data name="GrpBalance.Text" xml:space="preserve">
|
||||
<value>Баланс персонажа и оружия (работают только смешанные пулы)</value>
|
||||
</data>
|
||||
<data name="GrpWeightChart.Text" xml:space="preserve">
|
||||
<value>Таблица веса</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>Редактор баннеров Gacha</value>
|
||||
</data>
|
||||
|
@@ -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
|
||||
@@ -211,23 +214,10 @@
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
|
||||
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
|
||||
AwAAAAoz5pif6KeS6ImyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
|
||||
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBMws=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ListFallbackItems.Groups5" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
|
||||
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
|
||||
AwAAAAoz5pif6KeS6ImyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
|
||||
AwAAAAoz5pif5q2m5ZmoBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
|
||||
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 +258,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 +270,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 +279,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>
|
||||
|
866
Source/GrasscutterTools/Forms/FormMain.Designer.cs
generated
@@ -128,7 +128,7 @@
|
||||
<value>Auto</value>
|
||||
</data>
|
||||
<data name="GrpCommand.Text" xml:space="preserve">
|
||||
<value>Command (Press and hold Ctrl to run automatically)</value>
|
||||
<value>Command - [Ctrl] Autorun - [|] Split multiple commands</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Text" xml:space="preserve">
|
||||
<value>Run(F5)</value>
|
||||
@@ -227,13 +227,13 @@
|
||||
<value>Note that normal commands in the console state must specify the target (set include UID)</value>
|
||||
</data>
|
||||
<data name="TxtHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>111, 36</value>
|
||||
<value>136, 36</value>
|
||||
</data>
|
||||
<data name="TxtHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>175, 23</value>
|
||||
</data>
|
||||
<data name="BtnQueryServerStatus.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>292, 36</value>
|
||||
<value>317, 36</value>
|
||||
</data>
|
||||
<data name="BtnQueryServerStatus.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 23</value>
|
||||
@@ -251,10 +251,15 @@
|
||||
<value>About</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>
|
||||
@@ -325,9 +330,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>
|
||||
@@ -358,21 +369,6 @@
|
||||
<data name="ChkIncludeSceneId.Text" xml:space="preserve">
|
||||
<value>Include scene Id</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.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>Teleporting
|
||||
Tip: You can quickly teleport through the 'fishing hook' pin on the map in-game.
|
||||
In the command, you can use ~ to indicate the current position, and ~100 to indicate the relative current 100</value>
|
||||
</data>
|
||||
<data name="LblTpZ.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>219, 184</value>
|
||||
</data>
|
||||
@@ -409,6 +405,7 @@ In the command, you can use ~ to indicate the current position, and ~100 to indi
|
||||
<data name="LblClimateType.Text" xml:space="preserve">
|
||||
<value>weather</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>
|
||||
@@ -418,6 +415,20 @@ In the command, you can use ~ to indicate the current position, and ~100 to indi
|
||||
<data name="LblSceneDescription.Text" xml:space="preserve">
|
||||
<value>Scene control
|
||||
Tip: Most of the scenes have no effect and cannot be entered.</value>
|
||||
</data>
|
||||
<data name="LblTp.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</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>Teleporting
|
||||
Tip: You can quickly teleport through the 'fishing hook' pin on the map in-game.
|
||||
In the command, you can use ~ to indicate the current position, and ~N to indicate the relative current N</value>
|
||||
</data>
|
||||
<data name="TPItem.Text" xml:space="preserve">
|
||||
<value>Items</value>
|
||||
@@ -476,6 +487,9 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
|
||||
<data name="TPWeapon.Text" xml:space="preserve">
|
||||
<value>Weapons</value>
|
||||
</data>
|
||||
<data name="BtnGiveAllWeapons.Text" xml:space="preserve">
|
||||
<value>Give all Weapons</value>
|
||||
</data>
|
||||
<data name="LblWeaponDescription.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>86, 17</value>
|
||||
</data>
|
||||
@@ -515,36 +529,48 @@ 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="TPAvatar.Text" xml:space="preserve">
|
||||
<value>Avatar</value>
|
||||
</data>
|
||||
<data name="LblResetStatsCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>126, 135</value>
|
||||
<data name="GrpSetConstellation.Text" xml:space="preserve">
|
||||
<value>Constellation</value>
|
||||
</data>
|
||||
<data name="LblResetStatsCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>112, 17</value>
|
||||
<data name="LnkSetAllConst.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>43, 17</value>
|
||||
</data>
|
||||
<data name="LblResetStatsCommand.Text" xml:space="preserve">
|
||||
<value>When getting CEP</value>
|
||||
<data name="LnkSetAllConst.Text" xml:space="preserve">
|
||||
<value>Set all</value>
|
||||
</data>
|
||||
<data name="LblResetStatsTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>235, 135</value>
|
||||
<data name="LnkSetConst.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>71, 17</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 name="LnkSetConst.Text" xml:space="preserve">
|
||||
<value>Set current</value>
|
||||
</data>
|
||||
<data name="GrpSetStats.Text" xml:space="preserve">
|
||||
<value>Stats</value>
|
||||
</data>
|
||||
<data name="BtnUnlockStat.Text" xml:space="preserve">
|
||||
<value>Unlock</value>
|
||||
</data>
|
||||
<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>
|
||||
<data name="LnkTalentAll.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>146, 24</value>
|
||||
</data>
|
||||
<data name="LnkTalentAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>22, 17</value>
|
||||
</data>
|
||||
<data name="LnkTalentAll.Text" xml:space="preserve">
|
||||
<value>All</value>
|
||||
</data>
|
||||
<data name="LnkTalentE.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>283, 24</value>
|
||||
</data>
|
||||
@@ -573,50 +599,50 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
|
||||
<value>NormalATK</value>
|
||||
</data>
|
||||
<data name="NUDTalentLevel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>128, 23</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>
|
||||
<value>96, 23</value>
|
||||
</data>
|
||||
<data name="BtnGiveAllChar.Text" xml:space="preserve">
|
||||
<value>Give All Char</value>
|
||||
</data>
|
||||
<data name="LblConstellationTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>379, 165</value>
|
||||
</data>
|
||||
<data name="LblConstellationTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>200, 17</value>
|
||||
</data>
|
||||
<data name="LblConstellationTip.Text" xml:space="preserve">
|
||||
<value>※Available in Give All Char only</value>
|
||||
</data>
|
||||
<data name="LblAvatarConstellation.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 17</value>
|
||||
</data>
|
||||
<data name="LblAvatarConstellation.Text" xml:space="preserve">
|
||||
<value>Const.</value>
|
||||
</data>
|
||||
<data name="LblAvatar.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>45, 17</value>
|
||||
</data>
|
||||
<data name="LblAvatar.Text" xml:space="preserve">
|
||||
<value>Avatar</value>
|
||||
</data>
|
||||
<data name="LblAvatarLevel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 17</value>
|
||||
</data>
|
||||
<data name="LblAvatarLevel.Text" xml:space="preserve">
|
||||
<value>Level</value>
|
||||
</data>
|
||||
<data name="LblAvatarSkillLevelLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>61, 17</value>
|
||||
</data>
|
||||
<data name="LblAvatarSkillLevelLabel.Text" xml:space="preserve">
|
||||
<value>Skill level</value>
|
||||
</data>
|
||||
<data name="LblAvatar.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>45, 17</value>
|
||||
</data>
|
||||
<data name="LblAvatar.Text" xml:space="preserve">
|
||||
<value>Avatar</value>
|
||||
</data>
|
||||
<data name="LblAvatarConstellation.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 17</value>
|
||||
</data>
|
||||
<data name="LblAvatarConstellation.Text" xml:space="preserve">
|
||||
<value>Const.</value>
|
||||
</data>
|
||||
<data name="TPSpawn.Text" xml:space="preserve">
|
||||
<value>Spawn</value>
|
||||
</data>
|
||||
<data name="ChkInfiniteHP.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>202, 217</value>
|
||||
</data>
|
||||
<data name="ChkInfiniteHP.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>86, 21</value>
|
||||
</data>
|
||||
<data name="ChkInfiniteHP.Text" xml:space="preserve">
|
||||
<value>Infinite HP</value>
|
||||
</data>
|
||||
<data name="LblClearSpawnLogs.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>181, 190</value>
|
||||
</data>
|
||||
<data name="LblClearSpawnLogs.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
@@ -635,24 +661,6 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
|
||||
<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>
|
||||
<data name="RbEntityAnimal.Text" xml:space="preserve">
|
||||
<value>Animal</value>
|
||||
</data>
|
||||
<data name="RbEntityMonster.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 21</value>
|
||||
</data>
|
||||
<data name="RbEntityMonster.Text" xml:space="preserve">
|
||||
<value>Monster</value>
|
||||
</data>
|
||||
<data name="LblSpawnDescription.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>81, 17</value>
|
||||
</data>
|
||||
<data name="LblSpawnDescription.Text" xml:space="preserve">
|
||||
<value>Spawn entity</value>
|
||||
</data>
|
||||
<data name="LblEntityAmount.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>53, 17</value>
|
||||
</data>
|
||||
@@ -722,7 +730,7 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
|
||||
<value>Part</value>
|
||||
</data>
|
||||
<data name="LblArtifactSet.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>87, 11</value>
|
||||
<value>112, 11</value>
|
||||
</data>
|
||||
<data name="LblArtifactSet.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>49, 17</value>
|
||||
@@ -737,7 +745,7 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
|
||||
<value>X Clear</value>
|
||||
</data>
|
||||
<data name="LblArtifactLevel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>99, 41</value>
|
||||
<value>124, 41</value>
|
||||
</data>
|
||||
<data name="LblArtifactLevel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 17</value>
|
||||
@@ -746,7 +754,7 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
|
||||
<value>Level</value>
|
||||
</data>
|
||||
<data name="LblSubAttribution.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>80, 102</value>
|
||||
<value>105, 102</value>
|
||||
</data>
|
||||
<data name="LblSubAttribution.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
@@ -755,7 +763,7 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
|
||||
<value>Sub Stat</value>
|
||||
</data>
|
||||
<data name="LblMainAttribution.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>73, 71</value>
|
||||
<value>98, 71</value>
|
||||
</data>
|
||||
<data name="LblMainAttribution.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>63, 17</value>
|
||||
@@ -773,7 +781,7 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
|
||||
<value>Custom</value>
|
||||
</data>
|
||||
<data name="BtnExportCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>533, 216</value>
|
||||
<value>583, 216</value>
|
||||
</data>
|
||||
<data name="BtnExportCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 23</value>
|
||||
@@ -782,7 +790,7 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
|
||||
<value>Export</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>467, 216</value>
|
||||
<value>517, 216</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 23</value>
|
||||
@@ -800,7 +808,7 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
|
||||
<value>List</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>531, -1</value>
|
||||
<value>581, -1</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>53, 17</value>
|
||||
@@ -809,7 +817,7 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
|
||||
<value>Restore</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>393, 216</value>
|
||||
<value>443, 216</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 23</value>
|
||||
@@ -818,7 +826,7 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
|
||||
<value>x Delete</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>317, 216</value>
|
||||
<value>367, 216</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 23</value>
|
||||
@@ -827,11 +835,20 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
|
||||
<value>√ Save</value>
|
||||
</data>
|
||||
<data name="TxtCustomName.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>267, 23</value>
|
||||
<value>317, 23</value>
|
||||
</data>
|
||||
<data name="TPHome.Text" xml:space="preserve">
|
||||
<value>Home</value>
|
||||
</data>
|
||||
<data name="BtnOpenShopEditor.Text" xml:space="preserve">
|
||||
<value>Shop Editor</value>
|
||||
</data>
|
||||
<data name="BtnOpenDropEditor.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>546, 216</value>
|
||||
</data>
|
||||
<data name="BtnOpenDropEditor.Text" xml:space="preserve">
|
||||
<value>Drop Editor</value>
|
||||
</data>
|
||||
<data name="LblAbout.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>74, 38</value>
|
||||
</data>
|
||||
@@ -865,4 +882,97 @@ 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="TPMail.Text" xml:space="preserve">
|
||||
<value>Mail</value>
|
||||
</data>
|
||||
<data name="BtnAddMailItem.Text" xml:space="preserve">
|
||||
<value>+ Add</value>
|
||||
</data>
|
||||
<data name="BtnDeleteMailItem.Text" xml:space="preserve">
|
||||
<value>- Delete</value>
|
||||
</data>
|
||||
<data name="tabPage1.Text" xml:space="preserve">
|
||||
<value>Items</value>
|
||||
</data>
|
||||
<data name="NUDMailItemLevel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>171, 4</value>
|
||||
</data>
|
||||
<data name="NUDMailItemCount.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>47, 4</value>
|
||||
</data>
|
||||
<data name="LblMailItemCount.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 6</value>
|
||||
</data>
|
||||
<data name="LblMailItemCount.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>45, 17</value>
|
||||
</data>
|
||||
<data name="LblMailItemCount.Text" xml:space="preserve">
|
||||
<value>Count:</value>
|
||||
</data>
|
||||
<data name="LblMailItemLevel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>123, 6</value>
|
||||
</data>
|
||||
<data name="LblMailItemLevel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>40, 17</value>
|
||||
</data>
|
||||
<data name="LblMailItemLevel.Text" xml:space="preserve">
|
||||
<value>Level:</value>
|
||||
</data>
|
||||
<data name="tabPage2.Text" xml:space="preserve">
|
||||
<value>Mailbox</value>
|
||||
</data>
|
||||
<data name="BtnClearMail.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>84, 4</value>
|
||||
</data>
|
||||
<data name="BtnClearMail.Text" xml:space="preserve">
|
||||
<value>× Clear</value>
|
||||
</data>
|
||||
<data name="BtnRemoveMail.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 4</value>
|
||||
</data>
|
||||
<data name="BtnRemoveMail.Text" xml:space="preserve">
|
||||
<value>- Delete</value>
|
||||
</data>
|
||||
<data name="BtnSendMail.Text" xml:space="preserve">
|
||||
<value>Send</value>
|
||||
</data>
|
||||
<data name="LblMailItemsLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>43, 17</value>
|
||||
</data>
|
||||
<data name="LblMailItemsLabel.Text" xml:space="preserve">
|
||||
<value>Items:</value>
|
||||
</data>
|
||||
<data name="RbMailSendToPlayer.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>61, 21</value>
|
||||
</data>
|
||||
<data name="RbMailSendToPlayer.Text" xml:space="preserve">
|
||||
<value>Player</value>
|
||||
</data>
|
||||
<data name="RbMailSendToAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>40, 21</value>
|
||||
</data>
|
||||
<data name="RbMailSendToAll.Text" xml:space="preserve">
|
||||
<value>All</value>
|
||||
</data>
|
||||
<data name="LblMailRecipientLabel.Text" xml:space="preserve">
|
||||
<value>Send to:</value>
|
||||
</data>
|
||||
<data name="LblMailContentLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
</data>
|
||||
<data name="LblMailContentLabel.Text" xml:space="preserve">
|
||||
<value>Content:</value>
|
||||
</data>
|
||||
<data name="LblMailTitleLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>35, 17</value>
|
||||
</data>
|
||||
<data name="LblMailTitleLabel.Text" xml:space="preserve">
|
||||
<value>Title:</value>
|
||||
</data>
|
||||
<data name="LblMailSenderLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 17</value>
|
||||
</data>
|
||||
<data name="LblMailSenderLabel.Text" xml:space="preserve">
|
||||
<value>Sender:</value>
|
||||
</data>
|
||||
</root>
|
@@ -123,11 +123,14 @@
|
||||
<data name="ChkAutoCopy.Text" xml:space="preserve">
|
||||
<value>自動</value>
|
||||
</data>
|
||||
<data name="GrpCommand.Text" xml:space="preserve">
|
||||
<value>命令 - [Ctrl] 自動執行 - [|] 分割多條命令</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Text" xml:space="preserve">
|
||||
<value>執行(F5)</value>
|
||||
</data>
|
||||
<data name="GrpCommand.Text" xml:space="preserve">
|
||||
<value>命令(按住 Ctrl 自動執行)</value>
|
||||
<data name="TPRemoteCall.Text" xml:space="preserve">
|
||||
<value>遠程</value>
|
||||
</data>
|
||||
<data name="LnkInventoryKamera.Text" xml:space="preserve">
|
||||
<value>存檔掃描開源工具</value>
|
||||
@@ -145,6 +148,9 @@
|
||||
<data name="LblHostTip.Text" xml:space="preserve">
|
||||
<value>請確保地址中包含 http:// 或 https://</value>
|
||||
</data>
|
||||
<data name="GrpServerStatus.Text" xml:space="preserve">
|
||||
<value>伺服器狀態</value>
|
||||
</data>
|
||||
<data name="LnkOpenCommandLabel.Text" xml:space="preserve">
|
||||
<value>遠程執行插件</value>
|
||||
</data>
|
||||
@@ -154,8 +160,11 @@
|
||||
<data name="LblPlayerCountLabel.Text" xml:space="preserve">
|
||||
<value>當前玩家數</value>
|
||||
</data>
|
||||
<data name="GrpServerStatus.Text" xml:space="preserve">
|
||||
<value>伺服器狀態</value>
|
||||
<data name="GrpRemoteCommand.Text" xml:space="preserve">
|
||||
<value>遠程執行</value>
|
||||
</data>
|
||||
<data name="TPPlayerCheck.Text" xml:space="preserve">
|
||||
<value>玩家驗證</value>
|
||||
</data>
|
||||
<data name="LnkRCHelp.Text" xml:space="preserve">
|
||||
<value>幫助</value>
|
||||
@@ -169,9 +178,6 @@
|
||||
<data name="BtnSendVerificationCode.Text" xml:space="preserve">
|
||||
<value>發送驗證碼</value>
|
||||
</data>
|
||||
<data name="TPPlayerCheck.Text" xml:space="preserve">
|
||||
<value>玩家驗證</value>
|
||||
</data>
|
||||
<data name="BtnConsoleConnect.Text" xml:space="preserve">
|
||||
<value>連接</value>
|
||||
</data>
|
||||
@@ -179,17 +185,17 @@
|
||||
<value>請注意,控制台狀態下普通命令必須指定目標
|
||||
(即設置包含UID)</value>
|
||||
</data>
|
||||
<data name="GrpRemoteCommand.Text" xml:space="preserve">
|
||||
<value>遠程執行</value>
|
||||
</data>
|
||||
<data name="BtnQueryServerStatus.Text" xml:space="preserve">
|
||||
<value>查詢</value>
|
||||
</data>
|
||||
<data name="LblHost.Text" xml:space="preserve">
|
||||
<value>伺服器地址</value>
|
||||
</data>
|
||||
<data name="TPRemoteCall.Text" xml:space="preserve">
|
||||
<value>遠程</value>
|
||||
<data name="TPAbout.Text" xml:space="preserve">
|
||||
<value>關於</value>
|
||||
</data>
|
||||
<data name="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>334, 102</value>
|
||||
</data>
|
||||
<data name="LblSupportDescription.Text" xml:space="preserve">
|
||||
<value>割草機工具箱
|
||||
@@ -199,15 +205,15 @@
|
||||
如果願意請我喝一杯奶茶,那就更好了 : )
|
||||
指令生成有問題,或者有新的功能請求,都可以來Github提出</value>
|
||||
</data>
|
||||
<data name="TPAbout.Text" xml:space="preserve">
|
||||
<value>關於</value>
|
||||
</data>
|
||||
<data name="BtnBan.Text" xml:space="preserve">
|
||||
<value>封號</value>
|
||||
</data>
|
||||
<data name="LblBanUID.Text" xml:space="preserve">
|
||||
<value>目標UID</value>
|
||||
</data>
|
||||
<data name="GrpAccount.Text" xml:space="preserve">
|
||||
<value>賬號管理</value>
|
||||
</data>
|
||||
<data name="BtnDeleteAccount.Text" xml:space="preserve">
|
||||
<value>- 刪除</value>
|
||||
</data>
|
||||
@@ -217,8 +223,8 @@
|
||||
<data name="LblAccountUserName.Text" xml:space="preserve">
|
||||
<value>用戶名</value>
|
||||
</data>
|
||||
<data name="GrpAccount.Text" xml:space="preserve">
|
||||
<value>賬號管理</value>
|
||||
<data name="GrpPermission.Text" xml:space="preserve">
|
||||
<value>權限管理</value>
|
||||
</data>
|
||||
<data name="LblPerm.Text" xml:space="preserve">
|
||||
<value>權限</value>
|
||||
@@ -226,17 +232,12 @@
|
||||
<data name="LblPermUID.Text" xml:space="preserve">
|
||||
<value>目標UID</value>
|
||||
</data>
|
||||
<data name="GrpPermission.Text" xml:space="preserve">
|
||||
<value>權限管理</value>
|
||||
<data name="TPScene.Text" xml:space="preserve">
|
||||
<value>場景</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Text" xml:space="preserve">
|
||||
<value>含場景ID</value>
|
||||
</data>
|
||||
<data name="LblTp.Text" xml:space="preserve">
|
||||
<value>座標傳送
|
||||
提示:遊戲內可以通過小地圖的'魚鉤'標記來快捷傳送
|
||||
命令中可以用~表示當前位置,~100表示相對當前100</value>
|
||||
</data>
|
||||
<data name="BtnTeleport.Text" xml:space="preserve">
|
||||
<value>傳送</value>
|
||||
</data>
|
||||
@@ -248,8 +249,13 @@
|
||||
|
||||
提示:大部分場景沒有作用,無法進入。</value>
|
||||
</data>
|
||||
<data name="TPScene.Text" xml:space="preserve">
|
||||
<value>場景</value>
|
||||
<data name="LblTp.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>290, 51</value>
|
||||
</data>
|
||||
<data name="LblTp.Text" xml:space="preserve">
|
||||
<value>座標傳送
|
||||
提示:遊戲內可以通過小地圖的'魚鉤'標記來快捷傳送
|
||||
命令中可以用~表示當前位置,~N 表示相對當前N</value>
|
||||
</data>
|
||||
<data name="BtnSaveGiveItemLog.Text" xml:space="preserve">
|
||||
<value>√ 記錄</value>
|
||||
@@ -270,6 +276,9 @@
|
||||
<value>給玩家指定物品
|
||||
說明:可選擇直接給到背包或者掉落到世界</value>
|
||||
</data>
|
||||
<data name="BtnGiveAllWeapons.Text" xml:space="preserve">
|
||||
<value>獲得所有武器</value>
|
||||
</data>
|
||||
<data name="LblWeaponDescription.Text" xml:space="preserve">
|
||||
<value>獲取武器
|
||||
|
||||
@@ -290,26 +299,29 @@
|
||||
<data name="LblWeaponLevel.Text" xml:space="preserve">
|
||||
<value>等級</value>
|
||||
</data>
|
||||
<data name="LblResetStatsCommand.Text" xml:space="preserve">
|
||||
<value>獲得角色經驗時</value>
|
||||
<data name="GrpSetConstellation.Text" xml:space="preserve">
|
||||
<value>設置命座</value>
|
||||
</data>
|
||||
<data name="LblResetStatsTip.Text" xml:space="preserve">
|
||||
<value>當前角色屬性將會重置</value>
|
||||
<data name="LnkSetAllConst.Text" xml:space="preserve">
|
||||
<value>設置所有角色</value>
|
||||
</data>
|
||||
<data name="LnkSetConst.Text" xml:space="preserve">
|
||||
<value>設置當前角色</value>
|
||||
</data>
|
||||
<data name="GrpSetStats.Text" xml:space="preserve">
|
||||
<value>角色屬性</value>
|
||||
</data>
|
||||
<data name="LnkTalentNormalATK.Text" xml:space="preserve">
|
||||
<value>普通攻擊</value>
|
||||
<data name="BtnUnlockStat.Text" xml:space="preserve">
|
||||
<value>解鎖</value>
|
||||
</data>
|
||||
<data name="BtnLockStat.Text" xml:space="preserve">
|
||||
<value>鎖定</value>
|
||||
</data>
|
||||
<data name="GrpTalentLevel.Text" xml:space="preserve">
|
||||
<value>技能等級</value>
|
||||
</data>
|
||||
<data name="LblStatsDescription.Text" xml:space="preserve">
|
||||
<value>設置當前活躍角色數據</value>
|
||||
</data>
|
||||
<data name="TPStats.Text" xml:space="preserve">
|
||||
<value>數據</value>
|
||||
<data name="LnkTalentNormalATK.Text" xml:space="preserve">
|
||||
<value>普通攻擊</value>
|
||||
</data>
|
||||
<data name="BtnGiveAllChar.Text" xml:space="preserve">
|
||||
<value>一鍵獲得所有角色</value>
|
||||
@@ -317,6 +329,12 @@
|
||||
<data name="LblAvatarLevel.Text" xml:space="preserve">
|
||||
<value>等級</value>
|
||||
</data>
|
||||
<data name="LblAvatarSkillLevelLabel.Text" xml:space="preserve">
|
||||
<value>技能等級</value>
|
||||
</data>
|
||||
<data name="ChkInfiniteHP.Text" xml:space="preserve">
|
||||
<value>無限血</value>
|
||||
</data>
|
||||
<data name="BtnSaveSpawnLog.Text" xml:space="preserve">
|
||||
<value>√ 記錄</value>
|
||||
</data>
|
||||
@@ -326,24 +344,21 @@
|
||||
<data name="GrpSpawnRecord.Text" xml:space="preserve">
|
||||
<value>生成記錄本</value>
|
||||
</data>
|
||||
<data name="RbEntityAnimal.Text" xml:space="preserve">
|
||||
<value>生物誌</value>
|
||||
</data>
|
||||
<data name="RbEntityMonster.Text" xml:space="preserve">
|
||||
<value>討伐對象</value>
|
||||
</data>
|
||||
<data name="GrpEntityType.Text" xml:space="preserve">
|
||||
<value>列表分類</value>
|
||||
</data>
|
||||
<data name="LblSpawnDescription.Text" xml:space="preserve">
|
||||
<value>在玩家附近召喚生物</value>
|
||||
</data>
|
||||
<data name="LblEntityAmount.Text" xml:space="preserve">
|
||||
<value>數量</value>
|
||||
</data>
|
||||
<data name="LblEntityLevel.Text" xml:space="preserve">
|
||||
<value>等級</value>
|
||||
</data>
|
||||
<data name="TPQuest.Text" xml:space="preserve">
|
||||
<value>任務</value>
|
||||
</data>
|
||||
<data name="GrpQuestFilters.Text" xml:space="preserve">
|
||||
<value>列表過濾</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterTEST.Text" xml:space="preserve">
|
||||
<value>測試任務</value>
|
||||
</data>
|
||||
@@ -353,9 +368,6 @@
|
||||
<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>
|
||||
</data>
|
||||
@@ -367,8 +379,8 @@
|
||||
提示:許多任務需要服務端腳本支持
|
||||
囙此任務可以接,可以完成,但是不一定可以做</value>
|
||||
</data>
|
||||
<data name="TPQuest.Text" xml:space="preserve">
|
||||
<value>任務</value>
|
||||
<data name="TPArtifact.Text" xml:space="preserve">
|
||||
<value>聖遺物</value>
|
||||
</data>
|
||||
<data name="LblArtifactSet.Text" xml:space="preserve">
|
||||
<value>套裝</value>
|
||||
@@ -385,8 +397,8 @@
|
||||
<data name="LblArtifactStars.Text" xml:space="preserve">
|
||||
<value>星級</value>
|
||||
</data>
|
||||
<data name="TPArtifact.Text" xml:space="preserve">
|
||||
<value>聖遺物</value>
|
||||
<data name="TPCustom.Text" xml:space="preserve">
|
||||
<value>自定義</value>
|
||||
</data>
|
||||
<data name="BtnExportCustomCommands.Text" xml:space="preserve">
|
||||
<value>導出</value>
|
||||
@@ -400,8 +412,14 @@
|
||||
<data name="BtnRemoveCustomCommand.Text" xml:space="preserve">
|
||||
<value>× 刪除</value>
|
||||
</data>
|
||||
<data name="TPCustom.Text" xml:space="preserve">
|
||||
<value>自定義</value>
|
||||
<data name="TPHome.Text" xml:space="preserve">
|
||||
<value>主頁</value>
|
||||
</data>
|
||||
<data name="BtnOpenShopEditor.Text" xml:space="preserve">
|
||||
<value>商店編輯器</value>
|
||||
</data>
|
||||
<data name="BtnOpenDropEditor.Text" xml:space="preserve">
|
||||
<value>掉落物編輯器</value>
|
||||
</data>
|
||||
<data name="BtnOpenTextMap.Text" xml:space="preserve">
|
||||
<value>文本瀏覽器</value>
|
||||
@@ -412,7 +430,46 @@
|
||||
<data name="ChkTopMost.Text" xml:space="preserve">
|
||||
<value>置頂</value>
|
||||
</data>
|
||||
<data name="TPHome.Text" xml:space="preserve">
|
||||
<value>主頁</value>
|
||||
<data name="TPMail.Text" xml:space="preserve">
|
||||
<value>郵件</value>
|
||||
</data>
|
||||
<data name="BtnDeleteMailItem.Text" xml:space="preserve">
|
||||
<value>- 刪除</value>
|
||||
</data>
|
||||
<data name="NUDMailItemLevel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>171, 4</value>
|
||||
</data>
|
||||
<data name="NUDMailItemCount.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>47, 4</value>
|
||||
</data>
|
||||
<data name="LblMailItemCount.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>-3, 6</value>
|
||||
</data>
|
||||
<data name="LblMailItemCount.Text" xml:space="preserve">
|
||||
<value>數量:</value>
|
||||
</data>
|
||||
<data name="LblMailItemLevel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>123, 6</value>
|
||||
</data>
|
||||
<data name="LblMailItemLevel.Text" xml:space="preserve">
|
||||
<value>等級:</value>
|
||||
</data>
|
||||
<data name="tabPage2.Text" xml:space="preserve">
|
||||
<value>郵件列表</value>
|
||||
</data>
|
||||
<data name="BtnRemoveMail.Text" xml:space="preserve">
|
||||
<value>- 刪除</value>
|
||||
</data>
|
||||
<data name="BtnSendMail.Text" xml:space="preserve">
|
||||
<value>發送</value>
|
||||
</data>
|
||||
<data name="LblMailContentLabel.Text" xml:space="preserve">
|
||||
<value>內容:</value>
|
||||
</data>
|
||||
<data name="LblMailTitleLabel.Text" xml:space="preserve">
|
||||
<value>標題:</value>
|
||||
</data>
|
||||
<data name="LblMailSenderLabel.Text" xml:space="preserve">
|
||||
<value>發件人:</value>
|
||||
</data>
|
||||
</root>
|
702
Source/GrasscutterTools/Forms/FormShopEditor.Designer.cs
generated
Normal file
@@ -0,0 +1,702 @@
|
||||
namespace GrasscutterTools.Forms
|
||||
{
|
||||
partial class FormShopEditor
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormShopEditor));
|
||||
this.ListShop = new System.Windows.Forms.ListBox();
|
||||
this.ListGoods = new System.Windows.Forms.ListBox();
|
||||
this.ListItems = new System.Windows.Forms.ListBox();
|
||||
this.GrpShopList = new System.Windows.Forms.GroupBox();
|
||||
this.GrpGoodsList = new System.Windows.Forms.GroupBox();
|
||||
this.BtnClearGoods = new System.Windows.Forms.Button();
|
||||
this.BtnDeleteGoods = new System.Windows.Forms.Button();
|
||||
this.GrpItems = new System.Windows.Forms.GroupBox();
|
||||
this.TxtItemFilter = new System.Windows.Forms.TextBox();
|
||||
this.GrpGoodsInfo = new System.Windows.Forms.GroupBox();
|
||||
this.BtnSaveGoods = new System.Windows.Forms.Button();
|
||||
this.CmbRefreshType = new System.Windows.Forms.ComboBox();
|
||||
this.NUDRefreshParm = new System.Windows.Forms.NumericUpDown();
|
||||
this.DTPEndTime = new System.Windows.Forms.DateTimePicker();
|
||||
this.DTPBeginTime = new System.Windows.Forms.DateTimePicker();
|
||||
this.NUDGoodsId = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDMaxLevel = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDMinLevel = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostItem4 = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostItem3 = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostItem2 = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostItem1 = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostMcoin = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostScoin = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostHcoin = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDBuyLimit = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostItem4Count = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostItem3Count = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostItem2Count = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDCostItem1Count = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDGoodsItemCount = new System.Windows.Forms.NumericUpDown();
|
||||
this.TxtGoodsItem = new System.Windows.Forms.TextBox();
|
||||
this.LblRefreshModeLabel = new System.Windows.Forms.Label();
|
||||
this.LblBuyLevelLabel = new System.Windows.Forms.Label();
|
||||
this.LblEndTimeLabel = new System.Windows.Forms.Label();
|
||||
this.LblBeginTimeLabel = new System.Windows.Forms.Label();
|
||||
this.LblCostItem4Label = new System.Windows.Forms.Label();
|
||||
this.LblCostItem3Label = new System.Windows.Forms.Label();
|
||||
this.LblCostItem2Label = new System.Windows.Forms.Label();
|
||||
this.LblCostItem1Label = new System.Windows.Forms.Label();
|
||||
this.LblCostMcoinLabel = new System.Windows.Forms.Label();
|
||||
this.LblCostScoinLabel = new System.Windows.Forms.Label();
|
||||
this.LblCostHcoinLabel = new System.Windows.Forms.Label();
|
||||
this.LblBuyLimitLabel = new System.Windows.Forms.Label();
|
||||
this.LblGoodsIdLabel = new System.Windows.Forms.Label();
|
||||
this.LblGoodsItemLabel = new System.Windows.Forms.Label();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.LnkGenGoodsId = new System.Windows.Forms.LinkLabel();
|
||||
this.label18 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.BtnSave = new System.Windows.Forms.Button();
|
||||
this.BtnLoad = new System.Windows.Forms.Button();
|
||||
this.TxtShopJsonPath = new System.Windows.Forms.TextBox();
|
||||
this.LblShopPathLabel = new System.Windows.Forms.Label();
|
||||
this.GrpShopList.SuspendLayout();
|
||||
this.GrpGoodsList.SuspendLayout();
|
||||
this.GrpItems.SuspendLayout();
|
||||
this.GrpGoodsInfo.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDRefreshParm)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDGoodsId)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMaxLevel)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMinLevel)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem4)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostMcoin)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostScoin)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostHcoin)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDBuyLimit)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem4Count)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem3Count)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem2Count)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem1Count)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDGoodsItemCount)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// ListShop
|
||||
//
|
||||
resources.ApplyResources(this.ListShop, "ListShop");
|
||||
this.ListShop.FormattingEnabled = true;
|
||||
this.ListShop.Name = "ListShop";
|
||||
this.ListShop.SelectedIndexChanged += new System.EventHandler(this.ListShop_SelectedIndexChanged);
|
||||
//
|
||||
// ListGoods
|
||||
//
|
||||
resources.ApplyResources(this.ListGoods, "ListGoods");
|
||||
this.ListGoods.FormattingEnabled = true;
|
||||
this.ListGoods.Name = "ListGoods";
|
||||
this.ListGoods.SelectedIndexChanged += new System.EventHandler(this.ListGoods_SelectedIndexChanged);
|
||||
//
|
||||
// ListItems
|
||||
//
|
||||
resources.ApplyResources(this.ListItems, "ListItems");
|
||||
this.ListItems.FormattingEnabled = true;
|
||||
this.ListItems.Name = "ListItems";
|
||||
this.ListItems.SelectedIndexChanged += new System.EventHandler(this.ListItems_SelectedIndexChanged);
|
||||
//
|
||||
// GrpShopList
|
||||
//
|
||||
resources.ApplyResources(this.GrpShopList, "GrpShopList");
|
||||
this.GrpShopList.Controls.Add(this.ListShop);
|
||||
this.GrpShopList.Name = "GrpShopList";
|
||||
this.GrpShopList.TabStop = false;
|
||||
//
|
||||
// GrpGoodsList
|
||||
//
|
||||
resources.ApplyResources(this.GrpGoodsList, "GrpGoodsList");
|
||||
this.GrpGoodsList.Controls.Add(this.BtnClearGoods);
|
||||
this.GrpGoodsList.Controls.Add(this.BtnDeleteGoods);
|
||||
this.GrpGoodsList.Controls.Add(this.ListGoods);
|
||||
this.GrpGoodsList.Name = "GrpGoodsList";
|
||||
this.GrpGoodsList.TabStop = false;
|
||||
//
|
||||
// BtnClearGoods
|
||||
//
|
||||
resources.ApplyResources(this.BtnClearGoods, "BtnClearGoods");
|
||||
this.BtnClearGoods.Name = "BtnClearGoods";
|
||||
this.BtnClearGoods.UseVisualStyleBackColor = true;
|
||||
this.BtnClearGoods.Click += new System.EventHandler(this.BtnClearGoods_Click);
|
||||
//
|
||||
// BtnDeleteGoods
|
||||
//
|
||||
resources.ApplyResources(this.BtnDeleteGoods, "BtnDeleteGoods");
|
||||
this.BtnDeleteGoods.Name = "BtnDeleteGoods";
|
||||
this.BtnDeleteGoods.UseVisualStyleBackColor = true;
|
||||
this.BtnDeleteGoods.Click += new System.EventHandler(this.BtnDeleteGoods_Click);
|
||||
//
|
||||
// GrpItems
|
||||
//
|
||||
resources.ApplyResources(this.GrpItems, "GrpItems");
|
||||
this.GrpItems.Controls.Add(this.TxtItemFilter);
|
||||
this.GrpItems.Controls.Add(this.ListItems);
|
||||
this.GrpItems.Name = "GrpItems";
|
||||
this.GrpItems.TabStop = false;
|
||||
//
|
||||
// TxtItemFilter
|
||||
//
|
||||
resources.ApplyResources(this.TxtItemFilter, "TxtItemFilter");
|
||||
this.TxtItemFilter.Name = "TxtItemFilter";
|
||||
this.TxtItemFilter.TextChanged += new System.EventHandler(this.TxtItemFilter_TextChanged);
|
||||
//
|
||||
// GrpGoodsInfo
|
||||
//
|
||||
resources.ApplyResources(this.GrpGoodsInfo, "GrpGoodsInfo");
|
||||
this.GrpGoodsInfo.Controls.Add(this.BtnSaveGoods);
|
||||
this.GrpGoodsInfo.Controls.Add(this.CmbRefreshType);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDRefreshParm);
|
||||
this.GrpGoodsInfo.Controls.Add(this.DTPEndTime);
|
||||
this.GrpGoodsInfo.Controls.Add(this.DTPBeginTime);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDGoodsId);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDMaxLevel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDMinLevel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostItem4);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostItem3);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostItem2);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostItem1);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostMcoin);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostScoin);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostHcoin);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDBuyLimit);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostItem4Count);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostItem3Count);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostItem2Count);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDCostItem1Count);
|
||||
this.GrpGoodsInfo.Controls.Add(this.NUDGoodsItemCount);
|
||||
this.GrpGoodsInfo.Controls.Add(this.TxtGoodsItem);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblRefreshModeLabel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblBuyLevelLabel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblEndTimeLabel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblBeginTimeLabel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblCostItem4Label);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblCostItem3Label);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblCostItem2Label);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblCostItem1Label);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblCostMcoinLabel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblCostScoinLabel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblCostHcoinLabel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblBuyLimitLabel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblGoodsIdLabel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LblGoodsItemLabel);
|
||||
this.GrpGoodsInfo.Controls.Add(this.label13);
|
||||
this.GrpGoodsInfo.Controls.Add(this.label12);
|
||||
this.GrpGoodsInfo.Controls.Add(this.label11);
|
||||
this.GrpGoodsInfo.Controls.Add(this.label14);
|
||||
this.GrpGoodsInfo.Controls.Add(this.LnkGenGoodsId);
|
||||
this.GrpGoodsInfo.Controls.Add(this.label18);
|
||||
this.GrpGoodsInfo.Controls.Add(this.label1);
|
||||
this.GrpGoodsInfo.Name = "GrpGoodsInfo";
|
||||
this.GrpGoodsInfo.TabStop = false;
|
||||
//
|
||||
// BtnSaveGoods
|
||||
//
|
||||
resources.ApplyResources(this.BtnSaveGoods, "BtnSaveGoods");
|
||||
this.BtnSaveGoods.Name = "BtnSaveGoods";
|
||||
this.BtnSaveGoods.UseVisualStyleBackColor = true;
|
||||
this.BtnSaveGoods.Click += new System.EventHandler(this.BtnSaveGoods_Click);
|
||||
//
|
||||
// CmbRefreshType
|
||||
//
|
||||
resources.ApplyResources(this.CmbRefreshType, "CmbRefreshType");
|
||||
this.CmbRefreshType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.CmbRefreshType.FormattingEnabled = true;
|
||||
this.CmbRefreshType.Items.AddRange(new object[] {
|
||||
resources.GetString("CmbRefreshType.Items"),
|
||||
resources.GetString("CmbRefreshType.Items1"),
|
||||
resources.GetString("CmbRefreshType.Items2"),
|
||||
resources.GetString("CmbRefreshType.Items3")});
|
||||
this.CmbRefreshType.Name = "CmbRefreshType";
|
||||
this.CmbRefreshType.SelectedIndexChanged += new System.EventHandler(this.CmbRefreshType_SelectedIndexChanged);
|
||||
//
|
||||
// NUDRefreshParm
|
||||
//
|
||||
resources.ApplyResources(this.NUDRefreshParm, "NUDRefreshParm");
|
||||
this.NUDRefreshParm.Maximum = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDRefreshParm.Name = "NUDRefreshParm";
|
||||
//
|
||||
// DTPEndTime
|
||||
//
|
||||
resources.ApplyResources(this.DTPEndTime, "DTPEndTime");
|
||||
this.DTPEndTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.DTPEndTime.Name = "DTPEndTime";
|
||||
this.DTPEndTime.Value = new System.DateTime(2035, 1, 1, 0, 0, 0, 0);
|
||||
//
|
||||
// DTPBeginTime
|
||||
//
|
||||
resources.ApplyResources(this.DTPBeginTime, "DTPBeginTime");
|
||||
this.DTPBeginTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.DTPBeginTime.Name = "DTPBeginTime";
|
||||
this.DTPBeginTime.Value = new System.DateTime(2022, 1, 1, 0, 0, 0, 0);
|
||||
//
|
||||
// NUDGoodsId
|
||||
//
|
||||
resources.ApplyResources(this.NUDGoodsId, "NUDGoodsId");
|
||||
this.NUDGoodsId.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDGoodsId.Name = "NUDGoodsId";
|
||||
this.NUDGoodsId.Value = new decimal(new int[] {
|
||||
101001,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// NUDMaxLevel
|
||||
//
|
||||
resources.ApplyResources(this.NUDMaxLevel, "NUDMaxLevel");
|
||||
this.NUDMaxLevel.Maximum = new decimal(new int[] {
|
||||
99,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDMaxLevel.Name = "NUDMaxLevel";
|
||||
this.NUDMaxLevel.Value = new decimal(new int[] {
|
||||
61,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// NUDMinLevel
|
||||
//
|
||||
resources.ApplyResources(this.NUDMinLevel, "NUDMinLevel");
|
||||
this.NUDMinLevel.Maximum = new decimal(new int[] {
|
||||
99,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDMinLevel.Name = "NUDMinLevel";
|
||||
this.NUDMinLevel.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// NUDCostItem4
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostItem4, "NUDCostItem4");
|
||||
this.NUDCostItem4.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostItem4.Name = "NUDCostItem4";
|
||||
//
|
||||
// NUDCostItem3
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostItem3, "NUDCostItem3");
|
||||
this.NUDCostItem3.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostItem3.Name = "NUDCostItem3";
|
||||
//
|
||||
// NUDCostItem2
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostItem2, "NUDCostItem2");
|
||||
this.NUDCostItem2.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostItem2.Name = "NUDCostItem2";
|
||||
//
|
||||
// NUDCostItem1
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostItem1, "NUDCostItem1");
|
||||
this.NUDCostItem1.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostItem1.Name = "NUDCostItem1";
|
||||
//
|
||||
// NUDCostMcoin
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostMcoin, "NUDCostMcoin");
|
||||
this.NUDCostMcoin.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostMcoin.Name = "NUDCostMcoin";
|
||||
//
|
||||
// NUDCostScoin
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostScoin, "NUDCostScoin");
|
||||
this.NUDCostScoin.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostScoin.Name = "NUDCostScoin";
|
||||
//
|
||||
// NUDCostHcoin
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostHcoin, "NUDCostHcoin");
|
||||
this.NUDCostHcoin.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostHcoin.Name = "NUDCostHcoin";
|
||||
//
|
||||
// NUDBuyLimit
|
||||
//
|
||||
resources.ApplyResources(this.NUDBuyLimit, "NUDBuyLimit");
|
||||
this.NUDBuyLimit.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDBuyLimit.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDBuyLimit.Name = "NUDBuyLimit";
|
||||
this.NUDBuyLimit.Value = new decimal(new int[] {
|
||||
100,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// NUDCostItem4Count
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostItem4Count, "NUDCostItem4Count");
|
||||
this.NUDCostItem4Count.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostItem4Count.Name = "NUDCostItem4Count";
|
||||
//
|
||||
// NUDCostItem3Count
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostItem3Count, "NUDCostItem3Count");
|
||||
this.NUDCostItem3Count.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostItem3Count.Name = "NUDCostItem3Count";
|
||||
//
|
||||
// NUDCostItem2Count
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostItem2Count, "NUDCostItem2Count");
|
||||
this.NUDCostItem2Count.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostItem2Count.Name = "NUDCostItem2Count";
|
||||
//
|
||||
// NUDCostItem1Count
|
||||
//
|
||||
resources.ApplyResources(this.NUDCostItem1Count, "NUDCostItem1Count");
|
||||
this.NUDCostItem1Count.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDCostItem1Count.Name = "NUDCostItem1Count";
|
||||
//
|
||||
// NUDGoodsItemCount
|
||||
//
|
||||
resources.ApplyResources(this.NUDGoodsItemCount, "NUDGoodsItemCount");
|
||||
this.NUDGoodsItemCount.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDGoodsItemCount.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDGoodsItemCount.Name = "NUDGoodsItemCount";
|
||||
this.NUDGoodsItemCount.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// TxtGoodsItem
|
||||
//
|
||||
resources.ApplyResources(this.TxtGoodsItem, "TxtGoodsItem");
|
||||
this.TxtGoodsItem.Name = "TxtGoodsItem";
|
||||
//
|
||||
// LblRefreshModeLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblRefreshModeLabel, "LblRefreshModeLabel");
|
||||
this.LblRefreshModeLabel.Name = "LblRefreshModeLabel";
|
||||
//
|
||||
// LblBuyLevelLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblBuyLevelLabel, "LblBuyLevelLabel");
|
||||
this.LblBuyLevelLabel.Name = "LblBuyLevelLabel";
|
||||
//
|
||||
// LblEndTimeLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblEndTimeLabel, "LblEndTimeLabel");
|
||||
this.LblEndTimeLabel.Name = "LblEndTimeLabel";
|
||||
//
|
||||
// LblBeginTimeLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblBeginTimeLabel, "LblBeginTimeLabel");
|
||||
this.LblBeginTimeLabel.Name = "LblBeginTimeLabel";
|
||||
//
|
||||
// LblCostItem4Label
|
||||
//
|
||||
resources.ApplyResources(this.LblCostItem4Label, "LblCostItem4Label");
|
||||
this.LblCostItem4Label.Name = "LblCostItem4Label";
|
||||
//
|
||||
// LblCostItem3Label
|
||||
//
|
||||
resources.ApplyResources(this.LblCostItem3Label, "LblCostItem3Label");
|
||||
this.LblCostItem3Label.Name = "LblCostItem3Label";
|
||||
//
|
||||
// LblCostItem2Label
|
||||
//
|
||||
resources.ApplyResources(this.LblCostItem2Label, "LblCostItem2Label");
|
||||
this.LblCostItem2Label.Name = "LblCostItem2Label";
|
||||
//
|
||||
// LblCostItem1Label
|
||||
//
|
||||
resources.ApplyResources(this.LblCostItem1Label, "LblCostItem1Label");
|
||||
this.LblCostItem1Label.Name = "LblCostItem1Label";
|
||||
//
|
||||
// LblCostMcoinLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblCostMcoinLabel, "LblCostMcoinLabel");
|
||||
this.LblCostMcoinLabel.Name = "LblCostMcoinLabel";
|
||||
//
|
||||
// LblCostScoinLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblCostScoinLabel, "LblCostScoinLabel");
|
||||
this.LblCostScoinLabel.Name = "LblCostScoinLabel";
|
||||
//
|
||||
// LblCostHcoinLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblCostHcoinLabel, "LblCostHcoinLabel");
|
||||
this.LblCostHcoinLabel.Name = "LblCostHcoinLabel";
|
||||
//
|
||||
// LblBuyLimitLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblBuyLimitLabel, "LblBuyLimitLabel");
|
||||
this.LblBuyLimitLabel.Name = "LblBuyLimitLabel";
|
||||
//
|
||||
// LblGoodsIdLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblGoodsIdLabel, "LblGoodsIdLabel");
|
||||
this.LblGoodsIdLabel.Name = "LblGoodsIdLabel";
|
||||
//
|
||||
// LblGoodsItemLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblGoodsItemLabel, "LblGoodsItemLabel");
|
||||
this.LblGoodsItemLabel.Name = "LblGoodsItemLabel";
|
||||
//
|
||||
// label13
|
||||
//
|
||||
resources.ApplyResources(this.label13, "label13");
|
||||
this.label13.Name = "label13";
|
||||
//
|
||||
// label12
|
||||
//
|
||||
resources.ApplyResources(this.label12, "label12");
|
||||
this.label12.Name = "label12";
|
||||
//
|
||||
// label11
|
||||
//
|
||||
resources.ApplyResources(this.label11, "label11");
|
||||
this.label11.Name = "label11";
|
||||
//
|
||||
// label14
|
||||
//
|
||||
resources.ApplyResources(this.label14, "label14");
|
||||
this.label14.Name = "label14";
|
||||
//
|
||||
// LnkGenGoodsId
|
||||
//
|
||||
resources.ApplyResources(this.LnkGenGoodsId, "LnkGenGoodsId");
|
||||
this.LnkGenGoodsId.Name = "LnkGenGoodsId";
|
||||
this.LnkGenGoodsId.TabStop = true;
|
||||
this.LnkGenGoodsId.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkGenGoodsId_LinkClicked);
|
||||
//
|
||||
// label18
|
||||
//
|
||||
resources.ApplyResources(this.label18, "label18");
|
||||
this.label18.Name = "label18";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
resources.ApplyResources(this.label1, "label1");
|
||||
this.label1.Name = "label1";
|
||||
//
|
||||
// BtnSave
|
||||
//
|
||||
resources.ApplyResources(this.BtnSave, "BtnSave");
|
||||
this.BtnSave.Name = "BtnSave";
|
||||
this.BtnSave.UseVisualStyleBackColor = true;
|
||||
this.BtnSave.Click += new System.EventHandler(this.BtnSave_Click);
|
||||
//
|
||||
// BtnLoad
|
||||
//
|
||||
resources.ApplyResources(this.BtnLoad, "BtnLoad");
|
||||
this.BtnLoad.Name = "BtnLoad";
|
||||
this.BtnLoad.UseVisualStyleBackColor = true;
|
||||
this.BtnLoad.Click += new System.EventHandler(this.BtnLoad_Click);
|
||||
//
|
||||
// TxtShopJsonPath
|
||||
//
|
||||
resources.ApplyResources(this.TxtShopJsonPath, "TxtShopJsonPath");
|
||||
this.TxtShopJsonPath.Name = "TxtShopJsonPath";
|
||||
//
|
||||
// LblShopPathLabel
|
||||
//
|
||||
resources.ApplyResources(this.LblShopPathLabel, "LblShopPathLabel");
|
||||
this.LblShopPathLabel.Name = "LblShopPathLabel";
|
||||
//
|
||||
// FormShopEditor
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.BtnSave);
|
||||
this.Controls.Add(this.BtnLoad);
|
||||
this.Controls.Add(this.TxtShopJsonPath);
|
||||
this.Controls.Add(this.LblShopPathLabel);
|
||||
this.Controls.Add(this.GrpGoodsInfo);
|
||||
this.Controls.Add(this.GrpItems);
|
||||
this.Controls.Add(this.GrpGoodsList);
|
||||
this.Controls.Add(this.GrpShopList);
|
||||
this.Name = "FormShopEditor";
|
||||
this.GrpShopList.ResumeLayout(false);
|
||||
this.GrpGoodsList.ResumeLayout(false);
|
||||
this.GrpItems.ResumeLayout(false);
|
||||
this.GrpItems.PerformLayout();
|
||||
this.GrpGoodsInfo.ResumeLayout(false);
|
||||
this.GrpGoodsInfo.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDRefreshParm)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDGoodsId)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMaxLevel)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDMinLevel)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem4)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostMcoin)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostScoin)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostHcoin)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDBuyLimit)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem4Count)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem3Count)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem2Count)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDCostItem1Count)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDGoodsItemCount)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ListBox ListShop;
|
||||
private System.Windows.Forms.ListBox ListGoods;
|
||||
private System.Windows.Forms.ListBox ListItems;
|
||||
private System.Windows.Forms.GroupBox GrpShopList;
|
||||
private System.Windows.Forms.GroupBox GrpGoodsList;
|
||||
private System.Windows.Forms.GroupBox GrpItems;
|
||||
private System.Windows.Forms.GroupBox GrpGoodsInfo;
|
||||
private System.Windows.Forms.Button BtnSave;
|
||||
private System.Windows.Forms.Button BtnLoad;
|
||||
private System.Windows.Forms.TextBox TxtShopJsonPath;
|
||||
private System.Windows.Forms.Label LblShopPathLabel;
|
||||
private System.Windows.Forms.NumericUpDown NUDGoodsItemCount;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox TxtGoodsItem;
|
||||
private System.Windows.Forms.Label LblGoodsItemLabel;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostItem3;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostItem2;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostItem1;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostMcoin;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostScoin;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostHcoin;
|
||||
private System.Windows.Forms.NumericUpDown NUDBuyLimit;
|
||||
private System.Windows.Forms.NumericUpDown NUDMaxLevel;
|
||||
private System.Windows.Forms.NumericUpDown NUDMinLevel;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostItem4;
|
||||
private System.Windows.Forms.Label LblGoodsIdLabel;
|
||||
private System.Windows.Forms.NumericUpDown NUDGoodsId;
|
||||
private System.Windows.Forms.Label LblBuyLimitLabel;
|
||||
private System.Windows.Forms.Label LblCostItem4Label;
|
||||
private System.Windows.Forms.Label LblCostItem3Label;
|
||||
private System.Windows.Forms.Label LblCostItem2Label;
|
||||
private System.Windows.Forms.Label LblCostItem1Label;
|
||||
private System.Windows.Forms.Label LblCostMcoinLabel;
|
||||
private System.Windows.Forms.Label LblCostScoinLabel;
|
||||
private System.Windows.Forms.Label LblCostHcoinLabel;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostItem4Count;
|
||||
private System.Windows.Forms.Label label14;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostItem3Count;
|
||||
private System.Windows.Forms.Label label13;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostItem2Count;
|
||||
private System.Windows.Forms.Label label12;
|
||||
private System.Windows.Forms.NumericUpDown NUDCostItem1Count;
|
||||
private System.Windows.Forms.Label label11;
|
||||
private System.Windows.Forms.DateTimePicker DTPEndTime;
|
||||
private System.Windows.Forms.DateTimePicker DTPBeginTime;
|
||||
private System.Windows.Forms.Label LblEndTimeLabel;
|
||||
private System.Windows.Forms.Label LblBeginTimeLabel;
|
||||
private System.Windows.Forms.Label LblBuyLevelLabel;
|
||||
private System.Windows.Forms.Label label18;
|
||||
private System.Windows.Forms.LinkLabel LnkGenGoodsId;
|
||||
private System.Windows.Forms.ComboBox CmbRefreshType;
|
||||
private System.Windows.Forms.NumericUpDown NUDRefreshParm;
|
||||
private System.Windows.Forms.Label LblRefreshModeLabel;
|
||||
private System.Windows.Forms.Button BtnSaveGoods;
|
||||
private System.Windows.Forms.TextBox TxtItemFilter;
|
||||
private System.Windows.Forms.Button BtnClearGoods;
|
||||
private System.Windows.Forms.Button BtnDeleteGoods;
|
||||
}
|
||||
}
|
479
Source/GrasscutterTools/Forms/FormShopEditor.cs
Normal file
@@ -0,0 +1,479 @@
|
||||
/**
|
||||
* 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.IO;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using GrasscutterTools.Game;
|
||||
using GrasscutterTools.Game.Shop;
|
||||
using GrasscutterTools.Properties;
|
||||
using GrasscutterTools.Utils;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Forms
|
||||
{
|
||||
public partial class FormShopEditor : Form
|
||||
{
|
||||
#region - 成员 -
|
||||
|
||||
/// <summary>
|
||||
/// 商店列表数据
|
||||
/// </summary>
|
||||
private Dictionary<int, List<ShopInfo>> Shops = new Dictionary<int, List<ShopInfo>>();
|
||||
|
||||
/// <summary>
|
||||
/// 选中的商店类型
|
||||
/// </summary>
|
||||
private int SelectedShopType;
|
||||
|
||||
#endregion - 成员 -
|
||||
|
||||
#region - 构造与窗体事件 -
|
||||
|
||||
public FormShopEditor()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
Icon = Resources.IconGrasscutter;
|
||||
|
||||
ListShop.Items.AddRange(GameData.ShopType.Lines);
|
||||
ListItems.Items.AddRange(GameData.Items.Lines);
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
try
|
||||
{
|
||||
// 加载文件路径
|
||||
var path = Settings.Default.ShopJsonPath;
|
||||
TxtShopJsonPath.Text = path;
|
||||
if (!string.IsNullOrEmpty(path) && File.Exists(path))
|
||||
LoadShops(path);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnFormClosed(FormClosedEventArgs e)
|
||||
{
|
||||
Settings.Default.ShopJsonPath = TxtShopJsonPath.Text;
|
||||
Settings.Default.Save();
|
||||
|
||||
base.OnFormClosed(e);
|
||||
}
|
||||
|
||||
#endregion - 构造与窗体事件 -
|
||||
|
||||
#region - Shop.json 文件相关 -
|
||||
|
||||
/// <summary>
|
||||
/// 点击加载Shop.json按钮时触发
|
||||
/// </summary>
|
||||
private void BtnLoad_Click(object sender, EventArgs e)
|
||||
{
|
||||
var path = TxtShopJsonPath.Text.Trim();
|
||||
try
|
||||
{
|
||||
if (path == string.Empty)
|
||||
{
|
||||
var dialog = new OpenFileDialog
|
||||
{
|
||||
FileName = "Shop.json",
|
||||
Filter = "Shop.Json (*.json)|*.json|All files (*.*)|*.*",
|
||||
};
|
||||
var result = dialog.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
path = TxtShopJsonPath.Text = dialog.FileName;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
// 反序列化
|
||||
LoadShops(path);
|
||||
MessageBox.Show("OK", Resources.Tips, MessageBoxButtons.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载商店
|
||||
/// </summary>
|
||||
/// <param name="path">文件路径</param>
|
||||
private void LoadShops(string path)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 反序列化
|
||||
var banners = JsonConvert.DeserializeObject<List<ShopTable>>(File.ReadAllText(path));
|
||||
Shops = new Dictionary<int, List<ShopInfo>>(banners.Count);
|
||||
foreach (var item in banners)
|
||||
Shops.Add(item.ShopType, item.Items);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 当Json解析失败时尝试以tsv方式解析
|
||||
LoadShopsFromTsv(path);
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从TSV加载商店
|
||||
/// </summary>
|
||||
/// <param name="path">文件路径</param>
|
||||
private void LoadShopsFromTsv(string path)
|
||||
{
|
||||
var lines = File.ReadAllLines(path);
|
||||
Shops = new Dictionary<int, List<ShopInfo>>();
|
||||
for (int i = 1; i < lines.Length; i++)
|
||||
{
|
||||
var cells = lines[i].Split('\t');
|
||||
|
||||
var goods = new ShopInfo
|
||||
{
|
||||
GoodsId = int.Parse(cells[0]),
|
||||
GoodsItem = new ItemParamData(int.Parse(cells[2]), int.Parse(cells[4])),
|
||||
BuyLimit = TryParse(cells[16]),
|
||||
MinLevel = TryParse(cells[29]),
|
||||
MaxLevel = TryParse(cells[30]),
|
||||
BeginTime = (int)new DateTimeOffset(DateTime.Parse(cells[20])).ToUnixTimeSeconds(),
|
||||
EndTime = (int)new DateTimeOffset(DateTime.Parse(cells[21])).ToUnixTimeSeconds(),
|
||||
RefreshType = (ShopRefreshType)TryParse(cells[17]),
|
||||
ShopRefreshParam = TryParse(cells[18]),
|
||||
HCoin = TryParse(cells[5]),
|
||||
SCoin = TryParse(cells[6]),
|
||||
MCoin = TryParse(cells[7]),
|
||||
CostItemList = new List<ItemParamData>
|
||||
{
|
||||
new ItemParamData(TryParse(cells[8]), TryParse(cells[9])),
|
||||
new ItemParamData(TryParse(cells[10]), TryParse(cells[11])),
|
||||
new ItemParamData(TryParse(cells[12]), TryParse(cells[13])),
|
||||
new ItemParamData(TryParse(cells[14]), TryParse(cells[15])),
|
||||
}
|
||||
};
|
||||
|
||||
var shopType = int.Parse(cells[1]);
|
||||
if (!Shops.TryGetValue(shopType, out List<ShopInfo> shops))
|
||||
Shops.Add(shopType, shops = new List<ShopInfo>());
|
||||
shops.Add(goods);
|
||||
}
|
||||
}
|
||||
|
||||
private static int TryParse(string value) => int.TryParse(value, out int n) ? n : 0;
|
||||
|
||||
/// <summary>
|
||||
/// 点击保存Shop.json按钮时触发
|
||||
/// </summary>
|
||||
private void BtnSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var path = TxtShopJsonPath.Text.Trim();
|
||||
if (path == string.Empty)
|
||||
{
|
||||
var dialog = new SaveFileDialog
|
||||
{
|
||||
FileName = "Shop.json",
|
||||
Filter = "Shop.json (*.json)|*.json|All files (*.*)|*.*",
|
||||
};
|
||||
var result = dialog.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
path = TxtShopJsonPath.Text = dialog.FileName;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
// 序列化
|
||||
var banners = new List<ShopTable>(Shops.Count);
|
||||
foreach (var shop in Shops)
|
||||
{
|
||||
if (shop.Value != null && shop.Value.Count > 0)
|
||||
{
|
||||
banners.Add(new ShopTable
|
||||
{
|
||||
ShopType = shop.Key,
|
||||
Items = shop.Value,
|
||||
});
|
||||
}
|
||||
}
|
||||
File.WriteAllText(path, JsonConvert.SerializeObject(banners, new JsonSerializerSettings
|
||||
{
|
||||
Formatting = Formatting.Indented,
|
||||
DefaultValueHandling = DefaultValueHandling.Ignore,
|
||||
}));
|
||||
MessageBox.Show("OK", Resources.Tips, MessageBoxButtons.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion - Shop.json 文件相关 -
|
||||
|
||||
#region - 商店列表 -
|
||||
|
||||
/// <summary>
|
||||
/// 商店列表选中项改变时触发
|
||||
/// </summary>
|
||||
private void ListShop_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (ListShop.SelectedIndex == -1)
|
||||
{
|
||||
SelectedShopType = 0;
|
||||
return;
|
||||
}
|
||||
SelectedShopType = ItemMap.ToId(ListShop.SelectedItem as string);
|
||||
Shops.TryGetValue(SelectedShopType, out var shop);
|
||||
ShowGoodsList(shop);
|
||||
}
|
||||
|
||||
#endregion - 商店列表 -
|
||||
|
||||
#region - 商品列表 -
|
||||
|
||||
/// <summary>
|
||||
/// 显示商品列表
|
||||
/// </summary>
|
||||
private void ShowGoodsList(List<ShopInfo> banner)
|
||||
{
|
||||
ListGoods.BeginUpdate();
|
||||
ListGoods.Items.Clear();
|
||||
if (banner != null && banner.Count > 0)
|
||||
{
|
||||
ListGoods.Items.AddRange(banner.Select(it => it.ToString()).ToArray());
|
||||
//ListGoods.SelectedIndex = 0;
|
||||
}
|
||||
ListGoods.EndUpdate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 商品列表选中项改变时触发
|
||||
/// </summary>
|
||||
private void ListGoods_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (ListGoods.SelectedIndex == -1) return;
|
||||
ShowGoods(Shops[SelectedShopType][ListGoods.SelectedIndex]);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击删除商品按钮时触发
|
||||
/// </summary>
|
||||
private void BtnDeleteGoods_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ListGoods.SelectedIndex == -1) return;
|
||||
if (MessageBox.Show(Resources.AskConfirmDeletion, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
Shops[SelectedShopType].RemoveAt(ListGoods.SelectedIndex);
|
||||
ListGoods.Items.RemoveAt(ListGoods.SelectedIndex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击清空商品按钮时触发
|
||||
/// </summary>
|
||||
private void BtnClearGoods_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ListGoods.Items.Count == 0) return;
|
||||
if (MessageBox.Show(Resources.AskConfirmDeletion, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
Shops.Remove(SelectedShopType);
|
||||
ListGoods.Items.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion - 商品列表 -
|
||||
|
||||
#region - 商品信息 -
|
||||
|
||||
/// <summary>
|
||||
/// 显示商品
|
||||
/// </summary>
|
||||
/// <param name="goods"></param>
|
||||
private void ShowGoods(ShopInfo goods)
|
||||
{
|
||||
NUDGoodsId.Value = goods.GoodsId;
|
||||
TxtGoodsItem.Text = $"{goods.GoodsItem.Id}:{GameData.Items[goods.GoodsItem.Id]}";
|
||||
NUDGoodsItemCount.Value = goods.GoodsItem.Count;
|
||||
NUDBuyLimit.Value = goods.BuyLimit;
|
||||
NUDMinLevel.Value = goods.MinLevel;
|
||||
NUDMaxLevel.Value = goods.MaxLevel;
|
||||
DTPBeginTime.Value = DateTimeOffset.FromUnixTimeSeconds(goods.BeginTime).LocalDateTime;
|
||||
DTPEndTime.Value = DateTimeOffset.FromUnixTimeSeconds(goods.EndTime).LocalDateTime;
|
||||
NUDRefreshParm.Value = goods.ShopRefreshParam;
|
||||
CmbRefreshType.SelectedIndex = (int)goods.RefreshType;
|
||||
NUDCostHcoin.Value = goods.HCoin;
|
||||
NUDCostScoin.Value = goods.SCoin;
|
||||
NUDCostMcoin.Value = goods.MCoin;
|
||||
var items = new ItemParamData[4];
|
||||
goods.CostItemList?.CopyTo(items, 0);
|
||||
NUDCostItem1.Value = items[0].Id;
|
||||
NUDCostItem1Count.Value = items[0].Count;
|
||||
NUDCostItem2.Value = items[1].Id;
|
||||
NUDCostItem2Count.Value = items[1].Count;
|
||||
NUDCostItem3.Value = items[2].Id;
|
||||
NUDCostItem3Count.Value = items[2].Count;
|
||||
NUDCostItem4.Value = items[3].Id;
|
||||
NUDCostItem4Count.Value = items[3].Count;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击生成商品ID链接标签时触发
|
||||
/// </summary>
|
||||
private void LnkGenGoodsId_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
if (ListShop.SelectedIndex == -1) return;
|
||||
|
||||
if (ItemMap.TryToId(TxtGoodsItem.Text, out int itemId))
|
||||
NUDGoodsId.Value = SelectedShopType * 1000 + itemId % 1000;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新类型选中项改变时触发
|
||||
/// </summary>
|
||||
private void CmbRefreshType_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
NUDRefreshParm.Enabled = CmbRefreshType.SelectedIndex > 0;
|
||||
if (CmbRefreshType.SelectedIndex == 0)
|
||||
NUDRefreshParm.Value = 0;
|
||||
else if (NUDRefreshParm.Value == 0)
|
||||
NUDRefreshParm.Value = 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击保存商品按钮时触发
|
||||
/// </summary>
|
||||
private void BtnSaveGoods_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!ItemMap.TryToId(TxtGoodsItem.Text, out int itemId))
|
||||
{
|
||||
MessageBox.Show(Resources.EmptyInputTip, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查ID冲突
|
||||
var goodsId = (int)NUDGoodsId.Value;
|
||||
if (Shops.Any(kv => kv.Key != SelectedShopType && kv.Value.Any(it => it.GoodsId == goodsId)))
|
||||
{
|
||||
MessageBox.Show(Resources.GoodsIDConflictPrompt, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
List<ItemParamData> costs = new List<ItemParamData>();
|
||||
if (NUDCostItem1Count.Value > 0 && NUDCostItem1.Value > 0)
|
||||
costs.Add(new ItemParamData((int)NUDCostItem1.Value, (int)NUDCostItem1Count.Value));
|
||||
if (NUDCostItem2Count.Value > 0 && NUDCostItem2.Value > 0)
|
||||
costs.Add(new ItemParamData((int)NUDCostItem2.Value, (int)NUDCostItem2Count.Value));
|
||||
if (NUDCostItem3Count.Value > 0 && NUDCostItem3.Value > 0)
|
||||
costs.Add(new ItemParamData((int)NUDCostItem3.Value, (int)NUDCostItem3Count.Value));
|
||||
if (NUDCostItem4Count.Value > 0 && NUDCostItem4.Value > 0)
|
||||
costs.Add(new ItemParamData((int)NUDCostItem4.Value, (int)NUDCostItem4Count.Value));
|
||||
ShopInfo goods = new ShopInfo
|
||||
{
|
||||
GoodsId = goodsId,
|
||||
GoodsItem = new ItemParamData(itemId, (int)NUDGoodsItemCount.Value),
|
||||
BuyLimit = (int)NUDBuyLimit.Value,
|
||||
MinLevel = (int)NUDMinLevel.Value,
|
||||
MaxLevel = (int)NUDMaxLevel.Value,
|
||||
BeginTime = (int)new DateTimeOffset(DTPBeginTime.Value).ToUnixTimeSeconds(),
|
||||
EndTime = (int)new DateTimeOffset(DTPEndTime.Value).ToUnixTimeSeconds(),
|
||||
RefreshType = CmbRefreshType.SelectedIndex == -1 ? ShopRefreshType.None : (ShopRefreshType)CmbRefreshType.SelectedIndex,
|
||||
ShopRefreshParam = (int)NUDRefreshParm.Value,
|
||||
HCoin = (int)NUDCostHcoin.Value,
|
||||
SCoin = (int)NUDCostScoin.Value,
|
||||
MCoin = (int)NUDCostMcoin.Value,
|
||||
CostItemList = costs,
|
||||
// 以下属性不认识,代码里看似也没用,不写了
|
||||
//BoughtNum
|
||||
//DisableType
|
||||
//PreGoodsIdList
|
||||
//SecondarySheetId
|
||||
};
|
||||
|
||||
if (Shops.TryGetValue(SelectedShopType, out var shop))
|
||||
{
|
||||
var i = shop.FindIndex(it => it.GoodsId == goodsId);
|
||||
if (i == -1)
|
||||
{
|
||||
// 增加到现有列表
|
||||
shop.Add(goods);
|
||||
ListGoods.Items.Add(goods.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
// 修改
|
||||
shop[i] = goods;
|
||||
ListGoods.Items[i] = goods.ToString();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 增加到新列表
|
||||
Shops[SelectedShopType] = new List<ShopInfo> { goods };
|
||||
ListGoods.Items.Add(goods.ToString());
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion - 商品信息 -
|
||||
|
||||
#region - 物品列表 -
|
||||
|
||||
/// <summary>
|
||||
/// 物品列表过滤框输入改变事件
|
||||
/// </summary>
|
||||
private void TxtItemFilter_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
UIUtil.ListBoxFilter(ListItems, GameData.Items.Lines, TxtItemFilter.Text);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 物品列表选中项改变时触发
|
||||
/// </summary>
|
||||
private void ListItems_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (ListItems.SelectedIndex == -1) return;
|
||||
TxtGoodsItem.Text = ListItems.SelectedItem as string;
|
||||
}
|
||||
|
||||
#endregion - 物品列表 -
|
||||
}
|
||||
}
|
259
Source/GrasscutterTools/Forms/FormShopEditor.en-US.resx
Normal file
@@ -0,0 +1,259 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="GrpShopList.Text" xml:space="preserve">
|
||||
<value>Shop list</value>
|
||||
</data>
|
||||
<data name="GrpGoodsList.Text" xml:space="preserve">
|
||||
<value>Shop info list</value>
|
||||
</data>
|
||||
<data name="BtnClearGoods.Text" xml:space="preserve">
|
||||
<value>× Clear</value>
|
||||
</data>
|
||||
<data name="BtnDeleteGoods.Text" xml:space="preserve">
|
||||
<value>- Delete</value>
|
||||
</data>
|
||||
<data name="GrpItems.Text" xml:space="preserve">
|
||||
<value>Item list</value>
|
||||
</data>
|
||||
<data name="GrpGoodsInfo.Text" xml:space="preserve">
|
||||
<value>Shop info</value>
|
||||
</data>
|
||||
<data name="BtnSaveGoods.Text" xml:space="preserve">
|
||||
<value>√ Add or Update</value>
|
||||
</data>
|
||||
<data name="CmbRefreshType.Items" xml:space="preserve">
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="CmbRefreshType.Items1" xml:space="preserve">
|
||||
<value>Daily</value>
|
||||
</data>
|
||||
<data name="CmbRefreshType.Items2" xml:space="preserve">
|
||||
<value>Weekly</value>
|
||||
</data>
|
||||
<data name="CmbRefreshType.Items3" xml:space="preserve">
|
||||
<value>Monthly</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="LblRefreshModeLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 17</value>
|
||||
</data>
|
||||
<data name="LblRefreshModeLabel.Text" xml:space="preserve">
|
||||
<value>Refresh:</value>
|
||||
</data>
|
||||
<data name="LblBuyLevelLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>62, 17</value>
|
||||
</data>
|
||||
<data name="LblBuyLevelLabel.Text" xml:space="preserve">
|
||||
<value>Buy level:</value>
|
||||
</data>
|
||||
<data name="LblEndTimeLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>62, 17</value>
|
||||
</data>
|
||||
<data name="LblEndTimeLabel.Text" xml:space="preserve">
|
||||
<value>End time:</value>
|
||||
</data>
|
||||
<data name="LblBeginTimeLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>73, 17</value>
|
||||
</data>
|
||||
<data name="LblBeginTimeLabel.Text" xml:space="preserve">
|
||||
<value>Begin time:</value>
|
||||
</data>
|
||||
<data name="LblCostItem4Label.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>77, 17</value>
|
||||
</data>
|
||||
<data name="LblCostItem4Label.Text" xml:space="preserve">
|
||||
<value>Cost item 4:</value>
|
||||
</data>
|
||||
<data name="LblCostItem3Label.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>77, 17</value>
|
||||
</data>
|
||||
<data name="LblCostItem3Label.Text" xml:space="preserve">
|
||||
<value>Cost item 3:</value>
|
||||
</data>
|
||||
<data name="LblCostItem2Label.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>77, 17</value>
|
||||
</data>
|
||||
<data name="LblCostItem2Label.Text" xml:space="preserve">
|
||||
<value>Cost item 2:</value>
|
||||
</data>
|
||||
<data name="LblCostItem1Label.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>77, 17</value>
|
||||
</data>
|
||||
<data name="LblCostItem1Label.Text" xml:space="preserve">
|
||||
<value>Cost item 1:</value>
|
||||
</data>
|
||||
<data name="LblCostMcoinLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>45, 298</value>
|
||||
</data>
|
||||
<data name="LblCostMcoinLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>77, 17</value>
|
||||
</data>
|
||||
<data name="LblCostMcoinLabel.Text" xml:space="preserve">
|
||||
<value>Cost Mcion:</value>
|
||||
</data>
|
||||
<data name="LblCostScoinLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>72, 17</value>
|
||||
</data>
|
||||
<data name="LblCostScoinLabel.Text" xml:space="preserve">
|
||||
<value>Cost Scion:</value>
|
||||
</data>
|
||||
<data name="LblCostHcoinLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>74, 17</value>
|
||||
</data>
|
||||
<data name="LblCostHcoinLabel.Text" xml:space="preserve">
|
||||
<value>Cost Hcion:</value>
|
||||
</data>
|
||||
<data name="LblBuyLimitLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 17</value>
|
||||
</data>
|
||||
<data name="LblBuyLimitLabel.Text" xml:space="preserve">
|
||||
<value>Buy limit:</value>
|
||||
</data>
|
||||
<data name="LblGoodsIdLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>62, 17</value>
|
||||
</data>
|
||||
<data name="LblGoodsIdLabel.Text" xml:space="preserve">
|
||||
<value>GoodsId:</value>
|
||||
</data>
|
||||
<data name="LblGoodsItemLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
<data name="LblGoodsItemLabel.Text" xml:space="preserve">
|
||||
<value>Goods:</value>
|
||||
</data>
|
||||
<data name="LnkGenGoodsId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>78, 17</value>
|
||||
</data>
|
||||
<data name="LnkGenGoodsId.Text" xml:space="preserve">
|
||||
<value>Generate ID</value>
|
||||
</data>
|
||||
<data name="BtnSave.Text" xml:space="preserve">
|
||||
<value>Save</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>Load</value>
|
||||
</data>
|
||||
<data name="LblShopPathLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>97, 17</value>
|
||||
</data>
|
||||
<data name="LblShopPathLabel.Text" xml:space="preserve">
|
||||
<value>Shop.json Path:</value>
|
||||
</data>
|
||||
</root>
|
1698
Source/GrasscutterTools/Forms/FormShopEditor.resx
Normal file
274
Source/GrasscutterTools/Forms/FormShopEditor.ru-RU.resx
Normal file
@@ -0,0 +1,274 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="GrpShopList.Text" xml:space="preserve">
|
||||
<value>Список магазинов</value>
|
||||
</data>
|
||||
<data name="GrpGoodsList.Text" xml:space="preserve">
|
||||
<value>Список товаров</value>
|
||||
</data>
|
||||
<data name="BtnClearGoods.Text" xml:space="preserve">
|
||||
<value>× Очистить</value>
|
||||
</data>
|
||||
<data name="BtnDeleteGoods.Text" xml:space="preserve">
|
||||
<value>- Удалить</value>
|
||||
</data>
|
||||
<data name="GrpItems.Text" xml:space="preserve">
|
||||
<value>Список предметов</value>
|
||||
</data>
|
||||
<data name="GrpGoodsInfo.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="BtnSaveGoods.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>74, 472</value>
|
||||
</data>
|
||||
<data name="BtnSaveGoods.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>200, 30</value>
|
||||
</data>
|
||||
<data name="BtnSaveGoods.Text" xml:space="preserve">
|
||||
<value>√ Добавить или обновить</value>
|
||||
</data>
|
||||
<data name="LblRefreshModeLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 211</value>
|
||||
</data>
|
||||
<data name="LblRefreshModeLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>118, 17</value>
|
||||
</data>
|
||||
<data name="LblRefreshModeLabel.Text" xml:space="preserve">
|
||||
<value>Обновить режим:</value>
|
||||
</data>
|
||||
<data name="LblBuyLevelLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>62, 17</value>
|
||||
</data>
|
||||
<data name="LblBuyLevelLabel.Text" xml:space="preserve">
|
||||
<value>Buy level:</value>
|
||||
</data>
|
||||
<data name="LblEndTimeLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 183</value>
|
||||
</data>
|
||||
<data name="LblEndTimeLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>122, 17</value>
|
||||
</data>
|
||||
<data name="LblEndTimeLabel.Text" xml:space="preserve">
|
||||
<value>Время окончания:</value>
|
||||
</data>
|
||||
<data name="LblBeginTimeLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 156</value>
|
||||
</data>
|
||||
<data name="LblBeginTimeLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>97, 17</value>
|
||||
</data>
|
||||
<data name="LblBeginTimeLabel.Text" xml:space="preserve">
|
||||
<value>Время начала:</value>
|
||||
</data>
|
||||
<data name="LblCostItem4Label.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>76, 17</value>
|
||||
</data>
|
||||
<data name="LblCostItem4Label.Text" xml:space="preserve">
|
||||
<value>Cast item 4:</value>
|
||||
</data>
|
||||
<data name="LblCostItem3Label.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>76, 17</value>
|
||||
</data>
|
||||
<data name="LblCostItem3Label.Text" xml:space="preserve">
|
||||
<value>Cast item 3:</value>
|
||||
</data>
|
||||
<data name="LblCostItem2Label.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>76, 17</value>
|
||||
</data>
|
||||
<data name="LblCostItem2Label.Text" xml:space="preserve">
|
||||
<value>Cast item 2:</value>
|
||||
</data>
|
||||
<data name="LblCostItem1Label.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>76, 17</value>
|
||||
</data>
|
||||
<data name="LblCostItem1Label.Text" xml:space="preserve">
|
||||
<value>Cast item 1:</value>
|
||||
</data>
|
||||
<data name="LblCostMcoinLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>46, 298</value>
|
||||
</data>
|
||||
<data name="LblCostMcoinLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>67, 17</value>
|
||||
</data>
|
||||
<data name="LblCostMcoinLabel.Text" xml:space="preserve">
|
||||
<value>Кристалл:</value>
|
||||
</data>
|
||||
<data name="LblCostScoinLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>67, 269</value>
|
||||
</data>
|
||||
<data name="LblCostScoinLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 17</value>
|
||||
</data>
|
||||
<data name="LblCostScoinLabel.Text" xml:space="preserve">
|
||||
<value>Мора:</value>
|
||||
</data>
|
||||
<data name="LblCostHcoinLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>9, 240</value>
|
||||
</data>
|
||||
<data name="LblCostHcoinLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>104, 17</value>
|
||||
</data>
|
||||
<data name="LblCostHcoinLabel.Text" xml:space="preserve">
|
||||
<value>Камень Истока:</value>
|
||||
</data>
|
||||
<data name="LblBuyLimitLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 17</value>
|
||||
</data>
|
||||
<data name="LblBuyLimitLabel.Text" xml:space="preserve">
|
||||
<value>Buy limit:</value>
|
||||
</data>
|
||||
<data name="LblGoodsIdLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>66, 17</value>
|
||||
</data>
|
||||
<data name="LblGoodsIdLabel.Text" xml:space="preserve">
|
||||
<value>Goods Id:</value>
|
||||
</data>
|
||||
<data name="LblGoodsItemLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
<data name="LblGoodsItemLabel.Text" xml:space="preserve">
|
||||
<value>Goods:</value>
|
||||
</data>
|
||||
<data name="LnkGenGoodsId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>73, 17</value>
|
||||
</data>
|
||||
<data name="LnkGenGoodsId.Text" xml:space="preserve">
|
||||
<value>Создать ID</value>
|
||||
</data>
|
||||
<data name="BtnSave.Text" xml:space="preserve">
|
||||
<value>Сохранять</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>Загрузить</value>
|
||||
</data>
|
||||
<data name="TxtShopJsonPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>144, 12</value>
|
||||
</data>
|
||||
<data name="TxtShopJsonPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>516, 23</value>
|
||||
</data>
|
||||
<data name="LblShopPathLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>127, 17</value>
|
||||
</data>
|
||||
<data name="LblShopPathLabel.Text" xml:space="preserve">
|
||||
<value>Shop.json дорожка:</value>
|
||||
</data>
|
||||
</root>
|
144
Source/GrasscutterTools/Forms/FormShopEditor.zh-TW.resx
Normal file
@@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="BtnDeleteGoods.Text" xml:space="preserve">
|
||||
<value>- 刪除</value>
|
||||
</data>
|
||||
<data name="LblBuyLevelLabel.Text" xml:space="preserve">
|
||||
<value>限購等級:</value>
|
||||
</data>
|
||||
<data name="LblEndTimeLabel.Text" xml:space="preserve">
|
||||
<value>下架時間:</value>
|
||||
</data>
|
||||
<data name="LblBeginTimeLabel.Text" xml:space="preserve">
|
||||
<value>上架時間:</value>
|
||||
</data>
|
||||
<data name="LblCostMcoinLabel.Text" xml:space="preserve">
|
||||
<value>消耗創世結晶:</value>
|
||||
</data>
|
||||
<data name="LblBuyLimitLabel.Text" xml:space="preserve">
|
||||
<value>限購數量:</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>加載</value>
|
||||
</data>
|
||||
<data name="LblShopPathLabel.Text" xml:space="preserve">
|
||||
<value>Shop.json 路徑:</value>
|
||||
</data>
|
||||
</root>
|
@@ -18,7 +18,6 @@
|
||||
**/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Forms;
|
||||
|
@@ -59,8 +59,8 @@ namespace GrasscutterTools.GOOD
|
||||
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> ArtifactSlotMap = new Dictionary<string, int> {
|
||||
{"goblet", 1}, {"plume", 2}, {"circlet", 3}, {"flower", 4}, {"sands", 5}
|
||||
};
|
||||
|
||||
public static Dictionary<string, int> ArtifactMainAttribution { get; } = new Dictionary<string, int>
|
||||
|
143
Source/GrasscutterTools/Game/CommandVersion.cs
Normal file
@@ -0,0 +1,143 @@
|
||||
/**
|
||||
* 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);
|
||||
|
||||
/// <summary>
|
||||
/// v1.2.3 -> v1.3.0 2022/9/3 - stable
|
||||
/// git 155501058fcce109489a19db37d0513d2235e08e
|
||||
/// </summary>
|
||||
public static readonly Version V1_3_0 = new Version(1, 3, 0);
|
||||
|
||||
/// <summary>
|
||||
/// v1.3.0 -> v1.3.1 2022/9/3
|
||||
/// git 6cf83b30eeaa98a68de2d786d7ca85ae21a95e32
|
||||
/// </summary>
|
||||
public static readonly Version V1_3_1 = new Version(1, 3, 1);
|
||||
|
||||
/// <summary>
|
||||
/// 2022/10/13
|
||||
/// </summary>
|
||||
public static readonly Version V1_4_0 = new Version(1, 4, 0);
|
||||
|
||||
/// <summary>
|
||||
/// 2022/10/18
|
||||
/// </summary>
|
||||
public static readonly Version V1_4_1 = new Version(1, 4, 1);
|
||||
|
||||
/// <summary>
|
||||
/// 2022/10/27
|
||||
/// </summary>
|
||||
public static readonly Version V1_4_2 = new Version(1, 4, 2);
|
||||
|
||||
// More...
|
||||
/// <summary>
|
||||
/// 2022/10/18
|
||||
/// </summary>
|
||||
//public static readonly Version V1_4_3 = new Version(1, 4, 2);
|
||||
|
||||
public static Version[] List { get; } = new Version[] {
|
||||
V1_2_1,
|
||||
V1_2_2,
|
||||
V1_2_3,
|
||||
V1_3_0,
|
||||
V1_3_1,
|
||||
V1_4_0,
|
||||
V1_4_1,
|
||||
V1_4_2,
|
||||
//V1_4_3,
|
||||
};
|
||||
|
||||
#endregion - 版本列表 Version List -
|
||||
}
|
||||
}
|
77
Source/GrasscutterTools/Game/Drop/DropData.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
/**
|
||||
* 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.Game.Drop
|
||||
{
|
||||
public struct DropData
|
||||
{
|
||||
/// <summary>
|
||||
/// 物品ID
|
||||
/// </summary>
|
||||
[JsonProperty("itemId")]
|
||||
public int ItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最小数量
|
||||
/// </summary>
|
||||
[JsonProperty("minCount")]
|
||||
public int MinCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最大数量
|
||||
/// </summary>
|
||||
[JsonProperty("maxCount")]
|
||||
public int MaxCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最小权重,范围0~10000
|
||||
/// </summary>
|
||||
[JsonProperty("minWeight")]
|
||||
public int MinWeight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最大权重,范围0~10000
|
||||
/// </summary>
|
||||
[JsonProperty("maxWeight")]
|
||||
public int MaxWeight { get; set; }
|
||||
|
||||
// 以下属性可用但没有必要
|
||||
|
||||
///// <summary>
|
||||
///// 是否共享?
|
||||
///// </summary>
|
||||
//[JsonProperty("share")]
|
||||
//public bool IsShare { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 是否直接给予
|
||||
///// </summary>
|
||||
//[JsonProperty("give")]
|
||||
//public bool IsGive { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
if (MinCount != MaxCount)
|
||||
return $"{ItemId}:{GameData.Items[ItemId]} | x[{MinCount}~{MaxCount}] w[{MinWeight}~{MaxWeight}]";
|
||||
else
|
||||
return $"{ItemId}:{GameData.Items[ItemId]} | x{MinCount} w[{MinWeight}~{MaxWeight}]";
|
||||
}
|
||||
}
|
||||
}
|
39
Source/GrasscutterTools/Game/Drop/DropInfo.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* 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.Game.Drop
|
||||
{
|
||||
internal class DropInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 怪物ID
|
||||
/// </summary>
|
||||
[JsonProperty("monsterId")]
|
||||
public int MonsterId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 掉落列表
|
||||
/// </summary>
|
||||
[JsonProperty("dropDataList")]
|
||||
public List<DropData> DropDataList { get; set; } = new List<DropData>();
|
||||
}
|
||||
}
|
@@ -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;
|
||||
|
||||
|
@@ -24,7 +24,6 @@ namespace GrasscutterTools.Game
|
||||
{
|
||||
public static void LoadResources()
|
||||
{
|
||||
Animals = new ItemMap(Resources.Animal);
|
||||
Artifacts = new ItemMap(Resources.Artifact);
|
||||
ArtifactCats = new ItemMap(Resources.ArtifactCat);
|
||||
ArtifactMainAttribution = new ItemMap(Resources.ArtifactMainAttribution);
|
||||
@@ -32,16 +31,16 @@ namespace GrasscutterTools.Game
|
||||
Avatars = new ItemMap(Resources.Avatar);
|
||||
AvatarColors = new ItemMap(Resources.AvatarColor);
|
||||
Items = new ItemMap(Resources.Item);
|
||||
Monsters = new ItemMap(Resources.Monster);
|
||||
NPCs = new ItemMap(Resources.NPC);
|
||||
Monsters = new ItemMapGroup(Resources.Monsters);
|
||||
Gatgets = new ItemMapGroup(Resources.Gadget);
|
||||
Scenes = new ItemMap(Resources.Scene);
|
||||
Weapons = new ItemMap(Resources.Weapon);
|
||||
WeaponColors = new ItemMap(Resources.WeaponColor);
|
||||
GachaBannerPrefabs = new ItemMap(Resources.GachaBennerPrefab);
|
||||
Quests = new ItemMap(Resources.Quest);
|
||||
ShopType = new ItemMap(Resources.ShopType);
|
||||
}
|
||||
|
||||
public static ItemMap Animals { get; private set; }
|
||||
|
||||
public static ItemMap Artifacts { get; private set; }
|
||||
|
||||
@@ -57,9 +56,9 @@ namespace GrasscutterTools.Game
|
||||
|
||||
public static ItemMap Items { get; private set; }
|
||||
|
||||
public static ItemMap Monsters { get; private set; }
|
||||
public static ItemMapGroup Monsters { get; private set; }
|
||||
|
||||
public static ItemMap NPCs { get; private set; }
|
||||
public static ItemMapGroup Gatgets { get; private set; }
|
||||
|
||||
public static ItemMap Scenes { get; private set; }
|
||||
|
||||
@@ -70,5 +69,7 @@ namespace GrasscutterTools.Game
|
||||
public static ItemMap GachaBannerPrefabs { get; private set; }
|
||||
|
||||
public static ItemMap Quests { get; private set; }
|
||||
|
||||
public static ItemMap ShopType { get; private set; }
|
||||
}
|
||||
}
|
||||
|
@@ -16,6 +16,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
**/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace GrasscutterTools.Game
|
||||
@@ -24,9 +25,9 @@ namespace GrasscutterTools.Game
|
||||
{
|
||||
public ItemMap(string idNamePairs)
|
||||
{
|
||||
var lines = idNamePairs.Split('\n');
|
||||
var lines = idNamePairs.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
var capacity = lines.Length;
|
||||
//IdMap = new Dictionary<int, string>(capacity);
|
||||
IdMap = new Dictionary<int, string>(capacity);
|
||||
//NameMap = new Dictionary<string, int>(capacity);
|
||||
var IdList = new List<int>(capacity);
|
||||
var NameList = new List<string>(capacity);
|
||||
@@ -40,7 +41,7 @@ namespace GrasscutterTools.Game
|
||||
var name = line.Substring(si + 1).Trim();
|
||||
if (!string.IsNullOrEmpty(name) && name != "null")
|
||||
{
|
||||
//IdMap[id] = name;
|
||||
IdMap[id] = name;
|
||||
//NameMap[name] = id;
|
||||
IdList.Add(id);
|
||||
NameList.Add(name);
|
||||
@@ -54,15 +55,14 @@ namespace GrasscutterTools.Game
|
||||
Lines = lineList.ToArray();
|
||||
}
|
||||
|
||||
//Dictionary<int, string> IdMap;
|
||||
//Dictionary<string, int> NameMap;
|
||||
//List<int> IdList;
|
||||
//List<string> NameList;
|
||||
private readonly Dictionary<int, string> IdMap;
|
||||
//private readonly Dictionary<string, int> NameMap;
|
||||
|
||||
public int Count => Ids.Length;
|
||||
|
||||
//public string this[int id] => IdMap[id];
|
||||
public string this[int id] => IdMap.TryGetValue(id, out string name) ? name : EmptyName;
|
||||
|
||||
public static string EmptyName = "???";
|
||||
//public int this[string name] => NameMap[name];
|
||||
|
||||
public int[] Ids { get; }
|
||||
@@ -70,5 +70,15 @@ namespace GrasscutterTools.Game
|
||||
public string[] Names { get; }
|
||||
|
||||
public string[] Lines { get; }
|
||||
|
||||
public static int ToId(string line) => int.Parse(line.Substring(0, line.IndexOf(':')).Trim());
|
||||
|
||||
public static bool TryToId(string line, out int id)
|
||||
{
|
||||
id = 0;
|
||||
var sp = line.IndexOf(':');
|
||||
if (sp == -1) return false;
|
||||
return int.TryParse(line.Substring(0, sp).Trim(), out id);
|
||||
}
|
||||
}
|
||||
}
|
66
Source/GrasscutterTools/Game/ItemMapGroup.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* 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.Linq;
|
||||
|
||||
namespace GrasscutterTools.Game
|
||||
{
|
||||
/// <summary>
|
||||
/// ID映射组,Key为分类,双斜杠构造
|
||||
/// </summary>
|
||||
public class ItemMapGroup : Dictionary<string, ItemMap>
|
||||
{
|
||||
public ItemMapGroup(string idNamePairs)
|
||||
{
|
||||
for (int i = 0; i < idNamePairs.Length;)
|
||||
{
|
||||
var categoryLineStartIndex = idNamePairs.IndexOf("//", i);
|
||||
if (categoryLineStartIndex == -1)
|
||||
break;
|
||||
var categoryLineEndIndex = idNamePairs.IndexOf('\n', categoryLineStartIndex);
|
||||
if (categoryLineEndIndex == -1)
|
||||
break;
|
||||
|
||||
var category = idNamePairs.Substring(categoryLineStartIndex+2, categoryLineEndIndex - categoryLineStartIndex - 3).Trim();
|
||||
|
||||
var nextStartIndex = idNamePairs.IndexOf("//", categoryLineEndIndex);
|
||||
if (nextStartIndex == -1)
|
||||
{
|
||||
var itemMap = new ItemMap(idNamePairs.Substring(categoryLineEndIndex + 1));
|
||||
if (itemMap.Count > 0)
|
||||
Add(category, itemMap);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
var pairs = idNamePairs.Substring(categoryLineEndIndex + 1, nextStartIndex - categoryLineEndIndex - 1);
|
||||
var itemMap = new ItemMap(pairs);
|
||||
if (itemMap.Count > 0)
|
||||
Add(category, itemMap);
|
||||
i = nextStartIndex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取所有行
|
||||
/// </summary>
|
||||
public IEnumerable<string> AllLines => Values.SelectMany(it => it.Lines);
|
||||
}
|
||||
}
|
75
Source/GrasscutterTools/Game/Mail/Mail.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Mail
|
||||
{
|
||||
/// <summary>
|
||||
/// 邮件
|
||||
/// </summary>
|
||||
public class Mail
|
||||
{
|
||||
/// <summary>
|
||||
/// 发件人
|
||||
/// </summary>
|
||||
public string Sender { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 收件人 (0 表示发送给所有人)
|
||||
/// </summary>
|
||||
public int Recipient { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否发送给所有人
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public bool SendToAll => Recipient == 0;
|
||||
|
||||
/// <summary>
|
||||
/// 邮件标题
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 邮件内容
|
||||
/// </summary>
|
||||
public string Content { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 附件列表
|
||||
/// </summary>
|
||||
public List<MailItem> ItemList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发送时间
|
||||
/// </summary>
|
||||
public DateTime SendTime { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
if (SendToAll)
|
||||
return $"ToAll: [{Title}] {Content} | {SendTime}";
|
||||
else
|
||||
return $"To[{Recipient}]: [{Title}] {Content} | {SendTime}";
|
||||
}
|
||||
}
|
||||
}
|
56
Source/GrasscutterTools/Game/Mail/MailItem.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
* 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/>.
|
||||
*
|
||||
**/
|
||||
namespace GrasscutterTools.Game.Mail
|
||||
{
|
||||
/// <summary>
|
||||
/// 附件
|
||||
/// </summary>
|
||||
public struct MailItem
|
||||
{
|
||||
/// <summary>
|
||||
/// 物品ID
|
||||
/// </summary>
|
||||
public int ItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物品数量
|
||||
/// </summary>
|
||||
public int ItemCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物品等级
|
||||
/// </summary>
|
||||
public int ItemLevel { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
var name = GameData.Items[ItemId];
|
||||
if (name == ItemMap.EmptyName)
|
||||
name = GameData.Weapons[ItemId];
|
||||
if (name == ItemMap.EmptyName)
|
||||
name = GameData.Artifacts[ItemId];
|
||||
if (ItemLevel > 1)
|
||||
return $"{ItemId}:{name} x{ItemCount} lv{ItemLevel}";
|
||||
else if (ItemCount > 1)
|
||||
return $"{ItemId}:{name} x{ItemCount}";
|
||||
else
|
||||
return $"{ItemId}:{name}";
|
||||
}
|
||||
}
|
||||
}
|
42
Source/GrasscutterTools/Game/Player/PlayerData.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* 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/>.
|
||||
*
|
||||
**/
|
||||
namespace GrasscutterTools.Game.Player
|
||||
{
|
||||
/// <summary>
|
||||
/// 玩家数据
|
||||
/// </summary>
|
||||
internal class PlayerData
|
||||
{
|
||||
/// <summary>
|
||||
/// 升到下一级所需经验,索引为当前等级
|
||||
/// </summary>
|
||||
public static int[] LevelExp = new int[]
|
||||
{
|
||||
0, 375, 500, 625, 725, 850, 950, 1075, 1200, 1300, 1425, 1525, 1650, 1775, 1875, 2000, 2375, 2500, 2625,
|
||||
2775, 2825, 3425, 3725, 4000, 4300, 4575, 4875, 5150, 5450, 5725, 6025, 6300, 6600, 6900, 7175, 7475, 7750,
|
||||
8050, 8325, 8625, 10550, 11525, 12475, 13450, 14400, 15350, 16325, 17275, 18250, 19200, 26400, 28800, 31200,
|
||||
33600, 36000, 232350, 258950, 285750, 312825, 340125, 0,
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// 玩家最大等级数
|
||||
/// </summary>
|
||||
public const int PlayerMaxLevel = 60;
|
||||
}
|
||||
}
|