Compare commits
131 Commits
Author | SHA1 | Date | |
---|---|---|---|
c94a7683e4 | |||
b407012bef | |||
bb7d28153f | |||
627d9c7cd2 | |||
53a83fd7a7 | |||
c2ca091662 | |||
738a755353 | |||
dcbd946407 | |||
2a8cebcbb5 | |||
434ec7b2df | |||
c2ff37facf | |||
f48c9b4d0b | |||
1d734479d1 | |||
a989581d59 | |||
6ab9d3842c | |||
b69b2941b6 | |||
90deaa84b4 | |||
403cc3fe52 | |||
dd4eb36c17 | |||
2645e16bee | |||
82668c4c6a | |||
8fce4a8995 | |||
![]() |
4cfbebcc5a | ||
40db4236ba | |||
eef4687ed6 | |||
e9a3f4014e | |||
749aae02ca | |||
fc3fd10081 | |||
65e664f35f | |||
ab9a617619 | |||
f629bc9993 | |||
dc7f48139e | |||
da8c511d60 | |||
eb60f402a4 | |||
c82ce1ea35 | |||
9524ea5ab4 | |||
caf18eaa7a | |||
2cdcb4a599 | |||
![]() |
3407ca61fd | ||
964b7ced8b | |||
![]() |
702267003b | ||
abf970b783 | |||
6855b6299f | |||
b77d242bd9 | |||
01016b1fa1 | |||
b2b656b6cb | |||
aabe6664b4 | |||
![]() |
5869a72645 | ||
df3ab12165 | |||
03fe8909d0 | |||
2ec4bc9333 | |||
c1b89a2b9a | |||
6706525e77 | |||
981b8377d8 | |||
945329d109 | |||
304f3484e3 | |||
47ad6dae6a | |||
0448bb0ea9 | |||
![]() |
5009d148a1 | ||
![]() |
8427103a7e | ||
2767cb44d7 | |||
![]() |
416ffd6435 | ||
ff554ce369 | |||
0698671c05 | |||
67468cf28b | |||
058a6b7ab2 | |||
1ccb3656c2 | |||
6da7e1d4d0 | |||
119c8c87ee | |||
2758b4d896 | |||
d8c7f0ad56 | |||
0d8b51f199 | |||
6e296edf11 | |||
072066ac87 | |||
a359dea603 | |||
29decd4899 | |||
92a5d53d35 | |||
40e33dcb1c | |||
![]() |
2b2757ccff | ||
f57f4097ac | |||
5865441074 | |||
2d916392c1 | |||
dec3b2261f | |||
5b0cb912e4 | |||
5cbdaa7134 | |||
b2f59431a6 | |||
04ec214714 | |||
196b56ab71 | |||
226742776f | |||
f4ec2ee5fa | |||
f33d37cd90 | |||
2394ec7f5d | |||
8baa61b72c | |||
f35ea79475 | |||
46b8ca0b63 | |||
b8cfaf308d | |||
c7d3e5021c | |||
a689b425ca | |||
9bd45157a4 | |||
![]() |
169b8997ec | ||
![]() |
aa6ea882d9 | ||
![]() |
c86b275096 | ||
![]() |
a81985549e | ||
![]() |
f4e9409afa | ||
6647e5bd37 | |||
64b7c25de5 | |||
7c562228c6 | |||
91a194c948 | |||
50a30331e5 | |||
![]() |
da47941564 | ||
![]() |
6e999f92a0 | ||
f4fc0ef3c5 | |||
![]() |
2dc8dc734b | ||
![]() |
98663240de | ||
ba782c85d4 | |||
dea067b21f | |||
d56c73e2a3 | |||
5d208d1220 | |||
47a3a1c7ab | |||
56059b4f4f | |||
09577d5403 | |||
fb77f9432a | |||
0f70405041 | |||
399888f976 | |||
a8a0a14713 | |||
59af1e468d | |||
0d1bad5551 | |||
7eb2ff1624 | |||
72351ba60f | |||
7dc2dcc9db | |||
5b4a7d784d |
32
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
name: Build project
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- Source/**
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- Source/**
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup MSBuild.exe
|
||||
uses: microsoft/setup-msbuild@v1.1.3
|
||||
|
||||
- name: Build release
|
||||
run: msbuild Source/GrasscutterTools.sln /p:Configuration=Release /t:build /restore
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: GrasscutterTools
|
||||
path: Source/GrasscutterTools/bin/Release/GrasscutterTools.exe
|
BIN
Doc/Screenshots-en/18-TaskPage.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
Doc/Screenshots-en/19-AchievementPage.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
Doc/Screenshots-en/20-ActivityEditor.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
Doc/Screenshots-en/21-HotKey.png
Normal file
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 54 KiB |
BIN
Doc/Screenshots-ru/18-TaskPage.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
Doc/Screenshots-ru/19-AchievementPage.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
Doc/Screenshots-ru/20-ActivityEditor.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
Doc/Screenshots-tw/0-Home.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
Doc/Screenshots-tw/1-CustomCommands.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
Doc/Screenshots-tw/10-GachaBannerEditor.png
Normal file
After Width: | Height: | Size: 136 KiB |
BIN
Doc/Screenshots-tw/11-TextMapBrowser.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
Doc/Screenshots-tw/12-Remote.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
Doc/Screenshots-tw/13-Quest.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
Doc/Screenshots-tw/15-DropEditor.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
Doc/Screenshots-tw/16-MailEditor.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
Doc/Screenshots-tw/17-ShopEditor.png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
Doc/Screenshots-tw/18-TaskPage.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
Doc/Screenshots-tw/19-AchievementPage.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
Doc/Screenshots-tw/2-CustomArtifact.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
Doc/Screenshots-tw/20-ActivityEditor.png
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
Doc/Screenshots-tw/3-CustomWeapon.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
Doc/Screenshots-tw/4-GiveItem.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
Doc/Screenshots-tw/5-GiveAvatar.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
Doc/Screenshots-tw/6-SpawnEntity.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
Doc/Screenshots-tw/6.1-AttackMod.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
Doc/Screenshots-tw/6.2-AttackInfuse.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
Doc/Screenshots-tw/7-ChangeScene.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
Doc/Screenshots-tw/9-Manage.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
Doc/Screenshots-tw/AttackMod.gif
Normal file
After Width: | Height: | Size: 3.6 MiB |
BIN
Doc/Screenshots-tw/ConfigHttp.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
Doc/Screenshots-tw/GrasscutterLogo.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Doc/Screenshots-tw/OpenCommand.gif
Normal file
After Width: | Height: | Size: 821 KiB |
BIN
Doc/Screenshots-tw/RunMultipleCommands.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
Doc/Screenshots/18-TaskPage.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
Doc/Screenshots/19-AchievementPage.png
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
Doc/Screenshots/20-ActivityEditor.png
Normal file
After Width: | Height: | Size: 62 KiB |
BIN
Doc/Screenshots/21-HotKey.png
Normal file
After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 48 KiB |
64
README.md
@@ -3,19 +3,60 @@
|
||||
[](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)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/releases/latest)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/actions/workflows/build.yml)
|
||||
[](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=fBizzp6RwJsIY7gFlmd4L-WG0V3aF8X3&authKey=mTjf%2B7jCIZess1HTRi05e5yi%2FHKA1auMwE8%2FJ960PFWk8WMATST654gWPi4OTHTZ&noverify=0&group_code=835489603)
|
||||
|
||||
English | [简体中文](README_zh-cn.md) | [Русский](README_ru-RU.md)
|
||||
English | [简体中文](README_zh-cn.md) | [繁體中文](README_zh-tw.md) | [Русский](README_ru-RU.md)
|
||||
|
||||
## Commands Generator
|
||||
|
||||
Please download the latest version from [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
|
||||
Please download the latest committed automated build from [Action](https://github.com/jie65535/GrasscutterCommandGenerator/actions/workflows/build.yml), or a release from [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases) (may be behind)
|
||||
|
||||
Support 简体中文, 繁体中文, English and Русский languages.
|
||||
Support 简体中文, 繁體中文, English and Русский languages.
|
||||
|
||||
> **Warning**: app look may be different rather than on screenshots. It may also contain translation errors and a lack of certain resources. **We're welcome everyone to contribute to their [improvement](/Source/GrasscutterTools/Resources/en-us)**
|
||||
|
||||
## 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
|
||||
|
||||
## Update log
|
||||
|
||||
### GrasscutterTools-v1.11
|
||||

|
||||
|
||||
Commandline Usages:
|
||||
```bash
|
||||
GcTools.exe -help
|
||||
GcTools.exe -version
|
||||
GcTools.exe -c "cmd arg"
|
||||
GcTools.exe -c "cmd1 arg" && GcTools -c "cmd2 arg1 arg2"
|
||||
GcTools.exe -host http://127.0.0.1:443 -token 123456 -c "cmd1 arg1 arg2 | cmd2 | cmd3 arg"
|
||||
```
|
||||
|
||||
### GrasscutterTools-v1.10
|
||||

|
||||
|
||||

|
||||
|
||||
### GrasscutterTools-v1.9
|
||||

|
||||
|
||||
### GrasscutterTools-v1.8
|
||||

|
||||
|
||||
### GrasscutterTools-v1.7.3
|
||||

|
||||
|
||||
@@ -37,21 +78,6 @@ Added [AttackModifier](https://github.com/NotThorny/AttackModifier), [AttackInfu
|
||||
|
||||

|
||||
|
||||
## 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
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
@@ -3,18 +3,61 @@
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/blob/main/LICENSE)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/stargazers)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/releases/latest)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/actions/workflows/build.yml)
|
||||
|
||||
[English](README.md) | [简体中文](README_zh-cn.md) | Русский - Перевод [Юрий Дворецкий](https://github.com/yurikenjx) (с исправлениями от [EgorBron](https://github.com/EgorBron))
|
||||
[English](README.md) | [简体中文](README_zh-cn.md) | [繁體中文](README_zh-tw.md) | Русский - Перевод [Юрий Дворецкий](https://github.com/yurikenjx) (с исправлениями от [EgorBron](https://github.com/EgorBron))
|
||||
|
||||
## Генератор команд (GCG)
|
||||
|
||||
Загрузите последнюю версию из вкладки [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases).
|
||||
Пожалуйста, загрузите последнюю подтвержденную автоматизированную сборку из [Action](https://github.com/jie65535/GrasscutterCommandGenerator/actions/workflows/build.yml) или выпуск из [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases) (может отставать)
|
||||
|
||||
GCG поддерживает 简体中文 (китайский упр.), 繁体中文 (китайский трад.), English (английский) и Русский языки.
|
||||
GCG поддерживает 简体中文 (китайский упр.), 繁體中文 (китайский трад.), English (английский) и Русский языки.
|
||||
|
||||
> **Warning**: вид приложения может отличаться от скриншотов. Также в нём могут присутствовать ошибки в переводе и отсутсвие некоторых ресурсов. **Мы приглашаем всех сделать вклад в их [улучшение](/Source/GrasscutterTools/Resources/ru-ru)**
|
||||
|
||||
## Удаленная команда (OpenCommand)
|
||||
|
||||
Чтобы использовать команды прямо из GCG, серверу требуется плагин [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin).
|
||||
|
||||

|
||||
|
||||
> Если вы не можете подключиться к серверу, проверьте правильность написания его URL-адреса.
|
||||
>
|
||||
> Рекомендуется изменить секцию HTTP в конфиге как на скриншоте ниже (конфиг - файл config.json):
|
||||
>
|
||||
> 
|
||||
>
|
||||
> Для проверки можете посетить http://127.0.0.1/status/server в браузере, чтобы проверить работоспособность OpenCommand.
|
||||
>
|
||||
> Если вы не указали порт `80` в конфиге, вам нужно указать свой порт в URL-адресе (например, http://127.0.0.1:443)
|
||||
|
||||
|
||||
## Лог обновлений
|
||||
|
||||
### GrasscutterTools-v1.11
|
||||

|
||||
|
||||
Commandline Usages:
|
||||
```bash
|
||||
GcTools.exe -help
|
||||
GcTools.exe -version
|
||||
GcTools.exe -c "cmd arg"
|
||||
GcTools.exe -c "cmd1 arg" && GcTools -c "cmd2 arg1 arg2"
|
||||
GcTools.exe -host http://127.0.0.1:443 -token 123456 -c "cmd1 arg1 arg2 | cmd2 | cmd3 arg"
|
||||
```
|
||||
|
||||
### GrasscutterTools-v1.10
|
||||

|
||||
|
||||

|
||||
|
||||
### GrasscutterTools-v1.9
|
||||

|
||||
|
||||
### GrasscutterTools-v1.8
|
||||

|
||||
|
||||
### GrasscutterTools-v1.7.3
|
||||

|
||||
|
||||
@@ -36,22 +79,6 @@ GCG поддерживает 简体中文 (китайский упр.), 繁体
|
||||
|
||||

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

|
||||
|
||||
> Если вы не можете подключиться к серверу, проверьте правильность написания его URL-адреса.
|
||||
>
|
||||
> Рекомендуется изменить секцию HTTP в конфиге как на скриншоте ниже (конфиг - файл config.json):
|
||||
>
|
||||
> 
|
||||
>
|
||||
> Для проверки можете посетить http://127.0.0.1/status/server в браузере, чтобы проверить работоспособность OpenCommand.
|
||||
>
|
||||
> Если вы не указали порт `80` в конфиге, вам нужно указать свой порт в URL-адресе (например, http://127.0.0.1:443)
|
||||
|
||||
---
|
||||
|
||||
## Скриншоты
|
||||
|
@@ -3,19 +3,60 @@
|
||||
[](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)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/releases/latest)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/actions/workflows/build.yml)
|
||||
[](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=fBizzp6RwJsIY7gFlmd4L-WG0V3aF8X3&authKey=mTjf%2B7jCIZess1HTRi05e5yi%2FHKA1auMwE8%2FJ960PFWk8WMATST654gWPi4OTHTZ&noverify=0&group_code=835489603)
|
||||
|
||||
[English](README.md) | 简体中文 | [Русский](README_ru-RU.md)
|
||||
[English](README.md) | 简体中文 | [繁體中文](README_zh-tw.md) | [Русский](README_ru-RU.md)
|
||||
|
||||
## Commands Generator
|
||||
|
||||
请从 [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases) 中获取最新版本
|
||||
请从 [Action](https://github.com/jie65535/GrasscutterCommandGenerator/actions/workflows/build.yml) 中下载最新提交的自动构建版本,或者从 [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases) 中下载发布版本(可能落后)
|
||||
|
||||
本工具支持 简体中文, 繁体中文, English 与 Русский 语言。
|
||||
本工具支持 简体中文, 繁體中文, English 与 Русский 语言。
|
||||
|
||||
> **Warning**: 应用程序的外观可能与截图上的不同。它也可能包含翻译错误和缺乏某些资源。我们欢迎大家为他们的<a href="./Source/GrasscutterTools/Resources/zh-cn">改进</a>作出贡献。
|
||||
> **Warning**: 应用程序的外观可能与截图上的不同。它也可能包含翻译错误和缺乏某些资源。**我们欢迎各位为此工具做出贡献并<a href="./Source/GrasscutterTools/Resources/zh-cn">改进</a> : )**
|
||||
|
||||
## Update log
|
||||
## 远程执行
|
||||
|
||||
服务端需要 [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
|
||||
|
||||
|
||||
## 更新概要
|
||||
|
||||
### GrasscutterTools-v1.11
|
||||

|
||||
|
||||
命令行用法:
|
||||
```bash
|
||||
GcTools.exe -help
|
||||
GcTools.exe -version
|
||||
GcTools.exe -c "cmd arg"
|
||||
GcTools.exe -c "cmd1 arg" && GcTools -c "cmd2 arg1 arg2"
|
||||
GcTools.exe -host http://127.0.0.1:443 -token 123456 -c "cmd1 arg1 arg2 | cmd2 | cmd3 arg"
|
||||
```
|
||||
|
||||
### GrasscutterTools-v1.10
|
||||

|
||||
|
||||

|
||||
|
||||
### GrasscutterTools-v1.9
|
||||

|
||||
|
||||
### GrasscutterTools-v1.8
|
||||

|
||||
|
||||
### GrasscutterTools-v1.7.3
|
||||

|
||||
@@ -42,21 +83,6 @@
|
||||
|
||||

|
||||
|
||||
## 远程执行
|
||||
|
||||
服务端需要 [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
|
||||
|
||||
---
|
||||
|
||||
## 软件截图
|
||||
|
116
README_zh-tw.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# Grasscutter Tools
|
||||
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/blob/main/LICENSE)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/stargazers)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/releases/latest)
|
||||
[](https://github.com/jie65535/GrasscutterCommandGenerator/actions/workflows/build.yml)
|
||||
[](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=fBizzp6RwJsIY7gFlmd4L-WG0V3aF8X3&authKey=mTjf%2B7jCIZess1HTRi05e5yi%2FHKA1auMwE8%2FJ960PFWk8WMATST654gWPi4OTHTZ&noverify=0&group_code=835489603)
|
||||
|
||||
[English](README.md) | [简体中文](README_zh-cn.md) | 繁體中文 | [Русский](README_ru-RU.md)
|
||||
|
||||
## 指令產生工具
|
||||
|
||||
請從 [Action](https://github.com/jie65535/GrasscutterCommandGenerator/actions/workflows/build.yml) 中下載最新提交的自動構建版本,或者從 [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases) 中下載發布版本(可能落後)
|
||||
|
||||
本工具支援 简体中文、繁體中文、English 及 Русский 上述語言。
|
||||
|
||||
> **Warning**: 程式中的實際外觀可能會與截圖中的內容不同。其中也可能包含翻譯錯誤及缺乏特定資源。**我們歡迎各位為此工具做出貢獻並[改進](/Source/GrasscutterTools/Resources/zh-tw)**
|
||||
|
||||
## 遠端控制
|
||||
|
||||
伺服器需要安裝 [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin) 插件
|
||||
|
||||

|
||||
|
||||
> 如果你無法連接至伺服器,請確認輸入的伺服器位址是否正確。
|
||||
>
|
||||
> 建議將伺服器調整為HTTP模式,如下圖所示(config.json):
|
||||
> 
|
||||
>
|
||||
> 你可藉由任何瀏覽器輸入網址 http://127.0.0.1/status/server 以測試伺服器是否正常運作。
|
||||
>
|
||||
> 如果你並非使用`80`端口, 則須在網址後輸入指定端口: http://127.0.0.1:443
|
||||
|
||||
## 更新日誌
|
||||
|
||||
### GrasscutterTools-v1.11
|
||||

|
||||
|
||||
Commandline Usages:
|
||||
```bash
|
||||
GcTools.exe -help
|
||||
GcTools.exe -version
|
||||
GcTools.exe -c "cmd arg"
|
||||
GcTools.exe -c "cmd1 arg" && GcTools -c "cmd2 arg1 arg2"
|
||||
GcTools.exe -host http://127.0.0.1:443 -token 123456 -c "cmd1 arg1 arg2 | cmd2 | cmd3 arg"
|
||||
```
|
||||
|
||||
### GrasscutterTools-v1.10
|
||||

|
||||
|
||||

|
||||
|
||||
### GrasscutterTools-v1.9
|
||||

|
||||
|
||||
### GrasscutterTools-v1.8
|
||||

|
||||
|
||||
### GrasscutterTools-v1.7.3
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
新增 [攻擊修改](https://github.com/NotThorny/AttackModifier)、[攻擊注入](https://github.com/snoobi-seggs/AttackInfusedWithItem)、[主角切換元素](https://github.com/Penelopeep/SwitchElementTraveller)等插件指令產生
|
||||
|
||||

|
||||
|
||||
### GrasscutterTools-v1.7.2
|
||||

|
||||
|
||||
### GrasscutterTools-v1.7.1
|
||||
- 新增 Gadgets
|
||||
|
||||
### GrasscutterTools-v1.7.0
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
|
||||
## 工具截圖
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
@@ -29,7 +29,7 @@
|
||||
<value>10001</value>
|
||||
</setting>
|
||||
<setting name="Host" serializeAs="String">
|
||||
<value>https://127.0.0.1</value>
|
||||
<value>http://127.0.0.1:443</value>
|
||||
</setting>
|
||||
<setting name="CheckedLastVersion" serializeAs="String">
|
||||
<value />
|
||||
@@ -64,6 +64,18 @@
|
||||
<setting name="IsIncludeUID" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="NavContainerSplitterDistance" serializeAs="String">
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="ActivityConfigJsonPath" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="ProjectResourcePath" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="IsUpgraded" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
</GrasscutterTools.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
@@ -24,7 +24,7 @@ using GrasscutterTools.Utils;
|
||||
|
||||
namespace GrasscutterTools.DispatchServer
|
||||
{
|
||||
public static class DispatchServerAPI
|
||||
internal static class DispatchServerAPI
|
||||
{
|
||||
public static async Task<ServerStatus> QueryServerStatus(string host)
|
||||
{
|
||||
|
@@ -21,7 +21,7 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.DispatchServer.Model
|
||||
{
|
||||
public class ServerStatus
|
||||
internal class ServerStatus
|
||||
{
|
||||
[JsonProperty("playerCount")]
|
||||
public int PlayerCount { get; set; }
|
||||
@@ -33,7 +33,7 @@ namespace GrasscutterTools.DispatchServer.Model
|
||||
public string Version { get; set; }
|
||||
}
|
||||
|
||||
public class ServerStatusResponse
|
||||
internal class ServerStatusResponse
|
||||
{
|
||||
[JsonProperty("retcode")]
|
||||
public int RetCode { get; set; }
|
||||
|
346
Source/GrasscutterTools/Forms/FormActivityEditor.Designer.cs
generated
Normal file
@@ -0,0 +1,346 @@
|
||||
namespace GrasscutterTools.Forms
|
||||
{
|
||||
partial class FormActivityEditor
|
||||
{
|
||||
/// <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(FormActivityEditor));
|
||||
this.BtnSave = new System.Windows.Forms.Button();
|
||||
this.BtnLoad = new System.Windows.Forms.Button();
|
||||
this.ActivityConfigJsonPath = new System.Windows.Forms.TextBox();
|
||||
this.LblActivityConfigJsonPath = new System.Windows.Forms.Label();
|
||||
this.GrpAllActivity = new System.Windows.Forms.GroupBox();
|
||||
this.ListAllActivity = new System.Windows.Forms.ListView();
|
||||
this.ColumnActivityId = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.ColumnActivityName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.GrpFileActivity = new System.Windows.Forms.GroupBox();
|
||||
this.ListActivityConfigItems = new System.Windows.Forms.ListView();
|
||||
this.ColActivityId = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.ColActivityTitle = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.ColActivityBeginTime = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.ColActivityEndTime = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.GrpActivityInfo = new System.Windows.Forms.GroupBox();
|
||||
this.LblActivityTitle = new System.Windows.Forms.Label();
|
||||
this.LblActivityParmEditTip = new System.Windows.Forms.Label();
|
||||
this.BtnDelete = new System.Windows.Forms.Button();
|
||||
this.BtnAddOrUpdate = new System.Windows.Forms.Button();
|
||||
this.DTPEndTime = new System.Windows.Forms.DateTimePicker();
|
||||
this.DTPBeginTime = new System.Windows.Forms.DateTimePicker();
|
||||
this.TxtMeetCondList = new System.Windows.Forms.TextBox();
|
||||
this.NUDScheduleId = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDActivityType = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDActivityId = new System.Windows.Forms.NumericUpDown();
|
||||
this.LblEndTime = new System.Windows.Forms.Label();
|
||||
this.LblBeginTime = new System.Windows.Forms.Label();
|
||||
this.LblMeetCondList = new System.Windows.Forms.Label();
|
||||
this.LblScheduleId = new System.Windows.Forms.Label();
|
||||
this.LblActivityType = new System.Windows.Forms.Label();
|
||||
this.LblActivityId = new System.Windows.Forms.Label();
|
||||
this.GrpAllActivity.SuspendLayout();
|
||||
this.GrpFileActivity.SuspendLayout();
|
||||
this.GrpActivityInfo.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDScheduleId)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDActivityType)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDActivityId)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// 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);
|
||||
//
|
||||
// ActivityConfigJsonPath
|
||||
//
|
||||
resources.ApplyResources(this.ActivityConfigJsonPath, "ActivityConfigJsonPath");
|
||||
this.ActivityConfigJsonPath.Name = "ActivityConfigJsonPath";
|
||||
//
|
||||
// LblActivityConfigJsonPath
|
||||
//
|
||||
resources.ApplyResources(this.LblActivityConfigJsonPath, "LblActivityConfigJsonPath");
|
||||
this.LblActivityConfigJsonPath.Name = "LblActivityConfigJsonPath";
|
||||
//
|
||||
// GrpAllActivity
|
||||
//
|
||||
resources.ApplyResources(this.GrpAllActivity, "GrpAllActivity");
|
||||
this.GrpAllActivity.Controls.Add(this.ListAllActivity);
|
||||
this.GrpAllActivity.Name = "GrpAllActivity";
|
||||
this.GrpAllActivity.TabStop = false;
|
||||
//
|
||||
// ListAllActivity
|
||||
//
|
||||
resources.ApplyResources(this.ListAllActivity, "ListAllActivity");
|
||||
this.ListAllActivity.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.ColumnActivityId,
|
||||
this.ColumnActivityName});
|
||||
this.ListAllActivity.FullRowSelect = true;
|
||||
this.ListAllActivity.HideSelection = false;
|
||||
this.ListAllActivity.MultiSelect = false;
|
||||
this.ListAllActivity.Name = "ListAllActivity";
|
||||
this.ListAllActivity.UseCompatibleStateImageBehavior = false;
|
||||
this.ListAllActivity.View = System.Windows.Forms.View.Details;
|
||||
this.ListAllActivity.SelectedIndexChanged += new System.EventHandler(this.ListAllActivity_SelectedIndexChanged);
|
||||
//
|
||||
// ColumnActivityId
|
||||
//
|
||||
resources.ApplyResources(this.ColumnActivityId, "ColumnActivityId");
|
||||
//
|
||||
// ColumnActivityName
|
||||
//
|
||||
resources.ApplyResources(this.ColumnActivityName, "ColumnActivityName");
|
||||
//
|
||||
// GrpFileActivity
|
||||
//
|
||||
resources.ApplyResources(this.GrpFileActivity, "GrpFileActivity");
|
||||
this.GrpFileActivity.Controls.Add(this.ListActivityConfigItems);
|
||||
this.GrpFileActivity.Name = "GrpFileActivity";
|
||||
this.GrpFileActivity.TabStop = false;
|
||||
//
|
||||
// ListActivityConfigItems
|
||||
//
|
||||
resources.ApplyResources(this.ListActivityConfigItems, "ListActivityConfigItems");
|
||||
this.ListActivityConfigItems.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.ColActivityId,
|
||||
this.ColActivityTitle,
|
||||
this.ColActivityBeginTime,
|
||||
this.ColActivityEndTime});
|
||||
this.ListActivityConfigItems.FullRowSelect = true;
|
||||
this.ListActivityConfigItems.HideSelection = false;
|
||||
this.ListActivityConfigItems.MultiSelect = false;
|
||||
this.ListActivityConfigItems.Name = "ListActivityConfigItems";
|
||||
this.ListActivityConfigItems.UseCompatibleStateImageBehavior = false;
|
||||
this.ListActivityConfigItems.View = System.Windows.Forms.View.Details;
|
||||
this.ListActivityConfigItems.SelectedIndexChanged += new System.EventHandler(this.ListActivityConfigItems_SelectedIndexChanged);
|
||||
//
|
||||
// ColActivityId
|
||||
//
|
||||
resources.ApplyResources(this.ColActivityId, "ColActivityId");
|
||||
//
|
||||
// ColActivityTitle
|
||||
//
|
||||
resources.ApplyResources(this.ColActivityTitle, "ColActivityTitle");
|
||||
//
|
||||
// ColActivityBeginTime
|
||||
//
|
||||
resources.ApplyResources(this.ColActivityBeginTime, "ColActivityBeginTime");
|
||||
//
|
||||
// ColActivityEndTime
|
||||
//
|
||||
resources.ApplyResources(this.ColActivityEndTime, "ColActivityEndTime");
|
||||
//
|
||||
// GrpActivityInfo
|
||||
//
|
||||
resources.ApplyResources(this.GrpActivityInfo, "GrpActivityInfo");
|
||||
this.GrpActivityInfo.Controls.Add(this.LblActivityTitle);
|
||||
this.GrpActivityInfo.Controls.Add(this.LblActivityParmEditTip);
|
||||
this.GrpActivityInfo.Controls.Add(this.BtnDelete);
|
||||
this.GrpActivityInfo.Controls.Add(this.BtnAddOrUpdate);
|
||||
this.GrpActivityInfo.Controls.Add(this.DTPEndTime);
|
||||
this.GrpActivityInfo.Controls.Add(this.DTPBeginTime);
|
||||
this.GrpActivityInfo.Controls.Add(this.TxtMeetCondList);
|
||||
this.GrpActivityInfo.Controls.Add(this.NUDScheduleId);
|
||||
this.GrpActivityInfo.Controls.Add(this.NUDActivityType);
|
||||
this.GrpActivityInfo.Controls.Add(this.NUDActivityId);
|
||||
this.GrpActivityInfo.Controls.Add(this.LblEndTime);
|
||||
this.GrpActivityInfo.Controls.Add(this.LblBeginTime);
|
||||
this.GrpActivityInfo.Controls.Add(this.LblMeetCondList);
|
||||
this.GrpActivityInfo.Controls.Add(this.LblScheduleId);
|
||||
this.GrpActivityInfo.Controls.Add(this.LblActivityType);
|
||||
this.GrpActivityInfo.Controls.Add(this.LblActivityId);
|
||||
this.GrpActivityInfo.Name = "GrpActivityInfo";
|
||||
this.GrpActivityInfo.TabStop = false;
|
||||
//
|
||||
// LblActivityTitle
|
||||
//
|
||||
resources.ApplyResources(this.LblActivityTitle, "LblActivityTitle");
|
||||
this.LblActivityTitle.AutoEllipsis = true;
|
||||
this.LblActivityTitle.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||
this.LblActivityTitle.Name = "LblActivityTitle";
|
||||
//
|
||||
// LblActivityParmEditTip
|
||||
//
|
||||
resources.ApplyResources(this.LblActivityParmEditTip, "LblActivityParmEditTip");
|
||||
this.LblActivityParmEditTip.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||
this.LblActivityParmEditTip.Name = "LblActivityParmEditTip";
|
||||
//
|
||||
// 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);
|
||||
//
|
||||
// DTPEndTime
|
||||
//
|
||||
resources.ApplyResources(this.DTPEndTime, "DTPEndTime");
|
||||
this.DTPEndTime.Name = "DTPEndTime";
|
||||
//
|
||||
// DTPBeginTime
|
||||
//
|
||||
resources.ApplyResources(this.DTPBeginTime, "DTPBeginTime");
|
||||
this.DTPBeginTime.Name = "DTPBeginTime";
|
||||
//
|
||||
// TxtMeetCondList
|
||||
//
|
||||
resources.ApplyResources(this.TxtMeetCondList, "TxtMeetCondList");
|
||||
this.TxtMeetCondList.Name = "TxtMeetCondList";
|
||||
//
|
||||
// NUDScheduleId
|
||||
//
|
||||
resources.ApplyResources(this.NUDScheduleId, "NUDScheduleId");
|
||||
this.NUDScheduleId.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDScheduleId.Name = "NUDScheduleId";
|
||||
//
|
||||
// NUDActivityType
|
||||
//
|
||||
resources.ApplyResources(this.NUDActivityType, "NUDActivityType");
|
||||
this.NUDActivityType.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDActivityType.Name = "NUDActivityType";
|
||||
//
|
||||
// NUDActivityId
|
||||
//
|
||||
resources.ApplyResources(this.NUDActivityId, "NUDActivityId");
|
||||
this.NUDActivityId.Maximum = new decimal(new int[] {
|
||||
2147483647,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.NUDActivityId.Name = "NUDActivityId";
|
||||
this.NUDActivityId.ValueChanged += new System.EventHandler(this.NUDActivityId_ValueChanged);
|
||||
//
|
||||
// LblEndTime
|
||||
//
|
||||
resources.ApplyResources(this.LblEndTime, "LblEndTime");
|
||||
this.LblEndTime.Name = "LblEndTime";
|
||||
//
|
||||
// LblBeginTime
|
||||
//
|
||||
resources.ApplyResources(this.LblBeginTime, "LblBeginTime");
|
||||
this.LblBeginTime.Name = "LblBeginTime";
|
||||
//
|
||||
// LblMeetCondList
|
||||
//
|
||||
resources.ApplyResources(this.LblMeetCondList, "LblMeetCondList");
|
||||
this.LblMeetCondList.Name = "LblMeetCondList";
|
||||
//
|
||||
// LblScheduleId
|
||||
//
|
||||
resources.ApplyResources(this.LblScheduleId, "LblScheduleId");
|
||||
this.LblScheduleId.Name = "LblScheduleId";
|
||||
//
|
||||
// LblActivityType
|
||||
//
|
||||
resources.ApplyResources(this.LblActivityType, "LblActivityType");
|
||||
this.LblActivityType.Name = "LblActivityType";
|
||||
//
|
||||
// LblActivityId
|
||||
//
|
||||
resources.ApplyResources(this.LblActivityId, "LblActivityId");
|
||||
this.LblActivityId.Name = "LblActivityId";
|
||||
//
|
||||
// FormActivityEditor
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.GrpAllActivity);
|
||||
this.Controls.Add(this.GrpActivityInfo);
|
||||
this.Controls.Add(this.GrpFileActivity);
|
||||
this.Controls.Add(this.BtnSave);
|
||||
this.Controls.Add(this.BtnLoad);
|
||||
this.Controls.Add(this.ActivityConfigJsonPath);
|
||||
this.Controls.Add(this.LblActivityConfigJsonPath);
|
||||
this.Name = "FormActivityEditor";
|
||||
this.GrpAllActivity.ResumeLayout(false);
|
||||
this.GrpFileActivity.ResumeLayout(false);
|
||||
this.GrpActivityInfo.ResumeLayout(false);
|
||||
this.GrpActivityInfo.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDScheduleId)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDActivityType)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDActivityId)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button BtnSave;
|
||||
private System.Windows.Forms.Button BtnLoad;
|
||||
private System.Windows.Forms.TextBox ActivityConfigJsonPath;
|
||||
private System.Windows.Forms.Label LblActivityConfigJsonPath;
|
||||
private System.Windows.Forms.GroupBox GrpAllActivity;
|
||||
private System.Windows.Forms.GroupBox GrpFileActivity;
|
||||
private System.Windows.Forms.GroupBox GrpActivityInfo;
|
||||
private System.Windows.Forms.ListView ListAllActivity;
|
||||
private System.Windows.Forms.Label LblEndTime;
|
||||
private System.Windows.Forms.Label LblBeginTime;
|
||||
private System.Windows.Forms.Label LblMeetCondList;
|
||||
private System.Windows.Forms.Label LblScheduleId;
|
||||
private System.Windows.Forms.Label LblActivityType;
|
||||
private System.Windows.Forms.Label LblActivityId;
|
||||
private System.Windows.Forms.Button BtnDelete;
|
||||
private System.Windows.Forms.Button BtnAddOrUpdate;
|
||||
private System.Windows.Forms.DateTimePicker DTPEndTime;
|
||||
private System.Windows.Forms.DateTimePicker DTPBeginTime;
|
||||
private System.Windows.Forms.TextBox TxtMeetCondList;
|
||||
private System.Windows.Forms.NumericUpDown NUDScheduleId;
|
||||
private System.Windows.Forms.NumericUpDown NUDActivityType;
|
||||
private System.Windows.Forms.NumericUpDown NUDActivityId;
|
||||
private System.Windows.Forms.Label LblActivityParmEditTip;
|
||||
private System.Windows.Forms.Label LblActivityTitle;
|
||||
private System.Windows.Forms.ColumnHeader ColumnActivityId;
|
||||
private System.Windows.Forms.ColumnHeader ColumnActivityName;
|
||||
private System.Windows.Forms.ListView ListActivityConfigItems;
|
||||
private System.Windows.Forms.ColumnHeader ColActivityId;
|
||||
private System.Windows.Forms.ColumnHeader ColActivityTitle;
|
||||
private System.Windows.Forms.ColumnHeader ColActivityBeginTime;
|
||||
private System.Windows.Forms.ColumnHeader ColActivityEndTime;
|
||||
}
|
||||
}
|
310
Source/GrasscutterTools/Forms/FormActivityEditor.cs
Normal file
@@ -0,0 +1,310 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Activity;
|
||||
using GrasscutterTools.Properties;
|
||||
using GrasscutterTools.Utils;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Forms
|
||||
{
|
||||
public partial class FormActivityEditor : Form
|
||||
{
|
||||
#region - 成员 -
|
||||
|
||||
private List<ActivityConfigItem> ActivityConfigItems = new List<ActivityConfigItem>();
|
||||
|
||||
#endregion - 成员 -
|
||||
|
||||
#region - 构造与窗体事件 -
|
||||
|
||||
public FormActivityEditor()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
Icon = Resources.IconGrasscutter;
|
||||
|
||||
DTPBeginTime.Value = DateTime.Today;
|
||||
DTPEndTime.Value = DateTime.Today.AddMonths(1);
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
LoadAllActivity();
|
||||
|
||||
try
|
||||
{
|
||||
// 加载文件路径
|
||||
var path = Settings.Default.ActivityConfigJsonPath;
|
||||
ActivityConfigJsonPath.Text = path;
|
||||
if (!string.IsNullOrEmpty(path) && File.Exists(path))
|
||||
LoadActivityConfig(path);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnFormClosed(FormClosedEventArgs e)
|
||||
{
|
||||
Settings.Default.ActivityConfigJsonPath = ActivityConfigJsonPath.Text;
|
||||
|
||||
base.OnFormClosed(e);
|
||||
}
|
||||
|
||||
#endregion - 构造与窗体事件 -
|
||||
|
||||
#region - ActivityConfig.json 文件相关 -
|
||||
|
||||
/// <summary>
|
||||
/// 加载按钮点击时触发
|
||||
/// </summary>
|
||||
private void BtnLoad_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var path = ActivityConfigJsonPath.Text.Trim();
|
||||
if (path == string.Empty)
|
||||
{
|
||||
var dialog = new OpenFileDialog
|
||||
{
|
||||
FileName = "ActivityConfig.json",
|
||||
Filter = "ActivityConfig.Json (*.json)|*.json|All files (*.*)|*.*",
|
||||
};
|
||||
var result = dialog.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
path = ActivityConfigJsonPath.Text = dialog.FileName;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
// 反序列化
|
||||
LoadActivityConfig(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">ActivityConfig.json 文件路径</param>
|
||||
private void LoadActivityConfig(string path)
|
||||
{
|
||||
ActivityConfigItems = JsonConvert.DeserializeObject<List<ActivityConfigItem>>(File.ReadAllText(path)) ?? new List<ActivityConfigItem>();
|
||||
ListActivityConfigItems.BeginUpdate();
|
||||
ListActivityConfigItems.Items.Clear();
|
||||
ListActivityConfigItems.Items.AddRange(ActivityConfigItems.Select(Convert).ToArray());
|
||||
ListActivityConfigItems.EndUpdate();
|
||||
}
|
||||
|
||||
private ListViewItem Convert(ActivityConfigItem item)
|
||||
{
|
||||
return new ListViewItem(new[]
|
||||
{
|
||||
item.ActivityId.ToString(),
|
||||
GameData.Activity[item.ActivityId],
|
||||
item.BeginTime.ToShortDateString(),
|
||||
item.EndTime.ToShortDateString(),
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存按钮点击时触发
|
||||
/// </summary>
|
||||
private void BtnSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var path = ActivityConfigJsonPath.Text.Trim();
|
||||
if (path == string.Empty)
|
||||
{
|
||||
var dialog = new SaveFileDialog
|
||||
{
|
||||
FileName = "ActivityConfig.json",
|
||||
Filter = "ActivityConfig.json (*.json)|*.json|All files (*.*)|*.*",
|
||||
};
|
||||
var result = dialog.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
path = ActivityConfigJsonPath.Text = dialog.FileName;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
// 序列化
|
||||
File.WriteAllText(path, JsonConvert.SerializeObject(ActivityConfigItems, Formatting.Indented));
|
||||
MessageBox.Show("OK", Resources.Tips, MessageBoxButtons.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion - ActivityConfig.json 文件相关 -
|
||||
|
||||
#region - 活动列表 -
|
||||
|
||||
/// <summary>
|
||||
/// 加载所有活动
|
||||
/// </summary>
|
||||
private void LoadAllActivity()
|
||||
{
|
||||
ListAllActivity.BeginUpdate();
|
||||
foreach (var grp in GameData.Activity)
|
||||
{
|
||||
var grpControl = ListAllActivity.Groups.Add(grp.Key, grp.Key);
|
||||
for (var i = 0; i < grp.Value.Count; i++)
|
||||
{
|
||||
ListAllActivity.Items.Add(new ListViewItem(new[]
|
||||
{
|
||||
grp.Value.Ids[i].ToString(), grp.Value.Names[i]
|
||||
}, grpControl));
|
||||
}
|
||||
}
|
||||
ListAllActivity.EndUpdate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 所有活动列表选中项改变时触发
|
||||
/// </summary>
|
||||
private void ListAllActivity_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ListAllActivity.SelectedItems.Count == 0)
|
||||
return;
|
||||
NUDActivityId.Text = ListAllActivity.SelectedItems[0].Text;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 活动ID改变时触发
|
||||
/// </summary>
|
||||
private void NUDActivityId_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
// 更新活动名称到提示文本
|
||||
var activityId = (int)NUDActivityId.Value;
|
||||
LblActivityTitle.Text = GameData.Activity[activityId];
|
||||
|
||||
// 检查是否在列表中,允许删除
|
||||
var item = ActivityConfigItems.Find(it => it.ActivityId == activityId);
|
||||
BtnDelete.Enabled = item != null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击添加或更新按钮时触发
|
||||
/// </summary>
|
||||
private async void BtnAddOrUpdate_Click(object sender, EventArgs e)
|
||||
{
|
||||
var activityId = (int)NUDActivityId.Value;
|
||||
var isNew = false;
|
||||
var item = ActivityConfigItems.Find(it => it.ActivityId == activityId);
|
||||
if (item == null)
|
||||
{
|
||||
item = new ActivityConfigItem();
|
||||
isNew = true;
|
||||
}
|
||||
|
||||
item.ActivityId = activityId;
|
||||
item.ActivityType = (int)NUDActivityType.Value;
|
||||
item.ScheduleId = (int)NUDScheduleId.Value;
|
||||
try
|
||||
{
|
||||
item.MeetCondList = !string.IsNullOrEmpty(TxtMeetCondList.Text)
|
||||
? TxtMeetCondList.Text.Split(',').Select(it => int.Parse(it.Trim())).ToList()
|
||||
: new List<int>();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
item.MeetCondList = new List<int>();
|
||||
}
|
||||
|
||||
if (DTPBeginTime.Value > DTPEndTime.Value)
|
||||
{
|
||||
// ?
|
||||
}
|
||||
|
||||
item.BeginTime = DTPBeginTime.Value.Date;
|
||||
item.EndTime = DTPEndTime.Value.Date.AddDays(1).AddSeconds(-1);
|
||||
|
||||
if (isNew)
|
||||
{
|
||||
ActivityConfigItems.Add(item);
|
||||
ListActivityConfigItems.Items.Add(Convert(item));
|
||||
}
|
||||
|
||||
BtnDelete.Enabled = true;
|
||||
await UIUtil.ButtonComplete(BtnAddOrUpdate);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击删除按钮时触发
|
||||
/// </summary>
|
||||
private void BtnDelete_Click(object sender, EventArgs e)
|
||||
{
|
||||
var activityId = (int)NUDActivityId.Value;
|
||||
var index = ActivityConfigItems.FindIndex(it => it.ActivityId == activityId);
|
||||
if (index != -1)
|
||||
{
|
||||
ListActivityConfigItems.Items.RemoveAt(index);
|
||||
ActivityConfigItems.RemoveAt(index);
|
||||
}
|
||||
BtnDelete.Enabled = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当前文件活动配置列表选中项改变时触发
|
||||
/// </summary>
|
||||
private void ListActivityConfigItems_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (ListActivityConfigItems.SelectedItems.Count == 0)
|
||||
return;
|
||||
var index = ListActivityConfigItems.SelectedIndices[0];
|
||||
var configItem = ActivityConfigItems[index];
|
||||
NUDActivityId.Value = configItem.ActivityId;
|
||||
NUDActivityType.Value = configItem.ActivityType;
|
||||
NUDScheduleId.Value = configItem.ScheduleId;
|
||||
TxtMeetCondList.Text = configItem.MeetCondList?.Count > 0
|
||||
? string.Join(",", configItem.MeetCondList)
|
||||
: string.Empty;
|
||||
DTPBeginTime.Value = configItem.BeginTime;
|
||||
DTPEndTime.Value = configItem.EndTime;
|
||||
}
|
||||
|
||||
#endregion - 活动列表 -
|
||||
}
|
||||
}
|
208
Source/GrasscutterTools/Forms/FormActivityEditor.en-US.resx
Normal file
@@ -0,0 +1,208 @@
|
||||
<?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="BtnSave.Text" xml:space="preserve">
|
||||
<value>Save</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>Load</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="LblActivityConfigJsonPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>145, 17</value>
|
||||
</data>
|
||||
<data name="LblActivityConfigJsonPath.Text" xml:space="preserve">
|
||||
<value>ActivityConfig.json Path:</value>
|
||||
</data>
|
||||
<data name="GrpAllActivity.Text" xml:space="preserve">
|
||||
<value>All Activity by dplek</value>
|
||||
</data>
|
||||
<data name="ColumnActivityName.Text" xml:space="preserve">
|
||||
<value>Activity name</value>
|
||||
</data>
|
||||
<data name="GrpFileActivity.Text" xml:space="preserve">
|
||||
<value>File</value>
|
||||
</data>
|
||||
<data name="ColActivityTitle.Text" xml:space="preserve">
|
||||
<value>Activity name</value>
|
||||
</data>
|
||||
<data name="ColActivityBeginTime.Text" xml:space="preserve">
|
||||
<value>Begin time</value>
|
||||
</data>
|
||||
<data name="ColActivityEndTime.Text" xml:space="preserve">
|
||||
<value>End time</value>
|
||||
</data>
|
||||
<data name="GrpActivityInfo.Text" xml:space="preserve">
|
||||
<value>Activity info</value>
|
||||
</data>
|
||||
<data name="LblActivityTitle.Text" xml:space="preserve">
|
||||
<value>Activity name</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 251</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>314, 17</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Text" xml:space="preserve">
|
||||
<value>Tip: Usually you only need to modify the activity time</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>- Delete</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ Add or Update</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>62, 17</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Text" xml:space="preserve">
|
||||
<value>End Time</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>73, 17</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.Text" xml:space="preserve">
|
||||
<value>Begin Time</value>
|
||||
</data>
|
||||
<data name="LblMeetCondList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>88, 17</value>
|
||||
</data>
|
||||
<data name="LblMeetCondList.Text" xml:space="preserve">
|
||||
<value>MeetCondList</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>77, 17</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.Text" xml:space="preserve">
|
||||
<value>Schedule ID</value>
|
||||
</data>
|
||||
<data name="LblActivityType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 17</value>
|
||||
</data>
|
||||
<data name="LblActivityType.Text" xml:space="preserve">
|
||||
<value>Activity Type</value>
|
||||
</data>
|
||||
<data name="LblActivityId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 17</value>
|
||||
</data>
|
||||
<data name="LblActivityId.Text" xml:space="preserve">
|
||||
<value>Activity ID</value>
|
||||
</data>
|
||||
</root>
|
858
Source/GrasscutterTools/Forms/FormActivityEditor.resx
Normal file
@@ -0,0 +1,858 @@
|
||||
<?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=">>LblActivityId.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="ListAllActivity.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name=">>LblActivityConfigJsonPath.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="GrpActivityInfo.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>278, 41</value>
|
||||
</data>
|
||||
<data name="LblActivityConfigJsonPath.Text" xml:space="preserve">
|
||||
<value>ActivityConfig.json 路径:</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="ColActivityEndTime.Width" type="System.Int32, mscorlib">
|
||||
<value>120</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name="ListActivityConfigItems.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 19</value>
|
||||
</data>
|
||||
<data name=">>LblActivityParmEditTip.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name=">>LblActivityType.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=">>LblActivityTitle.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>NUDActivityId.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="LblActivityParmEditTip.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="NUDActivityType.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="BtnLoad.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="NUDScheduleId.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>107, 101</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name=">>NUDScheduleId.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="ListAllActivity.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 19</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>21, 103</value>
|
||||
</data>
|
||||
<data name=">>LblBeginTime.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=">>TxtMeetCondList.Name" xml:space="preserve">
|
||||
<value>TxtMeetCondList</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>671, 12</value>
|
||||
</data>
|
||||
<data name=">>ColActivityEndTime.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=">>BtnDelete.Name" xml:space="preserve">
|
||||
<value>BtnDelete</value>
|
||||
</data>
|
||||
<data name=">>NUDScheduleId.Name" xml:space="preserve">
|
||||
<value>NUDScheduleId</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>7, 17</value>
|
||||
</data>
|
||||
<data name=">>ListAllActivity.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>LblActivityType.Name" xml:space="preserve">
|
||||
<value>LblActivityType</value>
|
||||
</data>
|
||||
<data name="LblActivityId.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblActivityType.Text" xml:space="preserve">
|
||||
<value>活动类型</value>
|
||||
</data>
|
||||
<data name=">>ListActivityConfigItems.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>GrpFileActivity.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>21, 193</value>
|
||||
</data>
|
||||
<data name=">>NUDActivityId.Name" xml:space="preserve">
|
||||
<value>NUDActivityId</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.Text" xml:space="preserve">
|
||||
<value>活动开始时间</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 17</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="BtnSave.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name=">>GrpAllActivity.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>ColumnActivityId.Name" xml:space="preserve">
|
||||
<value>ColumnActivityId</value>
|
||||
</data>
|
||||
<data name=">>BtnSave.Name" xml:space="preserve">
|
||||
<value>BtnSave</value>
|
||||
</data>
|
||||
<data name=">>LblBeginTime.Name" xml:space="preserve">
|
||||
<value>LblBeginTime</value>
|
||||
</data>
|
||||
<data name=">>DTPEndTime.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name=">>GrpAllActivity.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="LblEndTime.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name=">>LblScheduleId.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=">>LblEndTime.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name="ColActivityBeginTime.Text" xml:space="preserve">
|
||||
<value>开始时间</value>
|
||||
</data>
|
||||
<data name="GrpActivityInfo.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Right</value>
|
||||
</data>
|
||||
<data name=">>GrpAllActivity.Name" xml:space="preserve">
|
||||
<value>GrpAllActivity</value>
|
||||
</data>
|
||||
<data name="NUDActivityId.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>107, 43</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>21, 164</value>
|
||||
</data>
|
||||
<data name="BtnSave.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>199, 271</value>
|
||||
</data>
|
||||
<data name=">>LblActivityConfigJsonPath.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="ColActivityId.Text" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Text" xml:space="preserve">
|
||||
<value>活动结束时间</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>- 删除</value>
|
||||
</data>
|
||||
<data name="ActivityConfigJsonPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>176, 12</value>
|
||||
</data>
|
||||
<data name="LblActivityTitle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>134, 17</value>
|
||||
</data>
|
||||
<data name="LblActivityTitle.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="LblActivityId.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>TxtMeetCondList.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterScreen</value>
|
||||
</data>
|
||||
<data name="ColumnActivityId.Text" xml:space="preserve">
|
||||
<value>ID</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>
|
||||
<data name=">>LblActivityConfigJsonPath.Name" xml:space="preserve">
|
||||
<value>LblActivityConfigJsonPath</value>
|
||||
</data>
|
||||
<data name=">>ListActivityConfigItems.Name" xml:space="preserve">
|
||||
<value>ListActivityConfigItems</value>
|
||||
</data>
|
||||
<data name="GrpAllActivity.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>612, 41</value>
|
||||
</data>
|
||||
<data name=">>BtnDelete.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name=">>ColActivityId.Name" xml:space="preserve">
|
||||
<value>ColActivityId</value>
|
||||
</data>
|
||||
<data name="BtnLoad.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name=">>NUDActivityType.Name" xml:space="preserve">
|
||||
<value>NUDActivityType</value>
|
||||
</data>
|
||||
<data name="GrpFileActivity.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 41</value>
|
||||
</data>
|
||||
<data name="LblActivityType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name=">>NUDScheduleId.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name="GrpAllActivity.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Right</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Text" xml:space="preserve">
|
||||
<value>提示:通常情况下你只需要修改活动进行时间</value>
|
||||
</data>
|
||||
<data name="DTPBeginTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>200, 23</value>
|
||||
</data>
|
||||
<data name=">>LblActivityId.ZOrder" xml:space="preserve">
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblActivityType.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="DTPEndTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>107, 188</value>
|
||||
</data>
|
||||
<data name=">>LblActivityId.Name" xml:space="preserve">
|
||||
<value>LblActivityId</value>
|
||||
</data>
|
||||
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>900, 420</value>
|
||||
</data>
|
||||
<data name="GrpFileActivity.Text" xml:space="preserve">
|
||||
<value>当前文件</value>
|
||||
</data>
|
||||
<data name=">>TxtMeetCondList.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>LblMeetCondList.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>ActivityConfig.json Editor</value>
|
||||
</data>
|
||||
<data name=">>ListActivityConfigItems.Parent" xml:space="preserve">
|
||||
<value>GrpFileActivity</value>
|
||||
</data>
|
||||
<data name="DTPBeginTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>107, 159</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name=">>ListActivityConfigItems.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=">>GrpAllActivity.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="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Microsoft YaHei UI, 9pt</value>
|
||||
</data>
|
||||
<data name="ColActivityId.Width" type="System.Int32, mscorlib">
|
||||
<value>50</value>
|
||||
</data>
|
||||
<data name=">>LblMeetCondList.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="NUDActivityType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 23</value>
|
||||
</data>
|
||||
<data name=">>NUDActivityId.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</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>
|
||||
<data name="LblActivityParmEditTip.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="NUDActivityId.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>89, 30</value>
|
||||
</data>
|
||||
<data name="BtnDelete.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name=">>BtnLoad.Name" xml:space="preserve">
|
||||
<value>BtnLoad</value>
|
||||
</data>
|
||||
<data name=">>LblEndTime.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="NUDActivityType.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>107, 72</value>
|
||||
</data>
|
||||
<data name=">>LblActivityConfigJsonPath.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=">>NUDActivityType.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name=">>GrpActivityInfo.Name" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name=">>ColActivityId.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=">>GrpFileActivity.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="LblActivityId.Text" xml:space="preserve">
|
||||
<value>活动ID</value>
|
||||
</data>
|
||||
<data name="ColumnActivityId.Width" type="System.Int32, mscorlib">
|
||||
<value>50</value>
|
||||
</data>
|
||||
<data name="LblActivityConfigJsonPath.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="ColActivityBeginTime.Width" type="System.Int32, mscorlib">
|
||||
<value>120</value>
|
||||
</data>
|
||||
<data name="GrpFileActivity.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>DTPBeginTime.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>LblActivityTitle.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=">>LblActivityType.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name=">>DTPBeginTime.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.DateTimePicker, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>150, 30</value>
|
||||
</data>
|
||||
<data name="ColActivityEndTime.Text" xml:space="preserve">
|
||||
<value>结束时间</value>
|
||||
</data>
|
||||
<data name=">>TxtMeetCondList.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=">>GrpFileActivity.Name" xml:space="preserve">
|
||||
<value>GrpFileActivity</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=">>LblActivityParmEditTip.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="ActivityConfigJsonPath.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>ActivityConfigJsonPath.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="ActivityConfigJsonPath.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name=">>BtnLoad.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="LblEndTime.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>LblBeginTime.ZOrder" xml:space="preserve">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>加载</value>
|
||||
</data>
|
||||
<data name=">>LblActivityTitle.Name" xml:space="preserve">
|
||||
<value>LblActivityTitle</value>
|
||||
</data>
|
||||
<data name="GrpAllActivity.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>DTPBeginTime.Name" xml:space="preserve">
|
||||
<value>DTPBeginTime</value>
|
||||
</data>
|
||||
<data name="TxtMeetCondList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>200, 23</value>
|
||||
</data>
|
||||
<data name="ListActivityConfigItems.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>254, 306</value>
|
||||
</data>
|
||||
<data name="LblActivityConfigJsonPath.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>FormActivityEditor</value>
|
||||
</data>
|
||||
<data name=">>LblScheduleId.ZOrder" xml:space="preserve">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="LblActivityConfigJsonPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>17, 15</value>
|
||||
</data>
|
||||
<data name=">>LblActivityId.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=">>ListAllActivity.Parent" xml:space="preserve">
|
||||
<value>GrpAllActivity</value>
|
||||
</data>
|
||||
<data name="LblActivityType.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>21, 74</value>
|
||||
</data>
|
||||
<data name="ColActivityTitle.Text" xml:space="preserve">
|
||||
<value>活动名称</value>
|
||||
</data>
|
||||
<data name=">>BtnSave.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="ColumnActivityName.Width" type="System.Int32, mscorlib">
|
||||
<value>300</value>
|
||||
</data>
|
||||
<data name="ListActivityConfigItems.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>248, 17</value>
|
||||
</data>
|
||||
<data name=">>NUDActivityType.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="BtnSave.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>776, 12</value>
|
||||
</data>
|
||||
<data name="LblMeetCondList.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblActivityTitle.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>173, 45</value>
|
||||
</data>
|
||||
<data name="ActivityConfigJsonPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>489, 23</value>
|
||||
</data>
|
||||
<data name=">>NUDActivityType.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="LblActivityConfigJsonPath.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>884, 381</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="GrpAllActivity.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>260, 328</value>
|
||||
</data>
|
||||
<data name="BtnSave.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name="LblActivityId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>45, 17</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="GrpFileActivity.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>260, 328</value>
|
||||
</data>
|
||||
<data name="BtnSave.Text" xml:space="preserve">
|
||||
<value>保存</value>
|
||||
</data>
|
||||
<data name="DTPEndTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>200, 23</value>
|
||||
</data>
|
||||
<data name="ColActivityTitle.Width" type="System.Int32, mscorlib">
|
||||
<value>150</value>
|
||||
</data>
|
||||
<data name=">>DTPEndTime.Name" xml:space="preserve">
|
||||
<value>DTPEndTime</value>
|
||||
</data>
|
||||
<data name=">>DTPBeginTime.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name=">>ColumnActivityName.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="ListAllActivity.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>254, 306</value>
|
||||
</data>
|
||||
<data name=">>LblScheduleId.Name" xml:space="preserve">
|
||||
<value>LblScheduleId</value>
|
||||
</data>
|
||||
<data name=">>ListAllActivity.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=">>LblActivityParmEditTip.Name" xml:space="preserve">
|
||||
<value>LblActivityParmEditTip</value>
|
||||
</data>
|
||||
<data name=">>BtnLoad.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name=">>GrpActivityInfo.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>GrpActivityInfo.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="GrpActivityInfo.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.Text" xml:space="preserve">
|
||||
<value>计划ID</value>
|
||||
</data>
|
||||
<data name="LblMeetCondList.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>21, 133</value>
|
||||
</data>
|
||||
<data name="GrpFileActivity.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="GrpActivityInfo.Text" xml:space="preserve">
|
||||
<value>活动信息</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Enabled" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="NUDActivityId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 23</value>
|
||||
</data>
|
||||
<data name=">>LblActivityTitle.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name=">>LblMeetCondList.ZOrder" xml:space="preserve">
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="LblActivityConfigJsonPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>153, 17</value>
|
||||
</data>
|
||||
<data name="ListAllActivity.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.Name" xml:space="preserve">
|
||||
<value>BtnAddOrUpdate</value>
|
||||
</data>
|
||||
<data name="GrpActivityInfo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>328, 328</value>
|
||||
</data>
|
||||
<data name=">>ColumnActivityId.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=">>DTPEndTime.ZOrder" xml:space="preserve">
|
||||
<value>4</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="GrpAllActivity.Text" xml:space="preserve">
|
||||
<value>已知活动 by dplek</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ 添加或更新</value>
|
||||
</data>
|
||||
<data name="ColumnActivityName.Text" xml:space="preserve">
|
||||
<value>活动名称</value>
|
||||
</data>
|
||||
<data name=">>LblScheduleId.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name=">>ActivityConfigJsonPath.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="NUDScheduleId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 23</value>
|
||||
</data>
|
||||
<data name=">>ColActivityEndTime.Name" xml:space="preserve">
|
||||
<value>ColActivityEndTime</value>
|
||||
</data>
|
||||
<data name=">>BtnSave.ZOrder" xml:space="preserve">
|
||||
<value>3</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=">>GrpFileActivity.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="LblMeetCondList.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="TxtMeetCondList.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>107, 130</value>
|
||||
</data>
|
||||
<data name=">>LblBeginTime.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name=">>ColActivityTitle.Name" xml:space="preserve">
|
||||
<value>ColActivityTitle</value>
|
||||
</data>
|
||||
<data name="LblActivityType.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>LblActivityType.ZOrder" xml:space="preserve">
|
||||
<value>14</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>
|
||||
</data>
|
||||
<data name=">>BtnDelete.Parent" xml:space="preserve">
|
||||
<value>GrpActivityInfo</value>
|
||||
</data>
|
||||
<data name="LblMeetCondList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 17</value>
|
||||
</data>
|
||||
<data name=">>LblEndTime.Name" xml:space="preserve">
|
||||
<value>LblEndTime</value>
|
||||
</data>
|
||||
<data name="LblActivityId.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>21, 45</value>
|
||||
</data>
|
||||
<data name="BtnSave.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="DTPEndTime.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="NUDScheduleId.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>GrpActivityInfo.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>ColActivityTitle.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="LblScheduleId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>45, 17</value>
|
||||
</data>
|
||||
<data name=">>NUDActivityId.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name=">>LblMeetCondList.Name" xml:space="preserve">
|
||||
<value>LblMeetCondList</value>
|
||||
</data>
|
||||
<data name="LblActivityTitle.Text" xml:space="preserve">
|
||||
<value>活动名称</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>43, 271</value>
|
||||
</data>
|
||||
<data name=">>LblActivityParmEditTip.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=">>ColActivityBeginTime.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="TxtMeetCondList.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name=">>ActivityConfigJsonPath.Name" xml:space="preserve">
|
||||
<value>ActivityConfigJsonPath</value>
|
||||
</data>
|
||||
<data name="DTPBeginTime.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>40, 251</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 17</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>ColActivityBeginTime.Name" xml:space="preserve">
|
||||
<value>ColActivityBeginTime</value>
|
||||
</data>
|
||||
<data name=">>ColumnActivityName.Name" xml:space="preserve">
|
||||
<value>ColumnActivityName</value>
|
||||
</data>
|
||||
<data name=">>ListAllActivity.Name" xml:space="preserve">
|
||||
<value>ListAllActivity</value>
|
||||
</data>
|
||||
<data name="ListActivityConfigItems.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name=">>ActivityConfigJsonPath.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="LblMeetCondList.Text" xml:space="preserve">
|
||||
<value>满足条件列表</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
221
Source/GrasscutterTools/Forms/FormActivityEditor.ru-RU.resx
Normal file
@@ -0,0 +1,221 @@
|
||||
<?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="BtnSave.Text" xml:space="preserve">
|
||||
<value>Сохранить</value>
|
||||
</data>
|
||||
<data name="BtnLoad.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="LblActivityConfigJsonPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 17</value>
|
||||
</data>
|
||||
<data name="LblActivityConfigJsonPath.Text" xml:space="preserve">
|
||||
<value>ActivityConfig.json Путь:</value>
|
||||
</data>
|
||||
<data name="GrpAllActivity.Text" xml:space="preserve">
|
||||
<value>Вся деятельность by dplek</value>
|
||||
</data>
|
||||
<data name="ColumnActivityName.Text" xml:space="preserve">
|
||||
<value>Activity name</value>
|
||||
</data>
|
||||
<data name="GrpFileActivity.Text" xml:space="preserve">
|
||||
<value>Текущий файл</value>
|
||||
</data>
|
||||
<data name="ColActivityTitle.Text" xml:space="preserve">
|
||||
<value>Activity name</value>
|
||||
</data>
|
||||
<data name="ColActivityBeginTime.Text" xml:space="preserve">
|
||||
<value>Begin time</value>
|
||||
</data>
|
||||
<data name="ColActivityEndTime.Text" xml:space="preserve">
|
||||
<value>End time</value>
|
||||
</data>
|
||||
<data name="GrpActivityInfo.Text" xml:space="preserve">
|
||||
<value>Информация об активности</value>
|
||||
</data>
|
||||
<data name="LblActivityTitle.Text" xml:space="preserve">
|
||||
<value>Название деятельности</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Microsoft YaHei UI, 8pt</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>40, 236</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 32</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Text" xml:space="preserve">
|
||||
<value>Совет: обычно вам нужно изменить только
|
||||
время активности</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>213, 271</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>- Удалить</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>27, 271</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>180, 30</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ Добавить или обновить</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>59, 17</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Text" xml:space="preserve">
|
||||
<value>End time</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 17</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.Text" xml:space="preserve">
|
||||
<value>Begin time</value>
|
||||
</data>
|
||||
<data name="LblMeetCondList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>88, 17</value>
|
||||
</data>
|
||||
<data name="LblMeetCondList.Text" xml:space="preserve">
|
||||
<value>MeetCondList</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>85, 17</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.Text" xml:space="preserve">
|
||||
<value>Scheduled ID</value>
|
||||
</data>
|
||||
<data name="LblActivityType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>77, 17</value>
|
||||
</data>
|
||||
<data name="LblActivityType.Text" xml:space="preserve">
|
||||
<value>Activty Type</value>
|
||||
</data>
|
||||
<data name="LblActivityId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 17</value>
|
||||
</data>
|
||||
<data name="LblActivityId.Text" xml:space="preserve">
|
||||
<value>Activity ID</value>
|
||||
</data>
|
||||
</root>
|
174
Source/GrasscutterTools/Forms/FormActivityEditor.zh-TW.resx
Normal file
@@ -0,0 +1,174 @@
|
||||
<?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="BtnLoad.Text" xml:space="preserve">
|
||||
<value>加載</value>
|
||||
</data>
|
||||
<data name="LblActivityConfigJsonPath.Text" xml:space="preserve">
|
||||
<value>ActivityConfig.json 路徑:</value>
|
||||
</data>
|
||||
<data name="GrpAllActivity.Text" xml:space="preserve">
|
||||
<value>已知活動 by dplek</value>
|
||||
</data>
|
||||
<data name="ColumnActivityName.Text" xml:space="preserve">
|
||||
<value>活動名稱</value>
|
||||
</data>
|
||||
<data name="GrpFileActivity.Text" xml:space="preserve">
|
||||
<value>當前文件</value>
|
||||
</data>
|
||||
<data name="ColActivityTitle.Text" xml:space="preserve">
|
||||
<value>活動名稱</value>
|
||||
</data>
|
||||
<data name="ColActivityBeginTime.Text" xml:space="preserve">
|
||||
<value>開始時間</value>
|
||||
</data>
|
||||
<data name="ColActivityEndTime.Text" xml:space="preserve">
|
||||
<value>結束時間</value>
|
||||
</data>
|
||||
<data name="GrpActivityInfo.Text" xml:space="preserve">
|
||||
<value>活動信息</value>
|
||||
</data>
|
||||
<data name="LblActivityTitle.Text" xml:space="preserve">
|
||||
<value>活動名稱</value>
|
||||
</data>
|
||||
<data name="LblActivityParmEditTip.Text" xml:space="preserve">
|
||||
<value>提示:通常情況下你只需要修改活動進行時間</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>- 刪除</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Text" xml:space="preserve">
|
||||
<value>活動結束時間</value>
|
||||
</data>
|
||||
<data name="LblBeginTime.Text" xml:space="preserve">
|
||||
<value>活動開始時間</value>
|
||||
</data>
|
||||
<data name="LblMeetCondList.Text" xml:space="preserve">
|
||||
<value>滿足條件列表</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.Text" xml:space="preserve">
|
||||
<value>計劃ID</value>
|
||||
</data>
|
||||
<data name="LblActivityType.Text" xml:space="preserve">
|
||||
<value>活動類型</value>
|
||||
</data>
|
||||
<data name="LblActivityId.Text" xml:space="preserve">
|
||||
<value>活動ID</value>
|
||||
</data>
|
||||
</root>
|
@@ -30,10 +30,10 @@ namespace GrasscutterTools.Forms
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormGachaBannersEditor3));
|
||||
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea9 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
|
||||
System.Windows.Forms.DataVisualization.Charting.Legend legend9 = new System.Windows.Forms.DataVisualization.Charting.Legend();
|
||||
System.Windows.Forms.DataVisualization.Charting.Series series17 = new System.Windows.Forms.DataVisualization.Charting.Series();
|
||||
System.Windows.Forms.DataVisualization.Charting.Series series18 = new System.Windows.Forms.DataVisualization.Charting.Series();
|
||||
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
|
||||
System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend();
|
||||
System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
|
||||
System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
|
||||
this.GrpBannerValues = new System.Windows.Forms.GroupBox();
|
||||
this.BtnAddOrUpdate = new System.Windows.Forms.Button();
|
||||
this.CmbTitlePath = new System.Windows.Forms.ComboBox();
|
||||
@@ -59,7 +59,6 @@ namespace GrasscutterTools.Forms
|
||||
this.LblSortId = new System.Windows.Forms.Label();
|
||||
this.NUDGachaType = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDSortId = new System.Windows.Forms.NumericUpDown();
|
||||
this.LblGachaTypeTip = new System.Windows.Forms.Label();
|
||||
this.LblEndTime = new System.Windows.Forms.Label();
|
||||
this.LblScheduleId = new System.Windows.Forms.Label();
|
||||
this.LblBeginTime = new System.Windows.Forms.Label();
|
||||
@@ -93,6 +92,7 @@ namespace GrasscutterTools.Forms
|
||||
this.LblPoolWeight5 = new System.Windows.Forms.Label();
|
||||
this.ChartWeights = new System.Windows.Forms.DataVisualization.Charting.Chart();
|
||||
this.GrpBanners = new System.Windows.Forms.GroupBox();
|
||||
this.LnkCheckLatestBanners = new System.Windows.Forms.LinkLabel();
|
||||
this.ListBanners = new System.Windows.Forms.ListBox();
|
||||
this.FLPBannersControl = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.BtnDelete = new System.Windows.Forms.Button();
|
||||
@@ -145,7 +145,6 @@ namespace GrasscutterTools.Forms
|
||||
this.GrpBannerValues.Controls.Add(this.LblSortId);
|
||||
this.GrpBannerValues.Controls.Add(this.NUDGachaType);
|
||||
this.GrpBannerValues.Controls.Add(this.NUDSortId);
|
||||
this.GrpBannerValues.Controls.Add(this.LblGachaTypeTip);
|
||||
this.GrpBannerValues.Controls.Add(this.LblEndTime);
|
||||
this.GrpBannerValues.Controls.Add(this.LblScheduleId);
|
||||
this.GrpBannerValues.Controls.Add(this.LblBeginTime);
|
||||
@@ -345,11 +344,6 @@ namespace GrasscutterTools.Forms
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// LblGachaTypeTip
|
||||
//
|
||||
resources.ApplyResources(this.LblGachaTypeTip, "LblGachaTypeTip");
|
||||
this.LblGachaTypeTip.Name = "LblGachaTypeTip";
|
||||
//
|
||||
// LblEndTime
|
||||
//
|
||||
resources.ApplyResources(this.LblEndTime, "LblEndTime");
|
||||
@@ -569,44 +563,52 @@ namespace GrasscutterTools.Forms
|
||||
// ChartWeights
|
||||
//
|
||||
resources.ApplyResources(this.ChartWeights, "ChartWeights");
|
||||
chartArea9.AxisX.Minimum = 0D;
|
||||
chartArea9.AxisY.Maximum = 100D;
|
||||
chartArea9.AxisY.Minimum = 0D;
|
||||
chartArea9.AxisY.Title = "%";
|
||||
chartArea9.Name = "ChartArea1";
|
||||
this.ChartWeights.ChartAreas.Add(chartArea9);
|
||||
legend9.Name = "Legend1";
|
||||
this.ChartWeights.Legends.Add(legend9);
|
||||
chartArea2.AxisX.Minimum = 0D;
|
||||
chartArea2.AxisY.Maximum = 100D;
|
||||
chartArea2.AxisY.Minimum = 0D;
|
||||
chartArea2.AxisY.Title = "%";
|
||||
chartArea2.Name = "ChartArea1";
|
||||
this.ChartWeights.ChartAreas.Add(chartArea2);
|
||||
legend2.Name = "Legend1";
|
||||
this.ChartWeights.Legends.Add(legend2);
|
||||
this.ChartWeights.Name = "ChartWeights";
|
||||
series17.ChartArea = "ChartArea1";
|
||||
series17.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
|
||||
series17.Color = System.Drawing.Color.OrangeRed;
|
||||
series17.Label = "(#VALX, #VAL)";
|
||||
series17.Legend = "Legend1";
|
||||
series17.LegendText = "5*";
|
||||
series17.Name = "SeriesWeight5";
|
||||
series17.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
|
||||
series17.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
|
||||
series18.ChartArea = "ChartArea1";
|
||||
series18.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
|
||||
series18.Color = System.Drawing.Color.Purple;
|
||||
series18.Label = "(#VALX, #VAL)";
|
||||
series18.Legend = "Legend1";
|
||||
series18.LegendText = "4*";
|
||||
series18.Name = "SeriesWeight4";
|
||||
series18.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
|
||||
series18.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
|
||||
this.ChartWeights.Series.Add(series17);
|
||||
this.ChartWeights.Series.Add(series18);
|
||||
series3.ChartArea = "ChartArea1";
|
||||
series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
|
||||
series3.Color = System.Drawing.Color.OrangeRed;
|
||||
series3.Label = "(#VALX, #VAL)";
|
||||
series3.Legend = "Legend1";
|
||||
series3.LegendText = "5*";
|
||||
series3.Name = "SeriesWeight5";
|
||||
series3.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
|
||||
series3.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
|
||||
series4.ChartArea = "ChartArea1";
|
||||
series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
|
||||
series4.Color = System.Drawing.Color.Purple;
|
||||
series4.Label = "(#VALX, #VAL)";
|
||||
series4.Legend = "Legend1";
|
||||
series4.LegendText = "4*";
|
||||
series4.Name = "SeriesWeight4";
|
||||
series4.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
|
||||
series4.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
|
||||
this.ChartWeights.Series.Add(series3);
|
||||
this.ChartWeights.Series.Add(series4);
|
||||
//
|
||||
// GrpBanners
|
||||
//
|
||||
resources.ApplyResources(this.GrpBanners, "GrpBanners");
|
||||
this.GrpBanners.Controls.Add(this.LnkCheckLatestBanners);
|
||||
this.GrpBanners.Controls.Add(this.ListBanners);
|
||||
this.GrpBanners.Controls.Add(this.FLPBannersControl);
|
||||
this.GrpBanners.Name = "GrpBanners";
|
||||
this.GrpBanners.TabStop = false;
|
||||
//
|
||||
// LnkCheckLatestBanners
|
||||
//
|
||||
resources.ApplyResources(this.LnkCheckLatestBanners, "LnkCheckLatestBanners");
|
||||
this.LnkCheckLatestBanners.Name = "LnkCheckLatestBanners";
|
||||
this.LnkCheckLatestBanners.TabStop = true;
|
||||
this.LnkCheckLatestBanners.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkCheckLatestBanners_LinkClicked);
|
||||
//
|
||||
// ListBanners
|
||||
//
|
||||
resources.ApplyResources(this.ListBanners, "ListBanners");
|
||||
@@ -693,6 +695,7 @@ namespace GrasscutterTools.Forms
|
||||
this.GrpBalance.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ChartWeights)).EndInit();
|
||||
this.GrpBanners.ResumeLayout(false);
|
||||
this.GrpBanners.PerformLayout();
|
||||
this.FLPBannersControl.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
@@ -708,7 +711,6 @@ namespace GrasscutterTools.Forms
|
||||
private System.Windows.Forms.Label LblSortId;
|
||||
private System.Windows.Forms.NumericUpDown NUDGachaType;
|
||||
private System.Windows.Forms.NumericUpDown NUDSortId;
|
||||
private System.Windows.Forms.Label LblGachaTypeTip;
|
||||
private System.Windows.Forms.Label LblEndTime;
|
||||
private System.Windows.Forms.Label LblScheduleId;
|
||||
private System.Windows.Forms.Label LblBeginTime;
|
||||
@@ -767,5 +769,6 @@ namespace GrasscutterTools.Forms
|
||||
private System.Windows.Forms.ComboBox CmbTitlePath;
|
||||
private System.Windows.Forms.Label LblTitlePath;
|
||||
private System.Windows.Forms.Button BtnClear;
|
||||
private System.Windows.Forms.LinkLabel LnkCheckLatestBanners;
|
||||
}
|
||||
}
|
@@ -28,6 +28,7 @@ using System.Windows.Forms;
|
||||
using GrasscutterTools.Game;
|
||||
using GrasscutterTools.Game.Gacha;
|
||||
using GrasscutterTools.Properties;
|
||||
using GrasscutterTools.Utils;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
@@ -259,6 +260,11 @@ namespace GrasscutterTools.Forms
|
||||
|
||||
#region - 卡池 -
|
||||
|
||||
private void LnkCheckLatestBanners_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
UIUtil.OpenURL("https://github.com/Zhaokugua/Grasscutter_Banners");
|
||||
}
|
||||
|
||||
private void InitCheckedListBoxs()
|
||||
{
|
||||
ListFallbackItems.BeginUpdate();
|
||||
|
@@ -206,12 +206,6 @@
|
||||
<data name="LblSortId.Text" xml:space="preserve">
|
||||
<value>Sort</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>123, 17</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.Text" xml:space="preserve">
|
||||
<value>Increment from 400</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>62, 17</value>
|
||||
</data>
|
||||
@@ -443,6 +437,15 @@
|
||||
<data name="GrpBanners.Text" xml:space="preserve">
|
||||
<value>Banners</value>
|
||||
</data>
|
||||
<data name="LnkCheckLatestBanners.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>141, -1</value>
|
||||
</data>
|
||||
<data name="LnkCheckLatestBanners.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 17</value>
|
||||
</data>
|
||||
<data name="LnkCheckLatestBanners.Text" xml:space="preserve">
|
||||
<value>Check latest Banners</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>Delete</value>
|
||||
</data>
|
||||
|
@@ -144,6 +144,9 @@
|
||||
<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="LblEventChance4.Text" xml:space="preserve">
|
||||
<value>4星活动爆率</value>
|
||||
</data>
|
||||
<data name=">>DTPEndTime.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
@@ -166,25 +169,25 @@
|
||||
<value>34, 28</value>
|
||||
</data>
|
||||
<data name=">>LblSortIdTip.ZOrder" xml:space="preserve">
|
||||
<value>31</value>
|
||||
<value>30</value>
|
||||
</data>
|
||||
<data name="ColUpId.Width" type="System.Int32, mscorlib">
|
||||
<value>65</value>
|
||||
</data>
|
||||
<data name=">>LblGachaTypeTip.ZOrder" xml:space="preserve">
|
||||
<value>24</value>
|
||||
</data>
|
||||
<data name="LblCostItemAmount1.Text" xml:space="preserve">
|
||||
<value>单抽消耗</value>
|
||||
</data>
|
||||
<data name=">>LblSortIdTip.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=">>LnkCheckLatestBanners.Parent" xml:space="preserve">
|
||||
<value>GrpBanners</value>
|
||||
</data>
|
||||
<data name="LblCostItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
</data>
|
||||
<data name=">>NUDEventChance5.Name" xml:space="preserve">
|
||||
<value>NUDEventChance5</value>
|
||||
<data name="GrpBannerValues.Text" xml:space="preserve">
|
||||
<value>卡池参数</value>
|
||||
</data>
|
||||
<data name=">>NUDGachaType.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -222,8 +225,8 @@
|
||||
<data name=">>LblBeginTime.Name" xml:space="preserve">
|
||||
<value>LblBeginTime</value>
|
||||
</data>
|
||||
<data name=">>ColUpName.Name" xml:space="preserve">
|
||||
<value>ColUpName</value>
|
||||
<data name="LnkCheckLatestBanners.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="ListBanners.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>270, 512</value>
|
||||
@@ -246,6 +249,9 @@
|
||||
<data name="LblCostItem.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>LnkCheckLatestBanners.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="ListFallbackItems.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
@@ -343,9 +349,6 @@
|
||||
<data name="GrpBalance.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>294, 504</value>
|
||||
</data>
|
||||
<data name=">>GrpWeights.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="RbCostItem223.Text" xml:space="preserve">
|
||||
<value>纠缠之缘</value>
|
||||
</data>
|
||||
@@ -385,6 +388,9 @@
|
||||
<data name=">>LblBannersJson.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>LnkCheckLatestBanners.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>BtnClear.Name" xml:space="preserve">
|
||||
<value>BtnClear</value>
|
||||
</data>
|
||||
@@ -400,8 +406,11 @@
|
||||
<data name="LblWeight5.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>55, 32</value>
|
||||
</data>
|
||||
<data name="NUDEventChance5.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>63, 23</value>
|
||||
</data>
|
||||
<data name=">>LblScheduleIdTip.ZOrder" xml:space="preserve">
|
||||
<value>29</value>
|
||||
<value>28</value>
|
||||
</data>
|
||||
<data name="ChkRemoveC6FormPool.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@@ -439,8 +448,8 @@
|
||||
<data name="TxtWeight4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>300, 23</value>
|
||||
</data>
|
||||
<data name=">>NUDGachaType.ZOrder" xml:space="preserve">
|
||||
<value>22</value>
|
||||
<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=">>NUDCostItemAmount10.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
@@ -466,6 +475,9 @@
|
||||
<data name=">>ListBanners.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=">>BtnLoad.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="LblCostItemAmount10.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
</data>
|
||||
@@ -559,6 +571,9 @@
|
||||
<data name=">>LblCostItemAmount10.Name" xml:space="preserve">
|
||||
<value>LblCostItemAmount10</value>
|
||||
</data>
|
||||
<data name="BtnSave.Text" xml:space="preserve">
|
||||
<value>保存</value>
|
||||
</data>
|
||||
<data name="LblCostItemAmount1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>15</value>
|
||||
</data>
|
||||
@@ -579,7 +594,7 @@
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblBeginTime.ZOrder" xml:space="preserve">
|
||||
<value>27</value>
|
||||
<value>26</value>
|
||||
</data>
|
||||
<data name=">>NUDSortId.Name" xml:space="preserve">
|
||||
<value>NUDSortId</value>
|
||||
@@ -632,7 +647,7 @@
|
||||
<value>ChartWeights</value>
|
||||
</data>
|
||||
<data name=">>RbCostItem224.ZOrder" xml:space="preserve">
|
||||
<value>33</value>
|
||||
<value>32</value>
|
||||
</data>
|
||||
<data name="GrpUpPool.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>210, 351</value>
|
||||
@@ -653,7 +668,7 @@
|
||||
<value>740, 401</value>
|
||||
</data>
|
||||
<data name=">>FLPBannersControl.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name=">>FLPBannersControl.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -673,6 +688,9 @@
|
||||
<data name="LnkWeightHelp.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>402, 0</value>
|
||||
</data>
|
||||
<data name=">>NUDGachaType.ZOrder" xml:space="preserve">
|
||||
<value>22</value>
|
||||
</data>
|
||||
<data name=">>LblOptions.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
</data>
|
||||
@@ -691,8 +709,8 @@
|
||||
<data name="BtnDelete.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name=">>BtnDelete.Name" xml:space="preserve">
|
||||
<value>BtnDelete</value>
|
||||
<data name="GrpFallbackPool.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>962, 41</value>
|
||||
</data>
|
||||
<data name="LblWeight5.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@@ -718,20 +736,20 @@
|
||||
<data name="LblOptions.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>125, 17</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ 添加或更新</value>
|
||||
</data>
|
||||
<data name="NUDCostItemAmount10.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>110, 23</value>
|
||||
</data>
|
||||
<data name=">>NUDEventChance5.Name" xml:space="preserve">
|
||||
<value>NUDEventChance5</value>
|
||||
</data>
|
||||
<data name="CmbPrefab.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="GrpFallbackPool.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>962, 41</value>
|
||||
<data name=">>GrpWeights.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name=">>ListFallbackItems.Name" xml:space="preserve">
|
||||
<value>ListFallbackItems</value>
|
||||
@@ -761,7 +779,7 @@
|
||||
<value>204, 329</value>
|
||||
</data>
|
||||
<data name=">>LblPrefabPath.ZOrder" xml:space="preserve">
|
||||
<value>35</value>
|
||||
<value>34</value>
|
||||
</data>
|
||||
<data name=">>LblSortIdTip.Name" xml:space="preserve">
|
||||
<value>LblSortIdTip</value>
|
||||
@@ -779,7 +797,7 @@
|
||||
<value>29</value>
|
||||
</data>
|
||||
<data name=">>LblCostItem.ZOrder" xml:space="preserve">
|
||||
<value>34</value>
|
||||
<value>33</value>
|
||||
</data>
|
||||
<data name=">>ColFallbackName.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -796,9 +814,6 @@
|
||||
<data name="ListFallbackItems.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 329</value>
|
||||
</data>
|
||||
<data name=">>LblGachaTypeTip.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
<data name=">>LblSortId.Name" xml:space="preserve">
|
||||
<value>LblSortId</value>
|
||||
</data>
|
||||
@@ -835,25 +850,12 @@
|
||||
<data name="LblTitlePath.Text" xml:space="preserve">
|
||||
<value>封面标题</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=">>LblBannerType.ZOrder" xml:space="preserve">
|
||||
<value>32</value>
|
||||
<value>31</value>
|
||||
</data>
|
||||
<data name="GrpBannerValues.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Right</value>
|
||||
</data>
|
||||
<data name="ListUpItems.Groups1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
|
||||
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
|
||||
AwAAAAo15pif5q2m5ZmoBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
|
||||
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc1Cw==
|
||||
</value>
|
||||
</data>
|
||||
<data name="LblEventChance5.Text" xml:space="preserve">
|
||||
<value>5星活动爆率</value>
|
||||
</data>
|
||||
@@ -873,7 +875,7 @@
|
||||
<value>RbCostItem223</value>
|
||||
</data>
|
||||
<data name=">>LblEndTime.ZOrder" xml:space="preserve">
|
||||
<value>25</value>
|
||||
<value>24</value>
|
||||
</data>
|
||||
<data name=">>BtnDelete.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
@@ -884,8 +886,8 @@
|
||||
<data name="LblEventChance5.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="TxtPoolWeight5.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>112, 29</value>
|
||||
<data name="LnkCheckLatestBanners.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 17</value>
|
||||
</data>
|
||||
<data name="GrpFallbackPool.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>210, 351</value>
|
||||
@@ -921,8 +923,8 @@
|
||||
<data name=">>NUDEventChance4.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
<data name=">>RbCostItem223.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
<data name="BtnClear.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
<data name=">>BtnSave.Name" xml:space="preserve">
|
||||
<value>BtnSave</value>
|
||||
@@ -939,9 +941,6 @@
|
||||
<data name=">>LblWeight4.Name" xml:space="preserve">
|
||||
<value>LblWeight4</value>
|
||||
</data>
|
||||
<data name="LblTitlePath.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="ChkAutoStripRateUpFromFallback.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
@@ -954,8 +953,8 @@
|
||||
<data name="NUDSortId.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>24</value>
|
||||
</data>
|
||||
<data name="LblEventChance4Tip.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
<data name=">>GrpBannerValues.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="GrpBannerValues.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
@@ -976,7 +975,7 @@
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name=">>ListBanners.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>LnkOpenOldEditor.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
@@ -1002,9 +1001,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>33</value>
|
||||
</data>
|
||||
@@ -1044,8 +1040,8 @@
|
||||
<data name="LblWeight4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>55, 61</value>
|
||||
</data>
|
||||
<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 name="LblEventChance4Tip.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="LblPoolWeight4.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@@ -1080,8 +1076,8 @@
|
||||
<data name="LblCostItemAmount1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>50, 175</value>
|
||||
</data>
|
||||
<data name="GrpBanners.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>276, 563</value>
|
||||
<data name="ChkAutoStripRateUpFromFallback.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>151, 21</value>
|
||||
</data>
|
||||
<data name=">>BtnSave.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
@@ -1113,11 +1109,8 @@
|
||||
<data name=">>CmbTitlePath.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
<data name=">>GrpBannerValues.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>NUDScheduleId.ZOrder" xml:space="preserve">
|
||||
<value>28</value>
|
||||
<value>27</value>
|
||||
</data>
|
||||
<data name=">>LblPoolWeight4.Parent" xml:space="preserve">
|
||||
<value>GrpBalance</value>
|
||||
@@ -1125,6 +1118,9 @@
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>加载</value>
|
||||
</data>
|
||||
<data name="LnkCheckLatestBanners.Text" xml:space="preserve">
|
||||
<value>查看最新卡池</value>
|
||||
</data>
|
||||
<data name="NUDSortId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
@@ -1146,6 +1142,9 @@
|
||||
<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>
|
||||
</data>
|
||||
<data name="LnkCheckLatestBanners.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>190, 0</value>
|
||||
</data>
|
||||
<data name=">>LblPoolWeight5.Parent" xml:space="preserve">
|
||||
<value>GrpBalance</value>
|
||||
</data>
|
||||
@@ -1170,8 +1169,8 @@
|
||||
<data name="LblEventChance5Tip.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>28</value>
|
||||
</data>
|
||||
<data name=">>LblCostItemAmount1.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
<data name="LblSortIdTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>218, 233</value>
|
||||
</data>
|
||||
<data name=">>LnkWeightHelp.Name" xml:space="preserve">
|
||||
<value>LnkWeightHelp</value>
|
||||
@@ -1182,6 +1181,9 @@
|
||||
<data name=">>RbCostItem224.Name" xml:space="preserve">
|
||||
<value>RbCostItem224</value>
|
||||
</data>
|
||||
<data name="TxtPoolWeight5.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>112, 29</value>
|
||||
</data>
|
||||
<data name=">>ChkRemoveC6FormPool.Name" xml:space="preserve">
|
||||
<value>ChkRemoveC6FormPool</value>
|
||||
</data>
|
||||
@@ -1239,6 +1241,9 @@
|
||||
<data name="LblBannersJson.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>RbCostItem223.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance4Tip.ZOrder" xml:space="preserve">
|
||||
<value>14</value>
|
||||
</data>
|
||||
@@ -1368,6 +1373,9 @@
|
||||
<data name="GrpUpPool.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Right</value>
|
||||
</data>
|
||||
<data name="LnkCheckLatestBanners.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
</data>
|
||||
@@ -1383,8 +1391,8 @@
|
||||
<data name="LblPoolWeight5.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>218, 28</value>
|
||||
<data name="GrpBalance.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>440, 100</value>
|
||||
</data>
|
||||
<data name="CmbBannerType.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>112, 84</value>
|
||||
@@ -1392,14 +1400,11 @@
|
||||
<data name="LblBannerType.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>50, 87</value>
|
||||
</data>
|
||||
<data name="LblScheduleId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>72, 17</value>
|
||||
</data>
|
||||
<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="LblEventChance4.Text" xml:space="preserve">
|
||||
<value>4星活动爆率</value>
|
||||
<data name=">>LnkWeightHelp.Parent" xml:space="preserve">
|
||||
<value>GrpWeights</value>
|
||||
</data>
|
||||
<data name="LblEventChance4.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@@ -1410,8 +1415,8 @@
|
||||
<data name=">>BtnClear.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="ChkAutoStripRateUpFromFallback.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>151, 21</value>
|
||||
<data name=">>BtnDelete.Name" xml:space="preserve">
|
||||
<value>BtnDelete</value>
|
||||
</data>
|
||||
<data name=">>LnkOpenOldEditor.Name" xml:space="preserve">
|
||||
<value>LnkOpenOldEditor</value>
|
||||
@@ -1425,8 +1430,8 @@
|
||||
<data name=">>RbCostItem224.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=">>BtnLoad.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
<data name="LblScheduleIdTip.Text" xml:space="preserve">
|
||||
<value>ID要求唯一</value>
|
||||
</data>
|
||||
<data name="LblWeight4.Text" xml:space="preserve">
|
||||
<value>4星权重</value>
|
||||
@@ -1467,30 +1472,27 @@
|
||||
<data name="NUDCostItemAmount1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>112, 173</value>
|
||||
</data>
|
||||
<data name="NUDEventChance5.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>63, 23</value>
|
||||
<data name=">>LblCostItemAmount1.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
<data name=">>LnkWeightHelp.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="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>微软雅黑, 9pt</value>
|
||||
<data name=">>LblCostItemAmount1.Name" xml:space="preserve">
|
||||
<value>LblCostItemAmount1</value>
|
||||
</data>
|
||||
<data name="GrpBanners.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 41</value>
|
||||
</data>
|
||||
<data name=">>CmbBannerType.ZOrder" xml:space="preserve">
|
||||
<value>29</value>
|
||||
</data>
|
||||
<data name=">>GrpWeights.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>LblCostItemAmount1.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>LblGachaTypeTip.Name" xml:space="preserve">
|
||||
<value>LblGachaTypeTip</value>
|
||||
</data>
|
||||
<data name=">>LblCostItemAmount1.Name" xml:space="preserve">
|
||||
<value>LblCostItemAmount1</value>
|
||||
</data>
|
||||
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1200, 655</value>
|
||||
</data>
|
||||
@@ -1542,14 +1544,14 @@
|
||||
<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=">>LblPoolWeight4.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>微软雅黑, 9pt</value>
|
||||
</data>
|
||||
<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>
|
||||
<data name=">>ChkAutoStripRateUpFromFallback.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="LblTitlePath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
@@ -1560,8 +1562,8 @@
|
||||
<data name=">>LblCostItemAmount1.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="FLPBannersControl.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>270, 29</value>
|
||||
<data name=">>ColUpName.Name" xml:space="preserve">
|
||||
<value>ColUpName</value>
|
||||
</data>
|
||||
<data name=">>TxtWeight4.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
@@ -1614,9 +1616,6 @@
|
||||
<data name="BtnAddOrUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>150, 23</value>
|
||||
</data>
|
||||
<data name="LblScheduleIdTip.Text" xml:space="preserve">
|
||||
<value>ID要求唯一</value>
|
||||
</data>
|
||||
<data name=">>LblEventChance5.ZOrder" xml:space="preserve">
|
||||
<value>20</value>
|
||||
</data>
|
||||
@@ -1656,14 +1655,11 @@
|
||||
<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="LblGachaTypeTip.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>删除</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
<data name="ListFallbackItems.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="NUDCostItemAmount1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>16</value>
|
||||
@@ -1674,8 +1670,8 @@
|
||||
<data name=">>LblPoolWeight4.Name" xml:space="preserve">
|
||||
<value>LblPoolWeight4</value>
|
||||
</data>
|
||||
<data name=">>ChkAutoStripRateUpFromFallback.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
<data name="FLPBannersControl.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>270, 29</value>
|
||||
</data>
|
||||
<data name="LblPrefabPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
@@ -1704,9 +1700,6 @@
|
||||
<data name="ChkAutoStripRateUpFromFallback.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>34</value>
|
||||
</data>
|
||||
<data name=">>LblGachaTypeTip.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="LblEventChance5Tip.Text" xml:space="preserve">
|
||||
<value>%</value>
|
||||
</data>
|
||||
@@ -1737,14 +1730,14 @@
|
||||
<data name=">>LblBannersJson.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=">>LnkWeightHelp.Parent" xml:space="preserve">
|
||||
<value>GrpWeights</value>
|
||||
<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="LblEventChance4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>221, 262</value>
|
||||
</data>
|
||||
<data name="GrpBalance.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>440, 100</value>
|
||||
<data name="GrpBanners.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>276, 563</value>
|
||||
</data>
|
||||
<data name="LblGachaType.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@@ -1759,7 +1752,7 @@
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name=">>RbCostItem223.ZOrder" xml:space="preserve">
|
||||
<value>36</value>
|
||||
<value>35</value>
|
||||
</data>
|
||||
<data name=">>LblWeight5.Parent" xml:space="preserve">
|
||||
<value>GrpWeights</value>
|
||||
@@ -1800,8 +1793,8 @@
|
||||
<data name="LblEventChance4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 17</value>
|
||||
</data>
|
||||
<data name="LblSortIdTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>218, 233</value>
|
||||
<data name="LblScheduleId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>72, 17</value>
|
||||
</data>
|
||||
<data name="NUDScheduleId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
@@ -1824,8 +1817,8 @@
|
||||
<data name=">>NUDCostItemAmount10.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="BtnClear.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 23</value>
|
||||
<data name=">>LnkCheckLatestBanners.Name" xml:space="preserve">
|
||||
<value>LnkCheckLatestBanners</value>
|
||||
</data>
|
||||
<data name="NUDEventChance4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>63, 23</value>
|
||||
@@ -1834,7 +1827,7 @@
|
||||
<value>CmbPrefab</value>
|
||||
</data>
|
||||
<data name=">>LblScheduleId.ZOrder" xml:space="preserve">
|
||||
<value>26</value>
|
||||
<value>25</value>
|
||||
</data>
|
||||
<data name="GrpBannerValues.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>294, 41</value>
|
||||
@@ -1869,14 +1862,21 @@
|
||||
<data name=">>LblEventChance4Tip.Parent" xml:space="preserve">
|
||||
<value>GrpBannerValues</value>
|
||||
</data>
|
||||
<data name="BtnSave.Text" xml:space="preserve">
|
||||
<value>保存</value>
|
||||
<data name="ListUpItems.Groups1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
|
||||
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
|
||||
AwAAAAo15pif5q2m5ZmoBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
|
||||
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc1Cw==
|
||||
</value>
|
||||
</data>
|
||||
<data name="GrpBannerValues.Text" xml:space="preserve">
|
||||
<value>卡池参数</value>
|
||||
<data name=">>LblPoolWeight4.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=">>CmbBannerType.ZOrder" xml:space="preserve">
|
||||
<value>30</value>
|
||||
<data name="LblTitlePath.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="ListUpItems.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 19</value>
|
||||
|
@@ -217,12 +217,6 @@
|
||||
<data name="LblSortId.Text" xml:space="preserve">
|
||||
<value>Сорт.</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>116, 17</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.Text" xml:space="preserve">
|
||||
<value>Увеличение с 400</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>249, 204</value>
|
||||
</data>
|
||||
@@ -466,6 +460,15 @@
|
||||
<data name="GrpBanners.Text" xml:space="preserve">
|
||||
<value>Banners</value>
|
||||
</data>
|
||||
<data name="LnkCheckLatestBanners.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>73, 0</value>
|
||||
</data>
|
||||
<data name="LnkCheckLatestBanners.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 17</value>
|
||||
</data>
|
||||
<data name="LnkCheckLatestBanners.Text" xml:space="preserve">
|
||||
<value>Проверьте последние баннеры</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>- Удалить</value>
|
||||
</data>
|
||||
|
@@ -144,9 +144,6 @@
|
||||
<data name="LblSortId.Text" xml:space="preserve">
|
||||
<value>順序</value>
|
||||
</data>
|
||||
<data name="LblGachaTypeTip.Text" xml:space="preserve">
|
||||
<value>從400開始,順序遞增</value>
|
||||
</data>
|
||||
<data name="LblEndTime.Text" xml:space="preserve">
|
||||
<value>結束時間</value>
|
||||
</data>
|
||||
@@ -178,9 +175,6 @@
|
||||
<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
|
||||
@@ -231,6 +225,9 @@
|
||||
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
|
||||
@@ -271,9 +268,6 @@
|
||||
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc0Cw==
|
||||
</value>
|
||||
</data>
|
||||
<data name="GrpWeights.Text" xml:space="preserve">
|
||||
<value>卡池權重與保底機制</value>
|
||||
</data>
|
||||
<data name="LnkWeightHelp.Text" xml:space="preserve">
|
||||
<value>幫助</value>
|
||||
</data>
|
||||
@@ -283,8 +277,8 @@
|
||||
<data name="LblWeight5.Text" xml:space="preserve">
|
||||
<value>5星權重</value>
|
||||
</data>
|
||||
<data name="GrpBalance.Text" xml:space="preserve">
|
||||
<value>角色和武器平衡機制(僅混合池有效)</value>
|
||||
<data name="GrpWeights.Text" xml:space="preserve">
|
||||
<value>卡池權重與保底機制</value>
|
||||
</data>
|
||||
<data name="LblPoolWeight4.Text" xml:space="preserve">
|
||||
<value>4星池權重</value>
|
||||
@@ -292,12 +286,12 @@
|
||||
<data name="LblPoolWeight5.Text" xml:space="preserve">
|
||||
<value>5星池權重</value>
|
||||
</data>
|
||||
<data name="GrpBalance.Text" xml:space="preserve">
|
||||
<value>角色和武器平衡機制(僅混合池有效)</value>
|
||||
</data>
|
||||
<data name="BtnDelete.Text" xml:space="preserve">
|
||||
<value>刪除</value>
|
||||
</data>
|
||||
<data name="label1.Text" xml:space="preserve">
|
||||
<value>Banners.json 路徑:</value>
|
||||
</data>
|
||||
<data name="BtnLoad.Text" xml:space="preserve">
|
||||
<value>加載</value>
|
||||
</data>
|
||||
|
174
Source/GrasscutterTools/Forms/FormMain.Designer.cs
generated
@@ -30,30 +30,55 @@ namespace GrasscutterTools.Forms
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
|
||||
this.NavContainer = new System.Windows.Forms.SplitContainer();
|
||||
this.ListPages = new System.Windows.Forms.ListBox();
|
||||
this.TCMain = new System.Windows.Forms.TabControl();
|
||||
this.CmbCommand = new System.Windows.Forms.ComboBox();
|
||||
this.BtnCopy = new System.Windows.Forms.Button();
|
||||
this.ChkAutoCopy = new System.Windows.Forms.CheckBox();
|
||||
this.GrpCommand = new System.Windows.Forms.GroupBox();
|
||||
this.BtnInvokeOpenCommand = new System.Windows.Forms.Button();
|
||||
this.TPRemoteCall = new System.Windows.Forms.TabPage();
|
||||
this.TPAbout = new System.Windows.Forms.TabPage();
|
||||
this.TPManage = new System.Windows.Forms.TabPage();
|
||||
this.TPScene = new System.Windows.Forms.TabPage();
|
||||
this.TPItem = new System.Windows.Forms.TabPage();
|
||||
this.TPWeapon = new System.Windows.Forms.TabPage();
|
||||
this.TPAvatar = new System.Windows.Forms.TabPage();
|
||||
this.TPSpawn = new System.Windows.Forms.TabPage();
|
||||
this.TPQuest = new System.Windows.Forms.TabPage();
|
||||
this.TPArtifact = new System.Windows.Forms.TabPage();
|
||||
this.TPCustom = new System.Windows.Forms.TabPage();
|
||||
this.TPHome = new System.Windows.Forms.TabPage();
|
||||
this.TCMain = new System.Windows.Forms.TabControl();
|
||||
this.TPMail = new System.Windows.Forms.TabPage();
|
||||
this.MenuSpawnEntityFilter = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.NavContainer)).BeginInit();
|
||||
this.NavContainer.Panel1.SuspendLayout();
|
||||
this.NavContainer.Panel2.SuspendLayout();
|
||||
this.NavContainer.SuspendLayout();
|
||||
this.GrpCommand.SuspendLayout();
|
||||
this.TCMain.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NavContainer
|
||||
//
|
||||
resources.ApplyResources(this.NavContainer, "NavContainer");
|
||||
this.NavContainer.Name = "NavContainer";
|
||||
//
|
||||
// NavContainer.Panel1
|
||||
//
|
||||
this.NavContainer.Panel1.Controls.Add(this.ListPages);
|
||||
//
|
||||
// NavContainer.Panel2
|
||||
//
|
||||
this.NavContainer.Panel2.Controls.Add(this.TCMain);
|
||||
//
|
||||
// ListPages
|
||||
//
|
||||
this.ListPages.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.ListPages.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
resources.ApplyResources(this.ListPages, "ListPages");
|
||||
this.ListPages.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
|
||||
this.ListPages.FormattingEnabled = true;
|
||||
this.ListPages.Name = "ListPages";
|
||||
this.ListPages.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.ListPages_DrawItem);
|
||||
this.ListPages.SelectedIndexChanged += new System.EventHandler(this.ListPages_SelectedIndexChanged);
|
||||
this.ListPages.SizeChanged += new System.EventHandler(this.ListPages_SizeChanged);
|
||||
//
|
||||
// TCMain
|
||||
//
|
||||
resources.ApplyResources(this.TCMain, "TCMain");
|
||||
this.TCMain.Multiline = true;
|
||||
this.TCMain.Name = "TCMain";
|
||||
this.TCMain.SelectedIndex = 0;
|
||||
this.TCMain.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
|
||||
//
|
||||
// CmbCommand
|
||||
//
|
||||
resources.ApplyResources(this.CmbCommand, "CmbCommand");
|
||||
@@ -92,103 +117,6 @@ namespace GrasscutterTools.Forms
|
||||
this.BtnInvokeOpenCommand.UseVisualStyleBackColor = true;
|
||||
this.BtnInvokeOpenCommand.Click += new System.EventHandler(this.BtnInvokeOpenCommand_Click);
|
||||
//
|
||||
// TPRemoteCall
|
||||
//
|
||||
resources.ApplyResources(this.TPRemoteCall, "TPRemoteCall");
|
||||
this.TPRemoteCall.Name = "TPRemoteCall";
|
||||
this.TPRemoteCall.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPAbout
|
||||
//
|
||||
resources.ApplyResources(this.TPAbout, "TPAbout");
|
||||
this.TPAbout.Name = "TPAbout";
|
||||
this.TPAbout.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPManage
|
||||
//
|
||||
resources.ApplyResources(this.TPManage, "TPManage");
|
||||
this.TPManage.Name = "TPManage";
|
||||
this.TPManage.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPScene
|
||||
//
|
||||
resources.ApplyResources(this.TPScene, "TPScene");
|
||||
this.TPScene.Name = "TPScene";
|
||||
this.TPScene.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPItem
|
||||
//
|
||||
resources.ApplyResources(this.TPItem, "TPItem");
|
||||
this.TPItem.Name = "TPItem";
|
||||
this.TPItem.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPWeapon
|
||||
//
|
||||
resources.ApplyResources(this.TPWeapon, "TPWeapon");
|
||||
this.TPWeapon.Name = "TPWeapon";
|
||||
this.TPWeapon.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPAvatar
|
||||
//
|
||||
resources.ApplyResources(this.TPAvatar, "TPAvatar");
|
||||
this.TPAvatar.Name = "TPAvatar";
|
||||
this.TPAvatar.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPSpawn
|
||||
//
|
||||
resources.ApplyResources(this.TPSpawn, "TPSpawn");
|
||||
this.TPSpawn.Name = "TPSpawn";
|
||||
this.TPSpawn.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPQuest
|
||||
//
|
||||
resources.ApplyResources(this.TPQuest, "TPQuest");
|
||||
this.TPQuest.Name = "TPQuest";
|
||||
this.TPQuest.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPArtifact
|
||||
//
|
||||
resources.ApplyResources(this.TPArtifact, "TPArtifact");
|
||||
this.TPArtifact.Name = "TPArtifact";
|
||||
this.TPArtifact.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPCustom
|
||||
//
|
||||
resources.ApplyResources(this.TPCustom, "TPCustom");
|
||||
this.TPCustom.Name = "TPCustom";
|
||||
this.TPCustom.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TPHome
|
||||
//
|
||||
resources.ApplyResources(this.TPHome, "TPHome");
|
||||
this.TPHome.Name = "TPHome";
|
||||
this.TPHome.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TCMain
|
||||
//
|
||||
resources.ApplyResources(this.TCMain, "TCMain");
|
||||
this.TCMain.Controls.Add(this.TPHome);
|
||||
this.TCMain.Controls.Add(this.TPRemoteCall);
|
||||
this.TCMain.Controls.Add(this.TPCustom);
|
||||
this.TCMain.Controls.Add(this.TPArtifact);
|
||||
this.TCMain.Controls.Add(this.TPSpawn);
|
||||
this.TCMain.Controls.Add(this.TPItem);
|
||||
this.TCMain.Controls.Add(this.TPAvatar);
|
||||
this.TCMain.Controls.Add(this.TPWeapon);
|
||||
this.TCMain.Controls.Add(this.TPManage);
|
||||
this.TCMain.Controls.Add(this.TPMail);
|
||||
this.TCMain.Controls.Add(this.TPQuest);
|
||||
this.TCMain.Controls.Add(this.TPScene);
|
||||
this.TCMain.Controls.Add(this.TPAbout);
|
||||
this.TCMain.Name = "TCMain";
|
||||
this.TCMain.SelectedIndex = 0;
|
||||
//
|
||||
// TPMail
|
||||
//
|
||||
resources.ApplyResources(this.TPMail, "TPMail");
|
||||
this.TPMail.Name = "TPMail";
|
||||
this.TPMail.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// MenuSpawnEntityFilter
|
||||
//
|
||||
this.MenuSpawnEntityFilter.Name = "MenuSpawnEntityFilter";
|
||||
@@ -198,16 +126,19 @@ namespace GrasscutterTools.Forms
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.TCMain);
|
||||
this.Controls.Add(this.NavContainer);
|
||||
this.Controls.Add(this.GrpCommand);
|
||||
this.KeyPreview = true;
|
||||
this.Name = "FormMain";
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormMain_FormClosed);
|
||||
this.Load += new System.EventHandler(this.FormMain_Load);
|
||||
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.FormMain_KeyDown);
|
||||
this.NavContainer.Panel1.ResumeLayout(false);
|
||||
this.NavContainer.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.NavContainer)).EndInit();
|
||||
this.NavContainer.ResumeLayout(false);
|
||||
this.GrpCommand.ResumeLayout(false);
|
||||
this.GrpCommand.PerformLayout();
|
||||
this.TCMain.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
@@ -219,20 +150,9 @@ namespace GrasscutterTools.Forms
|
||||
private System.Windows.Forms.CheckBox ChkAutoCopy;
|
||||
private System.Windows.Forms.GroupBox GrpCommand;
|
||||
private System.Windows.Forms.Button BtnInvokeOpenCommand;
|
||||
private System.Windows.Forms.TabPage TPRemoteCall;
|
||||
private System.Windows.Forms.TabPage TPAbout;
|
||||
private System.Windows.Forms.TabPage TPManage;
|
||||
private System.Windows.Forms.TabPage TPScene;
|
||||
private System.Windows.Forms.TabPage TPItem;
|
||||
private System.Windows.Forms.TabPage TPWeapon;
|
||||
private System.Windows.Forms.TabPage TPAvatar;
|
||||
private System.Windows.Forms.TabPage TPSpawn;
|
||||
private System.Windows.Forms.TabPage TPQuest;
|
||||
private System.Windows.Forms.TabPage TPArtifact;
|
||||
private System.Windows.Forms.TabPage TPCustom;
|
||||
private System.Windows.Forms.TabPage TPHome;
|
||||
private System.Windows.Forms.TabControl TCMain;
|
||||
private System.Windows.Forms.TabPage TPMail;
|
||||
private System.Windows.Forms.ContextMenuStrip MenuSpawnEntityFilter;
|
||||
private System.Windows.Forms.ListBox ListPages;
|
||||
private System.Windows.Forms.SplitContainer NavContainer;
|
||||
}
|
||||
}
|
||||
|
@@ -44,6 +44,22 @@ namespace GrasscutterTools.Forms
|
||||
|
||||
if (DesignMode) return;
|
||||
|
||||
Common.KeyGo = new KeyGo(Handle);
|
||||
Common.KeyGo.HotKeyTriggerEvent += OnHotKeyTrigger;
|
||||
|
||||
try
|
||||
{
|
||||
if (!Settings.Default.IsUpgraded)
|
||||
{
|
||||
Settings.Default.Upgrade();
|
||||
Settings.Default.IsUpgraded = true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.W(TAG, "Upgrade Settings failed.", ex);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var location = Settings.Default.MainFormLocation;
|
||||
@@ -52,14 +68,21 @@ namespace GrasscutterTools.Forms
|
||||
{
|
||||
StartPosition = FormStartPosition.Manual;
|
||||
Location = location;
|
||||
Logger.I(TAG, "Restore window location: " + Location.ToString());
|
||||
Logger.I(TAG, "Restore window location: " + Location);
|
||||
}
|
||||
|
||||
// 还原窗体大小
|
||||
if (Settings.Default.MainFormSize != default)
|
||||
{
|
||||
Size = Settings.Default.MainFormSize;
|
||||
Logger.I(TAG, "Restore window size: " + Size.ToString());
|
||||
Logger.I(TAG, "Restore window size: " + Size);
|
||||
}
|
||||
|
||||
// 还原导航容器间隔位置
|
||||
if (Settings.Default.NavContainerSplitterDistance >= NavContainer.Panel1MinSize)
|
||||
{
|
||||
NavContainer.SplitterDistance = Settings.Default.NavContainerSplitterDistance;
|
||||
Logger.I(TAG, "Restore NavContainer SplitterDistance: " + NavContainer.SplitterDistance);
|
||||
}
|
||||
|
||||
// 恢复自动复制选项状态
|
||||
@@ -85,25 +108,100 @@ namespace GrasscutterTools.Forms
|
||||
TCMain.SuspendLayout();
|
||||
var ph = CreatePage<PageHome>();
|
||||
ph.OnLanguageChanged = () => FormMain_Load(this, EventArgs.Empty);
|
||||
TPHome.Controls.Add(ph);
|
||||
var poc = CreatePage<PageOpenCommand>();
|
||||
poc.ShowTipInRunButton = msg => ShowTip(msg, BtnInvokeOpenCommand);
|
||||
TPRemoteCall.Controls.Add(poc);
|
||||
TPCustom.Controls.Add(CreatePage<PageCustomCommands>());
|
||||
TPArtifact.Controls.Add(CreatePage<PageGiveArtifact>());
|
||||
TPSpawn.Controls.Add(CreatePage<PageSpawn>());
|
||||
TPItem.Controls.Add(CreatePage<PageGiveItem>());
|
||||
TPAvatar.Controls.Add(CreatePage<PageAvatar>());
|
||||
TPWeapon.Controls.Add(CreatePage<PageGiveWeapon>());
|
||||
TPManage.Controls.Add(CreatePage<PageManagement>());
|
||||
TPMail.Controls.Add(CreatePage<PageMail>());
|
||||
TPQuest.Controls.Add(CreatePage<PageQuest>());
|
||||
TPScene.Controls.Add(CreatePage<PageScene>());
|
||||
TPAbout.Controls.Add(CreatePage<PageAbout>());
|
||||
var pcc = CreatePage<PageCustomCommands>();
|
||||
var phk = CreatePage<PageHotKey>();
|
||||
pcc.OnAddHotKey = tag =>
|
||||
{
|
||||
phk.AddNewHotKey(tag);
|
||||
// 跳转到快捷键界面
|
||||
for (var i = 0; i < TCMain.Controls.Count; i++)
|
||||
{
|
||||
if (TCMain.Controls[i].Controls[0] == phk)
|
||||
{
|
||||
ListPages.SelectedIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
CreatePage<PageGiveArtifact>();
|
||||
CreatePage<PageSetProp>();
|
||||
CreatePage<PageSpawn>();
|
||||
CreatePage<PageGiveItem>();
|
||||
CreatePage<PageAvatar>();
|
||||
CreatePage<PageGiveWeapon>();
|
||||
CreatePage<PageScene>();
|
||||
CreatePage<PageTasks>();
|
||||
CreatePage<PageManagement>();
|
||||
CreatePage<PageMail>();
|
||||
CreatePage<PageQuest>();
|
||||
CreatePage<PageAchievement>();
|
||||
CreatePage<PageAbout>();
|
||||
#if DEBUG
|
||||
CreatePage<PageTools>();
|
||||
#endif
|
||||
TCMain.ResumeLayout();
|
||||
Logger.I(TAG, "InitPages completed");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化页面导航
|
||||
/// </summary>
|
||||
private void InitPagesNav()
|
||||
{
|
||||
ListPages.Items.Clear();
|
||||
ListPages.Items.AddRange(new object[]
|
||||
{
|
||||
Resources.PageHomeTitle,
|
||||
Resources.PageOpenCommandTitle,
|
||||
Resources.PageCustomCommandsTitle,
|
||||
Resources.PageHotKey,
|
||||
Resources.PageGetArtifactTitle,
|
||||
Resources.PageSetPropTitle,
|
||||
Resources.PageSpawnTitle,
|
||||
Resources.PageGiveItemTitle,
|
||||
Resources.PageAvatarTitle,
|
||||
Resources.PageGiveWeaponTitle,
|
||||
Resources.PageSceneTitle,
|
||||
Resources.PageTasksTitle,
|
||||
Resources.PageManagementTitle,
|
||||
Resources.PageMailTitle,
|
||||
Resources.PageQuestTitle,
|
||||
Resources.PageAchievementTitle,
|
||||
Resources.PageAboutTitle,
|
||||
#if DEBUG
|
||||
"Tools",
|
||||
#endif
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导航列表项居中绘制
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ListPages_DrawItem(object sender, DrawItemEventArgs e)
|
||||
{
|
||||
e.DrawBackground();
|
||||
e.DrawFocusRectangle();
|
||||
var strFmt = new StringFormat
|
||||
{
|
||||
Alignment = StringAlignment.Center, //文本垂直居中
|
||||
LineAlignment = StringAlignment.Center //文本水平居中
|
||||
};
|
||||
e.Graphics.DrawString(ListPages.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds, strFmt);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导航列表大小改变时触发
|
||||
/// </summary>
|
||||
private void ListPages_SizeChanged(object sender, EventArgs e)
|
||||
{
|
||||
// 立刻重绘列表项
|
||||
ListPages.Refresh();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建指定类型页面
|
||||
/// </summary>
|
||||
@@ -119,9 +217,17 @@ namespace GrasscutterTools.Forms
|
||||
Dock = DockStyle.Fill,
|
||||
Name = typeof(T).Name,
|
||||
};
|
||||
var tp = new TabPage();
|
||||
TCMain.TabPages.Add(tp);
|
||||
tp.Controls.Add(page);
|
||||
return page;
|
||||
}
|
||||
|
||||
private void ListPages_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
TCMain.SelectedIndex = ListPages.SelectedIndex;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 窗体载入时触发(切换语言时会重新载入)
|
||||
/// </summary>
|
||||
@@ -134,6 +240,9 @@ namespace GrasscutterTools.Forms
|
||||
#endif
|
||||
if (DesignMode) return;
|
||||
|
||||
// 加载页面导航
|
||||
InitPagesNav();
|
||||
|
||||
// 加载游戏ID资源
|
||||
GameData.LoadResources();
|
||||
|
||||
@@ -177,25 +286,51 @@ namespace GrasscutterTools.Forms
|
||||
{
|
||||
// 记录界面状态
|
||||
Settings.Default.AutoCopy = ChkAutoCopy.Checked;
|
||||
// 记录窗口位置
|
||||
if (WindowState == FormWindowState.Normal)
|
||||
Settings.Default.MainFormLocation = Location;
|
||||
// 如果命令窗口已经弹出了,则不要保存多余的高度
|
||||
if (TxtCommandRunLog != null)
|
||||
Settings.Default.MainFormSize = new Size(Width, Height - TxtCommandRunLogMinHeight);
|
||||
else
|
||||
Settings.Default.MainFormSize = Size;
|
||||
|
||||
Settings.Default.MainFormSize = TxtCommandRunLog != null ? new Size(Width, Height - TxtCommandRunLogMinHeight) : Size;
|
||||
// 记录导航容器分隔位置
|
||||
Settings.Default.NavContainerSplitterDistance = NavContainer.SplitterDistance;
|
||||
// 保存设置
|
||||
Settings.Default.Save();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.E(TAG, "Save settings failed.", ex);
|
||||
MessageBox.Show(Resources.SettingSaveError + ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion - 初始化 Init -
|
||||
|
||||
#region - 快捷键执行 HotKey -
|
||||
|
||||
/// <summary>
|
||||
/// 快捷键触发时执行
|
||||
/// </summary>
|
||||
private void OnHotKeyTrigger(object sender, HotKeyTriggerEventArgs e)
|
||||
{
|
||||
BeginInvoke(new Func<Task>(() => RunRawCommands(e.HotKeyItem.Commands)));
|
||||
e.Handle = true;
|
||||
}
|
||||
|
||||
private const int WM_HOTKEY = 0x312;
|
||||
|
||||
protected override void WndProc(ref Message m)
|
||||
{
|
||||
base.WndProc(ref m);
|
||||
switch (m.Msg)
|
||||
{
|
||||
case WM_HOTKEY:
|
||||
Common.KeyGo.ProcessHotKey(m.WParam.ToInt32());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion - 快捷键执行 HotKey -
|
||||
|
||||
#region - 命令 Command -
|
||||
|
||||
/// <summary>
|
||||
@@ -206,10 +341,11 @@ namespace GrasscutterTools.Forms
|
||||
{
|
||||
Logger.I(TAG, $"SetCommand(\"{command}\")");
|
||||
var oldCommand = CmbCommand.Text;
|
||||
CmbCommand.Text = (ModifierKeys == Keys.Shift) ? $"{oldCommand} | {command}" : command;
|
||||
if (ModifierKeys == Keys.Shift && !string.IsNullOrEmpty(oldCommand))
|
||||
command = $"{oldCommand} | {command}";
|
||||
AddCommandToList(command);
|
||||
if (ChkAutoCopy.Checked)
|
||||
CopyCommand();
|
||||
AddCommandToList(command);
|
||||
|
||||
if (ModifierKeys == Keys.Control)
|
||||
{
|
||||
@@ -229,12 +365,12 @@ namespace GrasscutterTools.Forms
|
||||
{
|
||||
if (string.IsNullOrEmpty(command))
|
||||
command = CmbCommand.Text;
|
||||
if (!string.IsNullOrEmpty(command))
|
||||
{
|
||||
if (CmbCommand.Items.Count > 19)
|
||||
CmbCommand.Items.RemoveAt(0);
|
||||
CmbCommand.Items.Add(command);
|
||||
}
|
||||
if (string.IsNullOrEmpty(command))
|
||||
return;
|
||||
if (CmbCommand.Items.Count > 19)
|
||||
CmbCommand.Items.RemoveAt(0);
|
||||
CmbCommand.Items.Add(command);
|
||||
CmbCommand.SelectedIndex = CmbCommand.Items.Count - 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -244,10 +380,9 @@ namespace GrasscutterTools.Forms
|
||||
/// <param name="args">参数</param>
|
||||
private void SetCommand(string command, string args)
|
||||
{
|
||||
if (Settings.Default.IsIncludeUID)
|
||||
SetCommand($"{command} @{Settings.Default.Uid} {args.Trim()}");
|
||||
else
|
||||
SetCommand($"{command} {args.Trim()}");
|
||||
SetCommand(Settings.Default.IsIncludeUID
|
||||
? $"{command} {args.Trim()} @{Settings.Default.Uid}"
|
||||
: $"{command} {args.Trim()}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -296,10 +431,20 @@ namespace GrasscutterTools.Forms
|
||||
ShowTip(Resources.CommandContentCannotBeEmpty, CmbCommand);
|
||||
return;
|
||||
}
|
||||
if (cmd.IndexOf('|') == -1)
|
||||
await RunCommands(FormatCommand(cmd));
|
||||
else
|
||||
await RunCommands(cmd.Split('|').Select(it => FormatCommand(it)).ToArray());
|
||||
|
||||
await RunRawCommands(cmd);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 运行原始命令
|
||||
/// </summary>
|
||||
/// <param name="commands">命令字符串</param>
|
||||
/// <returns>是否执行成功</returns>
|
||||
private async Task<bool> RunRawCommands(string commands)
|
||||
{
|
||||
if (commands.IndexOf('|') == -1)
|
||||
return await RunCommands(FormatCommand(commands));
|
||||
return await RunCommands(commands.Split('|').Select(FormatCommand).ToArray());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -323,7 +468,16 @@ namespace GrasscutterTools.Forms
|
||||
if (Common.OC == null || !Common.OC.CanInvoke)
|
||||
{
|
||||
ShowTip(Resources.RequireOpenCommandTip, BtnInvokeOpenCommand);
|
||||
TCMain.SelectedTab = TPRemoteCall;
|
||||
//TCMain.SelectedTab = TPRemoteCall;
|
||||
for (var i = 0; i < TCMain.Controls.Count; i++)
|
||||
{
|
||||
if (TCMain.Controls[i].Controls[0] is PageOpenCommand)
|
||||
{
|
||||
ListPages.SelectedIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -387,11 +541,11 @@ namespace GrasscutterTools.Forms
|
||||
{
|
||||
if (WindowState == FormWindowState.Maximized)
|
||||
WindowState = FormWindowState.Normal;
|
||||
TCMain.Anchor &= ~AnchorStyles.Bottom;
|
||||
NavContainer.Anchor &= ~AnchorStyles.Bottom;
|
||||
GrpCommand.Anchor |= AnchorStyles.Top;
|
||||
Size = new Size(Width, Height + TxtCommandRunLogMinHeight);
|
||||
MinimumSize = new Size(MinimumSize.Width, MinimumSize.Height + TxtCommandRunLogMinHeight);
|
||||
TCMain.Anchor |= AnchorStyles.Bottom;
|
||||
NavContainer.Anchor |= AnchorStyles.Bottom;
|
||||
GrpCommand.Anchor &= ~AnchorStyles.Top;
|
||||
}
|
||||
|
||||
@@ -402,8 +556,8 @@ namespace GrasscutterTools.Forms
|
||||
Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom,
|
||||
Multiline = true,
|
||||
Font = new Font("Consolas", 9F),
|
||||
Location = new Point(BtnInvokeOpenCommand.Left, BtnInvokeOpenCommand.Bottom + 6),
|
||||
Size = new Size(GrpCommand.Width - BtnInvokeOpenCommand.Left * 2, TxtCommandRunLogMinHeight),
|
||||
Location = new Point(ChkAutoCopy.Left, ChkAutoCopy.Bottom + 6),
|
||||
Size = new Size(GrpCommand.Width - ChkAutoCopy.Left * 2, TxtCommandRunLogMinHeight),
|
||||
ReadOnly = true,
|
||||
BackColor = Color.White,
|
||||
ScrollBars = ScrollBars.Vertical,
|
||||
@@ -426,6 +580,13 @@ namespace GrasscutterTools.Forms
|
||||
// F5 为执行命令
|
||||
OnOpenCommandInvoke();
|
||||
}
|
||||
else if (e.Alt && e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9)
|
||||
{
|
||||
// Alt+数字键 = 跳转到对应页面
|
||||
var i = e.KeyCode == Keys.D0 ? 9 : e.KeyCode - Keys.D1;
|
||||
if (i < ListPages.Items.Count)
|
||||
ListPages.SelectedIndex = i;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -440,6 +601,11 @@ namespace GrasscutterTools.Forms
|
||||
/// <param name="control">控件</param>
|
||||
private void ShowTip(string message, Control control)
|
||||
{
|
||||
if (InvokeRequired)
|
||||
{
|
||||
BeginInvoke(new Action(() => ShowTip(message, control)));
|
||||
return;
|
||||
}
|
||||
TTip.Show(message, control, 0, control.Size.Height, 3000);
|
||||
}
|
||||
|
||||
|
@@ -133,173 +133,8 @@
|
||||
<data name="GrpCommand.Text" xml:space="preserve">
|
||||
<value>Command - [Ctrl] Autorun - [Shift] Append - [Alt] Only run - [|] Split multiple commands</value>
|
||||
</data>
|
||||
<data name="TPRemoteCall.Text" xml:space="preserve">
|
||||
<value>Remote</value>
|
||||
</data>
|
||||
<data name="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>387, 102</value>
|
||||
</data>
|
||||
<data name="LblSupportDescription.Text" xml:space="preserve">
|
||||
<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="TPAbout.Text" xml:space="preserve">
|
||||
<value>About</value>
|
||||
</data>
|
||||
<data name="TPManage.Text" xml:space="preserve">
|
||||
<value>Manage</value>
|
||||
</data>
|
||||
<data name="RbListDungeons.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>255, 7</value>
|
||||
</data>
|
||||
<data name="RbListDungeons.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>85, 21</value>
|
||||
</data>
|
||||
<data name="RbListDungeons.Text" xml:space="preserve">
|
||||
<value>Dungeons</value>
|
||||
</data>
|
||||
<data name="RbListScene.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>183, 7</value>
|
||||
</data>
|
||||
<data name="RbListScene.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>66, 21</value>
|
||||
</data>
|
||||
<data name="RbListScene.Text" xml:space="preserve">
|
||||
<value>Scenes</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>91, 213</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>122, 21</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Text" xml:space="preserve">
|
||||
<value>Include scene Id</value>
|
||||
</data>
|
||||
<data name="LblTpZ.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>219, 184</value>
|
||||
</data>
|
||||
<data name="LblTpY.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>113, 184</value>
|
||||
</data>
|
||||
<data name="BtnTeleport.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 211</value>
|
||||
</data>
|
||||
<data name="BtnTeleport.Text" xml:space="preserve">
|
||||
<value>Teleport</value>
|
||||
</data>
|
||||
<data name="LblTpX.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 184</value>
|
||||
</data>
|
||||
<data name="NUDTpZ.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>239, 182</value>
|
||||
</data>
|
||||
<data name="NUDTpY.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>133, 182</value>
|
||||
</data>
|
||||
<data name="NUDTpX.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>27, 182</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>66, 61</value>
|
||||
</data>
|
||||
<data name="LblClimateType.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 64</value>
|
||||
</data>
|
||||
<data name="LblClimateType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>54, 17</value>
|
||||
</data>
|
||||
<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>
|
||||
<data name="LblSceneDescription.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>287, 55</value>
|
||||
</data>
|
||||
<data name="LblSceneDescription.Text" xml:space="preserve">
|
||||
<value>Scene control</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="TPScene.Text" xml:space="preserve">
|
||||
<value>Scene</value>
|
||||
</data>
|
||||
<data name="TPItem.Text" xml:space="preserve">
|
||||
<value>Items</value>
|
||||
</data>
|
||||
<data name="TPWeapon.Text" xml:space="preserve">
|
||||
<value>Weapons</value>
|
||||
</data>
|
||||
<data name="TPAvatar.Text" xml:space="preserve">
|
||||
<value>Avatar</value>
|
||||
</data>
|
||||
<data name="TPSpawn.Text" xml:space="preserve">
|
||||
<value>Spawn</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterTEST.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>51, 21</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterTEST.Text" xml:space="preserve">
|
||||
<value>Test</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterUNRELEASED.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>93, 21</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterUNRELEASED.Text" xml:space="preserve">
|
||||
<value>Unreleased</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterHIDDEN.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>69, 21</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterHIDDEN.Text" xml:space="preserve">
|
||||
<value>Hidden</value>
|
||||
</data>
|
||||
<data name="GrpQuestFilters.Text" xml:space="preserve">
|
||||
<value>List Filter</value>
|
||||
</data>
|
||||
<data name="BtnFinishQuest.Text" xml:space="preserve">
|
||||
<value>Finish</value>
|
||||
</data>
|
||||
<data name="BtnAddQuest.Text" xml:space="preserve">
|
||||
<value>Add</value>
|
||||
</data>
|
||||
<data name="LblQuestDescription.Text" xml:space="preserve">
|
||||
<value>Add or Finish Quest
|
||||
Tip: Many quest require server-side scripting support
|
||||
Therefore, the quest can be added and finished, but not necessarily work.</value>
|
||||
</data>
|
||||
<data name="TPQuest.Text" xml:space="preserve">
|
||||
<value>Quest</value>
|
||||
</data>
|
||||
<data name="TPArtifact.Text" xml:space="preserve">
|
||||
<value>Artifacts</value>
|
||||
</data>
|
||||
<data name="TPCustom.Text" xml:space="preserve">
|
||||
<value>Custom</value>
|
||||
</data>
|
||||
<data name="TPHome.Text" xml:space="preserve">
|
||||
<value>Home</value>
|
||||
</data>
|
||||
<data name="TPMail.Text" xml:space="preserve">
|
||||
<value>Mail</value>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
</root>
|
@@ -118,17 +118,137 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="NavContainer.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="NavContainer.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 12</value>
|
||||
</data>
|
||||
<data name="ListPages.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="ListPages.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Microsoft YaHei UI, 10pt</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="ListPages.ItemHeight" type="System.Int32, mscorlib">
|
||||
<value>22</value>
|
||||
</data>
|
||||
<data name="ListPages.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="ListPages.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>150, 275</value>
|
||||
</data>
|
||||
<data name="ListPages.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>ListPages.Name" xml:space="preserve">
|
||||
<value>ListPages</value>
|
||||
</data>
|
||||
<data name=">>ListPages.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=">>ListPages.Parent" xml:space="preserve">
|
||||
<value>NavContainer.Panel1</value>
|
||||
</data>
|
||||
<data name=">>ListPages.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Panel1.Name" xml:space="preserve">
|
||||
<value>NavContainer.Panel1</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Panel1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Panel1.Parent" xml:space="preserve">
|
||||
<value>NavContainer</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Panel1.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="NavContainer.Panel1MinSize" type="System.Int32, mscorlib">
|
||||
<value>80</value>
|
||||
</data>
|
||||
<data name="TCMain.Appearance" type="System.Windows.Forms.TabAppearance, System.Windows.Forms">
|
||||
<value>FlatButtons</value>
|
||||
</data>
|
||||
<data name="TCMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="TCMain.ItemSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>0, 1</value>
|
||||
</data>
|
||||
<data name="TCMain.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="TCMain.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>610, 275</value>
|
||||
</data>
|
||||
<data name="TCMain.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>656, 275</value>
|
||||
</data>
|
||||
<data name="TCMain.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>TCMain.Name" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TCMain.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TCMain.Parent" xml:space="preserve">
|
||||
<value>NavContainer.Panel2</value>
|
||||
</data>
|
||||
<data name=">>TCMain.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Panel2.Name" xml:space="preserve">
|
||||
<value>NavContainer.Panel2</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Panel2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Panel2.Parent" xml:space="preserve">
|
||||
<value>NavContainer</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Panel2.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="NavContainer.Panel2MinSize" type="System.Int32, mscorlib">
|
||||
<value>610</value>
|
||||
</data>
|
||||
<data name="NavContainer.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>810, 275</value>
|
||||
</data>
|
||||
<data name="NavContainer.SplitterDistance" type="System.Int32, mscorlib">
|
||||
<value>150</value>
|
||||
</data>
|
||||
<data name="NavContainer.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Name" xml:space="preserve">
|
||||
<value>NavContainer</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>NavContainer.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="CmbCommand.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="CmbCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>87, 21</value>
|
||||
<value>115, 22</value>
|
||||
</data>
|
||||
<data name="CmbCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>450, 25</value>
|
||||
<value>600, 25</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="CmbCommand.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
@@ -144,17 +264,14 @@
|
||||
<data name=">>CmbCommand.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="BtnCopy.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>543, 22</value>
|
||||
<value>59, 22</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 23</value>
|
||||
<value>50, 25</value>
|
||||
</data>
|
||||
<data name="BtnCopy.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@@ -174,9 +291,6 @@
|
||||
<data name=">>BtnCopy.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
@@ -184,7 +298,7 @@
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>599, 24</value>
|
||||
<value>10, 24</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>51, 21</value>
|
||||
@@ -210,14 +324,17 @@
|
||||
<data name="GrpCommand.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 22</value>
|
||||
<value>721, 22</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
<value>75, 25</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@@ -244,7 +361,7 @@
|
||||
<value>610, 56</value>
|
||||
</data>
|
||||
<data name="GrpCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>660, 56</value>
|
||||
<value>810, 56</value>
|
||||
</data>
|
||||
<data name="GrpCommand.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
@@ -264,387 +381,6 @@
|
||||
<data name=">>GrpCommand.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="TPRemoteCall.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPRemoteCall.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPRemoteCall.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPRemoteCall.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name="TPRemoteCall.Text" xml:space="preserve">
|
||||
<value>远程</value>
|
||||
</data>
|
||||
<data name=">>TPRemoteCall.Name" xml:space="preserve">
|
||||
<value>TPRemoteCall</value>
|
||||
</data>
|
||||
<data name=">>TPRemoteCall.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPRemoteCall.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPRemoteCall.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="TPAbout.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPAbout.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPAbout.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPAbout.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="TPAbout.Text" xml:space="preserve">
|
||||
<value>关于</value>
|
||||
</data>
|
||||
<data name=">>TPAbout.Name" xml:space="preserve">
|
||||
<value>TPAbout</value>
|
||||
</data>
|
||||
<data name=">>TPAbout.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPAbout.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPAbout.ZOrder" xml:space="preserve">
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="TPManage.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPManage.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPManage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPManage.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="TPManage.Text" xml:space="preserve">
|
||||
<value>管理</value>
|
||||
</data>
|
||||
<data name=">>TPManage.Name" xml:space="preserve">
|
||||
<value>TPManage</value>
|
||||
</data>
|
||||
<data name=">>TPManage.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPManage.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPManage.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="TPScene.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPScene.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPScene.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPScene.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="TPScene.Text" xml:space="preserve">
|
||||
<value>场景</value>
|
||||
</data>
|
||||
<data name=">>TPScene.Name" xml:space="preserve">
|
||||
<value>TPScene</value>
|
||||
</data>
|
||||
<data name=">>TPScene.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPScene.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPScene.ZOrder" xml:space="preserve">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="TPItem.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPItem.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPItem.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="TPItem.Text" xml:space="preserve">
|
||||
<value>物品</value>
|
||||
</data>
|
||||
<data name=">>TPItem.Name" xml:space="preserve">
|
||||
<value>TPItem</value>
|
||||
</data>
|
||||
<data name=">>TPItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPItem.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPItem.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="TPWeapon.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPWeapon.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>0, 0, 0, 0</value>
|
||||
</data>
|
||||
<data name="TPWeapon.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPWeapon.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPWeapon.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="TPWeapon.Text" xml:space="preserve">
|
||||
<value>武器</value>
|
||||
</data>
|
||||
<data name=">>TPWeapon.Name" xml:space="preserve">
|
||||
<value>TPWeapon</value>
|
||||
</data>
|
||||
<data name=">>TPWeapon.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPWeapon.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPWeapon.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="TPAvatar.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPAvatar.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPAvatar.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPAvatar.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="TPAvatar.Text" xml:space="preserve">
|
||||
<value>角色</value>
|
||||
</data>
|
||||
<data name=">>TPAvatar.Name" xml:space="preserve">
|
||||
<value>TPAvatar</value>
|
||||
</data>
|
||||
<data name=">>TPAvatar.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPAvatar.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPAvatar.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="TPSpawn.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPSpawn.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPSpawn.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPSpawn.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="TPSpawn.Text" xml:space="preserve">
|
||||
<value>生成</value>
|
||||
</data>
|
||||
<data name=">>TPSpawn.Name" xml:space="preserve">
|
||||
<value>TPSpawn</value>
|
||||
</data>
|
||||
<data name=">>TPSpawn.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPSpawn.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPSpawn.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="TPQuest.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPQuest.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPQuest.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPQuest.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name="TPQuest.Text" xml:space="preserve">
|
||||
<value>任务</value>
|
||||
</data>
|
||||
<data name=">>TPQuest.Name" xml:space="preserve">
|
||||
<value>TPQuest</value>
|
||||
</data>
|
||||
<data name=">>TPQuest.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPQuest.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPQuest.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="TPArtifact.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPArtifact.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPArtifact.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPArtifact.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="TPArtifact.Text" xml:space="preserve">
|
||||
<value>圣遗物</value>
|
||||
</data>
|
||||
<data name=">>TPArtifact.Name" xml:space="preserve">
|
||||
<value>TPArtifact</value>
|
||||
</data>
|
||||
<data name=">>TPArtifact.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPArtifact.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPArtifact.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="TPCustom.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPCustom.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPCustom.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPCustom.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="TPCustom.Text" xml:space="preserve">
|
||||
<value>自定义</value>
|
||||
</data>
|
||||
<data name=">>TPCustom.Name" xml:space="preserve">
|
||||
<value>TPCustom</value>
|
||||
</data>
|
||||
<data name=">>TPCustom.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPCustom.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPCustom.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="TPHome.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPHome.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPHome.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPHome.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="TPHome.Text" xml:space="preserve">
|
||||
<value>主页</value>
|
||||
</data>
|
||||
<data name=">>TPHome.Name" xml:space="preserve">
|
||||
<value>TPHome</value>
|
||||
</data>
|
||||
<data name=">>TPHome.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPHome.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPHome.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="TCMain.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="TPMail.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 26</value>
|
||||
</data>
|
||||
<data name="TPMail.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="TPMail.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>652, 245</value>
|
||||
</data>
|
||||
<data name="TPMail.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name="TPMail.Text" xml:space="preserve">
|
||||
<value>邮件</value>
|
||||
</data>
|
||||
<data name=">>TPMail.Name" xml:space="preserve">
|
||||
<value>TPMail</value>
|
||||
</data>
|
||||
<data name=">>TPMail.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TPMail.Parent" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TPMail.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="TCMain.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 12</value>
|
||||
</data>
|
||||
<data name="TCMain.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>610, 275</value>
|
||||
</data>
|
||||
<data name="TCMain.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>660, 275</value>
|
||||
</data>
|
||||
<data name="TCMain.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>TCMain.Name" xml:space="preserve">
|
||||
<value>TCMain</value>
|
||||
</data>
|
||||
<data name=">>TCMain.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TCMain.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>TCMain.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<metadata name="MenuSpawnEntityFilter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
@@ -664,7 +400,7 @@
|
||||
<value>7, 17</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>684, 361</value>
|
||||
<value>834, 361</value>
|
||||
</data>
|
||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Microsoft YaHei UI, 9pt</value>
|
||||
@@ -673,7 +409,7 @@
|
||||
<value>3, 4, 3, 4</value>
|
||||
</data>
|
||||
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>700, 400</value>
|
||||
<value>850, 400</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterScreen</value>
|
||||
|
@@ -119,22 +119,22 @@
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="CmbCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>132, 21</value>
|
||||
<value>155, 21</value>
|
||||
</data>
|
||||
<data name="CmbCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>359, 25</value>
|
||||
<value>523, 25</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>497, 22</value>
|
||||
<value>57, 21</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>92, 23</value>
|
||||
<value>92, 25</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Text" xml:space="preserve">
|
||||
<value>Копировать</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>595, 24</value>
|
||||
<value>6, 24</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 21</value>
|
||||
@@ -142,190 +142,20 @@
|
||||
<data name="ChkAutoCopy.Text" xml:space="preserve">
|
||||
<value>Авто</value>
|
||||
</data>
|
||||
<data name="GrpCommand.Text" xml:space="preserve">
|
||||
<value>Команды - [Ctrl] Запуск и замена - [Shift] Добавить - [Alt] Только запустить - [|] Разделитель</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>684, 21</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>120, 23</value>
|
||||
<value>120, 25</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Text" xml:space="preserve">
|
||||
<value>Выполнить (F5)</value>
|
||||
</data>
|
||||
<data name="GrpCommand.Text" xml:space="preserve">
|
||||
<value>Команды - [Ctrl] Запуск и замена - [Shift] Добавить - [Alt] Только запустить - [|] Разделитель</value>
|
||||
</data>
|
||||
<data name="TPRemoteCall.Text" xml:space="preserve">
|
||||
<value>OpenCommand</value>
|
||||
</data>
|
||||
<data name="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>552, 170</value>
|
||||
</data>
|
||||
<data name="LblSupportDescription.Text" xml:space="preserve">
|
||||
<value>Grasscutter Tools - основной перевод Юрий Дворецкий (с исправлениями от EgorBron)
|
||||
|
||||
Это бесплатный проект с открытым исходным кодом.
|
||||
Если вы считаете, что это полезно для вас,
|
||||
вы можете дать мне звезду на Github.
|
||||
Если возникла проблема с генерацией команды или
|
||||
есть запрос на новую функцию,
|
||||
вы можете написать в Issues на Github.
|
||||
|
||||
Спасибо: Dhar_Jinxed
|
||||
</value>
|
||||
</data>
|
||||
<data name="TPAbout.Text" xml:space="preserve">
|
||||
<value>Справка</value>
|
||||
</data>
|
||||
<data name="TPManage.Text" xml:space="preserve">
|
||||
<value>Аккаунты</value>
|
||||
</data>
|
||||
<data name="RbListDungeons.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>243, 7</value>
|
||||
</data>
|
||||
<data name="RbListDungeons.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 21</value>
|
||||
</data>
|
||||
<data name="RbListDungeons.Text" xml:space="preserve">
|
||||
<value>Подземелья</value>
|
||||
</data>
|
||||
<data name="RbListScene.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>171, 7</value>
|
||||
</data>
|
||||
<data name="RbListScene.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>66, 21</value>
|
||||
</data>
|
||||
<data name="RbListScene.Text" xml:space="preserve">
|
||||
<value>Сцены</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>91, 213</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 21</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Text" xml:space="preserve">
|
||||
<value>Включить идентификатор сцены</value>
|
||||
</data>
|
||||
<data name="LblTpZ.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>219, 184</value>
|
||||
</data>
|
||||
<data name="LblTpY.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>113, 184</value>
|
||||
</data>
|
||||
<data name="BtnTeleport.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 211</value>
|
||||
</data>
|
||||
<data name="BtnTeleport.Text" xml:space="preserve">
|
||||
<value>Телепорт</value>
|
||||
</data>
|
||||
<data name="LblTpX.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 184</value>
|
||||
</data>
|
||||
<data name="NUDTpZ.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>239, 182</value>
|
||||
</data>
|
||||
<data name="NUDTpY.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>133, 182</value>
|
||||
</data>
|
||||
<data name="NUDTpX.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>27, 182</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>66, 61</value>
|
||||
</data>
|
||||
<data name="LblClimateType.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 64</value>
|
||||
</data>
|
||||
<data name="LblClimateType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 17</value>
|
||||
</data>
|
||||
<data name="LblClimateType.Text" xml:space="preserve">
|
||||
<value>Погода</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="LblSceneDescription.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="LblSceneDescription.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>287, 55</value>
|
||||
</data>
|
||||
<data name="LblSceneDescription.Text" xml:space="preserve">
|
||||
<value>Управление сценами.</value>
|
||||
</data>
|
||||
<data name="LblTp.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="LblTp.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Microsoft YaHei UI, 8pt</value>
|
||||
</data>
|
||||
<data name="LblTp.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 84</value>
|
||||
</data>
|
||||
<data name="LblTp.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>337, 100</value>
|
||||
</data>
|
||||
<data name="LblTp.Text" xml:space="preserve">
|
||||
<value>Телепортация
|
||||
Подсказка: вы можете быстро телепортироваться через отметку «рыболовный крючок» на миникарте в игре.
|
||||
В команде вы можете использовать ~, чтобы указать текущую позицию, и ~N, чтобы указать смещение на N относительно текущей позиции</value>
|
||||
</data>
|
||||
<data name="TPScene.Text" xml:space="preserve">
|
||||
<value>Сцена</value>
|
||||
</data>
|
||||
<data name="TPItem.Text" xml:space="preserve">
|
||||
<value>Предметы</value>
|
||||
</data>
|
||||
<data name="TPWeapon.Text" xml:space="preserve">
|
||||
<value>Оружие</value>
|
||||
</data>
|
||||
<data name="TPAvatar.Text" xml:space="preserve">
|
||||
<value>Персонаж</value>
|
||||
</data>
|
||||
<data name="TPSpawn.Text" xml:space="preserve">
|
||||
<value>Спавн</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterTEST.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 21</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterTEST.Text" xml:space="preserve">
|
||||
<value>Тест</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterUNRELEASED.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>102, 21</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterUNRELEASED.Text" xml:space="preserve">
|
||||
<value>Неизданное</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterHIDDEN.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>81, 21</value>
|
||||
</data>
|
||||
<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>
|
||||
<data name="BtnAddQuest.Text" xml:space="preserve">
|
||||
<value>Добавить</value>
|
||||
</data>
|
||||
<data name="LblQuestDescription.Text" xml:space="preserve">
|
||||
<value>Добавить или завершить задание.
|
||||
Внимание: для многих квестов требуются скрипты таковых на стороне сервера.
|
||||
Поэтому квест может быть добавлен или отозван через консоль, но завершён игроком - вряд ли.</value>
|
||||
</data>
|
||||
<data name="TPQuest.Text" xml:space="preserve">
|
||||
<value>Квест</value>
|
||||
</data>
|
||||
<data name="TPArtifact.Text" xml:space="preserve">
|
||||
<value>Артефакт</value>
|
||||
</data>
|
||||
<data name="TPCustom.Text" xml:space="preserve">
|
||||
<value>Кастомное</value>
|
||||
</data>
|
||||
<data name="TPHome.Text" xml:space="preserve">
|
||||
<value>Главная</value>
|
||||
</data>
|
||||
<data name="TPMail.Text" xml:space="preserve">
|
||||
<value>Почта</value>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
</root>
|
@@ -129,89 +129,8 @@
|
||||
<data name="GrpCommand.Text" xml:space="preserve">
|
||||
<value>命令 - [Ctrl] 自動執行 - [Shift] 拼接命令 - [Alt] 僅執行 - [|] 分割多條命令</value>
|
||||
</data>
|
||||
<data name="TPRemoteCall.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="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>334, 102</value>
|
||||
</data>
|
||||
<data name="LblSupportDescription.Text" xml:space="preserve">
|
||||
<value>割草機工具箱
|
||||
|
||||
這是一個免費且開源的項目
|
||||
如果覺得這對你很有幫助,可以為我點一個免費的Star
|
||||
如果願意請我喝一杯奶茶,那就更好了 : )
|
||||
指令生成有問題,或者有新的功能請求,都可以來Github提出</value>
|
||||
</data>
|
||||
<data name="TPAbout.Text" xml:space="preserve">
|
||||
<value>關於</value>
|
||||
</data>
|
||||
<data name="RbListDungeons.Text" xml:space="preserve">
|
||||
<value>祕境</value>
|
||||
</data>
|
||||
<data name="RbListScene.Text" xml:space="preserve">
|
||||
<value>場景</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Text" xml:space="preserve">
|
||||
<value>含場景ID</value>
|
||||
</data>
|
||||
<data name="BtnTeleport.Text" xml:space="preserve">
|
||||
<value>傳送</value>
|
||||
</data>
|
||||
<data name="LblClimateType.Text" xml:space="preserve">
|
||||
<value>設置天氣</value>
|
||||
</data>
|
||||
<data name="LblSceneDescription.Text" xml:space="preserve">
|
||||
<value>場景控制</value>
|
||||
</data>
|
||||
<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="TPScene.Text" xml:space="preserve">
|
||||
<value>場景</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterTEST.Text" xml:space="preserve">
|
||||
<value>測試任務</value>
|
||||
</data>
|
||||
<data name="ChkQuestFilterUNRELEASED.Text" xml:space="preserve">
|
||||
<value>未發佈的任務</value>
|
||||
</data>
|
||||
<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>
|
||||
<data name="BtnAddQuest.Text" xml:space="preserve">
|
||||
<value>添加任務</value>
|
||||
</data>
|
||||
<data name="LblQuestDescription.Text" xml:space="preserve">
|
||||
<value>添加或完成任務
|
||||
提示:許多任務需要服務端腳本支持
|
||||
囙此任務可以接,可以完成,但是不一定可以做</value>
|
||||
</data>
|
||||
<data name="TPQuest.Text" xml:space="preserve">
|
||||
<value>任務</value>
|
||||
</data>
|
||||
<data name="TPArtifact.Text" xml:space="preserve">
|
||||
<value>聖遺物</value>
|
||||
</data>
|
||||
<data name="TPCustom.Text" xml:space="preserve">
|
||||
<value>自定義</value>
|
||||
</data>
|
||||
<data name="TPHome.Text" xml:space="preserve">
|
||||
<value>主頁</value>
|
||||
</data>
|
||||
<data name="TPMail.Text" xml:space="preserve">
|
||||
<value>郵件</value>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
</root>
|
@@ -26,7 +26,7 @@ namespace GrasscutterTools.GOOD
|
||||
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
|
||||
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Artifact.cs
|
||||
/// </summary>
|
||||
public class Artifact
|
||||
internal class Artifact
|
||||
{
|
||||
/// <summary>
|
||||
/// e.g. "GladiatorsFinale"
|
||||
|
@@ -26,7 +26,7 @@ namespace GrasscutterTools.GOOD
|
||||
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
|
||||
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Character.cs
|
||||
/// </summary>
|
||||
public class Character
|
||||
internal class Character
|
||||
{
|
||||
/// <summary>
|
||||
/// e.g. "Rosaria"
|
||||
|
@@ -38,7 +38,7 @@ namespace GrasscutterTools.GOOD
|
||||
/// https://genshin.mingyulab.com/
|
||||
/// https://genshin-center.com/
|
||||
/// </summary>
|
||||
public class GOOD
|
||||
internal class GOOD
|
||||
{
|
||||
[JsonProperty("format")]
|
||||
public string Format { get; set; }
|
||||
|
@@ -26,7 +26,7 @@ using GrasscutterTools.Properties;
|
||||
|
||||
namespace GrasscutterTools.GOOD
|
||||
{
|
||||
public static class GOODData
|
||||
internal static class GOODData
|
||||
{
|
||||
static GOODData()
|
||||
{
|
||||
|
@@ -28,7 +28,7 @@ namespace GrasscutterTools.GOOD
|
||||
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
|
||||
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Weapon.cs
|
||||
/// </summary>
|
||||
public class Weapon
|
||||
internal class Weapon
|
||||
{
|
||||
/// <summary>
|
||||
/// e.g. "CrescentPike"
|
||||
|
65
Source/GrasscutterTools/Game/Activity/ActivityConfigItem.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Activity
|
||||
{
|
||||
internal class ActivityConfigItem
|
||||
{
|
||||
/// <summary>
|
||||
/// 活动ID
|
||||
/// </summary>
|
||||
[JsonProperty("activityId")]
|
||||
public int ActivityId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 活动类型
|
||||
/// </summary>
|
||||
[JsonProperty("activityType")]
|
||||
public int ActivityType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 调度ID
|
||||
/// </summary>
|
||||
[JsonProperty("scheduleId")]
|
||||
public int ScheduleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 满足条件列表
|
||||
/// </summary>
|
||||
[JsonProperty("meetCondList")]
|
||||
public List<int> MeetCondList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 活动开始时间
|
||||
/// </summary>
|
||||
[JsonProperty("beginTime")]
|
||||
public DateTime BeginTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 活动结束时间
|
||||
/// </summary>
|
||||
[JsonProperty("endTime")]
|
||||
public DateTime EndTime { get; set; }
|
||||
}
|
||||
}
|
32
Source/GrasscutterTools/Game/Activity/NewActivityItem.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Activity
|
||||
{
|
||||
internal class NewActivityItem
|
||||
{
|
||||
[JsonProperty("activityId")]
|
||||
public int ActivityId { get; set; }
|
||||
|
||||
[JsonProperty("nameTextMapHash")]
|
||||
public string NameTextMapHash { get; set; }
|
||||
}
|
||||
}
|
@@ -132,11 +132,46 @@ namespace GrasscutterTools.Game
|
||||
/// </summary>
|
||||
public static readonly Version V1_4_3 = new Version(1, 4, 3);
|
||||
|
||||
/// <summary>
|
||||
/// 2023/4/1
|
||||
/// </summary>
|
||||
public static readonly Version V1_4_7 = new Version(1, 4, 7);
|
||||
|
||||
/// <summary>
|
||||
/// 2023/4/1
|
||||
/// </summary>
|
||||
public static readonly Version V1_5_0 = new Version(1, 5, 0);
|
||||
|
||||
/// <summary>
|
||||
/// 2023/6/1
|
||||
/// </summary>
|
||||
public static readonly Version V1_6_0 = new Version(1, 6, 0);
|
||||
|
||||
/// <summary>
|
||||
/// 2023/6/2
|
||||
/// </summary>
|
||||
public static readonly Version V1_6_1 = new Version(1, 6, 1);
|
||||
|
||||
/// <summary>
|
||||
/// 2023/7/1
|
||||
/// </summary>
|
||||
public static readonly Version V1_6_2 = new Version(1, 6, 2);
|
||||
|
||||
/// <summary>
|
||||
/// 2023/8/1
|
||||
/// </summary>
|
||||
public static readonly Version V1_6_3 = new Version(1, 6, 3);
|
||||
|
||||
/// <summary>
|
||||
/// 2023/??
|
||||
/// </summary>
|
||||
public static readonly Version V1_7_0 = new Version(1, 7, 0);
|
||||
|
||||
// More...
|
||||
/// <summary>
|
||||
/// Date
|
||||
/// </summary>
|
||||
//public static readonly Version V1_4_4 = new Version(1, 4, 4);
|
||||
//public static readonly Version V1_6_3 = new Version(1, 6, 3);
|
||||
|
||||
public static Version[] List { get; } = new Version[] {
|
||||
V1_2_1,
|
||||
@@ -148,7 +183,13 @@ namespace GrasscutterTools.Game
|
||||
V1_4_1,
|
||||
V1_4_2,
|
||||
V1_4_3,
|
||||
//V1_4_4,
|
||||
V1_4_7,
|
||||
V1_5_0,
|
||||
V1_6_0,
|
||||
V1_6_1,
|
||||
V1_6_2,
|
||||
V1_6_3,
|
||||
V1_7_0,
|
||||
};
|
||||
|
||||
#endregion - 版本列表 Version List -
|
||||
|
32
Source/GrasscutterTools/Game/CutScene/CutSceneItem.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.CutScene
|
||||
{
|
||||
internal class CutSceneItem
|
||||
{
|
||||
[JsonProperty("id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
[JsonProperty("path")]
|
||||
public string Path { get; set; }
|
||||
}
|
||||
}
|
32
Source/GrasscutterTools/Game/Data/Excels/AchievementData.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data.Excels
|
||||
{
|
||||
[ResourceType("AchievementExcelConfigData.json")]
|
||||
internal class AchievementData : GameResource
|
||||
{
|
||||
[JsonProperty("isDisuse")]
|
||||
public bool IsDisuse { get; set; }
|
||||
|
||||
public bool IsUsed => !IsDisuse;
|
||||
}
|
||||
}
|
33
Source/GrasscutterTools/Game/Data/Excels/AvatarData.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 GrasscutterTools.Game.Props;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
[ResourceType("AvatarExcelConfigData.json")]
|
||||
internal class AvatarData : GameResource
|
||||
{
|
||||
[JsonProperty("qualityType"), JsonConverter(typeof(StringEnumConverter))]
|
||||
public QualityType QualityType { get; set; }
|
||||
}
|
||||
}
|
30
Source/GrasscutterTools/Game/Data/Excels/DungeonData.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data.Excels
|
||||
{
|
||||
[ResourceType("DungeonExcelConfigData.json")]
|
||||
internal class DungeonData : GameResource
|
||||
{
|
||||
[JsonProperty("sceneId")]
|
||||
public int SceneId { get; set; }
|
||||
}
|
||||
}
|
36
Source/GrasscutterTools/Game/Data/Excels/GadgetData.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data.Excels
|
||||
{
|
||||
[ResourceType("GadgetExcelConfigData.json")]
|
||||
internal class GadgetData : GameResource
|
||||
{
|
||||
[JsonProperty("type")]
|
||||
public string Type { get; set; }
|
||||
|
||||
[JsonProperty("jsonName")]
|
||||
public string JsonName { get; set; }
|
||||
|
||||
[JsonProperty("interactNameTextMapHash")]
|
||||
public long InteractNameTextMapHash { get; set; }
|
||||
}
|
||||
}
|
33
Source/GrasscutterTools/Game/Data/Excels/GatherData.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data.Excels
|
||||
{
|
||||
[ResourceType("GatherExcelConfigData.json")]
|
||||
internal class GatherData
|
||||
{
|
||||
[JsonProperty("gadgetId")]
|
||||
public int GadgetId { get; set; }
|
||||
|
||||
[JsonProperty("itemId")]
|
||||
public int ItemId { get; set; }
|
||||
}
|
||||
}
|
33
Source/GrasscutterTools/Game/Data/Excels/HomeWorldBgmData.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data.Excels
|
||||
{
|
||||
[ResourceType("HomeWorldBgmExcelConfigData.json")]
|
||||
internal class HomeWorldBgmData : GameResource
|
||||
{
|
||||
[JsonProperty("homeBgmId")]
|
||||
public override int Id { get; set; }
|
||||
|
||||
[JsonProperty("bgmNameTextMapHash")]
|
||||
public long BgmNameTextMapHash { get; set; }
|
||||
}
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data.Excels
|
||||
{
|
||||
[ResourceType("HomeWorldFurnitureExcelConfigData.json")]
|
||||
internal class HomeWorldFurnitureData : GameResource
|
||||
{
|
||||
[JsonProperty("furnitureGadgetID")]
|
||||
public int[] FurnitureGadgetId { get; set; }
|
||||
}
|
||||
}
|
26
Source/GrasscutterTools/Game/Data/Excels/MainQuestData.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data.Excels
|
||||
{
|
||||
[ResourceType("MainQuestExcelConfigData.json")]
|
||||
internal class MainQuestData : GameResource
|
||||
{
|
||||
}
|
||||
}
|
42
Source/GrasscutterTools/Game/Data/Excels/MaterialData.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 GrasscutterTools.Game.Inventory;
|
||||
using GrasscutterTools.Game.Props;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
[ResourceType("MaterialExcelConfigData.json")]
|
||||
internal class MaterialData : GameResource
|
||||
{
|
||||
[JsonProperty("itemType"), JsonConverter(typeof(StringEnumConverter))]
|
||||
public ItemType ItemType { get; set; }
|
||||
|
||||
[JsonProperty("materialType"), JsonConverter(typeof(StringEnumConverter))]
|
||||
public MaterialType MaterialType { get; set; }
|
||||
|
||||
[JsonProperty("itemUse")]
|
||||
public List<ItemUseData> ItemUse { get; set; }
|
||||
}
|
||||
}
|
35
Source/GrasscutterTools/Game/Data/Excels/MonsterData.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 GrasscutterTools.Game.Props;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
[ResourceType("MonsterExcelConfigData.json")]
|
||||
internal class MonsterData : GameResource
|
||||
{
|
||||
[JsonProperty("monsterName")]
|
||||
public string MonsterName { get; set; }
|
||||
|
||||
[JsonProperty("type")]
|
||||
public MonsterType Type { get; set; }
|
||||
}
|
||||
}
|
36
Source/GrasscutterTools/Game/Data/Excels/QuestData.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data.Excels
|
||||
{
|
||||
[ResourceType("QuestExcelConfigData.json")]
|
||||
internal class QuestData : GameResource
|
||||
{
|
||||
[JsonProperty("subId")]
|
||||
public override int Id { get; set; }
|
||||
|
||||
[JsonProperty("mainId")]
|
||||
public int MainId { get; set; }
|
||||
|
||||
[JsonProperty("order")]
|
||||
public int Order { get; set; }
|
||||
}
|
||||
}
|
26
Source/GrasscutterTools/Game/Data/Excels/ReliquaryData.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data.Excels
|
||||
{
|
||||
[ResourceType("ReliquaryExcelConfigData.json")]
|
||||
internal class ReliquaryData : GameResource
|
||||
{
|
||||
}
|
||||
}
|
35
Source/GrasscutterTools/Game/Data/Excels/SceneData.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 GrasscutterTools.Game.Props;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
[ResourceType("SceneExcelConfigData.json")]
|
||||
internal class SceneData : GameResource
|
||||
{
|
||||
[JsonProperty("type")]
|
||||
public SceneType SceneType { get; set; }
|
||||
|
||||
[JsonProperty("scriptData")]
|
||||
public string ScriptData { get; set; }
|
||||
}
|
||||
}
|
30
Source/GrasscutterTools/Game/Data/Excels/WeaponData.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data.Excels
|
||||
{
|
||||
[ResourceType("WeaponExcelConfigData.json")]
|
||||
internal class WeaponData : GameResource
|
||||
{
|
||||
[JsonProperty("rankLevel")]
|
||||
public int RankLevel { get; set; }
|
||||
}
|
||||
}
|
38
Source/GrasscutterTools/Game/Data/GameResource.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data
|
||||
{
|
||||
internal abstract class GameResource
|
||||
{
|
||||
[JsonProperty("id")]
|
||||
public virtual int Id { get; set; }
|
||||
|
||||
[JsonProperty("nameTextMapHash")]
|
||||
public long NameTextMapHash { get; set; }
|
||||
|
||||
[JsonProperty("titleTextMapHash")]
|
||||
public long TitleTextMapHash { get; set; }
|
||||
|
||||
[JsonProperty("descTextMapHash")]
|
||||
public long DescTextMapHash { get; set; }
|
||||
}
|
||||
}
|
433
Source/GrasscutterTools/Game/Data/GameResources.cs
Normal file
@@ -0,0 +1,433 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
using GrasscutterTools.Game.Data.Excels;
|
||||
using GrasscutterTools.Game.Inventory;
|
||||
using GrasscutterTools.Game.Props;
|
||||
using GrasscutterTools.Utils;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data
|
||||
{
|
||||
internal class GameResources
|
||||
{
|
||||
public Dictionary<int, AchievementData> AchievementData { get; set; }
|
||||
|
||||
public Dictionary<int, AvatarData> AvatarData { get; set; }
|
||||
|
||||
public Dictionary<int, HomeWorldBgmData> HomeWorldBgmData { get; set; }
|
||||
|
||||
public Dictionary<int, DungeonData> DungeonData { get; set; }
|
||||
|
||||
public Dictionary<int, GadgetData> GadgetData { get; set; }
|
||||
|
||||
public List<GatherData> GatherData { get; set; }
|
||||
|
||||
public Dictionary<int, HomeWorldFurnitureData> HomeWorldFurnitureData { get; set; }
|
||||
|
||||
public Dictionary<int, MainQuestData> MainQuestData { get; set; }
|
||||
|
||||
public Dictionary<int, QuestData> QuestData { get; set; }
|
||||
|
||||
public Dictionary<int, MaterialData> MaterialData { get; set; }
|
||||
|
||||
public Dictionary<int, MonsterData> MonsterData { get; set; }
|
||||
|
||||
public Dictionary<int, ReliquaryData> ReliquaryData { get; set; }
|
||||
|
||||
public Dictionary<int, SceneData> SceneData { get; set; }
|
||||
|
||||
public Dictionary<int, WeaponData> WeaponData { get; set; }
|
||||
|
||||
public TextMapData TextMapData { get; set; }
|
||||
|
||||
public GameResources(string resourcesDirPath, TextMapData textMapData)
|
||||
{
|
||||
TextMapData = textMapData;
|
||||
|
||||
var properties = typeof(GameResources).GetProperties();
|
||||
foreach (var property in properties)
|
||||
{
|
||||
var type = property.PropertyType;
|
||||
if (!type.IsGenericType) continue;
|
||||
var genericArguments = type.GetGenericArguments();
|
||||
ResourceTypeAttribute attribute = null;
|
||||
foreach (var it in genericArguments)
|
||||
{
|
||||
var attributes = it.GetCustomAttributes(typeof(ResourceTypeAttribute), true);
|
||||
if (attributes.Length == 0) continue;
|
||||
attribute = (ResourceTypeAttribute)attributes[0];
|
||||
type = it;
|
||||
}
|
||||
if (attribute == null) continue;
|
||||
var dataFile = Path.Combine(resourcesDirPath, "ExcelBinOutput", attribute.Name);
|
||||
var data = LoadDataFile(type, dataFile);
|
||||
property.SetValue(this, data, null);
|
||||
}
|
||||
|
||||
var illegalWeaponIds = new SparseSet(
|
||||
"10000-10008, 11411, 11506-11508, 12505, 12506, 12508, 12509," +
|
||||
"13503, 13506, 14411, 14503, 14508, 15504-15506, 20001");
|
||||
foreach (var id in WeaponData.Keys.Where(id => illegalWeaponIds.Contains(id)).ToList())
|
||||
WeaponData.Remove(id);
|
||||
|
||||
var illegalRelicIds = new SparseSet(
|
||||
"20002, 20004, 23300-24825"
|
||||
);
|
||||
//var illegalRelicIds = new SparseSet(
|
||||
// "20001, 23300-23340, 23383-23385, 78310-78554, 99310-99554"
|
||||
//);
|
||||
foreach (var id in ReliquaryData.Keys.Where(id => illegalRelicIds.Contains(id)).ToList())
|
||||
ReliquaryData.Remove(id);
|
||||
|
||||
var illegalItemIds = new SparseSet(
|
||||
"3004-3008, 3018-3022"
|
||||
);
|
||||
//var illegalItemIds = new SparseSet(
|
||||
// "3004-3008, 3018-3022, 100086, 100087, 100100-101000, 101106-101110, 101306, 101500-104000," +
|
||||
// "105001, 105004, 106000-107000, 107011, 108000, 109000-110000," +
|
||||
// "115000-130000, 200200-200899, 220050, 220054"
|
||||
//);
|
||||
foreach (var id in MaterialData.Keys.Where(id => illegalItemIds.Contains(id)).ToList())
|
||||
MaterialData.Remove(id);
|
||||
|
||||
foreach (var id in AvatarData.Keys.Where(id => id < 10000002 || id >= 11000000).ToList())
|
||||
AvatarData.Remove(id);
|
||||
}
|
||||
|
||||
private static object LoadDataFile(Type type, string path)
|
||||
{
|
||||
var list = (IList)JsonConvert.DeserializeObject(File.ReadAllText(path), typeof(List<>).MakeGenericType(type));
|
||||
if (list == null) return null;
|
||||
|
||||
if (!type.IsSubclassOf(typeof(GameResource))) return list;
|
||||
|
||||
var dicType = typeof(Dictionary<,>).MakeGenericType(typeof(int), type);
|
||||
var dic = (IDictionary)Activator.CreateInstance(dicType);
|
||||
foreach (GameResource gameResource in list)
|
||||
dic.Add(gameResource.Id, gameResource);
|
||||
return dic;
|
||||
}
|
||||
|
||||
private Dictionary<string, string> Languages = new Dictionary<string, string>
|
||||
{
|
||||
["zh-cn"] = "TextMapCHS",
|
||||
["zh-tw"] = "TextMapCHT",
|
||||
["en-us"] = "TextMapEN",
|
||||
["ru-ru"] = "TextMapRU",
|
||||
};
|
||||
|
||||
public void ConvertResources(string projectResourcesDir)
|
||||
{
|
||||
var currentCultureInfo = Thread.CurrentThread.CurrentUICulture;
|
||||
try
|
||||
{
|
||||
var sb = new StringBuilder(MaterialData.Count * 24);
|
||||
foreach (var language in Languages)
|
||||
{
|
||||
var dir = Path.Combine(projectResourcesDir, language.Key);
|
||||
TextMapData.LoadTextMap(TextMapData.TextMapFilePaths[Array.IndexOf(TextMapData.TextMapFiles, language.Value)]);
|
||||
|
||||
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language.Key);
|
||||
GameData.LoadResources();
|
||||
|
||||
#region Achievement
|
||||
|
||||
// Achievement
|
||||
File.WriteAllLines(
|
||||
Path.Combine(dir, "Achievement.txt"),
|
||||
AchievementData.Values.Where(it => it.IsUsed)
|
||||
.Select(it => $"{it.Id}:{TextMapData.GetText(it.TitleTextMapHash.ToString())} - {TextMapData.GetText(it.DescTextMapHash.ToString())}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Achievement
|
||||
|
||||
#region Artifact
|
||||
|
||||
// Artifact
|
||||
File.WriteAllLines(
|
||||
Path.Combine(dir, "Artifact.txt"),
|
||||
ReliquaryData.Values.OrderBy(it => it.Id).Select(it => $"{it.Id}:{TextMapData.GetText(it.NameTextMapHash.ToString())}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Artifact
|
||||
|
||||
#region Avatar
|
||||
|
||||
// Avatar
|
||||
File.WriteAllLines(
|
||||
Path.Combine(dir, "Avatar.txt"),
|
||||
MaterialData.Values
|
||||
.Where(it => it.MaterialType == MaterialType.MATERIAL_AVATAR)
|
||||
.Select(it => $"{it.Id}:{TextMapData.GetText(it.NameTextMapHash.ToString())}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Avatar
|
||||
|
||||
#region Dungeon
|
||||
|
||||
// Dungeon
|
||||
File.WriteAllLines(
|
||||
Path.Combine(dir, "Dungeon.txt"),
|
||||
DungeonData.Values.Select(it => $"{it.Id}:{TextMapData.GetText(it.NameTextMapHash.ToString())}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Dungeon
|
||||
|
||||
#region Gadget
|
||||
|
||||
// Gadget
|
||||
sb.Clear();
|
||||
var gatherMap = new Dictionary<int, int>(GatherData.Count);
|
||||
foreach (var it in GatherData.Where(it => !gatherMap.ContainsKey(it.GadgetId)))
|
||||
gatherMap.Add(it.GadgetId, it.ItemId);
|
||||
var furnitureMap = new Dictionary<int, long>(HomeWorldFurnitureData.Count);
|
||||
foreach (var it in HomeWorldFurnitureData.Values.Where(it => it.FurnitureGadgetId != null))
|
||||
foreach (var gadgetId in it.FurnitureGadgetId.Where(id => id > 0 && !furnitureMap.ContainsKey(id)))
|
||||
furnitureMap.Add(gadgetId, it.NameTextMapHash);
|
||||
var oldFirst = language.Key.StartsWith("zh");
|
||||
foreach (var gadgetTypes in GadgetData.Values.OrderBy(it => it.Id).GroupBy(it => it.Type))
|
||||
{
|
||||
sb.Append("// ").AppendLine(GadgetType.ToTranslatedString(gadgetTypes.Key, language.Key));
|
||||
foreach (var it in gadgetTypes)
|
||||
{
|
||||
var name = oldFirst ? GameData.Gadgets[it.Id] : ItemMap.EmptyName;
|
||||
|
||||
if (name == ItemMap.EmptyName)
|
||||
{
|
||||
if (!TextMapData.TryGetText(it.NameTextMapHash.ToString(), out name)
|
||||
&& !TextMapData.TryGetText(it.InteractNameTextMapHash.ToString(), out name))
|
||||
{
|
||||
if (gatherMap.TryGetValue(it.Id, out var itemId)
|
||||
&& MaterialData.TryGetValue(itemId, out var item))
|
||||
{
|
||||
name = TextMapData.GetText(item.NameTextMapHash.ToString());
|
||||
}
|
||||
else if (furnitureMap.TryGetValue(it.Id, out var hash))
|
||||
{
|
||||
name = TextMapData.GetText(hash.ToString());
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(it.JsonName))
|
||||
{
|
||||
name = it.JsonName;
|
||||
}
|
||||
else if (!oldFirst)
|
||||
{
|
||||
var temp = GameData.Gadgets[it.Id];
|
||||
if (temp != ItemMap.EmptyName)
|
||||
name = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sb.AppendFormat("{0}:{1}", it.Id, name).AppendLine();
|
||||
}
|
||||
sb.AppendLine();
|
||||
}
|
||||
|
||||
// 旧的数据
|
||||
//var old = GameData.Gadgets.AllIds.Where(it => !GadgetData.ContainsKey(it));
|
||||
//if (old.Any())
|
||||
//{
|
||||
// sb.AppendLine("// Old lines");
|
||||
// foreach (var it in old)
|
||||
// sb.AppendFormat("{0}:{1}", it, GameData.Gadgets[it]).AppendLine();
|
||||
//}
|
||||
|
||||
File.WriteAllText(
|
||||
Path.Combine(dir, "Gadget.txt"),
|
||||
sb.ToString(),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Gadget
|
||||
|
||||
#region Item
|
||||
|
||||
// Item
|
||||
sb.Clear();
|
||||
foreach (var itemTypes in MaterialData.Values.GroupBy(it => it.ItemType))
|
||||
{
|
||||
sb.Append("// ").AppendLine(itemTypes.Key.ToTranslatedString(language.Key));
|
||||
if (itemTypes.Key == ItemType.ITEM_MATERIAL)
|
||||
{
|
||||
foreach (var m in itemTypes
|
||||
.GroupBy(it => it.MaterialType)
|
||||
.Where(it => it.Key != MaterialType.MATERIAL_NONE)
|
||||
.OrderBy(it => it.Average(m => m.Id)))
|
||||
{
|
||||
sb.Append("// ").AppendLine(m.Key.ToTranslatedString(language.Key));
|
||||
|
||||
if (m.Key == MaterialType.MATERIAL_BGM)
|
||||
{
|
||||
foreach (var materialData in m)
|
||||
sb.AppendFormat("{0}:{1} - {2}",
|
||||
materialData.Id,
|
||||
TextMapData.GetText(materialData.NameTextMapHash.ToString()),
|
||||
TextMapData.GetText(HomeWorldBgmData[int.Parse(materialData.ItemUse[0].UseParam[0])].BgmNameTextMapHash.ToString())
|
||||
).AppendLine();
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var materialData in m)
|
||||
sb.AppendFormat("{0}:{1}", materialData.Id, TextMapData.GetText(materialData.NameTextMapHash.ToString())).AppendLine();
|
||||
}
|
||||
sb.AppendLine();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var materialData in itemTypes)
|
||||
sb.AppendFormat("{0}:{1}", materialData.Id, TextMapData.GetText(materialData.NameTextMapHash.ToString())).AppendLine();
|
||||
sb.AppendLine();
|
||||
}
|
||||
}
|
||||
|
||||
sb.Append("// ").AppendLine(ItemType.ITEM_FURNITURE.ToTranslatedString(language.Key));
|
||||
foreach (var value in HomeWorldFurnitureData.Values)
|
||||
sb.AppendFormat("{0}:{1}", value.Id, TextMapData.GetText(value.NameTextMapHash.ToString())).AppendLine();
|
||||
|
||||
File.WriteAllText(Path.Combine(dir, "Item.txt"), sb.ToString(), Encoding.UTF8);
|
||||
|
||||
#endregion Item
|
||||
|
||||
#region Monsters
|
||||
|
||||
// Monsters
|
||||
sb.Clear();
|
||||
foreach (var monsterType in MonsterData.Values.OrderBy(it => it.Id)
|
||||
.GroupBy(it => it.Type)
|
||||
.OrderBy(it => it.Key))
|
||||
{
|
||||
sb.Append("// ").AppendLine(monsterType.Key.ToTranslatedString(language.Key));
|
||||
foreach (var monsterData in monsterType)
|
||||
{
|
||||
if (TextMapData.TryGetText(monsterData.NameTextMapHash.ToString(), out var text))
|
||||
{
|
||||
sb.AppendFormat("{0}:{1}", monsterData.Id, text);
|
||||
}
|
||||
else
|
||||
{
|
||||
var name = GameData.Monsters[monsterData.Id];
|
||||
if (name == ItemMap.EmptyName)
|
||||
sb.AppendFormat("{0}:{1} - {2}", monsterData.Id, monsterData.MonsterName, text);
|
||||
else
|
||||
sb.AppendFormat("{0}:{1}", monsterData.Id, name);
|
||||
}
|
||||
sb.AppendLine();
|
||||
}
|
||||
sb.AppendLine();
|
||||
}
|
||||
File.WriteAllText(
|
||||
Path.Combine(dir, "Monsters.txt"),
|
||||
sb.ToString(),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Monsters
|
||||
|
||||
#region Quest
|
||||
|
||||
// Quest
|
||||
sb.Clear();
|
||||
foreach (var it in QuestData.Values.OrderBy(it => it.Id))
|
||||
{
|
||||
var name = GameData.Quests[it.Id];
|
||||
if (name == ItemMap.EmptyName)
|
||||
{
|
||||
sb.AppendFormat("{0}:{1} - {2}",
|
||||
it.Id,
|
||||
TextMapData.GetText(MainQuestData[it.MainId].TitleTextMapHash.ToString()),
|
||||
TextMapData.GetText(it.DescTextMapHash.ToString()));
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendFormat("{0}:{1}", it.Id, name);
|
||||
}
|
||||
sb.AppendLine();
|
||||
}
|
||||
File.WriteAllText(
|
||||
Path.Combine(dir, "Quest.txt"),
|
||||
sb.ToString(),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Quest
|
||||
|
||||
#region Scene
|
||||
|
||||
// Scene
|
||||
sb.Clear();
|
||||
foreach (var it in DungeonData.Values)
|
||||
{
|
||||
var scene = SceneData[it.SceneId];
|
||||
scene.NameTextMapHash = it.NameTextMapHash;
|
||||
}
|
||||
foreach (var it in SceneData.Values.OrderBy(it => it.Id))
|
||||
{
|
||||
if (it.NameTextMapHash == 0 || !TextMapData.TryGetText(it.NameTextMapHash.ToString(), out var name))
|
||||
{
|
||||
name = GameData.Scenes[it.Id];
|
||||
if (name == ItemMap.EmptyName)
|
||||
name = it.ScriptData;
|
||||
}
|
||||
sb.AppendLine($"{it.Id}:{name}");
|
||||
}
|
||||
File.WriteAllText(
|
||||
Path.Combine(dir, "Scene.txt"),
|
||||
sb.ToString(),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Scene
|
||||
|
||||
#region Weapon
|
||||
|
||||
// Weapon
|
||||
File.WriteAllLines(
|
||||
Path.Combine(dir, "Weapon.txt"),
|
||||
WeaponData.Values.Select(it => $"{it.Id}:{TextMapData.GetText(it.NameTextMapHash.ToString())}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Weapon
|
||||
}
|
||||
|
||||
File.WriteAllLines(
|
||||
Path.Combine(projectResourcesDir, "AvatarColor.txt"),
|
||||
AvatarData.Values.Select(it => $"{it.Id % 1000 + 1000}:{(int)it.QualityType}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
File.WriteAllLines(
|
||||
Path.Combine(projectResourcesDir, "WeaponColor.txt"),
|
||||
WeaponData.Values.Select(it => $"{it.Id}:{(it.RankLevel >= 5 ? "yellow" : it.RankLevel >= 4 ? "purple" : "blue")}"),
|
||||
Encoding.UTF8);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Thread.CurrentThread.CurrentUICulture = currentCultureInfo;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
34
Source/GrasscutterTools/Game/Data/ResourceTypeAttribute.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Data
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||
internal class ResourceTypeAttribute : Attribute
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
public ResourceTypeAttribute(string name)
|
||||
{
|
||||
Name = name;
|
||||
}
|
||||
}
|
||||
}
|
32
Source/GrasscutterTools/Game/Dungeon/DungeonItem.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Dungeon
|
||||
{
|
||||
internal class DungeonItem
|
||||
{
|
||||
[JsonProperty("id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
[JsonProperty("nameTextMapHash")]
|
||||
public string NameTextMapHash { get; set; }
|
||||
}
|
||||
}
|
@@ -28,7 +28,7 @@ namespace GrasscutterTools.Game.Gacha
|
||||
/// 使用这个只需替换掉你原来的的data/banner.json文件,
|
||||
/// 然后重启服务器和客户端,即可享受全卡池抽卡,卡池的选择方式是点击左右箭头进行切换
|
||||
/// </summary>
|
||||
public class GachaBanner
|
||||
internal class GachaBanner
|
||||
{
|
||||
/// <summary>
|
||||
/// 添加卡池请从400开始增加id数值进行添加,这个id需要每个池子不一样,
|
||||
|
@@ -25,7 +25,7 @@ namespace GrasscutterTools.Game.Gacha
|
||||
/// <summary>
|
||||
/// https://github.com/Grasscutters/Grasscutter/pull/639
|
||||
/// </summary>
|
||||
public class GachaBanner2
|
||||
internal class GachaBanner2
|
||||
{
|
||||
/// <summary>
|
||||
/// 添加卡池请从400开始增加id数值进行添加,这个id需要每个池子不一样,
|
||||
|
@@ -28,7 +28,7 @@ namespace GrasscutterTools.Game.Gacha
|
||||
/// <summary>
|
||||
/// https://github.com/Grasscutters/Grasscutter/pull/639
|
||||
/// </summary>
|
||||
public class GachaBanner3
|
||||
internal class GachaBanner3
|
||||
{
|
||||
/// <summary>
|
||||
/// 备注
|
||||
@@ -37,8 +37,12 @@ namespace GrasscutterTools.Game.Gacha
|
||||
public string Comment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 添加卡池请从400开始增加id数值进行添加,这个id需要每个池子不一样,
|
||||
/// 如果你想添加大量卡池,请按照每次增加固定数值的id进行添加,比如:411,412,413....
|
||||
/// 卡池类型
|
||||
/// 100 初行祈愿
|
||||
/// 200 常驻祈愿
|
||||
/// 301 角色活动祈愿1
|
||||
/// 302 武器活动祈愿
|
||||
/// 400 角色活动祈愿2
|
||||
/// </summary>
|
||||
[JsonProperty("gachaType")]
|
||||
public int GachaType { get; set; } = 400;
|
||||
@@ -59,7 +63,7 @@ namespace GrasscutterTools.Game.Gacha
|
||||
/// <summary>
|
||||
/// 这个是抽卡的预览背景路径id
|
||||
/// </summary>
|
||||
[JsonProperty("previewPrefabPath")]
|
||||
[JsonProperty("previewPrefabPath"), JsonIgnore]
|
||||
public string PreviewPrefabPath { get; set; } = "UI_Tab_GachaShowPanel_A007";
|
||||
|
||||
/// <summary>
|
||||
|
@@ -22,7 +22,7 @@ using System.Text;
|
||||
|
||||
namespace GrasscutterTools.Game
|
||||
{
|
||||
public class GameCommand
|
||||
internal class GameCommand
|
||||
{
|
||||
public GameCommand(string name, string command)
|
||||
{
|
||||
|
@@ -25,13 +25,16 @@ namespace GrasscutterTools.Game
|
||||
{
|
||||
public static void LoadResources()
|
||||
{
|
||||
Achievements = new ItemMap(Resources.Achievement);
|
||||
Activity = new ItemMapGroup(Resources.Activity);
|
||||
Artifacts = new ItemMap(Resources.Artifact);
|
||||
ArtifactCats = new ItemMap(Resources.ArtifactCat);
|
||||
ArtifactMainAttribution = new ItemMap(Resources.ArtifactMainAttribution);
|
||||
ArtifactSubAttribution = new ItemMap(Resources.ArtifactSubAttribution);
|
||||
Avatars = new ItemMap(Resources.Avatar);
|
||||
AvatarColors = new ItemMap(Resources.AvatarColor);
|
||||
Items = new ItemMap(Resources.Item);
|
||||
CutScenes = new ItemMap(Resources.Cutscene);
|
||||
Items = new ItemMapGroup(Resources.Item);
|
||||
Monsters = new ItemMapGroup(Resources.Monsters);
|
||||
Gadgets = new ItemMapGroup(Resources.Gadget);
|
||||
Scenes = new ItemMap(Resources.Scene);
|
||||
@@ -44,6 +47,10 @@ namespace GrasscutterTools.Game
|
||||
ShopType = new ItemMap(Resources.ShopType);
|
||||
}
|
||||
|
||||
public static ItemMap Achievements { get; private set; }
|
||||
|
||||
public static ItemMapGroup Activity { get; private set; }
|
||||
|
||||
public static ItemMap Artifacts { get; private set; }
|
||||
|
||||
public static ItemMap ArtifactCats { get; private set; }
|
||||
@@ -56,7 +63,9 @@ namespace GrasscutterTools.Game
|
||||
|
||||
public static ItemMap AvatarColors { get; private set; }
|
||||
|
||||
public static ItemMap Items { get; private set; }
|
||||
public static ItemMap CutScenes { get; private set; }
|
||||
|
||||
public static ItemMapGroup Items { get; private set; }
|
||||
|
||||
public static ItemMapGroup Monsters { get; private set; }
|
||||
|
||||
|
48
Source/GrasscutterTools/Game/Inventory/ItemType.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
|
||||
// ReSharper disable InconsistentNaming
|
||||
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace GrasscutterTools.Game.Inventory
|
||||
{
|
||||
internal enum ItemType
|
||||
{
|
||||
ITEM_NONE = 0,
|
||||
ITEM_VIRTUAL = 1,
|
||||
ITEM_MATERIAL = 2,
|
||||
ITEM_RELIQUARY = 3,
|
||||
ITEM_WEAPON = 4,
|
||||
ITEM_DISPLAY = 5,
|
||||
ITEM_FURNITURE = 6,
|
||||
}
|
||||
|
||||
|
||||
internal static class ItemTypeExtension
|
||||
{
|
||||
private static readonly Dictionary<ItemType, string> TextMapCHS = new Dictionary<ItemType, string>
|
||||
{
|
||||
[ItemType.ITEM_NONE] = "未分类",
|
||||
[ItemType.ITEM_VIRTUAL] = "虚拟道具",
|
||||
[ItemType.ITEM_MATERIAL] = "材料",
|
||||
[ItemType.ITEM_RELIQUARY] = "圣遗物",
|
||||
[ItemType.ITEM_WEAPON] = "物品",
|
||||
[ItemType.ITEM_DISPLAY] = "任务",
|
||||
[ItemType.ITEM_FURNITURE] = "尘歌壶摆设",
|
||||
};
|
||||
private static readonly Dictionary<ItemType, string> TextMapEN = new Dictionary<ItemType, string>
|
||||
{
|
||||
[ItemType.ITEM_NONE] = "None",
|
||||
[ItemType.ITEM_VIRTUAL] = "Virtual",
|
||||
[ItemType.ITEM_MATERIAL] = "Material",
|
||||
[ItemType.ITEM_RELIQUARY] = "Reliquary",
|
||||
[ItemType.ITEM_WEAPON] = "Weapon",
|
||||
[ItemType.ITEM_DISPLAY] = "Display",
|
||||
[ItemType.ITEM_FURNITURE] = "Furniture",
|
||||
};
|
||||
|
||||
public static string ToTranslatedString(this ItemType materialType, string language)
|
||||
{
|
||||
return language.StartsWith("zh") ? TextMapCHS[materialType] : TextMapEN[materialType];
|
||||
}
|
||||
}
|
||||
}
|
175
Source/GrasscutterTools/Game/Inventory/MaterialType.cs
Normal file
@@ -0,0 +1,175 @@
|
||||
|
||||
// ReSharper disable InconsistentNaming
|
||||
// ReSharper disable IdentifierTypo
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace GrasscutterTools.Game.Inventory
|
||||
{
|
||||
/// <summary>
|
||||
/// 材料类型
|
||||
/// </summary>
|
||||
internal enum MaterialType
|
||||
{
|
||||
MATERIAL_NONE = 0,
|
||||
MATERIAL_FOOD = 1,
|
||||
MATERIAL_QUEST = 2,
|
||||
MATERIAL_EXCHANGE = 4,
|
||||
MATERIAL_CONSUME = 5,
|
||||
MATERIAL_EXP_FRUIT = 6,
|
||||
MATERIAL_AVATAR = 7,
|
||||
MATERIAL_ADSORBATE = 8,
|
||||
MATERIAL_CRICKET = 9,
|
||||
MATERIAL_ELEM_CRYSTAL = 10,
|
||||
MATERIAL_WEAPON_EXP_STONE = 11,
|
||||
MATERIAL_CHEST = 12,
|
||||
MATERIAL_RELIQUARY_MATERIAL = 13,
|
||||
MATERIAL_AVATAR_MATERIAL = 14,
|
||||
MATERIAL_NOTICE_ADD_HP = 15,
|
||||
MATERIAL_SEA_LAMP = 16,
|
||||
MATERIAL_SELECTABLE_CHEST = 17,
|
||||
MATERIAL_FLYCLOAK = 18,
|
||||
MATERIAL_NAMECARD = 19,
|
||||
MATERIAL_TALENT = 20,
|
||||
MATERIAL_WIDGET = 21,
|
||||
MATERIAL_CHEST_BATCH_USE = 22,
|
||||
MATERIAL_FAKE_ABSORBATE = 23,
|
||||
MATERIAL_CONSUME_BATCH_USE = 24,
|
||||
MATERIAL_WOOD = 25,
|
||||
MATERIAL_FURNITURE_FORMULA = 27,
|
||||
MATERIAL_CHANNELLER_SLAB_BUFF = 28,
|
||||
MATERIAL_FURNITURE_SUITE_FORMULA = 29,
|
||||
MATERIAL_COSTUME = 30,
|
||||
MATERIAL_HOME_SEED = 31,
|
||||
MATERIAL_FISH_BAIT = 32,
|
||||
MATERIAL_FISH_ROD = 33,
|
||||
MATERIAL_SUMO_BUFF = 34, // sumo 活动道具,never appear
|
||||
MATERIAL_FIREWORKS = 35,
|
||||
MATERIAL_BGM = 36,
|
||||
MATERIAL_SPICE_FOOD = 37,
|
||||
MATERIAL_ACTIVITY_ROBOT = 38,
|
||||
MATERIAL_ACTIVITY_GEAR = 39,
|
||||
MATERIAL_ACTIVITY_JIGSAW = 40,
|
||||
MATERIAL_ARANARA = 41,
|
||||
MATERIAL_GCG_CARD = 42,
|
||||
MATERIAL_GCG_CARD_FACE = 43, // 影幻卡面
|
||||
MATERIAL_GCG_CARD_BACK = 44,
|
||||
MATERIAL_GCG_FIELD = 45,
|
||||
MATERIAL_DESHRET_MANUAL = 46,
|
||||
MATERIAL_RENAME_ITEM = 47,
|
||||
MATERIAL_GCG_EXCHANGE_ITEM = 48,
|
||||
MATERIAL_QUEST_EVENT_BOOK = 49,
|
||||
}
|
||||
|
||||
internal static class MaterialTypeExtension
|
||||
{
|
||||
private static readonly Dictionary<MaterialType, string> TextMapCHS = new Dictionary<MaterialType, string>
|
||||
{
|
||||
[MaterialType.MATERIAL_NONE] = "空",
|
||||
[MaterialType.MATERIAL_FOOD] = "食物",
|
||||
[MaterialType.MATERIAL_QUEST] = "任务",
|
||||
[MaterialType.MATERIAL_EXCHANGE] = "收集物",
|
||||
[MaterialType.MATERIAL_CONSUME] = "消耗品",
|
||||
[MaterialType.MATERIAL_EXP_FRUIT] = "经验书",
|
||||
[MaterialType.MATERIAL_AVATAR] = "角色",
|
||||
[MaterialType.MATERIAL_ADSORBATE] = "能量球",
|
||||
[MaterialType.MATERIAL_CRICKET] = "蛐蛐",
|
||||
[MaterialType.MATERIAL_ELEM_CRYSTAL] = "神瞳",
|
||||
[MaterialType.MATERIAL_WEAPON_EXP_STONE] = "武器锻造矿",
|
||||
[MaterialType.MATERIAL_CHEST] = "宝箱",
|
||||
[MaterialType.MATERIAL_RELIQUARY_MATERIAL] = "圣遗物经验瓶",
|
||||
[MaterialType.MATERIAL_AVATAR_MATERIAL] = "角色天赋材料",
|
||||
[MaterialType.MATERIAL_NOTICE_ADD_HP] = "回血食物",
|
||||
[MaterialType.MATERIAL_SEA_LAMP] = "海灯节",
|
||||
[MaterialType.MATERIAL_SELECTABLE_CHEST] = "自选礼包",
|
||||
[MaterialType.MATERIAL_FLYCLOAK] = "风之翼",
|
||||
[MaterialType.MATERIAL_NAMECARD] = "名片卡",
|
||||
[MaterialType.MATERIAL_TALENT] = "天赋材料",
|
||||
[MaterialType.MATERIAL_WIDGET] = "装饰物",
|
||||
[MaterialType.MATERIAL_CHEST_BATCH_USE] = "礼包",
|
||||
[MaterialType.MATERIAL_FAKE_ABSORBATE] = "MATERIAL_FAKE_ABSORBATE",
|
||||
[MaterialType.MATERIAL_CONSUME_BATCH_USE] = "树脂",
|
||||
[MaterialType.MATERIAL_WOOD] = "树木",
|
||||
[MaterialType.MATERIAL_FURNITURE_FORMULA] = "尘歌壶室内摆设",
|
||||
[MaterialType.MATERIAL_CHANNELLER_SLAB_BUFF] = "增益Buff",
|
||||
[MaterialType.MATERIAL_FURNITURE_SUITE_FORMULA] = "尘歌壶摆设套装",
|
||||
[MaterialType.MATERIAL_COSTUME] = "皮肤",
|
||||
[MaterialType.MATERIAL_HOME_SEED] = "种子",
|
||||
[MaterialType.MATERIAL_FISH_BAIT] = "鱼饵",
|
||||
[MaterialType.MATERIAL_FISH_ROD] = "鱼竿",
|
||||
[MaterialType.MATERIAL_SUMO_BUFF] = "MATERIAL_SUMO_BUFF",
|
||||
[MaterialType.MATERIAL_FIREWORKS] = "烟花",
|
||||
[MaterialType.MATERIAL_BGM] = "旋曜玉帛",
|
||||
[MaterialType.MATERIAL_SPICE_FOOD] = "香气四溢的食物",
|
||||
[MaterialType.MATERIAL_ACTIVITY_ROBOT] = "活动-兑换券",
|
||||
[MaterialType.MATERIAL_ACTIVITY_GEAR] = "活动-齿轮",
|
||||
[MaterialType.MATERIAL_ACTIVITY_JIGSAW] = "活动-部件",
|
||||
[MaterialType.MATERIAL_ARANARA] = "兰纳罗",
|
||||
[MaterialType.MATERIAL_GCG_CARD] = "七圣召唤-卡片",
|
||||
[MaterialType.MATERIAL_GCG_CARD_FACE] = "七圣召唤-卡片-正面",
|
||||
[MaterialType.MATERIAL_GCG_CARD_BACK] = "七圣召唤-卡片-背面",
|
||||
[MaterialType.MATERIAL_GCG_FIELD] = "七圣召唤-卡片-场地",
|
||||
[MaterialType.MATERIAL_DESHRET_MANUAL] = "沙漠书",
|
||||
[MaterialType.MATERIAL_RENAME_ITEM] = "改名卡",
|
||||
[MaterialType.MATERIAL_GCG_EXCHANGE_ITEM] = "七圣召唤-特殊卡",
|
||||
[MaterialType.MATERIAL_QUEST_EVENT_BOOK] = "案件记录册",
|
||||
};
|
||||
private static readonly Dictionary<MaterialType, string> TextMapEN = new Dictionary<MaterialType, string>
|
||||
{
|
||||
[MaterialType.MATERIAL_NONE] = "None",
|
||||
[MaterialType.MATERIAL_FOOD] = "Food",
|
||||
[MaterialType.MATERIAL_QUEST] = "Quest",
|
||||
[MaterialType.MATERIAL_EXCHANGE] = "Exchange",
|
||||
[MaterialType.MATERIAL_CONSUME] = "Consume",
|
||||
[MaterialType.MATERIAL_EXP_FRUIT] = "Exp_fruit",
|
||||
[MaterialType.MATERIAL_AVATAR] = "Avatar",
|
||||
[MaterialType.MATERIAL_ADSORBATE] = "Adsorbate",
|
||||
[MaterialType.MATERIAL_CRICKET] = "Cricket",
|
||||
[MaterialType.MATERIAL_ELEM_CRYSTAL] = "Elem_crystal",
|
||||
[MaterialType.MATERIAL_WEAPON_EXP_STONE] = "Weapon_exp_stone",
|
||||
[MaterialType.MATERIAL_CHEST] = "Chest",
|
||||
[MaterialType.MATERIAL_RELIQUARY_MATERIAL] = "Reliquary_material",
|
||||
[MaterialType.MATERIAL_AVATAR_MATERIAL] = "Avatar_material",
|
||||
[MaterialType.MATERIAL_NOTICE_ADD_HP] = "Notice_add_hp",
|
||||
[MaterialType.MATERIAL_SEA_LAMP] = "Sea_lamp",
|
||||
[MaterialType.MATERIAL_SELECTABLE_CHEST] = "Selectable_chest",
|
||||
[MaterialType.MATERIAL_FLYCLOAK] = "Flycloak",
|
||||
[MaterialType.MATERIAL_NAMECARD] = "Namecard",
|
||||
[MaterialType.MATERIAL_TALENT] = "Talent",
|
||||
[MaterialType.MATERIAL_WIDGET] = "Widget",
|
||||
[MaterialType.MATERIAL_CHEST_BATCH_USE] = "Chest_batch_use",
|
||||
[MaterialType.MATERIAL_FAKE_ABSORBATE] = "Fake_absorbate",
|
||||
[MaterialType.MATERIAL_CONSUME_BATCH_USE] = "Consume_batch_use",
|
||||
[MaterialType.MATERIAL_WOOD] = "Wood",
|
||||
[MaterialType.MATERIAL_FURNITURE_FORMULA] = "Furniture_formula",
|
||||
[MaterialType.MATERIAL_CHANNELLER_SLAB_BUFF] = "Channeller_slab_buff",
|
||||
[MaterialType.MATERIAL_FURNITURE_SUITE_FORMULA] = "Furniture_suite_formula",
|
||||
[MaterialType.MATERIAL_COSTUME] = "Costume",
|
||||
[MaterialType.MATERIAL_HOME_SEED] = "Home_seed",
|
||||
[MaterialType.MATERIAL_FISH_BAIT] = "Fish_bait",
|
||||
[MaterialType.MATERIAL_FISH_ROD] = "Fish_rod",
|
||||
[MaterialType.MATERIAL_SUMO_BUFF] = "Sumo_buff",
|
||||
[MaterialType.MATERIAL_FIREWORKS] = "Fireworks",
|
||||
[MaterialType.MATERIAL_BGM] = "Bgm",
|
||||
[MaterialType.MATERIAL_SPICE_FOOD] = "Spice_food",
|
||||
[MaterialType.MATERIAL_ACTIVITY_ROBOT] = "Activity_robot",
|
||||
[MaterialType.MATERIAL_ACTIVITY_GEAR] = "Activity_gear",
|
||||
[MaterialType.MATERIAL_ACTIVITY_JIGSAW] = "Activity_jigsaw",
|
||||
[MaterialType.MATERIAL_ARANARA] = "Aranara",
|
||||
[MaterialType.MATERIAL_GCG_CARD] = "Gcg_card",
|
||||
[MaterialType.MATERIAL_GCG_CARD_FACE] = "Gcg_card_face",
|
||||
[MaterialType.MATERIAL_GCG_CARD_BACK] = "Gcg_card_back",
|
||||
[MaterialType.MATERIAL_GCG_FIELD] = "Gcg_field",
|
||||
[MaterialType.MATERIAL_DESHRET_MANUAL] = "Deshret_manual",
|
||||
[MaterialType.MATERIAL_RENAME_ITEM] = "Rename_item",
|
||||
[MaterialType.MATERIAL_GCG_EXCHANGE_ITEM] = "Gcg_exchange_item",
|
||||
[MaterialType.MATERIAL_QUEST_EVENT_BOOK] = "Quest_event_book",
|
||||
};
|
||||
|
||||
public static string ToTranslatedString(this MaterialType materialType, string language)
|
||||
{
|
||||
return language.StartsWith("zh") ? TextMapCHS[materialType] : TextMapEN[materialType];
|
||||
}
|
||||
}
|
||||
}
|