Implement send mail and mail list

Optimize duplicate code
This commit is contained in:
2022-10-28 00:22:15 +08:00
parent 5c7c64ea6c
commit fd515b18cf
8 changed files with 859 additions and 642 deletions

View File

@ -193,7 +193,7 @@ namespace GrasscutterTools.Forms
private IEnumerable<int> SelectedMonsterIds()
{
foreach (string item in ListMonsters.SelectedItems)
yield return int.Parse(item.Substring(0, item.IndexOf(':')).Trim());
yield return ItemMap.ToId(item);
}
/// <summary>
@ -378,7 +378,7 @@ namespace GrasscutterTools.Forms
var dropData = new DropData();
var item = TxtItem.Text;
dropData.ItemId = int.Parse(item.Substring(0, item.IndexOf(':')).Trim());
dropData.ItemId = ItemMap.ToId(item);
//if (int.TryParse(item.Substring(0, item.IndexOf(':')).Trim(), out int itemId))
//{
// dropData.ItemId = itemId;

View File

@ -189,7 +189,7 @@ namespace GrasscutterTools.Forms
else
{
var item = list.Items[i] as string;
var id = int.Parse(item.Substring(0, item.IndexOf(':')));
var id = ItemMap.ToId(item);
list.SetItemChecked(i, Array.IndexOf(checkedIds, id) != -1);
}
}
@ -217,7 +217,7 @@ namespace GrasscutterTools.Forms
{
StringBuilder builder = new StringBuilder();
foreach (string item in list.CheckedItems)
builder.Append(item.Substring(0, item.IndexOf(':')))
builder.Append(ItemMap.ToId(item))
.Append(", ");
txt.Text = builder.ToString(0, builder.Length - 2);
}

View File

@ -235,32 +235,34 @@ namespace GrasscutterTools.Forms
this.LblDefaultUid = new System.Windows.Forms.Label();
this.TCMain = new System.Windows.Forms.TabControl();
this.TPMail = new System.Windows.Forms.TabPage();
this.LblMailSenderLabel = new System.Windows.Forms.Label();
this.TxtMailSender = new System.Windows.Forms.TextBox();
this.LblMailTitleLabel = new System.Windows.Forms.Label();
this.TxtMailTitle = new System.Windows.Forms.TextBox();
this.LblMailContentLabel = new System.Windows.Forms.Label();
this.TxtMailContent = new System.Windows.Forms.TextBox();
this.LblMailRecipientLabel = new System.Windows.Forms.Label();
this.RbMailSendToAll = new System.Windows.Forms.RadioButton();
this.RbMailSendToPlayer = new System.Windows.Forms.RadioButton();
this.NUDMailRecipient = new System.Windows.Forms.NumericUpDown();
this.LblMailItemsLabel = new System.Windows.Forms.Label();
this.ListMailItems = new System.Windows.Forms.ListBox();
this.button1 = new System.Windows.Forms.Button();
this.ListMailSelectableItems = new System.Windows.Forms.ListBox();
this.TxtMailSelectableItemFilter = new System.Windows.Forms.TextBox();
this.TxtBanReason = new GrasscutterTools.Controls.TextBoxXP();
this.label1 = new System.Windows.Forms.Label();
this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
this.label2 = new System.Windows.Forms.Label();
this.numericUpDown2 = new System.Windows.Forms.NumericUpDown();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.TxtMailSelectableItemFilter = new System.Windows.Forms.TextBox();
this.NUDMailItemLevel = new System.Windows.Forms.NumericUpDown();
this.ListMailSelectableItems = new System.Windows.Forms.ListBox();
this.LblMailItemLevel = new System.Windows.Forms.Label();
this.LblMailItemCount = new System.Windows.Forms.Label();
this.NUDMailItemCount = new System.Windows.Forms.NumericUpDown();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.BtnClearMail = new System.Windows.Forms.Button();
this.BtnRemoveMail = new System.Windows.Forms.Button();
this.ListMailList = new System.Windows.Forms.ListBox();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.BtnSendMail = new System.Windows.Forms.Button();
this.ListMailItems = new System.Windows.Forms.ListBox();
this.LblMailItemsLabel = new System.Windows.Forms.Label();
this.NUDMailRecipient = new System.Windows.Forms.NumericUpDown();
this.RbMailSendToPlayer = new System.Windows.Forms.RadioButton();
this.RbMailSendToAll = new System.Windows.Forms.RadioButton();
this.LblMailRecipientLabel = new System.Windows.Forms.Label();
this.TxtMailContent = new System.Windows.Forms.TextBox();
this.LblMailContentLabel = new System.Windows.Forms.Label();
this.TxtMailTitle = new System.Windows.Forms.TextBox();
this.LblMailTitleLabel = new System.Windows.Forms.Label();
this.TxtMailSender = new System.Windows.Forms.TextBox();
this.LblMailSenderLabel = new System.Windows.Forms.Label();
this.BtnAddMailItem = new System.Windows.Forms.Button();
this.BtnDeleteMailItem = new System.Windows.Forms.Button();
this.TxtBanReason = new GrasscutterTools.Controls.TextBoxXP();
this.GrpCommand.SuspendLayout();
this.TPRemoteCall.SuspendLayout();
this.GrpServerStatus.SuspendLayout();
@ -320,12 +322,12 @@ namespace GrasscutterTools.Forms
((System.ComponentModel.ISupportInitialize)(this.NUDUid)).BeginInit();
this.TCMain.SuspendLayout();
this.TPMail.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDMailRecipient)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDMailItemLevel)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDMailItemCount)).BeginInit();
this.tabPage2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDMailRecipient)).BeginInit();
this.SuspendLayout();
//
// TxtCommand
@ -2115,8 +2117,10 @@ namespace GrasscutterTools.Forms
//
// TPMail
//
this.TPMail.Controls.Add(this.BtnAddMailItem);
this.TPMail.Controls.Add(this.BtnDeleteMailItem);
this.TPMail.Controls.Add(this.tabControl1);
this.TPMail.Controls.Add(this.button1);
this.TPMail.Controls.Add(this.BtnSendMail);
this.TPMail.Controls.Add(this.ListMailItems);
this.TPMail.Controls.Add(this.LblMailItemsLabel);
this.TPMail.Controls.Add(this.NUDMailRecipient);
@ -2133,146 +2137,6 @@ namespace GrasscutterTools.Forms
this.TPMail.Name = "TPMail";
this.TPMail.UseVisualStyleBackColor = true;
//
// LblMailSenderLabel
//
resources.ApplyResources(this.LblMailSenderLabel, "LblMailSenderLabel");
this.LblMailSenderLabel.Name = "LblMailSenderLabel";
//
// TxtMailSender
//
resources.ApplyResources(this.TxtMailSender, "TxtMailSender");
this.TxtMailSender.Name = "TxtMailSender";
//
// LblMailTitleLabel
//
resources.ApplyResources(this.LblMailTitleLabel, "LblMailTitleLabel");
this.LblMailTitleLabel.Name = "LblMailTitleLabel";
//
// TxtMailTitle
//
resources.ApplyResources(this.TxtMailTitle, "TxtMailTitle");
this.TxtMailTitle.Name = "TxtMailTitle";
//
// LblMailContentLabel
//
resources.ApplyResources(this.LblMailContentLabel, "LblMailContentLabel");
this.LblMailContentLabel.Name = "LblMailContentLabel";
//
// TxtMailContent
//
resources.ApplyResources(this.TxtMailContent, "TxtMailContent");
this.TxtMailContent.Name = "TxtMailContent";
//
// LblMailRecipientLabel
//
resources.ApplyResources(this.LblMailRecipientLabel, "LblMailRecipientLabel");
this.LblMailRecipientLabel.Name = "LblMailRecipientLabel";
//
// RbMailSendToAll
//
resources.ApplyResources(this.RbMailSendToAll, "RbMailSendToAll");
this.RbMailSendToAll.Name = "RbMailSendToAll";
this.RbMailSendToAll.TabStop = true;
this.RbMailSendToAll.UseVisualStyleBackColor = true;
//
// RbMailSendToPlayer
//
resources.ApplyResources(this.RbMailSendToPlayer, "RbMailSendToPlayer");
this.RbMailSendToPlayer.Name = "RbMailSendToPlayer";
this.RbMailSendToPlayer.TabStop = true;
this.RbMailSendToPlayer.UseVisualStyleBackColor = true;
//
// NUDMailRecipient
//
resources.ApplyResources(this.NUDMailRecipient, "NUDMailRecipient");
this.NUDMailRecipient.Name = "NUDMailRecipient";
//
// LblMailItemsLabel
//
resources.ApplyResources(this.LblMailItemsLabel, "LblMailItemsLabel");
this.LblMailItemsLabel.Name = "LblMailItemsLabel";
//
// ListMailItems
//
resources.ApplyResources(this.ListMailItems, "ListMailItems");
this.ListMailItems.FormattingEnabled = true;
this.ListMailItems.Name = "ListMailItems";
//
// button1
//
resources.ApplyResources(this.button1, "button1");
this.button1.Name = "button1";
this.button1.UseVisualStyleBackColor = true;
//
// ListMailSelectableItems
//
resources.ApplyResources(this.ListMailSelectableItems, "ListMailSelectableItems");
this.ListMailSelectableItems.FormattingEnabled = true;
this.ListMailSelectableItems.Name = "ListMailSelectableItems";
//
// TxtMailSelectableItemFilter
//
resources.ApplyResources(this.TxtMailSelectableItemFilter, "TxtMailSelectableItemFilter");
this.TxtMailSelectableItemFilter.Name = "TxtMailSelectableItemFilter";
//
// TxtBanReason
//
this.TxtBanReason.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
resources.ApplyResources(this.TxtBanReason, "TxtBanReason");
this.TxtBanReason.Maximum = 0F;
this.TxtBanReason.Minimum = 0F;
this.TxtBanReason.Name = "TxtBanReason";
//
// label1
//
resources.ApplyResources(this.label1, "label1");
this.label1.Name = "label1";
//
// numericUpDown1
//
resources.ApplyResources(this.numericUpDown1, "numericUpDown1");
this.numericUpDown1.Maximum = new decimal(new int[] {
1000000,
0,
0,
0});
this.numericUpDown1.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.numericUpDown1.Name = "numericUpDown1";
this.numericUpDown1.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// label2
//
resources.ApplyResources(this.label2, "label2");
this.label2.Name = "label2";
//
// numericUpDown2
//
resources.ApplyResources(this.numericUpDown2, "numericUpDown2");
this.numericUpDown2.Maximum = new decimal(new int[] {
90,
0,
0,
0});
this.numericUpDown2.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.numericUpDown2.Name = "numericUpDown2";
this.numericUpDown2.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// tabControl1
//
resources.ApplyResources(this.tabControl1, "tabControl1");
@ -2284,41 +2148,200 @@ namespace GrasscutterTools.Forms
// tabPage1
//
this.tabPage1.Controls.Add(this.TxtMailSelectableItemFilter);
this.tabPage1.Controls.Add(this.numericUpDown2);
this.tabPage1.Controls.Add(this.NUDMailItemLevel);
this.tabPage1.Controls.Add(this.ListMailSelectableItems);
this.tabPage1.Controls.Add(this.label2);
this.tabPage1.Controls.Add(this.label1);
this.tabPage1.Controls.Add(this.numericUpDown1);
this.tabPage1.Controls.Add(this.LblMailItemLevel);
this.tabPage1.Controls.Add(this.LblMailItemCount);
this.tabPage1.Controls.Add(this.NUDMailItemCount);
resources.ApplyResources(this.tabPage1, "tabPage1");
this.tabPage1.Name = "tabPage1";
this.tabPage1.UseVisualStyleBackColor = true;
//
// TxtMailSelectableItemFilter
//
resources.ApplyResources(this.TxtMailSelectableItemFilter, "TxtMailSelectableItemFilter");
this.TxtMailSelectableItemFilter.Name = "TxtMailSelectableItemFilter";
this.TxtMailSelectableItemFilter.TextChanged += new System.EventHandler(this.TxtMailSelectableItemFilter_TextChanged);
//
// NUDMailItemLevel
//
resources.ApplyResources(this.NUDMailItemLevel, "NUDMailItemLevel");
this.NUDMailItemLevel.Maximum = new decimal(new int[] {
90,
0,
0,
0});
this.NUDMailItemLevel.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.NUDMailItemLevel.Name = "NUDMailItemLevel";
this.NUDMailItemLevel.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// ListMailSelectableItems
//
resources.ApplyResources(this.ListMailSelectableItems, "ListMailSelectableItems");
this.ListMailSelectableItems.FormattingEnabled = true;
this.ListMailSelectableItems.Name = "ListMailSelectableItems";
//
// LblMailItemLevel
//
resources.ApplyResources(this.LblMailItemLevel, "LblMailItemLevel");
this.LblMailItemLevel.Name = "LblMailItemLevel";
//
// LblMailItemCount
//
resources.ApplyResources(this.LblMailItemCount, "LblMailItemCount");
this.LblMailItemCount.Name = "LblMailItemCount";
//
// NUDMailItemCount
//
resources.ApplyResources(this.NUDMailItemCount, "NUDMailItemCount");
this.NUDMailItemCount.Maximum = new decimal(new int[] {
1000000,
0,
0,
0});
this.NUDMailItemCount.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.NUDMailItemCount.Name = "NUDMailItemCount";
this.NUDMailItemCount.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// tabPage2
//
this.tabPage2.Controls.Add(this.button3);
this.tabPage2.Controls.Add(this.button2);
this.tabPage2.Controls.Add(this.BtnClearMail);
this.tabPage2.Controls.Add(this.BtnRemoveMail);
this.tabPage2.Controls.Add(this.ListMailList);
resources.ApplyResources(this.tabPage2, "tabPage2");
this.tabPage2.Name = "tabPage2";
this.tabPage2.UseVisualStyleBackColor = true;
//
// BtnClearMail
//
resources.ApplyResources(this.BtnClearMail, "BtnClearMail");
this.BtnClearMail.Name = "BtnClearMail";
this.BtnClearMail.UseVisualStyleBackColor = true;
this.BtnClearMail.Click += new System.EventHandler(this.BtnClearMail_Click);
//
// BtnRemoveMail
//
resources.ApplyResources(this.BtnRemoveMail, "BtnRemoveMail");
this.BtnRemoveMail.Name = "BtnRemoveMail";
this.BtnRemoveMail.UseVisualStyleBackColor = true;
this.BtnRemoveMail.Click += new System.EventHandler(this.BtnRemoveMail_Click);
//
// ListMailList
//
resources.ApplyResources(this.ListMailList, "ListMailList");
this.ListMailList.FormattingEnabled = true;
this.ListMailList.Name = "ListMailList";
this.ListMailList.SelectedIndexChanged += new System.EventHandler(this.ListMailList_SelectedIndexChanged);
//
// button2
// BtnSendMail
//
resources.ApplyResources(this.button2, "button2");
this.button2.Name = "button2";
this.button2.UseVisualStyleBackColor = true;
resources.ApplyResources(this.BtnSendMail, "BtnSendMail");
this.BtnSendMail.Name = "BtnSendMail";
this.BtnSendMail.UseVisualStyleBackColor = true;
this.BtnSendMail.Click += new System.EventHandler(this.BtnSendMail_Click);
//
// button3
// ListMailItems
//
resources.ApplyResources(this.button3, "button3");
this.button3.Name = "button3";
this.button3.UseVisualStyleBackColor = true;
resources.ApplyResources(this.ListMailItems, "ListMailItems");
this.ListMailItems.FormattingEnabled = true;
this.ListMailItems.Name = "ListMailItems";
//
// LblMailItemsLabel
//
resources.ApplyResources(this.LblMailItemsLabel, "LblMailItemsLabel");
this.LblMailItemsLabel.Name = "LblMailItemsLabel";
//
// NUDMailRecipient
//
resources.ApplyResources(this.NUDMailRecipient, "NUDMailRecipient");
this.NUDMailRecipient.Name = "NUDMailRecipient";
//
// RbMailSendToPlayer
//
resources.ApplyResources(this.RbMailSendToPlayer, "RbMailSendToPlayer");
this.RbMailSendToPlayer.Name = "RbMailSendToPlayer";
this.RbMailSendToPlayer.UseVisualStyleBackColor = true;
//
// RbMailSendToAll
//
resources.ApplyResources(this.RbMailSendToAll, "RbMailSendToAll");
this.RbMailSendToAll.Checked = true;
this.RbMailSendToAll.Name = "RbMailSendToAll";
this.RbMailSendToAll.TabStop = true;
this.RbMailSendToAll.UseVisualStyleBackColor = true;
//
// LblMailRecipientLabel
//
resources.ApplyResources(this.LblMailRecipientLabel, "LblMailRecipientLabel");
this.LblMailRecipientLabel.Name = "LblMailRecipientLabel";
//
// TxtMailContent
//
resources.ApplyResources(this.TxtMailContent, "TxtMailContent");
this.TxtMailContent.Name = "TxtMailContent";
//
// LblMailContentLabel
//
resources.ApplyResources(this.LblMailContentLabel, "LblMailContentLabel");
this.LblMailContentLabel.Name = "LblMailContentLabel";
//
// TxtMailTitle
//
resources.ApplyResources(this.TxtMailTitle, "TxtMailTitle");
this.TxtMailTitle.Name = "TxtMailTitle";
//
// LblMailTitleLabel
//
resources.ApplyResources(this.LblMailTitleLabel, "LblMailTitleLabel");
this.LblMailTitleLabel.Name = "LblMailTitleLabel";
//
// TxtMailSender
//
resources.ApplyResources(this.TxtMailSender, "TxtMailSender");
this.TxtMailSender.Name = "TxtMailSender";
//
// LblMailSenderLabel
//
resources.ApplyResources(this.LblMailSenderLabel, "LblMailSenderLabel");
this.LblMailSenderLabel.Name = "LblMailSenderLabel";
//
// BtnAddMailItem
//
resources.ApplyResources(this.BtnAddMailItem, "BtnAddMailItem");
this.BtnAddMailItem.Name = "BtnAddMailItem";
this.BtnAddMailItem.UseVisualStyleBackColor = true;
this.BtnAddMailItem.Click += new System.EventHandler(this.BtnAddMailItem_Click);
//
// BtnDeleteMailItem
//
resources.ApplyResources(this.BtnDeleteMailItem, "BtnDeleteMailItem");
this.BtnDeleteMailItem.Name = "BtnDeleteMailItem";
this.BtnDeleteMailItem.UseVisualStyleBackColor = true;
this.BtnDeleteMailItem.Click += new System.EventHandler(this.BtnDeleteMailItem_Click);
//
// TxtBanReason
//
this.TxtBanReason.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
resources.ApplyResources(this.TxtBanReason, "TxtBanReason");
this.TxtBanReason.Maximum = 0F;
this.TxtBanReason.Minimum = 0F;
this.TxtBanReason.Name = "TxtBanReason";
//
// FormMain
//
@ -2416,13 +2439,13 @@ namespace GrasscutterTools.Forms
this.TCMain.ResumeLayout(false);
this.TPMail.ResumeLayout(false);
this.TPMail.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDMailRecipient)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDMailItemLevel)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDMailItemCount)).EndInit();
this.tabPage2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.NUDMailRecipient)).EndInit();
this.ResumeLayout(false);
}
@ -2648,18 +2671,20 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.RadioButton RbMailSendToPlayer;
private System.Windows.Forms.RadioButton RbMailSendToAll;
private System.Windows.Forms.Label LblMailRecipientLabel;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button BtnSendMail;
private System.Windows.Forms.TextBox TxtMailSelectableItemFilter;
private System.Windows.Forms.ListBox ListMailSelectableItems;
private System.Windows.Forms.NumericUpDown numericUpDown2;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.NumericUpDown numericUpDown1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.NumericUpDown NUDMailItemLevel;
private System.Windows.Forms.Label LblMailItemLevel;
private System.Windows.Forms.NumericUpDown NUDMailItemCount;
private System.Windows.Forms.Label LblMailItemCount;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.ListBox ListMailList;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button BtnClearMail;
private System.Windows.Forms.Button BtnRemoveMail;
private System.Windows.Forms.Button BtnAddMailItem;
private System.Windows.Forms.Button BtnDeleteMailItem;
}
}

View File

@ -29,6 +29,7 @@ using System.Windows.Forms;
using GrasscutterTools.DispatchServer;
using GrasscutterTools.Game;
using GrasscutterTools.Game.Mail;
using GrasscutterTools.GOOD;
using GrasscutterTools.OpenCommand;
using GrasscutterTools.Properties;
@ -78,6 +79,7 @@ namespace GrasscutterTools.Forms
InitStatList();
InitPermList();
InitQuestList();
InitMailPage();
ChangeTPArtifact();
}
@ -122,6 +124,9 @@ namespace GrasscutterTools.Forms
// 初始化开放命令
InitOpenCommand();
// 初始化邮件列表
InitMailList();
}
catch (Exception ex)
{
@ -136,11 +141,15 @@ namespace GrasscutterTools.Forms
{
try
{
Settings.Default.AutoCopy = ChkAutoCopy.Checked;
Settings.Default.AutoCopy = ChkAutoCopy.Checked;
// 保存自定义命令
SaveCustomCommands();
SaveGiveItemRecord();
SaveSpawnRecord();
// 保存开放命令设置
SaveOpenCommand();
// 保存默认设置
Settings.Default.Save();
}
catch (Exception ex)
@ -688,15 +697,15 @@ namespace GrasscutterTools.Forms
else
{
var t = CmbMainAttribution.SelectedItem as string;
var mainAttr = t.Substring(0, t.IndexOf(':')).Trim();
var mainAttr = ItemMap.ToId(t);
var subAttrs = "";
if (ListSubAttributionChecked.Items.Count > 0)
{
var subAttrDir = new Dictionary<string, int>(ListSubAttributionChecked.Items.Count);
var subAttrDir = new Dictionary<int, int>(ListSubAttributionChecked.Items.Count);
foreach (string item in ListSubAttributionChecked.Items)
{
var subId = item.Substring(0, item.IndexOf(':')).Trim();
var subId = ItemMap.ToId(item);
var times = int.Parse(item.Substring(item.LastIndexOf('x') + 1));
if (subAttrDir.ContainsKey(subId))
subAttrDir[subId] += times;
@ -791,7 +800,7 @@ namespace GrasscutterTools.Forms
var name = ListWeapons.SelectedItem as string;
if (!string.IsNullOrEmpty(name))
{
var id = name.Substring(0, name.IndexOf(':')).Trim();
var id = ItemMap.ToId(name);
if (Check(CommandVersion.V1_2_2))
SetCommand("/give", $"{id} x{NUDWeaponAmout.Value} lv{NUDWeaponLevel.Value} r{NUDWeaponRefinement.Value}");
else
@ -837,7 +846,7 @@ namespace GrasscutterTools.Forms
var name = ListGameItems.SelectedItem as string;
if (!string.IsNullOrEmpty(name))
{
var id = name.Substring(0, name.IndexOf(':')).Trim();
var id = ItemMap.ToId(name);
if (ChkDrop.Checked)
{
@ -927,6 +936,7 @@ namespace GrasscutterTools.Forms
var cmd = new GameCommand($"{ListGameItems.SelectedItem} x{NUDGameItemAmout.Value}", TxtCommand.Text);
GiveItemCommands.Add(cmd);
ListGiveItemLogs.Items.Add(cmd.Name);
SaveGiveItemRecord();
}
}
@ -939,6 +949,7 @@ namespace GrasscutterTools.Forms
{
GiveItemCommands.RemoveAt(ListGiveItemLogs.SelectedIndex);
ListGiveItemLogs.Items.RemoveAt(ListGiveItemLogs.SelectedIndex);
SaveGiveItemRecord();
}
}
@ -951,6 +962,7 @@ namespace GrasscutterTools.Forms
{
GiveItemCommands.Clear();
ListGiveItemLogs.Items.Clear();
SaveGiveItemRecord();
}
}
@ -1093,7 +1105,7 @@ namespace GrasscutterTools.Forms
var selectedItem = ListEntity.SelectedItem as string;
if (!string.IsNullOrEmpty(selectedItem))
{
var id = selectedItem.Substring(0, selectedItem.IndexOf(':')).Trim();
var id = ItemMap.ToId(selectedItem);
if (Check(CommandVersion.V1_3_1))
SetCommand("/spawn", $"{id} x{NUDEntityAmout.Value} lv{NUDEntityLevel.Value}" + (ChkInfiniteHP.Checked ? " hp0" : ""));
else
@ -1181,6 +1193,7 @@ namespace GrasscutterTools.Forms
var cmd = new GameCommand($"{ListEntity.SelectedItem} Lv{NUDEntityLevel.Value} x{NUDEntityAmout.Value}", TxtCommand.Text);
SpawnCommands.Add(cmd);
ListSpawnLogs.Items.Add(cmd.Name);
SaveSpawnRecord();
}
}
@ -1193,6 +1206,7 @@ namespace GrasscutterTools.Forms
{
SpawnCommands.RemoveAt(ListSpawnLogs.SelectedIndex);
ListSpawnLogs.Items.RemoveAt(ListSpawnLogs.SelectedIndex);
SaveSpawnRecord();
}
}
@ -1205,6 +1219,7 @@ namespace GrasscutterTools.Forms
{
SpawnCommands.Clear();
ListSpawnLogs.Items.Clear();
SaveSpawnRecord();
}
}
@ -1248,7 +1263,7 @@ namespace GrasscutterTools.Forms
// 可以直接弃用 scene 命令
var name = ListScenes.SelectedItem as string;
var id = name.Substring(0, name.IndexOf(':')).Trim();
var id = ItemMap.ToId(name);
if (Check(CommandVersion.V1_2_2))
{
SetCommand("/scene", id.ToString());
@ -1420,6 +1435,227 @@ namespace GrasscutterTools.Forms
#endregion - Management -
#region - Mail -
/// <summary>
/// 初始化邮件页面
/// </summary>
private void InitMailPage()
{
TxtMailSender.Text = Settings.Default.DefaultMailSender;
LoadMailSelectableItems();
}
/// <summary>
/// 点击发送邮件时触发
/// </summary>
private void BtnSendMail_Click(object sender, EventArgs e)
{
var mail = new Mail
{
Title = TxtMailTitle.Text.Trim(),
Sender = TxtMailSender.Text.Trim(),
Content = TxtMailContent.Text.Trim(),
Recipient = RbMailSendToAll.Checked ? 0 : (int)NUDMailRecipient.Value,
ItemList = new List<MailItem>(MailItems),
SendTime = DateTime.Now,
};
if (mail.Title == "" || mail.Sender == "" || mail.Content == "")
{
MessageBox.Show("输入不能为空!", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
var cmd = $"/sendMail {(mail.SendToAll ? "all" : mail.Recipient.ToString())} |" +
$"/sendMail {mail.Title} |" +
$"/sendMail {mail.Content} |" +
$"/sendMail {mail.Sender} |";
foreach (var item in mail.ItemList)
cmd += $"/sendMail {item.ItemId} {item.ItemCount} {item.ItemLevel} |";
cmd += "/sendMail finish";
SetCommand(cmd);
AddMailToList(mail);
}
/// <summary>
/// 展示邮件
/// </summary>
/// <param name="mail"></param>
private void ShowMail(Mail mail)
{
TxtMailTitle.Text = mail.Title;
TxtMailSender.Text = mail.Sender;
TxtMailContent.Text = mail.Content;
NUDMailRecipient.Value = mail.Recipient;
RbMailSendToAll.Checked = mail.SendToAll;
RbMailSendToPlayer.Checked = !mail.SendToAll;
ShowMailItems(mail.ItemList);
}
#region -- Mail items --
/// <summary>
/// 当前邮件附件列表
/// </summary>
private readonly List<MailItem> MailItems = new List<MailItem>();
/// <summary>
/// 展示邮件附件列表
/// </summary>
/// <param name="items"></param>
private void ShowMailItems(List<MailItem> items)
{
MailItems.Clear();
MailItems.AddRange(items);
ListMailItems.BeginUpdate();
ListMailItems.Items.Clear();
ListMailItems.Items.AddRange(items.Select(it => it.ToString()).ToArray());
ListMailItems.EndUpdate();
}
/// <summary>
/// 点击添加邮件附件项时触发
/// </summary>
private void BtnAddMailItem_Click(object sender, EventArgs e)
{
if (ListMailSelectableItems.SelectedIndex == -1)
return;
var item = ListMailSelectableItems.SelectedItem as string;
var itemId = ItemMap.ToId(item);
var mailItem = new MailItem
{
ItemId = itemId,
ItemCount = (int)NUDMailItemCount.Value,
ItemLevel = (int)NUDMailItemLevel.Value,
};
MailItems.Add(mailItem);
ListMailItems.Items.Add(mailItem.ToString());
}
/// <summary>
/// 点击删除邮件附件项时触发
/// </summary>
private void BtnDeleteMailItem_Click(object sender, EventArgs e)
{
if (ListMailItems.SelectedIndex == -1) return;
MailItems.RemoveAt(ListMailItems.SelectedIndex);
ListMailItems.Items.RemoveAt(ListMailItems.SelectedIndex);
}
#endregion
#region -- Mail item selectable list --
/// <summary>
/// 加载附件可选项列表
/// </summary>
private void LoadMailSelectableItems()
{
ListMailSelectableItems.Items.Clear();
ListMailSelectableItems.Items.AddRange(GameData.Items.Lines);
}
/// <summary>
/// 邮件页面物品列表过滤器文本改变时触发
/// </summary>
private void TxtMailSelectableItemFilter_TextChanged(object sender, EventArgs e)
{
UIUtil.ListBoxFilter(ListMailSelectableItems, GameData.Items.Lines, TxtMailSelectableItemFilter.Text);
}
#endregion
#region -- Mail list --
/// <summary>
/// 获取物品记录文件路径
/// </summary>
private readonly string MailListPath = Path.Combine(Application.LocalUserAppDataPath, "MailList.json");
/// <summary>
/// 邮件列表
/// </summary>
private List<Mail> MailList = new List<Mail>();
/// <summary>
/// 初始化邮件列表
/// </summary>
private void InitMailList()
{
if (File.Exists(MailListPath))
{
MailList = JsonConvert.DeserializeObject<List<Mail>>(File.ReadAllText(MailListPath));
ListMailList.Items.AddRange(MailList.Select(it => it.ToString()).ToArray());
}
else
{
MailList = new List<Mail>();
}
}
/// <summary>
/// 保存邮件列表
/// </summary>
private void SaveMailList()
{
File.WriteAllText(MailListPath, JsonConvert.SerializeObject(MailList));
}
/// <summary>
/// 添加邮件到列表
/// </summary>
/// <param name="mail">邮件</param>
private void AddMailToList(Mail mail)
{
MailList.Add(mail);
ListMailList.Items.Add(mail.ToString());
SaveMailList();
}
/// <summary>
/// 邮件列表选中项改变时发生
/// </summary>
private void ListMailList_SelectedIndexChanged(object sender, EventArgs e)
{
if (ListMailList.SelectedIndex == -1) return;
// 显示选中邮件
var mail = MailList[ListMailList.SelectedIndex];
ShowMail(mail);
}
/// <summary>
/// 点击删除邮件按钮时触发
/// </summary>
private void BtnRemoveMail_Click(object sender, EventArgs e)
{
if (ListMailList.SelectedIndex == -1) return;
MailList.RemoveAt(ListMailList.SelectedIndex);
ListMailList.Items.RemoveAt(ListMailList.SelectedIndex);
SaveMailList();
}
/// <summary>
/// 点击清空邮件列表按钮时触发
/// </summary>
private void BtnClearMail_Click(object sender, EventArgs e)
{
if (MailList.Count == 0) return;
if (MessageBox.Show(Resources.AskConfirmDeletion, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
ListMailList.Items.Clear();
MailList.Clear();
SaveMailList();
}
}
#endregion
#endregion
#region - About -
/// <summary>
@ -1988,7 +2224,11 @@ namespace GrasscutterTools.Forms
if (GOODData.Avatars.TryGetValue(character.Name, out var character_id))
{
if (Check(CommandVersion.V1_4_1))
commands_list.Add($"/give {character_id} lv{character.Level} c{character.Constellation} sl{character.Talents}");
{
// 取最高级的技能等级
var skillLevel = Math.Max(Math.Max(character.Talents.Auto, character.Talents.Skill), character.Talents.Burst);
commands_list.Add($"/give {character_id} lv{character.Level} c{character.Constellation} sl{skillLevel}");
}
else
commands_list.Add($"/give {character_id} lv{character.Level} c{character.Constellation}");
}
@ -2140,7 +2380,7 @@ namespace GrasscutterTools.Forms
if (ListQuest.SelectedIndex == -1)
return;
var item = ListQuest.SelectedItem as string;
var id = item.Substring(0, item.IndexOf(':')).Trim();
var id = ItemMap.ToId(item);
SetCommand("/quest", $"{(sender as Button).Tag} {id}");
}

View File

@ -8193,9 +8193,246 @@
<data name="TCMain.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="BtnAddMailItem.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="BtnAddMailItem.Location" type="System.Drawing.Point, System.Drawing">
<value>329, 121</value>
</data>
<data name="BtnAddMailItem.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="BtnAddMailItem.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="BtnAddMailItem.Text" xml:space="preserve">
<value>+ 添加</value>
</data>
<data name="&gt;&gt;BtnAddMailItem.Name" xml:space="preserve">
<value>BtnAddMailItem</value>
</data>
<data name="&gt;&gt;BtnAddMailItem.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="&gt;&gt;BtnAddMailItem.Parent" xml:space="preserve">
<value>TPMail</value>
</data>
<data name="&gt;&gt;BtnAddMailItem.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="BtnDeleteMailItem.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="BtnDeleteMailItem.Location" type="System.Drawing.Point, System.Drawing">
<value>329, 150</value>
</data>
<data name="BtnDeleteMailItem.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="BtnDeleteMailItem.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="BtnDeleteMailItem.Text" xml:space="preserve">
<value>- 删除</value>
</data>
<data name="&gt;&gt;BtnDeleteMailItem.Name" xml:space="preserve">
<value>BtnDeleteMailItem</value>
</data>
<data name="&gt;&gt;BtnDeleteMailItem.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="&gt;&gt;BtnDeleteMailItem.Parent" xml:space="preserve">
<value>TPMail</value>
</data>
<data name="&gt;&gt;BtnDeleteMailItem.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tabControl1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="TxtMailSelectableItemFilter.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="TxtMailSelectableItemFilter.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="TxtMailSelectableItemFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 23</value>
</data>
<data name="TxtMailSelectableItemFilter.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="&gt;&gt;TxtMailSelectableItemFilter.Name" xml:space="preserve">
<value>TxtMailSelectableItemFilter</value>
</data>
<data name="&gt;&gt;TxtMailSelectableItemFilter.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="&gt;&gt;TxtMailSelectableItemFilter.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;TxtMailSelectableItemFilter.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="NUDMailItemLevel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="NUDMailItemLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>175, 179</value>
</data>
<data name="NUDMailItemLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 23</value>
</data>
<data name="NUDMailItemLevel.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="&gt;&gt;NUDMailItemLevel.Name" xml:space="preserve">
<value>NUDMailItemLevel</value>
</data>
<data name="&gt;&gt;NUDMailItemLevel.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;NUDMailItemLevel.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;NUDMailItemLevel.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="ListMailSelectableItems.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="ListMailSelectableItems.ItemHeight" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="ListMailSelectableItems.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 26</value>
</data>
<data name="ListMailSelectableItems.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="ListMailSelectableItems.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 140</value>
</data>
<data name="ListMailSelectableItems.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.Name" xml:space="preserve">
<value>ListMailSelectableItems</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.Type" xml:space="preserve">
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="LblMailItemLevel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="LblMailItemLevel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LblMailItemLevel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LblMailItemLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>127, 181</value>
</data>
<data name="LblMailItemLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>44, 17</value>
</data>
<data name="LblMailItemLevel.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="LblMailItemLevel.Text" xml:space="preserve">
<value>等级:</value>
</data>
<data name="&gt;&gt;LblMailItemLevel.Name" xml:space="preserve">
<value>LblMailItemLevel</value>
</data>
<data name="&gt;&gt;LblMailItemLevel.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="&gt;&gt;LblMailItemLevel.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;LblMailItemLevel.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="LblMailItemCount.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="LblMailItemCount.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LblMailItemCount.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LblMailItemCount.Location" type="System.Drawing.Point, System.Drawing">
<value>1, 181</value>
</data>
<data name="LblMailItemCount.Size" type="System.Drawing.Size, System.Drawing">
<value>44, 17</value>
</data>
<data name="LblMailItemCount.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="LblMailItemCount.Text" xml:space="preserve">
<value>数量:</value>
</data>
<data name="&gt;&gt;LblMailItemCount.Name" xml:space="preserve">
<value>LblMailItemCount</value>
</data>
<data name="&gt;&gt;LblMailItemCount.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="&gt;&gt;LblMailItemCount.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;LblMailItemCount.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="NUDMailItemCount.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="NUDMailItemCount.Location" type="System.Drawing.Point, System.Drawing">
<value>51, 179</value>
</data>
<data name="NUDMailItemCount.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
</data>
<data name="NUDMailItemCount.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="&gt;&gt;NUDMailItemCount.Name" xml:space="preserve">
<value>NUDMailItemCount</value>
</data>
<data name="&gt;&gt;NUDMailItemCount.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;NUDMailItemCount.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;NUDMailItemCount.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="tabPage1.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="tabPage1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tabPage1.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 204</value>
</data>
<data name="tabPage1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="tabPage1.Text" xml:space="preserve">
<value>物品列表</value>
</data>
<data name="&gt;&gt;tabPage1.Name" xml:space="preserve">
<value>tabPage1</value>
</data>
@ -8208,6 +8445,105 @@
<data name="&gt;&gt;tabPage1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="BtnClearMail.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="BtnClearMail.Location" type="System.Drawing.Point, System.Drawing">
<value>87, 177</value>
</data>
<data name="BtnClearMail.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="BtnClearMail.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
</data>
<data name="BtnClearMail.Text" xml:space="preserve">
<value>× 清空</value>
</data>
<data name="&gt;&gt;BtnClearMail.Name" xml:space="preserve">
<value>BtnClearMail</value>
</data>
<data name="&gt;&gt;BtnClearMail.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="&gt;&gt;BtnClearMail.Parent" xml:space="preserve">
<value>tabPage2</value>
</data>
<data name="&gt;&gt;BtnClearMail.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="BtnRemoveMail.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="BtnRemoveMail.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 178</value>
</data>
<data name="BtnRemoveMail.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="BtnRemoveMail.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="BtnRemoveMail.Text" xml:space="preserve">
<value>- 删除</value>
</data>
<data name="&gt;&gt;BtnRemoveMail.Name" xml:space="preserve">
<value>BtnRemoveMail</value>
</data>
<data name="&gt;&gt;BtnRemoveMail.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="&gt;&gt;BtnRemoveMail.Parent" xml:space="preserve">
<value>tabPage2</value>
</data>
<data name="&gt;&gt;BtnRemoveMail.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="ListMailList.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="ListMailList.ItemHeight" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="ListMailList.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="ListMailList.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="ListMailList.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 174</value>
</data>
<data name="ListMailList.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;ListMailList.Name" xml:space="preserve">
<value>ListMailList</value>
</data>
<data name="&gt;&gt;ListMailList.Type" xml:space="preserve">
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ListMailList.Parent" xml:space="preserve">
<value>tabPage2</value>
</data>
<data name="&gt;&gt;ListMailList.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="tabPage2.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="tabPage2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 204</value>
</data>
<data name="tabPage2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tabPage2.Text" xml:space="preserve">
<value>邮件列表</value>
</data>
<data name="&gt;&gt;tabPage2.Name" xml:space="preserve">
<value>tabPage2</value>
</data>
@ -8227,7 +8563,7 @@
<value>236, 234</value>
</data>
<data name="tabControl1.TabIndex" type="System.Int32, mscorlib">
<value>19</value>
<value>11</value>
</data>
<data name="&gt;&gt;tabControl1.Name" xml:space="preserve">
<value>tabControl1</value>
@ -8239,37 +8575,37 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;tabControl1.ZOrder" xml:space="preserve">
<value>0</value>
<value>2</value>
</data>
<data name="button1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<data name="BtnSendMail.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="button1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<data name="BtnSendMail.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="button1.Location" type="System.Drawing.Point, System.Drawing">
<data name="BtnSendMail.Location" type="System.Drawing.Point, System.Drawing">
<value>329, 219</value>
</data>
<data name="button1.Size" type="System.Drawing.Size, System.Drawing">
<data name="BtnSendMail.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="button1.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
<data name="BtnSendMail.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="button1.Text" xml:space="preserve">
<data name="BtnSendMail.Text" xml:space="preserve">
<value>发送</value>
</data>
<data name="&gt;&gt;button1.Name" xml:space="preserve">
<value>button1</value>
<data name="&gt;&gt;BtnSendMail.Name" xml:space="preserve">
<value>BtnSendMail</value>
</data>
<data name="&gt;&gt;button1.Type" xml:space="preserve">
<data name="&gt;&gt;BtnSendMail.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="&gt;&gt;button1.Parent" xml:space="preserve">
<data name="&gt;&gt;BtnSendMail.Parent" xml:space="preserve">
<value>TPMail</value>
</data>
<data name="&gt;&gt;button1.ZOrder" xml:space="preserve">
<value>1</value>
<data name="&gt;&gt;BtnSendMail.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="ListMailItems.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left</value>
@ -8284,7 +8620,7 @@
<value>250, 123</value>
</data>
<data name="ListMailItems.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
<value>7</value>
</data>
<data name="&gt;&gt;ListMailItems.Name" xml:space="preserve">
<value>ListMailItems</value>
@ -8296,7 +8632,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;ListMailItems.ZOrder" xml:space="preserve">
<value>2</value>
<value>4</value>
</data>
<data name="LblMailItemsLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8326,7 +8662,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;LblMailItemsLabel.ZOrder" xml:space="preserve">
<value>3</value>
<value>5</value>
</data>
<data name="NUDMailRecipient.Location" type="System.Drawing.Point, System.Drawing">
<value>202, 35</value>
@ -8335,7 +8671,7 @@
<value>121, 23</value>
</data>
<data name="NUDMailRecipient.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
<value>4</value>
</data>
<data name="&gt;&gt;NUDMailRecipient.Name" xml:space="preserve">
<value>NUDMailRecipient</value>
@ -8347,7 +8683,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;NUDMailRecipient.ZOrder" xml:space="preserve">
<value>4</value>
<value>6</value>
</data>
<data name="RbMailSendToPlayer.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8362,7 +8698,7 @@
<value>50, 21</value>
</data>
<data name="RbMailSendToPlayer.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
<value>3</value>
</data>
<data name="RbMailSendToPlayer.Text" xml:space="preserve">
<value>玩家</value>
@ -8377,7 +8713,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;RbMailSendToPlayer.ZOrder" xml:space="preserve">
<value>5</value>
<value>7</value>
</data>
<data name="RbMailSendToAll.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8392,7 +8728,7 @@
<value>62, 21</value>
</data>
<data name="RbMailSendToAll.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
<value>2</value>
</data>
<data name="RbMailSendToAll.Text" xml:space="preserve">
<value>所有人</value>
@ -8407,7 +8743,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;RbMailSendToAll.ZOrder" xml:space="preserve">
<value>6</value>
<value>8</value>
</data>
<data name="LblMailRecipientLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8437,7 +8773,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;LblMailRecipientLabel.ZOrder" xml:space="preserve">
<value>7</value>
<value>9</value>
</data>
<data name="TxtMailContent.Location" type="System.Drawing.Point, System.Drawing">
<value>73, 93</value>
@ -8446,7 +8782,7 @@
<value>250, 23</value>
</data>
<data name="TxtMailContent.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
<value>6</value>
</data>
<data name="&gt;&gt;TxtMailContent.Name" xml:space="preserve">
<value>TxtMailContent</value>
@ -8458,7 +8794,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;TxtMailContent.ZOrder" xml:space="preserve">
<value>8</value>
<value>10</value>
</data>
<data name="LblMailContentLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8488,7 +8824,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;LblMailContentLabel.ZOrder" xml:space="preserve">
<value>9</value>
<value>11</value>
</data>
<data name="TxtMailTitle.Location" type="System.Drawing.Point, System.Drawing">
<value>73, 64</value>
@ -8497,7 +8833,7 @@
<value>250, 23</value>
</data>
<data name="TxtMailTitle.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
<value>5</value>
</data>
<data name="&gt;&gt;TxtMailTitle.Name" xml:space="preserve">
<value>TxtMailTitle</value>
@ -8509,7 +8845,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;TxtMailTitle.ZOrder" xml:space="preserve">
<value>10</value>
<value>12</value>
</data>
<data name="LblMailTitleLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8539,7 +8875,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;LblMailTitleLabel.ZOrder" xml:space="preserve">
<value>11</value>
<value>13</value>
</data>
<data name="TxtMailSender.Location" type="System.Drawing.Point, System.Drawing">
<value>73, 6</value>
@ -8560,7 +8896,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;TxtMailSender.ZOrder" xml:space="preserve">
<value>12</value>
<value>14</value>
</data>
<data name="LblMailSenderLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8590,7 +8926,7 @@
<value>TPMail</value>
</data>
<data name="&gt;&gt;LblMailSenderLabel.ZOrder" xml:space="preserve">
<value>13</value>
<value>15</value>
</data>
<data name="TPMail.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
@ -8643,60 +8979,6 @@
<data name="&gt;&gt;TCMain.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="ListMailSelectableItems.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="ListMailSelectableItems.ItemHeight" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="ListMailSelectableItems.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 26</value>
</data>
<data name="ListMailSelectableItems.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="ListMailSelectableItems.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 140</value>
</data>
<data name="ListMailSelectableItems.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.Name" xml:space="preserve">
<value>ListMailSelectableItems</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.Type" xml:space="preserve">
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="TxtMailSelectableItemFilter.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="TxtMailSelectableItemFilter.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="TxtMailSelectableItemFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 23</value>
</data>
<data name="TxtMailSelectableItemFilter.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="&gt;&gt;TxtMailSelectableItemFilter.Name" xml:space="preserve">
<value>TxtMailSelectableItemFilter</value>
</data>
<data name="&gt;&gt;TxtMailSelectableItemFilter.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="&gt;&gt;TxtMailSelectableItemFilter.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;TxtMailSelectableItemFilter.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="TxtBanReason.Location" type="System.Drawing.Point, System.Drawing">
<value>250, 22</value>
</data>
@ -8721,354 +9003,6 @@
<data name="&gt;&gt;TxtBanReason.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>1, 177</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>44, 17</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>数量:</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.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="&gt;&gt;label1.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="numericUpDown1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="numericUpDown1.Location" type="System.Drawing.Point, System.Drawing">
<value>51, 175</value>
</data>
<data name="numericUpDown1.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
</data>
<data name="numericUpDown1.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
</data>
<data name="&gt;&gt;numericUpDown1.Name" xml:space="preserve">
<value>numericUpDown1</value>
</data>
<data name="&gt;&gt;numericUpDown1.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;numericUpDown1.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;numericUpDown1.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="label2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
<value>127, 177</value>
</data>
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
<value>44, 17</value>
</data>
<data name="label2.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>等级:</value>
</data>
<data name="&gt;&gt;label2.Name" xml:space="preserve">
<value>label2</value>
</data>
<data name="&gt;&gt;label2.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="&gt;&gt;label2.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="numericUpDown2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="numericUpDown2.Location" type="System.Drawing.Point, System.Drawing">
<value>175, 175</value>
</data>
<data name="numericUpDown2.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 23</value>
</data>
<data name="numericUpDown2.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
</data>
<data name="&gt;&gt;numericUpDown2.Name" xml:space="preserve">
<value>numericUpDown2</value>
</data>
<data name="&gt;&gt;numericUpDown2.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;numericUpDown2.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;numericUpDown2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;TxtMailSelectableItemFilter.Name" xml:space="preserve">
<value>TxtMailSelectableItemFilter</value>
</data>
<data name="&gt;&gt;TxtMailSelectableItemFilter.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="&gt;&gt;TxtMailSelectableItemFilter.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;TxtMailSelectableItemFilter.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;numericUpDown2.Name" xml:space="preserve">
<value>numericUpDown2</value>
</data>
<data name="&gt;&gt;numericUpDown2.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;numericUpDown2.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;numericUpDown2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.Name" xml:space="preserve">
<value>ListMailSelectableItems</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.Type" xml:space="preserve">
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;ListMailSelectableItems.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="&gt;&gt;label2.Name" xml:space="preserve">
<value>label2</value>
</data>
<data name="&gt;&gt;label2.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="&gt;&gt;label2.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.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="&gt;&gt;label1.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="&gt;&gt;numericUpDown1.Name" xml:space="preserve">
<value>numericUpDown1</value>
</data>
<data name="&gt;&gt;numericUpDown1.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;numericUpDown1.Parent" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;numericUpDown1.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="tabPage1.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="tabPage1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tabPage1.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 204</value>
</data>
<data name="tabPage1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="tabPage1.Text" xml:space="preserve">
<value>物品列表</value>
</data>
<data name="&gt;&gt;tabPage1.Name" xml:space="preserve">
<value>tabPage1</value>
</data>
<data name="&gt;&gt;tabPage1.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tabPage1.Parent" xml:space="preserve">
<value>tabControl1</value>
</data>
<data name="&gt;&gt;tabPage1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;button3.Name" xml:space="preserve">
<value>button3</value>
</data>
<data name="&gt;&gt;button3.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="&gt;&gt;button3.Parent" xml:space="preserve">
<value>tabPage2</value>
</data>
<data name="&gt;&gt;button3.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;button2.Name" xml:space="preserve">
<value>button2</value>
</data>
<data name="&gt;&gt;button2.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="&gt;&gt;button2.Parent" xml:space="preserve">
<value>tabPage2</value>
</data>
<data name="&gt;&gt;button2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;ListMailList.Name" xml:space="preserve">
<value>ListMailList</value>
</data>
<data name="&gt;&gt;ListMailList.Type" xml:space="preserve">
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ListMailList.Parent" xml:space="preserve">
<value>tabPage2</value>
</data>
<data name="&gt;&gt;ListMailList.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="tabPage2.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="tabPage2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 204</value>
</data>
<data name="tabPage2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tabPage2.Text" xml:space="preserve">
<value>邮件列表</value>
</data>
<data name="&gt;&gt;tabPage2.Name" xml:space="preserve">
<value>tabPage2</value>
</data>
<data name="&gt;&gt;tabPage2.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tabPage2.Parent" xml:space="preserve">
<value>tabControl1</value>
</data>
<data name="&gt;&gt;tabPage2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="ListMailList.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="ListMailList.ItemHeight" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="ListMailList.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="ListMailList.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="ListMailList.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 174</value>
</data>
<data name="ListMailList.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;ListMailList.Name" xml:space="preserve">
<value>ListMailList</value>
</data>
<data name="&gt;&gt;ListMailList.Type" xml:space="preserve">
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ListMailList.Parent" xml:space="preserve">
<value>tabPage2</value>
</data>
<data name="&gt;&gt;ListMailList.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="button2.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 178</value>
</data>
<data name="button2.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="button2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="button2.Text" xml:space="preserve">
<value>- 删除</value>
</data>
<data name="&gt;&gt;button2.Name" xml:space="preserve">
<value>button2</value>
</data>
<data name="&gt;&gt;button2.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="&gt;&gt;button2.Parent" xml:space="preserve">
<value>tabPage2</value>
</data>
<data name="&gt;&gt;button2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="button3.Location" type="System.Drawing.Point, System.Drawing">
<value>87, 177</value>
</data>
<data name="button3.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="button3.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="button3.Text" xml:space="preserve">
<value>× 清空</value>
</data>
<data name="&gt;&gt;button3.Name" xml:space="preserve">
<value>button3</value>
</data>
<data name="&gt;&gt;button3.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="&gt;&gt;button3.Parent" xml:space="preserve">
<value>tabPage2</value>
</data>
<data name="&gt;&gt;button3.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>
@ -9081,6 +9015,9 @@
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft YaHei UI, 9pt</value>
</data>
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value>
</data>

View File

@ -69,5 +69,7 @@ namespace GrasscutterTools.Game
public string[] Names { get; }
public string[] Lines { get; }
public static int ToId(string line) => int.Parse(line.Substring(0, line.IndexOf(':')).Trim());
}
}

View File

@ -45,5 +45,13 @@ namespace GrasscutterTools.Game.Mail
/// 发送时间
/// </summary>
public DateTime SendTime { get; set; }
public override string ToString()
{
if (SendToAll)
return $"ToAll: [{Title}] {Content} | {SendTime}";
else
return $"To[{Recipient}]: [{Title}] {Content} | {SendTime}";
}
}
}

View File

@ -22,7 +22,12 @@
public override string ToString()
{
return $"{ItemId}:{GameData.Items[ItemId]} x{ItemCount} lv{ItemLevel}";
if (ItemLevel > 1)
return $"{ItemId}:{GameData.Items[ItemId]} x{ItemCount} lv{ItemLevel}";
else if (ItemCount > 1)
return $"{ItemId}:{GameData.Items[ItemId]} x{ItemCount}";
else
return $"{ItemId}:{GameData.Items[ItemId]}";
}
}
}