Compare commits
6 Commits
v0.10.0-M1
...
v0.10.0-M2
Author | SHA1 | Date | |
---|---|---|---|
3e98e551de | |||
5ba7cd74fb | |||
9c7e4864b0 | |||
ca6441e780 | |||
65393c4d7b | |||
c83804ce92 |
BIN
Doc/Screenshots-en/0-Home.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
Doc/Screenshots-en/1-CustomCommands.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
Doc/Screenshots-en/10-GachaBannerEditor.png
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
Doc/Screenshots-en/11-TextMapBrowser.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
Doc/Screenshots-en/2-CustomArtifact.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
Doc/Screenshots-en/3-CustomWeapon.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
Doc/Screenshots-en/4-GiveItem.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
Doc/Screenshots-en/5-GiveAvatar.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
Doc/Screenshots-en/6-SpawnEntity.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
Doc/Screenshots-en/7-ChangeScene.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
Doc/Screenshots-en/8-CustomStats.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
Doc/Screenshots-en/9-Manage.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
Doc/Screenshots/0-Home.png
Normal file
After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 32 KiB |
BIN
Doc/Screenshots/11-TextMapBrowser.png
Normal file
After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 4.7 KiB |
70
README.md
@@ -1,50 +1,46 @@
|
||||
# Grasscutter Tools
|
||||
|
||||
中文 | [EN](README_en-US.md)
|
||||
|
||||
## Commands Generator
|
||||
|
||||
请从 [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases) 中获取最新版本
|
||||
|
||||
## v0.9.0 更新
|
||||
命令@UID随版本重构(指令中指定ID改为`@ uid`,因此与旧版本服务端不兼容,不使用`指令含UID`则不影响)
|
||||
---
|
||||
|
||||
权限管理新增下拉框选择权限(方便选择)
|
||||
## TODO List
|
||||
- [ ] 多语言支持(进度:UI已经支持英语,但还有许多ID映射文件缺失,欢迎补充)
|
||||
- [ ] Animal.txt
|
||||
- [ ] Artifact.txt
|
||||
- [ ] ArtifactCat.txt
|
||||
- [ ] ArtifactMainAttribution.txt
|
||||
- [ ] ArtifactSubAttribution.txt
|
||||
- [x] Avatar.txt
|
||||
- [ ] CustomCommands.txt
|
||||
- [x] Item.txt
|
||||
- [x] Monster.txt
|
||||
- [ ] NPC.txt
|
||||
- [ ] Ornament.txt
|
||||
- [x] Scene.txt
|
||||
- [ ] Weapon.txt
|
||||
- [ ] 远程执行命令(进度:新建文件夹)
|
||||
- [ ] 割草机启动器(无进度)
|
||||
- [ ] 邮件编辑器(无进度)
|
||||
- [ ] 商店编辑器(无进度)
|
||||
|
||||

|
||||
## v0.10.0 未发布
|
||||
- 新增`文本资源浏览器`,可使用**正则**搜索文本映射文件
|
||||

|
||||
- `主页` 页面新增 `语言` 下拉框,可选择简体中文和英语。
|
||||
- `生成` 页面新增 `摆件` ID分类。
|
||||
|
||||
场景页面新增天气设置(呼风唤雨~)
|
||||
|
||||

|
||||
## 软件截图
|
||||
|
||||
## v0.8.0 更新
|
||||
|
||||
圣遗物套装下拉框可键入提示
|
||||
|
||||
`状态` 标签改为 `数据`,设置角色数据模块重构,支持最新版指令。_(部分属性旧版本可能不支持)_
|
||||
|
||||

|
||||
|
||||
`其它` 页面改为 `管理` ,新增帐号创建和删除。
|
||||
|
||||

|
||||
|
||||
## v0.7.0 更新
|
||||
|
||||
物品生成记录本
|
||||
|
||||

|
||||
|
||||
实体生成记录本
|
||||
|
||||

|
||||
|
||||
## v0.6.0 更新
|
||||
|
||||
新增奖池编辑器
|
||||
|
||||

|
||||
|
||||
## Screenshots
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
@@ -62,3 +58,7 @@
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
61
README_en-US.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# Grasscutter Tools
|
||||
|
||||
[中文](README.md) | EN
|
||||
|
||||
## Commands Generator
|
||||
|
||||
Please download the latest version from [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
|
||||
|
||||
---
|
||||
|
||||
## TODO List
|
||||
- [ ] Multi-language support (progress: UI already supports English, but there are still many ID mapping files missing, welcome to add)
|
||||
- [ ] Animal.txt
|
||||
- [ ] Artifact.txt
|
||||
- [ ] ArtifactCat.txt
|
||||
- [ ] ArtifactMainAttribution.txt
|
||||
- [ ] ArtifactSubAttribution.txt
|
||||
- [x] Avatar.txt
|
||||
- [ ] CustomCommands.txt
|
||||
- [x] Item.txt
|
||||
- [x] Monster.txt
|
||||
- [ ] NPC.txt
|
||||
- [ ] Ornament.txt
|
||||
- [x] Scene.txt
|
||||
- [ ] Weapon.txt
|
||||
- [ ] Execute command remotely (progress: new folder)
|
||||
- [ ] Grasscutter Launcher (no progress)
|
||||
- [ ] Mail Editor (no progress)
|
||||
- [ ] Shop Editor (no progress)
|
||||
|
||||
## v0.10.0 Unpublished
|
||||
Added `Text Map Browser`, you can use **regular** search text mapping files
|
||||

|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
@@ -19,6 +19,12 @@
|
||||
<setting name="DefaultLanguage" serializeAs="String">
|
||||
<value>zh-CN</value>
|
||||
</setting>
|
||||
<setting name="ResourcesDirPath" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="TextMapFileName" serializeAs="String">
|
||||
<value>TextMapCHS</value>
|
||||
</setting>
|
||||
</GrasscutterTools.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
|
@@ -229,6 +229,15 @@
|
||||
<data name="LblBasePurpleWeight.Text" xml:space="preserve">
|
||||
<value>4 star weight</value>
|
||||
</data>
|
||||
<data name="CmbBannerType.Items" xml:space="preserve">
|
||||
<value>Standard Wish</value>
|
||||
</data>
|
||||
<data name="CmbBannerType.Items1" xml:space="preserve">
|
||||
<value>Character Event Wish</value>
|
||||
</data>
|
||||
<data name="CmbBannerType.Items2" xml:space="preserve">
|
||||
<value>Weapon Event Wish</value>
|
||||
</data>
|
||||
<data name="LblSortIdTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>76, 17</value>
|
||||
</data>
|
54
Source/GrasscutterTools/FormMain.Designer.cs
generated
@@ -36,6 +36,7 @@ namespace GrasscutterTools
|
||||
this.GrpCommand = new System.Windows.Forms.GroupBox();
|
||||
this.TCMain = new System.Windows.Forms.TabControl();
|
||||
this.TPHome = new System.Windows.Forms.TabPage();
|
||||
this.BtnOpenTextMap = new System.Windows.Forms.Button();
|
||||
this.BtnOpenGachaBannerEditor = new System.Windows.Forms.Button();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.GrpSettings = new System.Windows.Forms.GroupBox();
|
||||
@@ -258,14 +259,22 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPHome
|
||||
//
|
||||
resources.ApplyResources(this.TPHome, "TPHome");
|
||||
this.TPHome.Controls.Add(this.BtnOpenTextMap);
|
||||
this.TPHome.Controls.Add(this.BtnOpenGachaBannerEditor);
|
||||
this.TPHome.Controls.Add(this.pictureBox1);
|
||||
this.TPHome.Controls.Add(this.GrpSettings);
|
||||
this.TPHome.Controls.Add(this.LblAbout);
|
||||
resources.ApplyResources(this.TPHome, "TPHome");
|
||||
this.TPHome.Name = "TPHome";
|
||||
this.TPHome.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BtnOpenTextMap
|
||||
//
|
||||
resources.ApplyResources(this.BtnOpenTextMap, "BtnOpenTextMap");
|
||||
this.BtnOpenTextMap.Name = "BtnOpenTextMap";
|
||||
this.BtnOpenTextMap.UseVisualStyleBackColor = true;
|
||||
this.BtnOpenTextMap.Click += new System.EventHandler(this.BtnOpenTextMap_Click);
|
||||
//
|
||||
// BtnOpenGachaBannerEditor
|
||||
//
|
||||
resources.ApplyResources(this.BtnOpenGachaBannerEditor, "BtnOpenGachaBannerEditor");
|
||||
@@ -293,9 +302,9 @@ namespace GrasscutterTools
|
||||
//
|
||||
// CmbLanguage
|
||||
//
|
||||
resources.ApplyResources(this.CmbLanguage, "CmbLanguage");
|
||||
this.CmbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.CmbLanguage.FormattingEnabled = true;
|
||||
resources.ApplyResources(this.CmbLanguage, "CmbLanguage");
|
||||
this.CmbLanguage.Name = "CmbLanguage";
|
||||
this.CmbLanguage.SelectedIndexChanged += new System.EventHandler(this.CmbLanguage_SelectedIndexChanged);
|
||||
//
|
||||
@@ -337,6 +346,7 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPCustom
|
||||
//
|
||||
resources.ApplyResources(this.TPCustom, "TPCustom");
|
||||
this.TPCustom.Controls.Add(this.BtnExportCustomCommands);
|
||||
this.TPCustom.Controls.Add(this.BtnLoadCustomCommands);
|
||||
this.TPCustom.Controls.Add(this.LblCustomName);
|
||||
@@ -344,7 +354,6 @@ namespace GrasscutterTools
|
||||
this.TPCustom.Controls.Add(this.BtnRemoveCustomCommand);
|
||||
this.TPCustom.Controls.Add(this.BtnSaveCustomCommand);
|
||||
this.TPCustom.Controls.Add(this.TxtCustomName);
|
||||
resources.ApplyResources(this.TPCustom, "TPCustom");
|
||||
this.TPCustom.Name = "TPCustom";
|
||||
this.TPCustom.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@@ -400,6 +409,7 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPArtifact
|
||||
//
|
||||
resources.ApplyResources(this.TPArtifact, "TPArtifact");
|
||||
this.TPArtifact.Controls.Add(this.LblArtifactName);
|
||||
this.TPArtifact.Controls.Add(this.NUDArtifactStars);
|
||||
this.TPArtifact.Controls.Add(this.LblArtifactStars);
|
||||
@@ -419,7 +429,6 @@ namespace GrasscutterTools
|
||||
this.TPArtifact.Controls.Add(this.LblSubAttribution);
|
||||
this.TPArtifact.Controls.Add(this.CmbMainAttribution);
|
||||
this.TPArtifact.Controls.Add(this.LblMainAttribution);
|
||||
resources.ApplyResources(this.TPArtifact, "TPArtifact");
|
||||
this.TPArtifact.Name = "TPArtifact";
|
||||
this.TPArtifact.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@@ -591,6 +600,7 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPWeapon
|
||||
//
|
||||
resources.ApplyResources(this.TPWeapon, "TPWeapon");
|
||||
this.TPWeapon.Controls.Add(this.TxtWeaponFilter);
|
||||
this.TPWeapon.Controls.Add(this.LblWeaponDescription);
|
||||
this.TPWeapon.Controls.Add(this.LblWeaponRefinement);
|
||||
@@ -600,7 +610,6 @@ namespace GrasscutterTools
|
||||
this.TPWeapon.Controls.Add(this.NUDWeaponAmout);
|
||||
this.TPWeapon.Controls.Add(this.NUDWeaponLevel);
|
||||
this.TPWeapon.Controls.Add(this.ListWeapons);
|
||||
resources.ApplyResources(this.TPWeapon, "TPWeapon");
|
||||
this.TPWeapon.Name = "TPWeapon";
|
||||
this.TPWeapon.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@@ -697,6 +706,7 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPItem
|
||||
//
|
||||
resources.ApplyResources(this.TPItem, "TPItem");
|
||||
this.TPItem.Controls.Add(this.BtnSaveGiveItemLog);
|
||||
this.TPItem.Controls.Add(this.BtnRemoveGiveItemLog);
|
||||
this.TPItem.Controls.Add(this.GrpGiveItemRecord);
|
||||
@@ -708,7 +718,6 @@ namespace GrasscutterTools
|
||||
this.TPItem.Controls.Add(this.NUDGameItemAmout);
|
||||
this.TPItem.Controls.Add(this.NUDGameItemLevel);
|
||||
this.TPItem.Controls.Add(this.LblGiveCommandDescription);
|
||||
resources.ApplyResources(this.TPItem, "TPItem");
|
||||
this.TPItem.Name = "TPItem";
|
||||
this.TPItem.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@@ -819,13 +828,13 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPAvatar
|
||||
//
|
||||
resources.ApplyResources(this.TPAvatar, "TPAvatar");
|
||||
this.TPAvatar.Controls.Add(this.LblAvatarGenWarning);
|
||||
this.TPAvatar.Controls.Add(this.ImgAvatar);
|
||||
this.TPAvatar.Controls.Add(this.LblAvatar);
|
||||
this.TPAvatar.Controls.Add(this.LblLevel);
|
||||
this.TPAvatar.Controls.Add(this.NUDAvatarLevel);
|
||||
this.TPAvatar.Controls.Add(this.CmbAvatar);
|
||||
resources.ApplyResources(this.TPAvatar, "TPAvatar");
|
||||
this.TPAvatar.Name = "TPAvatar";
|
||||
this.TPAvatar.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@@ -838,7 +847,7 @@ namespace GrasscutterTools
|
||||
// ImgAvatar
|
||||
//
|
||||
resources.ApplyResources(this.ImgAvatar, "ImgAvatar");
|
||||
this.ImgAvatar.Image = global::GrasscutterTools.Properties.Resources.ImgIconGrasscutter;
|
||||
this.ImgAvatar.Image = global::GrasscutterTools.Properties.Resources.ImgHome;
|
||||
this.ImgAvatar.Name = "ImgAvatar";
|
||||
this.ImgAvatar.TabStop = false;
|
||||
//
|
||||
@@ -883,6 +892,7 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPSpawn
|
||||
//
|
||||
resources.ApplyResources(this.TPSpawn, "TPSpawn");
|
||||
this.TPSpawn.Controls.Add(this.BtnSaveSpawnLog);
|
||||
this.TPSpawn.Controls.Add(this.BtnRemoveSpawnLog);
|
||||
this.TPSpawn.Controls.Add(this.GrpSpawnRecord);
|
||||
@@ -894,7 +904,6 @@ namespace GrasscutterTools
|
||||
this.TPSpawn.Controls.Add(this.NUDEntityLevel);
|
||||
this.TPSpawn.Controls.Add(this.TxtEntityFilter);
|
||||
this.TPSpawn.Controls.Add(this.ListEntity);
|
||||
resources.ApplyResources(this.TPSpawn, "TPSpawn");
|
||||
this.TPSpawn.Name = "TPSpawn";
|
||||
this.TPSpawn.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@@ -1037,27 +1046,19 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPScene
|
||||
//
|
||||
resources.ApplyResources(this.TPScene, "TPScene");
|
||||
this.TPScene.Controls.Add(this.CmbClimateType);
|
||||
this.TPScene.Controls.Add(this.LblClimateType);
|
||||
this.TPScene.Controls.Add(this.LblSceneDescription);
|
||||
this.TPScene.Controls.Add(this.ListScenes);
|
||||
resources.ApplyResources(this.TPScene, "TPScene");
|
||||
this.TPScene.Name = "TPScene";
|
||||
this.TPScene.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// CmbClimateType
|
||||
//
|
||||
resources.ApplyResources(this.CmbClimateType, "CmbClimateType");
|
||||
this.CmbClimateType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.CmbClimateType.FormattingEnabled = true;
|
||||
this.CmbClimateType.Items.AddRange(new object[] {
|
||||
resources.GetString("CmbClimateType.Items"),
|
||||
resources.GetString("CmbClimateType.Items1"),
|
||||
resources.GetString("CmbClimateType.Items2"),
|
||||
resources.GetString("CmbClimateType.Items3"),
|
||||
resources.GetString("CmbClimateType.Items4"),
|
||||
resources.GetString("CmbClimateType.Items5"),
|
||||
resources.GetString("CmbClimateType.Items6")});
|
||||
resources.ApplyResources(this.CmbClimateType, "CmbClimateType");
|
||||
this.CmbClimateType.Name = "CmbClimateType";
|
||||
this.CmbClimateType.SelectedIndexChanged += new System.EventHandler(this.CmbClimateType_SelectedIndexChanged);
|
||||
//
|
||||
@@ -1080,10 +1081,10 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPStats
|
||||
//
|
||||
resources.ApplyResources(this.TPStats, "TPStats");
|
||||
this.TPStats.Controls.Add(this.GrpSetStats);
|
||||
this.TPStats.Controls.Add(this.GrpTalentLevel);
|
||||
this.TPStats.Controls.Add(this.LblStatsDescription);
|
||||
resources.ApplyResources(this.TPStats, "TPStats");
|
||||
this.TPStats.Name = "TPStats";
|
||||
this.TPStats.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@@ -1126,9 +1127,9 @@ namespace GrasscutterTools
|
||||
//
|
||||
// CmbStat
|
||||
//
|
||||
resources.ApplyResources(this.CmbStat, "CmbStat");
|
||||
this.CmbStat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.CmbStat.FormattingEnabled = true;
|
||||
resources.ApplyResources(this.CmbStat, "CmbStat");
|
||||
this.CmbStat.Name = "CmbStat";
|
||||
this.CmbStat.SelectedIndexChanged += new System.EventHandler(this.SetStatsInputChanged);
|
||||
//
|
||||
@@ -1188,9 +1189,9 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPManage
|
||||
//
|
||||
resources.ApplyResources(this.TPManage, "TPManage");
|
||||
this.TPManage.Controls.Add(this.GrpAccount);
|
||||
this.TPManage.Controls.Add(this.GrpPermission);
|
||||
resources.ApplyResources(this.TPManage, "TPManage");
|
||||
this.TPManage.Name = "TPManage";
|
||||
this.TPManage.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@@ -1267,10 +1268,10 @@ namespace GrasscutterTools
|
||||
//
|
||||
// CmbPerm
|
||||
//
|
||||
resources.ApplyResources(this.CmbPerm, "CmbPerm");
|
||||
this.CmbPerm.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
|
||||
this.CmbPerm.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
|
||||
this.CmbPerm.FormattingEnabled = true;
|
||||
resources.ApplyResources(this.CmbPerm, "CmbPerm");
|
||||
this.CmbPerm.Name = "CmbPerm";
|
||||
//
|
||||
// NUDPermUID
|
||||
@@ -1316,10 +1317,10 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPAbout
|
||||
//
|
||||
resources.ApplyResources(this.TPAbout, "TPAbout");
|
||||
this.TPAbout.Controls.Add(this.pictureBox2);
|
||||
this.TPAbout.Controls.Add(this.LnkGithub);
|
||||
this.TPAbout.Controls.Add(this.LblSupportDescription);
|
||||
resources.ApplyResources(this.TPAbout, "TPAbout");
|
||||
this.TPAbout.Name = "TPAbout";
|
||||
this.TPAbout.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@@ -1344,9 +1345,9 @@ namespace GrasscutterTools
|
||||
//
|
||||
// TPRemoteCall
|
||||
//
|
||||
resources.ApplyResources(this.TPRemoteCall, "TPRemoteCall");
|
||||
this.TPRemoteCall.Controls.Add(this.LblRemoteTODO);
|
||||
this.TPRemoteCall.Controls.Add(this.GrpRemoteCommand);
|
||||
resources.ApplyResources(this.TPRemoteCall, "TPRemoteCall");
|
||||
this.TPRemoteCall.Name = "TPRemoteCall";
|
||||
this.TPRemoteCall.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@@ -1372,6 +1373,7 @@ namespace GrasscutterTools
|
||||
resources.ApplyResources(this.LnkRCHelp, "LnkRCHelp");
|
||||
this.LnkRCHelp.Name = "LnkRCHelp";
|
||||
this.LnkRCHelp.TabStop = true;
|
||||
this.LnkRCHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkRCHelp_LinkClicked);
|
||||
//
|
||||
// LblSessionKey
|
||||
//
|
||||
@@ -1398,6 +1400,7 @@ namespace GrasscutterTools
|
||||
resources.ApplyResources(this.BtnPingHost, "BtnPingHost");
|
||||
this.BtnPingHost.Name = "BtnPingHost";
|
||||
this.BtnPingHost.UseVisualStyleBackColor = true;
|
||||
this.BtnPingHost.Click += new System.EventHandler(this.BtnPingHost_Click);
|
||||
//
|
||||
// FormMain
|
||||
//
|
||||
@@ -1612,6 +1615,7 @@ namespace GrasscutterTools
|
||||
private System.Windows.Forms.TextBox TxtHost;
|
||||
private System.Windows.Forms.Label LblHost;
|
||||
private System.Windows.Forms.Button BtnPingHost;
|
||||
private System.Windows.Forms.Button BtnOpenTextMap;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -110,22 +110,27 @@ namespace GrasscutterTools
|
||||
}
|
||||
}
|
||||
|
||||
FormTextMapBrowser FormTextMapBrowser;
|
||||
private void BtnOpenTextMap_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (FormTextMapBrowser == null || FormTextMapBrowser.IsDisposed)
|
||||
{
|
||||
FormTextMapBrowser = new FormTextMapBrowser();
|
||||
FormTextMapBrowser.Show();
|
||||
}
|
||||
else
|
||||
{
|
||||
FormTextMapBrowser.TopMost = true;
|
||||
FormTextMapBrowser.TopMost = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void CmbLanguage_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
MultiLanguage.SetDefaultLanguage(Languages[CmbLanguage.SelectedIndex]);
|
||||
FormMain_Load(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
private void LnkRCHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
MessageBox.Show("TODO:正在开发中", "TODO");
|
||||
}
|
||||
|
||||
private void BtnPingHost_Click(object sender, EventArgs e)
|
||||
{
|
||||
MessageBox.Show("TODO:正在开发中", "TODO");
|
||||
}
|
||||
|
||||
#endregion - 主页 -
|
||||
|
||||
#region - 自定义 -
|
||||
@@ -702,6 +707,9 @@ namespace GrasscutterTools
|
||||
{
|
||||
ListScenes.Items.Clear();
|
||||
ListScenes.Items.AddRange(GameData.Scenes.Lines);
|
||||
|
||||
CmbClimateType.Items.Clear();
|
||||
CmbClimateType.Items.AddRange(Resources.ClimateType.Split(','));
|
||||
}
|
||||
|
||||
private void ListScenes_SelectedIndexChanged(object sender, EventArgs e)
|
||||
@@ -727,6 +735,7 @@ namespace GrasscutterTools
|
||||
private void InitStatList()
|
||||
{
|
||||
LblStatTip.Text = "";
|
||||
SetStatsCommand.InitStats();
|
||||
CmbStat.Items.Clear();
|
||||
CmbStat.Items.AddRange(SetStatsCommand.Stats.Select(s => s.Name).ToArray());
|
||||
}
|
||||
@@ -868,5 +877,19 @@ namespace GrasscutterTools
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region - 远程 -
|
||||
|
||||
private void LnkRCHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
MessageBox.Show("TODO:正在开发中", "TODO");
|
||||
}
|
||||
|
||||
private void BtnPingHost_Click(object sender, EventArgs e)
|
||||
{
|
||||
MessageBox.Show("TODO:正在开发中", "TODO");
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@@ -133,6 +133,12 @@
|
||||
<data name="TPHome.Text" xml:space="preserve">
|
||||
<value>Home</value>
|
||||
</data>
|
||||
<data name="BtnOpenTextMap.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>120, 23</value>
|
||||
</data>
|
||||
<data name="BtnOpenTextMap.Text" xml:space="preserve">
|
||||
<value>TextMapBrowser</value>
|
||||
</data>
|
||||
<data name="BtnOpenGachaBannerEditor.Text" xml:space="preserve">
|
||||
<value>Banner editor</value>
|
||||
</data>
|
||||
@@ -517,26 +523,8 @@ The data may not be cleared even if the account is recreated.</value>
|
||||
<data name="TPScene.Text" xml:space="preserve">
|
||||
<value>Scene</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Items" xml:space="preserve">
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Items1" xml:space="preserve">
|
||||
<value>Sunny</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Items2" xml:space="preserve">
|
||||
<value>Partly cloudy</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Items3" xml:space="preserve">
|
||||
<value>Rain</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Items4" xml:space="preserve">
|
||||
<value>Thunderstorm</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Items5" xml:space="preserve">
|
||||
<value>Snow</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Items6" xml:space="preserve">
|
||||
<value>Fog</value>
|
||||
<data name="CmbClimateType.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>66, 94</value>
|
||||
</data>
|
||||
<data name="LblClimateType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>54, 17</value>
|
158
Source/GrasscutterTools/FormTextMapBrowser.Designer.cs
generated
Normal file
@@ -0,0 +1,158 @@
|
||||
namespace GrasscutterTools
|
||||
{
|
||||
partial class FormTextMapBrowser
|
||||
{
|
||||
/// <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(FormTextMapBrowser));
|
||||
this.TxtTextMapFilter = new System.Windows.Forms.TextBox();
|
||||
this.BtnSelectRecoursePath = new System.Windows.Forms.Button();
|
||||
this.CmbLanguage = new System.Windows.Forms.ComboBox();
|
||||
this.LblLanguage = new System.Windows.Forms.Label();
|
||||
this.ChkTopMost = new System.Windows.Forms.CheckBox();
|
||||
this.LblResourcesPath = new System.Windows.Forms.Label();
|
||||
this.BtnSearch = new System.Windows.Forms.Button();
|
||||
this.DGVTextMap = new System.Windows.Forms.DataGridView();
|
||||
this.ColumnHash = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColumnID = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColumnText = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
((System.ComponentModel.ISupportInitialize)(this.DGVTextMap)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// TxtTextMapFilter
|
||||
//
|
||||
resources.ApplyResources(this.TxtTextMapFilter, "TxtTextMapFilter");
|
||||
this.TxtTextMapFilter.Name = "TxtTextMapFilter";
|
||||
this.TxtTextMapFilter.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtTextMapFilter_KeyDown);
|
||||
//
|
||||
// BtnSelectRecoursePath
|
||||
//
|
||||
resources.ApplyResources(this.BtnSelectRecoursePath, "BtnSelectRecoursePath");
|
||||
this.BtnSelectRecoursePath.Name = "BtnSelectRecoursePath";
|
||||
this.BtnSelectRecoursePath.UseVisualStyleBackColor = true;
|
||||
this.BtnSelectRecoursePath.Click += new System.EventHandler(this.BtnSelectRecoursePath_Click);
|
||||
//
|
||||
// CmbLanguage
|
||||
//
|
||||
resources.ApplyResources(this.CmbLanguage, "CmbLanguage");
|
||||
this.CmbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.CmbLanguage.FormattingEnabled = true;
|
||||
this.CmbLanguage.Name = "CmbLanguage";
|
||||
this.CmbLanguage.SelectedIndexChanged += new System.EventHandler(this.CmbLanguage_SelectedIndexChanged);
|
||||
//
|
||||
// LblLanguage
|
||||
//
|
||||
resources.ApplyResources(this.LblLanguage, "LblLanguage");
|
||||
this.LblLanguage.Name = "LblLanguage";
|
||||
//
|
||||
// ChkTopMost
|
||||
//
|
||||
resources.ApplyResources(this.ChkTopMost, "ChkTopMost");
|
||||
this.ChkTopMost.Name = "ChkTopMost";
|
||||
this.ChkTopMost.UseVisualStyleBackColor = true;
|
||||
this.ChkTopMost.CheckedChanged += new System.EventHandler(this.ChkTopMost_CheckedChanged);
|
||||
//
|
||||
// LblResourcesPath
|
||||
//
|
||||
resources.ApplyResources(this.LblResourcesPath, "LblResourcesPath");
|
||||
this.LblResourcesPath.Name = "LblResourcesPath";
|
||||
//
|
||||
// BtnSearch
|
||||
//
|
||||
resources.ApplyResources(this.BtnSearch, "BtnSearch");
|
||||
this.BtnSearch.Name = "BtnSearch";
|
||||
this.BtnSearch.UseVisualStyleBackColor = true;
|
||||
this.BtnSearch.Click += new System.EventHandler(this.BtnSearch_Click);
|
||||
//
|
||||
// DGVTextMap
|
||||
//
|
||||
this.DGVTextMap.AllowUserToAddRows = false;
|
||||
this.DGVTextMap.AllowUserToDeleteRows = false;
|
||||
this.DGVTextMap.AllowUserToResizeRows = false;
|
||||
resources.ApplyResources(this.DGVTextMap, "DGVTextMap");
|
||||
this.DGVTextMap.BackgroundColor = System.Drawing.Color.White;
|
||||
this.DGVTextMap.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.DGVTextMap.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.ColumnHash,
|
||||
this.ColumnID,
|
||||
this.ColumnText});
|
||||
this.DGVTextMap.Name = "DGVTextMap";
|
||||
this.DGVTextMap.ReadOnly = true;
|
||||
this.DGVTextMap.RowTemplate.Height = 23;
|
||||
//
|
||||
// ColumnHash
|
||||
//
|
||||
resources.ApplyResources(this.ColumnHash, "ColumnHash");
|
||||
this.ColumnHash.Name = "ColumnHash";
|
||||
this.ColumnHash.ReadOnly = true;
|
||||
//
|
||||
// ColumnID
|
||||
//
|
||||
resources.ApplyResources(this.ColumnID, "ColumnID");
|
||||
this.ColumnID.Name = "ColumnID";
|
||||
this.ColumnID.ReadOnly = true;
|
||||
//
|
||||
// ColumnText
|
||||
//
|
||||
resources.ApplyResources(this.ColumnText, "ColumnText");
|
||||
this.ColumnText.Name = "ColumnText";
|
||||
this.ColumnText.ReadOnly = true;
|
||||
//
|
||||
// FormTextMapBrowser
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.DGVTextMap);
|
||||
this.Controls.Add(this.BtnSearch);
|
||||
this.Controls.Add(this.ChkTopMost);
|
||||
this.Controls.Add(this.LblLanguage);
|
||||
this.Controls.Add(this.CmbLanguage);
|
||||
this.Controls.Add(this.LblResourcesPath);
|
||||
this.Controls.Add(this.BtnSelectRecoursePath);
|
||||
this.Controls.Add(this.TxtTextMapFilter);
|
||||
this.Name = "FormTextMapBrowser";
|
||||
this.Load += new System.EventHandler(this.FormTextMapBrowser_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.DGVTextMap)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.TextBox TxtTextMapFilter;
|
||||
private System.Windows.Forms.Button BtnSelectRecoursePath;
|
||||
private System.Windows.Forms.ComboBox CmbLanguage;
|
||||
private System.Windows.Forms.Label LblLanguage;
|
||||
private System.Windows.Forms.CheckBox ChkTopMost;
|
||||
private System.Windows.Forms.Label LblResourcesPath;
|
||||
private System.Windows.Forms.Button BtnSearch;
|
||||
private System.Windows.Forms.DataGridView DGVTextMap;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnHash;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnID;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnText;
|
||||
}
|
||||
}
|
184
Source/GrasscutterTools/FormTextMapBrowser.cs
Normal file
@@ -0,0 +1,184 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using GrasscutterTools.Game;
|
||||
using GrasscutterTools.Properties;
|
||||
|
||||
namespace GrasscutterTools
|
||||
{
|
||||
public partial class FormTextMapBrowser : Form
|
||||
{
|
||||
public FormTextMapBrowser()
|
||||
{
|
||||
InitializeComponent();
|
||||
Icon = Resources.IconGrasscutter;
|
||||
}
|
||||
|
||||
private void FormTextMapBrowser_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Settings.Default.ResourcesDirPath))
|
||||
{
|
||||
LoadResources(Settings.Default.ResourcesDirPath);
|
||||
}
|
||||
}
|
||||
|
||||
private TextMapData data;
|
||||
|
||||
private void LoadResources(string resourcesDirPath)
|
||||
{
|
||||
try
|
||||
{
|
||||
Cursor = Cursors.WaitCursor;
|
||||
Application.DoEvents();
|
||||
|
||||
data = new TextMapData(resourcesDirPath);
|
||||
LblResourcesPath.Text = resourcesDirPath;
|
||||
if (Settings.Default.ResourcesDirPath != resourcesDirPath)
|
||||
{
|
||||
Settings.Default.ResourcesDirPath = resourcesDirPath;
|
||||
Settings.Default.Save();
|
||||
}
|
||||
|
||||
CmbLanguage.Items.Clear();
|
||||
CmbLanguage.Items.AddRange(data.TextMapFiles);
|
||||
if (!string.IsNullOrEmpty(Settings.Default.TextMapFileName))
|
||||
{
|
||||
var i = CmbLanguage.Items.IndexOf(Settings.Default.TextMapFileName);
|
||||
if (i != -1)
|
||||
CmbLanguage.SelectedIndex = i;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
}
|
||||
|
||||
private void BtnSelectRecoursePath_Click(object sender, EventArgs e)
|
||||
{
|
||||
var dir = new FolderBrowserDialog()
|
||||
{
|
||||
ShowNewFolderButton = false,
|
||||
Description = "./Gasscutter/resources",
|
||||
};
|
||||
if (dir.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
LoadResources(dir.SelectedPath);
|
||||
}
|
||||
}
|
||||
|
||||
private void CmbLanguage_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (CmbLanguage.SelectedIndex == -1 || data == null)
|
||||
return;
|
||||
try
|
||||
{
|
||||
Cursor = Cursors.WaitCursor;
|
||||
Application.DoEvents();
|
||||
data.LoadTextMap(data.TextMapFilePaths[CmbLanguage.SelectedIndex]);
|
||||
|
||||
GenLines();
|
||||
Settings.Default.TextMapFileName = CmbLanguage.Text;
|
||||
Settings.Default.Save();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
}
|
||||
|
||||
private List<ListViewItem> Items;
|
||||
|
||||
private void GenLines()
|
||||
{
|
||||
List<ListViewItem> items = new List<ListViewItem>(data.TextMap.Count);
|
||||
foreach (var kv in data.TextMap)
|
||||
{
|
||||
if (data.ManualTextMap.TryGetValue(kv.Key, out string id))
|
||||
items.Add(new ListViewItem(new string[] { kv.Key, id, kv.Value }));
|
||||
else
|
||||
items.Add(new ListViewItem(new string[] { kv.Key, "", kv.Value }));
|
||||
}
|
||||
Items = items;
|
||||
}
|
||||
|
||||
private void ChkTopMost_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
TopMost = ChkTopMost.Checked;
|
||||
}
|
||||
|
||||
private void BtnSearch_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (Items == null)
|
||||
{
|
||||
MessageBox.Show("请先选择资源目录,并选择对应语言文件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
var filter = TxtTextMapFilter.Text.Trim();
|
||||
if (string.IsNullOrEmpty(filter))
|
||||
return;
|
||||
Regex r;
|
||||
try
|
||||
{
|
||||
r = new Regex(filter, RegexOptions.IgnoreCase);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Cursor = Cursors.WaitCursor;
|
||||
Application.DoEvents();
|
||||
|
||||
var result = data.ManualTextMap.Where(kv => r.Match(kv.Value).Success)
|
||||
.Select(kv => new { Hash = kv.Key, Id = kv.Value, Text = data.TextMap[kv.Key] })
|
||||
.Concat(
|
||||
data.TextMap.Where(kv => r.Match(kv.Key).Success || r.Match(kv.Value).Success)
|
||||
.Select(kv => new {
|
||||
Hash = kv.Key,
|
||||
Id = data.ManualTextMap.TryGetValue(kv.Key, out string id) ? id : "",
|
||||
Text = kv.Value
|
||||
})
|
||||
).ToList();
|
||||
|
||||
DGVTextMap.SuspendLayout();
|
||||
DGVTextMap.Rows.Clear();
|
||||
for (int i = 0; i < result.Count; i++)
|
||||
{
|
||||
DGVTextMap.Rows.Add();
|
||||
DGVTextMap.Rows[i].Cells[0].Value = result[i].Hash;
|
||||
DGVTextMap.Rows[i].Cells[1].Value = result[i].Id;
|
||||
DGVTextMap.Rows[i].Cells[2].Value = result[i].Text;
|
||||
}
|
||||
DGVTextMap.ResumeLayout();
|
||||
}
|
||||
finally
|
||||
{
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
}
|
||||
|
||||
private void TxtTextMapFilter_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Enter)
|
||||
BtnSearch_Click(sender, e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
151
Source/GrasscutterTools/FormTextMapBrowser.en-US.resx
Normal file
@@ -0,0 +1,151 @@
|
||||
<?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="BtnSelectRecoursePath.Text" xml:space="preserve">
|
||||
<value>Select</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="LblLanguage.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>477, 15</value>
|
||||
</data>
|
||||
<data name="LblLanguage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 17</value>
|
||||
</data>
|
||||
<data name="LblLanguage.Text" xml:space="preserve">
|
||||
<value>Language</value>
|
||||
</data>
|
||||
<data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 21</value>
|
||||
</data>
|
||||
<data name="ChkTopMost.Text" xml:space="preserve">
|
||||
<value>TopMost</value>
|
||||
</data>
|
||||
<data name="LblResourcesPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>294, 17</value>
|
||||
</data>
|
||||
<data name="LblResourcesPath.Text" xml:space="preserve">
|
||||
<value>Please select a resource directory</value>
|
||||
</data>
|
||||
<data name="BtnSearch.Text" xml:space="preserve">
|
||||
<value>Search</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>Text Map Browser</value>
|
||||
</data>
|
||||
</root>
|
405
Source/GrasscutterTools/FormTextMapBrowser.resx
Normal file
@@ -0,0 +1,405 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="TxtTextMapFilter.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="TxtTextMapFilter.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 41</value>
|
||||
</data>
|
||||
<data name="TxtTextMapFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>555, 23</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="TxtTextMapFilter.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>TxtTextMapFilter.Name" xml:space="preserve">
|
||||
<value>TxtTextMapFilter</value>
|
||||
</data>
|
||||
<data name=">>TxtTextMapFilter.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=">>TxtTextMapFilter.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>TxtTextMapFilter.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="BtnSelectRecoursePath.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>96, 12</value>
|
||||
</data>
|
||||
<data name="BtnSelectRecoursePath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
</data>
|
||||
<data name="BtnSelectRecoursePath.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="BtnSelectRecoursePath.Text" xml:space="preserve">
|
||||
<value>浏览</value>
|
||||
</data>
|
||||
<data name=">>BtnSelectRecoursePath.Name" xml:space="preserve">
|
||||
<value>BtnSelectRecoursePath</value>
|
||||
</data>
|
||||
<data name=">>BtnSelectRecoursePath.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=">>BtnSelectRecoursePath.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnSelectRecoursePath.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="CmbLanguage.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="CmbLanguage.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>548, 12</value>
|
||||
</data>
|
||||
<data name="CmbLanguage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 25</value>
|
||||
</data>
|
||||
<data name="CmbLanguage.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>CmbLanguage.Name" xml:space="preserve">
|
||||
<value>CmbLanguage</value>
|
||||
</data>
|
||||
<data name=">>CmbLanguage.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>CmbLanguage.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>CmbLanguage.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="LblLanguage.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="LblLanguage.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblLanguage.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>510, 15</value>
|
||||
</data>
|
||||
<data name="LblLanguage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name="LblLanguage.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="LblLanguage.Text" xml:space="preserve">
|
||||
<value>语言</value>
|
||||
</data>
|
||||
<data name=">>LblLanguage.Name" xml:space="preserve">
|
||||
<value>LblLanguage</value>
|
||||
</data>
|
||||
<data name=">>LblLanguage.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=">>LblLanguage.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>LblLanguage.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="ChkTopMost.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="ChkTopMost.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 14</value>
|
||||
</data>
|
||||
<data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>51, 21</value>
|
||||
</data>
|
||||
<data name="ChkTopMost.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="ChkTopMost.Text" xml:space="preserve">
|
||||
<value>置顶</value>
|
||||
</data>
|
||||
<data name=">>ChkTopMost.Name" xml:space="preserve">
|
||||
<value>ChkTopMost</value>
|
||||
</data>
|
||||
<data name=">>ChkTopMost.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=">>ChkTopMost.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>ChkTopMost.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="LblResourcesPath.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="LblResourcesPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>177, 15</value>
|
||||
</data>
|
||||
<data name="LblResourcesPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>327, 17</value>
|
||||
</data>
|
||||
<data name="LblResourcesPath.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="LblResourcesPath.Text" xml:space="preserve">
|
||||
<value>请选择Resources路径</value>
|
||||
</data>
|
||||
<data name=">>LblResourcesPath.Name" xml:space="preserve">
|
||||
<value>LblResourcesPath</value>
|
||||
</data>
|
||||
<data name=">>LblResourcesPath.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=">>LblResourcesPath.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>LblResourcesPath.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="BtnSearch.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="BtnSearch.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>573, 41</value>
|
||||
</data>
|
||||
<data name="BtnSearch.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
</data>
|
||||
<data name="BtnSearch.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="BtnSearch.Text" xml:space="preserve">
|
||||
<value>搜索</value>
|
||||
</data>
|
||||
<data name=">>BtnSearch.Name" xml:space="preserve">
|
||||
<value>BtnSearch</value>
|
||||
</data>
|
||||
<data name=">>BtnSearch.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=">>BtnSearch.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnSearch.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="DGVTextMap.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<metadata name="ColumnHash.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="ColumnHash.HeaderText" xml:space="preserve">
|
||||
<value>Hash</value>
|
||||
</data>
|
||||
<data name="ColumnHash.Width" type="System.Int32, mscorlib">
|
||||
<value>80</value>
|
||||
</data>
|
||||
<metadata name="ColumnID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="ColumnID.HeaderText" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
</data>
|
||||
<data name="ColumnID.Width" type="System.Int32, mscorlib">
|
||||
<value>240</value>
|
||||
</data>
|
||||
<metadata name="ColumnText.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="ColumnText.HeaderText" xml:space="preserve">
|
||||
<value>Text</value>
|
||||
</data>
|
||||
<data name="ColumnText.Width" type="System.Int32, mscorlib">
|
||||
<value>250</value>
|
||||
</data>
|
||||
<data name="DGVTextMap.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 70</value>
|
||||
</data>
|
||||
<data name="DGVTextMap.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>636, 379</value>
|
||||
</data>
|
||||
<data name="DGVTextMap.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name=">>DGVTextMap.Name" xml:space="preserve">
|
||||
<value>DGVTextMap</value>
|
||||
</data>
|
||||
<data name=">>DGVTextMap.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>DGVTextMap.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>DGVTextMap.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>7, 17</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>660, 461</value>
|
||||
</data>
|
||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>微软雅黑, 9pt</value>
|
||||
</data>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>600, 400</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterScreen</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>文本映射表浏览器</value>
|
||||
</data>
|
||||
<data name=">>ColumnHash.Name" xml:space="preserve">
|
||||
<value>ColumnHash</value>
|
||||
</data>
|
||||
<data name=">>ColumnHash.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>ColumnID.Name" xml:space="preserve">
|
||||
<value>ColumnID</value>
|
||||
</data>
|
||||
<data name=">>ColumnID.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>ColumnText.Name" xml:space="preserve">
|
||||
<value>ColumnText</value>
|
||||
</data>
|
||||
<data name=">>ColumnText.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>FormTextMapBrowser</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
</root>
|
@@ -1,46 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GrasscutterTools.Game
|
||||
{
|
||||
internal enum ClimateType
|
||||
{
|
||||
/// <summary>
|
||||
/// 无
|
||||
/// </summary>
|
||||
None,
|
||||
|
||||
/// <summary>
|
||||
/// 晴天
|
||||
/// </summary>
|
||||
Sunny,
|
||||
|
||||
/// <summary>
|
||||
/// 多云
|
||||
/// </summary>
|
||||
Cloudy,
|
||||
|
||||
/// <summary>
|
||||
/// 雨
|
||||
/// </summary>
|
||||
Rain,
|
||||
|
||||
/// <summary>
|
||||
/// 雷暴
|
||||
/// </summary>
|
||||
Thunderstorm,
|
||||
|
||||
/// <summary>
|
||||
/// 雪
|
||||
/// </summary>
|
||||
Snow,
|
||||
|
||||
/// <summary>
|
||||
/// 雾
|
||||
/// </summary>
|
||||
Mist
|
||||
}
|
||||
}
|
@@ -1,4 +1,9 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
using GrasscutterTools.Properties;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game
|
||||
{
|
||||
@@ -35,45 +40,51 @@ namespace GrasscutterTools.Game
|
||||
public string Tip { get; set; }
|
||||
}
|
||||
|
||||
public static List<Stat> Stats { get; set; }
|
||||
public static Stat[] Stats { get; private set; }
|
||||
|
||||
static SetStatsCommand()
|
||||
public static void InitStats()
|
||||
{
|
||||
Stats = new List<Stat>
|
||||
{
|
||||
new Stat("最大生命值", "maxhp", false),
|
||||
new Stat("当前生命值", "hp", false),
|
||||
new Stat("当前攻击力", "atk", false),
|
||||
new Stat("基础攻击力", "atkb", false, "这似乎不会重新计算攻击力,可能只对buff类有效。"),
|
||||
new Stat("防御力", "def", false),
|
||||
new Stat("元素精通", "em", false),
|
||||
new Stat("元素充能效率", "er", true),
|
||||
new Stat("暴击率", "crate", true),
|
||||
new Stat("暴击伤害", "cdmg", true),
|
||||
new Stat("伤害加成", "dmg", true, "这似乎在攻击后被重置"),
|
||||
new Stat("风元素伤害加成", "eanemo", true),
|
||||
new Stat("冰元素伤害加成", "ecryo", true),
|
||||
new Stat("草元素伤害加成", "edendro", true),
|
||||
new Stat("雷元素伤害加成", "eelectro", true),
|
||||
new Stat("土元素伤害加成", "egeo", true),
|
||||
new Stat("水元素伤害加成", "ehydro", true),
|
||||
new Stat("火元素伤害加成", "epyro", true),
|
||||
new Stat("物理伤害加成", "ephys", true),
|
||||
new Stat("伤害减免", "resall", true, "这似乎在攻击后被重置"),
|
||||
new Stat("风元素伤害减免", "resanemo", true),
|
||||
new Stat("冰元素伤害减免", "rescryo", true),
|
||||
new Stat("草元素伤害减免", "resdendro", true),
|
||||
new Stat("雷元素伤害减免", "reselectro", true),
|
||||
new Stat("土元素伤害减免", "resgeo", true),
|
||||
new Stat("水元素伤害减免", "reshydro", true),
|
||||
new Stat("火元素伤害减免", "respyro", true),
|
||||
new Stat("物理伤害减免", "resphys", true),
|
||||
new Stat("冷却缩减", "cdr", true),
|
||||
new Stat("治疗加成", "heal", true),
|
||||
new Stat("受治疗加成", "heali", true),
|
||||
new Stat("护盾强效","shield", true),
|
||||
new Stat("忽略防御", "defi", true),
|
||||
};
|
||||
var json = Encoding.UTF8.GetString(Resources.AvatarStats);
|
||||
Stats = JsonConvert.DeserializeObject<Stat[]>(json);
|
||||
}
|
||||
|
||||
//static SetStatsCommand()
|
||||
//{
|
||||
// Stats = new List<Stat>
|
||||
// {
|
||||
// new Stat("最大生命值", "maxhp", false),
|
||||
// new Stat("当前生命值", "hp", false),
|
||||
// new Stat("当前攻击力", "atk", false),
|
||||
// new Stat("基础攻击力", "atkb", false, "这似乎不会重新计算攻击力,可能只对buff类有效。"),
|
||||
// new Stat("防御力", "def", false),
|
||||
// new Stat("元素精通", "em", false),
|
||||
// new Stat("元素充能效率", "er", true),
|
||||
// new Stat("暴击率", "crate", true),
|
||||
// new Stat("暴击伤害", "cdmg", true),
|
||||
// new Stat("伤害加成", "dmg", true, "这似乎在攻击后被重置"),
|
||||
// new Stat("风元素伤害加成", "eanemo", true),
|
||||
// new Stat("冰元素伤害加成", "ecryo", true),
|
||||
// new Stat("草元素伤害加成", "edendro", true),
|
||||
// new Stat("雷元素伤害加成", "eelectro", true),
|
||||
// new Stat("土元素伤害加成", "egeo", true),
|
||||
// new Stat("水元素伤害加成", "ehydro", true),
|
||||
// new Stat("火元素伤害加成", "epyro", true),
|
||||
// new Stat("物理伤害加成", "ephys", true),
|
||||
// new Stat("伤害减免", "resall", true, "这似乎在攻击后被重置"),
|
||||
// new Stat("风元素伤害减免", "resanemo", true),
|
||||
// new Stat("冰元素伤害减免", "rescryo", true),
|
||||
// new Stat("草元素伤害减免", "resdendro", true),
|
||||
// new Stat("雷元素伤害减免", "reselectro", true),
|
||||
// new Stat("土元素伤害减免", "resgeo", true),
|
||||
// new Stat("水元素伤害减免", "reshydro", true),
|
||||
// new Stat("火元素伤害减免", "respyro", true),
|
||||
// new Stat("物理伤害减免", "resphys", true),
|
||||
// new Stat("冷却缩减", "cdr", true),
|
||||
// new Stat("治疗加成", "heal", true),
|
||||
// new Stat("受治疗加成", "heali", true),
|
||||
// new Stat("护盾强效","shield", true),
|
||||
// new Stat("忽略防御", "defi", true),
|
||||
// };
|
||||
//}
|
||||
}
|
||||
}
|
70
Source/GrasscutterTools/Game/TextMapData.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game
|
||||
{
|
||||
public class TextMapData
|
||||
{
|
||||
public TextMapData(string resourcesDirPath)
|
||||
{
|
||||
LoadManualTextMap(Path.Combine(resourcesDirPath, "ExcelBinOutput", "ManualTextMapConfigData.json"));
|
||||
LoadTextMaps(Path.Combine(resourcesDirPath, "TextMap"));
|
||||
}
|
||||
|
||||
public Dictionary<string, string> ManualTextMap;
|
||||
public Dictionary<string, string> TextMap;
|
||||
public string[] TextMapFilePaths;
|
||||
public string[] TextMapFiles;
|
||||
|
||||
void LoadManualTextMap(string manualTextMapPath)
|
||||
{
|
||||
using (var fs = File.OpenRead(manualTextMapPath))
|
||||
using (var sr = new StreamReader(fs))
|
||||
using (var reader = new JsonTextReader(sr))
|
||||
{
|
||||
ManualTextMap = new Dictionary<string, string>();
|
||||
while (reader.Read())
|
||||
{
|
||||
if (reader.TokenType == JsonToken.PropertyName && (string)reader.Value == "TextMapId")
|
||||
{
|
||||
var textMapId = reader.ReadAsString();
|
||||
reader.Read();
|
||||
ManualTextMap.Add(reader.ReadAsString(), textMapId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LoadTextMaps(string textMapDirPath)
|
||||
{
|
||||
TextMapFilePaths = Directory.GetFiles(textMapDirPath, "TextMap*.json");
|
||||
if (TextMapFilePaths.Length == 0)
|
||||
throw new FileNotFoundException("TextMap*.json Not Found");
|
||||
TextMapFiles = TextMapFilePaths.Select(n => Path.GetFileNameWithoutExtension(n)).ToArray();
|
||||
}
|
||||
|
||||
public void LoadTextMap(string textMapPath)
|
||||
{
|
||||
using (var fs = File.OpenRead(textMapPath))
|
||||
using (var sr = new StreamReader(fs))
|
||||
using (var reader = new JsonTextReader(sr))
|
||||
{
|
||||
TextMap = new Dictionary<string, string>();
|
||||
while (reader.Read())
|
||||
{
|
||||
if (reader.TokenType == JsonToken.PropertyName)
|
||||
{
|
||||
TextMap.Add((string)reader.Value, reader.ReadAsString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props" Condition="Exists('..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props')" />
|
||||
<Import Project="..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
@@ -203,29 +204,41 @@
|
||||
<Compile Include="FormMain.Designer.cs">
|
||||
<DependentUpon>FormMain.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Game\ClimateType.cs" />
|
||||
<Compile Include="FormTextMapBrowser.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormTextMapBrowser.Designer.cs">
|
||||
<DependentUpon>FormTextMapBrowser.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Game\GameCommand.cs" />
|
||||
<Compile Include="Game\Gacha\BannerType.cs" />
|
||||
<Compile Include="Game\Gacha\GachaBanner.cs" />
|
||||
<Compile Include="Game\GameData.cs" />
|
||||
<Compile Include="Game\ItemMap.cs" />
|
||||
<Compile Include="Game\SetStatsCommand.cs" />
|
||||
<Compile Include="Game\TextMapData.cs" />
|
||||
<Compile Include="MojoConsole\MojoConsole.cs" />
|
||||
<Compile Include="MultiLanguage.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="FormGachaBannerEditor.en.resx">
|
||||
<EmbeddedResource Include="FormGachaBannerEditor.en-us.resx">
|
||||
<DependentUpon>FormGachaBannerEditor.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FormGachaBannerEditor.resx">
|
||||
<DependentUpon>FormGachaBannerEditor.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FormMain.en.resx">
|
||||
<EmbeddedResource Include="FormMain.en-us.resx">
|
||||
<DependentUpon>FormMain.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FormMain.resx">
|
||||
<DependentUpon>FormMain.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FormTextMapBrowser.en-US.resx">
|
||||
<DependentUpon>FormTextMapBrowser.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FormTextMapBrowser.resx">
|
||||
<DependentUpon>FormTextMapBrowser.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.en-us.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.en-us.Designer.cs</LastGenOutput>
|
||||
@@ -256,6 +269,8 @@
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<None Include="Resources\en-us\AvatarStats.json" />
|
||||
<None Include="Resources\zh-cn\AvatarStats.json" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
@@ -278,6 +293,7 @@
|
||||
<Content Include="Resources\IconGrasscutter.ico" />
|
||||
<Content Include="Resources\IconGrasscutter.png" />
|
||||
<None Include="Resources\ImgSupport.png" />
|
||||
<Content Include="Resources\ImgHome.jpg" />
|
||||
<Content Include="Resources\Permissions.txt" />
|
||||
<Content Include="Resources\WeaponColor.txt" />
|
||||
<Content Include="Resources\zh-cn\Animal.txt" />
|
||||
@@ -297,14 +313,15 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="..\packages\Fody.6.5.5\build\Fody.targets" Condition="Exists('..\packages\Fody.6.5.5\build\Fody.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Fody.6.5.5\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.5.5\build\Fody.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\Fody.6.6.1\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.6.1\build\Fody.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets" Condition="Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" />
|
||||
<Import Project="..\packages\Fody.6.6.1\build\Fody.targets" Condition="Exists('..\packages\Fody.6.6.1\build\Fody.targets')" />
|
||||
</Project>
|
@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
|
||||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("0.9.0")]
|
||||
[assembly: AssemblyVersion("0.10.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0")]
|
||||
|
@@ -375,6 +375,25 @@ namespace GrasscutterTools.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Byte[] 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static byte[] AvatarStats {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("AvatarStats", resourceCulture);
|
||||
return ((byte[])(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 无,晴天,多云,雨天,雷暴,雪天,雾天 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ClimateType {
|
||||
get {
|
||||
return ResourceManager.GetString("ClimateType", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 无敌
|
||||
////godmode
|
||||
@@ -441,6 +460,16 @@ namespace GrasscutterTools.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap ImgHome {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ImgHome", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
@@ -673,7 +702,14 @@ namespace GrasscutterTools.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// 查找类似 1 : BigWorld_LevelStreaming
|
||||
///2 : BigWorld_LevelStreaming
|
||||
///3 : BigWorld_LevelStreaming
|
||||
///4 : LostParadise_LevelStreaming
|
||||
///5 : AbyssalPalace_LevelStreaming
|
||||
///6 : TheChasm_LevelStreaming
|
||||
///7 : MichiaeMatsuri_LevelStreaming
|
||||
///20008: 深入狼之殿
|
||||
///20008: 丘丘人大本营(test)
|
||||
///20008: 丘丘人巢穴(test)
|
||||
@@ -688,16 +724,7 @@ namespace GrasscutterTools.Properties {
|
||||
///1019: 洞天云海地城玩法测试(test)
|
||||
///1011: 角色战斗测试(test)
|
||||
///50002: 低温关卡白盒(test)
|
||||
///1001: 移动平台性能测试(test)
|
||||
///50003: 战斗性能测试(test)
|
||||
///50004: 电桩电源白盒(test)
|
||||
///50027: 圣遗物新因子测试关卡3(test)
|
||||
///50025: 圣遗物新因子测试关卡1(test)
|
||||
///50026: 圣遗物新因子测试关卡2(test)
|
||||
///1024: 黑夜循环地城(test)
|
||||
///50009: 关卡玩法白盒CX(test)
|
||||
///50010: 机关玩法白盒(test)
|
||||
///50014: 怪物元素对抗地城(test)
|
||||
///1001: 移动平台性能测试(test)
|
||||
///50 [字符串的其余部分被截断]"; 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string Scene {
|
||||
|
@@ -139,6 +139,12 @@
|
||||
<data name="AvatarColor" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\AvatarColor.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="AvatarStats" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\en-us\AvatarStats.json;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="ClimateType" xml:space="preserve">
|
||||
<value>None,Sunny,Partly cloudy,Rain,Thunderstorm,Snow,Fog</value>
|
||||
</data>
|
||||
<data name="CustomCommands" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\en-us\CustomCommands.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
|
@@ -139,12 +139,21 @@
|
||||
<data name="AvatarColor" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\AvatarColor.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="AvatarStats" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\zh-cn\AvatarStats.json;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="ClimateType" xml:space="preserve">
|
||||
<value>无,晴天,多云,雨天,雷暴,雪天,雾天</value>
|
||||
</data>
|
||||
<data name="CustomCommands" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\zh-cn\CustomCommands.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="IconGrasscutter" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\IconGrasscutter.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ImgHome" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ImgHome.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ImgIconGrasscutter" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\IconGrasscutter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@@ -58,5 +58,29 @@ namespace GrasscutterTools.Properties {
|
||||
this["DefaultLanguage"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string ResourcesDirPath {
|
||||
get {
|
||||
return ((string)(this["ResourcesDirPath"]));
|
||||
}
|
||||
set {
|
||||
this["ResourcesDirPath"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("TextMapCHS")]
|
||||
public string TextMapFileName {
|
||||
get {
|
||||
return ((string)(this["TextMapFileName"]));
|
||||
}
|
||||
set {
|
||||
this["TextMapFileName"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -11,5 +11,11 @@
|
||||
<Setting Name="DefaultLanguage" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">zh-CN</Value>
|
||||
</Setting>
|
||||
<Setting Name="ResourcesDirPath" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="TextMapFileName" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">TextMapCHS</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
BIN
Source/GrasscutterTools/Resources/ImgHome.jpg
Normal file
After Width: | Height: | Size: 175 KiB |
194
Source/GrasscutterTools/Resources/en-us/AvatarStats.json
Normal file
@@ -0,0 +1,194 @@
|
||||
[
|
||||
{
|
||||
"Name": "MAX HP",
|
||||
"ArgName": "maxhp",
|
||||
"Percent": false,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "CUR HP",
|
||||
"ArgName": "hp",
|
||||
"Percent": false,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "CUR Attack",
|
||||
"ArgName": "atk",
|
||||
"Percent": false,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "Base Attack",
|
||||
"ArgName": "atkb",
|
||||
"Percent": false,
|
||||
"Tip": "This doesn't seem to get used to recalculate ATK, so it's only useful for stuff like Bennett's buff."
|
||||
},
|
||||
{
|
||||
"Name": "DEFENSE",
|
||||
"ArgName": "def",
|
||||
"Percent": false,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "ELEMENT MASTERY",
|
||||
"ArgName": "em",
|
||||
"Percent": false,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "CHARGE EFFICIENCY",
|
||||
"ArgName": "er",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "CRITICAL",
|
||||
"ArgName": "crate",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "CRITICAL HURT",
|
||||
"ArgName": "cdmg",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "ADD HURT",
|
||||
"ArgName": "dmg",
|
||||
"Percent": true,
|
||||
"Tip": "This seems to get reset after attacks"
|
||||
},
|
||||
{
|
||||
"Name": "WIND ADD HURT",
|
||||
"ArgName": "eanemo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "ICE ADD HURT",
|
||||
"ArgName": "ecryo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "GRASS ADD HURT",
|
||||
"ArgName": "edendro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "ELEC ADD HURT",
|
||||
"ArgName": "eelectro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "ROCK ADD HURT",
|
||||
"ArgName": "egeo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "WATER ADD HURT",
|
||||
"ArgName": "ehydro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "FIRE ADD HURT",
|
||||
"ArgName": "epyro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "PHYSICAL ADD HURT",
|
||||
"ArgName": "ephys",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "SUB HURT",
|
||||
"ArgName": "resall",
|
||||
"Percent": true,
|
||||
"Tip": "This seems to get reset after attacks"
|
||||
},
|
||||
{
|
||||
"Name": "WIND SUB HURT",
|
||||
"ArgName": "resanemo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "ICE SUB HURT",
|
||||
"ArgName": "rescryo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "GRASS SUB HURT",
|
||||
"ArgName": "resdendro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "ELEC SUB HURT",
|
||||
"ArgName": "reselectro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "ROCK SUB HURT",
|
||||
"ArgName": "resgeo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "WATER SUB HURT",
|
||||
"ArgName": "reshydro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "FIRE SUB HURT",
|
||||
"ArgName": "respyro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "PHYSICAL SUB HURT",
|
||||
"ArgName": "resphys",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "SKILL CD MINUS RATIO",
|
||||
"ArgName": "cdr",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "HEAL ADD",
|
||||
"ArgName": "heal",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "HEALED ADD",
|
||||
"ArgName": "heali",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "SHIELD COST MINUS RATIO",
|
||||
"ArgName": "shield",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "DEFENCE IGNORE RATIO",
|
||||
"ArgName": "defi",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
}
|
||||
]
|
194
Source/GrasscutterTools/Resources/zh-cn/AvatarStats.json
Normal file
@@ -0,0 +1,194 @@
|
||||
[
|
||||
{
|
||||
"Name": "最大生命值",
|
||||
"ArgName": "maxhp",
|
||||
"Percent": false,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "当前生命值",
|
||||
"ArgName": "hp",
|
||||
"Percent": false,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "当前攻击力",
|
||||
"ArgName": "atk",
|
||||
"Percent": false,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "基础攻击力",
|
||||
"ArgName": "atkb",
|
||||
"Percent": false,
|
||||
"Tip": "这似乎不会重新计算攻击力,可能只对buff类有效。"
|
||||
},
|
||||
{
|
||||
"Name": "防御力",
|
||||
"ArgName": "def",
|
||||
"Percent": false,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "元素精通",
|
||||
"ArgName": "em",
|
||||
"Percent": false,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "元素充能效率",
|
||||
"ArgName": "er",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "暴击率",
|
||||
"ArgName": "crate",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "暴击伤害",
|
||||
"ArgName": "cdmg",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "伤害加成",
|
||||
"ArgName": "dmg",
|
||||
"Percent": true,
|
||||
"Tip": "这似乎在攻击后被重置"
|
||||
},
|
||||
{
|
||||
"Name": "风元素伤害加成",
|
||||
"ArgName": "eanemo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "冰元素伤害加成",
|
||||
"ArgName": "ecryo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "草元素伤害加成",
|
||||
"ArgName": "edendro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "雷元素伤害加成",
|
||||
"ArgName": "eelectro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "土元素伤害加成",
|
||||
"ArgName": "egeo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "水元素伤害加成",
|
||||
"ArgName": "ehydro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "火元素伤害加成",
|
||||
"ArgName": "epyro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "物理伤害加成",
|
||||
"ArgName": "ephys",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "伤害减免",
|
||||
"ArgName": "resall",
|
||||
"Percent": true,
|
||||
"Tip": "这似乎在攻击后被重置"
|
||||
},
|
||||
{
|
||||
"Name": "风元素伤害减免",
|
||||
"ArgName": "resanemo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "冰元素伤害减免",
|
||||
"ArgName": "rescryo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "草元素伤害减免",
|
||||
"ArgName": "resdendro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "雷元素伤害减免",
|
||||
"ArgName": "reselectro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "土元素伤害减免",
|
||||
"ArgName": "resgeo",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "水元素伤害减免",
|
||||
"ArgName": "reshydro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "火元素伤害减免",
|
||||
"ArgName": "respyro",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "物理伤害减免",
|
||||
"ArgName": "resphys",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "冷却缩减",
|
||||
"ArgName": "cdr",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "治疗加成",
|
||||
"ArgName": "heal",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "受治疗加成",
|
||||
"ArgName": "heali",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "护盾强效",
|
||||
"ArgName": "shield",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
},
|
||||
{
|
||||
"Name": "忽略防御",
|
||||
"ArgName": "defi",
|
||||
"Percent": true,
|
||||
"Tip": ""
|
||||
}
|
||||
]
|
@@ -1,11 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Costura.Fody" version="5.7.0" targetFramework="net48" developmentDependency="true" />
|
||||
<package id="Fody" version="6.5.5" targetFramework="net48" developmentDependency="true" />
|
||||
<package id="Fody" version="6.6.1" targetFramework="net48" developmentDependency="true" />
|
||||
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net48" />
|
||||
<package id="NETStandard.Library" version="1.6.1" targetFramework="net48" />
|
||||
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net452" />
|
||||
<package id="Resource.Embedder" version="2.2.0" targetFramework="net48" />
|
||||
<package id="System.AppContext" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Collections" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net48" />
|
||||
|