diff --git a/Source/GrasscutterTools/App.config b/Source/GrasscutterTools/App.config
index 714eb85..a89331c 100644
--- a/Source/GrasscutterTools/App.config
+++ b/Source/GrasscutterTools/App.config
@@ -19,6 +19,12 @@
zh-CN
+
+
+
+
+ TextMapCHS
+
diff --git a/Source/GrasscutterTools/FormMain.Designer.cs b/Source/GrasscutterTools/FormMain.Designer.cs
index 57cd83e..2b185b0 100644
--- a/Source/GrasscutterTools/FormMain.Designer.cs
+++ b/Source/GrasscutterTools/FormMain.Designer.cs
@@ -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();
@@ -259,6 +260,7 @@ 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);
@@ -266,6 +268,13 @@ namespace GrasscutterTools
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");
@@ -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;
//
@@ -1364,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
//
@@ -1390,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
//
@@ -1604,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;
}
}
diff --git a/Source/GrasscutterTools/FormMain.cs b/Source/GrasscutterTools/FormMain.cs
index f773338..5d5f6b2 100644
--- a/Source/GrasscutterTools/FormMain.cs
+++ b/Source/GrasscutterTools/FormMain.cs
@@ -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 - 自定义 -
@@ -872,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
}
}
\ No newline at end of file
diff --git a/Source/GrasscutterTools/FormMain.en-us.resx b/Source/GrasscutterTools/FormMain.en-us.resx
index 0beffd0..f842c12 100644
--- a/Source/GrasscutterTools/FormMain.en-us.resx
+++ b/Source/GrasscutterTools/FormMain.en-us.resx
@@ -130,18 +130,27 @@
Command
+
+ Home
+
+
+ 120, 23
+
+
+ TextMapBrowser
+
Banner editor
+
+ Settings
+
95, 21
Include UID
-
- Settings
-
74, 38
@@ -151,8 +160,8 @@
Have a nice time!
-
- Home
+
+ Custom
533, 216
@@ -202,8 +211,8 @@
267, 23
-
- Custom
+
+ Artifact
298, 41
@@ -268,8 +277,8 @@
Main Stat
-
- Artifact
+
+ Weapon
6, 6
@@ -313,8 +322,8 @@
147, 216
-
- Weapon
+
+ Items
@@ -338,15 +347,15 @@
Top, Bottom, Left
-
- 243, 140
-
249, 162
Records
+
+ 243, 140
+
278, 217
@@ -407,8 +416,8 @@
Give item to player
-
- Items
+
+ Avatar
88, 161
@@ -448,8 +457,8 @@ The data may not be cleared even if the account is recreated.
200, 25
-
- Avatar
+
+ Spawn
√ Record
@@ -460,6 +469,9 @@ The data may not be cleared even if the account is recreated.
Records
+
+ Class
+
84, 21
@@ -478,9 +490,6 @@ The data may not be cleared even if the account is recreated.
Monster
-
- Class
-
81, 17
@@ -511,8 +520,8 @@ The data may not be cleared even if the account is recreated.
146, 216
-
- Spawn
+
+ Scene
66, 94
@@ -541,8 +550,11 @@ The data may not be cleared even if the account is recreated.
Tip: Most of the scenes have no effect and cannot be entered.
-
- Scene
+
+ Stats
+
+
+ Stats
26, 17
@@ -550,8 +562,8 @@ Tip: Most of the scenes have no effect and cannot be entered.
Tip
-
- Stats
+
+ Talent Level
283, 24
@@ -583,9 +595,6 @@ Tip: Most of the scenes have no effect and cannot be entered.
128, 23
-
- Talent Level
-
6, 6
@@ -595,8 +604,11 @@ Tip: Most of the scenes have no effect and cannot be entered.
Set current active Avatar data
-
- Stats
+
+ Manage
+
+
+ Account Management
49, 21
@@ -631,8 +643,8 @@ Tip: Most of the scenes have no effect and cannot be entered.
127, 23
-
- Account Management
+
+ Permission Management
Delete
@@ -655,11 +667,8 @@ Tip: Most of the scenes have no effect and cannot be entered.
UID
-
- Permission Management
-
-
- Manage
+
+ About
Bottom, Left
@@ -670,8 +679,8 @@ Tip: Most of the scenes have no effect and cannot be entered.
Grasscutter Tools
-
- About
+
+ Remote
464, 3
@@ -679,6 +688,9 @@ Tip: Most of the scenes have no effect and cannot be entered.
TODO...
+
+ Remote Cell
+
35, 17
@@ -700,12 +712,6 @@ Tip: Most of the scenes have no effect and cannot be entered.
Test
-
- Remote Cell
-
-
- Remote
-
GrasscutterTools
diff --git a/Source/GrasscutterTools/FormMain.resx b/Source/GrasscutterTools/FormMain.resx
index 6afdd24..28c6087 100644
--- a/Source/GrasscutterTools/FormMain.resx
+++ b/Source/GrasscutterTools/FormMain.resx
@@ -117,10 +117,10 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
+ 0
+
True
@@ -130,9 +130,6 @@
0
-
- TPCustom
-
4
@@ -201,8 +198,11 @@
TCMain
-
- 194, 218
+
+ 9
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
260, 24
@@ -210,8 +210,8 @@
Top
-
- 目标UID
+
+ 6
NUDAvatarLevel
@@ -219,8 +219,8 @@
1
-
- 4, 26
+
+ 213, 214
14
@@ -237,11 +237,14 @@
456, 97
+
+ 396, 5
+
340, 217
- 2
+ 3
3, 4, 3, 4
@@ -267,6 +270,9 @@
57, 49
+
+ 46, 17
+
355, 216
@@ -282,8 +288,8 @@
TxtHost
-
- 32, 17
+
+ True
None
@@ -303,11 +309,8 @@
4
-
- TCMain
-
-
- 0
+
+ 7
44, 17
@@ -330,6 +333,9 @@
440, 100
+
+ True
+
生成
@@ -408,8 +414,11 @@
微软雅黑, 10pt, style=Bold
-
- 6, 25
+
+ 目标UID
+
+
+ GrpAccount
TPWeapon
@@ -417,9 +426,6 @@
238, 23
-
- 12
-
2
@@ -429,6 +435,9 @@
NUDArtifactLevel
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
311, 8
@@ -474,9 +483,6 @@
TPHome
-
- 0
-
System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -531,8 +537,8 @@
3, 19
-
- 3
+
+ 6
2
@@ -543,8 +549,11 @@
5
-
- 8
+
+ 1
+
+
+ 366, 39
2
@@ -591,8 +600,8 @@
LblRemoteTODO
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Top
378, 215
@@ -705,8 +714,8 @@
GrpRemoteCommand
-
- 4
+
+ 13
精炼等级
@@ -720,8 +729,8 @@
TopCenter
-
- 396, 31
+
+ 4, 26
TPAbout
@@ -801,8 +810,8 @@
3, 3, 3, 3
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 437, 11
True
@@ -813,6 +822,9 @@
75, 23
+
+ 3, 3, 3, 3
+
4, 26
@@ -831,9 +843,6 @@
TPArtifact
-
- 265, 31
-
System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -843,11 +852,8 @@
NPC
-
- LblArtifactLevel
-
-
- 5
+
+ GrpGiveItemRecord
3
@@ -864,8 +870,8 @@
250, 21
-
- TCMain
+
+ 5
True
@@ -888,8 +894,8 @@
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 43, 216
GrpSetStats
@@ -897,8 +903,8 @@
GrpRemoteCommand
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 2
51, 21
@@ -918,8 +924,8 @@
GrpRemoteCommand
-
- 6
+
+ LblSessionKey
7
@@ -1026,9 +1032,6 @@
0
-
- + 创建
-
10
@@ -1047,14 +1050,14 @@
LnkTalentNormalATK
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 299, 162
12, 12
-
- TPSpawn
+
+ 99, 218
True
@@ -1065,9 +1068,6 @@
3
-
- TPManage
-
ListGameItems
@@ -1083,6 +1083,9 @@
System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ TPHome
+
Bottom, Left
@@ -1095,9 +1098,6 @@
10
-
- 17
-
TPItem
@@ -1116,14 +1116,14 @@
2
-
- 5
+
+ 角色
https://127.0.0.1
-
- 会话键
+
+ 3
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -1152,6 +1152,9 @@
TxtCommand
+
+ NoControl
+
92, 102
@@ -1170,8 +1173,8 @@
TPCustom
-
- 610, 275
+
+ 4
Top
@@ -1203,9 +1206,6 @@
7, 24
-
- 60, 23
-
LblSubAttribution
@@ -1240,9 +1240,6 @@
True
-
- 6
-
8
@@ -1280,7 +1277,7 @@
GrpAccount
- 3
+ 4
5
@@ -1315,12 +1312,18 @@
6
+
+ 142, 129
+
True
2
+
+ BtnLoadCustomCommands
+
200, 23
@@ -1360,6 +1363,9 @@
Bottom, Left
+
+ Bottom
+
Top, Right
@@ -1375,8 +1381,8 @@
Top
-
- 7
+
+ 17
50, 23
@@ -1387,6 +1393,9 @@
True
+
+ 8
+
4
@@ -1426,6 +1435,9 @@
System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 45
+
TPHome
@@ -1486,9 +1498,6 @@
System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- True
-
TPArtifact
@@ -1498,9 +1507,6 @@
2
-
- Top
-
0
@@ -1519,6 +1525,9 @@
用户名
+
+ 32, 17
+
True
@@ -1536,8 +1545,8 @@
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- ChkAutoCopy
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
32, 17
@@ -1578,21 +1587,24 @@
200, 153
+
+ GrpSetStats
+
602, 245
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 5
+
TPCustom
1
-
- × 删除
-
System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -1623,6 +1635,9 @@
LblCustomName
+
+ LblArtifactLevel
+
System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -1635,9 +1650,6 @@
15
-
- System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
Bottom, Right
@@ -1647,21 +1659,30 @@
610, 56
-
- 41, 22
+
+ Top
System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Bottom, Left
+
4, 26
True
+
+ 0
+
场景
+
+ 175, 217
+
1
@@ -1699,10 +1720,10 @@
1
- 1
+ 2
-
- System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 文本浏览器
× 删除
@@ -1746,6 +1767,9 @@
NUDArtifactStars
+
+ 5
+
4
@@ -1755,9 +1779,6 @@
TPWeapon
-
- 6
-
Bottom, Left
@@ -1770,8 +1791,8 @@
自定义
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 1
17
@@ -1779,8 +1800,8 @@
44, 216
-
- True
+
+ GrpPermission
Top, Bottom, Left, Right
@@ -1821,9 +1842,6 @@
0
-
- 9
-
6, 219
@@ -1869,8 +1887,8 @@
ListEntity
-
- 1
+
+ Top
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -1887,17 +1905,14 @@
GrpTalentLevel
-
- 250, 239
-
6
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 等级
+
+ TCMain
True
@@ -1962,15 +1977,15 @@
311, 98
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
0
LblGameItemAmount
+
+ TPAvatar
+
True
@@ -1983,12 +1998,21 @@
角色
-
- Top, Right
+
+ 41, 22
+
+
+ 1
+
+
+ TPSpawn
120, 25
+
+ 100, 23
+
4
@@ -2004,15 +2028,15 @@
106, 23
-
- 602, 245
-
7
Top
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
7, 17
@@ -2054,6 +2078,9 @@
15
+
+ %
+
2
@@ -2063,9 +2090,6 @@
6, 122
-
- 99, 218
-
$this
@@ -2090,8 +2114,8 @@
0
-
- 301, 82
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
CmbArtifactPart
@@ -2111,9 +2135,6 @@
Fill
-
- Top, Bottom, Left, Right
-
Bottom
@@ -2123,9 +2144,6 @@
测试
-
- LblAddSubAttr
-
11
@@ -2135,6 +2153,9 @@
8
+
+ 3, 3, 3, 3
+
System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -2153,21 +2174,18 @@
4
-
- 213, 214
-
100, 218
1
+
+ 会话键
+
物品
-
- 3
-
LblWeaponAmount
@@ -2213,8 +2231,8 @@
0
-
- 244, 162
+
+ 6, 25
System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -2234,9 +2252,6 @@
命令
-
- 角色
-
BtnPermAdd
@@ -2294,8 +2309,8 @@
Top
-
- BtnCreateAccount
+
+ 250, 239
物品记录本
@@ -2360,8 +2375,8 @@
BtnDeleteAccount
-
- 45
+
+ System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
4, 26
@@ -2372,8 +2387,8 @@
Bottom, Left
-
- TPAvatar
+
+ 3
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -2411,11 +2426,14 @@
TPHome
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
LblHost
-
- 3, 3, 3, 3
+
+ 4
GrpPermission
@@ -2432,20 +2450,20 @@
200, 208
-
- TPManage
+
+ BtnOpenTextMap
16, 220
-
- 46, 17
+
+ 358, 31
TPArtifact
-
- GrpGiveItemRecord
+
+ 112, 122
4
@@ -2462,8 +2480,8 @@
2
-
- 5
+
+ Top, Bottom, Left, Right
16, 25
@@ -2498,8 +2516,11 @@
TPArtifact
-
- Top
+
+ 0
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
GrpEntityType
@@ -2531,15 +2552,12 @@
圣遗物
-
- 396, 5
+
+ 602, 245
39, 17
-
- 1
-
549, 24
@@ -2576,6 +2594,9 @@
70, 23
+
+ 244, 162
+
星级
@@ -2585,11 +2606,14 @@
ListSpawnLogs
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
True
-
- True
+
+ 等级
Right
@@ -2600,8 +2624,8 @@
GrpSettings
-
- 20, 19
+
+ + 创建
332, 70
@@ -2615,15 +2639,15 @@
7
-
- GrpSetStats
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPSpawn
GrpSettings
-
- 299, 162
-
System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -2660,9 +2684,6 @@
$this
-
- 328, 41
-
11
@@ -2720,11 +2741,8 @@
TPScene
-
- 4
-
-
- System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 602, 245
TPSpawn
@@ -2732,18 +2750,12 @@
142, 99
-
- 8
-
-
- True
+
+ ChkAutoCopy
1
-
- TPSpawn
-
TCMain
@@ -2753,14 +2765,14 @@
LblClearSubAttrCheckedList
-
- 142, 129
+
+ 602, 245
Top, Bottom, Left, Right
-
- Top
+
+ False
摆件
@@ -2792,19 +2804,25 @@
LnkTalentE
-
- 3, 3, 3, 3
+
+ 522, 3
-
- 2
+
+ BtnCreateAccount
+
+
+ True
+
+
+ System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
警告!添加官方未使用的角色可能导致帐号存档损坏,无法进行游戏。
即使删号重来,数据可能也不会清除。因此请谨慎添加
(例如凯特、裸男或者测试角色之类的...)
-
- 6, 103
+
+ Top, Right
40, 50
@@ -2818,6 +2836,9 @@
TPArtifact
+
+ 10
+
7
@@ -2860,8 +2881,8 @@
2
-
- Zoom
+
+ 2
Bottom, Right
@@ -2953,6 +2974,9 @@
ListSubAttributionChecked
+
+ Zoom
+
10
@@ -2968,24 +2992,18 @@
44, 22
-
- 602, 245
-
602, 245
407, 22
-
- 0
+
+ 6, 103
6
-
- 358, 31
-
32, 17
@@ -2996,7 +3014,7 @@
158, 25
- 0
+ 1
0, 0
@@ -3004,9 +3022,6 @@
Bottom, Left
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
CenterImage
@@ -3031,17 +3046,20 @@
5, 218
+
+ TPItem
+
19, 17
TPManage
-
- 13
+
+ True
-
- 列表
+
+ LblAddSubAttr
System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -3094,8 +3112,8 @@
TCMain
-
- BtnLoadCustomCommands
+
+ groupBox1
4
@@ -3106,9 +3124,6 @@
LblLanguage
-
- 602, 245
-
导出
@@ -3118,6 +3133,9 @@
32, 17
+
+ 194, 218
+
GrpPermission
@@ -3136,12 +3154,15 @@
CmbArtifactSet
-
- TCMain
+
+ 610, 275
540, 60
+
+ 396, 31
+
200, 23
@@ -3154,8 +3175,8 @@
265, 60
-
- 5
+
+ 8
3
@@ -3172,14 +3193,14 @@
14
+
+ 5
+
NUDGameItemAmout
-
- 437, 11
-
-
- %
+
+ TCMain
System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -3208,8 +3229,8 @@
Top
-
- 522, 3
+
+ 50, 23
关于
@@ -3232,6 +3253,9 @@
System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 20, 19
+
334, 102
@@ -3247,17 +3271,17 @@
1
-
- 175, 217
+
+ True
-
- 602, 160
+
+ Bottom, Left
-
- 366, 39
+
+ 60, 23
-
- 289, 25
+
+ NoControl
None
@@ -3268,6 +3292,9 @@
RbEntityMonster
+
+ 602, 160
+
TPArtifact
@@ -3280,8 +3307,8 @@
9, 26
-
- 权限管理
+
+ TPManage
60, 23
@@ -3297,15 +3324,15 @@
如果愿意请我喝一杯奶茶,那就更好了 : )
指令生成有问题,或者有新的功能请求,都可以来Github提出
+
+ True
+
pictureBox2
LblMainAttribution
-
- 43, 216
-
Top, Bottom, Right
@@ -3354,8 +3381,8 @@
Top, Right
-
- True
+
+ pictureBox1
TPAvatar
@@ -3375,8 +3402,8 @@
TPArtifact
-
- 50, 23
+
+ NUDWeaponAmout
True
@@ -3420,8 +3447,8 @@
68, 94
-
- GrpAccount
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
True
@@ -3429,6 +3456,9 @@
92, 71
+
+ 265, 31
+
GrpPermission
@@ -3462,9 +3492,15 @@
1
+
+ 4, 26
+
TPSpawn
+
+ TPManage
+
60, 23
@@ -3477,8 +3513,8 @@
2
-
- 602, 245
+
+ 328, 41
GrpSettings
@@ -3507,8 +3543,8 @@
238, 208
-
- True
+
+ 列表
1
@@ -3528,14 +3564,14 @@
2
-
- Bottom, Left
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
4
-
- Bottom, Left
+
+ 602, 245
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -3558,9 +3594,6 @@
数量
-
- NUDWeaponAmout
-
1
@@ -3570,8 +3603,8 @@
4
-
- 1
+
+ 8
CmbStat
@@ -3582,8 +3615,8 @@
TPScene
-
- TPItem
+
+ 权限管理
32, 17
@@ -3615,9 +3648,6 @@
280, 280
-
- Top, Bottom
-
等级
@@ -3627,8 +3657,11 @@
6, 49
-
- 10
+
+ 6
+
+
+ 0
42, 17
@@ -3642,9 +3675,6 @@
150, 25
-
- pictureBox1
-
2
@@ -3663,8 +3693,8 @@
BtnRemoveSpawnLog
-
- False
+
+ 289, 25
273, 11
@@ -3678,8 +3708,8 @@
Top, Bottom, Left, Right
-
- groupBox1
+
+ × 删除
TCMain
@@ -3711,11 +3741,11 @@
LnkGithub
-
- Bottom
+
+ TPCustom
-
- 2
+
+ Top, Bottom
True
@@ -3735,8 +3765,11 @@
TPArtifact
-
- 4, 26
+
+ TCMain
+
+
+ 301, 82
TPItem
@@ -3750,9 +3783,6 @@
6
-
- GrpPermission
-
7, 52
@@ -3777,8 +3807,8 @@
True
-
- LblSessionKey
+
+ 12
140, 23
@@ -3789,7 +3819,7 @@
3
-
+
True
-
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/FormTextMapBrowser.Designer.cs b/Source/GrasscutterTools/FormTextMapBrowser.Designer.cs
new file mode 100644
index 0000000..7e8cecf
--- /dev/null
+++ b/Source/GrasscutterTools/FormTextMapBrowser.Designer.cs
@@ -0,0 +1,158 @@
+namespace GrasscutterTools
+{
+ partial class FormTextMapBrowser
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ 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;
+ }
+}
\ No newline at end of file
diff --git a/Source/GrasscutterTools/FormTextMapBrowser.cs b/Source/GrasscutterTools/FormTextMapBrowser.cs
new file mode 100644
index 0000000..4339516
--- /dev/null
+++ b/Source/GrasscutterTools/FormTextMapBrowser.cs
@@ -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 Items;
+
+ private void GenLines()
+ {
+ List items = new List(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);
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/Source/GrasscutterTools/FormTextMapBrowser.en-US.resx b/Source/GrasscutterTools/FormTextMapBrowser.en-US.resx
new file mode 100644
index 0000000..a92a730
--- /dev/null
+++ b/Source/GrasscutterTools/FormTextMapBrowser.en-US.resx
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Select
+
+
+
+ 477, 15
+
+
+ 65, 17
+
+
+ Language
+
+
+ 80, 21
+
+
+ TopMost
+
+
+ 294, 17
+
+
+ Please select a resource directory
+
+
+ Search
+
+
+ Text Map Browser
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/FormTextMapBrowser.resx b/Source/GrasscutterTools/FormTextMapBrowser.resx
new file mode 100644
index 0000000..3c70f2c
--- /dev/null
+++ b/Source/GrasscutterTools/FormTextMapBrowser.resx
@@ -0,0 +1,405 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Top, Left, Right
+
+
+
+ 12, 41
+
+
+ 555, 23
+
+
+
+ 1
+
+
+ TxtTextMapFilter
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 7
+
+
+ 96, 12
+
+
+ 75, 23
+
+
+ 2
+
+
+ 浏览
+
+
+ BtnSelectRecoursePath
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 6
+
+
+ Top, Right
+
+
+ 548, 12
+
+
+ 100, 25
+
+
+ 4
+
+
+ CmbLanguage
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 4
+
+
+ Top, Right
+
+
+ True
+
+
+ 510, 15
+
+
+ 32, 17
+
+
+ 5
+
+
+ 语言
+
+
+ LblLanguage
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ True
+
+
+ 12, 14
+
+
+ 51, 21
+
+
+ 7
+
+
+ 置顶
+
+
+ ChkTopMost
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ Top, Left, Right
+
+
+ 177, 15
+
+
+ 327, 17
+
+
+ 3
+
+
+ 请选择Resources路径
+
+
+ LblResourcesPath
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 5
+
+
+ Top, Right
+
+
+ 573, 41
+
+
+ 75, 23
+
+
+ 8
+
+
+ 搜索
+
+
+ BtnSearch
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 1
+
+
+ Top, Bottom, Left, Right
+
+
+ True
+
+
+ Hash
+
+
+ 80
+
+
+ True
+
+
+ ID
+
+
+ 240
+
+
+ True
+
+
+ Text
+
+
+ 250
+
+
+ 12, 70
+
+
+ 636, 379
+
+
+ 9
+
+
+ DGVTextMap
+
+
+ System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ True
+
+
+ 7, 17
+
+
+ 660, 461
+
+
+ 微软雅黑, 9pt
+
+
+ 4, 4, 4, 4
+
+
+ 600, 400
+
+
+ CenterScreen
+
+
+ 文本映射表浏览器
+
+
+ ColumnHash
+
+
+ System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ColumnID
+
+
+ System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ColumnText
+
+
+ System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ FormTextMapBrowser
+
+
+ System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Game/ClimateType.cs b/Source/GrasscutterTools/Game/ClimateType.cs
deleted file mode 100644
index b177f1f..0000000
--- a/Source/GrasscutterTools/Game/ClimateType.cs
+++ /dev/null
@@ -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
- {
- ///
- /// 无
- ///
- None,
-
- ///
- /// 晴天
- ///
- Sunny,
-
- ///
- /// 多云
- ///
- Cloudy,
-
- ///
- /// 雨
- ///
- Rain,
-
- ///
- /// 雷暴
- ///
- Thunderstorm,
-
- ///
- /// 雪
- ///
- Snow,
-
- ///
- /// 雾
- ///
- Mist
- }
-}
diff --git a/Source/GrasscutterTools/Game/TextMapData.cs b/Source/GrasscutterTools/Game/TextMapData.cs
new file mode 100644
index 0000000..9adb539
--- /dev/null
+++ b/Source/GrasscutterTools/Game/TextMapData.cs
@@ -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 ManualTextMap;
+ public Dictionary 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();
+ 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();
+ while (reader.Read())
+ {
+ if (reader.TokenType == JsonToken.PropertyName)
+ {
+ TextMap.Add((string)reader.Value, reader.ReadAsString());
+ }
+ }
+ }
+ }
+
+ }
+}
diff --git a/Source/GrasscutterTools/GrasscutterTools.csproj b/Source/GrasscutterTools/GrasscutterTools.csproj
index 9609e28..010c72a 100644
--- a/Source/GrasscutterTools/GrasscutterTools.csproj
+++ b/Source/GrasscutterTools/GrasscutterTools.csproj
@@ -204,13 +204,19 @@
FormMain.cs
-
+
+ Form
+
+
+ FormTextMapBrowser.cs
+
+
@@ -227,6 +233,12 @@
FormMain.cs
+
+ FormTextMapBrowser.cs
+
+
+ FormTextMapBrowser.cs
+
ResXFileCodeGenerator
Resources.en-us.Designer.cs
@@ -281,6 +293,7 @@
+
diff --git a/Source/GrasscutterTools/Properties/Resources.Designer.cs b/Source/GrasscutterTools/Properties/Resources.Designer.cs
index 474e45a..f86c89a 100644
--- a/Source/GrasscutterTools/Properties/Resources.Designer.cs
+++ b/Source/GrasscutterTools/Properties/Resources.Designer.cs
@@ -460,6 +460,16 @@ namespace GrasscutterTools.Properties {
}
}
+ ///
+ /// 查找 System.Drawing.Bitmap 类型的本地化资源。
+ ///
+ internal static System.Drawing.Bitmap ImgHome {
+ get {
+ object obj = ResourceManager.GetObject("ImgHome", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
///
diff --git a/Source/GrasscutterTools/Properties/Resources.resx b/Source/GrasscutterTools/Properties/Resources.resx
index 8083bb9..d8f17ad 100644
--- a/Source/GrasscutterTools/Properties/Resources.resx
+++ b/Source/GrasscutterTools/Properties/Resources.resx
@@ -151,6 +151,9 @@
..\Resources\IconGrasscutter.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\ImgHome.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
..\Resources\IconGrasscutter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
diff --git a/Source/GrasscutterTools/Properties/Settings.Designer.cs b/Source/GrasscutterTools/Properties/Settings.Designer.cs
index f12c5a4..561465d 100644
--- a/Source/GrasscutterTools/Properties/Settings.Designer.cs
+++ b/Source/GrasscutterTools/Properties/Settings.Designer.cs
@@ -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;
+ }
+ }
}
}
diff --git a/Source/GrasscutterTools/Properties/Settings.settings b/Source/GrasscutterTools/Properties/Settings.settings
index e6ae6b1..df07cb4 100644
--- a/Source/GrasscutterTools/Properties/Settings.settings
+++ b/Source/GrasscutterTools/Properties/Settings.settings
@@ -11,5 +11,11 @@
zh-CN
+
+
+
+
+ TextMapCHS
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Resources/ImgHome.jpg b/Source/GrasscutterTools/Resources/ImgHome.jpg
new file mode 100644
index 0000000..d567f13
Binary files /dev/null and b/Source/GrasscutterTools/Resources/ImgHome.jpg differ