Added Ban Command

Added TopMast CheckBox
Added GC Version CheckBox
This commit is contained in:
2022-06-28 22:14:57 +08:00
parent cae6f73eeb
commit f678b10171
10 changed files with 1485 additions and 584 deletions

View File

@ -37,6 +37,12 @@
<setting name="TokenCache" serializeAs="String"> <setting name="TokenCache" serializeAs="String">
<value /> <value />
</setting> </setting>
<setting name="CommandVersion" serializeAs="String">
<value />
</setting>
<setting name="IsTopMost" serializeAs="String">
<value>False</value>
</setting>
</GrasscutterTools.Properties.Settings> </GrasscutterTools.Properties.Settings>
</userSettings> </userSettings>
</configuration> </configuration>

View File

@ -0,0 +1,187 @@
using System;
using System.ComponentModel;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace GrasscutterTools.Controls
{
[ToolboxItem(true)]
public class TextBoxXP : TextBox
{
/// <summary>
/// 获得当前进程,以便重绘控件
/// </summary>
/// <param name="hWnd"></param>
/// <returns></returns>
[DllImport("user32.dll")]
private static extern IntPtr GetWindowDC(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
private const int EM_SETCUEBANNER = 0x1501;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern Int32 SendMessage
(IntPtr hWnd, int msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam);
/// <summary>
/// 水印文本
/// </summary>
private string _Watermark = "";
private float maximum;
private float minimum;
#region
/// <summary>
/// 是否启用热点效果
/// </summary>
[Category("外观")]
[Browsable(true)]
[Localizable(true)]
[Description("获取或设置输入框水印文本")]
[DefaultValue("")]
public string Watermark
{
get
{
return this._Watermark;
}
set
{
this._Watermark = value;
SendMessage(Handle, EM_SETCUEBANNER, 0, _Watermark);
this.Invalidate();
}
}
/// <summary>
/// 是否只能输入数字
/// </summary>
[Category("行为")]
[Browsable(true)]
[Description("获取或设置TextBox是否只允许输入数字")]
[DefaultValue(false)]
public bool DigitOnly { get; set; }
/// <summary>
/// 转为数值
/// </summary>
public float Number
{
get
{
if (float.TryParse(Text, out float value))
return value;
else
return 0f;
}
}
[Category("数据")]
[Browsable(true)]
[DefaultValue(0)]
[Description("指示小数点后位数")]
public int DecimalPlaces { get; set; }
[Category("数据")]
[Description("获取或设置限制的最大值")]
public float Maximum
{
get
{
return maximum;
}
set
{
maximum = value;
if (minimum > maximum)
{
minimum = maximum;
}
}
}
[Category("数据")]
[Browsable(true)]
[Description("获取或设置限制的最小值")]
public float Minimum
{
get
{
return minimum;
}
set
{
minimum = value;
if (minimum > maximum)
{
maximum = value;
}
}
}
#endregion
/// <summary>
///
/// </summary>
public TextBoxXP()
: base()
{
//BorderStyle = BorderStyle.FixedSingle;
//Font = Styles.StaticResources.DefaultFont;
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
base.OnKeyPress(e);
// 如果只允许输入数字,则判断输入是否为退格或者数字
if (DigitOnly)
{
//IsNumber指定字符串中位于指定位置的字符是否属于数字类别
//IsPunctuation指定字符串中位于指定位置的字符是否属于标点符号类别
//IsControl指定字符串中位于指定位置的字符是否属于控制字符类别
if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar))
{
e.Handled = true; //获取或设置一个值指示是否处理过System.Windows.Forms.Control.KeyPress事件
}
else if (Char.IsPunctuation(e.KeyChar) && DecimalPlaces > 0)
{
if (e.KeyChar == '.')
{
if (Text.LastIndexOf('.') != -1)
{
e.Handled = true;
}
}
else
{
e.Handled = true;
}
}
}
}
protected override void OnLeave(EventArgs e)
{
base.OnLeave(e);
if (DigitOnly)
{
if (!string.IsNullOrWhiteSpace(Text))
{
if (Number > Maximum)
Text = Maximum.ToString("F" + DecimalPlaces);
if (Number < Minimum)
Text = Minimum.ToString("F" + DecimalPlaces);
}
}
}
}
}

View File

@ -42,6 +42,8 @@ namespace GrasscutterTools.Forms
this.BtnOpenGachaBannerEditor = new System.Windows.Forms.Button(); this.BtnOpenGachaBannerEditor = new System.Windows.Forms.Button();
this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.GrpSettings = new System.Windows.Forms.GroupBox(); this.GrpSettings = new System.Windows.Forms.GroupBox();
this.ChkTopMost = new System.Windows.Forms.CheckBox();
this.ChkNewCommand = new System.Windows.Forms.CheckBox();
this.CmbLanguage = new System.Windows.Forms.ComboBox(); this.CmbLanguage = new System.Windows.Forms.ComboBox();
this.LblLanguage = new System.Windows.Forms.Label(); this.LblLanguage = new System.Windows.Forms.Label();
this.NUDUid = new System.Windows.Forms.NumericUpDown(); this.NUDUid = new System.Windows.Forms.NumericUpDown();
@ -161,6 +163,13 @@ namespace GrasscutterTools.Forms
this.LblSceneDescription = new System.Windows.Forms.Label(); this.LblSceneDescription = new System.Windows.Forms.Label();
this.ListScenes = new System.Windows.Forms.ListBox(); this.ListScenes = new System.Windows.Forms.ListBox();
this.TPManage = new System.Windows.Forms.TabPage(); this.TPManage = new System.Windows.Forms.TabPage();
this.GrpBanPlayer = new System.Windows.Forms.GroupBox();
this.DTPBanEndTime = new System.Windows.Forms.DateTimePicker();
this.BtnUnban = new System.Windows.Forms.Button();
this.BtnBan = new System.Windows.Forms.Button();
this.TxtBanReason = new GrasscutterTools.Controls.TextBoxXP();
this.NUDBanUID = new System.Windows.Forms.NumericUpDown();
this.LblBanUID = new System.Windows.Forms.Label();
this.GrpAccount = new System.Windows.Forms.GroupBox(); this.GrpAccount = new System.Windows.Forms.GroupBox();
this.ChkAccountSetUid = new System.Windows.Forms.CheckBox(); this.ChkAccountSetUid = new System.Windows.Forms.CheckBox();
this.NUDAccountUid = new System.Windows.Forms.NumericUpDown(); this.NUDAccountUid = new System.Windows.Forms.NumericUpDown();
@ -245,6 +254,8 @@ namespace GrasscutterTools.Forms
((System.ComponentModel.ISupportInitialize)(this.NUDTpY)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NUDTpY)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDTpX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NUDTpX)).BeginInit();
this.TPManage.SuspendLayout(); this.TPManage.SuspendLayout();
this.GrpBanPlayer.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDBanUID)).BeginInit();
this.GrpAccount.SuspendLayout(); this.GrpAccount.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDAccountUid)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NUDAccountUid)).BeginInit();
this.GrpPermission.SuspendLayout(); this.GrpPermission.SuspendLayout();
@ -355,6 +366,8 @@ namespace GrasscutterTools.Forms
// GrpSettings // GrpSettings
// //
resources.ApplyResources(this.GrpSettings, "GrpSettings"); resources.ApplyResources(this.GrpSettings, "GrpSettings");
this.GrpSettings.Controls.Add(this.ChkTopMost);
this.GrpSettings.Controls.Add(this.ChkNewCommand);
this.GrpSettings.Controls.Add(this.CmbLanguage); this.GrpSettings.Controls.Add(this.CmbLanguage);
this.GrpSettings.Controls.Add(this.LblLanguage); this.GrpSettings.Controls.Add(this.LblLanguage);
this.GrpSettings.Controls.Add(this.NUDUid); this.GrpSettings.Controls.Add(this.NUDUid);
@ -363,6 +376,19 @@ namespace GrasscutterTools.Forms
this.GrpSettings.Name = "GrpSettings"; this.GrpSettings.Name = "GrpSettings";
this.GrpSettings.TabStop = false; this.GrpSettings.TabStop = false;
// //
// ChkTopMost
//
resources.ApplyResources(this.ChkTopMost, "ChkTopMost");
this.ChkTopMost.Name = "ChkTopMost";
this.ChkTopMost.UseVisualStyleBackColor = true;
this.ChkTopMost.CheckedChanged += new System.EventHandler(this.ChkTopMost_CheckedChanged);
//
// ChkNewCommand
//
resources.ApplyResources(this.ChkNewCommand, "ChkNewCommand");
this.ChkNewCommand.Name = "ChkNewCommand";
this.ChkNewCommand.UseVisualStyleBackColor = true;
//
// CmbLanguage // CmbLanguage
// //
resources.ApplyResources(this.CmbLanguage, "CmbLanguage"); resources.ApplyResources(this.CmbLanguage, "CmbLanguage");
@ -1440,11 +1466,75 @@ namespace GrasscutterTools.Forms
// TPManage // TPManage
// //
resources.ApplyResources(this.TPManage, "TPManage"); resources.ApplyResources(this.TPManage, "TPManage");
this.TPManage.Controls.Add(this.GrpBanPlayer);
this.TPManage.Controls.Add(this.GrpAccount); this.TPManage.Controls.Add(this.GrpAccount);
this.TPManage.Controls.Add(this.GrpPermission); this.TPManage.Controls.Add(this.GrpPermission);
this.TPManage.Name = "TPManage"; this.TPManage.Name = "TPManage";
this.TPManage.UseVisualStyleBackColor = true; this.TPManage.UseVisualStyleBackColor = true;
// //
// GrpBanPlayer
//
resources.ApplyResources(this.GrpBanPlayer, "GrpBanPlayer");
this.GrpBanPlayer.Controls.Add(this.DTPBanEndTime);
this.GrpBanPlayer.Controls.Add(this.BtnUnban);
this.GrpBanPlayer.Controls.Add(this.BtnBan);
this.GrpBanPlayer.Controls.Add(this.TxtBanReason);
this.GrpBanPlayer.Controls.Add(this.NUDBanUID);
this.GrpBanPlayer.Controls.Add(this.LblBanUID);
this.GrpBanPlayer.Name = "GrpBanPlayer";
this.GrpBanPlayer.TabStop = false;
//
// DTPBanEndTime
//
resources.ApplyResources(this.DTPBanEndTime, "DTPBanEndTime");
this.DTPBanEndTime.Format = System.Windows.Forms.DateTimePickerFormat.Short;
this.DTPBanEndTime.MaxDate = new System.DateTime(2034, 12, 31, 0, 0, 0, 0);
this.DTPBanEndTime.MinDate = new System.DateTime(2022, 6, 28, 0, 0, 0, 0);
this.DTPBanEndTime.Name = "DTPBanEndTime";
this.DTPBanEndTime.Value = new System.DateTime(2025, 12, 31, 0, 0, 0, 0);
//
// BtnUnban
//
resources.ApplyResources(this.BtnUnban, "BtnUnban");
this.BtnUnban.Name = "BtnUnban";
this.BtnUnban.UseVisualStyleBackColor = true;
this.BtnUnban.Click += new System.EventHandler(this.BtnUnban_Click);
//
// BtnBan
//
resources.ApplyResources(this.BtnBan, "BtnBan");
this.BtnBan.Name = "BtnBan";
this.BtnBan.UseVisualStyleBackColor = true;
this.BtnBan.Click += new System.EventHandler(this.BtnBan_Click);
//
// TxtBanReason
//
resources.ApplyResources(this.TxtBanReason, "TxtBanReason");
this.TxtBanReason.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.TxtBanReason.Maximum = 0F;
this.TxtBanReason.Minimum = 0F;
this.TxtBanReason.Name = "TxtBanReason";
//
// NUDBanUID
//
resources.ApplyResources(this.NUDBanUID, "NUDBanUID");
this.NUDBanUID.Maximum = new decimal(new int[] {
2147483647,
0,
0,
0});
this.NUDBanUID.Name = "NUDBanUID";
this.NUDBanUID.Value = new decimal(new int[] {
10001,
0,
0,
0});
//
// LblBanUID
//
resources.ApplyResources(this.LblBanUID, "LblBanUID");
this.LblBanUID.Name = "LblBanUID";
//
// GrpAccount // GrpAccount
// //
resources.ApplyResources(this.GrpAccount, "GrpAccount"); resources.ApplyResources(this.GrpAccount, "GrpAccount");
@ -1859,6 +1949,9 @@ namespace GrasscutterTools.Forms
((System.ComponentModel.ISupportInitialize)(this.NUDTpY)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NUDTpY)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDTpX)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NUDTpX)).EndInit();
this.TPManage.ResumeLayout(false); this.TPManage.ResumeLayout(false);
this.GrpBanPlayer.ResumeLayout(false);
this.GrpBanPlayer.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDBanUID)).EndInit();
this.GrpAccount.ResumeLayout(false); this.GrpAccount.ResumeLayout(false);
this.GrpAccount.PerformLayout(); this.GrpAccount.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDAccountUid)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NUDAccountUid)).EndInit();
@ -2061,6 +2154,15 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.Label LblToken; private System.Windows.Forms.Label LblToken;
private System.Windows.Forms.Label LblConsoleTip; private System.Windows.Forms.Label LblConsoleTip;
private System.Windows.Forms.LinkLabel LnkResetCustomCommands; private System.Windows.Forms.LinkLabel LnkResetCustomCommands;
private System.Windows.Forms.CheckBox ChkTopMost;
private System.Windows.Forms.CheckBox ChkNewCommand;
private System.Windows.Forms.GroupBox GrpBanPlayer;
private System.Windows.Forms.NumericUpDown NUDBanUID;
private System.Windows.Forms.Label LblBanUID;
private System.Windows.Forms.Button BtnUnban;
private System.Windows.Forms.Button BtnBan;
private Controls.TextBoxXP TxtBanReason;
private System.Windows.Forms.DateTimePicker DTPBanEndTime;
} }
} }

View File

@ -22,6 +22,7 @@ using System.Drawing;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
@ -89,6 +90,8 @@ namespace GrasscutterTools.Forms
{ {
ChkAutoCopy.Checked = Settings.Default.AutoCopy; ChkAutoCopy.Checked = Settings.Default.AutoCopy;
NUDUid.Value = Settings.Default.Uid; NUDUid.Value = Settings.Default.Uid;
ChkTopMost.Checked = Settings.Default.IsTopMost;
ChkNewCommand.Checked = Settings.Default.CommandVersion == "1.2.2";
CmbLanguage.Items.AddRange(LanguageNames); CmbLanguage.Items.AddRange(LanguageNames);
CmbLanguage.SelectedIndex = Array.IndexOf(Languages, Settings.Default.DefaultLanguage); CmbLanguage.SelectedIndex = Array.IndexOf(Languages, Settings.Default.DefaultLanguage);
@ -110,6 +113,8 @@ namespace GrasscutterTools.Forms
{ {
Settings.Default.AutoCopy = ChkAutoCopy.Checked; Settings.Default.AutoCopy = ChkAutoCopy.Checked;
Settings.Default.Uid = NUDUid.Value; Settings.Default.Uid = NUDUid.Value;
Settings.Default.IsTopMost = ChkTopMost.Checked;
Settings.Default.CommandVersion = ChkNewCommand.Checked ? "1.2.2" : string.Empty;
SaveCustomCommands(); SaveCustomCommands();
SaveGiveItemRecord(); SaveGiveItemRecord();
SaveSpawnRecord(); SaveSpawnRecord();
@ -200,6 +205,11 @@ namespace GrasscutterTools.Forms
FormMain_Load(this, EventArgs.Empty); FormMain_Load(this, EventArgs.Empty);
} }
private void ChkTopMost_CheckedChanged(object sender, EventArgs e)
{
TopMost = ChkTopMost.Checked;
}
#endregion - - #endregion - -
#region - - #region - -
@ -842,10 +852,14 @@ namespace GrasscutterTools.Forms
SetCommand("/changescene", id.ToString()); SetCommand("/changescene", id.ToString());
} }
static readonly string[] climateTypes = { "none", "sunny", "cloudy", "rain", "thunderstorm", "snow", "mist" };
private void CmbClimateType_SelectedIndexChanged(object sender, EventArgs e) private void CmbClimateType_SelectedIndexChanged(object sender, EventArgs e)
{ {
if (CmbClimateType.SelectedIndex < 0) if (CmbClimateType.SelectedIndex < 0)
return; return;
if (ChkNewCommand.Checked)
SetCommand("/weather", CmbClimateType.SelectedIndex < climateTypes.Length ? climateTypes[CmbClimateType.SelectedIndex] : "none");
else
SetCommand("/weather", $"0 {CmbClimateType.SelectedIndex}"); SetCommand("/weather", $"0 {CmbClimateType.SelectedIndex}");
} }
@ -888,7 +902,7 @@ namespace GrasscutterTools.Forms
#endregion - - #endregion - -
#region - - #region - -
private void InitPermList() private void InitPermList()
{ {
@ -919,7 +933,23 @@ namespace GrasscutterTools.Forms
SetCommand($"/account {(sender as Button).Tag} {username} {(ChkAccountSetUid.Checked ? NUDAccountUid.Value.ToString() : "")}"); SetCommand($"/account {(sender as Button).Tag} {username} {(ChkAccountSetUid.Checked ? NUDAccountUid.Value.ToString() : "")}");
} }
#endregion - - private void BtnBan_Click(object sender, EventArgs e)
{
var uid = NUDBanUID.Value;
var endTime = DTPBanEndTime.Value;
var command = $"/ban @{uid} {new DateTimeOffset(endTime).ToUnixTimeSeconds()}";
var reaseon = Regex.Replace(TxtBanReason.Text.Trim(), @"\s+", "-");
if (!string.IsNullOrEmpty(reaseon))
command += $" {reaseon}";
SetCommand(command);
}
private void BtnUnban_Click(object sender, EventArgs e)
{
SetCommand($"/unban @{NUDBanUID.Value}");
}
#endregion - -
#region - - #region - -

View File

@ -157,6 +157,12 @@
<data name="GrpSettings.Text" xml:space="preserve"> <data name="GrpSettings.Text" xml:space="preserve">
<value>Settings</value> <value>Settings</value>
</data> </data>
<data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 21</value>
</data>
<data name="ChkTopMost.Text" xml:space="preserve">
<value>Top most</value>
</data>
<data name="ChkIncludeUID.Size" type="System.Drawing.Size, System.Drawing"> <data name="ChkIncludeUID.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 21</value> <value>95, 21</value>
</data> </data>
@ -691,6 +697,27 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="TPManage.Text" xml:space="preserve"> <data name="TPManage.Text" xml:space="preserve">
<value>Manage</value> <value>Manage</value>
</data> </data>
<data name="GrpBanPlayer.Text" xml:space="preserve">
<value>Ban Management</value>
</data>
<data name="BtnUnban.Text" xml:space="preserve">
<value>Unban</value>
</data>
<data name="BtnBan.Text" xml:space="preserve">
<value>Ban</value>
</data>
<data name="TxtBanReason.Watermark" xml:space="preserve">
<value>Reason</value>
</data>
<data name="LblBanUID.Location" type="System.Drawing.Point, System.Drawing">
<value>30, 25</value>
</data>
<data name="LblBanUID.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 17</value>
</data>
<data name="LblBanUID.Text" xml:space="preserve">
<value>UID</value>
</data>
<data name="GrpAccount.Text" xml:space="preserve"> <data name="GrpAccount.Text" xml:space="preserve">
<value>Account Management</value> <value>Account Management</value>
</data> </data>
@ -835,9 +862,6 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="BtnConsoleConnect.Text" xml:space="preserve"> <data name="BtnConsoleConnect.Text" xml:space="preserve">
<value>Connect</value> <value>Connect</value>
</data> </data>
<data name="LblConsoleTip.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LblConsoleTip.Text" xml:space="preserve"> <data name="LblConsoleTip.Text" xml:space="preserve">
<value>Note that normal commands in the console state must specify the target (set include UID)</value> <value>Note that normal commands in the console state must specify the target (set include UID)</value>
</data> </data>
@ -862,7 +886,4 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
<data name="LblHost.Text" xml:space="preserve"> <data name="LblHost.Text" xml:space="preserve">
<value>Host</value> <value>Host</value>
</data> </data>
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
</root> </root>

File diff suppressed because it is too large Load Diff

View File

@ -130,11 +130,14 @@
<data name="ChkAutoCopy.Text" xml:space="preserve"> <data name="ChkAutoCopy.Text" xml:space="preserve">
<value>Авто</value> <value>Авто</value>
</data> </data>
<data name="GrpCommand.Text" xml:space="preserve">
<value>Команда (нажмите и удерживайте Ctrl для автоматического запуска)</value>
</data>
<data name="BtnInvokeOpenCommand.Text" xml:space="preserve"> <data name="BtnInvokeOpenCommand.Text" xml:space="preserve">
<value>Выполнить(F5)</value> <value>Выполнить(F5)</value>
</data> </data>
<data name="GrpCommand.Text" xml:space="preserve"> <data name="TPHome.Text" xml:space="preserve">
<value>Команда (нажмите и удерживайте Ctrl для автоматического запуска)</value> <value>Главная</value>
</data> </data>
<data name="LblAbout.Location" type="System.Drawing.Point, System.Drawing"> <data name="LblAbout.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 41</value> <value>12, 41</value>
@ -146,7 +149,7 @@
<value>Желаем приятно провести время!</value> <value>Желаем приятно провести время!</value>
</data> </data>
<data name="BtnOpenTextMap.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnOpenTextMap.Location" type="System.Drawing.Point, System.Drawing">
<value>152, 122</value> <value>152, 99</value>
</data> </data>
<data name="BtnOpenTextMap.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnOpenTextMap.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 23</value> <value>120, 23</value>
@ -160,17 +163,23 @@
<data name="BtnOpenGachaBannerEditor.Text" xml:space="preserve"> <data name="BtnOpenGachaBannerEditor.Text" xml:space="preserve">
<value>Редактор баннеров</value> <value>Редактор баннеров</value>
</data> </data>
<data name="GrpSettings.Text" xml:space="preserve">
<value>Настройки</value>
</data>
<data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing">
<value>122, 21</value>
</data>
<data name="ChkTopMost.Text" xml:space="preserve">
<value>самый верхний</value>
</data>
<data name="ChkIncludeUID.Size" type="System.Drawing.Size, System.Drawing"> <data name="ChkIncludeUID.Size" type="System.Drawing.Size, System.Drawing">
<value>113, 21</value> <value>113, 21</value>
</data> </data>
<data name="ChkIncludeUID.Text" xml:space="preserve"> <data name="ChkIncludeUID.Text" xml:space="preserve">
<value>Включить UID</value> <value>Включить UID</value>
</data> </data>
<data name="GrpSettings.Text" xml:space="preserve"> <data name="TPCustom.Text" xml:space="preserve">
<value>Настройки</value> <value>Кастомное</value>
</data>
<data name="TPHome.Text" xml:space="preserve">
<value>Главная</value>
</data> </data>
<data name="BtnExportCustomCommands.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnExportCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>526, 216</value> <value>526, 216</value>
@ -196,6 +205,9 @@
<data name="LblCustomName.Text" xml:space="preserve"> <data name="LblCustomName.Text" xml:space="preserve">
<value>Метка</value> <value>Метка</value>
</data> </data>
<data name="groupBox1.Text" xml:space="preserve">
<value>Список</value>
</data>
<data name="LnkResetCustomCommands.Location" type="System.Drawing.Point, System.Drawing"> <data name="LnkResetCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>488, -1</value> <value>488, -1</value>
</data> </data>
@ -205,13 +217,6 @@
<data name="LnkResetCustomCommands.Text" xml:space="preserve"> <data name="LnkResetCustomCommands.Text" xml:space="preserve">
<value>перезагрузить</value> <value>перезагрузить</value>
</data> </data>
<data name="groupBox1.Text" xml:space="preserve">
<value>Список</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="BtnRemoveCustomCommand.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="BtnRemoveCustomCommand.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnRemoveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>369, 216</value> <value>369, 216</value>
</data> </data>
@ -236,8 +241,8 @@
<data name="TxtCustomName.Size" type="System.Drawing.Size, System.Drawing"> <data name="TxtCustomName.Size" type="System.Drawing.Size, System.Drawing">
<value>204, 23</value> <value>204, 23</value>
</data> </data>
<data name="TPCustom.Text" xml:space="preserve"> <data name="TPArtifact.Text" xml:space="preserve">
<value>Кастомное</value> <value>Артефакт</value>
</data> </data>
<data name="BtnAddSubAttr.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnAddSubAttr.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 23</value> <value>100, 23</value>
@ -314,8 +319,11 @@
<data name="LblMainAttribution.Text" xml:space="preserve"> <data name="LblMainAttribution.Text" xml:space="preserve">
<value>Основ. Стат.</value> <value>Основ. Стат.</value>
</data> </data>
<data name="TPArtifact.Text" xml:space="preserve"> <data name="TPQuest.Text" xml:space="preserve">
<value>Артефакт</value> <value>Квест</value>
</data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>Фильтр списка</value>
</data> </data>
<data name="ChkQuestFilterTEST.Size" type="System.Drawing.Size, System.Drawing"> <data name="ChkQuestFilterTEST.Size" type="System.Drawing.Size, System.Drawing">
<value>52, 21</value> <value>52, 21</value>
@ -335,9 +343,6 @@
<data name="ChkQuestFilterHIDDEN.Text" xml:space="preserve"> <data name="ChkQuestFilterHIDDEN.Text" xml:space="preserve">
<value>Скрытый</value> <value>Скрытый</value>
</data> </data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>Фильтр списка</value>
</data>
<data name="BtnFinishQuest.Text" xml:space="preserve"> <data name="BtnFinishQuest.Text" xml:space="preserve">
<value>Финиш</value> <value>Финиш</value>
</data> </data>
@ -349,8 +354,8 @@
Совет: Для многих квестов требуется поддержка сценариев на стороне сервера Совет: Для многих квестов требуется поддержка сценариев на стороне сервера
Поэтому квест можно добавлять и заканчивать, но не обязательно можно работать</value> Поэтому квест можно добавлять и заканчивать, но не обязательно можно работать</value>
</data> </data>
<data name="TPQuest.Text" xml:space="preserve"> <data name="TPSpawn.Text" xml:space="preserve">
<value>Квест</value> <value>Спавн</value>
</data> </data>
<data name="BtnSaveSpawnLog.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnSaveSpawnLog.Location" type="System.Drawing.Point, System.Drawing">
<value>255, 31</value> <value>255, 31</value>
@ -364,15 +369,24 @@
<data name="BtnRemoveSpawnLog.Text" xml:space="preserve"> <data name="BtnRemoveSpawnLog.Text" xml:space="preserve">
<value>× Удалить</value> <value>× Удалить</value>
</data> </data>
<data name="ListSpawnLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>234, 162</value>
</data>
<data name="GrpSpawnRecord.Size" type="System.Drawing.Size, System.Drawing"> <data name="GrpSpawnRecord.Size" type="System.Drawing.Size, System.Drawing">
<value>240, 184</value> <value>240, 184</value>
</data> </data>
<data name="GrpSpawnRecord.Text" xml:space="preserve"> <data name="GrpSpawnRecord.Text" xml:space="preserve">
<value>Запись</value> <value>Запись</value>
</data> </data>
<data name="ListSpawnLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>234, 162</value>
</data>
<data name="GrpEntityType.Location" type="System.Drawing.Point, System.Drawing">
<value>255, 101</value>
</data>
<data name="GrpEntityType.Size" type="System.Drawing.Size, System.Drawing">
<value>97, 134</value>
</data>
<data name="GrpEntityType.Text" xml:space="preserve">
<value>Класс</value>
</data>
<data name="RbEntityOrnament.Size" type="System.Drawing.Size, System.Drawing"> <data name="RbEntityOrnament.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 21</value> <value>88, 21</value>
</data> </data>
@ -391,15 +405,6 @@
<data name="RbEntityMonster.Text" xml:space="preserve"> <data name="RbEntityMonster.Text" xml:space="preserve">
<value>Монстры</value> <value>Монстры</value>
</data> </data>
<data name="GrpEntityType.Location" type="System.Drawing.Point, System.Drawing">
<value>255, 101</value>
</data>
<data name="GrpEntityType.Size" type="System.Drawing.Size, System.Drawing">
<value>97, 134</value>
</data>
<data name="GrpEntityType.Text" xml:space="preserve">
<value>Класс</value>
</data>
<data name="LblSpawnDescription.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblSpawnDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 17</value> <value>105, 17</value>
</data> </data>
@ -427,8 +432,8 @@
<data name="NUDEntityLevel.Location" type="System.Drawing.Point, System.Drawing"> <data name="NUDEntityLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>146, 216</value> <value>146, 216</value>
</data> </data>
<data name="TPSpawn.Text" xml:space="preserve"> <data name="TPAvatar.Text" xml:space="preserve">
<value>Спавн</value> <value>Персонаж</value>
</data> </data>
<data name="LblAvatarGenWarning.Font" type="System.Drawing.Font, System.Drawing"> <data name="LblAvatarGenWarning.Font" type="System.Drawing.Font, System.Drawing">
<value>微软雅黑, 8pt, style=Bold</value> <value>微软雅黑, 8pt, style=Bold</value>
@ -471,8 +476,11 @@
<data name="CmbAvatar.Size" type="System.Drawing.Size, System.Drawing"> <data name="CmbAvatar.Size" type="System.Drawing.Size, System.Drawing">
<value>200, 25</value> <value>200, 25</value>
</data> </data>
<data name="TPAvatar.Text" xml:space="preserve"> <data name="TPStats.Text" xml:space="preserve">
<value>Персонаж</value> <value>Статы</value>
</data>
<data name="GrpSetStats.Text" xml:space="preserve">
<value>Статистика</value>
</data> </data>
<data name="LblStatTip.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblStatTip.Size" type="System.Drawing.Size, System.Drawing">
<value>43, 17</value> <value>43, 17</value>
@ -480,8 +488,8 @@
<data name="LblStatTip.Text" xml:space="preserve"> <data name="LblStatTip.Text" xml:space="preserve">
<value>Совет</value> <value>Совет</value>
</data> </data>
<data name="GrpSetStats.Text" xml:space="preserve"> <data name="GrpTalentLevel.Text" xml:space="preserve">
<value>Статистика</value> <value>Уровень таланта</value>
</data> </data>
<data name="LnkTalentE.Location" type="System.Drawing.Point, System.Drawing"> <data name="LnkTalentE.Location" type="System.Drawing.Point, System.Drawing">
<value>299, 24</value> <value>299, 24</value>
@ -513,17 +521,14 @@
<data name="NUDTalentLevel.Size" type="System.Drawing.Size, System.Drawing"> <data name="NUDTalentLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 23</value> <value>128, 23</value>
</data> </data>
<data name="GrpTalentLevel.Text" xml:space="preserve">
<value>Уровень таланта</value>
</data>
<data name="LblStatsDescription.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblStatsDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>316, 17</value> <value>316, 17</value>
</data> </data>
<data name="LblStatsDescription.Text" xml:space="preserve"> <data name="LblStatsDescription.Text" xml:space="preserve">
<value>Установите текущие активные данные персонажа</value> <value>Установите текущие активные данные персонажа</value>
</data> </data>
<data name="TPStats.Text" xml:space="preserve"> <data name="TPWeapon.Text" xml:space="preserve">
<value>Статы</value> <value>Оружие</value>
</data> </data>
<data name="LblWeaponDescription.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblWeaponDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>97, 17</value> <value>97, 17</value>
@ -564,9 +569,10 @@
<data name="NUDWeaponLevel.Location" type="System.Drawing.Point, System.Drawing"> <data name="NUDWeaponLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>134, 216</value> <value>134, 216</value>
</data> </data>
<data name="TPWeapon.Text" xml:space="preserve"> <data name="TPItem.Text" xml:space="preserve">
<value>Оружие</value> <value>Предметы</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="BtnSaveGiveItemLog.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="BtnSaveGiveItemLog.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left</value> <value>Top, Left</value>
</data> </data>
@ -588,15 +594,15 @@
<data name="GrpGiveItemRecord.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="GrpGiveItemRecord.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left</value> <value>Top, Bottom, Left</value>
</data> </data>
<data name="ListGiveItemLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 140</value>
</data>
<data name="GrpGiveItemRecord.Size" type="System.Drawing.Size, System.Drawing"> <data name="GrpGiveItemRecord.Size" type="System.Drawing.Size, System.Drawing">
<value>249, 162</value> <value>249, 162</value>
</data> </data>
<data name="GrpGiveItemRecord.Text" xml:space="preserve"> <data name="GrpGiveItemRecord.Text" xml:space="preserve">
<value>Запись</value> <value>Запись</value>
</data> </data>
<data name="ListGiveItemLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 140</value>
</data>
<data name="ChkDrop.Location" type="System.Drawing.Point, System.Drawing"> <data name="ChkDrop.Location" type="System.Drawing.Point, System.Drawing">
<value>278, 217</value> <value>278, 217</value>
</data> </data>
@ -654,8 +660,8 @@
<data name="LblGiveCommandDescription.Text" xml:space="preserve"> <data name="LblGiveCommandDescription.Text" xml:space="preserve">
<value>Дать предмет игроку</value> <value>Дать предмет игроку</value>
</data> </data>
<data name="TPItem.Text" xml:space="preserve"> <data name="TPScene.Text" xml:space="preserve">
<value>Предметы</value> <value>Сцена</value>
</data> </data>
<data name="ChkIncludeSceneId.Location" type="System.Drawing.Point, System.Drawing"> <data name="ChkIncludeSceneId.Location" type="System.Drawing.Point, System.Drawing">
<value>91, 213</value> <value>91, 213</value>
@ -736,8 +742,35 @@
<value>Управление сценой <value>Управление сценой
Совет: Большинство сцен не имеют эффекта и не могут быть введены.</value> Совет: Большинство сцен не имеют эффекта и не могут быть введены.</value>
</data> </data>
<data name="TPScene.Text" xml:space="preserve"> <data name="TPManage.Text" xml:space="preserve">
<value>Сцена</value> <value>Управлять</value>
</data>
<data name="GrpBanPlayer.Text" xml:space="preserve">
<value>управление запретом</value>
</data>
<data name="BtnUnban.Text" xml:space="preserve">
<value>unban</value>
</data>
<data name="BtnBan.Text" xml:space="preserve">
<value>ban</value>
</data>
<data name="TxtBanReason.Watermark" xml:space="preserve">
<value>причина</value>
</data>
<data name="NUDBanUID.Location" type="System.Drawing.Point, System.Drawing">
<value>42, 22</value>
</data>
<data name="NUDBanUID.Size" type="System.Drawing.Size, System.Drawing">
<value>106, 23</value>
</data>
<data name="LblBanUID.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 17</value>
</data>
<data name="LblBanUID.Text" xml:space="preserve">
<value>UID</value>
</data>
<data name="GrpAccount.Text" xml:space="preserve">
<value>Управление аккаунтом</value>
</data> </data>
<data name="ChkAccountSetUid.Size" type="System.Drawing.Size, System.Drawing"> <data name="ChkAccountSetUid.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 21</value> <value>49, 21</value>
@ -781,8 +814,8 @@
<data name="TxtAccountUserName.Size" type="System.Drawing.Size, System.Drawing"> <data name="TxtAccountUserName.Size" type="System.Drawing.Size, System.Drawing">
<value>113, 23</value> <value>113, 23</value>
</data> </data>
<data name="GrpAccount.Text" xml:space="preserve"> <data name="GrpPermission.Text" xml:space="preserve">
<value>Управление аккаунтом</value> <value>Управление правами</value>
</data> </data>
<data name="CmbPerm.Location" type="System.Drawing.Point, System.Drawing"> <data name="CmbPerm.Location" type="System.Drawing.Point, System.Drawing">
<value>240, 21</value> <value>240, 21</value>
@ -826,11 +859,8 @@
<data name="LblPermUID.Text" xml:space="preserve"> <data name="LblPermUID.Text" xml:space="preserve">
<value>UID</value> <value>UID</value>
</data> </data>
<data name="GrpPermission.Text" xml:space="preserve"> <data name="TPAbout.Text" xml:space="preserve">
<value>Управление правами</value> <value>Справка</value>
</data>
<data name="TPManage.Text" xml:space="preserve">
<value>Управлять</value>
</data> </data>
<data name="LnkGithub.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="LnkGithub.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value> <value>Bottom, Left</value>
@ -844,8 +874,11 @@
Спасибо:Dhar_Jinxed Спасибо:Dhar_Jinxed
</value> </value>
</data> </data>
<data name="TPAbout.Text" xml:space="preserve"> <data name="TPRemoteCall.Text" xml:space="preserve">
<value>Справка</value> <value>Подключение к БД</value>
</data>
<data name="GrpServerStatus.Text" xml:space="preserve">
<value>Состояние сервера</value>
</data> </data>
<data name="LnkOpenCommandLabel.Location" type="System.Drawing.Point, System.Drawing"> <data name="LnkOpenCommandLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 63</value> <value>13, 63</value>
@ -883,8 +916,11 @@
<data name="LblPlayerCountLabel.Text" xml:space="preserve"> <data name="LblPlayerCountLabel.Text" xml:space="preserve">
<value>Кол. игроков</value> <value>Кол. игроков</value>
</data> </data>
<data name="GrpServerStatus.Text" xml:space="preserve"> <data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>Состояние сервера</value> <value>Удалить ячейку</value>
</data>
<data name="TPPlayerCheck.Text" xml:space="preserve">
<value>игрок</value>
</data> </data>
<data name="LnkRCHelp.Size" type="System.Drawing.Size, System.Drawing"> <data name="LnkRCHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 17</value> <value>60, 17</value>
@ -904,8 +940,8 @@
<data name="BtnSendVerificationCode.Text" xml:space="preserve"> <data name="BtnSendVerificationCode.Text" xml:space="preserve">
<value>Отправить код</value> <value>Отправить код</value>
</data> </data>
<data name="TPPlayerCheck.Text" xml:space="preserve"> <data name="TPConsoleCheck.Text" xml:space="preserve">
<value>игрок</value> <value>консоль</value>
</data> </data>
<data name="BtnConsoleConnect.Text" xml:space="preserve"> <data name="BtnConsoleConnect.Text" xml:space="preserve">
<value>Подключить</value> <value>Подключить</value>
@ -923,12 +959,6 @@
<value>Обратите внимание, что обычные команды в состоянии консоли должны указывать цель <value>Обратите внимание, что обычные команды в состоянии консоли должны указывать цель
(набор содержит UID)</value> (набор содержит UID)</value>
</data> </data>
<data name="TPConsoleCheck.Text" xml:space="preserve">
<value>консоль</value>
</data>
<data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>Удалить ячейку</value>
</data>
<data name="TxtHost.Location" type="System.Drawing.Point, System.Drawing"> <data name="TxtHost.Location" type="System.Drawing.Point, System.Drawing">
<value>86, 36</value> <value>86, 36</value>
</data> </data>
@ -950,9 +980,6 @@
<data name="LblHost.Text" xml:space="preserve"> <data name="LblHost.Text" xml:space="preserve">
<value>Хост</value> <value>Хост</value>
</data> </data>
<data name="TPRemoteCall.Text" xml:space="preserve">
<value>Подключение к БД</value>
</data>
<data name="$this.Text" xml:space="preserve"> <data name="$this.Text" xml:space="preserve">
<value>GrasscutterTools - перевод Юрий Дворецкий</value> <value>GrasscutterTools - перевод Юрий Дворецкий</value>
</data> </data>

View File

@ -196,6 +196,9 @@
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Controls\TextBoxXP.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DispatchServer\DispatchServerAPI.cs" /> <Compile Include="DispatchServer\DispatchServerAPI.cs" />
<Compile Include="DispatchServer\Model\ServerStatus.cs" /> <Compile Include="DispatchServer\Model\ServerStatus.cs" />
<Compile Include="Forms\FormGachaBannerEditor2.cs"> <Compile Include="Forms\FormGachaBannerEditor2.cs">

View File

@ -12,7 +12,7 @@ namespace GrasscutterTools.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.2.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@ -130,5 +130,29 @@ namespace GrasscutterTools.Properties {
this["TokenCache"] = value; this["TokenCache"] = value;
} }
} }
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string CommandVersion {
get {
return ((string)(this["CommandVersion"]));
}
set {
this["CommandVersion"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool IsTopMost {
get {
return ((bool)(this["IsTopMost"]));
}
set {
this["IsTopMost"] = value;
}
}
} }
} }

View File

@ -29,5 +29,11 @@
<Setting Name="TokenCache" Type="System.String" Scope="User"> <Setting Name="TokenCache" Type="System.String" Scope="User">
<Value Profile="(Default)" /> <Value Profile="(Default)" />
</Setting> </Setting>
<Setting Name="CommandVersion" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="IsTopMost" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>