diff --git a/Source/GrasscutterTools/Forms/FormMain.Designer.cs b/Source/GrasscutterTools/Forms/FormMain.Designer.cs
index 219bd7a..304c056 100644
--- a/Source/GrasscutterTools/Forms/FormMain.Designer.cs
+++ b/Source/GrasscutterTools/Forms/FormMain.Designer.cs
@@ -36,37 +36,6 @@ namespace GrasscutterTools.Forms
this.GrpCommand = new System.Windows.Forms.GroupBox();
this.BtnInvokeOpenCommand = new System.Windows.Forms.Button();
this.TPRemoteCall = new System.Windows.Forms.TabPage();
- this.LnkLinks = new System.Windows.Forms.LinkLabel();
- this.LnkGOODHelp = new System.Windows.Forms.LinkLabel();
- this.LnkInventoryKamera = new System.Windows.Forms.LinkLabel();
- this.LblGOODHelp = new System.Windows.Forms.Label();
- this.ButtonOpenGOODImport = new System.Windows.Forms.Button();
- this.LblHostTip = new System.Windows.Forms.Label();
- this.GrpServerStatus = new System.Windows.Forms.GroupBox();
- this.LnkOpenCommandLabel = new System.Windows.Forms.LinkLabel();
- this.LblOpenCommandSupport = new System.Windows.Forms.Label();
- this.LblServerVersion = new System.Windows.Forms.Label();
- this.LblPlayerCount = new System.Windows.Forms.Label();
- this.LblServerVersionLabel = new System.Windows.Forms.Label();
- this.LblPlayerCountLabel = new System.Windows.Forms.Label();
- this.GrpRemoteCommand = new System.Windows.Forms.GroupBox();
- this.TPOpenCommandCheck = new System.Windows.Forms.TabControl();
- this.TPPlayerCheck = new System.Windows.Forms.TabPage();
- this.LnkRCHelp = new System.Windows.Forms.LinkLabel();
- this.NUDRemotePlayerId = new System.Windows.Forms.NumericUpDown();
- this.BtnConnectOpenCommand = new System.Windows.Forms.Button();
- this.LblVerificationCode = new System.Windows.Forms.Label();
- this.BtnSendVerificationCode = new System.Windows.Forms.Button();
- this.NUDVerificationCode = new System.Windows.Forms.NumericUpDown();
- this.LblRemotePlayerId = new System.Windows.Forms.Label();
- this.TPConsoleCheck = new System.Windows.Forms.TabPage();
- this.BtnConsoleConnect = new System.Windows.Forms.Button();
- this.TxtToken = new System.Windows.Forms.TextBox();
- this.LblToken = new System.Windows.Forms.Label();
- this.LblConsoleTip = new System.Windows.Forms.Label();
- this.TxtHost = new System.Windows.Forms.TextBox();
- this.BtnQueryServerStatus = new System.Windows.Forms.Button();
- this.LblHost = new System.Windows.Forms.Label();
this.TPAbout = new System.Windows.Forms.TabPage();
this.GrasscutterToolsSupport = new System.Windows.Forms.PictureBox();
this.LnkGithub = new System.Windows.Forms.LinkLabel();
@@ -126,16 +95,6 @@ namespace GrasscutterTools.Forms
this.NUDGameItemLevel = new System.Windows.Forms.NumericUpDown();
this.LblGiveCommandDescription = new System.Windows.Forms.Label();
this.TPWeapon = new System.Windows.Forms.TabPage();
- this.BtnGiveAllWeapons = new System.Windows.Forms.Button();
- this.TxtWeaponFilter = new System.Windows.Forms.TextBox();
- this.LblWeaponDescription = new System.Windows.Forms.Label();
- this.LblWeaponRefinement = new System.Windows.Forms.Label();
- this.LblWeaponAmount = new System.Windows.Forms.Label();
- this.LblWeaponLevel = new System.Windows.Forms.Label();
- this.NUDWeaponRefinement = new System.Windows.Forms.NumericUpDown();
- this.NUDWeaponAmout = new System.Windows.Forms.NumericUpDown();
- this.NUDWeaponLevel = new System.Windows.Forms.NumericUpDown();
- this.ListWeapons = new System.Windows.Forms.ListBox();
this.TPAvatar = new System.Windows.Forms.TabPage();
this.GrpSetConstellation = new System.Windows.Forms.GroupBox();
this.LnkSetAllConst = new System.Windows.Forms.LinkLabel();
@@ -168,73 +127,6 @@ namespace GrasscutterTools.Forms
this.NUDAvatarConstellation = new System.Windows.Forms.NumericUpDown();
this.NUDAvatarSkillLevel = new System.Windows.Forms.NumericUpDown();
this.TPSpawn = new System.Windows.Forms.TabPage();
- this.TCSpawnSettings = new System.Windows.Forms.TabControl();
- this.TPSpawnArgs = new System.Windows.Forms.TabPage();
- this.NUDEntityDef = new System.Windows.Forms.NumericUpDown();
- this.NUDEntityAtk = new System.Windows.Forms.NumericUpDown();
- this.NUDEntityHp = new System.Windows.Forms.NumericUpDown();
- this.NUDEntityMaxHp = new System.Windows.Forms.NumericUpDown();
- this.NUDEntityPosZ = new System.Windows.Forms.NumericUpDown();
- this.NUDEntityPosY = new System.Windows.Forms.NumericUpDown();
- this.NUDEntityPosX = new System.Windows.Forms.NumericUpDown();
- this.NUDEntityAmout = new System.Windows.Forms.NumericUpDown();
- this.NUDEntityLevel = new System.Windows.Forms.NumericUpDown();
- this.LblSpawnVersionRequireTip = new System.Windows.Forms.Label();
- this.LblInfiniteHpTip = new System.Windows.Forms.Label();
- this.LblEntityDef = new System.Windows.Forms.Label();
- this.LblEntityAtk = new System.Windows.Forms.Label();
- this.LblEntityHp = new System.Windows.Forms.Label();
- this.LblEntityMaxHp = new System.Windows.Forms.Label();
- this.LblEntitySpawnPostion = new System.Windows.Forms.Label();
- this.LblEntityLevel = new System.Windows.Forms.Label();
- this.LblEntityAmount = new System.Windows.Forms.Label();
- this.TPAttackModArgs = new System.Windows.Forms.TabPage();
- this.LblAMPluginTip = new System.Windows.Forms.Label();
- this.LblAMPluginIntroduction = new System.Windows.Forms.Label();
- this.LblAMPlugin = new System.Windows.Forms.Label();
- this.LnkAMOff = new System.Windows.Forms.LinkLabel();
- this.LnkAMOn = new System.Windows.Forms.LinkLabel();
- this.BtnAtReload = new System.Windows.Forms.Button();
- this.BtnAtClear = new System.Windows.Forms.Button();
- this.LnkAttackModifierPlugin = new System.Windows.Forms.LinkLabel();
- this.GrpAMSkills = new System.Windows.Forms.GroupBox();
- this.TxtAtEntityQ = new System.Windows.Forms.TextBox();
- this.TxtAtEntityE = new System.Windows.Forms.TextBox();
- this.TxtAtEntityN = new System.Windows.Forms.TextBox();
- this.RbAtQ = new System.Windows.Forms.RadioButton();
- this.RbAtE = new System.Windows.Forms.RadioButton();
- this.RbAtN = new System.Windows.Forms.RadioButton();
- this.TPAttackInfusedArgs = new System.Windows.Forms.TabPage();
- this.NUDAiwiRotateZ = new System.Windows.Forms.NumericUpDown();
- this.NUDAiwiRotateY = new System.Windows.Forms.NumericUpDown();
- this.NUDAiwiRotateX = new System.Windows.Forms.NumericUpDown();
- this.LblAiwiRotate = new System.Windows.Forms.Label();
- this.NUDAiwiSpread = new System.Windows.Forms.NumericUpDown();
- this.LblAiwiSpread = new System.Windows.Forms.Label();
- this.NUDAiwiCount = new System.Windows.Forms.NumericUpDown();
- this.NUDAiwiHeight = new System.Windows.Forms.NumericUpDown();
- this.NUDAiwiRadius = new System.Windows.Forms.NumericUpDown();
- this.LblAiwiCount = new System.Windows.Forms.Label();
- this.LblAiwiHeight = new System.Windows.Forms.Label();
- this.LblAiwiRadius = new System.Windows.Forms.Label();
- this.BtnAttackInfuse = new System.Windows.Forms.Button();
- this.BtnAiwiReload = new System.Windows.Forms.Button();
- this.BtnAiwiClear = new System.Windows.Forms.Button();
- this.BtnAiwiReset = new System.Windows.Forms.Button();
- this.LblAiwiPlugin = new System.Windows.Forms.Label();
- this.LnkAttackInfusedWithItem = new System.Windows.Forms.LinkLabel();
- this.TCSpawnItems = new System.Windows.Forms.TabControl();
- this.TPSpawnItems = new System.Windows.Forms.TabPage();
- this.ListEntity = new System.Windows.Forms.ListBox();
- this.PanelEntityFilterBar = new System.Windows.Forms.Panel();
- this.TxtEntityFilter = new System.Windows.Forms.TextBox();
- this.BtnFilterEntity = new System.Windows.Forms.Button();
- this.TPSpawnRecords = new System.Windows.Forms.TabPage();
- this.ListSpawnLogs = new System.Windows.Forms.ListBox();
- this.FLPSpawnRecordControls = new System.Windows.Forms.FlowLayoutPanel();
- this.BtnSaveSpawnLog = new System.Windows.Forms.Button();
- this.BtnRemoveSpawnLog = new System.Windows.Forms.Button();
- this.LblClearSpawnLogs = new System.Windows.Forms.Label();
this.TPQuest = new System.Windows.Forms.TabPage();
this.GrpQuestFilters = new System.Windows.Forms.GroupBox();
this.ChkQuestFilterTEST = new System.Windows.Forms.CheckBox();
@@ -246,53 +138,8 @@ namespace GrasscutterTools.Forms
this.TxtQuestFilter = new System.Windows.Forms.TextBox();
this.ListQuest = new System.Windows.Forms.ListBox();
this.TPArtifact = new System.Windows.Forms.TabPage();
- this.LnkCharacterBuilder = new System.Windows.Forms.LinkLabel();
- this.LblArtifactLevelTip = new System.Windows.Forms.Label();
- this.BtnAddSubAttr = new System.Windows.Forms.Button();
- this.LblArtifactName = new System.Windows.Forms.Label();
- this.LblArtifactPart = new System.Windows.Forms.Label();
- this.CmbArtifactPart = new System.Windows.Forms.ComboBox();
- this.CmbArtifactSet = new System.Windows.Forms.ComboBox();
- this.LblArtifactSet = new System.Windows.Forms.Label();
- this.NUDSubAttributionTimes = new System.Windows.Forms.NumericUpDown();
- this.CmbSubAttributionValue = new System.Windows.Forms.ComboBox();
- this.CmbSubAttribution = new System.Windows.Forms.ComboBox();
- this.LblClearSubAttrCheckedList = new System.Windows.Forms.Label();
- this.ListSubAttributionChecked = new System.Windows.Forms.ListBox();
- this.LblArtifactLevel = new System.Windows.Forms.Label();
- this.LblSubAttribution = new System.Windows.Forms.Label();
- this.CmbMainAttribution = new System.Windows.Forms.ComboBox();
- this.LblMainAttribution = new System.Windows.Forms.Label();
- this.NUDArtifactLevel = new System.Windows.Forms.NumericUpDown();
- this.LblArtifactStars = new System.Windows.Forms.Label();
- this.NUDArtifactStars = new System.Windows.Forms.NumericUpDown();
this.TPCustom = new System.Windows.Forms.TabPage();
- this.BtnExportCustomCommands = new System.Windows.Forms.Button();
- this.BtnLoadCustomCommands = new System.Windows.Forms.Button();
- this.LblCustomName = new System.Windows.Forms.Label();
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.LnkResetCustomCommands = new System.Windows.Forms.LinkLabel();
- this.FLPCustomCommands = new System.Windows.Forms.FlowLayoutPanel();
- this.BtnRemoveCustomCommand = new System.Windows.Forms.Button();
- this.BtnSaveCustomCommand = new System.Windows.Forms.Button();
- this.TxtCustomName = new System.Windows.Forms.TextBox();
this.TPHome = new System.Windows.Forms.TabPage();
- this.BtnOpenShopEditor = new System.Windows.Forms.Button();
- this.BtnOpenDropEditor = new System.Windows.Forms.Button();
- this.LnkNewVersion = new System.Windows.Forms.LinkLabel();
- this.LblAbout = new System.Windows.Forms.Label();
- this.BtnOpenTextMap = new System.Windows.Forms.Button();
- this.BtnOpenGachaBannerEditor = new System.Windows.Forms.Button();
- this.GrasscutterToolsIcon = new System.Windows.Forms.PictureBox();
- this.GrpSettings = new System.Windows.Forms.GroupBox();
- this.LblGCVersion = new System.Windows.Forms.Label();
- this.CmbGcVersions = new System.Windows.Forms.ComboBox();
- this.ChkTopMost = new System.Windows.Forms.CheckBox();
- this.CmbLanguage = new System.Windows.Forms.ComboBox();
- this.LblLanguage = new System.Windows.Forms.Label();
- this.NUDUid = new System.Windows.Forms.NumericUpDown();
- this.ChkIncludeUID = new System.Windows.Forms.CheckBox();
- this.LblDefaultUid = new System.Windows.Forms.Label();
this.TCMain = new System.Windows.Forms.TabControl();
this.TPMail = new System.Windows.Forms.TabPage();
this.LblClearMailContent = new System.Windows.Forms.Label();
@@ -328,14 +175,6 @@ namespace GrasscutterTools.Forms
this.MenuSpawnEntityFilter = new System.Windows.Forms.ContextMenuStrip(this.components);
this.TxtBanReason = new GrasscutterTools.Controls.TextBoxXP();
this.GrpCommand.SuspendLayout();
- this.TPRemoteCall.SuspendLayout();
- this.GrpServerStatus.SuspendLayout();
- this.GrpRemoteCommand.SuspendLayout();
- this.TPOpenCommandCheck.SuspendLayout();
- this.TPPlayerCheck.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDRemotePlayerId)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDVerificationCode)).BeginInit();
- this.TPConsoleCheck.SuspendLayout();
this.TPAbout.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.GrasscutterToolsSupport)).BeginInit();
this.TPManage.SuspendLayout();
@@ -353,10 +192,6 @@ namespace GrasscutterTools.Forms
this.GrpGiveItemRecord.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDGameItemAmout)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDGameItemLevel)).BeginInit();
- this.TPWeapon.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponRefinement)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponAmout)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponLevel)).BeginInit();
this.TPAvatar.SuspendLayout();
this.GrpSetConstellation.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDSetConstellation)).BeginInit();
@@ -368,45 +203,8 @@ namespace GrasscutterTools.Forms
((System.ComponentModel.ISupportInitialize)(this.NUDAvatarLevel)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDAvatarConstellation)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDAvatarSkillLevel)).BeginInit();
- this.TPSpawn.SuspendLayout();
- this.TCSpawnSettings.SuspendLayout();
- this.TPSpawnArgs.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityDef)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityAtk)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityHp)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityMaxHp)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosZ)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosY)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosX)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityAmout)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityLevel)).BeginInit();
- this.TPAttackModArgs.SuspendLayout();
- this.GrpAMSkills.SuspendLayout();
- this.TPAttackInfusedArgs.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateZ)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateY)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateX)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiSpread)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiCount)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiHeight)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRadius)).BeginInit();
- this.TCSpawnItems.SuspendLayout();
- this.TPSpawnItems.SuspendLayout();
- this.PanelEntityFilterBar.SuspendLayout();
- this.TPSpawnRecords.SuspendLayout();
- this.FLPSpawnRecordControls.SuspendLayout();
this.TPQuest.SuspendLayout();
this.GrpQuestFilters.SuspendLayout();
- this.TPArtifact.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDSubAttributionTimes)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDArtifactLevel)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDArtifactStars)).BeginInit();
- this.TPCustom.SuspendLayout();
- this.groupBox1.SuspendLayout();
- this.TPHome.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.GrasscutterToolsIcon)).BeginInit();
- this.GrpSettings.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDUid)).BeginInit();
this.TCMain.SuspendLayout();
this.TPMail.SuspendLayout();
this.TCMailRight.SuspendLayout();
@@ -459,252 +257,9 @@ namespace GrasscutterTools.Forms
//
// TPRemoteCall
//
- this.TPRemoteCall.Controls.Add(this.LnkLinks);
- this.TPRemoteCall.Controls.Add(this.LnkGOODHelp);
- this.TPRemoteCall.Controls.Add(this.LnkInventoryKamera);
- this.TPRemoteCall.Controls.Add(this.LblGOODHelp);
- this.TPRemoteCall.Controls.Add(this.ButtonOpenGOODImport);
- this.TPRemoteCall.Controls.Add(this.LblHostTip);
- this.TPRemoteCall.Controls.Add(this.GrpServerStatus);
- this.TPRemoteCall.Controls.Add(this.GrpRemoteCommand);
- this.TPRemoteCall.Controls.Add(this.TxtHost);
- this.TPRemoteCall.Controls.Add(this.BtnQueryServerStatus);
- this.TPRemoteCall.Controls.Add(this.LblHost);
resources.ApplyResources(this.TPRemoteCall, "TPRemoteCall");
this.TPRemoteCall.Name = "TPRemoteCall";
this.TPRemoteCall.UseVisualStyleBackColor = true;
- this.TPRemoteCall.Enter += new System.EventHandler(this.TPRemoteCall_Enter);
- //
- // LnkLinks
- //
- resources.ApplyResources(this.LnkLinks, "LnkLinks");
- this.LnkLinks.Name = "LnkLinks";
- this.LnkLinks.TabStop = true;
- this.LnkLinks.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkLinks_LinkClicked);
- //
- // LnkGOODHelp
- //
- resources.ApplyResources(this.LnkGOODHelp, "LnkGOODHelp");
- this.LnkGOODHelp.Cursor = System.Windows.Forms.Cursors.Help;
- this.LnkGOODHelp.Name = "LnkGOODHelp";
- this.LnkGOODHelp.TabStop = true;
- this.LnkGOODHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkGOODHelp_LinkClicked);
- //
- // LnkInventoryKamera
- //
- resources.ApplyResources(this.LnkInventoryKamera, "LnkInventoryKamera");
- this.LnkInventoryKamera.Name = "LnkInventoryKamera";
- this.LnkInventoryKamera.TabStop = true;
- this.LnkInventoryKamera.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkInventoryKamera_LinkClicked);
- //
- // LblGOODHelp
- //
- resources.ApplyResources(this.LblGOODHelp, "LblGOODHelp");
- this.LblGOODHelp.Name = "LblGOODHelp";
- //
- // ButtonOpenGOODImport
- //
- resources.ApplyResources(this.ButtonOpenGOODImport, "ButtonOpenGOODImport");
- this.ButtonOpenGOODImport.Name = "ButtonOpenGOODImport";
- this.ButtonOpenGOODImport.UseVisualStyleBackColor = true;
- this.ButtonOpenGOODImport.Click += new System.EventHandler(this.ButtonOpenGOODImport_Click);
- //
- // LblHostTip
- //
- resources.ApplyResources(this.LblHostTip, "LblHostTip");
- this.LblHostTip.ForeColor = System.Drawing.SystemColors.GrayText;
- this.LblHostTip.Name = "LblHostTip";
- //
- // GrpServerStatus
- //
- resources.ApplyResources(this.GrpServerStatus, "GrpServerStatus");
- this.GrpServerStatus.Controls.Add(this.LnkOpenCommandLabel);
- this.GrpServerStatus.Controls.Add(this.LblOpenCommandSupport);
- this.GrpServerStatus.Controls.Add(this.LblServerVersion);
- this.GrpServerStatus.Controls.Add(this.LblPlayerCount);
- this.GrpServerStatus.Controls.Add(this.LblServerVersionLabel);
- this.GrpServerStatus.Controls.Add(this.LblPlayerCountLabel);
- this.GrpServerStatus.Name = "GrpServerStatus";
- this.GrpServerStatus.TabStop = false;
- //
- // LnkOpenCommandLabel
- //
- resources.ApplyResources(this.LnkOpenCommandLabel, "LnkOpenCommandLabel");
- this.LnkOpenCommandLabel.Name = "LnkOpenCommandLabel";
- this.LnkOpenCommandLabel.TabStop = true;
- this.LnkOpenCommandLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkOpenCommandLabel_LinkClicked);
- //
- // LblOpenCommandSupport
- //
- resources.ApplyResources(this.LblOpenCommandSupport, "LblOpenCommandSupport");
- this.LblOpenCommandSupport.Name = "LblOpenCommandSupport";
- //
- // LblServerVersion
- //
- resources.ApplyResources(this.LblServerVersion, "LblServerVersion");
- this.LblServerVersion.Name = "LblServerVersion";
- //
- // LblPlayerCount
- //
- resources.ApplyResources(this.LblPlayerCount, "LblPlayerCount");
- this.LblPlayerCount.Name = "LblPlayerCount";
- //
- // LblServerVersionLabel
- //
- resources.ApplyResources(this.LblServerVersionLabel, "LblServerVersionLabel");
- this.LblServerVersionLabel.Name = "LblServerVersionLabel";
- //
- // LblPlayerCountLabel
- //
- resources.ApplyResources(this.LblPlayerCountLabel, "LblPlayerCountLabel");
- this.LblPlayerCountLabel.Name = "LblPlayerCountLabel";
- //
- // GrpRemoteCommand
- //
- resources.ApplyResources(this.GrpRemoteCommand, "GrpRemoteCommand");
- this.GrpRemoteCommand.Controls.Add(this.TPOpenCommandCheck);
- this.GrpRemoteCommand.Name = "GrpRemoteCommand";
- this.GrpRemoteCommand.TabStop = false;
- //
- // TPOpenCommandCheck
- //
- this.TPOpenCommandCheck.Controls.Add(this.TPPlayerCheck);
- this.TPOpenCommandCheck.Controls.Add(this.TPConsoleCheck);
- resources.ApplyResources(this.TPOpenCommandCheck, "TPOpenCommandCheck");
- this.TPOpenCommandCheck.Name = "TPOpenCommandCheck";
- this.TPOpenCommandCheck.SelectedIndex = 0;
- //
- // TPPlayerCheck
- //
- this.TPPlayerCheck.Controls.Add(this.LnkRCHelp);
- this.TPPlayerCheck.Controls.Add(this.NUDRemotePlayerId);
- this.TPPlayerCheck.Controls.Add(this.BtnConnectOpenCommand);
- this.TPPlayerCheck.Controls.Add(this.LblVerificationCode);
- this.TPPlayerCheck.Controls.Add(this.BtnSendVerificationCode);
- this.TPPlayerCheck.Controls.Add(this.NUDVerificationCode);
- this.TPPlayerCheck.Controls.Add(this.LblRemotePlayerId);
- resources.ApplyResources(this.TPPlayerCheck, "TPPlayerCheck");
- this.TPPlayerCheck.Name = "TPPlayerCheck";
- this.TPPlayerCheck.UseVisualStyleBackColor = true;
- //
- // LnkRCHelp
- //
- resources.ApplyResources(this.LnkRCHelp, "LnkRCHelp");
- this.LnkRCHelp.Name = "LnkRCHelp";
- this.LnkRCHelp.TabStop = true;
- this.LnkRCHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkRCHelp_LinkClicked);
- //
- // NUDRemotePlayerId
- //
- resources.ApplyResources(this.NUDRemotePlayerId, "NUDRemotePlayerId");
- this.NUDRemotePlayerId.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDRemotePlayerId.Name = "NUDRemotePlayerId";
- this.NUDRemotePlayerId.Value = new decimal(new int[] {
- 10001,
- 0,
- 0,
- 0});
- this.NUDRemotePlayerId.KeyDown += new System.Windows.Forms.KeyEventHandler(this.NUDRemotePlayerId_KeyDown);
- //
- // BtnConnectOpenCommand
- //
- resources.ApplyResources(this.BtnConnectOpenCommand, "BtnConnectOpenCommand");
- this.BtnConnectOpenCommand.Name = "BtnConnectOpenCommand";
- this.BtnConnectOpenCommand.UseVisualStyleBackColor = true;
- this.BtnConnectOpenCommand.Click += new System.EventHandler(this.BtnConnectOpenCommand_Click);
- //
- // LblVerificationCode
- //
- resources.ApplyResources(this.LblVerificationCode, "LblVerificationCode");
- this.LblVerificationCode.Name = "LblVerificationCode";
- //
- // BtnSendVerificationCode
- //
- resources.ApplyResources(this.BtnSendVerificationCode, "BtnSendVerificationCode");
- this.BtnSendVerificationCode.Name = "BtnSendVerificationCode";
- this.BtnSendVerificationCode.UseVisualStyleBackColor = true;
- this.BtnSendVerificationCode.Click += new System.EventHandler(this.BtnSendVerificationCode_Click);
- //
- // NUDVerificationCode
- //
- resources.ApplyResources(this.NUDVerificationCode, "NUDVerificationCode");
- this.NUDVerificationCode.Maximum = new decimal(new int[] {
- 9999,
- 0,
- 0,
- 0});
- this.NUDVerificationCode.Minimum = new decimal(new int[] {
- 1000,
- 0,
- 0,
- 0});
- this.NUDVerificationCode.Name = "NUDVerificationCode";
- this.NUDVerificationCode.Value = new decimal(new int[] {
- 1000,
- 0,
- 0,
- 0});
- this.NUDVerificationCode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.NUDVerificationCode_KeyDown);
- //
- // LblRemotePlayerId
- //
- resources.ApplyResources(this.LblRemotePlayerId, "LblRemotePlayerId");
- this.LblRemotePlayerId.Name = "LblRemotePlayerId";
- //
- // TPConsoleCheck
- //
- this.TPConsoleCheck.Controls.Add(this.BtnConsoleConnect);
- this.TPConsoleCheck.Controls.Add(this.TxtToken);
- this.TPConsoleCheck.Controls.Add(this.LblToken);
- this.TPConsoleCheck.Controls.Add(this.LblConsoleTip);
- resources.ApplyResources(this.TPConsoleCheck, "TPConsoleCheck");
- this.TPConsoleCheck.Name = "TPConsoleCheck";
- this.TPConsoleCheck.UseVisualStyleBackColor = true;
- //
- // BtnConsoleConnect
- //
- resources.ApplyResources(this.BtnConsoleConnect, "BtnConsoleConnect");
- this.BtnConsoleConnect.Name = "BtnConsoleConnect";
- this.BtnConsoleConnect.UseVisualStyleBackColor = true;
- this.BtnConsoleConnect.Click += new System.EventHandler(this.BtnConsoleConnect_Click);
- //
- // TxtToken
- //
- resources.ApplyResources(this.TxtToken, "TxtToken");
- this.TxtToken.Name = "TxtToken";
- this.TxtToken.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtToken_KeyDown);
- //
- // LblToken
- //
- resources.ApplyResources(this.LblToken, "LblToken");
- this.LblToken.Name = "LblToken";
- //
- // LblConsoleTip
- //
- resources.ApplyResources(this.LblConsoleTip, "LblConsoleTip");
- this.LblConsoleTip.Name = "LblConsoleTip";
- //
- // TxtHost
- //
- resources.ApplyResources(this.TxtHost, "TxtHost");
- this.TxtHost.Name = "TxtHost";
- this.TxtHost.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtHost_KeyDown);
- //
- // BtnQueryServerStatus
- //
- resources.ApplyResources(this.BtnQueryServerStatus, "BtnQueryServerStatus");
- this.BtnQueryServerStatus.Name = "BtnQueryServerStatus";
- this.BtnQueryServerStatus.UseVisualStyleBackColor = true;
- this.BtnQueryServerStatus.Click += new System.EventHandler(this.BtnQueryServerStatus_Click);
- //
- // LblHost
- //
- resources.ApplyResources(this.LblHost, "LblHost");
- this.LblHost.Name = "LblHost";
//
// TPAbout
//
@@ -1235,118 +790,10 @@ namespace GrasscutterTools.Forms
//
// TPWeapon
//
- this.TPWeapon.Controls.Add(this.BtnGiveAllWeapons);
- this.TPWeapon.Controls.Add(this.TxtWeaponFilter);
- this.TPWeapon.Controls.Add(this.LblWeaponDescription);
- this.TPWeapon.Controls.Add(this.LblWeaponRefinement);
- this.TPWeapon.Controls.Add(this.LblWeaponAmount);
- this.TPWeapon.Controls.Add(this.LblWeaponLevel);
- this.TPWeapon.Controls.Add(this.NUDWeaponRefinement);
- this.TPWeapon.Controls.Add(this.NUDWeaponAmout);
- this.TPWeapon.Controls.Add(this.NUDWeaponLevel);
- this.TPWeapon.Controls.Add(this.ListWeapons);
resources.ApplyResources(this.TPWeapon, "TPWeapon");
this.TPWeapon.Name = "TPWeapon";
this.TPWeapon.UseVisualStyleBackColor = true;
//
- // BtnGiveAllWeapons
- //
- resources.ApplyResources(this.BtnGiveAllWeapons, "BtnGiveAllWeapons");
- this.BtnGiveAllWeapons.Name = "BtnGiveAllWeapons";
- this.BtnGiveAllWeapons.UseVisualStyleBackColor = true;
- this.BtnGiveAllWeapons.Click += new System.EventHandler(this.BtnGiveAllWeapons_Click);
- //
- // TxtWeaponFilter
- //
- resources.ApplyResources(this.TxtWeaponFilter, "TxtWeaponFilter");
- this.TxtWeaponFilter.Name = "TxtWeaponFilter";
- this.TxtWeaponFilter.TextChanged += new System.EventHandler(this.TxtWeaponFilter_TextChanged);
- //
- // LblWeaponDescription
- //
- resources.ApplyResources(this.LblWeaponDescription, "LblWeaponDescription");
- this.LblWeaponDescription.Name = "LblWeaponDescription";
- //
- // LblWeaponRefinement
- //
- resources.ApplyResources(this.LblWeaponRefinement, "LblWeaponRefinement");
- this.LblWeaponRefinement.Name = "LblWeaponRefinement";
- //
- // LblWeaponAmount
- //
- resources.ApplyResources(this.LblWeaponAmount, "LblWeaponAmount");
- this.LblWeaponAmount.Name = "LblWeaponAmount";
- //
- // LblWeaponLevel
- //
- resources.ApplyResources(this.LblWeaponLevel, "LblWeaponLevel");
- this.LblWeaponLevel.Name = "LblWeaponLevel";
- //
- // NUDWeaponRefinement
- //
- resources.ApplyResources(this.NUDWeaponRefinement, "NUDWeaponRefinement");
- this.NUDWeaponRefinement.Maximum = new decimal(new int[] {
- 5,
- 0,
- 0,
- 0});
- this.NUDWeaponRefinement.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDWeaponRefinement.Name = "NUDWeaponRefinement";
- this.NUDWeaponRefinement.Value = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDWeaponRefinement.ValueChanged += new System.EventHandler(this.WeaponValueChanged);
- //
- // NUDWeaponAmout
- //
- resources.ApplyResources(this.NUDWeaponAmout, "NUDWeaponAmout");
- this.NUDWeaponAmout.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDWeaponAmout.Name = "NUDWeaponAmout";
- this.NUDWeaponAmout.Value = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDWeaponAmout.ValueChanged += new System.EventHandler(this.WeaponValueChanged);
- //
- // NUDWeaponLevel
- //
- resources.ApplyResources(this.NUDWeaponLevel, "NUDWeaponLevel");
- this.NUDWeaponLevel.Maximum = new decimal(new int[] {
- 90,
- 0,
- 0,
- 0});
- this.NUDWeaponLevel.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDWeaponLevel.Name = "NUDWeaponLevel";
- this.NUDWeaponLevel.Value = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDWeaponLevel.ValueChanged += new System.EventHandler(this.WeaponValueChanged);
- //
- // ListWeapons
- //
- resources.ApplyResources(this.ListWeapons, "ListWeapons");
- this.ListWeapons.FormattingEnabled = true;
- this.ListWeapons.Name = "ListWeapons";
- this.ListWeapons.SelectedIndexChanged += new System.EventHandler(this.WeaponValueChanged);
- //
// TPAvatar
//
this.TPAvatar.Controls.Add(this.GrpSetConstellation);
@@ -1659,651 +1106,10 @@ namespace GrasscutterTools.Forms
//
// TPSpawn
//
- this.TPSpawn.Controls.Add(this.TCSpawnSettings);
- this.TPSpawn.Controls.Add(this.TCSpawnItems);
resources.ApplyResources(this.TPSpawn, "TPSpawn");
this.TPSpawn.Name = "TPSpawn";
this.TPSpawn.UseVisualStyleBackColor = true;
//
- // TCSpawnSettings
- //
- resources.ApplyResources(this.TCSpawnSettings, "TCSpawnSettings");
- this.TCSpawnSettings.Controls.Add(this.TPSpawnArgs);
- this.TCSpawnSettings.Controls.Add(this.TPAttackModArgs);
- this.TCSpawnSettings.Controls.Add(this.TPAttackInfusedArgs);
- this.TCSpawnSettings.Name = "TCSpawnSettings";
- this.TCSpawnSettings.SelectedIndex = 0;
- //
- // TPSpawnArgs
- //
- this.TPSpawnArgs.Controls.Add(this.NUDEntityDef);
- this.TPSpawnArgs.Controls.Add(this.NUDEntityAtk);
- this.TPSpawnArgs.Controls.Add(this.NUDEntityHp);
- this.TPSpawnArgs.Controls.Add(this.NUDEntityMaxHp);
- this.TPSpawnArgs.Controls.Add(this.NUDEntityPosZ);
- this.TPSpawnArgs.Controls.Add(this.NUDEntityPosY);
- this.TPSpawnArgs.Controls.Add(this.NUDEntityPosX);
- this.TPSpawnArgs.Controls.Add(this.NUDEntityAmout);
- this.TPSpawnArgs.Controls.Add(this.NUDEntityLevel);
- this.TPSpawnArgs.Controls.Add(this.LblSpawnVersionRequireTip);
- this.TPSpawnArgs.Controls.Add(this.LblInfiniteHpTip);
- this.TPSpawnArgs.Controls.Add(this.LblEntityDef);
- this.TPSpawnArgs.Controls.Add(this.LblEntityAtk);
- this.TPSpawnArgs.Controls.Add(this.LblEntityHp);
- this.TPSpawnArgs.Controls.Add(this.LblEntityMaxHp);
- this.TPSpawnArgs.Controls.Add(this.LblEntitySpawnPostion);
- this.TPSpawnArgs.Controls.Add(this.LblEntityLevel);
- this.TPSpawnArgs.Controls.Add(this.LblEntityAmount);
- resources.ApplyResources(this.TPSpawnArgs, "TPSpawnArgs");
- this.TPSpawnArgs.Name = "TPSpawnArgs";
- this.TPSpawnArgs.UseVisualStyleBackColor = true;
- //
- // NUDEntityDef
- //
- resources.ApplyResources(this.NUDEntityDef, "NUDEntityDef");
- this.NUDEntityDef.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDEntityDef.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- -2147483648});
- this.NUDEntityDef.Name = "NUDEntityDef";
- this.NUDEntityDef.Value = new decimal(new int[] {
- 1,
- 0,
- 0,
- -2147483648});
- this.NUDEntityDef.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
- //
- // NUDEntityAtk
- //
- resources.ApplyResources(this.NUDEntityAtk, "NUDEntityAtk");
- this.NUDEntityAtk.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDEntityAtk.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- -2147483648});
- this.NUDEntityAtk.Name = "NUDEntityAtk";
- this.NUDEntityAtk.Value = new decimal(new int[] {
- 1,
- 0,
- 0,
- -2147483648});
- this.NUDEntityAtk.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
- //
- // NUDEntityHp
- //
- resources.ApplyResources(this.NUDEntityHp, "NUDEntityHp");
- this.NUDEntityHp.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDEntityHp.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- -2147483648});
- this.NUDEntityHp.Name = "NUDEntityHp";
- this.NUDEntityHp.Value = new decimal(new int[] {
- 1,
- 0,
- 0,
- -2147483648});
- this.NUDEntityHp.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
- //
- // NUDEntityMaxHp
- //
- resources.ApplyResources(this.NUDEntityMaxHp, "NUDEntityMaxHp");
- this.NUDEntityMaxHp.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDEntityMaxHp.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- -2147483648});
- this.NUDEntityMaxHp.Name = "NUDEntityMaxHp";
- this.NUDEntityMaxHp.Value = new decimal(new int[] {
- 1,
- 0,
- 0,
- -2147483648});
- this.NUDEntityMaxHp.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
- //
- // NUDEntityPosZ
- //
- resources.ApplyResources(this.NUDEntityPosZ, "NUDEntityPosZ");
- this.NUDEntityPosZ.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDEntityPosZ.Minimum = new decimal(new int[] {
- -2147483648,
- 0,
- 0,
- -2147483648});
- this.NUDEntityPosZ.Name = "NUDEntityPosZ";
- this.NUDEntityPosZ.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
- //
- // NUDEntityPosY
- //
- resources.ApplyResources(this.NUDEntityPosY, "NUDEntityPosY");
- this.NUDEntityPosY.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDEntityPosY.Minimum = new decimal(new int[] {
- -2147483648,
- 0,
- 0,
- -2147483648});
- this.NUDEntityPosY.Name = "NUDEntityPosY";
- this.NUDEntityPosY.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
- //
- // NUDEntityPosX
- //
- resources.ApplyResources(this.NUDEntityPosX, "NUDEntityPosX");
- this.NUDEntityPosX.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDEntityPosX.Minimum = new decimal(new int[] {
- -2147483648,
- 0,
- 0,
- -2147483648});
- this.NUDEntityPosX.Name = "NUDEntityPosX";
- this.NUDEntityPosX.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
- //
- // NUDEntityAmout
- //
- resources.ApplyResources(this.NUDEntityAmout, "NUDEntityAmout");
- this.NUDEntityAmout.Maximum = new decimal(new int[] {
- 1000,
- 0,
- 0,
- 0});
- this.NUDEntityAmout.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDEntityAmout.Name = "NUDEntityAmout";
- this.NUDEntityAmout.Value = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDEntityAmout.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
- //
- // NUDEntityLevel
- //
- resources.ApplyResources(this.NUDEntityLevel, "NUDEntityLevel");
- this.NUDEntityLevel.Maximum = new decimal(new int[] {
- 90,
- 0,
- 0,
- 0});
- this.NUDEntityLevel.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDEntityLevel.Name = "NUDEntityLevel";
- this.NUDEntityLevel.Value = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDEntityLevel.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
- //
- // LblSpawnVersionRequireTip
- //
- resources.ApplyResources(this.LblSpawnVersionRequireTip, "LblSpawnVersionRequireTip");
- this.LblSpawnVersionRequireTip.ForeColor = System.Drawing.SystemColors.GrayText;
- this.LblSpawnVersionRequireTip.Name = "LblSpawnVersionRequireTip";
- //
- // LblInfiniteHpTip
- //
- resources.ApplyResources(this.LblInfiniteHpTip, "LblInfiniteHpTip");
- this.LblInfiniteHpTip.ForeColor = System.Drawing.SystemColors.GrayText;
- this.LblInfiniteHpTip.Name = "LblInfiniteHpTip";
- //
- // LblEntityDef
- //
- resources.ApplyResources(this.LblEntityDef, "LblEntityDef");
- this.LblEntityDef.Name = "LblEntityDef";
- //
- // LblEntityAtk
- //
- resources.ApplyResources(this.LblEntityAtk, "LblEntityAtk");
- this.LblEntityAtk.Name = "LblEntityAtk";
- //
- // LblEntityHp
- //
- resources.ApplyResources(this.LblEntityHp, "LblEntityHp");
- this.LblEntityHp.Name = "LblEntityHp";
- //
- // LblEntityMaxHp
- //
- resources.ApplyResources(this.LblEntityMaxHp, "LblEntityMaxHp");
- this.LblEntityMaxHp.Name = "LblEntityMaxHp";
- //
- // LblEntitySpawnPostion
- //
- resources.ApplyResources(this.LblEntitySpawnPostion, "LblEntitySpawnPostion");
- this.LblEntitySpawnPostion.Name = "LblEntitySpawnPostion";
- //
- // LblEntityLevel
- //
- resources.ApplyResources(this.LblEntityLevel, "LblEntityLevel");
- this.LblEntityLevel.Name = "LblEntityLevel";
- //
- // LblEntityAmount
- //
- resources.ApplyResources(this.LblEntityAmount, "LblEntityAmount");
- this.LblEntityAmount.Name = "LblEntityAmount";
- //
- // TPAttackModArgs
- //
- this.TPAttackModArgs.Controls.Add(this.LblAMPluginTip);
- this.TPAttackModArgs.Controls.Add(this.LblAMPluginIntroduction);
- this.TPAttackModArgs.Controls.Add(this.LblAMPlugin);
- this.TPAttackModArgs.Controls.Add(this.LnkAMOff);
- this.TPAttackModArgs.Controls.Add(this.LnkAMOn);
- this.TPAttackModArgs.Controls.Add(this.BtnAtReload);
- this.TPAttackModArgs.Controls.Add(this.BtnAtClear);
- this.TPAttackModArgs.Controls.Add(this.LnkAttackModifierPlugin);
- this.TPAttackModArgs.Controls.Add(this.GrpAMSkills);
- resources.ApplyResources(this.TPAttackModArgs, "TPAttackModArgs");
- this.TPAttackModArgs.Name = "TPAttackModArgs";
- this.TPAttackModArgs.UseVisualStyleBackColor = true;
- //
- // LblAMPluginTip
- //
- resources.ApplyResources(this.LblAMPluginTip, "LblAMPluginTip");
- this.LblAMPluginTip.ForeColor = System.Drawing.SystemColors.GrayText;
- this.LblAMPluginTip.Name = "LblAMPluginTip";
- //
- // LblAMPluginIntroduction
- //
- resources.ApplyResources(this.LblAMPluginIntroduction, "LblAMPluginIntroduction");
- this.LblAMPluginIntroduction.Name = "LblAMPluginIntroduction";
- //
- // LblAMPlugin
- //
- resources.ApplyResources(this.LblAMPlugin, "LblAMPlugin");
- this.LblAMPlugin.Name = "LblAMPlugin";
- //
- // LnkAMOff
- //
- resources.ApplyResources(this.LnkAMOff, "LnkAMOff");
- this.LnkAMOff.Name = "LnkAMOff";
- this.LnkAMOff.TabStop = true;
- this.LnkAMOff.Tag = "off";
- this.LnkAMOff.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.OnAttackModifierCommand);
- //
- // LnkAMOn
- //
- resources.ApplyResources(this.LnkAMOn, "LnkAMOn");
- this.LnkAMOn.Name = "LnkAMOn";
- this.LnkAMOn.TabStop = true;
- this.LnkAMOn.Tag = "on";
- this.LnkAMOn.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.OnAttackModifierCommand);
- //
- // BtnAtReload
- //
- resources.ApplyResources(this.BtnAtReload, "BtnAtReload");
- this.BtnAtReload.Name = "BtnAtReload";
- this.BtnAtReload.Tag = "reload";
- this.BtnAtReload.UseVisualStyleBackColor = true;
- this.BtnAtReload.Click += new System.EventHandler(this.OnAttackModifierCommand);
- //
- // BtnAtClear
- //
- resources.ApplyResources(this.BtnAtClear, "BtnAtClear");
- this.BtnAtClear.Name = "BtnAtClear";
- this.BtnAtClear.Tag = "remove";
- this.BtnAtClear.UseVisualStyleBackColor = true;
- this.BtnAtClear.Click += new System.EventHandler(this.OnAttackModifierCommand);
- //
- // LnkAttackModifierPlugin
- //
- resources.ApplyResources(this.LnkAttackModifierPlugin, "LnkAttackModifierPlugin");
- this.LnkAttackModifierPlugin.Name = "LnkAttackModifierPlugin";
- this.LnkAttackModifierPlugin.TabStop = true;
- this.LnkAttackModifierPlugin.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkAttackModifierPlugin_LinkClicked);
- //
- // GrpAMSkills
- //
- this.GrpAMSkills.Controls.Add(this.TxtAtEntityQ);
- this.GrpAMSkills.Controls.Add(this.TxtAtEntityE);
- this.GrpAMSkills.Controls.Add(this.TxtAtEntityN);
- this.GrpAMSkills.Controls.Add(this.RbAtQ);
- this.GrpAMSkills.Controls.Add(this.RbAtE);
- this.GrpAMSkills.Controls.Add(this.RbAtN);
- resources.ApplyResources(this.GrpAMSkills, "GrpAMSkills");
- this.GrpAMSkills.Name = "GrpAMSkills";
- this.GrpAMSkills.TabStop = false;
- //
- // TxtAtEntityQ
- //
- resources.ApplyResources(this.TxtAtEntityQ, "TxtAtEntityQ");
- this.TxtAtEntityQ.Name = "TxtAtEntityQ";
- this.TxtAtEntityQ.ReadOnly = true;
- //
- // TxtAtEntityE
- //
- resources.ApplyResources(this.TxtAtEntityE, "TxtAtEntityE");
- this.TxtAtEntityE.Name = "TxtAtEntityE";
- this.TxtAtEntityE.ReadOnly = true;
- //
- // TxtAtEntityN
- //
- resources.ApplyResources(this.TxtAtEntityN, "TxtAtEntityN");
- this.TxtAtEntityN.Name = "TxtAtEntityN";
- this.TxtAtEntityN.ReadOnly = true;
- //
- // RbAtQ
- //
- resources.ApplyResources(this.RbAtQ, "RbAtQ");
- this.RbAtQ.Name = "RbAtQ";
- this.RbAtQ.UseVisualStyleBackColor = true;
- //
- // RbAtE
- //
- resources.ApplyResources(this.RbAtE, "RbAtE");
- this.RbAtE.Name = "RbAtE";
- this.RbAtE.UseVisualStyleBackColor = true;
- //
- // RbAtN
- //
- resources.ApplyResources(this.RbAtN, "RbAtN");
- this.RbAtN.Checked = true;
- this.RbAtN.Name = "RbAtN";
- this.RbAtN.TabStop = true;
- this.RbAtN.UseVisualStyleBackColor = true;
- //
- // TPAttackInfusedArgs
- //
- this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiRotateZ);
- this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiRotateY);
- this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiRotateX);
- this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiRotate);
- this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiSpread);
- this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiSpread);
- this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiCount);
- this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiHeight);
- this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiRadius);
- this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiCount);
- this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiHeight);
- this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiRadius);
- this.TPAttackInfusedArgs.Controls.Add(this.BtnAttackInfuse);
- this.TPAttackInfusedArgs.Controls.Add(this.BtnAiwiReload);
- this.TPAttackInfusedArgs.Controls.Add(this.BtnAiwiClear);
- this.TPAttackInfusedArgs.Controls.Add(this.BtnAiwiReset);
- this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiPlugin);
- this.TPAttackInfusedArgs.Controls.Add(this.LnkAttackInfusedWithItem);
- resources.ApplyResources(this.TPAttackInfusedArgs, "TPAttackInfusedArgs");
- this.TPAttackInfusedArgs.Name = "TPAttackInfusedArgs";
- this.TPAttackInfusedArgs.UseVisualStyleBackColor = true;
- //
- // NUDAiwiRotateZ
- //
- resources.ApplyResources(this.NUDAiwiRotateZ, "NUDAiwiRotateZ");
- this.NUDAiwiRotateZ.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDAiwiRotateZ.Minimum = new decimal(new int[] {
- -2147483648,
- 0,
- 0,
- -2147483648});
- this.NUDAiwiRotateZ.Name = "NUDAiwiRotateZ";
- //
- // NUDAiwiRotateY
- //
- resources.ApplyResources(this.NUDAiwiRotateY, "NUDAiwiRotateY");
- this.NUDAiwiRotateY.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDAiwiRotateY.Minimum = new decimal(new int[] {
- -2147483648,
- 0,
- 0,
- -2147483648});
- this.NUDAiwiRotateY.Name = "NUDAiwiRotateY";
- //
- // NUDAiwiRotateX
- //
- resources.ApplyResources(this.NUDAiwiRotateX, "NUDAiwiRotateX");
- this.NUDAiwiRotateX.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDAiwiRotateX.Minimum = new decimal(new int[] {
- -2147483648,
- 0,
- 0,
- -2147483648});
- this.NUDAiwiRotateX.Name = "NUDAiwiRotateX";
- //
- // LblAiwiRotate
- //
- resources.ApplyResources(this.LblAiwiRotate, "LblAiwiRotate");
- this.LblAiwiRotate.Name = "LblAiwiRotate";
- //
- // NUDAiwiSpread
- //
- this.NUDAiwiSpread.DecimalPlaces = 2;
- resources.ApplyResources(this.NUDAiwiSpread, "NUDAiwiSpread");
- this.NUDAiwiSpread.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDAiwiSpread.Name = "NUDAiwiSpread";
- //
- // LblAiwiSpread
- //
- resources.ApplyResources(this.LblAiwiSpread, "LblAiwiSpread");
- this.LblAiwiSpread.Name = "LblAiwiSpread";
- //
- // NUDAiwiCount
- //
- resources.ApplyResources(this.NUDAiwiCount, "NUDAiwiCount");
- this.NUDAiwiCount.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDAiwiCount.Name = "NUDAiwiCount";
- //
- // NUDAiwiHeight
- //
- resources.ApplyResources(this.NUDAiwiHeight, "NUDAiwiHeight");
- this.NUDAiwiHeight.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDAiwiHeight.Name = "NUDAiwiHeight";
- //
- // NUDAiwiRadius
- //
- resources.ApplyResources(this.NUDAiwiRadius, "NUDAiwiRadius");
- this.NUDAiwiRadius.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDAiwiRadius.Name = "NUDAiwiRadius";
- //
- // LblAiwiCount
- //
- resources.ApplyResources(this.LblAiwiCount, "LblAiwiCount");
- this.LblAiwiCount.Name = "LblAiwiCount";
- //
- // LblAiwiHeight
- //
- resources.ApplyResources(this.LblAiwiHeight, "LblAiwiHeight");
- this.LblAiwiHeight.Name = "LblAiwiHeight";
- //
- // LblAiwiRadius
- //
- resources.ApplyResources(this.LblAiwiRadius, "LblAiwiRadius");
- this.LblAiwiRadius.Name = "LblAiwiRadius";
- //
- // BtnAttackInfuse
- //
- resources.ApplyResources(this.BtnAttackInfuse, "BtnAttackInfuse");
- this.BtnAttackInfuse.Name = "BtnAttackInfuse";
- this.BtnAttackInfuse.UseVisualStyleBackColor = true;
- this.BtnAttackInfuse.Click += new System.EventHandler(this.BtnAttackInfuse_Click);
- //
- // BtnAiwiReload
- //
- resources.ApplyResources(this.BtnAiwiReload, "BtnAiwiReload");
- this.BtnAiwiReload.Name = "BtnAiwiReload";
- this.BtnAiwiReload.Tag = "config";
- this.BtnAiwiReload.UseVisualStyleBackColor = true;
- this.BtnAiwiReload.Click += new System.EventHandler(this.OnAttackInfusedCommand);
- //
- // BtnAiwiClear
- //
- resources.ApplyResources(this.BtnAiwiClear, "BtnAiwiClear");
- this.BtnAiwiClear.Name = "BtnAiwiClear";
- this.BtnAiwiClear.Tag = "clear";
- this.BtnAiwiClear.UseVisualStyleBackColor = true;
- this.BtnAiwiClear.Click += new System.EventHandler(this.OnAttackInfusedCommand);
- //
- // BtnAiwiReset
- //
- resources.ApplyResources(this.BtnAiwiReset, "BtnAiwiReset");
- this.BtnAiwiReset.Name = "BtnAiwiReset";
- this.BtnAiwiReset.Tag = "none";
- this.BtnAiwiReset.UseVisualStyleBackColor = true;
- this.BtnAiwiReset.Click += new System.EventHandler(this.OnAttackInfusedCommand);
- //
- // LblAiwiPlugin
- //
- resources.ApplyResources(this.LblAiwiPlugin, "LblAiwiPlugin");
- this.LblAiwiPlugin.Name = "LblAiwiPlugin";
- //
- // LnkAttackInfusedWithItem
- //
- resources.ApplyResources(this.LnkAttackInfusedWithItem, "LnkAttackInfusedWithItem");
- this.LnkAttackInfusedWithItem.Name = "LnkAttackInfusedWithItem";
- this.LnkAttackInfusedWithItem.TabStop = true;
- this.LnkAttackInfusedWithItem.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkAttackInfusedWithItem_LinkClicked);
- //
- // TCSpawnItems
- //
- resources.ApplyResources(this.TCSpawnItems, "TCSpawnItems");
- this.TCSpawnItems.Controls.Add(this.TPSpawnItems);
- this.TCSpawnItems.Controls.Add(this.TPSpawnRecords);
- this.TCSpawnItems.Name = "TCSpawnItems";
- this.TCSpawnItems.SelectedIndex = 0;
- //
- // TPSpawnItems
- //
- this.TPSpawnItems.Controls.Add(this.ListEntity);
- this.TPSpawnItems.Controls.Add(this.PanelEntityFilterBar);
- resources.ApplyResources(this.TPSpawnItems, "TPSpawnItems");
- this.TPSpawnItems.Name = "TPSpawnItems";
- this.TPSpawnItems.UseVisualStyleBackColor = true;
- //
- // ListEntity
- //
- resources.ApplyResources(this.ListEntity, "ListEntity");
- this.ListEntity.FormattingEnabled = true;
- this.ListEntity.Name = "ListEntity";
- this.ListEntity.SelectedIndexChanged += new System.EventHandler(this.ListEntity_SelectedIndexChanged);
- //
- // PanelEntityFilterBar
- //
- this.PanelEntityFilterBar.Controls.Add(this.TxtEntityFilter);
- this.PanelEntityFilterBar.Controls.Add(this.BtnFilterEntity);
- resources.ApplyResources(this.PanelEntityFilterBar, "PanelEntityFilterBar");
- this.PanelEntityFilterBar.Name = "PanelEntityFilterBar";
- //
- // TxtEntityFilter
- //
- resources.ApplyResources(this.TxtEntityFilter, "TxtEntityFilter");
- this.TxtEntityFilter.Name = "TxtEntityFilter";
- this.TxtEntityFilter.TextChanged += new System.EventHandler(this.TxtEntityFilter_TextChanged);
- //
- // BtnFilterEntity
- //
- resources.ApplyResources(this.BtnFilterEntity, "BtnFilterEntity");
- this.BtnFilterEntity.Name = "BtnFilterEntity";
- this.BtnFilterEntity.UseVisualStyleBackColor = true;
- this.BtnFilterEntity.Click += new System.EventHandler(this.BtnFilterEntity_Click);
- //
- // TPSpawnRecords
- //
- this.TPSpawnRecords.Controls.Add(this.ListSpawnLogs);
- this.TPSpawnRecords.Controls.Add(this.FLPSpawnRecordControls);
- resources.ApplyResources(this.TPSpawnRecords, "TPSpawnRecords");
- this.TPSpawnRecords.Name = "TPSpawnRecords";
- this.TPSpawnRecords.UseVisualStyleBackColor = true;
- //
- // ListSpawnLogs
- //
- resources.ApplyResources(this.ListSpawnLogs, "ListSpawnLogs");
- this.ListSpawnLogs.FormattingEnabled = true;
- this.ListSpawnLogs.Name = "ListSpawnLogs";
- this.ListSpawnLogs.SelectedIndexChanged += new System.EventHandler(this.ListSpawnLogs_SelectedIndexChanged);
- //
- // FLPSpawnRecordControls
- //
- resources.ApplyResources(this.FLPSpawnRecordControls, "FLPSpawnRecordControls");
- this.FLPSpawnRecordControls.Controls.Add(this.BtnSaveSpawnLog);
- this.FLPSpawnRecordControls.Controls.Add(this.BtnRemoveSpawnLog);
- this.FLPSpawnRecordControls.Controls.Add(this.LblClearSpawnLogs);
- this.FLPSpawnRecordControls.Name = "FLPSpawnRecordControls";
- //
- // BtnSaveSpawnLog
- //
- resources.ApplyResources(this.BtnSaveSpawnLog, "BtnSaveSpawnLog");
- this.BtnSaveSpawnLog.Name = "BtnSaveSpawnLog";
- this.BtnSaveSpawnLog.UseVisualStyleBackColor = true;
- this.BtnSaveSpawnLog.Click += new System.EventHandler(this.BtnSaveSpawnLog_Click);
- //
- // BtnRemoveSpawnLog
- //
- resources.ApplyResources(this.BtnRemoveSpawnLog, "BtnRemoveSpawnLog");
- this.BtnRemoveSpawnLog.Name = "BtnRemoveSpawnLog";
- this.BtnRemoveSpawnLog.UseVisualStyleBackColor = true;
- this.BtnRemoveSpawnLog.Click += new System.EventHandler(this.BtnRemoveSpawnLog_Click);
- //
- // LblClearSpawnLogs
- //
- resources.ApplyResources(this.LblClearSpawnLogs, "LblClearSpawnLogs");
- this.LblClearSpawnLogs.Cursor = System.Windows.Forms.Cursors.Hand;
- this.LblClearSpawnLogs.Name = "LblClearSpawnLogs";
- this.LblClearSpawnLogs.Click += new System.EventHandler(this.LblClearSpawnLogs_Click);
- //
// TPQuest
//
this.TPQuest.Controls.Add(this.GrpQuestFilters);
@@ -2384,400 +1190,22 @@ namespace GrasscutterTools.Forms
//
// TPArtifact
//
- this.TPArtifact.Controls.Add(this.LnkCharacterBuilder);
- this.TPArtifact.Controls.Add(this.LblArtifactLevelTip);
- this.TPArtifact.Controls.Add(this.BtnAddSubAttr);
- this.TPArtifact.Controls.Add(this.LblArtifactName);
- this.TPArtifact.Controls.Add(this.LblArtifactPart);
- this.TPArtifact.Controls.Add(this.CmbArtifactPart);
- this.TPArtifact.Controls.Add(this.CmbArtifactSet);
- this.TPArtifact.Controls.Add(this.LblArtifactSet);
- this.TPArtifact.Controls.Add(this.NUDSubAttributionTimes);
- this.TPArtifact.Controls.Add(this.CmbSubAttributionValue);
- this.TPArtifact.Controls.Add(this.CmbSubAttribution);
- this.TPArtifact.Controls.Add(this.LblClearSubAttrCheckedList);
- this.TPArtifact.Controls.Add(this.ListSubAttributionChecked);
- this.TPArtifact.Controls.Add(this.LblArtifactLevel);
- this.TPArtifact.Controls.Add(this.LblSubAttribution);
- this.TPArtifact.Controls.Add(this.CmbMainAttribution);
- this.TPArtifact.Controls.Add(this.LblMainAttribution);
- this.TPArtifact.Controls.Add(this.NUDArtifactLevel);
- this.TPArtifact.Controls.Add(this.LblArtifactStars);
- this.TPArtifact.Controls.Add(this.NUDArtifactStars);
resources.ApplyResources(this.TPArtifact, "TPArtifact");
this.TPArtifact.Name = "TPArtifact";
this.TPArtifact.UseVisualStyleBackColor = true;
//
- // LnkCharacterBuilder
- //
- resources.ApplyResources(this.LnkCharacterBuilder, "LnkCharacterBuilder");
- this.LnkCharacterBuilder.Name = "LnkCharacterBuilder";
- this.LnkCharacterBuilder.TabStop = true;
- this.LnkCharacterBuilder.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkCharacterBuilder_LinkClicked);
- //
- // LblArtifactLevelTip
- //
- resources.ApplyResources(this.LblArtifactLevelTip, "LblArtifactLevelTip");
- this.LblArtifactLevelTip.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
- this.LblArtifactLevelTip.Name = "LblArtifactLevelTip";
- //
- // BtnAddSubAttr
- //
- resources.ApplyResources(this.BtnAddSubAttr, "BtnAddSubAttr");
- this.BtnAddSubAttr.Name = "BtnAddSubAttr";
- this.BtnAddSubAttr.UseVisualStyleBackColor = true;
- this.BtnAddSubAttr.Click += new System.EventHandler(this.BtnAddSubAttr_Click);
- //
- // LblArtifactName
- //
- resources.ApplyResources(this.LblArtifactName, "LblArtifactName");
- this.LblArtifactName.Name = "LblArtifactName";
- //
- // LblArtifactPart
- //
- resources.ApplyResources(this.LblArtifactPart, "LblArtifactPart");
- this.LblArtifactPart.Name = "LblArtifactPart";
- //
- // CmbArtifactPart
- //
- resources.ApplyResources(this.CmbArtifactPart, "CmbArtifactPart");
- this.CmbArtifactPart.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.CmbArtifactPart.DropDownWidth = 125;
- this.CmbArtifactPart.FormattingEnabled = true;
- this.CmbArtifactPart.Name = "CmbArtifactPart";
- this.CmbArtifactPart.SelectedIndexChanged += new System.EventHandler(this.CmbArtifactPart_SelectedIndexChanged);
- //
- // CmbArtifactSet
- //
- resources.ApplyResources(this.CmbArtifactSet, "CmbArtifactSet");
- this.CmbArtifactSet.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
- this.CmbArtifactSet.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
- this.CmbArtifactSet.FormattingEnabled = true;
- this.CmbArtifactSet.Name = "CmbArtifactSet";
- this.CmbArtifactSet.SelectedIndexChanged += new System.EventHandler(this.CmbArtifactSet_SelectedIndexChanged);
- //
- // LblArtifactSet
- //
- resources.ApplyResources(this.LblArtifactSet, "LblArtifactSet");
- this.LblArtifactSet.Name = "LblArtifactSet";
- //
- // NUDSubAttributionTimes
- //
- resources.ApplyResources(this.NUDSubAttributionTimes, "NUDSubAttributionTimes");
- this.NUDSubAttributionTimes.Maximum = new decimal(new int[] {
- 1000,
- 0,
- 0,
- 0});
- this.NUDSubAttributionTimes.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDSubAttributionTimes.Name = "NUDSubAttributionTimes";
- this.NUDSubAttributionTimes.Value = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- //
- // CmbSubAttributionValue
- //
- resources.ApplyResources(this.CmbSubAttributionValue, "CmbSubAttributionValue");
- this.CmbSubAttributionValue.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.CmbSubAttributionValue.FormattingEnabled = true;
- this.CmbSubAttributionValue.Name = "CmbSubAttributionValue";
- //
- // CmbSubAttribution
- //
- resources.ApplyResources(this.CmbSubAttribution, "CmbSubAttribution");
- this.CmbSubAttribution.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.CmbSubAttribution.FormattingEnabled = true;
- this.CmbSubAttribution.Name = "CmbSubAttribution";
- this.CmbSubAttribution.SelectedIndexChanged += new System.EventHandler(this.CmbSubAttribution_SelectedIndexChanged);
- //
- // LblClearSubAttrCheckedList
- //
- resources.ApplyResources(this.LblClearSubAttrCheckedList, "LblClearSubAttrCheckedList");
- this.LblClearSubAttrCheckedList.Cursor = System.Windows.Forms.Cursors.Hand;
- this.LblClearSubAttrCheckedList.Name = "LblClearSubAttrCheckedList";
- this.LblClearSubAttrCheckedList.Click += new System.EventHandler(this.LblClearSubAttrCheckedList_Click);
- //
- // ListSubAttributionChecked
- //
- resources.ApplyResources(this.ListSubAttributionChecked, "ListSubAttributionChecked");
- this.ListSubAttributionChecked.FormattingEnabled = true;
- this.ListSubAttributionChecked.Name = "ListSubAttributionChecked";
- this.ListSubAttributionChecked.SelectedIndexChanged += new System.EventHandler(this.ListSubAttributionChecked_SelectedIndexChanged);
- //
- // LblArtifactLevel
- //
- resources.ApplyResources(this.LblArtifactLevel, "LblArtifactLevel");
- this.LblArtifactLevel.Name = "LblArtifactLevel";
- //
- // LblSubAttribution
- //
- resources.ApplyResources(this.LblSubAttribution, "LblSubAttribution");
- this.LblSubAttribution.Name = "LblSubAttribution";
- //
- // CmbMainAttribution
- //
- resources.ApplyResources(this.CmbMainAttribution, "CmbMainAttribution");
- this.CmbMainAttribution.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.CmbMainAttribution.FormattingEnabled = true;
- this.CmbMainAttribution.Name = "CmbMainAttribution";
- this.CmbMainAttribution.SelectedIndexChanged += new System.EventHandler(this.ArtifactInputChanged);
- //
- // LblMainAttribution
- //
- resources.ApplyResources(this.LblMainAttribution, "LblMainAttribution");
- this.LblMainAttribution.Name = "LblMainAttribution";
- //
- // NUDArtifactLevel
- //
- resources.ApplyResources(this.NUDArtifactLevel, "NUDArtifactLevel");
- this.NUDArtifactLevel.Maximum = new decimal(new int[] {
- 20,
- 0,
- 0,
- 0});
- this.NUDArtifactLevel.Name = "NUDArtifactLevel";
- this.NUDArtifactLevel.Value = new decimal(new int[] {
- 20,
- 0,
- 0,
- 0});
- this.NUDArtifactLevel.ValueChanged += new System.EventHandler(this.ArtifactInputChanged);
- //
- // LblArtifactStars
- //
- resources.ApplyResources(this.LblArtifactStars, "LblArtifactStars");
- this.LblArtifactStars.Name = "LblArtifactStars";
- //
- // NUDArtifactStars
- //
- resources.ApplyResources(this.NUDArtifactStars, "NUDArtifactStars");
- this.NUDArtifactStars.Maximum = new decimal(new int[] {
- 5,
- 0,
- 0,
- 0});
- this.NUDArtifactStars.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.NUDArtifactStars.Name = "NUDArtifactStars";
- this.NUDArtifactStars.Value = new decimal(new int[] {
- 5,
- 0,
- 0,
- 0});
- this.NUDArtifactStars.ValueChanged += new System.EventHandler(this.ArtifactInputChanged);
- //
// TPCustom
//
- this.TPCustom.Controls.Add(this.BtnExportCustomCommands);
- this.TPCustom.Controls.Add(this.BtnLoadCustomCommands);
- this.TPCustom.Controls.Add(this.LblCustomName);
- this.TPCustom.Controls.Add(this.groupBox1);
- this.TPCustom.Controls.Add(this.BtnRemoveCustomCommand);
- this.TPCustom.Controls.Add(this.BtnSaveCustomCommand);
- this.TPCustom.Controls.Add(this.TxtCustomName);
resources.ApplyResources(this.TPCustom, "TPCustom");
this.TPCustom.Name = "TPCustom";
this.TPCustom.UseVisualStyleBackColor = true;
//
- // BtnExportCustomCommands
- //
- resources.ApplyResources(this.BtnExportCustomCommands, "BtnExportCustomCommands");
- this.BtnExportCustomCommands.Name = "BtnExportCustomCommands";
- this.BtnExportCustomCommands.UseVisualStyleBackColor = true;
- this.BtnExportCustomCommands.Click += new System.EventHandler(this.BtnExport_Click);
- //
- // BtnLoadCustomCommands
- //
- resources.ApplyResources(this.BtnLoadCustomCommands, "BtnLoadCustomCommands");
- this.BtnLoadCustomCommands.Name = "BtnLoadCustomCommands";
- this.BtnLoadCustomCommands.UseVisualStyleBackColor = true;
- this.BtnLoadCustomCommands.Click += new System.EventHandler(this.BtnImport_Click);
- //
- // LblCustomName
- //
- resources.ApplyResources(this.LblCustomName, "LblCustomName");
- this.LblCustomName.Name = "LblCustomName";
- //
- // groupBox1
- //
- resources.ApplyResources(this.groupBox1, "groupBox1");
- this.groupBox1.Controls.Add(this.LnkResetCustomCommands);
- this.groupBox1.Controls.Add(this.FLPCustomCommands);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.TabStop = false;
- //
- // LnkResetCustomCommands
- //
- resources.ApplyResources(this.LnkResetCustomCommands, "LnkResetCustomCommands");
- this.LnkResetCustomCommands.Name = "LnkResetCustomCommands";
- this.LnkResetCustomCommands.TabStop = true;
- this.LnkResetCustomCommands.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkResetCustomCommands_LinkClicked);
- //
- // FLPCustomCommands
- //
- resources.ApplyResources(this.FLPCustomCommands, "FLPCustomCommands");
- this.FLPCustomCommands.Name = "FLPCustomCommands";
- //
- // BtnRemoveCustomCommand
- //
- resources.ApplyResources(this.BtnRemoveCustomCommand, "BtnRemoveCustomCommand");
- this.BtnRemoveCustomCommand.Name = "BtnRemoveCustomCommand";
- this.BtnRemoveCustomCommand.UseVisualStyleBackColor = true;
- this.BtnRemoveCustomCommand.Click += new System.EventHandler(this.BtnRemoveCustomCommand_Click);
- //
- // BtnSaveCustomCommand
- //
- resources.ApplyResources(this.BtnSaveCustomCommand, "BtnSaveCustomCommand");
- this.BtnSaveCustomCommand.Name = "BtnSaveCustomCommand";
- this.BtnSaveCustomCommand.UseVisualStyleBackColor = true;
- this.BtnSaveCustomCommand.Click += new System.EventHandler(this.BtnSaveCustomCommand_Click);
- //
- // TxtCustomName
- //
- resources.ApplyResources(this.TxtCustomName, "TxtCustomName");
- this.TxtCustomName.Name = "TxtCustomName";
- this.TxtCustomName.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtCustomName_KeyDown);
- //
// TPHome
//
- this.TPHome.Controls.Add(this.BtnOpenShopEditor);
- this.TPHome.Controls.Add(this.BtnOpenDropEditor);
- this.TPHome.Controls.Add(this.LnkNewVersion);
- this.TPHome.Controls.Add(this.LblAbout);
- this.TPHome.Controls.Add(this.BtnOpenTextMap);
- this.TPHome.Controls.Add(this.BtnOpenGachaBannerEditor);
- this.TPHome.Controls.Add(this.GrasscutterToolsIcon);
- this.TPHome.Controls.Add(this.GrpSettings);
resources.ApplyResources(this.TPHome, "TPHome");
this.TPHome.Name = "TPHome";
this.TPHome.UseVisualStyleBackColor = true;
//
- // BtnOpenShopEditor
- //
- resources.ApplyResources(this.BtnOpenShopEditor, "BtnOpenShopEditor");
- this.BtnOpenShopEditor.Name = "BtnOpenShopEditor";
- this.BtnOpenShopEditor.UseVisualStyleBackColor = true;
- this.BtnOpenShopEditor.Click += new System.EventHandler(this.BtnOpenShopEditor_Click);
- //
- // BtnOpenDropEditor
- //
- resources.ApplyResources(this.BtnOpenDropEditor, "BtnOpenDropEditor");
- this.BtnOpenDropEditor.Name = "BtnOpenDropEditor";
- this.BtnOpenDropEditor.UseVisualStyleBackColor = true;
- this.BtnOpenDropEditor.Click += new System.EventHandler(this.BtnOpenDropEditor_Click);
- //
- // LnkNewVersion
- //
- resources.ApplyResources(this.LnkNewVersion, "LnkNewVersion");
- this.LnkNewVersion.Name = "LnkNewVersion";
- this.LnkNewVersion.TabStop = true;
- this.LnkNewVersion.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkNewVersion_LinkClicked);
- //
- // LblAbout
- //
- resources.ApplyResources(this.LblAbout, "LblAbout");
- this.LblAbout.Name = "LblAbout";
- //
- // BtnOpenTextMap
- //
- resources.ApplyResources(this.BtnOpenTextMap, "BtnOpenTextMap");
- this.BtnOpenTextMap.Name = "BtnOpenTextMap";
- this.BtnOpenTextMap.UseVisualStyleBackColor = true;
- this.BtnOpenTextMap.Click += new System.EventHandler(this.BtnOpenTextMap_Click);
- //
- // BtnOpenGachaBannerEditor
- //
- resources.ApplyResources(this.BtnOpenGachaBannerEditor, "BtnOpenGachaBannerEditor");
- this.BtnOpenGachaBannerEditor.Name = "BtnOpenGachaBannerEditor";
- this.BtnOpenGachaBannerEditor.UseVisualStyleBackColor = true;
- this.BtnOpenGachaBannerEditor.Click += new System.EventHandler(this.BtnOpenGachaBannerEditor_Click);
- //
- // GrasscutterToolsIcon
- //
- resources.ApplyResources(this.GrasscutterToolsIcon, "GrasscutterToolsIcon");
- this.GrasscutterToolsIcon.Image = global::GrasscutterTools.Properties.Resources.ImgIconGrasscutter;
- this.GrasscutterToolsIcon.Name = "GrasscutterToolsIcon";
- this.GrasscutterToolsIcon.TabStop = false;
- //
- // GrpSettings
- //
- resources.ApplyResources(this.GrpSettings, "GrpSettings");
- this.GrpSettings.Controls.Add(this.LblGCVersion);
- this.GrpSettings.Controls.Add(this.CmbGcVersions);
- this.GrpSettings.Controls.Add(this.ChkTopMost);
- this.GrpSettings.Controls.Add(this.CmbLanguage);
- this.GrpSettings.Controls.Add(this.LblLanguage);
- this.GrpSettings.Controls.Add(this.NUDUid);
- this.GrpSettings.Controls.Add(this.ChkIncludeUID);
- this.GrpSettings.Controls.Add(this.LblDefaultUid);
- this.GrpSettings.Name = "GrpSettings";
- this.GrpSettings.TabStop = false;
- //
- // LblGCVersion
- //
- resources.ApplyResources(this.LblGCVersion, "LblGCVersion");
- this.LblGCVersion.Name = "LblGCVersion";
- //
- // CmbGcVersions
- //
- this.CmbGcVersions.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.CmbGcVersions.FormattingEnabled = true;
- resources.ApplyResources(this.CmbGcVersions, "CmbGcVersions");
- this.CmbGcVersions.Name = "CmbGcVersions";
- //
- // ChkTopMost
- //
- resources.ApplyResources(this.ChkTopMost, "ChkTopMost");
- this.ChkTopMost.Name = "ChkTopMost";
- this.ChkTopMost.UseVisualStyleBackColor = true;
- //
- // CmbLanguage
- //
- this.CmbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.CmbLanguage.FormattingEnabled = true;
- resources.ApplyResources(this.CmbLanguage, "CmbLanguage");
- this.CmbLanguage.Name = "CmbLanguage";
- //
- // LblLanguage
- //
- resources.ApplyResources(this.LblLanguage, "LblLanguage");
- this.LblLanguage.Name = "LblLanguage";
- //
- // NUDUid
- //
- resources.ApplyResources(this.NUDUid, "NUDUid");
- this.NUDUid.Maximum = new decimal(new int[] {
- 2147483647,
- 0,
- 0,
- 0});
- this.NUDUid.Name = "NUDUid";
- this.NUDUid.Value = new decimal(new int[] {
- 10001,
- 0,
- 0,
- 0});
- //
- // ChkIncludeUID
- //
- resources.ApplyResources(this.ChkIncludeUID, "ChkIncludeUID");
- this.ChkIncludeUID.Name = "ChkIncludeUID";
- this.ChkIncludeUID.UseVisualStyleBackColor = true;
- //
- // LblDefaultUid
- //
- resources.ApplyResources(this.LblDefaultUid, "LblDefaultUid");
- this.LblDefaultUid.Name = "LblDefaultUid";
- //
// TCMain
//
resources.ApplyResources(this.TCMain, "TCMain");
@@ -3073,18 +1501,6 @@ namespace GrasscutterTools.Forms
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.FormMain_KeyDown);
this.GrpCommand.ResumeLayout(false);
this.GrpCommand.PerformLayout();
- this.TPRemoteCall.ResumeLayout(false);
- this.TPRemoteCall.PerformLayout();
- this.GrpServerStatus.ResumeLayout(false);
- this.GrpServerStatus.PerformLayout();
- this.GrpRemoteCommand.ResumeLayout(false);
- this.TPOpenCommandCheck.ResumeLayout(false);
- this.TPPlayerCheck.ResumeLayout(false);
- this.TPPlayerCheck.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDRemotePlayerId)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDVerificationCode)).EndInit();
- this.TPConsoleCheck.ResumeLayout(false);
- this.TPConsoleCheck.PerformLayout();
this.TPAbout.ResumeLayout(false);
this.TPAbout.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.GrasscutterToolsSupport)).EndInit();
@@ -3108,11 +1524,6 @@ namespace GrasscutterTools.Forms
this.GrpGiveItemRecord.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.NUDGameItemAmout)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDGameItemLevel)).EndInit();
- this.TPWeapon.ResumeLayout(false);
- this.TPWeapon.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponRefinement)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponAmout)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponLevel)).EndInit();
this.TPAvatar.ResumeLayout(false);
this.GrpSetConstellation.ResumeLayout(false);
this.GrpSetConstellation.PerformLayout();
@@ -3128,59 +1539,10 @@ namespace GrasscutterTools.Forms
((System.ComponentModel.ISupportInitialize)(this.NUDAvatarLevel)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDAvatarConstellation)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDAvatarSkillLevel)).EndInit();
- this.TPSpawn.ResumeLayout(false);
- this.TCSpawnSettings.ResumeLayout(false);
- this.TPSpawnArgs.ResumeLayout(false);
- this.TPSpawnArgs.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityDef)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityAtk)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityHp)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityMaxHp)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosZ)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosY)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosX)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityAmout)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDEntityLevel)).EndInit();
- this.TPAttackModArgs.ResumeLayout(false);
- this.TPAttackModArgs.PerformLayout();
- this.GrpAMSkills.ResumeLayout(false);
- this.GrpAMSkills.PerformLayout();
- this.TPAttackInfusedArgs.ResumeLayout(false);
- this.TPAttackInfusedArgs.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateZ)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateY)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateX)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiSpread)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiCount)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiHeight)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRadius)).EndInit();
- this.TCSpawnItems.ResumeLayout(false);
- this.TPSpawnItems.ResumeLayout(false);
- this.PanelEntityFilterBar.ResumeLayout(false);
- this.PanelEntityFilterBar.PerformLayout();
- this.TPSpawnRecords.ResumeLayout(false);
- this.TPSpawnRecords.PerformLayout();
- this.FLPSpawnRecordControls.ResumeLayout(false);
- this.FLPSpawnRecordControls.PerformLayout();
this.TPQuest.ResumeLayout(false);
this.TPQuest.PerformLayout();
this.GrpQuestFilters.ResumeLayout(false);
this.GrpQuestFilters.PerformLayout();
- this.TPArtifact.ResumeLayout(false);
- this.TPArtifact.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDSubAttributionTimes)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDArtifactLevel)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.NUDArtifactStars)).EndInit();
- this.TPCustom.ResumeLayout(false);
- this.TPCustom.PerformLayout();
- this.groupBox1.ResumeLayout(false);
- this.groupBox1.PerformLayout();
- this.TPHome.ResumeLayout(false);
- this.TPHome.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.GrasscutterToolsIcon)).EndInit();
- this.GrpSettings.ResumeLayout(false);
- this.GrpSettings.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.NUDUid)).EndInit();
this.TCMain.ResumeLayout(false);
this.TPMail.ResumeLayout(false);
this.TPMail.PerformLayout();
@@ -3206,31 +1568,6 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.GroupBox GrpCommand;
private System.Windows.Forms.Button BtnInvokeOpenCommand;
private System.Windows.Forms.TabPage TPRemoteCall;
- private System.Windows.Forms.GroupBox GrpServerStatus;
- private System.Windows.Forms.LinkLabel LnkOpenCommandLabel;
- private System.Windows.Forms.Label LblOpenCommandSupport;
- private System.Windows.Forms.Label LblServerVersion;
- private System.Windows.Forms.Label LblPlayerCount;
- private System.Windows.Forms.Label LblServerVersionLabel;
- private System.Windows.Forms.Label LblPlayerCountLabel;
- private System.Windows.Forms.GroupBox GrpRemoteCommand;
- private System.Windows.Forms.TabControl TPOpenCommandCheck;
- private System.Windows.Forms.TabPage TPPlayerCheck;
- private System.Windows.Forms.LinkLabel LnkRCHelp;
- private System.Windows.Forms.NumericUpDown NUDRemotePlayerId;
- private System.Windows.Forms.Button BtnConnectOpenCommand;
- private System.Windows.Forms.Label LblVerificationCode;
- private System.Windows.Forms.Button BtnSendVerificationCode;
- private System.Windows.Forms.NumericUpDown NUDVerificationCode;
- private System.Windows.Forms.Label LblRemotePlayerId;
- private System.Windows.Forms.TabPage TPConsoleCheck;
- private System.Windows.Forms.Button BtnConsoleConnect;
- private System.Windows.Forms.TextBox TxtToken;
- private System.Windows.Forms.Label LblToken;
- private System.Windows.Forms.Label LblConsoleTip;
- private System.Windows.Forms.TextBox TxtHost;
- private System.Windows.Forms.Button BtnQueryServerStatus;
- private System.Windows.Forms.Label LblHost;
private System.Windows.Forms.TabPage TPAbout;
private System.Windows.Forms.PictureBox GrasscutterToolsSupport;
private System.Windows.Forms.LinkLabel LnkGithub;
@@ -3286,30 +1623,12 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.NumericUpDown NUDGameItemLevel;
private System.Windows.Forms.Label LblGiveCommandDescription;
private System.Windows.Forms.TabPage TPWeapon;
- private System.Windows.Forms.TextBox TxtWeaponFilter;
- private System.Windows.Forms.Label LblWeaponDescription;
- private System.Windows.Forms.Label LblWeaponRefinement;
- private System.Windows.Forms.Label LblWeaponAmount;
- private System.Windows.Forms.Label LblWeaponLevel;
- private System.Windows.Forms.NumericUpDown NUDWeaponRefinement;
- private System.Windows.Forms.NumericUpDown NUDWeaponAmout;
- private System.Windows.Forms.NumericUpDown NUDWeaponLevel;
- private System.Windows.Forms.ListBox ListWeapons;
private System.Windows.Forms.TabPage TPAvatar;
private System.Windows.Forms.Label LblAvatar;
private System.Windows.Forms.Label LblAvatarLevel;
private System.Windows.Forms.NumericUpDown NUDAvatarLevel;
private System.Windows.Forms.ComboBox CmbAvatar;
private System.Windows.Forms.TabPage TPSpawn;
- private System.Windows.Forms.Button BtnSaveSpawnLog;
- private System.Windows.Forms.Button BtnRemoveSpawnLog;
- private System.Windows.Forms.ListBox ListSpawnLogs;
- private System.Windows.Forms.Label LblEntityAmount;
- private System.Windows.Forms.Label LblEntityLevel;
- private System.Windows.Forms.NumericUpDown NUDEntityAmout;
- private System.Windows.Forms.NumericUpDown NUDEntityLevel;
- private System.Windows.Forms.TextBox TxtEntityFilter;
- private System.Windows.Forms.ListBox ListEntity;
private System.Windows.Forms.TabPage TPQuest;
private System.Windows.Forms.GroupBox GrpQuestFilters;
private System.Windows.Forms.CheckBox ChkQuestFilterTEST;
@@ -3321,69 +1640,18 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.TextBox TxtQuestFilter;
private System.Windows.Forms.ListBox ListQuest;
private System.Windows.Forms.TabPage TPArtifact;
- private System.Windows.Forms.Button BtnAddSubAttr;
- private System.Windows.Forms.Label LblArtifactName;
- private System.Windows.Forms.NumericUpDown NUDArtifactStars;
- private System.Windows.Forms.Label LblArtifactStars;
- private System.Windows.Forms.Label LblArtifactPart;
- private System.Windows.Forms.ComboBox CmbArtifactPart;
- private System.Windows.Forms.ComboBox CmbArtifactSet;
- private System.Windows.Forms.Label LblArtifactSet;
- private System.Windows.Forms.NumericUpDown NUDSubAttributionTimes;
- private System.Windows.Forms.ComboBox CmbSubAttributionValue;
- private System.Windows.Forms.ComboBox CmbSubAttribution;
- private System.Windows.Forms.Label LblClearSubAttrCheckedList;
- private System.Windows.Forms.ListBox ListSubAttributionChecked;
- private System.Windows.Forms.NumericUpDown NUDArtifactLevel;
- private System.Windows.Forms.Label LblArtifactLevel;
- private System.Windows.Forms.Label LblSubAttribution;
- private System.Windows.Forms.ComboBox CmbMainAttribution;
- private System.Windows.Forms.Label LblMainAttribution;
private System.Windows.Forms.TabPage TPCustom;
- private System.Windows.Forms.Button BtnExportCustomCommands;
- private System.Windows.Forms.Button BtnLoadCustomCommands;
- private System.Windows.Forms.Label LblCustomName;
- private System.Windows.Forms.GroupBox groupBox1;
- private System.Windows.Forms.LinkLabel LnkResetCustomCommands;
- private System.Windows.Forms.FlowLayoutPanel FLPCustomCommands;
- private System.Windows.Forms.Button BtnRemoveCustomCommand;
- private System.Windows.Forms.Button BtnSaveCustomCommand;
- private System.Windows.Forms.TextBox TxtCustomName;
private System.Windows.Forms.TabPage TPHome;
- private System.Windows.Forms.Label LblAbout;
- private System.Windows.Forms.Button BtnOpenTextMap;
- private System.Windows.Forms.Button BtnOpenGachaBannerEditor;
- private System.Windows.Forms.PictureBox GrasscutterToolsIcon;
- private System.Windows.Forms.GroupBox GrpSettings;
- private System.Windows.Forms.CheckBox ChkTopMost;
- private System.Windows.Forms.ComboBox CmbLanguage;
- private System.Windows.Forms.Label LblLanguage;
- private System.Windows.Forms.NumericUpDown NUDUid;
- private System.Windows.Forms.CheckBox ChkIncludeUID;
- private System.Windows.Forms.Label LblDefaultUid;
private System.Windows.Forms.TabControl TCMain;
- private System.Windows.Forms.Label LblArtifactLevelTip;
- private System.Windows.Forms.Label LblClearSpawnLogs;
private System.Windows.Forms.Label LblClearGiveItemLogs;
private System.Windows.Forms.Label LblAvatarConstellation;
private System.Windows.Forms.NumericUpDown NUDAvatarConstellation;
private System.Windows.Forms.Button BtnGiveAllChar;
- private System.Windows.Forms.Label LblHostTip;
- private System.Windows.Forms.Button ButtonOpenGOODImport;
- private System.Windows.Forms.LinkLabel LnkInventoryKamera;
- private System.Windows.Forms.Label LblGOODHelp;
- private System.Windows.Forms.LinkLabel LnkGOODHelp;
- private System.Windows.Forms.LinkLabel LnkLinks;
- private System.Windows.Forms.Label LblGCVersion;
- private System.Windows.Forms.ComboBox CmbGcVersions;
private System.Windows.Forms.Button BtnPermClear;
private System.Windows.Forms.Button BtnPermList;
- private System.Windows.Forms.LinkLabel LnkNewVersion;
- private System.Windows.Forms.Button BtnGiveAllWeapons;
private System.Windows.Forms.NumericUpDown NUDAvatarSkillLevel;
private System.Windows.Forms.Label LblAvatarSkillLevelLabel;
private System.Windows.Forms.Label LblAvatarSkillLevelTip;
- private System.Windows.Forms.Button BtnOpenDropEditor;
private System.Windows.Forms.TabPage TPMail;
private System.Windows.Forms.TextBox TxtMailContent;
private System.Windows.Forms.Label LblMailContentLabel;
@@ -3433,68 +1701,9 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.LinkLabel LnkSetAllConst;
private System.Windows.Forms.LinkLabel LnkSetConst;
private System.Windows.Forms.NumericUpDown NUDSetConstellation;
- private System.Windows.Forms.Button BtnOpenShopEditor;
- private System.Windows.Forms.TabControl TCSpawnItems;
- private System.Windows.Forms.TabPage TPSpawnItems;
- private System.Windows.Forms.TabPage TPSpawnRecords;
- private System.Windows.Forms.TabControl TCSpawnSettings;
- private System.Windows.Forms.TabPage TPSpawnArgs;
- private System.Windows.Forms.TabPage TPAttackModArgs;
- private System.Windows.Forms.Button BtnFilterEntity;
- private System.Windows.Forms.Panel PanelEntityFilterBar;
- private System.Windows.Forms.FlowLayoutPanel FLPSpawnRecordControls;
private System.Windows.Forms.ContextMenuStrip MenuSpawnEntityFilter;
- private System.Windows.Forms.GroupBox GrpAMSkills;
- private System.Windows.Forms.RadioButton RbAtQ;
- private System.Windows.Forms.RadioButton RbAtE;
- private System.Windows.Forms.RadioButton RbAtN;
- private System.Windows.Forms.Button BtnAtReload;
- private System.Windows.Forms.Button BtnAtClear;
- private System.Windows.Forms.LinkLabel LnkAttackInfusedWithItem;
- private System.Windows.Forms.LinkLabel LnkAttackModifierPlugin;
- private System.Windows.Forms.LinkLabel LnkAMOff;
- private System.Windows.Forms.LinkLabel LnkAMOn;
- private System.Windows.Forms.TabPage TPAttackInfusedArgs;
- private System.Windows.Forms.Label LblAMPlugin;
- private System.Windows.Forms.Label LblAiwiPlugin;
- private System.Windows.Forms.Button BtnAttackInfuse;
- private System.Windows.Forms.Button BtnAiwiReload;
- private System.Windows.Forms.Button BtnAiwiClear;
- private System.Windows.Forms.Button BtnAiwiReset;
- private System.Windows.Forms.NumericUpDown NUDAiwiRotateZ;
- private System.Windows.Forms.NumericUpDown NUDAiwiRotateY;
- private System.Windows.Forms.NumericUpDown NUDAiwiRotateX;
- private System.Windows.Forms.Label LblAiwiRotate;
- private System.Windows.Forms.NumericUpDown NUDAiwiSpread;
- private System.Windows.Forms.Label LblAiwiSpread;
- private System.Windows.Forms.NumericUpDown NUDAiwiCount;
- private System.Windows.Forms.NumericUpDown NUDAiwiHeight;
- private System.Windows.Forms.NumericUpDown NUDAiwiRadius;
- private System.Windows.Forms.Label LblAiwiCount;
- private System.Windows.Forms.Label LblAiwiHeight;
- private System.Windows.Forms.Label LblAiwiRadius;
- private System.Windows.Forms.Label LblAMPluginTip;
- private System.Windows.Forms.Label LblAMPluginIntroduction;
- private System.Windows.Forms.TextBox TxtAtEntityQ;
- private System.Windows.Forms.TextBox TxtAtEntityE;
- private System.Windows.Forms.TextBox TxtAtEntityN;
- private System.Windows.Forms.NumericUpDown NUDEntityPosZ;
- private System.Windows.Forms.NumericUpDown NUDEntityPosY;
- private System.Windows.Forms.NumericUpDown NUDEntityPosX;
- private System.Windows.Forms.Label LblEntitySpawnPostion;
- private System.Windows.Forms.Label LblInfiniteHpTip;
- private System.Windows.Forms.NumericUpDown NUDEntityDef;
- private System.Windows.Forms.Label LblEntityDef;
- private System.Windows.Forms.NumericUpDown NUDEntityAtk;
- private System.Windows.Forms.Label LblEntityAtk;
- private System.Windows.Forms.NumericUpDown NUDEntityHp;
- private System.Windows.Forms.Label LblEntityHp;
- private System.Windows.Forms.NumericUpDown NUDEntityMaxHp;
- private System.Windows.Forms.Label LblEntityMaxHp;
- private System.Windows.Forms.Label LblSpawnVersionRequireTip;
private System.Windows.Forms.ComboBox CmbSwitchElement;
private System.Windows.Forms.LinkLabel LnkSwitchElement;
- private System.Windows.Forms.LinkLabel LnkCharacterBuilder;
private System.Windows.Forms.RadioButton RbListDungeons;
private System.Windows.Forms.RadioButton RbListScene;
}
diff --git a/Source/GrasscutterTools/Forms/FormMain.cs b/Source/GrasscutterTools/Forms/FormMain.cs
index a798dc5..430638f 100644
--- a/Source/GrasscutterTools/Forms/FormMain.cs
+++ b/Source/GrasscutterTools/Forms/FormMain.cs
@@ -23,7 +23,6 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
-using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
@@ -48,16 +47,13 @@ namespace GrasscutterTools.Forms
InitializeComponent();
Icon = Resources.IconGrasscutter;
+ if (DesignMode) return;
+
// 加载版本信息
LoadVersion();
// 加载设置
LoadSettings();
-
-#if !DEBUG // 仅正式版
- // 检查更新,但不要弹窗
- Task.Run(async () => { try { await LoadUpdate(); } catch { /* 启动时检查更新,忽略异常 */ }});
-#endif
}
///
@@ -70,22 +66,23 @@ namespace GrasscutterTools.Forms
Text += "-debug";
//Text += "-debug -攻击修改特供版";
#endif
+ if (DesignMode) return;
GameData.LoadResources();
- LoadCustomCommands();
- InitArtifactList();
+ //LoadCustomCommands();
+ //InitArtifactList();
InitGameItemList();
- InitWeapons();
+ //InitWeapons();
InitAvatars();
- InitEntityList();
+ //InitEntityList();
InitScenes();
InitStatList();
InitPermList();
InitQuestList();
InitMailPage();
- ChangeTPArtifact();
+ //ChangeTPArtifact();
}
///
@@ -93,13 +90,13 @@ namespace GrasscutterTools.Forms
///
protected override void OnShown(EventArgs e)
{
+ base.OnShown(e);
// 还原窗体位置
if (Settings.Default.MainFormLocation != default)
Location = Settings.Default.MainFormLocation;
// 还原窗体大小
if (Settings.Default.MainFormSize != default)
Size = Settings.Default.MainFormSize;
- base.OnShown(e);
}
///
@@ -136,16 +133,16 @@ namespace GrasscutterTools.Forms
ChkAutoCopy.Checked = Settings.Default.AutoCopy;
// 初始化首页设置
- InitHomeSettings();
+ //InitHomeSettings();
// 初始化获取物品记录
InitGiveItemRecord();
// 初始化生成记录
- InitSpawnRecord();
+ //InitSpawnRecord();
// 初始化开放命令
- InitOpenCommand();
+ //InitOpenCommand();
// 初始化邮件列表
InitMailList();
@@ -173,10 +170,10 @@ namespace GrasscutterTools.Forms
Settings.Default.MainFormSize = Size;
// 保存自定义命令
- SaveCustomCommands();
+ //SaveCustomCommands();
// 保存开放命令设置
- SaveOpenCommand();
+ //SaveOpenCommand();
// 保存邮件设置
SaveMailSettings();
@@ -190,659 +187,15 @@ namespace GrasscutterTools.Forms
}
}
- private ReleaseAPI.ReleaseInfo LastestInfo = null;
- private Version lastestVersion = null;
-
- private async Task LoadUpdate()
- {
- var info = await ReleaseAPI.GetReleasesLastest("jie65535", "GrasscutterCommandGenerator");
- if (Version.TryParse(info.TagName.Substring(1), out lastestVersion) && AppVersion < lastestVersion)
- {
- if (!string.IsNullOrEmpty(Settings.Default.CheckedLastVersion)
- && Version.TryParse(Settings.Default.CheckedLastVersion, out Version checkedVersion)
- && checkedVersion >= lastestVersion)
- return;
- LastestInfo = info;
- BeginInvoke(new Action(() =>
- {
- LnkNewVersion.Visible = true;
- LnkNewVersion.Text = Resources.CheckToNewVersion;
- this.Text += " - " + Resources.CheckToNewVersion;
- }));
- }
- }
#endregion - 初始化 Init -
- #region - 主页 Home -
///
/// 命令版本
///
- private CommandVersion CommandVersion;
+ private CommandVersion CommandVersion => Common.CommandVersion;
- ///
- /// 初始化首页设置
- ///
- private void InitHomeSettings()
- {
- // 玩家UID
- NUDUid.Value = Settings.Default.Uid;
- NUDUid.ValueChanged += (o, e) => Settings.Default.Uid = NUDUid.Value;
-
- // 置顶
- ChkTopMost.Checked = Settings.Default.IsTopMost;
- ChkTopMost.CheckedChanged += (o, e) => Settings.Default.IsTopMost = TopMost = ChkTopMost.Checked;
-
- // 命令版本初始化
- CommandVersion = Version.TryParse(Settings.Default.CommandVersion, out Version current) ? new CommandVersion(current) : CommandVersion.Latest();
- CmbGcVersions.DataSource = CommandVersion.List.Select(it => it.ToString(3)).ToList();
- CmbGcVersions.SelectedIndex = Array.IndexOf(CommandVersion.List, CommandVersion.Current);
- CmbGcVersions.SelectedIndexChanged += (o, e) => CommandVersion.Current = CommandVersion.List[CmbGcVersions.SelectedIndex];
- CommandVersion.VersionChanged += OnCommandVersionChanged;
-
-
- // 初始化多语言
- CmbLanguage.DataSource = MultiLanguage.LanguageNames;
- if (string.IsNullOrEmpty(Settings.Default.DefaultLanguage))
- {
- // 如果未选择语言,则默认载入本地语言
- var i = Array.IndexOf(MultiLanguage.Languages, Thread.CurrentThread.CurrentUICulture);
- // 仅支持时切换,避免重复加载
- if (i > 0) CmbLanguage.SelectedIndex = i;
- }
- else
- {
- CmbLanguage.SelectedIndex = Array.IndexOf(MultiLanguage.Languages, Settings.Default.DefaultLanguage);
- }
- CmbLanguage.SelectedIndexChanged += CmbLanguage_SelectedIndexChanged;
- }
-
- private static void ToTop(Form form)
- {
- form.TopMost = true;
- form.TopMost = false;
- }
-
- private readonly Dictionary MyForms = new Dictionary();
-
- private void ShowForm(string tag) where T : Form, new()
- {
- if (!MyForms.TryGetValue(tag, out var form) || form.IsDisposed)
- form = new T();
- MyForms[tag] = form;
- if (form.IsHandleCreated)
- ToTop(form);
- else
- form.Show();
- }
-
-
- ///
- /// 点击打开卡池编辑器时触发
- ///
- private void BtnOpenGachaBannerEditor_Click(object sender, EventArgs e)
- => ShowForm("BannersEditor");
-
- ///
- /// 点击打开文本浏览器时触发
- ///
- private void BtnOpenTextMap_Click(object sender, EventArgs e)
- => ShowForm("TextMapBrowser");
-
- ///
- /// 点击打开掉落物编辑器时触发
- ///
- private void BtnOpenDropEditor_Click(object sender, EventArgs e)
- => ShowForm("DropEditor");
-
- ///
- /// 点击打开商店编辑器时触发
- ///
- private void BtnOpenShopEditor_Click(object sender, EventArgs e)
- => ShowForm("ShopEditor");
-
- ///
- /// 语言选中项改变时触发
- ///
- private void CmbLanguage_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (CmbLanguage.SelectedIndex < 0) return;
- // 切换默认语言
- MultiLanguage.SetDefaultLanguage(MultiLanguage.Languages[CmbLanguage.SelectedIndex]);
- // 动态更改语言
- MultiLanguage.LoadLanguage(this, typeof(FormMain));
- // 重新载入页面资源
- FormMain_Load(this, EventArgs.Empty);
- }
-
- ///
- /// 命令版本改变时触发
- ///
- ///
- ///
- private void OnCommandVersionChanged(object sender, EventArgs e)
- {
- Settings.Default.CommandVersion = CommandVersion.Current.ToString(3);
- ChangeTPArtifact();
- }
-
-
- ///
- /// 点击检查更新时触发
- ///
- private void LnkNewVersion_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- if (LastestInfo != null)
- {
- var r = MessageBox.Show(
- string.Format(Resources.NewVersionInfo, LastestInfo.Name, LastestInfo.CraeteTime.ToLocalTime(), LastestInfo.Body),
- Resources.CheckToNewVersion,
- MessageBoxButtons.YesNo,
- MessageBoxIcon.Information);
- if (r == DialogResult.Yes)
- OpenURL(LastestInfo.Url);
- else if (r == DialogResult.No)
- Settings.Default.CheckedLastVersion = lastestVersion.ToString();
- }
- else
- {
- // 没有更新,隐藏
- LnkNewVersion.Visible = false;
- }
- }
-
- #endregion - 主页 Home -
-
- #region - 自定义 Custom -
-
- ///
- /// 自定义命令保存位置
- ///
- private readonly string CustomCommandsFilePath = Path.Combine(Application.LocalUserAppDataPath, "CustomCommands.txt");
-
- ///
- /// 自定义命令是否存在更改
- ///
- private bool CustomCommandsChanged;
-
- ///
- /// 加载自定义命令
- ///
- private void LoadCustomCommands()
- {
- if (File.Exists(CustomCommandsFilePath))
- LoadCustomCommandControls(File.ReadAllText(CustomCommandsFilePath));
- else
- LoadCustomCommandControls(Resources.CustomCommands);
- }
-
- ///
- /// 加载自定义命令控件列表
- ///
- /// 命令集(示例:"标签1\n命令1\n标签2\n命令2")
- private void LoadCustomCommandControls(string commands)
- {
- FLPCustomCommands.Controls.Clear();
- var lines = commands.Split('\n');
- for (int i = 0; i < lines.Length - 1; i += 2)
- AddCustomCommand(lines[i].Trim(), lines[i + 1].Trim());
- }
-
- ///
- /// 保存自定义命令
- ///
- private void SaveCustomCommands()
- {
- if (CustomCommandsChanged)
- File.WriteAllText(CustomCommandsFilePath, SaveCustomCommandControls());
- }
-
- ///
- /// 保存自定义命令控件列表
- ///
- /// 命令集(示例:"标签1\n命令1\n标签2\n命令2")
- private string SaveCustomCommandControls()
- {
- StringBuilder builder = new StringBuilder();
- foreach (LinkLabel lnk in FLPCustomCommands.Controls)
- {
- builder.AppendLine(lnk.Text);
- builder.AppendLine(lnk.Tag as string);
- }
- return builder.ToString();
- }
-
- ///
- /// 自定义命令点击时触发
- ///
- private void CustomCommand_Click(object sender, LinkLabelLinkClickedEventArgs e)
- {
- if (sender is LinkLabel lnk && lnk.Tag is string command)
- {
- TxtCustomName.Text = lnk.Text;
- SetCommand(command);
- }
- }
-
- ///
- /// 自定义命令文本框回车时触发
- ///
- private void TxtCustomName_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter) BtnSaveCustomCommand_Click(BtnSaveCustomCommand, e);
- }
-
- ///
- /// 点击保存自定义命令列表时触发
- ///
- ///
- ///
- private async void BtnSaveCustomCommand_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrWhiteSpace(TxtCustomName.Text))
- {
- MessageBox.Show(Resources.CommandTagCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- if (string.IsNullOrWhiteSpace(CmbCommand.Text))
- {
- MessageBox.Show(Resources.CommandContentCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- var name = TxtCustomName.Text.Trim();
- var command = CmbCommand.Text.Trim();
-
- foreach (LinkLabel lnk in FLPCustomCommands.Controls)
- {
- if (lnk.Text == name)
- {
- lnk.Tag = command;
- CustomCommandsChanged = true;
- await UIUtil.ButtonComplete(BtnSaveCustomCommand);
- return;
- }
- }
-
- CustomCommandsChanged = true;
- AddCustomCommand(name, command);
- await UIUtil.ButtonComplete(BtnSaveCustomCommand);
- }
-
- ///
- /// 添加自定义命令
- ///
- /// 标签
- /// 命令
- private void AddCustomCommand(string name, string command)
- {
- var lnk = new LinkLabel
- {
- Text = name,
- Tag = command,
- AutoSize = true,
- };
- lnk.LinkClicked += CustomCommand_Click;
- FLPCustomCommands.Controls.Add(lnk);
- }
-
- ///
- /// 点击移除自定义命令按钮时触发
- ///
- private async void BtnRemoveCustomCommand_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrWhiteSpace(TxtCustomName.Text))
- {
- MessageBox.Show(Resources.CommandTagCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- var name = TxtCustomName.Text.Trim();
-
- foreach (LinkLabel lnk in FLPCustomCommands.Controls)
- {
- if (lnk.Text == name && MessageBox.Show(Resources.AskConfirmDeletion, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
- {
- FLPCustomCommands.Controls.Remove(lnk);
- CustomCommandsChanged = true;
- //TxtCustomName.Text = "";
- //TxtCommand.Text = "";
- await UIUtil.ButtonComplete(BtnRemoveCustomCommand);
- return;
- }
- }
-
- MessageBox.Show(Resources.CommandNotFound, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
-
- ///
- /// 点击导入自定义命令时触发
- ///
- private void BtnImport_Click(object sender, EventArgs e)
- {
- var dialog = new OpenFileDialog
- {
- Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
- };
- if (dialog.ShowDialog() == DialogResult.OK)
- {
- using (var stream = dialog.OpenFile())
- using (var reader = new StreamReader(stream))
- {
- LoadCustomCommandControls(reader.ReadToEnd());
- CustomCommandsChanged = true;
- }
- }
- }
-
- ///
- /// 点击导出自定义命令时触发
- ///
- ///
- ///
- private void BtnExport_Click(object sender, EventArgs e)
- {
- var dialog = new SaveFileDialog
- {
- FileName = "Commands.txt",
- Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
- };
- if (dialog.ShowDialog() == DialogResult.OK)
- {
- using (var stream = dialog.OpenFile())
- using (var writer = new StreamWriter(stream))
- {
- writer.Write(SaveCustomCommandControls());
- }
- }
- }
-
- ///
- /// 点击重置链接按钮时触发
- ///
- private void LnkResetCustomCommands_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- if (MessageBox.Show(Resources.RestoreCustomCommands, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
- {
- if (File.Exists(CustomCommandsFilePath))
- File.Delete(CustomCommandsFilePath);
- LoadCustomCommandControls(Resources.CustomCommands);
- }
- }
-
- #endregion - 自定义 Custom -
-
- #region - 圣遗物 Artifact -
-
- ///
- /// 副词条集
- ///
- private Dictionary>> subAttrs;
-
- ///
- /// 部位标签集
- ///
- private string[] ArtifactPartLabels;
-
- ///
- /// 初始化圣遗物列表
- ///
- private void InitArtifactList()
- {
- CmbArtifactSet.Items.Clear();
- CmbArtifactSet.Items.AddRange(GameData.ArtifactCats.Names);
- CmbMainAttribution.Items.Clear();
- CmbMainAttribution.Items.AddRange(GameData.ArtifactMainAttribution.Lines);
-
- subAttrs = new Dictionary>>();
- for (int i = 0; i < GameData.ArtifactSubAttribution.Count; i++)
- {
- var name = GameData.ArtifactSubAttribution.Names[i];
- var pi = name.IndexOf('+');
- var prefix = name.Substring(0, pi);
- var value = name.Substring(pi);
- if (!subAttrs.TryGetValue(prefix, out List> list))
- {
- list = new List>();
- subAttrs[prefix] = list;
- }
- list.Add(new KeyValuePair(GameData.ArtifactSubAttribution.Ids[i], value));
- }
- CmbSubAttribution.Items.Clear();
- CmbSubAttribution.Items.AddRange(subAttrs.Keys.ToArray());
-
- ArtifactPartLabels = Resources.ArtifactPartLabels.Split(',');
- }
-
- ///
- /// 福词条下拉框选中项改变时触发
- ///
- private void CmbSubAttribution_SelectedIndexChanged(object sender, EventArgs e)
- {
- CmbSubAttributionValue.Items.Clear();
- if (CmbSubAttribution.SelectedIndex >= 0)
- {
- CmbSubAttributionValue.Items.AddRange(subAttrs[CmbSubAttribution.SelectedItem as string].Select(kv => kv.Value).ToArray());
- CmbSubAttributionValue.SelectedIndex = 0;
- }
- }
-
- ///
- /// 点击添加副词条按钮时触发
- ///
- private void BtnAddSubAttr_Click(object sender, EventArgs e)
- {
- if (CmbSubAttribution.SelectedIndex >= 0 && CmbSubAttributionValue.SelectedIndex >= 0)
- {
- var name = CmbSubAttribution.SelectedItem as string;
- var kv = subAttrs[name][CmbSubAttributionValue.SelectedIndex];
- ListSubAttributionChecked.Items.Add($"{kv.Key}:{name}{kv.Value} x{NUDSubAttributionTimes.Value}");
- ArtifactInputChanged(null, EventArgs.Empty);
- }
- }
-
- ///
- /// 圣遗物套装下拉框选中项改变时触发
- ///
- private void CmbArtifactSet_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (CmbArtifactSet.SelectedIndex < 0)
- return;
- var setId = GameData.ArtifactCats.Ids[CmbArtifactSet.SelectedIndex];
- var beginIndex = Array.FindIndex(GameData.Artifacts.Ids, id => id / 1000 == setId);
- var endIndex = Array.FindLastIndex(GameData.Artifacts.Ids, id => id / 1000 == setId);
-
- // 限制星级输入范围
- NUDArtifactStars.Minimum = GameData.Artifacts.Ids[beginIndex] / 100 % 10;
- NUDArtifactStars.Maximum = GameData.Artifacts.Ids[endIndex] / 100 % 10;
-
- var parts = GameData.Artifacts.Names.Skip(beginIndex).Take(endIndex - beginIndex + 1).Distinct().ToArray();
- var i = CmbArtifactPart.SelectedIndex;
- CmbArtifactPart.Items.Clear();
- CmbArtifactPart.Items.AddRange(parts);
- if (i < parts.Length) // 重新选中
- CmbArtifactPart.SelectedIndex = i;
-
- ArtifactInputChanged(sender, e);
- }
-
- ///
- /// 圣遗物部件选中项改变时触发
- ///
- private void CmbArtifactPart_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (CmbArtifactPart.SelectedIndex < 0)
- {
- LblArtifactName.Text = "";
- return;
- }
- var name = CmbArtifactPart.SelectedItem as string;
- var id = GameData.Artifacts.Ids[Array.IndexOf(GameData.Artifacts.Names, name)];
- var pardIndex = id / 10 % 10 - 1;
- if (pardIndex < ArtifactPartLabels?.Length)
- LblArtifactName.Text = ArtifactPartLabels[pardIndex];
- else
- LblArtifactName.Text = "";
- ArtifactInputChanged(sender, e);
- }
-
- ///
- /// 圣遗物页面输入改变时调用
- ///
- private void ArtifactInputChanged(object sender, EventArgs e)
- {
- // 圣遗物ID五位数,ABCDE,其中AB是圣遗物类型(魔女/水/风套......)
- // C是星级(5就是五星),D是圣遗物部位,E是初始词条数量
- if (CmbArtifactSet.SelectedIndex < 0 || CmbArtifactPart.SelectedIndex < 0)
- return;
- //var setId = GameData.ArtifactCats.Ids[CmbArtifactSet.SelectedIndex];
- //var part = CmbArtifactPart.SelectedIndex+1;
- //var index = Array.FindLastIndex(
- // GameData.Artifacts.Ids,
- // it => it / 1000 == setId // 套装ID
- // //&& it / 100 % 10 == NUDArtifactStars.Value // 星级
- // && it / 10 % 10 == part // 部位
- // );
- var name = CmbArtifactPart.SelectedItem as string;
- var id = GameData.Artifacts.Ids[Array.LastIndexOf(GameData.Artifacts.Names, name)];
- id = id / 1000 * 1000 + (int)NUDArtifactStars.Value * 100 + id % 100;
- if (CmbMainAttribution.SelectedIndex < 0)
- {
- if (CommandVersion.Check(CommandVersion.V1_2_2))
- SetCommand("/give", $"{id} lv{NUDArtifactLevel.Value}");
- else
- SetCommand("/giveart", $"{id} {NUDArtifactLevel.Value}");
- }
- else
- {
- var t = CmbMainAttribution.SelectedItem as string;
- var mainAttr = ItemMap.ToId(t);
-
- var subAttrs = "";
- if (ListSubAttributionChecked.Items.Count > 0)
- {
- var subAttrDir = new Dictionary(ListSubAttributionChecked.Items.Count);
- foreach (string item in ListSubAttributionChecked.Items)
- {
- var subId = ItemMap.ToId(item);
- var times = int.Parse(item.Substring(item.LastIndexOf('x') + 1));
- if (subAttrDir.ContainsKey(subId))
- subAttrDir[subId] += times;
- else
- subAttrDir[subId] = times;
- }
-
- foreach (var kv in subAttrDir)
- {
- if (kv.Value > 1)
- subAttrs += $"{kv.Key},{kv.Value} ";
- else
- subAttrs += $"{kv.Key} ";
- }
- }
- if (CommandVersion.Check(CommandVersion.V1_2_2))
- SetCommand("/give", $"{id} lv{NUDArtifactLevel.Value} {mainAttr} {subAttrs}");
- else
- SetCommand("/giveart", $"{id} {mainAttr} {subAttrs}{NUDArtifactLevel.Value}");
- }
- }
-
- ///
- /// 已添加的副词条列表选中项改变时触发
- ///
- private void ListSubAttributionChecked_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (ListSubAttributionChecked.SelectedIndex >= 0)
- {
- ListSubAttributionChecked.Items.RemoveAt(ListSubAttributionChecked.SelectedIndex);
- ListSubAttributionChecked.ClearSelected();
- ArtifactInputChanged(null, EventArgs.Empty);
- }
- }
-
- ///
- /// 清除词条链接标签点击时触发
- ///
- ///
- ///
- private void LblClearSubAttrCheckedList_Click(object sender, EventArgs e)
- {
- CmbMainAttribution.SelectedIndex = -1;
- ListSubAttributionChecked.Items.Clear();
- ArtifactInputChanged(null, EventArgs.Empty);
- }
-
- ///
- /// 改变圣遗物等级输入范围(旧版本范围是1-21)
- ///
- private void ChangeTPArtifact()
- {
- if (CommandVersion.Check(CommandVersion.V1_2_2))
- {
- NUDArtifactLevel.Minimum = 0;
- NUDArtifactLevel.Maximum = 20;
- }
- else
- {
- NUDArtifactLevel.Minimum = 1;
- NUDArtifactLevel.Maximum = 21;
- }
- LblArtifactLevelTip.Text = $"[{NUDArtifactLevel.Minimum}-{NUDArtifactLevel.Maximum}]";
- }
-
- ///
- /// 点击CharacterBuilder链接标签时触发
- ///
- private void LnkCharacterBuilder_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- OpenURL("https://github.com/Penelopeep/CharacterBuilder");
- }
-
- #endregion - 圣遗物 Artifact -
-
- #region - 武器 Weapons -
-
- ///
- /// 初始化武器列表
- ///
- private void InitWeapons()
- {
- ListWeapons.Items.Clear();
- ListWeapons.Items.AddRange(GameData.Weapons.Lines);
- }
-
- ///
- /// 武器列表过滤器文本改变时触发
- ///
- private void TxtWeaponFilter_TextChanged(object sender, EventArgs e)
- {
- UIUtil.ListBoxFilter(ListWeapons, GameData.Weapons.Lines, TxtWeaponFilter.Text);
- }
-
- ///
- /// 武器页面输入改变时触发
- ///
- private void WeaponValueChanged(object sender, EventArgs e)
- {
- var name = ListWeapons.SelectedItem as string;
- if (!string.IsNullOrEmpty(name))
- {
- var id = ItemMap.ToId(name);
- if (CommandVersion.Check(CommandVersion.V1_2_2))
- SetCommand("/give", $"{id} x{NUDWeaponAmout.Value} lv{NUDWeaponLevel.Value} r{NUDWeaponRefinement.Value}");
- else
- SetCommand("/give", $"{id} {NUDWeaponAmout.Value} {NUDWeaponLevel.Value} {NUDWeaponRefinement.Value}");
- }
- }
-
- ///
- /// 点击获取所有武器按钮时触发
- ///
- private void BtnGiveAllWeapons_Click(object sender, EventArgs e)
- {
- SetCommand("/give", $"weapons x{NUDWeaponAmout.Value} lv{NUDWeaponLevel.Value} r{NUDWeaponRefinement.Value}");
- }
-
- #endregion - 武器 Weapons -
#region - 物品 Items -
@@ -1093,7 +446,7 @@ namespace GrasscutterTools.Forms
///
private void LnkSwitchElement_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
- OpenURL("https://github.com/Penelopeep/SwitchElementTraveller");
+ UIUtil.OpenURL("https://github.com/Penelopeep/SwitchElementTraveller");
}
///
@@ -1190,340 +543,6 @@ namespace GrasscutterTools.Forms
#endregion - 角色 Avatars -
- #region - 生成 Spawns -
-
- #region -- 实体列表 --
-
- ///
- /// 初始化实体列表
- ///
- private void InitEntityList()
- {
- // 初始化列表类型过滤器
- MenuSpawnEntityFilter.SuspendLayout();
- MenuSpawnEntityFilter.Items.Clear();
- void AddTypes(ItemMapGroup group)
- {
- foreach (var kv in group)
- {
- var item = new ToolStripMenuItem
- {
- Text = kv.Key,
- Tag = kv.Value.Lines,
- };
- item.Click += OnEntityTypeFilterClick;
- MenuSpawnEntityFilter.Items.Add(item);
- }
- }
- //MenuSpawnEntityFilter.Items.Add(new ToolStripLabel("Monsters"));
- AddTypes(GameData.Monsters);
- MenuSpawnEntityFilter.Items.Add(new ToolStripSeparator());
- //MenuSpawnEntityFilter.Items.Add(new ToolStripLabel("Gadgets"));
- AddTypes(GameData.Gadgets);
- MenuSpawnEntityFilter.ResumeLayout();
-
- // 默认显示所有
- SelectedEntityTypeLines = GameData.Monsters.AllLines.Concat(GameData.Gadgets.AllLines).ToArray();
- LoadEntityList();
- }
-
- ///
- /// 当前选中的实体类型行
- ///
- private string[] SelectedEntityTypeLines;
-
- ///
- /// 实体类型过滤器类型选中时触发
- ///
- private void OnEntityTypeFilterClick(object sender, EventArgs e)
- {
- var btn = sender as ToolStripMenuItem;
- SelectedEntityTypeLines = btn.Tag as string[];
- LoadEntityList();
- }
-
- ///
- /// 加载实体列表
- ///
- private void LoadEntityList()
- {
- UIUtil.ListBoxFilter(ListEntity, SelectedEntityTypeLines, TxtEntityFilter.Text);
- }
-
- ///
- /// 实体列表过滤器文本改变时触发
- ///
- private void TxtEntityFilter_TextChanged(object sender, EventArgs e)
- {
- LoadEntityList();
- }
-
- ///
- /// 实体列表类型过滤按钮点击时触发
- ///
- private void BtnFilterEntity_Click(object sender, EventArgs e)
- {
- MenuSpawnEntityFilter.Show(BtnFilterEntity, 0, BtnFilterEntity.Height);
- }
-
- ///
- /// 实体列表选中项改变时触发
- ///
- private void ListEntity_SelectedIndexChanged(object sender, EventArgs e)
- {
- // 根据当前所在页面确定要做的事情
-
- // 攻击修改界面
- if (TCSpawnSettings.SelectedTab == TPAttackModArgs)
- {
- OnAttackModifierInputChanged(sender, e);
- }
- // 攻击注入界面
- else if (TCSpawnSettings.SelectedTab == TPAttackInfusedArgs)
- {
- // 无事发生,因为要页面上点击按钮才会生成命令
- }
- // 生成参数界面 或其它
- else
- {
- // 触发输入改变事件
- SpawnEntityInputChanged(sender, e);
- }
- }
-
- #endregion
-
- #region -- 生成记录 --
-
- ///
- /// 生成命令记录文件路径
- ///
- private readonly string SpawnCommandsRecordPath = Path.Combine(Application.LocalUserAppDataPath, "SpawnCommands.txt");
-
- ///
- /// 生成命令记录
- ///
- private List SpawnCommands;
-
- ///
- /// 初始化生成记录
- ///
- private void InitSpawnRecord()
- {
- if (File.Exists(SpawnCommandsRecordPath))
- {
- SpawnCommands = GetCommands(File.ReadAllText(SpawnCommandsRecordPath));
- ListSpawnLogs.Items.AddRange(SpawnCommands.Select(c => c.Name).ToArray());
- }
- else
- {
- SpawnCommands = new List();
- }
- }
-
- ///
- /// 保存生成记录
- ///
- private void SaveSpawnRecord()
- {
- File.WriteAllText(SpawnCommandsRecordPath, GetCommandsText(SpawnCommands));
- }
-
- ///
- /// 生成记录列表选中项改变时触发
- ///
- private void ListSpawnLogs_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (ListSpawnLogs.SelectedIndex >= 0)
- {
- BtnRemoveSpawnLog.Enabled = true;
- SetCommand(SpawnCommands[ListSpawnLogs.SelectedIndex].Command);
- }
- else
- {
- BtnRemoveSpawnLog.Enabled = false;
- }
- }
-
- ///
- /// 点击保存生成记录按钮时触发
- ///
- private void BtnSaveSpawnLog_Click(object sender, EventArgs e)
- {
- // 不再重新生成,直接记录当前命令行的内容
- //if (GenSpawnEntityCommand())
- {
- var cmd = new GameCommand($"{ListEntity.SelectedItem} | {CmbCommand.Text}", CmbCommand.Text);
- SpawnCommands.Add(cmd);
- ListSpawnLogs.Items.Add(cmd.Name);
- SaveSpawnRecord();
- }
- }
-
- ///
- /// 点击移除生成记录按钮时触发
- ///
- private void BtnRemoveSpawnLog_Click(object sender, EventArgs e)
- {
- if (ListSpawnLogs.SelectedIndex >= 0)
- {
- SpawnCommands.RemoveAt(ListSpawnLogs.SelectedIndex);
- ListSpawnLogs.Items.RemoveAt(ListSpawnLogs.SelectedIndex);
- SaveSpawnRecord();
- }
- }
-
- ///
- /// 点击清空生成记录按钮时触发
- ///
- private void LblClearSpawnLogs_Click(object sender, EventArgs e)
- {
- if (MessageBox.Show(Resources.AskConfirmDeletion, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
- {
- SpawnCommands.Clear();
- ListSpawnLogs.Items.Clear();
- SaveSpawnRecord();
- }
- }
-
- #endregion -- 生成记录 --
-
- #region -- 生成参数 --
-
- ///
- /// 生成页面输入改变时触发
- ///
- private void SpawnEntityInputChanged(object sender, EventArgs e)
- {
- if (ListEntity.SelectedIndex == -1) return;
- var selectedItem = ListEntity.SelectedItem as string;
- var id = ItemMap.ToId(selectedItem);
-
- if (CommandVersion.Check(CommandVersion.V1_3_1))
- {
- var args = id.ToString();
- void CheckAndConnect(NumericUpDown input, int value, string prefix)
- {
- if (input.Value > value)
- args += prefix + input.Value;
- }
- CheckAndConnect(NUDEntityAmout, 1, " x");
- CheckAndConnect(NUDEntityLevel, 1, " lv");
- CheckAndConnect(NUDEntityHp, -1, " hp");
- CheckAndConnect(NUDEntityMaxHp, 0, " maxhp");
- CheckAndConnect(NUDEntityAtk, -1, " atk");
- CheckAndConnect(NUDEntityDef, -1, " def");
- if (NUDEntityPosX.Value != 0 || NUDEntityPosY.Value != 0 || NUDEntityPosZ.Value != 0)
- args += $" {NUDEntityPosX.Value} {NUDEntityPosY.Value} {NUDEntityPosZ.Value}";
- SetCommand("/spawn", args);
- }
- else
- {
- SetCommand("/spawn", $"{id} {NUDEntityAmout.Value} {NUDEntityLevel.Value}");
- }
- }
-
- #endregion
-
- #region -- 攻击修改参数 --
-
- ///
- /// 攻击修改插件链接标签点击时触发
- ///
- private void LnkAttackModifierPlugin_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- OpenURL("https://github.com/NotThorny/AttackModifier");
- }
-
- ///
- /// 攻击修改输入改变事件
- ///
- private void OnAttackModifierInputChanged(object sender, EventArgs e)
- {
- if (ListEntity.SelectedIndex == -1) return;
- var selectedItem = ListEntity.SelectedItem as string;
- var id = ItemMap.ToId(selectedItem);
- char skill;
- if (RbAtE.Checked)
- {
- skill = 'e';
- TxtAtEntityE.Text = selectedItem;
- }
- else if (RbAtQ.Checked)
- {
- skill = 'q';
- TxtAtEntityQ.Text = selectedItem;
- }
- else
- {
- skill = 'n';
- TxtAtEntityN.Text = selectedItem;
- }
- SetCommand("/at", $"set {skill} {id}");
- }
-
- ///
- /// 攻击修改页面命令事件
- ///
- private void OnAttackModifierCommand(object sender, EventArgs e)
- {
- SetCommand("/at", (sender as Control).Tag as string);
- }
-
- #endregion
-
- #region -- 攻击注入参数 --
-
- ///
- /// 攻击注入插件链接标签点击时触发
- ///
- private void LnkAttackInfusedWithItem_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- OpenURL("https://github.com/snoobi-seggs/AttackInfusedWithItem");
- }
-
- ///
- /// 攻击注入页面命令事件
- ///
- private void OnAttackInfusedCommand(object sender, EventArgs e)
- {
- SetCommand("/snoospawn", (sender as Control).Tag as string);
- }
-
- ///
- /// 点击攻击注入按钮时触发
- ///
- private void BtnAttackInfuse_Click(object sender, EventArgs e)
- {
- if (ListEntity.SelectedIndex == -1) return;
- var selectedItem = ListEntity.SelectedItem as string;
- var id = ItemMap.ToId(selectedItem);
-
- var args = string.Empty;
- var flag = false;
- void ConnectArg(NumericUpDown input)
- {
- if (flag || input.Value != 0)
- {
- flag = true;
- args = " " + input.Value + args;
- }
- }
- ConnectArg(NUDAiwiRotateZ);
- ConnectArg(NUDAiwiRotateY);
- ConnectArg(NUDAiwiRotateX);
- ConnectArg(NUDAiwiSpread);
- ConnectArg(NUDAiwiCount);
- ConnectArg(NUDAiwiHeight);
- ConnectArg(NUDAiwiRadius);
- SetCommand("/snoospawn", id.ToString() + args);
- //SetCommand("/at", $"{id} {NUDAiwiRadius.Value} {NUDAiwiHeight.Value} {NUDAiwiCount.Value} {NUDAiwiSpread.Value} {NUDAiwiRotateX.Value} {NUDAiwiRotateY.Value} {NUDAiwiRotateZ.Value}");
-
- }
- #endregion
-
- #endregion - 生成 Spawns -
-
#region - 场景 Scenes -
private string[] _scenes;
@@ -1970,7 +989,7 @@ namespace GrasscutterTools.Forms
///
private void LnkGithub_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
- OpenURL("https://github.com/jie65535/GrasscutterCommandGenerator");
+ UIUtil.OpenURL("https://github.com/jie65535/GrasscutterCommandGenerator");
}
#endregion - 关于 About -
@@ -2022,9 +1041,9 @@ namespace GrasscutterTools.Forms
/// 参数
private void SetCommand(string command, string args)
{
- if (ChkIncludeUID.Checked)
- SetCommand($"{command} @{NUDUid.Value} {args.Trim()}");
- else
+ //if (ChkIncludeUID.Checked)
+ // SetCommand($"{command} @{NUDUid.Value} {args.Trim()}");
+ //else
SetCommand($"{command} {args.Trim()}");
}
@@ -2257,471 +1276,12 @@ namespace GrasscutterTools.Forms
#endregion - 命令记录 Command Logs -
- #region - 远程 Remote -
///
/// 开放命令接口
///
- private OpenCommandAPI OC;
+ private OpenCommandAPI OC => Common.OC;
- ///
- /// 进入远程页面时触发
- ///
- private void TPRemoteCall_Enter(object sender, EventArgs e)
- {
-#if !DEBUG
- if (string.IsNullOrEmpty(Settings.Default.Host) || string.IsNullOrEmpty(Settings.Default.TokenCache))
- {
- // 自动尝试查询本地服务端地址,降低使用门槛
- Task.Run(async () =>
- {
- var localhosts = new string[] {
- "http://127.0.0.1:443",
- "https://127.0.0.1",
- "http://127.0.0.1",
- "https://127.0.0.1:80",
- "http://127.0.0.1:8080",
- "https://127.0.0.1:8080",
- };
- foreach (var host in localhosts)
- {
- try
- {
- await UpdateServerStatus(host);
- // 自动填写本地服务端地址
- TxtHost.Text = host;
- break;
- }
- catch (Exception)
- {
- // Ignore
- }
- }
- });
- }
-#endif
- }
-
- ///
- /// 初始化开放命令
- ///
- private void InitOpenCommand()
- {
- NUDRemotePlayerId.Value = Settings.Default.RemoteUid;
- TxtHost.Text = Settings.Default.Host;
- if (!string.IsNullOrEmpty(Settings.Default.Host) && !string.IsNullOrEmpty(Settings.Default.TokenCache))
- {
- OC = new OpenCommandAPI(Settings.Default.Host, Settings.Default.TokenCache);
- TxtToken.Text = Settings.Default.TokenCache;
- Task.Run(async () =>
- {
- await Task.Delay(1000);
- BeginInvoke(new Action(() => ShowTip(Resources.TokenRestoredFromCache, BtnInvokeOpenCommand)));
- });
- }
- }
-
- ///
- /// 保存开放命令参数
- ///
- private void SaveOpenCommand()
- {
- Settings.Default.RemoteUid = NUDRemotePlayerId.Value;
- Settings.Default.Host = TxtHost.Text;
- Settings.Default.TokenCache = OC?.Token;
- }
-
- ///
- /// 更新服务器状态
- ///
- /// 主机地址
- private async Task UpdateServerStatus(string host)
- {
- // "http://127.0.0.1/" -> "http://127.0.0.1"
- host = host.TrimEnd('/');
- var status = await DispatchServerAPI.QueryServerStatus(host);
- LblServerVersion.Text = status.Version;
- if (status.MaxPlayer >= 0)
- LblPlayerCount.Text = $"{status.PlayerCount}/{status.MaxPlayer}";
- else
- LblPlayerCount.Text = status.PlayerCount.ToString();
- }
-
- ///
- /// 输入服务器地址按下回车时触发
- ///
- private void TxtHost_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter) BtnQueryServerStatus_Click(BtnQueryServerStatus, e);
- }
-
- ///
- /// 点击查询服务器状态按钮时触发
- ///
- private async void BtnQueryServerStatus_Click(object sender, EventArgs e)
- {
- var btn = sender as Button;
- btn.Enabled = false;
- btn.Cursor = Cursors.WaitCursor;
- try
- {
- try
- {
- await UpdateServerStatus(TxtHost.Text);
- }
- catch (Exception ex)
- {
- MessageBox.Show(Resources.QueryServerStatusFailed + ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
-
- OC = new OpenCommandAPI(TxtHost.Text);
- if (await OC.Ping())
- {
- LblOpenCommandSupport.Text = "√";
- LblOpenCommandSupport.ForeColor = Color.Green;
- GrpRemoteCommand.Enabled = true;
- }
- else
- {
- LblOpenCommandSupport.Text = "×";
- LblOpenCommandSupport.ForeColor = Color.Red;
- GrpRemoteCommand.Enabled = false;
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- btn.Cursor = Cursors.Default;
- btn.Enabled = true;
- }
- }
-
- ///
- /// 玩家ID输入框按下回车时触发
- ///
- private void NUDRemotePlayerId_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter) BtnSendVerificationCode_Click(BtnSendVerificationCode, e);
- }
-
- ///
- /// 点击发送校验码按钮时触发
- ///
- private async void BtnSendVerificationCode_Click(object sender, EventArgs e)
- {
- var btn = sender as Button;
- var t = btn.Text;
- btn.Enabled = false;
- NUDRemotePlayerId.Enabled = false;
- try
- {
- btn.Text = Resources.CodeSending;
- await OC.SendCode((int)NUDRemotePlayerId.Value);
- BtnConnectOpenCommand.Enabled = true;
- NUDVerificationCode.Enabled = true;
- NUDVerificationCode.Focus();
- for (int i = 60; i > 0 && !OC.CanInvoke; i--)
- {
- btn.Text = string.Format(Resources.CodeResendTip, i);
- await Task.Delay(1000);
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- btn.Text = t;
- btn.Enabled = true;
- NUDRemotePlayerId.Enabled = true;
- }
- }
-
- ///
- /// 验证码输入框按下回车时触发
- ///
- private void NUDVerificationCode_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter) BtnConnectOpenCommand_Click(BtnConnectOpenCommand, e);
- }
-
- ///
- /// 点击连接到开放命令按钮时触发
- ///
- ///
- ///
- private async void BtnConnectOpenCommand_Click(object sender, EventArgs e)
- {
- var btn = sender as Button;
- btn.Enabled = false;
- try
- {
- await OC.Verify((int)NUDVerificationCode.Value);
- GrpRemoteCommand.Enabled = false;
- BtnInvokeOpenCommand.Focus();
- ShowTip(Resources.ConnectedTip, BtnInvokeOpenCommand);
- ButtonOpenGOODImport.Enabled = true;
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- btn.Cursor = Cursors.Default;
- btn.Enabled = true;
- }
- }
-
- ///
- /// Token 输入框按下回车时触发
- ///
- private void TxtToken_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter) BtnConsoleConnect_Click(BtnConsoleConnect, e);
- }
-
- ///
- /// 点击控制台连接按钮时触发
- ///
- private void BtnConsoleConnect_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrEmpty(TxtToken.Text))
- {
- MessageBox.Show(Resources.TokenCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- OC.Token = TxtToken.Text;
- BtnConnectOpenCommand_Click(sender, e);
- }
-
- ///
- /// 点击开放命令标签时触发
- ///
- private void LnkOpenCommandLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- OpenURL("https://github.com/jie65535/gc-opencommand-plugin");
- }
-
- ///
- /// 点击帮助连接标签时触发
- ///
- private void LnkRCHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- MessageBox.Show(Resources.OpenCommandHelp, Resources.Help, MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
-
- ///
- /// 点击库存扫描链接标签时触发
- ///
- private void LnkInventoryKamera_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- OpenURL("https://github.com/Andrewthe13th/Inventory_Kamera");
- }
-
- ///
- /// 点击GOOD帮助链接标签时触发
- ///
- private void LnkGOODHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- OpenURL("https://frzyc.github.io/genshin-optimizer/#/doc");
- }
-
- ///
- /// 点击链接帮助标签时触发
- ///
- private void LnkLinks_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- var links = new List
- {
- "https://frzyc.github.io/genshin-optimizer/",
- "https://genshin.aspirine.su/",
- "https://genshin.mingyulab.com/",
- "https://genshin-center.com/",
- "https://github.com/Andrewthe13th/Inventory_Kamera",
- "https://github.com/daydreaming666/Amenoma",
- "https://seelie.me/",
- "https://www.mona-uranai.com/",
- };
- MessageBox.Show(string.Join("\n", links), "Links", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
-
- ///
- /// 使用浏览器打开网址
- ///
- /// 网址
- private void OpenURL(string url)
- {
- try
- {
- System.Diagnostics.Process.Start(url);
- }
- catch (Exception)
- {
- MessageBox.Show(Resources.BrowserOpenFailedTip + "\n " + url,
- Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Warning);
- }
- }
-
- #endregion - 远程 Remote -
-
- #region - 导入存档 GOOD -
-
- ///
- /// 点击GOOD导入存档按钮时触发
- ///
- async private void ButtonOpenGOODImport_Click(object sender, EventArgs e)
- {
- if (OC == null || !OC.CanInvoke)
- {
- ShowTip(Resources.RequireOpenCommandTip, ButtonOpenGOODImport);
- return;
- }
-
- OpenFileDialog openFileDialog1 = new OpenFileDialog
- {
- Filter = "GOOD file (*.GOOD;*.json)|*.GOOD;*.json|All files (*.*)|*.*",
- };
- if (openFileDialog1.ShowDialog() == DialogResult.OK)
- {
- if (DialogResult.Yes != MessageBox.Show(Resources.GOODImportText + openFileDialog1.FileName + "?",
- Resources.GOODImportTitle, MessageBoxButtons.YesNo))
- return;
- try
- {
- GOOD.GOOD good = JsonConvert.DeserializeObject(File.ReadAllText(openFileDialog1.FileName));
- var commands_list = new List();
- var missingItems = new List();
-
- if (good.Characters != null)
- {
- foreach (var character in good.Characters)
- {
- if (character.Name != "Traveler")
- {
- if (GOODData.Avatars.TryGetValue(character.Name, out var character_id))
- {
- if (CommandVersion.Check(CommandVersion.V1_4_1))
- {
- // 取最低的技能等级
- var skillLevel = Math.Min(Math.Min(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}");
- }
- else
- missingItems.Add(character.Name);
- // TODO: Implement command to set talent level when giving character in Grasscutter
- }
- }
- }
-
- if (good.Weapons != null)
- {
- foreach (var weapon in good.Weapons)
- {
- if (GOODData.Weapons.TryGetValue(weapon.Name, out var weapon_id))
- commands_list.Add($"/give {weapon_id} lv{weapon.Level} r{weapon.RefinementLevel}");
- else
- missingItems.Add(weapon.Name);
- // TODO: Implement command to give weapon directly to character in Grasscutter
- }
- }
-
- if (good.Artifacts != null)
- {
- foreach (var artifact in good.Artifacts)
- {
- // Format: set rarity slot
- if (!GOODData.ArtifactCats.TryGetValue(artifact.SetName, out var artifact_set_id))
- {
- missingItems.Add(artifact.SetName);
- continue;
- }
- var artifact_id = artifact_set_id * 1000 + artifact.Rarity * 100 + GOODData.ArtifactSlotMap[artifact.GearSlot] * 10;
- for (int i = 4; i > 0; i--)
- {
- if (Array.IndexOf(GameData.Artifacts.Ids, artifact_id + i) != -1)
- {
- artifact_id += i;
- break;
- }
- }
- if (artifact_id % 10 == 0)
- artifact_id += 4;
-
- var artifact_mainStat_id = GOODData.ArtifactMainAttribution[artifact.MainStat];
- var artifact_substats = "";
- var artifact_substat_prefix = artifact.Rarity + "0";
- int substat_count = 0;
- foreach (var substat in artifact.SubStats)
- {
- if (substat.Value <= 0)
- continue;
- substat_count++;
- var substat_key = substat.Stat;
- var substat_key_id = GOODData.ArtifactSubAttribution[substat_key];
- var substat_indices = ArtifactUtils.SplitSubstats(substat_key, artifact.Rarity, substat.Value);
-
- foreach (int index in substat_indices)
- {
- artifact_substats += artifact_substat_prefix + substat_key_id + index.ToString() + " ";
- }
- }
-
- // HACK: Add def+2 substat to counteract Grasscutter automatically adding another substat
- if (substat_count == 4)
- artifact_substats += "101081 ";
- commands_list.Add($"/give {artifact_id} lv{artifact.Level} {artifact_mainStat_id} {artifact_substats}");
- // TODO: Implement command to give artifact directly to character in Grasscutter
- }
- }
-
- // TODO: Materials
- //if (good.Materials != null)
- //{
- // foreach (var material in good.Materials)
- // {
-
- // }
- //}
-
- var msg = string.Format("Loaded {0} Characters\nLoaded {1} Weapons\nLoaded {2} Artifacts\n",
- good.Characters?.Count ?? 0,
- good.Weapons?.Count ?? 0,
- good.Artifacts?.Count ?? 0
- );
- if (missingItems.Count > 0)
- {
- msg += string.Format("There are {0} pieces of data that cannot be parsed, including:\n{1}",
- missingItems.Count,
- string.Join("\n", missingItems.Take(10)));
- if (missingItems.Count > 10)
- msg += "......";
- }
- msg += "Do you want to start?";
-
- if (DialogResult.Yes != MessageBox.Show(msg, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Information))
- return;
-
-
- if (await RunCommands(commands_list.ToArray()))
- MessageBox.Show(Resources.GOODImportSuccess);
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
-
- #endregion
#region - 任务 Quests -
diff --git a/Source/GrasscutterTools/Forms/FormMain.en-us.resx b/Source/GrasscutterTools/Forms/FormMain.en-us.resx
index 82e1175..2bd44df 100644
--- a/Source/GrasscutterTools/Forms/FormMain.en-us.resx
+++ b/Source/GrasscutterTools/Forms/FormMain.en-us.resx
@@ -127,150 +127,15 @@
Auto
-
- Command - [Ctrl] Autorun - [Shift] Append - [Alt] Only run - [|] Split multiple commands
-
Run(F5)
-
- 4, 26
-
-
- 652, 245
+
+ Command - [Ctrl] Autorun - [Shift] Append - [Alt] Only run - [|] Split multiple commands
Remote
-
- InventoryKamera
-
-
- Come and import your official server archive into GC!
-
-
- Import GOOD
-
-
- 108, 16
-
-
- 377, 17
-
-
- Please be sure https:// or http:// is included with the IP address
-
-
- Server status
-
-
- 13, 63
-
-
- 100, 17
-
-
- OpenCommand
-
-
- 119, 63
-
-
- 119, 29
-
-
- 119, 46
-
-
- 25, 29
-
-
- 88, 17
-
-
- Game version
-
-
- 34, 46
-
-
- 79, 17
-
-
- Player count
-
-
- Remote Cell
-
-
- 4, 26
-
-
- 296, 109
-
-
- Player
-
-
- 35, 17
-
-
- Help
-
-
- Connect
-
-
- 39, 17
-
-
- Code
-
-
- Send Code
-
-
- 296, 111
-
-
- Console
-
-
- Connect
-
-
- Note that normal commands in the console state must specify the target (set include UID)
-
-
- 136, 36
-
-
- 175, 23
-
-
- 317, 36
-
-
- 65, 23
-
-
- Query
-
-
- 60, 17
-
-
- Server IP
-
-
- 4, 26
-
-
- 652, 245
-
-
- About
-
387, 102
@@ -282,17 +147,8 @@ If you think this is helpful to you, you can give me a free Star.
If there is a problem with the command generation,
or there is a new feature request, you can file an issue on Github.
-
- 4, 26
-
-
- 652, 245
-
-
- Manage
-
-
- Ban
+
+ About
Unban
@@ -312,8 +168,8 @@ or there is a new feature request, you can file an issue on Github.
UID
-
- Account
+
+ Ban
49, 21
@@ -348,8 +204,8 @@ or there is a new feature request, you can file an issue on Github.
127, 23
-
- Permissions
+
+ Account
262, 21
@@ -384,8 +240,11 @@ or there is a new feature request, you can file an issue on Github.
UID
-
- Scene
+
+ Permissions
+
+
+ Manage
255, 7
@@ -474,14 +333,8 @@ or there is a new feature request, you can file an issue on Github.
Tip: You can quickly teleport through the 'fishing hook' pin on the map in-game.
In the command, you can use ~ to indicate the current position, and ~N to indicate the relative current N
-
- 4, 26
-
-
- 652, 245
-
-
- Items
+
+ Scene
50, 17
@@ -534,69 +387,12 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
Give item to player
-
- 4, 26
-
-
- 652, 245
+
+ Items
Weapons
-
- Give all Weapons
-
-
- 86, 17
-
-
- Give Weapon
-
-
- 203, 218
-
-
- 73, 17
-
-
- Refinement
-
-
- 53, 17
-
-
- Amount
-
-
- 121, 218
-
-
- 20, 17
-
-
- Lv
-
-
- 282, 216
-
-
- 65, 216
-
-
- 147, 216
-
-
- 4, 26
-
-
- 652, 245
-
-
- Avatar
-
-
- Constellation
-
43, 17
@@ -609,8 +405,8 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
Set current
-
- Stats
+
+ Constellation
Unlock
@@ -621,8 +417,8 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
Tip
-
- Talent Level
+
+ Stats
146, 24
@@ -663,6 +459,9 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
96, 23
+
+ Talent Level
+
White
@@ -720,23 +519,8 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
Const.
-
- 4, 26
-
-
- 652, 245
-
-
- Spawn
-
-
- 4, 26
-
-
- 338, 203
-
-
- Spawn args
+
+ Avatar
78, 25
@@ -795,14 +579,8 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
Amount
-
- 4, 26
-
-
- 338, 203
-
-
- AttackModifier
+
+ Spawn args
121, 17
@@ -843,8 +621,8 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
Replace Skill
-
- AttackInfused
+
+ AttackModifier
238, 17
@@ -894,21 +672,12 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
Plugin:
-
- 4, 26
-
-
- 280, 203
+
+ AttackInfused
Entities
-
- 274, 167
-
-
- Spawn Records
-
√ Record
@@ -921,17 +690,11 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
X Clear
-
- 4, 26
+
+ Spawn Records
-
- 652, 245
-
-
- Quest
-
-
- List Filter
+
+ Spawn
51, 21
@@ -951,6 +714,9 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
Hidden
+
+ List Filter
+
Finish
@@ -962,192 +728,18 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
Tip: Many quest require server-side scripting support
Therefore, the quest can be added and finished, but not necessarily work.
-
- 4, 26
-
-
- 652, 245
+
+ Quest
Artifacts
-
- + Add
-
-
- 31, 17
-
-
- Part
-
-
- 112, 11
-
-
- 49, 17
-
-
- Artifact
-
-
- 50, 17
-
-
- X Clear
-
-
- 124, 41
-
-
- 37, 17
-
-
- Level
-
-
- 105, 102
-
-
- 56, 17
-
-
- Sub Stat
-
-
- 98, 71
-
-
- 63, 17
-
-
- Main Stat
-
-
- 37, 17
-
-
- Stars
-
-
- 4, 26
-
-
- 652, 245
-
Custom
-
- 583, 216
-
-
- 60, 23
-
-
- Export
-
-
- 517, 216
-
-
- 60, 23
-
-
- Load
-
-
- 30, 17
-
-
- Tag
-
-
- List
-
-
- 581, -1
-
-
- 53, 17
-
-
- Restore
-
-
- 443, 216
-
-
- 70, 23
-
-
- x Delete
-
-
- 367, 216
-
-
- 70, 23
-
-
- √ Save
-
-
- 317, 23
-
Home
-
- Shop Editor
-
-
- 546, 216
-
-
- Drop Editor
-
-
- 74, 38
-
-
- 158, 24
-
-
- Have a nice time!
-
-
- 120, 23
-
-
- TextMapBrowser
-
-
- Banner Editor
-
-
- Settings
-
-
- 109, 21
-
-
- Always on top
-
-
- 95, 21
-
-
- Include UID
-
-
- 4, 26
-
-
- 652, 245
-
-
- Mail
-
+ Add
@@ -1178,15 +770,6 @@ Therefore, the quest can be added and finished, but not necessarily work.
Level:
-
- 4, 26
-
-
- 228, 200
-
-
- 3, 169
-
84, 4
@@ -1241,8 +824,7 @@ Therefore, the quest can be added and finished, but not necessarily work.
Sender:
-
-
- Inherit
+
+ Mail
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Forms/FormMain.resx b/Source/GrasscutterTools/Forms/FormMain.resx
index 302cf90..8291ae8 100644
--- a/Source/GrasscutterTools/Forms/FormMain.resx
+++ b/Source/GrasscutterTools/Forms/FormMain.resx
@@ -264,898 +264,6 @@
2
-
- None
-
-
- True
-
-
- NoControl
-
-
- 444, 206
-
-
- 37, 17
-
-
- 9
-
-
- Links
-
-
- LnkLinks
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 0
-
-
- None
-
-
- True
-
-
- NoControl
-
-
- 392, 206
-
-
- 46, 17
-
-
- 8
-
-
- GOOD
-
-
- LnkGOODHelp
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 1
-
-
- None
-
-
- NoControl
-
-
- 486, 183
-
-
- 107, 17
-
-
- 7
-
-
- 存档扫描开源工具
-
-
- LnkInventoryKamera
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 2
-
-
- None
-
-
- NoControl
-
-
- 388, 139
-
-
- 205, 58
-
-
- 6
-
-
- 快来将你的官服存档导入GC吧!
-
-
- LblGOODHelp
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 3
-
-
- None
-
-
- NoControl
-
-
- 484, 203
-
-
- 104, 23
-
-
- 10
-
-
- 导入GOOD存档
-
-
- ButtonOpenGOODImport
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 4
-
-
- None
-
-
- True
-
-
- NoControl
-
-
- 141, 16
-
-
- 210, 17
-
-
- 0
-
-
- 请确保地址中包含 http:// 或 https://
-
-
- LblHostTip
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 5
-
-
- None
-
-
- True
-
-
- NoControl
-
-
- 13, 62
-
-
- 80, 17
-
-
- 5
-
-
- 远程执行插件
-
-
- LnkOpenCommandLabel
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpServerStatus
-
-
- 0
-
-
- True
-
-
- NoControl
-
-
- 99, 62
-
-
- 23, 17
-
-
- 18
-
-
- ---
-
-
- LblOpenCommandSupport
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpServerStatus
-
-
- 1
-
-
- True
-
-
- NoControl
-
-
- 99, 28
-
-
- 23, 17
-
-
- 14
-
-
- ---
-
-
- LblServerVersion
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpServerStatus
-
-
- 2
-
-
- True
-
-
- NoControl
-
-
- 99, 45
-
-
- 23, 17
-
-
- 16
-
-
- ---
-
-
- LblPlayerCount
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpServerStatus
-
-
- 3
-
-
- True
-
-
- NoControl
-
-
- 37, 28
-
-
- 56, 17
-
-
- 13
-
-
- 游戏版本
-
-
- LblServerVersionLabel
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpServerStatus
-
-
- 4
-
-
- True
-
-
- NoControl
-
-
- 25, 45
-
-
- 68, 17
-
-
- 15
-
-
- 当前玩家数
-
-
- LblPlayerCountLabel
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpServerStatus
-
-
- 5
-
-
- 388, 36
-
-
- 200, 100
-
-
- 4
-
-
- 服务器状态
-
-
- GrpServerStatus
-
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 6
-
-
- None
-
-
- True
-
-
- NoControl
-
-
- 189, 15
-
-
- 32, 17
-
-
- 2
-
-
- 帮助
-
-
- LnkRCHelp
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPPlayerCheck
-
-
- 0
-
-
- 65, 13
-
-
- 118, 23
-
-
- 1
-
-
- NUDRemotePlayerId
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPPlayerCheck
-
-
- 1
-
-
- False
-
-
- NoControl
-
-
- 92, 82
-
-
- 100, 23
-
-
- 6
-
-
- 连接
-
-
- BtnConnectOpenCommand
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPPlayerCheck
-
-
- 2
-
-
- True
-
-
- NoControl
-
-
- 15, 44
-
-
- 44, 17
-
-
- 3
-
-
- 验证码
-
-
- LblVerificationCode
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPPlayerCheck
-
-
- 3
-
-
- NoControl
-
-
- 189, 42
-
-
- 100, 23
-
-
- 5
-
-
- 发送验证码
-
-
- BtnSendVerificationCode
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPPlayerCheck
-
-
- 4
-
-
- False
-
-
- 65, 42
-
-
- 118, 23
-
-
- 4
-
-
- NUDVerificationCode
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPPlayerCheck
-
-
- 5
-
-
- True
-
-
- NoControl
-
-
- 29, 15
-
-
- 30, 17
-
-
- 0
-
-
- UID
-
-
- LblRemotePlayerId
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPPlayerCheck
-
-
- 6
-
-
- 4, 22
-
-
- 3, 3, 3, 3
-
-
- 296, 113
-
-
- 0
-
-
- 玩家验证
-
-
- TPPlayerCheck
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPOpenCommandCheck
-
-
- 0
-
-
- NoControl
-
-
- 92, 82
-
-
- 100, 23
-
-
- 3
-
-
- 连接
-
-
- BtnConsoleConnect
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPConsoleCheck
-
-
- 0
-
-
- 65, 13
-
-
- 182, 23
-
-
- 1
-
-
- TxtToken
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPConsoleCheck
-
-
- 1
-
-
- True
-
-
- NoControl
-
-
- 15, 16
-
-
- 44, 17
-
-
- 0
-
-
- Token
-
-
- LblToken
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPConsoleCheck
-
-
- 2
-
-
- Microsoft YaHei UI, 9pt, style=Italic
-
-
- NoControl
-
-
- 15, 39
-
-
- 275, 40
-
-
- 2
-
-
- 请注意,控制台状态下普通命令必须指定目标
-(即设置包含UID)
-
-
- LblConsoleTip
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPConsoleCheck
-
-
- 3
-
-
- 4, 26
-
-
- 3, 3, 3, 3
-
-
- 296, 109
-
-
- 1
-
-
- 控制台
-
-
- TPConsoleCheck
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPOpenCommandCheck
-
-
- 1
-
-
- Fill
-
-
- 3, 19
-
-
- 304, 139
-
-
- 0
-
-
- TPOpenCommandCheck
-
-
- System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpRemoteCommand
-
-
- 0
-
-
- False
-
-
- 72, 65
-
-
- 310, 161
-
-
- 5
-
-
- 远程执行
-
-
- GrpRemoteCommand
-
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 7
-
-
- None
-
-
- 144, 36
-
-
- 182, 23
-
-
- 2
-
-
- TxtHost
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 8
-
-
- None
-
-
- NoControl
-
-
- 332, 36
-
-
- 50, 23
-
-
- 3
-
-
- 查询
-
-
- BtnQueryServerStatus
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 9
-
-
- None
-
-
- True
-
-
- NoControl
-
-
- 70, 39
-
-
- 68, 17
-
-
- 1
-
-
- 服务器地址
-
-
- LblHost
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPRemoteCall
-
-
- 10
-
4, 22
@@ -1467,7 +575,7 @@
5
- 56, 158
+ 56, 154
540, 60
@@ -1653,7 +761,7 @@
5
- 56, 6
+ 56, 2
540, 60
@@ -1890,7 +998,7 @@
7
- 56, 72
+ 56, 68
540, 80
@@ -2328,7 +1436,7 @@
6, 6
- 224, 51
+ 56, 17
0
@@ -2346,7 +1454,7 @@
TPScene
- 11
+ 13
Top, Bottom, Left, Right
@@ -2447,7 +1555,7 @@
NoControl
- 262, 193
+ 262, 181
44, 17
@@ -2540,7 +1648,7 @@
3, 19
- 243, 140
+ 243, 128
6
@@ -2561,7 +1669,7 @@
10, 48
- 249, 162
+ 249, 150
1
@@ -2591,7 +1699,7 @@
NoControl
- 255, 217
+ 255, 205
51, 21
@@ -2648,7 +1756,7 @@
346, 31
- 300, 208
+ 300, 157
11
@@ -2675,7 +1783,7 @@
NoControl
- 6, 218
+ 6, 206
32, 17
@@ -2708,7 +1816,7 @@
NoControl
- 150, 218
+ 150, 206
32, 17
@@ -2735,7 +1843,7 @@
Bottom, Left
- 44, 216
+ 44, 204
100, 23
@@ -2759,7 +1867,7 @@
Bottom, Left
- 188, 216
+ 188, 204
50, 23
@@ -2811,13 +1919,13 @@
11
- 4, 22
+ 4, 26
3, 3, 3, 3
- 652, 249
+ 652, 245
4
@@ -2837,305 +1945,12 @@
5
-
- Bottom, Left
-
-
- Microsoft YaHei UI, 10pt
-
-
- NoControl
-
-
- 9, 175
-
-
- 150, 35
-
-
- 1
-
-
- 获得所有武器
-
-
- BtnGiveAllWeapons
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPWeapon
-
-
- 0
-
-
- Top, Right
-
-
- 446, 5
-
-
- 200, 23
-
-
- 8
-
-
- TxtWeaponFilter
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPWeapon
-
-
- 1
-
-
- Top, Bottom, Left, Right
-
-
- True
-
-
- NoControl
-
-
- 6, 6
-
-
- 200, 153
-
-
- 0
-
-
- 获取武器
-
-说明:设置等级会自动设置突破等级
->20级 突破1
->40级 突破2
->50级 突破3
->60级 突破4
->70级 突破5
->80级 突破6
-
-
- LblWeaponDescription
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPWeapon
-
-
- 2
-
-
- Bottom, Left
-
-
- True
-
-
- NoControl
-
-
- 194, 218
-
-
- 56, 17
-
-
- 6
-
-
- 精炼等级
-
-
- LblWeaponRefinement
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPWeapon
-
-
- 3
-
-
- Bottom, Left
-
-
- True
-
-
- NoControl
-
-
- 6, 218
-
-
- 32, 17
-
-
- 2
-
-
- 数量
-
-
- LblWeaponAmount
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPWeapon
-
-
- 4
-
-
- Bottom, Left
-
-
- True
-
-
- NoControl
-
-
- 100, 218
-
-
- 32, 17
-
-
- 4
-
-
- 等级
-
-
- LblWeaponLevel
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPWeapon
-
-
- 5
-
-
- Bottom, Left
-
-
- 256, 216
-
-
- 50, 23
-
-
- 7
-
-
- NUDWeaponRefinement
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPWeapon
-
-
- 6
-
-
- Bottom, Left
-
-
- 44, 216
-
-
- 50, 23
-
-
- 3
-
-
- NUDWeaponAmout
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPWeapon
-
-
- 7
-
-
- Bottom, Left
-
-
- 138, 216
-
-
- 50, 23
-
-
- 5
-
-
- NUDWeaponLevel
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPWeapon
-
-
- 8
-
-
- Top, Bottom, Right
-
-
- 17
-
-
- 446, 31
-
-
- 200, 208
-
-
- 9
-
-
- ListWeapons
-
-
- System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPWeapon
-
-
- 9
-
4, 22
+
+ 0, 0, 0, 0
+
3, 3, 3, 3
@@ -3245,7 +2060,7 @@
2
- 288, 176
+ 288, 172
332, 55
@@ -3434,7 +2249,7 @@
5
- 288, 13
+ 288, 9
332, 96
@@ -3602,7 +2417,7 @@
4
- 288, 115
+ 288, 111
332, 55
@@ -3968,7 +2783,7 @@
11
- 32, 13
+ 32, 9
250, 218
@@ -4018,1781 +2833,14 @@
6
-
- Top, Bottom, Left
-
-
- 240, 126
-
-
- 80, 23
-
-
- 13
-
-
- NUDEntityDef
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 0
-
-
- 78, 126
-
-
- 80, 23
-
-
- 11
-
-
- NUDEntityAtk
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 1
-
-
- 69, 80
-
-
- 80, 23
-
-
- 6
-
-
- NUDEntityHp
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 2
-
-
- 240, 80
-
-
- 80, 23
-
-
- 8
-
-
- NUDEntityMaxHp
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 3
-
-
- 260, 155
-
-
- 60, 23
-
-
- 17
-
-
- NUDEntityPosZ
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 4
-
-
- 169, 155
-
-
- 60, 23
-
-
- 16
-
-
- NUDEntityPosY
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 5
-
-
- 78, 155
-
-
- 60, 23
-
-
- 15
-
-
- NUDEntityPosX
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 6
-
-
- 69, 25
-
-
- 80, 23
-
-
- 1
-
-
- NUDEntityAmout
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 7
-
-
- 240, 25
-
-
- 80, 23
-
-
- 3
-
-
- NUDEntityLevel
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 8
-
-
- True
-
-
- NoControl
-
-
- 19, 60
-
-
- 162, 17
-
-
- 4
-
-
- 以下参数至少要求 GC v1.3.1
-
-
- LblSpawnVersionRequireTip
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 9
-
-
- True
-
-
- NoControl
-
-
- 20, 106
-
-
- 107, 17
-
-
- 9
-
-
- 血量为 0 表示无限
-
-
- LblInfiniteHpTip
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 10
-
-
- True
-
-
- NoControl
-
-
- 182, 128
-
-
- 56, 17
-
-
- 12
-
-
- 防御力:
-
-
- LblEntityDef
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 11
-
-
- True
-
-
- NoControl
-
-
- 19, 128
-
-
- 56, 17
-
-
- 10
-
-
- 攻击力:
-
-
- LblEntityAtk
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 12
-
-
- True
-
-
- NoControl
-
-
- 19, 82
-
-
- 44, 17
-
-
- 5
-
-
- 血量:
-
-
- LblEntityHp
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 13
-
-
- True
-
-
- NoControl
-
-
- 170, 82
-
-
- 68, 17
-
-
- 7
-
-
- 最大血量:
-
-
- LblEntityMaxHp
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 14
-
-
- True
-
-
- NoControl
-
-
- 19, 157
-
-
- 235, 17
-
-
- 14
-
-
- 位置: x: y: z:
-
-
- LblEntitySpawnPostion
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 15
-
-
- True
-
-
- NoControl
-
-
- 194, 27
-
-
- 44, 17
-
-
- 2
-
-
- 等级:
-
-
- LblEntityLevel
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 16
-
-
- True
-
-
- NoControl
-
-
- 20, 27
-
-
- 44, 17
-
-
- 0
-
-
- 数量:
-
-
- LblEntityAmount
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnArgs
-
-
- 17
-
-
- 4, 22
-
-
- 3, 3, 3, 3
-
-
- 338, 207
-
-
- 0
-
-
- 生成参数
-
-
- TPSpawnArgs
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TCSpawnSettings
-
-
- 0
-
-
- True
-
-
- NoControl
-
-
- 6, 41
-
-
- 140, 17
-
-
- 5
-
-
- 见识一下真正的雷神吧!
-
-
- LblAMPluginTip
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackModArgs
-
-
- 0
-
-
- True
-
-
- NoControl
-
-
- 6, 24
-
-
- 227, 17
-
-
- 4
-
-
- 这个插件可以使用 Gadget 替换角色攻击
-
-
- LblAMPluginIntroduction
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackModArgs
-
-
- 1
-
-
- True
-
-
- NoControl
-
-
- 6, 3
-
-
- 44, 17
-
-
- 0
-
-
- 插件:
-
-
- LblAMPlugin
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackModArgs
-
-
- 2
-
-
- True
-
-
- NoControl
-
-
- 182, 3
-
-
- 20, 17
-
-
- 3
-
-
- 关
-
-
- LnkAMOff
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackModArgs
-
-
- 3
-
-
- True
-
-
- NoControl
-
-
- 156, 3
-
-
- 20, 17
-
-
- 2
-
-
- 开
-
-
- LnkAMOn
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackModArgs
-
-
- 4
-
-
- NoControl
-
-
- 232, 170
-
-
- 100, 23
-
-
- 8
-
-
- 重载配置
-
-
- BtnAtReload
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackModArgs
-
-
- 5
-
-
- NoControl
-
-
- 9, 170
-
-
- 217, 23
-
-
- 7
-
-
- 清空实体!!
-
-
- BtnAtClear
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackModArgs
-
-
- 6
-
-
- True
-
-
- NoControl
-
-
- 56, 3
-
-
- 94, 17
-
-
- 1
-
-
- AttackModifier
-
-
- LnkAttackModifierPlugin
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackModArgs
-
-
- 7
-
-
- 67, 72
-
-
- 250, 23
-
-
- 5
-
-
- TxtAtEntityQ
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpAMSkills
-
-
- 0
-
-
- 67, 43
-
-
- 250, 23
-
-
- 4
-
-
- TxtAtEntityE
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpAMSkills
-
-
- 1
-
-
- 67, 14
-
-
- 250, 23
-
-
- 3
-
-
- TxtAtEntityN
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpAMSkills
-
-
- 2
-
-
- True
-
-
- NoControl
-
-
- 14, 73
-
-
- 36, 21
-
-
- 2
-
-
- Q
-
-
- RbAtQ
-
-
- System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpAMSkills
-
-
- 3
-
-
- True
-
-
- NoControl
-
-
- 14, 44
-
-
- 33, 21
-
-
- 1
-
-
- E
-
-
- RbAtE
-
-
- System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpAMSkills
-
-
- 4
-
-
- True
-
-
- NoControl
-
-
- 14, 15
-
-
- 36, 21
-
-
- 0
-
-
- N
-
-
- RbAtN
-
-
- System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpAMSkills
-
-
- 5
-
-
- 9, 61
-
-
- 323, 103
-
-
- 6
-
-
- 替换技能
-
-
- GrpAMSkills
-
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackModArgs
-
-
- 8
-
-
- 4, 22
-
-
- 3, 3, 3, 3
-
-
- 338, 207
-
-
- 1
-
-
- 攻击修改参数
-
-
- TPAttackModArgs
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TCSpawnSettings
-
-
- 1
-
-
- 248, 105
-
-
- 60, 23
-
-
- 13
-
-
- NUDAiwiRotateZ
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 0
-
-
- 157, 105
-
-
- 60, 23
-
-
- 12
-
-
- NUDAiwiRotateY
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 1
-
-
- 66, 105
-
-
- 60, 23
-
-
- 11
-
-
- NUDAiwiRotateX
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 2
-
-
- True
-
-
- NoControl
-
-
- 7, 107
-
-
- 235, 17
-
-
- 10
-
-
- 旋转: x: y: z:
-
-
- LblAiwiRotate
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 3
-
-
- 228, 76
-
-
- 80, 23
-
-
- 9
-
-
- NUDAiwiSpread
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 4
-
-
- True
-
-
- NoControl
-
-
- 178, 78
-
-
- 44, 17
-
-
- 8
-
-
- 扩散:
-
-
- LblAiwiSpread
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 5
-
-
- 66, 76
-
-
- 80, 23
-
-
- 7
-
-
- NUDAiwiCount
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 6
-
-
- 228, 47
-
-
- 80, 23
-
-
- 5
-
-
- NUDAiwiHeight
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 7
-
-
- 66, 47
-
-
- 80, 23
-
-
- 3
-
-
- NUDAiwiRadius
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 8
-
-
- True
-
-
- NoControl
-
-
- 7, 78
-
-
- 44, 17
-
-
- 6
-
-
- 数量:
-
-
- LblAiwiCount
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 9
-
-
- True
-
-
- NoControl
-
-
- 178, 49
-
-
- 44, 17
-
-
- 4
-
-
- 高度:
-
-
- LblAiwiHeight
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 10
-
-
- True
-
-
- NoControl
-
-
- 7, 49
-
-
- 44, 17
-
-
- 2
-
-
- 范围:
-
-
- LblAiwiRadius
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 11
-
-
- NoControl
-
-
- 94, 134
-
-
- 150, 30
-
-
- 14
-
-
- 攻击注入
-
-
- BtnAttackInfuse
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 12
-
-
- NoControl
-
-
- 221, 174
-
-
- 100, 23
-
-
- 17
-
-
- 重载配置
-
-
- BtnAiwiReload
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 13
-
-
- NoControl
-
-
- 115, 174
-
-
- 100, 23
-
-
- 16
-
-
- 清空实体
-
-
- BtnAiwiClear
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 14
-
-
- NoControl
-
-
- 9, 174
-
-
- 100, 23
-
-
- 15
-
-
- 重置
-
-
- BtnAiwiReset
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 15
-
-
- True
-
-
- NoControl
-
-
- 6, 3
-
-
- 44, 17
-
-
- 0
-
-
- 插件:
-
-
- LblAiwiPlugin
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 16
-
-
- True
-
-
- NoControl
-
-
- 56, 3
-
-
- 139, 17
-
-
- 1
-
-
- AttackInfusedWithItem
-
-
- LnkAttackInfusedWithItem
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPAttackInfusedArgs
-
-
- 17
-
-
- 4, 26
-
-
- 3, 3, 3, 3
-
-
- 338, 203
-
-
- 2
-
-
- 攻击注入参数
-
-
- TPAttackInfusedArgs
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TCSpawnSettings
-
-
- 2
-
-
- 6, 6
-
-
- 346, 233
-
-
- 0
-
-
- TCSpawnSettings
-
-
- System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawn
-
-
- 0
-
-
- Top, Bottom, Left, Right
-
-
- Fill
-
-
- 17
-
-
- 3, 33
-
-
- 274, 171
-
-
- 1
-
-
- ListEntity
-
-
- System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnItems
-
-
- 0
-
-
- Top, Left, Right
-
-
- 0, 3
-
-
- 242, 23
-
-
- 0
-
-
- TxtEntityFilter
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- PanelEntityFilterBar
-
-
- 0
-
-
- Top, Right
-
-
- NoControl
-
-
- 245, 3
-
-
- 26, 24
-
-
- 1
-
-
- 三
-
-
- BtnFilterEntity
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- PanelEntityFilterBar
-
-
- 1
-
-
- Top
-
-
- 3, 3
-
-
- 274, 30
-
-
- 0
-
-
- PanelEntityFilterBar
-
-
- System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnItems
-
-
- 1
-
-
- 4, 22
-
-
- 3, 3, 3, 3
-
-
- 280, 207
-
-
- 0
-
-
- 实体列表
-
-
- TPSpawnItems
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TCSpawnItems
-
-
- 0
-
-
- Fill
-
-
- 17
-
-
- 3, 3
-
-
- 274, 168
-
-
- 0
-
-
- ListSpawnLogs
-
-
- System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnRecords
-
-
- 0
-
-
- True
-
-
- NoControl
-
-
- 3, 3
-
-
- 75, 23
-
-
- 0
-
-
- √ 记录
-
-
- BtnSaveSpawnLog
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- FLPSpawnRecordControls
-
-
- 0
-
-
- False
-
-
- NoControl
-
-
- 84, 3
-
-
- 75, 23
-
-
- 1
-
-
- × 删除
-
-
- BtnRemoveSpawnLog
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- FLPSpawnRecordControls
-
-
- 1
-
-
- Left
-
-
- True
-
-
- NoControl
-
-
- 165, 6
-
-
- 44, 17
-
-
- 2
-
-
- X 清空
-
-
- LblClearSpawnLogs
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- FLPSpawnRecordControls
-
-
- 2
-
-
- Bottom
-
-
- 3, 171
-
-
- 274, 29
-
-
- 1
-
-
- FLPSpawnRecordControls
-
-
- System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawnRecords
-
-
- 1
-
-
- 4, 26
-
-
- 3, 3, 3, 3
-
-
- 280, 203
-
-
- 1
-
-
- 生成记录本
-
-
- TPSpawnRecords
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TCSpawnItems
-
-
- 1
-
-
- 358, 6
-
-
- 288, 233
-
-
- 1
-
-
- TCSpawnItems
-
-
- System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPSpawn
-
-
- 1
-
- 4, 22
+ 4, 26
3, 3, 3, 3
- 652, 249
+ 652, 245
6
@@ -6099,582 +3147,6 @@
10
-
- Bottom, Right
-
-
- True
-
-
- NoControl
-
-
- 540, 225
-
-
- 109, 17
-
-
- 19
-
-
- Character Builder
-
-
- LnkCharacterBuilder
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 0
-
-
- Top
-
-
- True
-
-
- NoControl
-
-
- 223, 41
-
-
- 42, 17
-
-
- 7
-
-
- [0-20]
-
-
- LblArtifactLevelTip
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 1
-
-
- Top
-
-
- NoControl
-
-
- 465, 129
-
-
- 75, 23
-
-
- 17
-
-
- + 添加
-
-
- BtnAddSubAttr
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 2
-
-
- Top
-
-
- True
-
-
- NoControl
-
-
- 462, 11
-
-
- 0, 17
-
-
- 4
-
-
- LblArtifactName
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 3
-
-
- Top
-
-
- True
-
-
- NoControl
-
-
- 298, 11
-
-
- 32, 17
-
-
- 2
-
-
- 部位
-
-
- LblArtifactPart
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 4
-
-
- Top
-
-
- 336, 8
-
-
- 120, 25
-
-
- 3
-
-
- CmbArtifactPart
-
-
- System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 5
-
-
- Top
-
-
- 167, 8
-
-
- 125, 25
-
-
- 1
-
-
- CmbArtifactSet
-
-
- System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 6
-
-
- Top
-
-
- True
-
-
- NoControl
-
-
- 129, 11
-
-
- 32, 17
-
-
- 0
-
-
- 套装
-
-
- LblArtifactSet
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 7
-
-
- Top
-
-
- 465, 100
-
-
- 51, 23
-
-
- 15
-
-
- NUDSubAttributionTimes
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 8
-
-
- Top
-
-
- 336, 98
-
-
- 120, 25
-
-
- 14
-
-
- CmbSubAttributionValue
-
-
- System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 9
-
-
- Top
-
-
- 167, 99
-
-
- 163, 25
-
-
- 13
-
-
- CmbSubAttribution
-
-
- System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 10
-
-
- Top
-
-
- True
-
-
- NoControl
-
-
- 462, 218
-
-
- 44, 17
-
-
- 18
-
-
- X 清空
-
-
- LblClearSubAttrCheckedList
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 11
-
-
- Top, Bottom
-
-
- 17
-
-
- 167, 129
-
-
- 289, 106
-
-
- 16
-
-
- ListSubAttributionChecked
-
-
- System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 12
-
-
- Top
-
-
- True
-
-
- NoControl
-
-
- 129, 41
-
-
- 32, 17
-
-
- 5
-
-
- 等级
-
-
- LblArtifactLevel
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 13
-
-
- Top
-
-
- True
-
-
- NoControl
-
-
- 117, 102
-
-
- 44, 17
-
-
- 12
-
-
- 副词条
-
-
- LblSubAttribution
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 14
-
-
- Top
-
-
- 167, 68
-
-
- 289, 25
-
-
- 11
-
-
- CmbMainAttribution
-
-
- System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 15
-
-
- Top
-
-
- True
-
-
- NoControl
-
-
- 117, 71
-
-
- 44, 17
-
-
- 10
-
-
- 主词条
-
-
- LblMainAttribution
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 16
-
-
- Top
-
-
- 167, 39
-
-
- 50, 23
-
-
- 6
-
-
- NUDArtifactLevel
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 17
-
-
- Top
-
-
- True
-
-
- NoControl
-
-
- 353, 41
-
-
- 32, 17
-
-
- 8
-
-
- 星级
-
-
- LblArtifactStars
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 18
-
-
- Top
-
-
- 391, 39
-
-
- 65, 23
-
-
- 9
-
-
- NUDArtifactStars
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPArtifact
-
-
- 19
-
4, 22
@@ -6702,267 +3174,6 @@
3
-
- Bottom, Right
-
-
- NoControl
-
-
- 593, 216
-
-
- 50, 23
-
-
- 7
-
-
- 导出
-
-
- BtnExportCustomCommands
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPCustom
-
-
- 0
-
-
- Bottom, Right
-
-
- NoControl
-
-
- 537, 216
-
-
- 50, 23
-
-
- 6
-
-
- 载入
-
-
- BtnLoadCustomCommands
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPCustom
-
-
- 1
-
-
- Bottom, Left
-
-
- True
-
-
- NoControl
-
-
- 6, 219
-
-
- 32, 17
-
-
- 2
-
-
- 标签
-
-
- LblCustomName
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPCustom
-
-
- 2
-
-
- Top, Bottom, Left, Right
-
-
- True
-
-
- NoControl
-
-
- 552, -1
-
-
- 32, 17
-
-
- 8
-
-
- 重置
-
-
- LnkResetCustomCommands
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- groupBox1
-
-
- 0
-
-
- True
-
-
- Fill
-
-
- 3, 19
-
-
- 634, 182
-
-
- 0
-
-
- FLPCustomCommands
-
-
- System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- groupBox1
-
-
- 1
-
-
- 6, 6
-
-
- 640, 204
-
-
- 1
-
-
- 列表
-
-
- groupBox1
-
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPCustom
-
-
- 3
-
-
- Bottom, Right
-
-
- NoControl
-
-
- 471, 216
-
-
- 60, 23
-
-
- 5
-
-
- × 删除
-
-
- BtnRemoveCustomCommand
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPCustom
-
-
- 4
-
-
- Bottom, Right
-
-
- NoControl
-
-
- 405, 216
-
-
- 60, 23
-
-
- 4
-
-
- √ 保存
-
-
- BtnSaveCustomCommand
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPCustom
-
-
- 5
-
-
- Bottom, Left, Right
-
-
- 44, 216
-
-
- 355, 23
-
-
- 3
-
-
- TxtCustomName
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPCustom
-
-
- 6
-
4, 22
@@ -6990,468 +3201,6 @@
2
-
- Bottom, Right
-
-
- NoControl
-
-
- 313, 179
-
-
- 100, 23
-
-
- 3
-
-
- 商店编辑器
-
-
- BtnOpenShopEditor
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPHome
-
-
- 0
-
-
- Bottom, Right
-
-
- NoControl
-
-
- 525, 208
-
-
- 100, 23
-
-
- 6
-
-
- 掉落物编辑器
-
-
- BtnOpenDropEditor
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPHome
-
-
- 1
-
-
- Bottom, Left
-
-
- True
-
-
- NoControl
-
-
- 6, 100
-
-
- 104, 17
-
-
- 1
-
-
- New Version Tip
-
-
- False
-
-
- LnkNewVersion
-
-
- System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPHome
-
-
- 2
-
-
- Left
-
-
- True
-
-
- Microsoft YaHei UI, 13pt
-
-
- NoControl
-
-
- 88, 32
-
-
- 136, 24
-
-
- 0
-
-
- 祝你玩得愉快!
-
-
- LblAbout
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPHome
-
-
- 3
-
-
- Bottom, Right
-
-
- NoControl
-
-
- 419, 208
-
-
- 100, 23
-
-
- 5
-
-
- 文本浏览器
-
-
- BtnOpenTextMap
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPHome
-
-
- 4
-
-
- Bottom, Right
-
-
- NoControl
-
-
- 313, 208
-
-
- 100, 23
-
-
- 4
-
-
- 奖池编辑器
-
-
- BtnOpenGachaBannerEditor
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPHome
-
-
- 5
-
-
- Top, Bottom, Left, Right
-
-
- NoControl
-
-
- 313, 6
-
-
- 333, 196
-
-
- CenterImage
-
-
- 6
-
-
- GrasscutterToolsIcon
-
-
- System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPHome
-
-
- 6
-
-
- Bottom, Left
-
-
- True
-
-
- NoControl
-
-
- 7, 83
-
-
- 25, 17
-
-
- 5
-
-
- GC
-
-
- LblGCVersion
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpSettings
-
-
- 0
-
-
- 41, 80
-
-
- 100, 25
-
-
- 6
-
-
- CmbGcVersions
-
-
- System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpSettings
-
-
- 1
-
-
- True
-
-
- NoControl
-
-
- 147, 82
-
-
- 75, 21
-
-
- 7
-
-
- 窗口置顶
-
-
- ChkTopMost
-
-
- System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpSettings
-
-
- 2
-
-
- 41, 51
-
-
- 100, 25
-
-
- 3
-
-
- CmbLanguage
-
-
- System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpSettings
-
-
- 3
-
-
- True
-
-
- NoControl
-
-
- 147, 54
-
-
- 128, 17
-
-
- 4
-
-
- 语言/Language/язык
-
-
- LblLanguage
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpSettings
-
-
- 4
-
-
- 41, 22
-
-
- 100, 23
-
-
- 1
-
-
- NUDUid
-
-
- System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpSettings
-
-
- 5
-
-
- True
-
-
- NoControl
-
-
- 147, 23
-
-
- 133, 21
-
-
- 2
-
-
- 生成的命令包含UID
-
-
- ChkIncludeUID
-
-
- System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpSettings
-
-
- 6
-
-
- True
-
-
- NoControl
-
-
- 7, 24
-
-
- 30, 17
-
-
- 0
-
-
- UID
-
-
- LblDefaultUid
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- GrpSettings
-
-
- 7
-
-
- 6, 120
-
-
- 301, 111
-
-
- 2
-
-
- 设置
-
-
- GrpSettings
-
-
- System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- TPHome
-
-
- 7
-
4, 26
@@ -7870,7 +3619,7 @@
Bottom
- 3, 169
+ 3, 173
222, 28
@@ -7891,13 +3640,13 @@
1
- 4, 26
+ 4, 22
3, 3, 3, 3
- 228, 200
+ 228, 204
1
@@ -8302,13 +4051,13 @@
16
- 4, 26
+ 4, 22
3, 3, 3, 3
- 652, 245
+ 652, 249
16
diff --git a/Source/GrasscutterTools/Forms/FormMain.ru-ru.resx b/Source/GrasscutterTools/Forms/FormMain.ru-ru.resx
index dce6bd4..7b145a8 100644
--- a/Source/GrasscutterTools/Forms/FormMain.ru-ru.resx
+++ b/Source/GrasscutterTools/Forms/FormMain.ru-ru.resx
@@ -151,175 +151,9 @@
Выполнить (F5)
-
- 4, 26
-
-
- 652, 245
-
OpenCommand
-
- InventoryKamera
-
-
- Приходите и импортируйте свой официальный архив сервера в GC!
-
-
- Импортировать GOOD
-
-
- 83, 16
-
-
- 346, 17
-
-
- Убедитесь, что https:// или http:// включены в IP-адрес.
-
-
- Состояние сервера
-
-
- 13, 63
-
-
- 100, 17
-
-
- OpenCommand
-
-
- 119, 63
-
-
- 119, 29
-
-
- 119, 46
-
-
- 27, 29
-
-
- 86, 17
-
-
- Версия игры
-
-
- 7, 46
-
-
- 106, 17
-
-
- Кол-во игроков
-
-
- Удалить ячейку
-
-
- 4, 26
-
-
- 296, 109
-
-
- Игрок
-
-
- 176, 15
-
-
- 60, 17
-
-
- Помощь
-
-
- 52, 13
-
-
- 93, 81
-
-
- 110, 23
-
-
- Подключиться
-
-
- 31, 17
-
-
- Код
-
-
- 176, 42
-
-
- 110, 23
-
-
- Отправить код
-
-
- 52, 42
-
-
- 16, 15
-
-
- 296, 111
-
-
- Консоль
-
-
- Подключиться (консоль)
-
-
- Microsoft YaHei UI, 8pt, style=Italic
-
-
- 15, 34
-
-
- 275, 48
-
-
- Обратите внимание, что обычные команды в консоли должны указывать UID цели
-(установите галочку галочку "Включить UID" на главной)
-
-
- 111, 36
-
-
- 204, 23
-
-
- 317, 36
-
-
- 65, 23
-
-
- Запрос
-
-
- 35, 17
-
-
- Хост
-
-
- 4, 26
-
-
- 652, 245
-
Справка
@@ -339,12 +173,6 @@
Спасибо: Dhar_Jinxed
-
- 4, 26
-
-
- 652, 245
-
Аккаунты
@@ -591,12 +419,6 @@
Подсказка: вы можете быстро телепортироваться через отметку «рыболовный крючок» на миникарте в игре.
В команде вы можете использовать ~, чтобы указать текущую позицию, и ~N, чтобы указать смещение на N относительно текущей позиции
-
- 4, 26
-
-
- 652, 245
-
Предметы
@@ -672,69 +494,12 @@
Дать предмет игроку
-
- 4, 26
-
-
- 652, 245
-
Оружие
-
- Дать всё оружие
-
-
- 87, 17
-
-
- Дать оружие
-
-
- 207, 218
-
-
- 115, 17
-
-
- Ур. пробуждения
-
-
- 51, 17
-
-
- Кол-во
-
-
- 119, 218
-
-
- 26, 17
-
-
- Ур.
-
-
- 323, 216
-
-
- 63, 216
-
-
- 151, 216
-
-
- 4, 26
-
-
- 652, 245
-
Персонаж
-
- 288, 172
-
Установить созвездие
@@ -753,9 +518,6 @@
текущий
-
- 288, 9
-
Статистика
@@ -771,9 +533,6 @@
Подсказка
-
- 288, 111
-
Уровень таланта
@@ -816,9 +575,6 @@
94, 23
-
- 32, 9
-
Выдать персонажа
@@ -924,21 +680,9 @@
114, 23
-
- 4, 26
-
-
- 652, 245
-
Спавн
-
- 4, 26
-
-
- 338, 203
-
Спавн
@@ -996,12 +740,6 @@
Кол.
-
- 4, 26
-
-
- 338, 203
-
Изменение атаки
@@ -1101,18 +839,9 @@
Плагин
-
- 4, 26
-
-
- 280, 203
-
Список объектов
-
- 274, 167
-
Записи спавнов
@@ -1140,12 +869,6 @@
X Очистить
-
- 4, 26
-
-
- 652, 245
-
Квест
@@ -1181,234 +904,15 @@
Внимание: для многих квестов требуются скрипты таковых на стороне сервера.
Поэтому квест может быть добавлен или отозван через консоль, но завершён игроком - вряд ли.
-
- 4, 26
-
-
- 652, 245
-
Артефакт
-
- 100, 23
-
-
- + Добавить
-
-
- 306, 11
-
-
- 42, 17
-
-
- Часть
-
-
- 349, 8
-
-
- 107, 25
-
-
- 97, 11
-
-
- 64, 17
-
-
- Артефакт
-
-
- 76, 17
-
-
- X Очистить
-
-
- 101, 41
-
-
- 60, 17
-
-
- Уровень
-
-
- 96, 101
-
-
- 65, 17
-
-
- Всп. Стат.
-
-
- 79, 71
-
-
- 82, 17
-
-
- Основ. Стат.
-
-
- 333, 41
-
-
- 51, 17
-
-
- Звезды
-
-
- 4, 26
-
-
- 652, 245
-
Кастомное
-
- 536, 216
-
-
- 70, 23
-
-
- Экспорт
-
-
- 450, 216
-
-
- 80, 23
-
-
- Загрузить
-
-
- 34, 17
-
-
- Имя
-
-
- Список
-
-
- 535, -1
-
-
- 66, 17
-
-
- Сбросить
-
-
- 369, 216
-
-
- 75, 23
-
-
- x Удалить
-
-
- 268, 216
-
-
- 95, 23
-
-
- √ Сохранить
-
-
- 58, 216
-
-
- 204, 23
-
Главная
-
- 313, 179
-
-
- 140, 23
-
-
- Редактор магазина
-
-
- 459, 208
-
-
- 187, 23
-
-
- Редактор дропа
-
-
- 6, 100
-
-
- 12, 37
-
-
- 314, 24
-
-
- Желаем приятно провести время!
-
-
- 526, 179
-
-
- 120, 23
-
-
- Браузер карт
-
-
- 313, 208
-
-
- 140, 23
-
-
- Редактор баннеров
-
-
- 333, 196
-
-
- 6, 120
-
-
- Настройки
-
-
- 140, 21
-
-
- Последняя версия
-
-
- 113, 21
-
-
- Включить UID
-
-
- 4, 26
-
-
- 652, 245
-
Почта
@@ -1457,18 +961,9 @@
Уровень
-
- 4, 26
-
-
- 228, 200
-
Список рассылки
-
- 3, 169
-
114, 5
@@ -1568,8 +1063,4 @@
Отправитель:
-
-
- Inherit
-
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Forms/FormMain.zh-TW.resx b/Source/GrasscutterTools/Forms/FormMain.zh-TW.resx
index cb69e57..172d562 100644
--- a/Source/GrasscutterTools/Forms/FormMain.zh-TW.resx
+++ b/Source/GrasscutterTools/Forms/FormMain.zh-TW.resx
@@ -129,64 +129,12 @@
命令 - [Ctrl] 自動執行 - [Shift] 拼接命令 - [Alt] 僅執行 - [|] 分割多條命令
-
- 存檔掃描開源工具
-
-
- 快來把你的官服存檔導入GC吧!
-
-
- 導入GOOD檔案
-
-
- 206, 17
+
+ 4, 22
-
- 請確保地址中包含 http:// 或 https://
-
-
- 遠程執行插件
-
-
- 遊戲版本
-
-
- 當前玩家數
-
-
- 伺服器狀態
-
-
- 幫助
-
-
- 連接
-
-
- 驗證碼
-
-
- 發送驗證碼
-
-
- 玩家驗證
-
-
- 連接
-
-
- 請注意,控制台狀態下普通命令必須指定目標
-(即設置包含UID)
-
-
- 遠程執行
-
-
- 查詢
-
-
- 伺服器地址
+
+ 652, 249
遠程
@@ -202,6 +150,12 @@
如果願意請我喝一杯奶茶,那就更好了 : )
指令生成有問題,或者有新的功能請求,都可以來Github提出
+
+ 4, 22
+
+
+ 652, 249
+
關於
@@ -232,6 +186,12 @@
權限管理
+
+ 4, 22
+
+
+ 652, 249
+
祕境
@@ -286,28 +246,17 @@
給玩家指定物品
說明:可選擇直接給到背包或者掉落到世界
-
- 獲得所有武器
+
+ 4, 22
-
- 獲取武器
-
-說明:設定等級會自動設定突破等級
->20級突破1
->40級突破2
->50級突破3
->60級突破4
->70級突破5
->80級突破6
+
+ 652, 249
-
- 精煉等級
+
+ 4, 22
-
- 數量
-
-
- 等級
+
+ 652, 249
設置所有角色
@@ -315,9 +264,6 @@
設置當前角色
-
- 288, 174
-
設置命座
@@ -327,18 +273,12 @@
鎖定
-
- 288, 11
-
角色屬性
普通攻擊
-
- 288, 113
-
技能等級
@@ -360,8 +300,11 @@
技能等級
-
- 32, 11
+
+ 4, 22
+
+
+ 652, 249
以下參數至少要求 GC v1.3.1
@@ -387,6 +330,12 @@
數量
+
+ 4, 22
+
+
+ 338, 199
+
生成參數
@@ -411,6 +360,12 @@
替換技能
+
+ 4, 22
+
+
+ 338, 199
+
攻擊修改參數
@@ -435,21 +390,48 @@
清空實體
+
+ 338, 191
+
攻擊注入參數
+
+ 346, 221
+
+
+ 274, 163
+
+
+ 4, 22
+
+
+ 280, 199
+
實體列表
+
+ 274, 156
+
√ 記錄
× 刪除
+
+ 3, 159
+
+
+ 280, 191
+
生成記錄本
+
+ 288, 221
+
測試任務
@@ -473,84 +455,33 @@
提示:許多任務需要服務端腳本支持
囙此任務可以接,可以完成,但是不一定可以做
+
+ 4, 22
+
+
+ 652, 249
+
任務
-
- 套裝
+
+ 4, 22
-
- 等級
-
-
- 副詞條
-
-
- 主詞條
-
-
- 星級
+
+ 652, 249
聖遺物
-
- 導出
+
+ 4, 22
-
- 載入
-
-
- 標籤
-
-
- × 刪除
+
+ 652, 249
自定義
-
- 313, 171
-
-
- 商店編輯器
-
-
- 525, 200
-
-
- 掉落物編輯器
-
-
- 6, 92
-
-
- 88, 28
-
-
- 419, 200
-
-
- 文本瀏覽器
-
-
- 313, 200
-
-
- 獎池編輯器
-
-
- 333, 188
-
-
- 51, 21
-
-
- 置頂
-
-
- 6, 112
-
主頁
@@ -578,6 +509,15 @@
- 刪除
+
+ 3, 173
+
+
+ 4, 22
+
+
+ 228, 204
+
發送
@@ -590,7 +530,17 @@
發件人:
+
+ 4, 22
+
+
+ 652, 249
+
郵件
+
+
+ NoControl
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Game/GameCommand.cs b/Source/GrasscutterTools/Game/GameCommand.cs
index ef243ac..287f372 100644
--- a/Source/GrasscutterTools/Game/GameCommand.cs
+++ b/Source/GrasscutterTools/Game/GameCommand.cs
@@ -1,4 +1,7 @@
-/**
+
+using System.Collections.Generic;
+using System.Text;
+/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
@@ -29,5 +32,37 @@ namespace GrasscutterTools.Game
public string Name { get; set; }
public string Command { get; set; }
+
+ ///
+ /// 获取命令记录
+ /// (反序列化)
+ ///
+ /// 命令记录文本(示例:"标签1\n命令1\n标签2\n命令2...")
+ /// 命令列表
+ public static List Parse(string commandsText)
+ {
+ var lines = commandsText.Split('\n');
+ List commands = new List(lines.Length / 2);
+ for (int i = 0; i < lines.Length - 1; i += 2)
+ commands.Add(new GameCommand(lines[i].Trim(), lines[i + 1].Trim()));
+ return commands;
+ }
+
+ ///
+ /// 获取命令记录文本
+ /// (序列化)
+ ///
+ /// 命令列表
+ /// 命令记录文本(示例:"标签1\n命令1\n标签2\n命令2...")
+ public static string ToString(List commands)
+ {
+ StringBuilder builder = new StringBuilder();
+ foreach (var cmd in commands)
+ {
+ builder.AppendLine(cmd.Name);
+ builder.AppendLine(cmd.Command);
+ }
+ return builder.ToString();
+ }
}
}
\ No newline at end of file
diff --git a/Source/GrasscutterTools/GrasscutterTools.csproj b/Source/GrasscutterTools/GrasscutterTools.csproj
index 6d19394..449a70e 100644
--- a/Source/GrasscutterTools/GrasscutterTools.csproj
+++ b/Source/GrasscutterTools/GrasscutterTools.csproj
@@ -160,6 +160,45 @@
+
+ UserControl
+
+
+ UserControl
+
+
+ PageCustomCommands.cs
+
+
+ UserControl
+
+
+ PageGiveArtifact.cs
+
+
+ UserControl
+
+
+ PageGiveWeapon.cs
+
+
+ UserControl
+
+
+ PageHome.cs
+
+
+ UserControl
+
+
+ PageOpenCommand.cs
+
+
+ UserControl
+
+
+ PageSpawn.cs
+
@@ -168,6 +207,7 @@
True
+
@@ -260,6 +300,78 @@
FormTextMapBrowser.cs
+
+ PageCustomCommands.cs
+
+
+ PageCustomCommands.cs
+
+
+ PageCustomCommands.cs
+
+
+ PageCustomCommands.cs
+
+
+ PageGiveArtifact.cs
+
+
+ PageGiveArtifact.cs
+
+
+ PageGiveArtifact.cs
+
+
+ PageGiveArtifact.cs
+
+
+ PageGiveWeapon.cs
+
+
+ PageGiveWeapon.cs
+
+
+ PageGiveWeapon.cs
+
+
+ PageGiveWeapon.cs
+
+
+ PageHome.cs
+
+
+ PageHome.cs
+
+
+ PageHome.cs
+
+
+ PageHome.cs
+
+
+ PageOpenCommand.cs
+
+
+ PageOpenCommand.cs
+
+
+ PageOpenCommand.cs
+
+
+ PageOpenCommand.cs
+
+
+ PageSpawn.cs
+
+
+ PageSpawn.cs
+
+
+ PageSpawn.cs
+
+
+ PageSpawn.cs
+
ResXFileCodeGenerator
Resources.zh-TW.Designer.cs
diff --git a/Source/GrasscutterTools/MultiLanguage.cs b/Source/GrasscutterTools/MultiLanguage.cs
index 49ca45e..4a1fb5f 100644
--- a/Source/GrasscutterTools/MultiLanguage.cs
+++ b/Source/GrasscutterTools/MultiLanguage.cs
@@ -44,7 +44,7 @@ namespace GrasscutterTools
///
/// 加载语言的窗口
/// 窗口的类型
- public static void LoadLanguage(Form form, Type formType)
+ public static void LoadLanguage(Control form, Type formType)
{
if (form != null)
{
@@ -77,8 +77,15 @@ namespace GrasscutterTools
foreach (Control c in control.Controls)
{
- resources.ApplyResources(c, c.Name);
- Loading(c, resources);
+ if (c is UserControl uc)
+ {
+ LoadLanguage(uc, uc.GetType());
+ }
+ else
+ {
+ resources.ApplyResources(c, c.Name);
+ Loading(c, resources);
+ }
}
}
diff --git a/Source/GrasscutterTools/Pages/BasePage.cs b/Source/GrasscutterTools/Pages/BasePage.cs
new file mode 100644
index 0000000..681df51
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/BasePage.cs
@@ -0,0 +1,68 @@
+using System;
+using System.Drawing;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using GrasscutterTools.Game;
+using GrasscutterTools.Utils;
+
+namespace GrasscutterTools.Pages
+{
+ internal class BasePage : UserControl
+ {
+ public BasePage()
+ {
+ Font = new Font("Microsoft YaHei UI", 9, GraphicsUnit.Point);
+ //Size = new Size(652, 245);
+ Size = new Size(646, 239);
+ BackColor = Color.FromArgb(0xF9, 0xF9, 0xF9);
+ Margin = new Padding(0);
+ }
+
+ #region - 命令相关 -
+
+ protected static CommandVersion CommandVersion => Common.CommandVersion;
+
+ public delegate void SetCommandHandler(string command, string args = "");
+
+ ///
+ /// 设置命令
+ ///
+ /// 命令
+ /// 参数
+ public SetCommandHandler SetCommand { get; set; }
+
+ public delegate Task RunCommandsHandler(string[] commands);
+
+ ///
+ /// 运行命令
+ ///
+ public RunCommandsHandler RunCommands { get; set; }
+
+ ///
+ /// 获取当前输入框命令
+ ///
+ public Func GetCommand { get; set; }
+
+ #endregion
+
+ #region - 生命周期事件 -
+
+ ///
+ /// 加载时触发(修改语言时会再次触发)
+ ///
+ public virtual void OnLoad() { }
+
+ ///
+ /// 进入页面时触发(可触发多次)
+ ///
+ public virtual void OnEnter() { }
+
+ ///
+ /// 关闭时触发(用于保存页面数据)
+ ///
+ public virtual void OnClosed() { }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageCustomCommands.Designer.cs b/Source/GrasscutterTools/Pages/PageCustomCommands.Designer.cs
new file mode 100644
index 0000000..4f701d9
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageCustomCommands.Designer.cs
@@ -0,0 +1,134 @@
+namespace GrasscutterTools.Pages
+{
+ partial class PageCustomCommands
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 组件设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要修改
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PageCustomCommands));
+ this.BtnExportCustomCommands = new System.Windows.Forms.Button();
+ this.BtnLoadCustomCommands = new System.Windows.Forms.Button();
+ this.LblCustomName = new System.Windows.Forms.Label();
+ this.GrpCustomCommands = new System.Windows.Forms.GroupBox();
+ this.LnkResetCustomCommands = new System.Windows.Forms.LinkLabel();
+ this.FLPCustomCommands = new System.Windows.Forms.FlowLayoutPanel();
+ this.BtnRemoveCustomCommand = new System.Windows.Forms.Button();
+ this.BtnSaveCustomCommand = new System.Windows.Forms.Button();
+ this.TxtCustomName = new System.Windows.Forms.TextBox();
+ this.GrpCustomCommands.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // BtnExportCustomCommands
+ //
+ resources.ApplyResources(this.BtnExportCustomCommands, "BtnExportCustomCommands");
+ this.BtnExportCustomCommands.Name = "BtnExportCustomCommands";
+ this.BtnExportCustomCommands.UseVisualStyleBackColor = true;
+ this.BtnExportCustomCommands.Click += new System.EventHandler(this.BtnExport_Click);
+ //
+ // BtnLoadCustomCommands
+ //
+ resources.ApplyResources(this.BtnLoadCustomCommands, "BtnLoadCustomCommands");
+ this.BtnLoadCustomCommands.Name = "BtnLoadCustomCommands";
+ this.BtnLoadCustomCommands.UseVisualStyleBackColor = true;
+ this.BtnLoadCustomCommands.Click += new System.EventHandler(this.BtnImport_Click);
+ //
+ // LblCustomName
+ //
+ resources.ApplyResources(this.LblCustomName, "LblCustomName");
+ this.LblCustomName.Name = "LblCustomName";
+ //
+ // GrpCustomCommands
+ //
+ resources.ApplyResources(this.GrpCustomCommands, "GrpCustomCommands");
+ this.GrpCustomCommands.Controls.Add(this.LnkResetCustomCommands);
+ this.GrpCustomCommands.Controls.Add(this.FLPCustomCommands);
+ this.GrpCustomCommands.Name = "GrpCustomCommands";
+ this.GrpCustomCommands.TabStop = false;
+ //
+ // LnkResetCustomCommands
+ //
+ resources.ApplyResources(this.LnkResetCustomCommands, "LnkResetCustomCommands");
+ this.LnkResetCustomCommands.Name = "LnkResetCustomCommands";
+ this.LnkResetCustomCommands.TabStop = true;
+ this.LnkResetCustomCommands.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkResetCustomCommands_LinkClicked);
+ //
+ // FLPCustomCommands
+ //
+ resources.ApplyResources(this.FLPCustomCommands, "FLPCustomCommands");
+ this.FLPCustomCommands.Name = "FLPCustomCommands";
+ //
+ // BtnRemoveCustomCommand
+ //
+ resources.ApplyResources(this.BtnRemoveCustomCommand, "BtnRemoveCustomCommand");
+ this.BtnRemoveCustomCommand.Name = "BtnRemoveCustomCommand";
+ this.BtnRemoveCustomCommand.UseVisualStyleBackColor = true;
+ this.BtnRemoveCustomCommand.Click += new System.EventHandler(this.BtnRemoveCustomCommand_Click);
+ //
+ // BtnSaveCustomCommand
+ //
+ resources.ApplyResources(this.BtnSaveCustomCommand, "BtnSaveCustomCommand");
+ this.BtnSaveCustomCommand.Name = "BtnSaveCustomCommand";
+ this.BtnSaveCustomCommand.UseVisualStyleBackColor = true;
+ this.BtnSaveCustomCommand.Click += new System.EventHandler(this.BtnSaveCustomCommand_Click);
+ //
+ // TxtCustomName
+ //
+ resources.ApplyResources(this.TxtCustomName, "TxtCustomName");
+ this.TxtCustomName.Name = "TxtCustomName";
+ this.TxtCustomName.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtCustomName_KeyDown);
+ //
+ // PageCustomCommands
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.BtnExportCustomCommands);
+ this.Controls.Add(this.BtnLoadCustomCommands);
+ this.Controls.Add(this.LblCustomName);
+ this.Controls.Add(this.GrpCustomCommands);
+ this.Controls.Add(this.BtnRemoveCustomCommand);
+ this.Controls.Add(this.BtnSaveCustomCommand);
+ this.Controls.Add(this.TxtCustomName);
+ this.Name = "PageCustomCommands";
+ this.GrpCustomCommands.ResumeLayout(false);
+ this.GrpCustomCommands.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button BtnExportCustomCommands;
+ private System.Windows.Forms.Button BtnLoadCustomCommands;
+ private System.Windows.Forms.Label LblCustomName;
+ private System.Windows.Forms.GroupBox GrpCustomCommands;
+ private System.Windows.Forms.LinkLabel LnkResetCustomCommands;
+ private System.Windows.Forms.FlowLayoutPanel FLPCustomCommands;
+ private System.Windows.Forms.Button BtnRemoveCustomCommand;
+ private System.Windows.Forms.Button BtnSaveCustomCommand;
+ private System.Windows.Forms.TextBox TxtCustomName;
+ }
+}
diff --git a/Source/GrasscutterTools/Pages/PageCustomCommands.cs b/Source/GrasscutterTools/Pages/PageCustomCommands.cs
new file mode 100644
index 0000000..60a908e
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageCustomCommands.cs
@@ -0,0 +1,233 @@
+using System;
+using System.IO;
+using System.Text;
+using System.Windows.Forms;
+
+using GrasscutterTools.Properties;
+
+using GrasscutterTools.Utils;
+
+namespace GrasscutterTools.Pages
+{
+ internal partial class PageCustomCommands : BasePage
+ {
+ public PageCustomCommands()
+ {
+ InitializeComponent();
+ }
+
+ ///
+ /// 自定义命令保存位置
+ ///
+ private readonly string CustomCommandsFilePath = Path.Combine(Application.LocalUserAppDataPath, "CustomCommands.txt");
+
+ ///
+ /// 自定义命令是否存在更改
+ ///
+ private bool CustomCommandsChanged;
+
+ ///
+ /// 加载自定义命令
+ ///
+ public override void OnLoad()
+ {
+ if (File.Exists(CustomCommandsFilePath))
+ LoadCustomCommandControls(File.ReadAllText(CustomCommandsFilePath));
+ else
+ LoadCustomCommandControls(Resources.CustomCommands);
+ CustomCommandsChanged = false;
+ }
+
+ ///
+ /// 加载自定义命令控件列表
+ ///
+ /// 命令集(示例:"标签1\n命令1\n标签2\n命令2")
+ private void LoadCustomCommandControls(string commands)
+ {
+ FLPCustomCommands.Controls.Clear();
+ var lines = commands.Split('\n');
+ for (int i = 0; i < lines.Length - 1; i += 2)
+ AddCustomCommand(lines[i].Trim(), lines[i + 1].Trim());
+ }
+
+ ///
+ /// 保存自定义命令
+ ///
+ public override void OnClosed()
+ {
+ if (CustomCommandsChanged)
+ File.WriteAllText(CustomCommandsFilePath, SaveCustomCommandControls());
+ }
+
+ ///
+ /// 保存自定义命令控件列表
+ ///
+ /// 命令集(示例:"标签1\n命令1\n标签2\n命令2")
+ private string SaveCustomCommandControls()
+ {
+ StringBuilder builder = new StringBuilder();
+ foreach (LinkLabel lnk in FLPCustomCommands.Controls)
+ {
+ builder.AppendLine(lnk.Text);
+ builder.AppendLine(lnk.Tag as string);
+ }
+ return builder.ToString();
+ }
+
+ ///
+ /// 自定义命令点击时触发
+ ///
+ private void CustomCommand_Click(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ if (sender is LinkLabel lnk && lnk.Tag is string command)
+ {
+ TxtCustomName.Text = lnk.Text;
+ SetCommand(command);
+ }
+ }
+
+ ///
+ /// 自定义命令文本框回车时触发
+ ///
+ private void TxtCustomName_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter) BtnSaveCustomCommand_Click(BtnSaveCustomCommand, e);
+ }
+
+ ///
+ /// 点击保存自定义命令列表时触发
+ ///
+ ///
+ ///
+ private async void BtnSaveCustomCommand_Click(object sender, EventArgs e)
+ {
+ var name = TxtCustomName.Text.Trim();
+ if (string.IsNullOrEmpty(name))
+ {
+ MessageBox.Show(Resources.CommandTagCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ var command = GetCommand().Trim();
+ if (string.IsNullOrEmpty(command))
+ {
+ MessageBox.Show(Resources.CommandContentCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ foreach (LinkLabel lnk in FLPCustomCommands.Controls)
+ {
+ if (lnk.Text == name)
+ {
+ lnk.Tag = command;
+ CustomCommandsChanged = true;
+ await UIUtil.ButtonComplete(BtnSaveCustomCommand);
+ return;
+ }
+ }
+
+ CustomCommandsChanged = true;
+ AddCustomCommand(name, command);
+ await UIUtil.ButtonComplete(BtnSaveCustomCommand);
+ }
+
+ ///
+ /// 添加自定义命令
+ ///
+ /// 标签
+ /// 命令
+ private void AddCustomCommand(string name, string command)
+ {
+ var lnk = new LinkLabel
+ {
+ Text = name,
+ Tag = command,
+ AutoSize = true,
+ };
+ lnk.LinkClicked += CustomCommand_Click;
+ FLPCustomCommands.Controls.Add(lnk);
+ }
+
+ ///
+ /// 点击移除自定义命令按钮时触发
+ ///
+ private async void BtnRemoveCustomCommand_Click(object sender, EventArgs e)
+ {
+ if (string.IsNullOrWhiteSpace(TxtCustomName.Text))
+ {
+ MessageBox.Show(Resources.CommandTagCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ var name = TxtCustomName.Text.Trim();
+
+ foreach (LinkLabel lnk in FLPCustomCommands.Controls)
+ {
+ if (lnk.Text == name && MessageBox.Show(Resources.AskConfirmDeletion, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
+ {
+ FLPCustomCommands.Controls.Remove(lnk);
+ CustomCommandsChanged = true;
+ //TxtCustomName.Text = "";
+ //TxtCommand.Text = "";
+ await UIUtil.ButtonComplete(BtnRemoveCustomCommand);
+ return;
+ }
+ }
+
+ MessageBox.Show(Resources.CommandNotFound, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+
+ ///
+ /// 点击导入自定义命令时触发
+ ///
+ private void BtnImport_Click(object sender, EventArgs e)
+ {
+ var dialog = new OpenFileDialog
+ {
+ Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
+ };
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ using (var stream = dialog.OpenFile())
+ using (var reader = new StreamReader(stream))
+ {
+ LoadCustomCommandControls(reader.ReadToEnd());
+ CustomCommandsChanged = true;
+ }
+ }
+ }
+
+ ///
+ /// 点击导出自定义命令时触发
+ ///
+ ///
+ ///
+ private void BtnExport_Click(object sender, EventArgs e)
+ {
+ var dialog = new SaveFileDialog
+ {
+ FileName = "Commands.txt",
+ Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
+ };
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ using (var stream = dialog.OpenFile())
+ using (var writer = new StreamWriter(stream))
+ {
+ writer.Write(SaveCustomCommandControls());
+ }
+ }
+ }
+
+ ///
+ /// 点击重置链接按钮时触发
+ ///
+ private void LnkResetCustomCommands_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ if (MessageBox.Show(Resources.RestoreCustomCommands, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
+ {
+ if (File.Exists(CustomCommandsFilePath))
+ File.Delete(CustomCommandsFilePath);
+ LoadCustomCommandControls(Resources.CustomCommands);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageCustomCommands.en-US.resx b/Source/GrasscutterTools/Pages/PageCustomCommands.en-US.resx
new file mode 100644
index 0000000..3b8d54a
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageCustomCommands.en-US.resx
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ 573, 209
+
+
+ 70, 23
+
+
+ Export
+
+
+ 497, 209
+
+
+ 70, 23
+
+
+ Load
+
+
+ 30, 17
+
+
+ Tag
+
+
+ List
+
+
+ 581, -1
+
+
+ 53, 17
+
+
+ Restore
+
+
+ 421, 209
+
+
+ 70, 23
+
+
+ × Delete
+
+
+ 345, 209
+
+
+ 70, 23
+
+
+ √ Save
+
+
+ 298, 23
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageCustomCommands.resx b/Source/GrasscutterTools/Pages/PageCustomCommands.resx
new file mode 100644
index 0000000..5aba670
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageCustomCommands.resx
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Bottom, Right
+
+
+ NoControl
+
+
+
+ 590, 209
+
+
+ 50, 23
+
+
+
+ 14
+
+
+ 导出
+
+
+ BtnExportCustomCommands
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ Bottom, Right
+
+
+ NoControl
+
+
+ 534, 209
+
+
+ 50, 23
+
+
+ 13
+
+
+ 载入
+
+
+ BtnLoadCustomCommands
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 1
+
+
+ Bottom, Left
+
+
+ True
+
+
+ NoControl
+
+
+ 3, 212
+
+
+ 32, 17
+
+
+ 9
+
+
+ 标签
+
+
+ LblCustomName
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ Top, Bottom, Left, Right
+
+
+ Top, Right
+
+
+ True
+
+
+ NoControl
+
+
+ 602, -1
+
+
+ 32, 17
+
+
+ 8
+
+
+ 重置
+
+
+ LnkResetCustomCommands
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpCustomCommands
+
+
+ 0
+
+
+ True
+
+
+ Fill
+
+
+ 3, 19
+
+
+ 634, 174
+
+
+ 0
+
+
+ FLPCustomCommands
+
+
+ System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpCustomCommands
+
+
+ 1
+
+
+ 3, 7
+
+
+ 640, 196
+
+
+ 8
+
+
+ 列表
+
+
+ GrpCustomCommands
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ Bottom, Right
+
+
+ NoControl
+
+
+ 468, 209
+
+
+ 60, 23
+
+
+ 12
+
+
+ × 删除
+
+
+ BtnRemoveCustomCommand
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 4
+
+
+ Bottom, Right
+
+
+ NoControl
+
+
+ 402, 209
+
+
+ 60, 23
+
+
+ 11
+
+
+ √ 保存
+
+
+ BtnSaveCustomCommand
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 5
+
+
+ Bottom, Left, Right
+
+
+ 41, 209
+
+
+ 355, 23
+
+
+ 10
+
+
+ TxtCustomName
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 6
+
+
+ True
+
+
+ 7, 17
+
+
+ PageCustomCommands
+
+
+ GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.7.4.0, Culture=neutral, PublicKeyToken=de2b1c089621e923
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageCustomCommands.ru-RU.resx b/Source/GrasscutterTools/Pages/PageCustomCommands.ru-RU.resx
new file mode 100644
index 0000000..a9f6ba0
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageCustomCommands.ru-RU.resx
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ 545, 209
+
+
+ 95, 23
+
+
+ Экспорт
+
+
+ 444, 209
+
+
+ 95, 23
+
+
+ Загрузить
+
+
+ 34, 17
+
+
+ Имя
+
+
+ Список
+
+
+ 568, -1
+
+
+ 66, 17
+
+
+ Сбросить
+
+
+ 343, 209
+
+
+ 95, 23
+
+
+ x Удалить
+
+
+ 242, 209
+
+
+ 95, 23
+
+
+ √ Сохранить
+
+
+ 195, 23
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageCustomCommands.zh-TW.resx b/Source/GrasscutterTools/Pages/PageCustomCommands.zh-TW.resx
new file mode 100644
index 0000000..8721981
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageCustomCommands.zh-TW.resx
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 導出
+
+
+ 載入
+
+
+ 標籤
+
+
+ × 刪除
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageGiveArtifact.Designer.cs b/Source/GrasscutterTools/Pages/PageGiveArtifact.Designer.cs
new file mode 100644
index 0000000..c91cafe
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveArtifact.Designer.cs
@@ -0,0 +1,279 @@
+namespace GrasscutterTools.Pages
+{
+ partial class PageGiveArtifact
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 组件设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要修改
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PageGiveArtifact));
+ this.LnkCharacterBuilder = new System.Windows.Forms.LinkLabel();
+ this.LblArtifactLevelTip = new System.Windows.Forms.Label();
+ this.BtnAddSubAttr = new System.Windows.Forms.Button();
+ this.LblArtifactName = new System.Windows.Forms.Label();
+ this.LblArtifactPart = new System.Windows.Forms.Label();
+ this.CmbArtifactPart = new System.Windows.Forms.ComboBox();
+ this.CmbArtifactSet = new System.Windows.Forms.ComboBox();
+ this.LblArtifactSet = new System.Windows.Forms.Label();
+ this.NUDSubAttributionTimes = new System.Windows.Forms.NumericUpDown();
+ this.CmbSubAttributionValue = new System.Windows.Forms.ComboBox();
+ this.CmbSubAttribution = new System.Windows.Forms.ComboBox();
+ this.LblClearSubAttrCheckedList = new System.Windows.Forms.Label();
+ this.ListSubAttributionChecked = new System.Windows.Forms.ListBox();
+ this.LblArtifactLevel = new System.Windows.Forms.Label();
+ this.LblSubAttribution = new System.Windows.Forms.Label();
+ this.CmbMainAttribution = new System.Windows.Forms.ComboBox();
+ this.LblMainAttribution = new System.Windows.Forms.Label();
+ this.NUDArtifactLevel = new System.Windows.Forms.NumericUpDown();
+ this.LblArtifactStars = new System.Windows.Forms.Label();
+ this.NUDArtifactStars = new System.Windows.Forms.NumericUpDown();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDSubAttributionTimes)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDArtifactLevel)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDArtifactStars)).BeginInit();
+ this.SuspendLayout();
+ //
+ // LnkCharacterBuilder
+ //
+ resources.ApplyResources(this.LnkCharacterBuilder, "LnkCharacterBuilder");
+ this.LnkCharacterBuilder.Name = "LnkCharacterBuilder";
+ this.LnkCharacterBuilder.TabStop = true;
+ this.LnkCharacterBuilder.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkCharacterBuilder_LinkClicked);
+ //
+ // LblArtifactLevelTip
+ //
+ resources.ApplyResources(this.LblArtifactLevelTip, "LblArtifactLevelTip");
+ this.LblArtifactLevelTip.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+ this.LblArtifactLevelTip.Name = "LblArtifactLevelTip";
+ //
+ // BtnAddSubAttr
+ //
+ resources.ApplyResources(this.BtnAddSubAttr, "BtnAddSubAttr");
+ this.BtnAddSubAttr.Name = "BtnAddSubAttr";
+ this.BtnAddSubAttr.UseVisualStyleBackColor = true;
+ this.BtnAddSubAttr.Click += new System.EventHandler(this.BtnAddSubAttr_Click);
+ //
+ // LblArtifactName
+ //
+ resources.ApplyResources(this.LblArtifactName, "LblArtifactName");
+ this.LblArtifactName.Name = "LblArtifactName";
+ //
+ // LblArtifactPart
+ //
+ resources.ApplyResources(this.LblArtifactPart, "LblArtifactPart");
+ this.LblArtifactPart.Name = "LblArtifactPart";
+ //
+ // CmbArtifactPart
+ //
+ resources.ApplyResources(this.CmbArtifactPart, "CmbArtifactPart");
+ this.CmbArtifactPart.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CmbArtifactPart.DropDownWidth = 125;
+ this.CmbArtifactPart.FormattingEnabled = true;
+ this.CmbArtifactPart.Name = "CmbArtifactPart";
+ this.CmbArtifactPart.SelectedIndexChanged += new System.EventHandler(this.CmbArtifactPart_SelectedIndexChanged);
+ //
+ // CmbArtifactSet
+ //
+ resources.ApplyResources(this.CmbArtifactSet, "CmbArtifactSet");
+ this.CmbArtifactSet.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
+ this.CmbArtifactSet.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
+ this.CmbArtifactSet.FormattingEnabled = true;
+ this.CmbArtifactSet.Name = "CmbArtifactSet";
+ this.CmbArtifactSet.SelectedIndexChanged += new System.EventHandler(this.CmbArtifactSet_SelectedIndexChanged);
+ //
+ // LblArtifactSet
+ //
+ resources.ApplyResources(this.LblArtifactSet, "LblArtifactSet");
+ this.LblArtifactSet.Name = "LblArtifactSet";
+ //
+ // NUDSubAttributionTimes
+ //
+ resources.ApplyResources(this.NUDSubAttributionTimes, "NUDSubAttributionTimes");
+ this.NUDSubAttributionTimes.Maximum = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ this.NUDSubAttributionTimes.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NUDSubAttributionTimes.Name = "NUDSubAttributionTimes";
+ this.NUDSubAttributionTimes.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // CmbSubAttributionValue
+ //
+ resources.ApplyResources(this.CmbSubAttributionValue, "CmbSubAttributionValue");
+ this.CmbSubAttributionValue.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CmbSubAttributionValue.FormattingEnabled = true;
+ this.CmbSubAttributionValue.Name = "CmbSubAttributionValue";
+ //
+ // CmbSubAttribution
+ //
+ resources.ApplyResources(this.CmbSubAttribution, "CmbSubAttribution");
+ this.CmbSubAttribution.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CmbSubAttribution.FormattingEnabled = true;
+ this.CmbSubAttribution.Name = "CmbSubAttribution";
+ this.CmbSubAttribution.SelectedIndexChanged += new System.EventHandler(this.CmbSubAttribution_SelectedIndexChanged);
+ //
+ // LblClearSubAttrCheckedList
+ //
+ resources.ApplyResources(this.LblClearSubAttrCheckedList, "LblClearSubAttrCheckedList");
+ this.LblClearSubAttrCheckedList.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.LblClearSubAttrCheckedList.Name = "LblClearSubAttrCheckedList";
+ this.LblClearSubAttrCheckedList.Click += new System.EventHandler(this.LblClearSubAttrCheckedList_Click);
+ //
+ // ListSubAttributionChecked
+ //
+ resources.ApplyResources(this.ListSubAttributionChecked, "ListSubAttributionChecked");
+ this.ListSubAttributionChecked.FormattingEnabled = true;
+ this.ListSubAttributionChecked.Name = "ListSubAttributionChecked";
+ this.ListSubAttributionChecked.SelectedIndexChanged += new System.EventHandler(this.ListSubAttributionChecked_SelectedIndexChanged);
+ //
+ // LblArtifactLevel
+ //
+ resources.ApplyResources(this.LblArtifactLevel, "LblArtifactLevel");
+ this.LblArtifactLevel.Name = "LblArtifactLevel";
+ //
+ // LblSubAttribution
+ //
+ resources.ApplyResources(this.LblSubAttribution, "LblSubAttribution");
+ this.LblSubAttribution.Name = "LblSubAttribution";
+ //
+ // CmbMainAttribution
+ //
+ resources.ApplyResources(this.CmbMainAttribution, "CmbMainAttribution");
+ this.CmbMainAttribution.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CmbMainAttribution.FormattingEnabled = true;
+ this.CmbMainAttribution.Name = "CmbMainAttribution";
+ //
+ // LblMainAttribution
+ //
+ resources.ApplyResources(this.LblMainAttribution, "LblMainAttribution");
+ this.LblMainAttribution.Name = "LblMainAttribution";
+ //
+ // NUDArtifactLevel
+ //
+ resources.ApplyResources(this.NUDArtifactLevel, "NUDArtifactLevel");
+ this.NUDArtifactLevel.Maximum = new decimal(new int[] {
+ 20,
+ 0,
+ 0,
+ 0});
+ this.NUDArtifactLevel.Name = "NUDArtifactLevel";
+ this.NUDArtifactLevel.Value = new decimal(new int[] {
+ 20,
+ 0,
+ 0,
+ 0});
+ this.NUDArtifactLevel.ValueChanged += new System.EventHandler(this.ArtifactInputChanged);
+ //
+ // LblArtifactStars
+ //
+ resources.ApplyResources(this.LblArtifactStars, "LblArtifactStars");
+ this.LblArtifactStars.Name = "LblArtifactStars";
+ //
+ // NUDArtifactStars
+ //
+ resources.ApplyResources(this.NUDArtifactStars, "NUDArtifactStars");
+ this.NUDArtifactStars.Maximum = new decimal(new int[] {
+ 5,
+ 0,
+ 0,
+ 0});
+ this.NUDArtifactStars.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NUDArtifactStars.Name = "NUDArtifactStars";
+ this.NUDArtifactStars.Value = new decimal(new int[] {
+ 5,
+ 0,
+ 0,
+ 0});
+ this.NUDArtifactStars.ValueChanged += new System.EventHandler(this.ArtifactInputChanged);
+ //
+ // PageGiveArtifact
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.LnkCharacterBuilder);
+ this.Controls.Add(this.LblArtifactLevelTip);
+ this.Controls.Add(this.BtnAddSubAttr);
+ this.Controls.Add(this.LblArtifactName);
+ this.Controls.Add(this.LblArtifactPart);
+ this.Controls.Add(this.CmbArtifactPart);
+ this.Controls.Add(this.CmbArtifactSet);
+ this.Controls.Add(this.LblArtifactSet);
+ this.Controls.Add(this.NUDSubAttributionTimes);
+ this.Controls.Add(this.CmbSubAttributionValue);
+ this.Controls.Add(this.CmbSubAttribution);
+ this.Controls.Add(this.LblClearSubAttrCheckedList);
+ this.Controls.Add(this.ListSubAttributionChecked);
+ this.Controls.Add(this.LblArtifactLevel);
+ this.Controls.Add(this.LblSubAttribution);
+ this.Controls.Add(this.CmbMainAttribution);
+ this.Controls.Add(this.LblMainAttribution);
+ this.Controls.Add(this.NUDArtifactLevel);
+ this.Controls.Add(this.LblArtifactStars);
+ this.Controls.Add(this.NUDArtifactStars);
+ this.Name = "PageGiveArtifact";
+ ((System.ComponentModel.ISupportInitialize)(this.NUDSubAttributionTimes)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDArtifactLevel)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDArtifactStars)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.LinkLabel LnkCharacterBuilder;
+ private System.Windows.Forms.Label LblArtifactLevelTip;
+ private System.Windows.Forms.Button BtnAddSubAttr;
+ private System.Windows.Forms.Label LblArtifactName;
+ private System.Windows.Forms.Label LblArtifactPart;
+ private System.Windows.Forms.ComboBox CmbArtifactPart;
+ private System.Windows.Forms.ComboBox CmbArtifactSet;
+ private System.Windows.Forms.Label LblArtifactSet;
+ private System.Windows.Forms.NumericUpDown NUDSubAttributionTimes;
+ private System.Windows.Forms.ComboBox CmbSubAttributionValue;
+ private System.Windows.Forms.ComboBox CmbSubAttribution;
+ private System.Windows.Forms.Label LblClearSubAttrCheckedList;
+ private System.Windows.Forms.ListBox ListSubAttributionChecked;
+ private System.Windows.Forms.Label LblArtifactLevel;
+ private System.Windows.Forms.Label LblSubAttribution;
+ private System.Windows.Forms.ComboBox CmbMainAttribution;
+ private System.Windows.Forms.Label LblMainAttribution;
+ private System.Windows.Forms.NumericUpDown NUDArtifactLevel;
+ private System.Windows.Forms.Label LblArtifactStars;
+ private System.Windows.Forms.NumericUpDown NUDArtifactStars;
+ }
+}
diff --git a/Source/GrasscutterTools/Pages/PageGiveArtifact.cs b/Source/GrasscutterTools/Pages/PageGiveArtifact.cs
new file mode 100644
index 0000000..d52477a
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveArtifact.cs
@@ -0,0 +1,248 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+using GrasscutterTools.Game;
+using GrasscutterTools.Properties;
+using GrasscutterTools.Utils;
+
+namespace GrasscutterTools.Pages
+{
+ internal partial class PageGiveArtifact : BasePage
+ {
+ public PageGiveArtifact()
+ {
+ InitializeComponent();
+ if (DesignMode) return;
+
+ CommandVersion.VersionChanged += (_, _1) => ChangeTPArtifact();
+ }
+
+ ///
+ /// 副词条集
+ ///
+ private Dictionary>> subAttrs;
+
+ ///
+ /// 部位标签集
+ ///
+ private string[] ArtifactPartLabels;
+
+ ///
+ /// 初始化圣遗物列表
+ ///
+ public override void OnLoad()
+ {
+ CmbArtifactSet.Items.Clear();
+ CmbArtifactSet.Items.AddRange(GameData.ArtifactCats.Names);
+ CmbMainAttribution.Items.Clear();
+ CmbMainAttribution.Items.AddRange(GameData.ArtifactMainAttribution.Lines);
+
+ subAttrs = new Dictionary>>();
+ for (int i = 0; i < GameData.ArtifactSubAttribution.Count; i++)
+ {
+ var name = GameData.ArtifactSubAttribution.Names[i];
+ var pi = name.IndexOf('+');
+ var prefix = name.Substring(0, pi);
+ var value = name.Substring(pi);
+ if (!subAttrs.TryGetValue(prefix, out List> list))
+ {
+ list = new List>();
+ subAttrs[prefix] = list;
+ }
+ list.Add(new KeyValuePair(GameData.ArtifactSubAttribution.Ids[i], value));
+ }
+ CmbSubAttribution.Items.Clear();
+ CmbSubAttribution.Items.AddRange(subAttrs.Keys.ToArray());
+
+ ArtifactPartLabels = Resources.ArtifactPartLabels.Split(',');
+
+ ChangeTPArtifact();
+ }
+
+ ///
+ /// 圣遗物套装下拉框选中项改变时触发
+ ///
+ private void CmbArtifactSet_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (CmbArtifactSet.SelectedIndex < 0)
+ return;
+ var setId = GameData.ArtifactCats.Ids[CmbArtifactSet.SelectedIndex];
+ var beginIndex = Array.FindIndex(GameData.Artifacts.Ids, id => id / 1000 == setId);
+ var endIndex = Array.FindLastIndex(GameData.Artifacts.Ids, id => id / 1000 == setId);
+
+ // 限制星级输入范围
+ NUDArtifactStars.Minimum = GameData.Artifacts.Ids[beginIndex] / 100 % 10;
+ NUDArtifactStars.Maximum = GameData.Artifacts.Ids[endIndex] / 100 % 10;
+
+ var parts = GameData.Artifacts.Names.Skip(beginIndex).Take(endIndex - beginIndex + 1).Distinct().ToArray();
+ var i = CmbArtifactPart.SelectedIndex;
+ CmbArtifactPart.Items.Clear();
+ CmbArtifactPart.Items.AddRange(parts);
+ if (i < parts.Length) // 重新选中
+ CmbArtifactPart.SelectedIndex = i;
+
+ ArtifactInputChanged(sender, e);
+ }
+
+ ///
+ /// 圣遗物部件选中项改变时触发
+ ///
+ private void CmbArtifactPart_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (CmbArtifactPart.SelectedIndex < 0)
+ {
+ LblArtifactName.Text = "";
+ return;
+ }
+ var name = CmbArtifactPart.SelectedItem as string;
+ var id = GameData.Artifacts.Ids[Array.IndexOf(GameData.Artifacts.Names, name)];
+ var pardIndex = id / 10 % 10 - 1;
+ if (pardIndex < ArtifactPartLabels?.Length)
+ LblArtifactName.Text = ArtifactPartLabels[pardIndex];
+ else
+ LblArtifactName.Text = "";
+ ArtifactInputChanged(sender, e);
+ }
+
+ ///
+ /// 圣遗物页面输入改变时调用
+ ///
+ private void ArtifactInputChanged(object sender, EventArgs e)
+ {
+ // 圣遗物ID五位数,ABCDE,其中AB是圣遗物类型(魔女/水/风套......)
+ // C是星级(5就是五星),D是圣遗物部位,E是初始词条数量
+ if (CmbArtifactSet.SelectedIndex < 0 || CmbArtifactPart.SelectedIndex < 0)
+ return;
+ //var setId = GameData.ArtifactCats.Ids[CmbArtifactSet.SelectedIndex];
+ //var part = CmbArtifactPart.SelectedIndex+1;
+ //var index = Array.FindLastIndex(
+ // GameData.Artifacts.Ids,
+ // it => it / 1000 == setId // 套装ID
+ // //&& it / 100 % 10 == NUDArtifactStars.Value // 星级
+ // && it / 10 % 10 == part // 部位
+ // );
+ var name = CmbArtifactPart.SelectedItem as string;
+ var id = GameData.Artifacts.Ids[Array.LastIndexOf(GameData.Artifacts.Names, name)];
+ id = id / 1000 * 1000 + (int)NUDArtifactStars.Value * 100 + id % 100;
+ if (CmbMainAttribution.SelectedIndex < 0)
+ {
+ if (CommandVersion.Check(CommandVersion.V1_2_2))
+ SetCommand("/give", $"{id} lv{NUDArtifactLevel.Value}");
+ else
+ SetCommand("/giveart", $"{id} {NUDArtifactLevel.Value}");
+ }
+ else
+ {
+ var t = CmbMainAttribution.SelectedItem as string;
+ var mainAttr = ItemMap.ToId(t);
+
+ var subAttrs = "";
+ if (ListSubAttributionChecked.Items.Count > 0)
+ {
+ var subAttrDir = new Dictionary(ListSubAttributionChecked.Items.Count);
+ foreach (string item in ListSubAttributionChecked.Items)
+ {
+ var subId = ItemMap.ToId(item);
+ var times = int.Parse(item.Substring(item.LastIndexOf('x') + 1));
+ if (subAttrDir.ContainsKey(subId))
+ subAttrDir[subId] += times;
+ else
+ subAttrDir[subId] = times;
+ }
+
+ foreach (var kv in subAttrDir)
+ {
+ if (kv.Value > 1)
+ subAttrs += $"{kv.Key},{kv.Value} ";
+ else
+ subAttrs += $"{kv.Key} ";
+ }
+ }
+ if (CommandVersion.Check(CommandVersion.V1_2_2))
+ SetCommand("/give", $"{id} lv{NUDArtifactLevel.Value} {mainAttr} {subAttrs}");
+ else
+ SetCommand("/giveart", $"{id} {mainAttr} {subAttrs}{NUDArtifactLevel.Value}");
+ }
+ }
+
+ ///
+ /// 副词条下拉框选中项改变时触发
+ ///
+ private void CmbSubAttribution_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ CmbSubAttributionValue.Items.Clear();
+ if (CmbSubAttribution.SelectedIndex >= 0)
+ {
+ CmbSubAttributionValue.Items.AddRange(subAttrs[CmbSubAttribution.SelectedItem as string].Select(kv => kv.Value).ToArray());
+ CmbSubAttributionValue.SelectedIndex = 0;
+ }
+ }
+
+ ///
+ /// 点击添加副词条按钮时触发
+ ///
+ private void BtnAddSubAttr_Click(object sender, EventArgs e)
+ {
+ if (CmbSubAttribution.SelectedIndex >= 0 && CmbSubAttributionValue.SelectedIndex >= 0)
+ {
+ var name = CmbSubAttribution.SelectedItem as string;
+ var kv = subAttrs[name][CmbSubAttributionValue.SelectedIndex];
+ ListSubAttributionChecked.Items.Add($"{kv.Key}:{name}{kv.Value} x{NUDSubAttributionTimes.Value}");
+ ArtifactInputChanged(null, EventArgs.Empty);
+ }
+ }
+
+ ///
+ /// 已添加的副词条列表选中项改变时触发
+ ///
+ private void ListSubAttributionChecked_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (ListSubAttributionChecked.SelectedIndex >= 0)
+ {
+ ListSubAttributionChecked.Items.RemoveAt(ListSubAttributionChecked.SelectedIndex);
+ ListSubAttributionChecked.ClearSelected();
+ ArtifactInputChanged(null, EventArgs.Empty);
+ }
+ }
+
+ ///
+ /// 清除词条链接标签点击时触发
+ ///
+ ///
+ ///
+ private void LblClearSubAttrCheckedList_Click(object sender, EventArgs e)
+ {
+ CmbMainAttribution.SelectedIndex = -1;
+ ListSubAttributionChecked.Items.Clear();
+ ArtifactInputChanged(null, EventArgs.Empty);
+ }
+
+ ///
+ /// 改变圣遗物等级输入范围(旧版本范围是1-21)
+ ///
+ private void ChangeTPArtifact()
+ {
+ if (CommandVersion.Check(CommandVersion.V1_2_2))
+ {
+ NUDArtifactLevel.Minimum = 0;
+ NUDArtifactLevel.Maximum = 20;
+ }
+ else
+ {
+ NUDArtifactLevel.Minimum = 1;
+ NUDArtifactLevel.Maximum = 21;
+ }
+ LblArtifactLevelTip.Text = $"[{NUDArtifactLevel.Minimum}-{NUDArtifactLevel.Maximum}]";
+ }
+
+ ///
+ /// 点击CharacterBuilder链接标签时触发
+ ///
+ private void LnkCharacterBuilder_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ UIUtil.OpenURL("https://github.com/Penelopeep/CharacterBuilder");
+ }
+ }
+}
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageGiveArtifact.en-US.resx b/Source/GrasscutterTools/Pages/PageGiveArtifact.en-US.resx
new file mode 100644
index 0000000..7e6e533
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveArtifact.en-US.resx
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ + Add
+
+
+
+ 294, 7
+
+
+ 31, 17
+
+
+ Part
+
+
+ 107, 7
+
+
+ 49, 17
+
+
+ Artifact
+
+
+ 50, 17
+
+
+ X Clear
+
+
+ 119, 37
+
+
+ 37, 17
+
+
+ Level
+
+
+ 100, 97
+
+
+ 56, 17
+
+
+ Sub Stat
+
+
+ 93, 67
+
+
+ 63, 17
+
+
+ Main Stat
+
+
+ 343, 37
+
+
+ 37, 17
+
+
+ Stars
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageGiveArtifact.resx b/Source/GrasscutterTools/Pages/PageGiveArtifact.resx
new file mode 100644
index 0000000..f3ea221
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveArtifact.resx
@@ -0,0 +1,711 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Bottom, Right
+
+
+
+ True
+
+
+ NoControl
+
+
+
+ 534, 214
+
+
+ 109, 17
+
+
+ 18
+
+
+ Character Builder
+
+
+ LnkCharacterBuilder
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ Top
+
+
+ True
+
+
+ NoControl
+
+
+ 218, 37
+
+
+ 42, 17
+
+
+ 6
+
+
+ [0-20]
+
+
+ LblArtifactLevelTip
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 1
+
+
+ Top
+
+
+ NoControl
+
+
+ 460, 125
+
+
+ 75, 23
+
+
+ 16
+
+
+ + 添加
+
+
+ BtnAddSubAttr
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ Top
+
+
+ True
+
+
+ NoControl
+
+
+ 457, 7
+
+
+ 0, 17
+
+
+ 24
+
+
+ LblArtifactName
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ Top
+
+
+ True
+
+
+ NoControl
+
+
+ 293, 7
+
+
+ 32, 17
+
+
+ 2
+
+
+ 部位
+
+
+ LblArtifactPart
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 4
+
+
+ Top
+
+
+ 331, 4
+
+
+ 120, 25
+
+
+ 3
+
+
+ CmbArtifactPart
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 5
+
+
+ Top
+
+
+ 162, 4
+
+
+ 125, 25
+
+
+ 1
+
+
+ CmbArtifactSet
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 6
+
+
+ Top
+
+
+ True
+
+
+ NoControl
+
+
+ 124, 7
+
+
+ 32, 17
+
+
+ 0
+
+
+ 套装
+
+
+ LblArtifactSet
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 7
+
+
+ Top
+
+
+ 460, 96
+
+
+ 51, 23
+
+
+ 14
+
+
+ NUDSubAttributionTimes
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 8
+
+
+ Top
+
+
+ 331, 94
+
+
+ 120, 25
+
+
+ 13
+
+
+ CmbSubAttributionValue
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 9
+
+
+ Top
+
+
+ 162, 95
+
+
+ 163, 25
+
+
+ 12
+
+
+ CmbSubAttribution
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 10
+
+
+ Top
+
+
+ True
+
+
+ NoControl
+
+
+ 457, 214
+
+
+ 44, 17
+
+
+ 17
+
+
+ X 清空
+
+
+ LblClearSubAttrCheckedList
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 11
+
+
+ Top, Bottom
+
+
+ 17
+
+
+ 162, 125
+
+
+ 289, 106
+
+
+ 15
+
+
+ ListSubAttributionChecked
+
+
+ System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 12
+
+
+ Top
+
+
+ True
+
+
+ NoControl
+
+
+ 124, 37
+
+
+ 32, 17
+
+
+ 4
+
+
+ 等级
+
+
+ LblArtifactLevel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 13
+
+
+ Top
+
+
+ True
+
+
+ NoControl
+
+
+ 112, 98
+
+
+ 44, 17
+
+
+ 11
+
+
+ 副词条
+
+
+ LblSubAttribution
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 14
+
+
+ Top
+
+
+ 162, 64
+
+
+ 289, 25
+
+
+ 10
+
+
+ CmbMainAttribution
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 15
+
+
+ Top
+
+
+ True
+
+
+ NoControl
+
+
+ 112, 67
+
+
+ 44, 17
+
+
+ 9
+
+
+ 主词条
+
+
+ LblMainAttribution
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 16
+
+
+ Top
+
+
+ 162, 35
+
+
+ 50, 23
+
+
+ 5
+
+
+ NUDArtifactLevel
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 17
+
+
+ Top
+
+
+ True
+
+
+ NoControl
+
+
+ 348, 37
+
+
+ 32, 17
+
+
+ 7
+
+
+ 星级
+
+
+ LblArtifactStars
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 18
+
+
+ Top
+
+
+ 386, 35
+
+
+ 65, 23
+
+
+ 8
+
+
+ NUDArtifactStars
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 19
+
+
+ True
+
+
+ 7, 17
+
+
+ PageGiveArtifact
+
+
+ GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.7.4.0, Culture=neutral, PublicKeyToken=de2b1c089621e923
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageGiveArtifact.ru-RU.resx b/Source/GrasscutterTools/Pages/PageGiveArtifact.ru-RU.resx
new file mode 100644
index 0000000..db696ac
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveArtifact.ru-RU.resx
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ 100, 23
+
+
+ + Добавить
+
+
+ 283, 7
+
+
+ 42, 17
+
+
+ Часть
+
+
+ 115, 25
+
+
+ 92, 7
+
+
+ 64, 17
+
+
+ Артефакт
+
+
+ 76, 17
+
+
+ X Очистить
+
+
+ 96, 37
+
+
+ 60, 17
+
+
+ Уровень
+
+
+ 91, 97
+
+
+ 65, 17
+
+
+ Всп. Стат.
+
+
+ 74, 67
+
+
+ 82, 17
+
+
+ Основ. Стат.
+
+
+ 329, 37
+
+
+ 51, 17
+
+
+ Звезды
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageGiveArtifact.zh-TW.resx b/Source/GrasscutterTools/Pages/PageGiveArtifact.zh-TW.resx
new file mode 100644
index 0000000..c79f817
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveArtifact.zh-TW.resx
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 套裝
+
+
+ 等級
+
+
+ 副詞條
+
+
+ 主詞條
+
+
+ 星級
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageGiveWeapon.Designer.cs b/Source/GrasscutterTools/Pages/PageGiveWeapon.Designer.cs
new file mode 100644
index 0000000..ce51c4f
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveWeapon.Designer.cs
@@ -0,0 +1,181 @@
+namespace GrasscutterTools.Pages
+{
+ partial class PageGiveWeapon
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 组件设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要修改
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PageGiveWeapon));
+ this.BtnGiveAllWeapons = new System.Windows.Forms.Button();
+ this.TxtWeaponFilter = new System.Windows.Forms.TextBox();
+ this.LblWeaponDescription = new System.Windows.Forms.Label();
+ this.LblWeaponRefinement = new System.Windows.Forms.Label();
+ this.LblWeaponAmount = new System.Windows.Forms.Label();
+ this.LblWeaponLevel = new System.Windows.Forms.Label();
+ this.NUDWeaponRefinement = new System.Windows.Forms.NumericUpDown();
+ this.NUDWeaponAmout = new System.Windows.Forms.NumericUpDown();
+ this.NUDWeaponLevel = new System.Windows.Forms.NumericUpDown();
+ this.ListWeapons = new System.Windows.Forms.ListBox();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponRefinement)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponAmout)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponLevel)).BeginInit();
+ this.SuspendLayout();
+ //
+ // BtnGiveAllWeapons
+ //
+ resources.ApplyResources(this.BtnGiveAllWeapons, "BtnGiveAllWeapons");
+ this.BtnGiveAllWeapons.Name = "BtnGiveAllWeapons";
+ this.BtnGiveAllWeapons.UseVisualStyleBackColor = true;
+ this.BtnGiveAllWeapons.Click += new System.EventHandler(this.BtnGiveAllWeapons_Click);
+ //
+ // TxtWeaponFilter
+ //
+ resources.ApplyResources(this.TxtWeaponFilter, "TxtWeaponFilter");
+ this.TxtWeaponFilter.Name = "TxtWeaponFilter";
+ this.TxtWeaponFilter.TextChanged += new System.EventHandler(this.TxtWeaponFilter_TextChanged);
+ //
+ // LblWeaponDescription
+ //
+ resources.ApplyResources(this.LblWeaponDescription, "LblWeaponDescription");
+ this.LblWeaponDescription.Name = "LblWeaponDescription";
+ //
+ // LblWeaponRefinement
+ //
+ resources.ApplyResources(this.LblWeaponRefinement, "LblWeaponRefinement");
+ this.LblWeaponRefinement.Name = "LblWeaponRefinement";
+ //
+ // LblWeaponAmount
+ //
+ resources.ApplyResources(this.LblWeaponAmount, "LblWeaponAmount");
+ this.LblWeaponAmount.Name = "LblWeaponAmount";
+ //
+ // LblWeaponLevel
+ //
+ resources.ApplyResources(this.LblWeaponLevel, "LblWeaponLevel");
+ this.LblWeaponLevel.Name = "LblWeaponLevel";
+ //
+ // NUDWeaponRefinement
+ //
+ resources.ApplyResources(this.NUDWeaponRefinement, "NUDWeaponRefinement");
+ this.NUDWeaponRefinement.Maximum = new decimal(new int[] {
+ 5,
+ 0,
+ 0,
+ 0});
+ this.NUDWeaponRefinement.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NUDWeaponRefinement.Name = "NUDWeaponRefinement";
+ this.NUDWeaponRefinement.Value = new decimal(new int[] {
+ 5,
+ 0,
+ 0,
+ 0});
+ this.NUDWeaponRefinement.ValueChanged += new System.EventHandler(this.WeaponValueChanged);
+ //
+ // NUDWeaponAmout
+ //
+ resources.ApplyResources(this.NUDWeaponAmout, "NUDWeaponAmout");
+ this.NUDWeaponAmout.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NUDWeaponAmout.Name = "NUDWeaponAmout";
+ this.NUDWeaponAmout.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NUDWeaponAmout.ValueChanged += new System.EventHandler(this.WeaponValueChanged);
+ //
+ // NUDWeaponLevel
+ //
+ resources.ApplyResources(this.NUDWeaponLevel, "NUDWeaponLevel");
+ this.NUDWeaponLevel.Maximum = new decimal(new int[] {
+ 90,
+ 0,
+ 0,
+ 0});
+ this.NUDWeaponLevel.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NUDWeaponLevel.Name = "NUDWeaponLevel";
+ this.NUDWeaponLevel.Value = new decimal(new int[] {
+ 90,
+ 0,
+ 0,
+ 0});
+ this.NUDWeaponLevel.ValueChanged += new System.EventHandler(this.WeaponValueChanged);
+ //
+ // ListWeapons
+ //
+ resources.ApplyResources(this.ListWeapons, "ListWeapons");
+ this.ListWeapons.FormattingEnabled = true;
+ this.ListWeapons.Name = "ListWeapons";
+ this.ListWeapons.SelectedIndexChanged += new System.EventHandler(this.WeaponValueChanged);
+ //
+ // PageGiveWeapon
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.ListWeapons);
+ this.Controls.Add(this.TxtWeaponFilter);
+ this.Controls.Add(this.NUDWeaponRefinement);
+ this.Controls.Add(this.LblWeaponRefinement);
+ this.Controls.Add(this.NUDWeaponLevel);
+ this.Controls.Add(this.LblWeaponLevel);
+ this.Controls.Add(this.NUDWeaponAmout);
+ this.Controls.Add(this.LblWeaponAmount);
+ this.Controls.Add(this.BtnGiveAllWeapons);
+ this.Controls.Add(this.LblWeaponDescription);
+ this.Name = "PageGiveWeapon";
+ ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponRefinement)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponAmout)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDWeaponLevel)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button BtnGiveAllWeapons;
+ private System.Windows.Forms.TextBox TxtWeaponFilter;
+ private System.Windows.Forms.Label LblWeaponDescription;
+ private System.Windows.Forms.Label LblWeaponRefinement;
+ private System.Windows.Forms.Label LblWeaponAmount;
+ private System.Windows.Forms.Label LblWeaponLevel;
+ private System.Windows.Forms.NumericUpDown NUDWeaponRefinement;
+ private System.Windows.Forms.NumericUpDown NUDWeaponAmout;
+ private System.Windows.Forms.NumericUpDown NUDWeaponLevel;
+ private System.Windows.Forms.ListBox ListWeapons;
+ }
+}
diff --git a/Source/GrasscutterTools/Pages/PageGiveWeapon.cs b/Source/GrasscutterTools/Pages/PageGiveWeapon.cs
new file mode 100644
index 0000000..782c646
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveWeapon.cs
@@ -0,0 +1,64 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using GrasscutterTools.Game;
+using GrasscutterTools.Utils;
+
+namespace GrasscutterTools.Pages
+{
+ internal partial class PageGiveWeapon : BasePage
+ {
+ public PageGiveWeapon()
+ {
+ InitializeComponent();
+ }
+
+
+ protected override void OnLoad(EventArgs e)
+ {
+ base.OnLoad(e);
+ if (DesignMode) return;
+ ListWeapons.Items.Clear();
+ ListWeapons.Items.AddRange(GameData.Weapons.Lines);
+ }
+
+ ///
+ /// 武器列表过滤器文本改变时触发
+ ///
+ private void TxtWeaponFilter_TextChanged(object sender, EventArgs e)
+ {
+ UIUtil.ListBoxFilter(ListWeapons, GameData.Weapons.Lines, TxtWeaponFilter.Text);
+ }
+
+ ///
+ /// 武器页面输入改变时触发
+ ///
+ private void WeaponValueChanged(object sender, EventArgs e)
+ {
+ var name = ListWeapons.SelectedItem as string;
+ if (!string.IsNullOrEmpty(name))
+ {
+ var id = ItemMap.ToId(name);
+ if (CommandVersion.Check(CommandVersion.V1_2_2))
+ SetCommand("/give", $"{id} x{NUDWeaponAmout.Value} lv{NUDWeaponLevel.Value} r{NUDWeaponRefinement.Value}");
+ else
+ SetCommand("/give", $"{id} {NUDWeaponAmout.Value} {NUDWeaponLevel.Value} {NUDWeaponRefinement.Value}");
+ }
+ }
+
+ ///
+ /// 点击获取所有武器按钮时触发
+ ///
+ private void BtnGiveAllWeapons_Click(object sender, EventArgs e)
+ {
+ SetCommand("/give", $"weapons x{NUDWeaponAmout.Value} lv{NUDWeaponLevel.Value} r{NUDWeaponRefinement.Value}");
+ }
+ }
+}
diff --git a/Source/GrasscutterTools/Pages/PageGiveWeapon.en-US.resx b/Source/GrasscutterTools/Pages/PageGiveWeapon.en-US.resx
new file mode 100644
index 0000000..c13343b
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveWeapon.en-US.resx
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Give all Weapons
+
+
+
+ 86, 17
+
+
+ Give Weapon
+
+
+ 220, 216
+
+
+ 73, 17
+
+
+ Refinement
+
+
+ 53, 17
+
+
+ Amount
+
+
+ 121, 216
+
+
+ 37, 17
+
+
+ Level
+
+
+ 299, 214
+
+
+ 65, 214
+
+
+ 164, 214
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageGiveWeapon.resx b/Source/GrasscutterTools/Pages/PageGiveWeapon.resx
new file mode 100644
index 0000000..fc46954
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveWeapon.resx
@@ -0,0 +1,431 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Bottom, Left
+
+
+
+ Microsoft YaHei UI, 10pt
+
+
+ NoControl
+
+
+ 9, 173
+
+
+ 150, 35
+
+
+
+ 1
+
+
+ 获得所有武器
+
+
+ BtnGiveAllWeapons
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 8
+
+
+ Top, Right
+
+
+ 443, 3
+
+
+ 200, 23
+
+
+ 8
+
+
+ TxtWeaponFilter
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 1
+
+
+ Top, Bottom, Left, Right
+
+
+ True
+
+
+ NoControl
+
+
+ 6, 8
+
+
+ 200, 153
+
+
+ 0
+
+
+ 获取武器
+
+说明:设置等级会自动设置突破等级
+>20级 突破1
+>40级 突破2
+>50级 突破3
+>60级 突破4
+>70级 突破5
+>80级 突破6
+
+
+ LblWeaponDescription
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 9
+
+
+ Bottom, Left
+
+
+ True
+
+
+ NoControl
+
+
+ 194, 216
+
+
+ 56, 17
+
+
+ 6
+
+
+ 精炼等级
+
+
+ LblWeaponRefinement
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ Bottom, Left
+
+
+ True
+
+
+ NoControl
+
+
+ 6, 216
+
+
+ 32, 17
+
+
+ 2
+
+
+ 数量
+
+
+ LblWeaponAmount
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 7
+
+
+ Bottom, Left
+
+
+ True
+
+
+ NoControl
+
+
+ 100, 216
+
+
+ 32, 17
+
+
+ 4
+
+
+ 等级
+
+
+ LblWeaponLevel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 5
+
+
+ Bottom, Left
+
+
+ 256, 214
+
+
+ 50, 23
+
+
+ 7
+
+
+ NUDWeaponRefinement
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ Bottom, Left
+
+
+ 44, 214
+
+
+ 50, 23
+
+
+ 3
+
+
+ NUDWeaponAmout
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 6
+
+
+ Bottom, Left
+
+
+ 138, 214
+
+
+ 50, 23
+
+
+ 5
+
+
+ NUDWeaponLevel
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 4
+
+
+ Top, Bottom, Right
+
+
+ 17
+
+
+ 443, 29
+
+
+ 200, 208
+
+
+ 9
+
+
+ ListWeapons
+
+
+ System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ True
+
+
+ 7, 17
+
+
+ PageGiveWeapon
+
+
+ GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.7.4.0, Culture=neutral, PublicKeyToken=de2b1c089621e923
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageGiveWeapon.ru-RU.resx b/Source/GrasscutterTools/Pages/PageGiveWeapon.ru-RU.resx
new file mode 100644
index 0000000..713715a
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveWeapon.ru-RU.resx
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Дать всё оружие
+
+
+
+ 87, 17
+
+
+ Дать оружие
+
+
+ 207, 216
+
+
+ 115, 17
+
+
+ Ур. пробуждения
+
+
+ 51, 17
+
+
+ Кол-во
+
+
+ 119, 216
+
+
+ 26, 17
+
+
+ Ур.
+
+
+ 328, 214
+
+
+ 63, 214
+
+
+ 151, 214
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageGiveWeapon.zh-TW.resx b/Source/GrasscutterTools/Pages/PageGiveWeapon.zh-TW.resx
new file mode 100644
index 0000000..6a68be5
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageGiveWeapon.zh-TW.resx
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 獲得所有武器
+
+
+ 獲取武器
+
+說明:設定等級會自動設定突破等級
+>20級突破1
+>40級突破2
+>50級突破3
+>60級突破4
+>70級突破5
+>80級突破6
+
+
+ 精煉等級
+
+
+ 數量
+
+
+ 等級
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageHome.Designer.cs b/Source/GrasscutterTools/Pages/PageHome.Designer.cs
new file mode 100644
index 0000000..23708e8
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageHome.Designer.cs
@@ -0,0 +1,211 @@
+namespace GrasscutterTools.Pages
+{
+ partial class PageHome
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 组件设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要修改
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PageHome));
+ this.BtnOpenShopEditor = new System.Windows.Forms.Button();
+ this.BtnOpenDropEditor = new System.Windows.Forms.Button();
+ this.LnkNewVersion = new System.Windows.Forms.LinkLabel();
+ this.LblAbout = new System.Windows.Forms.Label();
+ this.BtnOpenTextMap = new System.Windows.Forms.Button();
+ this.BtnOpenGachaBannerEditor = new System.Windows.Forms.Button();
+ this.GrasscutterToolsIcon = new System.Windows.Forms.PictureBox();
+ this.GrpSettings = new System.Windows.Forms.GroupBox();
+ this.LblGCVersion = new System.Windows.Forms.Label();
+ this.CmbGcVersions = new System.Windows.Forms.ComboBox();
+ this.ChkTopMost = new System.Windows.Forms.CheckBox();
+ this.CmbLanguage = new System.Windows.Forms.ComboBox();
+ this.LblLanguage = new System.Windows.Forms.Label();
+ this.NUDUid = new System.Windows.Forms.NumericUpDown();
+ this.ChkIncludeUID = new System.Windows.Forms.CheckBox();
+ this.LblDefaultUid = new System.Windows.Forms.Label();
+ ((System.ComponentModel.ISupportInitialize)(this.GrasscutterToolsIcon)).BeginInit();
+ this.GrpSettings.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDUid)).BeginInit();
+ this.SuspendLayout();
+ //
+ // BtnOpenShopEditor
+ //
+ resources.ApplyResources(this.BtnOpenShopEditor, "BtnOpenShopEditor");
+ this.BtnOpenShopEditor.Name = "BtnOpenShopEditor";
+ this.BtnOpenShopEditor.UseVisualStyleBackColor = true;
+ this.BtnOpenShopEditor.Click += new System.EventHandler(this.BtnOpenShopEditor_Click);
+ //
+ // BtnOpenDropEditor
+ //
+ resources.ApplyResources(this.BtnOpenDropEditor, "BtnOpenDropEditor");
+ this.BtnOpenDropEditor.Name = "BtnOpenDropEditor";
+ this.BtnOpenDropEditor.UseVisualStyleBackColor = true;
+ this.BtnOpenDropEditor.Click += new System.EventHandler(this.BtnOpenDropEditor_Click);
+ //
+ // LnkNewVersion
+ //
+ resources.ApplyResources(this.LnkNewVersion, "LnkNewVersion");
+ this.LnkNewVersion.Name = "LnkNewVersion";
+ this.LnkNewVersion.TabStop = true;
+ this.LnkNewVersion.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkNewVersion_LinkClicked);
+ //
+ // LblAbout
+ //
+ resources.ApplyResources(this.LblAbout, "LblAbout");
+ this.LblAbout.Name = "LblAbout";
+ //
+ // BtnOpenTextMap
+ //
+ resources.ApplyResources(this.BtnOpenTextMap, "BtnOpenTextMap");
+ this.BtnOpenTextMap.Name = "BtnOpenTextMap";
+ this.BtnOpenTextMap.UseVisualStyleBackColor = true;
+ this.BtnOpenTextMap.Click += new System.EventHandler(this.BtnOpenTextMap_Click);
+ //
+ // BtnOpenGachaBannerEditor
+ //
+ resources.ApplyResources(this.BtnOpenGachaBannerEditor, "BtnOpenGachaBannerEditor");
+ this.BtnOpenGachaBannerEditor.Name = "BtnOpenGachaBannerEditor";
+ this.BtnOpenGachaBannerEditor.UseVisualStyleBackColor = true;
+ this.BtnOpenGachaBannerEditor.Click += new System.EventHandler(this.BtnOpenGachaBannerEditor_Click);
+ //
+ // GrasscutterToolsIcon
+ //
+ resources.ApplyResources(this.GrasscutterToolsIcon, "GrasscutterToolsIcon");
+ this.GrasscutterToolsIcon.Image = global::GrasscutterTools.Properties.Resources.ImgIconGrasscutter;
+ this.GrasscutterToolsIcon.Name = "GrasscutterToolsIcon";
+ this.GrasscutterToolsIcon.TabStop = false;
+ //
+ // GrpSettings
+ //
+ resources.ApplyResources(this.GrpSettings, "GrpSettings");
+ this.GrpSettings.Controls.Add(this.LblGCVersion);
+ this.GrpSettings.Controls.Add(this.CmbGcVersions);
+ this.GrpSettings.Controls.Add(this.ChkTopMost);
+ this.GrpSettings.Controls.Add(this.CmbLanguage);
+ this.GrpSettings.Controls.Add(this.LblLanguage);
+ this.GrpSettings.Controls.Add(this.NUDUid);
+ this.GrpSettings.Controls.Add(this.ChkIncludeUID);
+ this.GrpSettings.Controls.Add(this.LblDefaultUid);
+ this.GrpSettings.Name = "GrpSettings";
+ this.GrpSettings.TabStop = false;
+ //
+ // LblGCVersion
+ //
+ resources.ApplyResources(this.LblGCVersion, "LblGCVersion");
+ this.LblGCVersion.Name = "LblGCVersion";
+ //
+ // CmbGcVersions
+ //
+ this.CmbGcVersions.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CmbGcVersions.FormattingEnabled = true;
+ resources.ApplyResources(this.CmbGcVersions, "CmbGcVersions");
+ this.CmbGcVersions.Name = "CmbGcVersions";
+ //
+ // ChkTopMost
+ //
+ resources.ApplyResources(this.ChkTopMost, "ChkTopMost");
+ this.ChkTopMost.Name = "ChkTopMost";
+ this.ChkTopMost.UseVisualStyleBackColor = true;
+ //
+ // CmbLanguage
+ //
+ this.CmbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CmbLanguage.FormattingEnabled = true;
+ resources.ApplyResources(this.CmbLanguage, "CmbLanguage");
+ this.CmbLanguage.Name = "CmbLanguage";
+ //
+ // LblLanguage
+ //
+ resources.ApplyResources(this.LblLanguage, "LblLanguage");
+ this.LblLanguage.Name = "LblLanguage";
+ //
+ // NUDUid
+ //
+ resources.ApplyResources(this.NUDUid, "NUDUid");
+ this.NUDUid.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDUid.Name = "NUDUid";
+ this.NUDUid.Value = new decimal(new int[] {
+ 10001,
+ 0,
+ 0,
+ 0});
+ //
+ // ChkIncludeUID
+ //
+ resources.ApplyResources(this.ChkIncludeUID, "ChkIncludeUID");
+ this.ChkIncludeUID.Name = "ChkIncludeUID";
+ this.ChkIncludeUID.UseVisualStyleBackColor = true;
+ //
+ // LblDefaultUid
+ //
+ resources.ApplyResources(this.LblDefaultUid, "LblDefaultUid");
+ this.LblDefaultUid.Name = "LblDefaultUid";
+ //
+ // PageHome
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.LblAbout);
+ this.Controls.Add(this.BtnOpenTextMap);
+ this.Controls.Add(this.BtnOpenGachaBannerEditor);
+ this.Controls.Add(this.BtnOpenDropEditor);
+ this.Controls.Add(this.BtnOpenShopEditor);
+ this.Controls.Add(this.GrasscutterToolsIcon);
+ this.Controls.Add(this.GrpSettings);
+ this.Controls.Add(this.LnkNewVersion);
+ this.Name = "PageHome";
+ ((System.ComponentModel.ISupportInitialize)(this.GrasscutterToolsIcon)).EndInit();
+ this.GrpSettings.ResumeLayout(false);
+ this.GrpSettings.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDUid)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button BtnOpenShopEditor;
+ private System.Windows.Forms.Button BtnOpenDropEditor;
+ private System.Windows.Forms.LinkLabel LnkNewVersion;
+ private System.Windows.Forms.Label LblAbout;
+ private System.Windows.Forms.Button BtnOpenTextMap;
+ private System.Windows.Forms.Button BtnOpenGachaBannerEditor;
+ private System.Windows.Forms.PictureBox GrasscutterToolsIcon;
+ private System.Windows.Forms.GroupBox GrpSettings;
+ private System.Windows.Forms.Label LblGCVersion;
+ private System.Windows.Forms.ComboBox CmbGcVersions;
+ private System.Windows.Forms.CheckBox ChkTopMost;
+ private System.Windows.Forms.ComboBox CmbLanguage;
+ private System.Windows.Forms.Label LblLanguage;
+ private System.Windows.Forms.NumericUpDown NUDUid;
+ private System.Windows.Forms.CheckBox ChkIncludeUID;
+ private System.Windows.Forms.Label LblDefaultUid;
+ }
+}
diff --git a/Source/GrasscutterTools/Pages/PageHome.cs b/Source/GrasscutterTools/Pages/PageHome.cs
new file mode 100644
index 0000000..be08694
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageHome.cs
@@ -0,0 +1,183 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using GrasscutterTools.Forms;
+using GrasscutterTools.Game;
+
+using GrasscutterTools.Properties;
+using GrasscutterTools.Utils;
+
+namespace GrasscutterTools.Pages
+{
+ internal partial class PageHome : BasePage
+ {
+ ///
+ /// 初始化首页设置
+ ///
+ public PageHome()
+ {
+ InitializeComponent();
+ if (DesignMode) return;
+
+ LoadVersion();
+
+ // 玩家UID
+ NUDUid.Value = Settings.Default.Uid;
+ NUDUid.ValueChanged += (o, e) => Settings.Default.Uid = NUDUid.Value;
+
+ // 置顶
+ ChkTopMost.Checked = Settings.Default.IsTopMost;
+ ChkTopMost.CheckedChanged += (o, e) => Settings.Default.IsTopMost = ParentForm.TopMost = ChkTopMost.Checked;
+
+ // 命令版本初始化
+ if (Version.TryParse(Settings.Default.CommandVersion, out Version current))
+ CommandVersion.Current = current;
+ CmbGcVersions.DataSource = CommandVersion.List.Select(it => it.ToString(3)).ToList();
+ CmbGcVersions.SelectedIndex = Array.IndexOf(CommandVersion.List, CommandVersion.Current);
+ CmbGcVersions.SelectedIndexChanged += (o, e) => CommandVersion.Current = CommandVersion.List[CmbGcVersions.SelectedIndex];
+ CommandVersion.VersionChanged += (o, e) => Settings.Default.CommandVersion = CommandVersion.Current.ToString(3);
+
+ // 初始化多语言
+ CmbLanguage.DataSource = MultiLanguage.LanguageNames;
+ if (string.IsNullOrEmpty(Settings.Default.DefaultLanguage))
+ {
+ // 如果未选择语言,则默认载入本地语言
+ var i = Array.IndexOf(MultiLanguage.Languages, Thread.CurrentThread.CurrentUICulture);
+ // 仅支持时切换,避免重复加载
+ if (i > 0) CmbLanguage.SelectedIndex = i;
+ }
+ else
+ {
+ CmbLanguage.SelectedIndex = Array.IndexOf(MultiLanguage.Languages, Settings.Default.DefaultLanguage);
+ }
+ CmbLanguage.SelectedIndexChanged += CmbLanguage_SelectedIndexChanged;
+
+#if !DEBUG // 仅正式版
+ // 检查更新,但不要弹窗
+ Task.Run(async () => { try { await LoadUpdate(); } catch { /* 启动时检查更新,忽略异常 */ }});
+#endif
+ }
+
+ #region - 检查更新 Check update -
+
+ ///
+ /// 应用版本
+ ///
+ private Version AppVersion;
+
+ ///
+ /// 加载应用版本
+ ///
+ private void LoadVersion()
+ {
+ AppVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
+ }
+
+ private ReleaseAPI.ReleaseInfo LastestInfo = null;
+ private Version lastestVersion = null;
+
+ private async Task LoadUpdate()
+ {
+ var info = await ReleaseAPI.GetReleasesLastest("jie65535", "GrasscutterCommandGenerator");
+ if (Version.TryParse(info.TagName.Substring(1), out lastestVersion) && AppVersion < lastestVersion)
+ {
+ if (!string.IsNullOrEmpty(Settings.Default.CheckedLastVersion)
+ && Version.TryParse(Settings.Default.CheckedLastVersion, out Version checkedVersion)
+ && checkedVersion >= lastestVersion)
+ return;
+ LastestInfo = info;
+ BeginInvoke(new Action(() =>
+ {
+ LnkNewVersion.Visible = true;
+ LnkNewVersion.Text = Resources.CheckToNewVersion;
+ this.Text += " - " + Resources.CheckToNewVersion;
+ }));
+ }
+ }
+
+ #endregion - 检查更新 Check update -
+
+ private static void ToTop(Form form)
+ {
+ form.TopMost = true;
+ form.TopMost = false;
+ }
+
+ private readonly Dictionary MyForms = new Dictionary();
+
+ private void ShowForm(string tag) where T : Form, new()
+ {
+ if (!MyForms.TryGetValue(tag, out var form) || form.IsDisposed)
+ form = new T();
+ MyForms[tag] = form;
+ if (form.IsHandleCreated)
+ ToTop(form);
+ else
+ form.Show();
+ }
+
+ ///
+ /// 点击打开卡池编辑器时触发
+ ///
+ private void BtnOpenGachaBannerEditor_Click(object sender, EventArgs e)
+ => ShowForm("BannersEditor");
+
+ ///
+ /// 点击打开文本浏览器时触发
+ ///
+ private void BtnOpenTextMap_Click(object sender, EventArgs e)
+ => ShowForm("TextMapBrowser");
+
+ ///
+ /// 点击打开掉落物编辑器时触发
+ ///
+ private void BtnOpenDropEditor_Click(object sender, EventArgs e)
+ => ShowForm("DropEditor");
+
+ ///
+ /// 点击打开商店编辑器时触发
+ ///
+ private void BtnOpenShopEditor_Click(object sender, EventArgs e)
+ => ShowForm("ShopEditor");
+
+ ///
+ /// 语言选中项改变时触发
+ ///
+ private void CmbLanguage_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (CmbLanguage.SelectedIndex < 0) return;
+ // 切换默认语言
+ MultiLanguage.SetDefaultLanguage(MultiLanguage.Languages[CmbLanguage.SelectedIndex]);
+ // 动态更改语言
+ MultiLanguage.LoadLanguage(ParentForm, ParentForm.GetType());
+ }
+
+ ///
+ /// 点击检查更新时触发
+ ///
+ private void LnkNewVersion_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ if (LastestInfo != null)
+ {
+ var r = MessageBox.Show(
+ string.Format(Resources.NewVersionInfo, LastestInfo.Name, LastestInfo.CraeteTime.ToLocalTime(), LastestInfo.Body),
+ Resources.CheckToNewVersion,
+ MessageBoxButtons.YesNo,
+ MessageBoxIcon.Information);
+ if (r == DialogResult.Yes)
+ UIUtil.OpenURL(LastestInfo.Url);
+ else if (r == DialogResult.No)
+ Settings.Default.CheckedLastVersion = lastestVersion.ToString();
+ }
+ else
+ {
+ // 没有更新,隐藏
+ LnkNewVersion.Visible = false;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageHome.en-US.resx b/Source/GrasscutterTools/Pages/PageHome.en-US.resx
new file mode 100644
index 0000000..b1ad1f7
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageHome.en-US.resx
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Shop Editor
+
+
+ Drop Editor
+
+
+ Have a nice time!
+
+
+
+ 120, 23
+
+
+ TextMapBrowser
+
+
+ Gacha Editor
+
+
+ Settings
+
+
+ 109, 21
+
+
+ Always on top
+
+
+ 95, 21
+
+
+ Include UID
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageHome.resx b/Source/GrasscutterTools/Pages/PageHome.resx
new file mode 100644
index 0000000..d68becb
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageHome.resx
@@ -0,0 +1,693 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Bottom, Left
+
+
+ NoControl
+
+
+
+ 310, 184
+
+
+ 100, 23
+
+
+
+ 3
+
+
+ 商店编辑器
+
+
+ BtnOpenShopEditor
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 4
+
+
+ Bottom, Left
+
+
+ NoControl
+
+
+ 416, 184
+
+
+ 100, 23
+
+
+ 4
+
+
+ 掉落物编辑器
+
+
+ BtnOpenDropEditor
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ Bottom, Left
+
+
+ True
+
+
+ NoControl
+
+
+ 3, 105
+
+
+ 104, 17
+
+
+ 1
+
+
+ New Version Tip
+
+
+ False
+
+
+ LnkNewVersion
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 7
+
+
+ Top, Bottom, Left
+
+
+ Microsoft YaHei UI, 13pt
+
+
+ NoControl
+
+
+ 3, 3
+
+
+ 320, 102
+
+
+ 0
+
+
+ 祝你玩得愉快!
+
+
+ MiddleCenter
+
+
+ LblAbout
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ Bottom, Left
+
+
+ NoControl
+
+
+ 416, 213
+
+
+ 100, 23
+
+
+ 6
+
+
+ 文本浏览器
+
+
+ BtnOpenTextMap
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 1
+
+
+ Bottom, Left
+
+
+ NoControl
+
+
+ 310, 213
+
+
+ 100, 23
+
+
+ 5
+
+
+ 奖池编辑器
+
+
+ BtnOpenGachaBannerEditor
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ Top, Bottom, Left, Right
+
+
+ NoControl
+
+
+ 310, 3
+
+
+ 333, 175
+
+
+ CenterImage
+
+
+ 14
+
+
+ GrasscutterToolsIcon
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 5
+
+
+ Bottom, Left
+
+
+ LblGCVersion
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 0
+
+
+ CmbGcVersions
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 1
+
+
+ ChkTopMost
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 2
+
+
+ CmbLanguage
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 3
+
+
+ LblLanguage
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 4
+
+
+ NUDUid
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 5
+
+
+ ChkIncludeUID
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 6
+
+
+ LblDefaultUid
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 7
+
+
+ 3, 125
+
+
+ 301, 111
+
+
+ 2
+
+
+ 设置
+
+
+ GrpSettings
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 6
+
+
+ True
+
+
+ NoControl
+
+
+ 7, 83
+
+
+ 25, 17
+
+
+ 5
+
+
+ GC
+
+
+ LblGCVersion
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 0
+
+
+ 41, 80
+
+
+ 100, 25
+
+
+ 6
+
+
+ CmbGcVersions
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 1
+
+
+ True
+
+
+ NoControl
+
+
+ 147, 82
+
+
+ 75, 21
+
+
+ 7
+
+
+ 窗口置顶
+
+
+ ChkTopMost
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 2
+
+
+ 41, 51
+
+
+ 100, 25
+
+
+ 3
+
+
+ CmbLanguage
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 3
+
+
+ True
+
+
+ NoControl
+
+
+ 147, 54
+
+
+ 128, 17
+
+
+ 4
+
+
+ 语言/Language/язык
+
+
+ LblLanguage
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 4
+
+
+ 41, 22
+
+
+ 100, 23
+
+
+ 1
+
+
+ NUDUid
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 5
+
+
+ True
+
+
+ NoControl
+
+
+ 147, 23
+
+
+ 133, 21
+
+
+ 2
+
+
+ 生成的命令包含UID
+
+
+ ChkIncludeUID
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 6
+
+
+ True
+
+
+ NoControl
+
+
+ 7, 24
+
+
+ 30, 17
+
+
+ 0
+
+
+ UID
+
+
+ LblDefaultUid
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpSettings
+
+
+ 7
+
+
+ True
+
+
+ 7, 17
+
+
+ PageHome
+
+
+ GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.7.4.0, Culture=neutral, PublicKeyToken=de2b1c089621e923
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageHome.ru-RU.resx b/Source/GrasscutterTools/Pages/PageHome.ru-RU.resx
new file mode 100644
index 0000000..9e5034b
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageHome.ru-RU.resx
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ 140, 23
+
+
+ Редактор магазина
+
+
+ 456, 184
+
+
+ 140, 23
+
+
+ Браузер карт
+
+
+ Желаем приятно провести время!
+
+
+ 456, 213
+
+
+ 140, 23
+
+
+ Редактор дропа
+
+
+ 140, 23
+
+
+ Редактор баннеров
+
+
+ 140, 21
+
+
+ Последняя версия
+
+
+ 113, 21
+
+
+ Включить UID
+
+
+ Настройки
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageHome.zh-TW.resx b/Source/GrasscutterTools/Pages/PageHome.zh-TW.resx
new file mode 100644
index 0000000..0a78fa7
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageHome.zh-TW.resx
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 商店編輯器
+
+
+ 掉落物編輯器
+
+
+ 文本瀏覽器
+
+
+ 獎池編輯器
+
+
+ 設置
+
+
+ 窗口置頂
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageOpenCommand.Designer.cs b/Source/GrasscutterTools/Pages/PageOpenCommand.Designer.cs
new file mode 100644
index 0000000..1526417
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageOpenCommand.Designer.cs
@@ -0,0 +1,367 @@
+namespace GrasscutterTools.Pages
+{
+ partial class PageOpenCommand
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 组件设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要修改
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PageOpenCommand));
+ this.LnkLinks = new System.Windows.Forms.LinkLabel();
+ this.LnkGOODHelp = new System.Windows.Forms.LinkLabel();
+ this.LnkInventoryKamera = new System.Windows.Forms.LinkLabel();
+ this.LblGOODHelp = new System.Windows.Forms.Label();
+ this.ButtonOpenGOODImport = new System.Windows.Forms.Button();
+ this.LblHostTip = new System.Windows.Forms.Label();
+ this.GrpServerStatus = new System.Windows.Forms.GroupBox();
+ this.LnkOpenCommandLabel = new System.Windows.Forms.LinkLabel();
+ this.LblOpenCommandSupport = new System.Windows.Forms.Label();
+ this.LblServerVersion = new System.Windows.Forms.Label();
+ this.LblPlayerCount = new System.Windows.Forms.Label();
+ this.LblServerVersionLabel = new System.Windows.Forms.Label();
+ this.LblPlayerCountLabel = new System.Windows.Forms.Label();
+ this.GrpRemoteCommand = new System.Windows.Forms.GroupBox();
+ this.TPOpenCommandCheck = new System.Windows.Forms.TabControl();
+ this.TPPlayerCheck = new System.Windows.Forms.TabPage();
+ this.LnkRCHelp = new System.Windows.Forms.LinkLabel();
+ this.NUDRemotePlayerId = new System.Windows.Forms.NumericUpDown();
+ this.BtnConnectOpenCommand = new System.Windows.Forms.Button();
+ this.LblVerificationCode = new System.Windows.Forms.Label();
+ this.BtnSendVerificationCode = new System.Windows.Forms.Button();
+ this.NUDVerificationCode = new System.Windows.Forms.NumericUpDown();
+ this.LblRemotePlayerId = new System.Windows.Forms.Label();
+ this.TPConsoleCheck = new System.Windows.Forms.TabPage();
+ this.BtnConsoleConnect = new System.Windows.Forms.Button();
+ this.TxtToken = new System.Windows.Forms.TextBox();
+ this.LblToken = new System.Windows.Forms.Label();
+ this.LblConsoleTip = new System.Windows.Forms.Label();
+ this.TxtHost = new System.Windows.Forms.TextBox();
+ this.BtnQueryServerStatus = new System.Windows.Forms.Button();
+ this.LblHost = new System.Windows.Forms.Label();
+ this.GrpServerStatus.SuspendLayout();
+ this.GrpRemoteCommand.SuspendLayout();
+ this.TPOpenCommandCheck.SuspendLayout();
+ this.TPPlayerCheck.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDRemotePlayerId)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDVerificationCode)).BeginInit();
+ this.TPConsoleCheck.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // LnkLinks
+ //
+ resources.ApplyResources(this.LnkLinks, "LnkLinks");
+ this.LnkLinks.Name = "LnkLinks";
+ this.LnkLinks.TabStop = true;
+ this.LnkLinks.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkLinks_LinkClicked);
+ //
+ // LnkGOODHelp
+ //
+ resources.ApplyResources(this.LnkGOODHelp, "LnkGOODHelp");
+ this.LnkGOODHelp.Cursor = System.Windows.Forms.Cursors.Help;
+ this.LnkGOODHelp.Name = "LnkGOODHelp";
+ this.LnkGOODHelp.TabStop = true;
+ this.LnkGOODHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkGOODHelp_LinkClicked);
+ //
+ // LnkInventoryKamera
+ //
+ resources.ApplyResources(this.LnkInventoryKamera, "LnkInventoryKamera");
+ this.LnkInventoryKamera.Name = "LnkInventoryKamera";
+ this.LnkInventoryKamera.TabStop = true;
+ this.LnkInventoryKamera.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkInventoryKamera_LinkClicked);
+ //
+ // LblGOODHelp
+ //
+ resources.ApplyResources(this.LblGOODHelp, "LblGOODHelp");
+ this.LblGOODHelp.Name = "LblGOODHelp";
+ //
+ // ButtonOpenGOODImport
+ //
+ resources.ApplyResources(this.ButtonOpenGOODImport, "ButtonOpenGOODImport");
+ this.ButtonOpenGOODImport.Name = "ButtonOpenGOODImport";
+ this.ButtonOpenGOODImport.UseVisualStyleBackColor = true;
+ //
+ // LblHostTip
+ //
+ resources.ApplyResources(this.LblHostTip, "LblHostTip");
+ this.LblHostTip.ForeColor = System.Drawing.SystemColors.GrayText;
+ this.LblHostTip.Name = "LblHostTip";
+ //
+ // GrpServerStatus
+ //
+ resources.ApplyResources(this.GrpServerStatus, "GrpServerStatus");
+ this.GrpServerStatus.Controls.Add(this.LnkOpenCommandLabel);
+ this.GrpServerStatus.Controls.Add(this.LblOpenCommandSupport);
+ this.GrpServerStatus.Controls.Add(this.LblServerVersion);
+ this.GrpServerStatus.Controls.Add(this.LblPlayerCount);
+ this.GrpServerStatus.Controls.Add(this.LblServerVersionLabel);
+ this.GrpServerStatus.Controls.Add(this.LblPlayerCountLabel);
+ this.GrpServerStatus.Name = "GrpServerStatus";
+ this.GrpServerStatus.TabStop = false;
+ //
+ // LnkOpenCommandLabel
+ //
+ resources.ApplyResources(this.LnkOpenCommandLabel, "LnkOpenCommandLabel");
+ this.LnkOpenCommandLabel.Name = "LnkOpenCommandLabel";
+ this.LnkOpenCommandLabel.TabStop = true;
+ this.LnkOpenCommandLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkOpenCommandLabel_LinkClicked);
+ //
+ // LblOpenCommandSupport
+ //
+ resources.ApplyResources(this.LblOpenCommandSupport, "LblOpenCommandSupport");
+ this.LblOpenCommandSupport.Name = "LblOpenCommandSupport";
+ //
+ // LblServerVersion
+ //
+ resources.ApplyResources(this.LblServerVersion, "LblServerVersion");
+ this.LblServerVersion.Name = "LblServerVersion";
+ //
+ // LblPlayerCount
+ //
+ resources.ApplyResources(this.LblPlayerCount, "LblPlayerCount");
+ this.LblPlayerCount.Name = "LblPlayerCount";
+ //
+ // LblServerVersionLabel
+ //
+ resources.ApplyResources(this.LblServerVersionLabel, "LblServerVersionLabel");
+ this.LblServerVersionLabel.Name = "LblServerVersionLabel";
+ //
+ // LblPlayerCountLabel
+ //
+ resources.ApplyResources(this.LblPlayerCountLabel, "LblPlayerCountLabel");
+ this.LblPlayerCountLabel.Name = "LblPlayerCountLabel";
+ //
+ // GrpRemoteCommand
+ //
+ resources.ApplyResources(this.GrpRemoteCommand, "GrpRemoteCommand");
+ this.GrpRemoteCommand.Controls.Add(this.TPOpenCommandCheck);
+ this.GrpRemoteCommand.Name = "GrpRemoteCommand";
+ this.GrpRemoteCommand.TabStop = false;
+ //
+ // TPOpenCommandCheck
+ //
+ this.TPOpenCommandCheck.Controls.Add(this.TPPlayerCheck);
+ this.TPOpenCommandCheck.Controls.Add(this.TPConsoleCheck);
+ resources.ApplyResources(this.TPOpenCommandCheck, "TPOpenCommandCheck");
+ this.TPOpenCommandCheck.Name = "TPOpenCommandCheck";
+ this.TPOpenCommandCheck.SelectedIndex = 0;
+ //
+ // TPPlayerCheck
+ //
+ this.TPPlayerCheck.Controls.Add(this.LnkRCHelp);
+ this.TPPlayerCheck.Controls.Add(this.NUDRemotePlayerId);
+ this.TPPlayerCheck.Controls.Add(this.BtnConnectOpenCommand);
+ this.TPPlayerCheck.Controls.Add(this.LblVerificationCode);
+ this.TPPlayerCheck.Controls.Add(this.BtnSendVerificationCode);
+ this.TPPlayerCheck.Controls.Add(this.NUDVerificationCode);
+ this.TPPlayerCheck.Controls.Add(this.LblRemotePlayerId);
+ resources.ApplyResources(this.TPPlayerCheck, "TPPlayerCheck");
+ this.TPPlayerCheck.Name = "TPPlayerCheck";
+ this.TPPlayerCheck.UseVisualStyleBackColor = true;
+ //
+ // LnkRCHelp
+ //
+ resources.ApplyResources(this.LnkRCHelp, "LnkRCHelp");
+ this.LnkRCHelp.Name = "LnkRCHelp";
+ this.LnkRCHelp.TabStop = true;
+ this.LnkRCHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkRCHelp_LinkClicked);
+ //
+ // NUDRemotePlayerId
+ //
+ resources.ApplyResources(this.NUDRemotePlayerId, "NUDRemotePlayerId");
+ this.NUDRemotePlayerId.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDRemotePlayerId.Name = "NUDRemotePlayerId";
+ this.NUDRemotePlayerId.Value = new decimal(new int[] {
+ 10001,
+ 0,
+ 0,
+ 0});
+ this.NUDRemotePlayerId.KeyDown += new System.Windows.Forms.KeyEventHandler(this.NUDRemotePlayerId_KeyDown);
+ //
+ // BtnConnectOpenCommand
+ //
+ resources.ApplyResources(this.BtnConnectOpenCommand, "BtnConnectOpenCommand");
+ this.BtnConnectOpenCommand.Name = "BtnConnectOpenCommand";
+ this.BtnConnectOpenCommand.UseVisualStyleBackColor = true;
+ this.BtnConnectOpenCommand.Click += new System.EventHandler(this.BtnConnectOpenCommand_Click);
+ //
+ // LblVerificationCode
+ //
+ resources.ApplyResources(this.LblVerificationCode, "LblVerificationCode");
+ this.LblVerificationCode.Name = "LblVerificationCode";
+ //
+ // BtnSendVerificationCode
+ //
+ resources.ApplyResources(this.BtnSendVerificationCode, "BtnSendVerificationCode");
+ this.BtnSendVerificationCode.Name = "BtnSendVerificationCode";
+ this.BtnSendVerificationCode.UseVisualStyleBackColor = true;
+ this.BtnSendVerificationCode.Click += new System.EventHandler(this.BtnSendVerificationCode_Click);
+ //
+ // NUDVerificationCode
+ //
+ resources.ApplyResources(this.NUDVerificationCode, "NUDVerificationCode");
+ this.NUDVerificationCode.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.NUDVerificationCode.Minimum = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ this.NUDVerificationCode.Name = "NUDVerificationCode";
+ this.NUDVerificationCode.Value = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ this.NUDVerificationCode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.NUDVerificationCode_KeyDown);
+ //
+ // LblRemotePlayerId
+ //
+ resources.ApplyResources(this.LblRemotePlayerId, "LblRemotePlayerId");
+ this.LblRemotePlayerId.Name = "LblRemotePlayerId";
+ //
+ // TPConsoleCheck
+ //
+ this.TPConsoleCheck.Controls.Add(this.BtnConsoleConnect);
+ this.TPConsoleCheck.Controls.Add(this.TxtToken);
+ this.TPConsoleCheck.Controls.Add(this.LblToken);
+ this.TPConsoleCheck.Controls.Add(this.LblConsoleTip);
+ resources.ApplyResources(this.TPConsoleCheck, "TPConsoleCheck");
+ this.TPConsoleCheck.Name = "TPConsoleCheck";
+ this.TPConsoleCheck.UseVisualStyleBackColor = true;
+ //
+ // BtnConsoleConnect
+ //
+ resources.ApplyResources(this.BtnConsoleConnect, "BtnConsoleConnect");
+ this.BtnConsoleConnect.Name = "BtnConsoleConnect";
+ this.BtnConsoleConnect.UseVisualStyleBackColor = true;
+ this.BtnConsoleConnect.Click += new System.EventHandler(this.BtnConsoleConnect_Click);
+ //
+ // TxtToken
+ //
+ resources.ApplyResources(this.TxtToken, "TxtToken");
+ this.TxtToken.Name = "TxtToken";
+ this.TxtToken.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtToken_KeyDown);
+ //
+ // LblToken
+ //
+ resources.ApplyResources(this.LblToken, "LblToken");
+ this.LblToken.Name = "LblToken";
+ //
+ // LblConsoleTip
+ //
+ resources.ApplyResources(this.LblConsoleTip, "LblConsoleTip");
+ this.LblConsoleTip.Name = "LblConsoleTip";
+ //
+ // TxtHost
+ //
+ resources.ApplyResources(this.TxtHost, "TxtHost");
+ this.TxtHost.Name = "TxtHost";
+ this.TxtHost.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtHost_KeyDown);
+ //
+ // BtnQueryServerStatus
+ //
+ resources.ApplyResources(this.BtnQueryServerStatus, "BtnQueryServerStatus");
+ this.BtnQueryServerStatus.Name = "BtnQueryServerStatus";
+ this.BtnQueryServerStatus.UseVisualStyleBackColor = true;
+ this.BtnQueryServerStatus.Click += new System.EventHandler(this.BtnQueryServerStatus_Click);
+ //
+ // LblHost
+ //
+ resources.ApplyResources(this.LblHost, "LblHost");
+ this.LblHost.Name = "LblHost";
+ //
+ // PageOpenCommand
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.LnkLinks);
+ this.Controls.Add(this.LnkGOODHelp);
+ this.Controls.Add(this.LnkInventoryKamera);
+ this.Controls.Add(this.LblGOODHelp);
+ this.Controls.Add(this.ButtonOpenGOODImport);
+ this.Controls.Add(this.LblHostTip);
+ this.Controls.Add(this.GrpServerStatus);
+ this.Controls.Add(this.GrpRemoteCommand);
+ this.Controls.Add(this.TxtHost);
+ this.Controls.Add(this.BtnQueryServerStatus);
+ this.Controls.Add(this.LblHost);
+ this.Name = "PageOpenCommand";
+ this.GrpServerStatus.ResumeLayout(false);
+ this.GrpServerStatus.PerformLayout();
+ this.GrpRemoteCommand.ResumeLayout(false);
+ this.TPOpenCommandCheck.ResumeLayout(false);
+ this.TPPlayerCheck.ResumeLayout(false);
+ this.TPPlayerCheck.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDRemotePlayerId)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDVerificationCode)).EndInit();
+ this.TPConsoleCheck.ResumeLayout(false);
+ this.TPConsoleCheck.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.LinkLabel LnkLinks;
+ private System.Windows.Forms.LinkLabel LnkGOODHelp;
+ private System.Windows.Forms.LinkLabel LnkInventoryKamera;
+ private System.Windows.Forms.Label LblGOODHelp;
+ private System.Windows.Forms.Button ButtonOpenGOODImport;
+ private System.Windows.Forms.Label LblHostTip;
+ private System.Windows.Forms.GroupBox GrpServerStatus;
+ private System.Windows.Forms.LinkLabel LnkOpenCommandLabel;
+ private System.Windows.Forms.Label LblOpenCommandSupport;
+ private System.Windows.Forms.Label LblServerVersion;
+ private System.Windows.Forms.Label LblPlayerCount;
+ private System.Windows.Forms.Label LblServerVersionLabel;
+ private System.Windows.Forms.Label LblPlayerCountLabel;
+ private System.Windows.Forms.GroupBox GrpRemoteCommand;
+ private System.Windows.Forms.TabControl TPOpenCommandCheck;
+ private System.Windows.Forms.TabPage TPPlayerCheck;
+ private System.Windows.Forms.LinkLabel LnkRCHelp;
+ private System.Windows.Forms.NumericUpDown NUDRemotePlayerId;
+ private System.Windows.Forms.Button BtnConnectOpenCommand;
+ private System.Windows.Forms.Label LblVerificationCode;
+ private System.Windows.Forms.Button BtnSendVerificationCode;
+ private System.Windows.Forms.NumericUpDown NUDVerificationCode;
+ private System.Windows.Forms.Label LblRemotePlayerId;
+ private System.Windows.Forms.TabPage TPConsoleCheck;
+ private System.Windows.Forms.Button BtnConsoleConnect;
+ private System.Windows.Forms.TextBox TxtToken;
+ private System.Windows.Forms.Label LblToken;
+ private System.Windows.Forms.Label LblConsoleTip;
+ private System.Windows.Forms.TextBox TxtHost;
+ private System.Windows.Forms.Button BtnQueryServerStatus;
+ private System.Windows.Forms.Label LblHost;
+ }
+}
diff --git a/Source/GrasscutterTools/Pages/PageOpenCommand.cs b/Source/GrasscutterTools/Pages/PageOpenCommand.cs
new file mode 100644
index 0000000..c2b79bf
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageOpenCommand.cs
@@ -0,0 +1,457 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using GrasscutterTools.DispatchServer;
+using GrasscutterTools.Game;
+using GrasscutterTools.GOOD;
+using GrasscutterTools.OpenCommand;
+using GrasscutterTools.Properties;
+using GrasscutterTools.Utils;
+
+using Newtonsoft.Json;
+
+namespace GrasscutterTools.Pages
+{
+ internal partial class PageOpenCommand : BasePage
+ {
+ public PageOpenCommand()
+ {
+ InitializeComponent();
+ if (DesignMode) return;
+
+ NUDRemotePlayerId.Value = Settings.Default.RemoteUid;
+ TxtHost.Text = Settings.Default.Host;
+ if (!string.IsNullOrEmpty(Settings.Default.Host) && !string.IsNullOrEmpty(Settings.Default.TokenCache))
+ {
+ Common.OC = new OpenCommandAPI(Settings.Default.Host, Settings.Default.TokenCache);
+ TxtToken.Text = Settings.Default.TokenCache;
+ Task.Delay(1000).ContinueWith(_ => ShowTipInRunButton?.Invoke(Resources.TokenRestoredFromCache));
+ }
+ }
+
+ ///
+ /// 在运行按钮上显示提示,要求主窗口设置
+ ///
+ public Action ShowTipInRunButton { get; set; }
+
+ public override void OnEnter()
+ {
+#if !DEBUG
+ if (string.IsNullOrEmpty(Settings.Default.Host) || string.IsNullOrEmpty(Settings.Default.TokenCache))
+ {
+ // 自动尝试查询本地服务端地址,降低使用门槛
+ Task.Run(async () =>
+ {
+ var localhosts = new string[] {
+ "http://127.0.0.1:443",
+ "https://127.0.0.1",
+ "http://127.0.0.1",
+ "https://127.0.0.1:80",
+ "http://127.0.0.1:8080",
+ "https://127.0.0.1:8080",
+ };
+ foreach (var host in localhosts)
+ {
+ try
+ {
+ await UpdateServerStatus(host);
+ // 自动填写本地服务端地址
+ TxtHost.Text = host;
+ break;
+ }
+ catch (Exception)
+ {
+ // Ignore
+ }
+ }
+ });
+ }
+#endif
+ }
+
+ ///
+ /// 保存开放命令参数
+ ///
+ public override void OnClosed()
+ {
+ Settings.Default.RemoteUid = NUDRemotePlayerId.Value;
+ Settings.Default.Host = TxtHost.Text;
+ Settings.Default.TokenCache = Common.OC?.Token;
+ }
+
+ ///
+ /// 更新服务器状态
+ ///
+ /// 主机地址
+ private async Task UpdateServerStatus(string host)
+ {
+ // "http://127.0.0.1/" -> "http://127.0.0.1"
+ host = host.TrimEnd('/');
+ var status = await DispatchServerAPI.QueryServerStatus(host);
+ LblServerVersion.Text = status.Version;
+ if (status.MaxPlayer >= 0)
+ LblPlayerCount.Text = $"{status.PlayerCount}/{status.MaxPlayer}";
+ else
+ LblPlayerCount.Text = status.PlayerCount.ToString();
+ }
+
+ ///
+ /// 输入服务器地址按下回车时触发
+ ///
+ private void TxtHost_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter) BtnQueryServerStatus_Click(BtnQueryServerStatus, e);
+ }
+
+ ///
+ /// 点击查询服务器状态按钮时触发
+ ///
+ private async void BtnQueryServerStatus_Click(object sender, EventArgs e)
+ {
+ var btn = sender as Button;
+ btn.Enabled = false;
+ btn.Cursor = Cursors.WaitCursor;
+ try
+ {
+ try
+ {
+ await UpdateServerStatus(TxtHost.Text);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(Resources.QueryServerStatusFailed + ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ Common.OC = new OpenCommandAPI(TxtHost.Text);
+ if (await Common.OC.Ping())
+ {
+ LblOpenCommandSupport.Text = "√";
+ LblOpenCommandSupport.ForeColor = Color.Green;
+ GrpRemoteCommand.Enabled = true;
+ }
+ else
+ {
+ LblOpenCommandSupport.Text = "×";
+ LblOpenCommandSupport.ForeColor = Color.Red;
+ GrpRemoteCommand.Enabled = false;
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ finally
+ {
+ btn.Cursor = Cursors.Default;
+ btn.Enabled = true;
+ }
+ }
+
+ ///
+ /// 玩家ID输入框按下回车时触发
+ ///
+ private void NUDRemotePlayerId_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter) BtnSendVerificationCode_Click(BtnSendVerificationCode, e);
+ }
+
+ ///
+ /// 点击发送校验码按钮时触发
+ ///
+ private async void BtnSendVerificationCode_Click(object sender, EventArgs e)
+ {
+ var btn = sender as Button;
+ var t = btn.Text;
+ btn.Enabled = false;
+ NUDRemotePlayerId.Enabled = false;
+ try
+ {
+ btn.Text = Resources.CodeSending;
+ await Common.OC.SendCode((int)NUDRemotePlayerId.Value);
+ BtnConnectOpenCommand.Enabled = true;
+ NUDVerificationCode.Enabled = true;
+ NUDVerificationCode.Focus();
+ for (int i = 60; i > 0 && !Common.OC.CanInvoke; i--)
+ {
+ btn.Text = string.Format(Resources.CodeResendTip, i);
+ await Task.Delay(1000);
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ finally
+ {
+ btn.Text = t;
+ btn.Enabled = true;
+ NUDRemotePlayerId.Enabled = true;
+ }
+ }
+
+ ///
+ /// 验证码输入框按下回车时触发
+ ///
+ private void NUDVerificationCode_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter) BtnConnectOpenCommand_Click(BtnConnectOpenCommand, e);
+ }
+
+ ///
+ /// 点击连接到开放命令按钮时触发
+ ///
+ ///
+ ///
+ private async void BtnConnectOpenCommand_Click(object sender, EventArgs e)
+ {
+ var btn = sender as Button;
+ btn.Enabled = false;
+ try
+ {
+ await Common.OC.Verify((int)NUDVerificationCode.Value);
+ GrpRemoteCommand.Enabled = false;
+ ShowTipInRunButton?.Invoke(Resources.ConnectedTip);
+ ButtonOpenGOODImport.Enabled = true;
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ finally
+ {
+ btn.Cursor = Cursors.Default;
+ btn.Enabled = true;
+ }
+ }
+
+ ///
+ /// Token 输入框按下回车时触发
+ ///
+ private void TxtToken_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter) BtnConsoleConnect_Click(BtnConsoleConnect, e);
+ }
+
+ ///
+ /// 点击控制台连接按钮时触发
+ ///
+ private void BtnConsoleConnect_Click(object sender, EventArgs e)
+ {
+ if (string.IsNullOrEmpty(TxtToken.Text))
+ {
+ MessageBox.Show(Resources.TokenCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ Common.OC.Token = TxtToken.Text;
+ BtnConnectOpenCommand_Click(sender, e);
+ }
+
+ ///
+ /// 点击开放命令标签时触发
+ ///
+ private void LnkOpenCommandLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ UIUtil.OpenURL("https://github.com/jie65535/gc-opencommand-plugin");
+ }
+
+ ///
+ /// 点击帮助连接标签时触发
+ ///
+ private void LnkRCHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ MessageBox.Show(Resources.OpenCommandHelp, Resources.Help, MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+
+ ///
+ /// 点击库存扫描链接标签时触发
+ ///
+ private void LnkInventoryKamera_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ UIUtil.OpenURL("https://github.com/Andrewthe13th/Inventory_Kamera");
+ }
+
+ ///
+ /// 点击GOOD帮助链接标签时触发
+ ///
+ private void LnkGOODHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ UIUtil.OpenURL("https://frzyc.github.io/genshin-optimizer/#/doc");
+ }
+
+ ///
+ /// 点击链接帮助标签时触发
+ ///
+ private void LnkLinks_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ var links = new List
+ {
+ "https://frzyc.github.io/genshin-optimizer/",
+ "https://genshin.aspirine.su/",
+ "https://genshin.mingyulab.com/",
+ "https://genshin-center.com/",
+ "https://github.com/Andrewthe13th/Inventory_Kamera",
+ "https://github.com/daydreaming666/Amenoma",
+ "https://seelie.me/",
+ "https://www.mona-uranai.com/",
+ };
+ MessageBox.Show(string.Join("\n", links), "Links", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+
+ #region - 导入存档 GOOD -
+
+ ///
+ /// 点击GOOD导入存档按钮时触发
+ ///
+ private async void ButtonOpenGOODImport_Click(object sender, EventArgs e)
+ {
+ if (Common.OC == null || !Common.OC.CanInvoke)
+ {
+ UIUtil.ShowTip(Resources.RequireOpenCommandTip, ButtonOpenGOODImport);
+ return;
+ }
+
+ OpenFileDialog openFileDialog1 = new OpenFileDialog
+ {
+ Filter = "GOOD file (*.GOOD;*.json)|*.GOOD;*.json|All files (*.*)|*.*",
+ };
+ if (openFileDialog1.ShowDialog() == DialogResult.OK)
+ {
+ if (DialogResult.Yes != MessageBox.Show(Resources.GOODImportText + openFileDialog1.FileName + "?",
+ Resources.GOODImportTitle, MessageBoxButtons.YesNo))
+ return;
+ try
+ {
+ GOOD.GOOD good = JsonConvert.DeserializeObject(File.ReadAllText(openFileDialog1.FileName));
+ var commands_list = new List();
+ var missingItems = new List();
+
+ if (good.Characters != null)
+ {
+ foreach (var character in good.Characters)
+ {
+ if (character.Name != "Traveler")
+ {
+ if (GOODData.Avatars.TryGetValue(character.Name, out var character_id))
+ {
+ if (CommandVersion.Check(CommandVersion.V1_4_1))
+ {
+ // 取最低的技能等级
+ var skillLevel = Math.Min(Math.Min(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}");
+ }
+ else
+ missingItems.Add(character.Name);
+ // TODO: Implement command to set talent level when giving character in Grasscutter
+ }
+ }
+ }
+
+ if (good.Weapons != null)
+ {
+ foreach (var weapon in good.Weapons)
+ {
+ if (GOODData.Weapons.TryGetValue(weapon.Name, out var weapon_id))
+ commands_list.Add($"/give {weapon_id} lv{weapon.Level} r{weapon.RefinementLevel}");
+ else
+ missingItems.Add(weapon.Name);
+ // TODO: Implement command to give weapon directly to character in Grasscutter
+ }
+ }
+
+ if (good.Artifacts != null)
+ {
+ foreach (var artifact in good.Artifacts)
+ {
+ // Format: set rarity slot
+ if (!GOODData.ArtifactCats.TryGetValue(artifact.SetName, out var artifact_set_id))
+ {
+ missingItems.Add(artifact.SetName);
+ continue;
+ }
+ var artifact_id = artifact_set_id * 1000 + artifact.Rarity * 100 + GOODData.ArtifactSlotMap[artifact.GearSlot] * 10;
+ for (int i = 4; i > 0; i--)
+ {
+ if (Array.IndexOf(GameData.Artifacts.Ids, artifact_id + i) != -1)
+ {
+ artifact_id += i;
+ break;
+ }
+ }
+ if (artifact_id % 10 == 0)
+ artifact_id += 4;
+
+ var artifact_mainStat_id = GOODData.ArtifactMainAttribution[artifact.MainStat];
+ var artifact_substats = "";
+ var artifact_substat_prefix = artifact.Rarity + "0";
+ int substat_count = 0;
+ foreach (var substat in artifact.SubStats)
+ {
+ if (substat.Value <= 0)
+ continue;
+ substat_count++;
+ var substat_key = substat.Stat;
+ var substat_key_id = GOODData.ArtifactSubAttribution[substat_key];
+ var substat_indices = ArtifactUtils.SplitSubstats(substat_key, artifact.Rarity, substat.Value);
+
+ foreach (int index in substat_indices)
+ {
+ artifact_substats += artifact_substat_prefix + substat_key_id + index.ToString() + " ";
+ }
+ }
+
+ // HACK: Add def+2 substat to counteract Grasscutter automatically adding another substat
+ if (substat_count == 4)
+ artifact_substats += "101081 ";
+ commands_list.Add($"/give {artifact_id} lv{artifact.Level} {artifact_mainStat_id} {artifact_substats}");
+ // TODO: Implement command to give artifact directly to character in Grasscutter
+ }
+ }
+
+ // TODO: Materials
+ //if (good.Materials != null)
+ //{
+ // foreach (var material in good.Materials)
+ // {
+ // }
+ //}
+
+ var msg = string.Format("Loaded {0} Characters\nLoaded {1} Weapons\nLoaded {2} Artifacts\n",
+ good.Characters?.Count ?? 0,
+ good.Weapons?.Count ?? 0,
+ good.Artifacts?.Count ?? 0
+ );
+ if (missingItems.Count > 0)
+ {
+ msg += string.Format("There are {0} pieces of data that cannot be parsed, including:\n{1}",
+ missingItems.Count,
+ string.Join("\n", missingItems.Take(10)));
+ if (missingItems.Count > 10)
+ msg += "......";
+ }
+ msg += "Do you want to start?";
+
+ if (DialogResult.Yes != MessageBox.Show(msg, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Information))
+ return;
+
+ if (await RunCommands(commands_list.ToArray()))
+ MessageBox.Show(Resources.GOODImportSuccess);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ #endregion - 导入存档 GOOD -
+ }
+}
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageOpenCommand.en-US.resx b/Source/GrasscutterTools/Pages/PageOpenCommand.en-US.resx
new file mode 100644
index 0000000..3347383
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageOpenCommand.en-US.resx
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ InventoryKamera
+
+
+ Come and import your official server archive into GC!
+
+
+ Import GOOD
+
+
+
+ 377, 17
+
+
+ Please be sure https:// or http:// is included with the IP address
+
+
+ Server status
+
+
+ 13, 63
+
+
+ 100, 17
+
+
+ OpenCommand
+
+
+ 119, 63
+
+
+ 119, 29
+
+
+ 119, 46
+
+
+ 25, 29
+
+
+ 88, 17
+
+
+ Game version
+
+
+ 34, 46
+
+
+ 79, 17
+
+
+ Player count
+
+
+ Open Command
+
+
+ Player
+
+
+ 35, 17
+
+
+ Help
+
+
+ Connect
+
+
+ 39, 17
+
+
+ Code
+
+
+ Send Code
+
+
+ 296, 109
+
+
+ Console
+
+
+ Connect
+
+
+ Note that normal commands in the console state must specify the target (set include UID)
+
+
+ Query
+
+
+ 78, 17
+
+
+ Server Addr
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageOpenCommand.resx b/Source/GrasscutterTools/Pages/PageOpenCommand.resx
new file mode 100644
index 0000000..53db146
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageOpenCommand.resx
@@ -0,0 +1,1027 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ None
+
+
+
+ True
+
+
+ NoControl
+
+
+
+ 436, 204
+
+
+ 37, 17
+
+
+ 9
+
+
+ Links
+
+
+ LnkLinks
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ None
+
+
+ True
+
+
+ NoControl
+
+
+ 384, 204
+
+
+ 46, 17
+
+
+ 8
+
+
+ GOOD
+
+
+ LnkGOODHelp
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 1
+
+
+ None
+
+
+ NoControl
+
+
+ 478, 181
+
+
+ 107, 17
+
+
+ 7
+
+
+ 存档扫描开源工具
+
+
+ LnkInventoryKamera
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ None
+
+
+ NoControl
+
+
+ 380, 137
+
+
+ 205, 58
+
+
+ 6
+
+
+ 快来将你的官服存档导入GC吧!
+
+
+ LblGOODHelp
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ None
+
+
+ NoControl
+
+
+ 476, 201
+
+
+ 104, 23
+
+
+ 10
+
+
+ 导入GOOD存档
+
+
+ ButtonOpenGOODImport
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 4
+
+
+ None
+
+
+ True
+
+
+ NoControl
+
+
+ 133, 14
+
+
+ 210, 17
+
+
+ 0
+
+
+ 请确保地址中包含 http:// 或 https://
+
+
+ LblHostTip
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 5
+
+
+ None
+
+
+ True
+
+
+ NoControl
+
+
+ 13, 62
+
+
+ 80, 17
+
+
+ 4
+
+
+ 远程执行插件
+
+
+ LnkOpenCommandLabel
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpServerStatus
+
+
+ 0
+
+
+ True
+
+
+ NoControl
+
+
+ 99, 62
+
+
+ 23, 17
+
+
+ 5
+
+
+ ---
+
+
+ LblOpenCommandSupport
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpServerStatus
+
+
+ 1
+
+
+ True
+
+
+ NoControl
+
+
+ 99, 28
+
+
+ 23, 17
+
+
+ 1
+
+
+ ---
+
+
+ LblServerVersion
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpServerStatus
+
+
+ 2
+
+
+ True
+
+
+ NoControl
+
+
+ 99, 45
+
+
+ 23, 17
+
+
+ 3
+
+
+ ---
+
+
+ LblPlayerCount
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpServerStatus
+
+
+ 3
+
+
+ True
+
+
+ NoControl
+
+
+ 37, 28
+
+
+ 56, 17
+
+
+ 0
+
+
+ 游戏版本
+
+
+ LblServerVersionLabel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpServerStatus
+
+
+ 4
+
+
+ True
+
+
+ NoControl
+
+
+ 25, 45
+
+
+ 68, 17
+
+
+ 2
+
+
+ 当前玩家数
+
+
+ LblPlayerCountLabel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpServerStatus
+
+
+ 5
+
+
+ 380, 34
+
+
+ 200, 100
+
+
+ 5
+
+
+ 服务器状态
+
+
+ GrpServerStatus
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 6
+
+
+ None
+
+
+ True
+
+
+ NoControl
+
+
+ 189, 15
+
+
+ 32, 17
+
+
+ 2
+
+
+ 帮助
+
+
+ LnkRCHelp
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPPlayerCheck
+
+
+ 0
+
+
+ 65, 13
+
+
+ 118, 23
+
+
+ 1
+
+
+ NUDRemotePlayerId
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPPlayerCheck
+
+
+ 1
+
+
+ False
+
+
+ NoControl
+
+
+ 92, 82
+
+
+ 100, 23
+
+
+ 6
+
+
+ 连接
+
+
+ BtnConnectOpenCommand
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPPlayerCheck
+
+
+ 2
+
+
+ True
+
+
+ NoControl
+
+
+ 15, 44
+
+
+ 44, 17
+
+
+ 3
+
+
+ 验证码
+
+
+ LblVerificationCode
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPPlayerCheck
+
+
+ 3
+
+
+ NoControl
+
+
+ 189, 42
+
+
+ 100, 23
+
+
+ 5
+
+
+ 发送验证码
+
+
+ BtnSendVerificationCode
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPPlayerCheck
+
+
+ 4
+
+
+ False
+
+
+ 65, 42
+
+
+ 118, 23
+
+
+ 4
+
+
+ NUDVerificationCode
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPPlayerCheck
+
+
+ 5
+
+
+ True
+
+
+ NoControl
+
+
+ 29, 15
+
+
+ 30, 17
+
+
+ 0
+
+
+ UID
+
+
+ LblRemotePlayerId
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPPlayerCheck
+
+
+ 6
+
+
+ 4, 26
+
+
+ 3, 3, 3, 3
+
+
+ 296, 109
+
+
+ 0
+
+
+ 玩家验证
+
+
+ TPPlayerCheck
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPOpenCommandCheck
+
+
+ 0
+
+
+ NoControl
+
+
+ 92, 82
+
+
+ 100, 23
+
+
+ 3
+
+
+ 连接
+
+
+ BtnConsoleConnect
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPConsoleCheck
+
+
+ 0
+
+
+ 65, 13
+
+
+ 182, 23
+
+
+ 1
+
+
+ TxtToken
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPConsoleCheck
+
+
+ 1
+
+
+ True
+
+
+ NoControl
+
+
+ 15, 16
+
+
+ 44, 17
+
+
+ 0
+
+
+ Token
+
+
+ LblToken
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPConsoleCheck
+
+
+ 2
+
+
+ Microsoft YaHei UI, 9pt, style=Italic
+
+
+ NoControl
+
+
+ 15, 39
+
+
+ 275, 40
+
+
+ 2
+
+
+ 请注意,控制台状态下普通命令必须指定目标
+(即设置包含UID)
+
+
+ LblConsoleTip
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPConsoleCheck
+
+
+ 3
+
+
+ 4, 26
+
+
+ 3, 3, 3, 3
+
+
+ 296, 109
+
+
+ 1
+
+
+ 控制台
+
+
+ TPConsoleCheck
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPOpenCommandCheck
+
+
+ 1
+
+
+ Fill
+
+
+ 3, 19
+
+
+ 304, 139
+
+
+ 0
+
+
+ TPOpenCommandCheck
+
+
+ System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpRemoteCommand
+
+
+ 0
+
+
+ False
+
+
+ 64, 63
+
+
+ 310, 161
+
+
+ 4
+
+
+ 远程执行
+
+
+ GrpRemoteCommand
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 7
+
+
+ None
+
+
+ 136, 34
+
+
+ 182, 23
+
+
+ 2
+
+
+ TxtHost
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 8
+
+
+ None
+
+
+ NoControl
+
+
+ 324, 34
+
+
+ 50, 23
+
+
+ 3
+
+
+ 查询
+
+
+ BtnQueryServerStatus
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 9
+
+
+ None
+
+
+ True
+
+
+ NoControl
+
+
+ 62, 37
+
+
+ 68, 17
+
+
+ 1
+
+
+ 服务器地址
+
+
+ LblHost
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 10
+
+
+ True
+
+
+ 7, 17
+
+
+ PageOpenCommand
+
+
+ GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.7.4.0, Culture=neutral, PublicKeyToken=de2b1c089621e923
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageOpenCommand.ru-RU.resx b/Source/GrasscutterTools/Pages/PageOpenCommand.ru-RU.resx
new file mode 100644
index 0000000..7131b57
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageOpenCommand.ru-RU.resx
@@ -0,0 +1,273 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ InventoryKamera
+
+
+ Приходите и импортируйте свой официальный архив сервера в GC!
+
+
+ Импортировать GOOD
+
+
+
+ 346, 17
+
+
+ Убедитесь, что https:// или http:// включены в IP-адрес.
+
+
+ Состояние сервера
+
+
+ 100, 17
+
+
+ OpenCommand
+
+
+ 119, 62
+
+
+ 119, 28
+
+
+ 119, 45
+
+
+ 27, 28
+
+
+ 86, 17
+
+
+ Версия игры
+
+
+ 7, 45
+
+
+ 106, 17
+
+
+ Кол-во игроков
+
+
+ Open Command
+
+
+ Игрок
+
+
+ 179, 15
+
+
+ 60, 17
+
+
+ Помощь
+
+
+ 55, 13
+
+
+ 93, 82
+
+
+ 110, 23
+
+
+ Подключиться
+
+
+ 18, 44
+
+
+ 31, 17
+
+
+ Код
+
+
+ 179, 42
+
+
+ 110, 23
+
+
+ Отправить код
+
+
+ 55, 42
+
+
+ 19, 15
+
+
+ 296, 109
+
+
+ Консоль
+
+
+ 93, 82
+
+
+ 110, 23
+
+
+ Подключиться
+
+
+ Microsoft YaHei UI, 8pt, style=Italic
+
+
+ 15, 34
+
+
+ 275, 48
+
+
+ Обратите внимание, что обычные команды в консоли должны указывать UID цели
+(установите галочку галочку "Включить UID" на главной)
+
+
+
+ 103, 34
+
+
+ 200, 23
+
+
+ 309, 34
+
+
+ 65, 23
+
+
+ Запрос
+
+
+ 35, 17
+
+
+ Хост
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageOpenCommand.zh-TW.resx b/Source/GrasscutterTools/Pages/PageOpenCommand.zh-TW.resx
new file mode 100644
index 0000000..612e1c3
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageOpenCommand.zh-TW.resx
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 檔案掃描開源工具
+
+
+ 快來把你的官服檔案導入GC吧!
+
+
+ 導入GOOD檔案
+
+
+
+ 206, 17
+
+
+ 請確保地址中包含 http:// 或 https://
+
+
+ 伺服器狀態
+
+
+ 遠程執行插件
+
+
+ 遊戲版本
+
+
+ 當前玩家數
+
+
+ 幫助
+
+
+ 連接
+
+
+ 驗證碼
+
+
+ 發送驗證碼
+
+
+ 296, 109
+
+
+ 請注意,控制台狀態下普通命令必須指定目標
+(即設置包含UID)
+
+
+ 查詢
+
+
+ 伺服器地址
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageSpawn.Designer.cs b/Source/GrasscutterTools/Pages/PageSpawn.Designer.cs
new file mode 100644
index 0000000..0f4f873
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageSpawn.Designer.cs
@@ -0,0 +1,889 @@
+namespace GrasscutterTools.Pages
+{
+ partial class PageSpawn
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 组件设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要修改
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PageSpawn));
+ this.TCSpawnSettings = new System.Windows.Forms.TabControl();
+ this.TPSpawnArgs = new System.Windows.Forms.TabPage();
+ this.NUDEntityDef = new System.Windows.Forms.NumericUpDown();
+ this.NUDEntityAtk = new System.Windows.Forms.NumericUpDown();
+ this.NUDEntityHp = new System.Windows.Forms.NumericUpDown();
+ this.NUDEntityMaxHp = new System.Windows.Forms.NumericUpDown();
+ this.NUDEntityPosZ = new System.Windows.Forms.NumericUpDown();
+ this.NUDEntityPosY = new System.Windows.Forms.NumericUpDown();
+ this.NUDEntityPosX = new System.Windows.Forms.NumericUpDown();
+ this.NUDEntityAmout = new System.Windows.Forms.NumericUpDown();
+ this.NUDEntityLevel = new System.Windows.Forms.NumericUpDown();
+ this.LblSpawnVersionRequireTip = new System.Windows.Forms.Label();
+ this.LblInfiniteHpTip = new System.Windows.Forms.Label();
+ this.LblEntityDef = new System.Windows.Forms.Label();
+ this.LblEntityAtk = new System.Windows.Forms.Label();
+ this.LblEntityHp = new System.Windows.Forms.Label();
+ this.LblEntityMaxHp = new System.Windows.Forms.Label();
+ this.LblEntitySpawnPostion = new System.Windows.Forms.Label();
+ this.LblEntityLevel = new System.Windows.Forms.Label();
+ this.LblEntityAmount = new System.Windows.Forms.Label();
+ this.TPAttackModArgs = new System.Windows.Forms.TabPage();
+ this.LblAMPluginTip = new System.Windows.Forms.Label();
+ this.LblAMPluginIntroduction = new System.Windows.Forms.Label();
+ this.LblAMPlugin = new System.Windows.Forms.Label();
+ this.LnkAMOff = new System.Windows.Forms.LinkLabel();
+ this.LnkAMOn = new System.Windows.Forms.LinkLabel();
+ this.BtnAtReload = new System.Windows.Forms.Button();
+ this.BtnAtClear = new System.Windows.Forms.Button();
+ this.LnkAttackModifierPlugin = new System.Windows.Forms.LinkLabel();
+ this.GrpAMSkills = new System.Windows.Forms.GroupBox();
+ this.TxtAtEntityQ = new System.Windows.Forms.TextBox();
+ this.TxtAtEntityE = new System.Windows.Forms.TextBox();
+ this.TxtAtEntityN = new System.Windows.Forms.TextBox();
+ this.RbAtQ = new System.Windows.Forms.RadioButton();
+ this.RbAtE = new System.Windows.Forms.RadioButton();
+ this.RbAtN = new System.Windows.Forms.RadioButton();
+ this.TPAttackInfusedArgs = new System.Windows.Forms.TabPage();
+ this.NUDAiwiRotateZ = new System.Windows.Forms.NumericUpDown();
+ this.NUDAiwiRotateY = new System.Windows.Forms.NumericUpDown();
+ this.NUDAiwiRotateX = new System.Windows.Forms.NumericUpDown();
+ this.LblAiwiRotate = new System.Windows.Forms.Label();
+ this.NUDAiwiSpread = new System.Windows.Forms.NumericUpDown();
+ this.LblAiwiSpread = new System.Windows.Forms.Label();
+ this.NUDAiwiCount = new System.Windows.Forms.NumericUpDown();
+ this.NUDAiwiHeight = new System.Windows.Forms.NumericUpDown();
+ this.NUDAiwiRadius = new System.Windows.Forms.NumericUpDown();
+ this.LblAiwiCount = new System.Windows.Forms.Label();
+ this.LblAiwiHeight = new System.Windows.Forms.Label();
+ this.LblAiwiRadius = new System.Windows.Forms.Label();
+ this.BtnAttackInfuse = new System.Windows.Forms.Button();
+ this.BtnAiwiReload = new System.Windows.Forms.Button();
+ this.BtnAiwiClear = new System.Windows.Forms.Button();
+ this.BtnAiwiReset = new System.Windows.Forms.Button();
+ this.LblAiwiPlugin = new System.Windows.Forms.Label();
+ this.LnkAttackInfusedWithItem = new System.Windows.Forms.LinkLabel();
+ this.TCSpawnItems = new System.Windows.Forms.TabControl();
+ this.TPSpawnItems = new System.Windows.Forms.TabPage();
+ this.ListEntity = new System.Windows.Forms.ListBox();
+ this.PanelEntityFilterBar = new System.Windows.Forms.Panel();
+ this.TxtEntityFilter = new System.Windows.Forms.TextBox();
+ this.BtnFilterEntity = new System.Windows.Forms.Button();
+ this.TPSpawnRecords = new System.Windows.Forms.TabPage();
+ this.ListSpawnLogs = new System.Windows.Forms.ListBox();
+ this.FLPSpawnRecordControls = new System.Windows.Forms.FlowLayoutPanel();
+ this.BtnSaveSpawnLog = new System.Windows.Forms.Button();
+ this.BtnRemoveSpawnLog = new System.Windows.Forms.Button();
+ this.LblClearSpawnLogs = new System.Windows.Forms.Label();
+ this.MenuSpawnEntityFilter = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.TCSpawnSettings.SuspendLayout();
+ this.TPSpawnArgs.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityDef)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityAtk)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityHp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityMaxHp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosZ)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosY)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosX)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityAmout)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityLevel)).BeginInit();
+ this.TPAttackModArgs.SuspendLayout();
+ this.GrpAMSkills.SuspendLayout();
+ this.TPAttackInfusedArgs.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateZ)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateY)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateX)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiSpread)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiCount)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiHeight)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRadius)).BeginInit();
+ this.TCSpawnItems.SuspendLayout();
+ this.TPSpawnItems.SuspendLayout();
+ this.PanelEntityFilterBar.SuspendLayout();
+ this.TPSpawnRecords.SuspendLayout();
+ this.FLPSpawnRecordControls.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // TCSpawnSettings
+ //
+ resources.ApplyResources(this.TCSpawnSettings, "TCSpawnSettings");
+ this.TCSpawnSettings.Controls.Add(this.TPSpawnArgs);
+ this.TCSpawnSettings.Controls.Add(this.TPAttackModArgs);
+ this.TCSpawnSettings.Controls.Add(this.TPAttackInfusedArgs);
+ this.TCSpawnSettings.Name = "TCSpawnSettings";
+ this.TCSpawnSettings.SelectedIndex = 0;
+ //
+ // TPSpawnArgs
+ //
+ resources.ApplyResources(this.TPSpawnArgs, "TPSpawnArgs");
+ this.TPSpawnArgs.Controls.Add(this.NUDEntityDef);
+ this.TPSpawnArgs.Controls.Add(this.NUDEntityAtk);
+ this.TPSpawnArgs.Controls.Add(this.NUDEntityHp);
+ this.TPSpawnArgs.Controls.Add(this.NUDEntityMaxHp);
+ this.TPSpawnArgs.Controls.Add(this.NUDEntityPosZ);
+ this.TPSpawnArgs.Controls.Add(this.NUDEntityPosY);
+ this.TPSpawnArgs.Controls.Add(this.NUDEntityPosX);
+ this.TPSpawnArgs.Controls.Add(this.NUDEntityAmout);
+ this.TPSpawnArgs.Controls.Add(this.NUDEntityLevel);
+ this.TPSpawnArgs.Controls.Add(this.LblSpawnVersionRequireTip);
+ this.TPSpawnArgs.Controls.Add(this.LblInfiniteHpTip);
+ this.TPSpawnArgs.Controls.Add(this.LblEntityDef);
+ this.TPSpawnArgs.Controls.Add(this.LblEntityAtk);
+ this.TPSpawnArgs.Controls.Add(this.LblEntityHp);
+ this.TPSpawnArgs.Controls.Add(this.LblEntityMaxHp);
+ this.TPSpawnArgs.Controls.Add(this.LblEntitySpawnPostion);
+ this.TPSpawnArgs.Controls.Add(this.LblEntityLevel);
+ this.TPSpawnArgs.Controls.Add(this.LblEntityAmount);
+ this.TPSpawnArgs.Name = "TPSpawnArgs";
+ this.TPSpawnArgs.UseVisualStyleBackColor = true;
+ //
+ // NUDEntityDef
+ //
+ resources.ApplyResources(this.NUDEntityDef, "NUDEntityDef");
+ this.NUDEntityDef.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityDef.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityDef.Name = "NUDEntityDef";
+ this.NUDEntityDef.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityDef.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
+ //
+ // NUDEntityAtk
+ //
+ resources.ApplyResources(this.NUDEntityAtk, "NUDEntityAtk");
+ this.NUDEntityAtk.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityAtk.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityAtk.Name = "NUDEntityAtk";
+ this.NUDEntityAtk.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityAtk.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
+ //
+ // NUDEntityHp
+ //
+ resources.ApplyResources(this.NUDEntityHp, "NUDEntityHp");
+ this.NUDEntityHp.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityHp.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityHp.Name = "NUDEntityHp";
+ this.NUDEntityHp.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityHp.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
+ //
+ // NUDEntityMaxHp
+ //
+ resources.ApplyResources(this.NUDEntityMaxHp, "NUDEntityMaxHp");
+ this.NUDEntityMaxHp.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityMaxHp.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityMaxHp.Name = "NUDEntityMaxHp";
+ this.NUDEntityMaxHp.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityMaxHp.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
+ //
+ // NUDEntityPosZ
+ //
+ resources.ApplyResources(this.NUDEntityPosZ, "NUDEntityPosZ");
+ this.NUDEntityPosZ.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityPosZ.Minimum = new decimal(new int[] {
+ -2147483648,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityPosZ.Name = "NUDEntityPosZ";
+ this.NUDEntityPosZ.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
+ //
+ // NUDEntityPosY
+ //
+ resources.ApplyResources(this.NUDEntityPosY, "NUDEntityPosY");
+ this.NUDEntityPosY.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityPosY.Minimum = new decimal(new int[] {
+ -2147483648,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityPosY.Name = "NUDEntityPosY";
+ this.NUDEntityPosY.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
+ //
+ // NUDEntityPosX
+ //
+ resources.ApplyResources(this.NUDEntityPosX, "NUDEntityPosX");
+ this.NUDEntityPosX.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityPosX.Minimum = new decimal(new int[] {
+ -2147483648,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDEntityPosX.Name = "NUDEntityPosX";
+ this.NUDEntityPosX.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
+ //
+ // NUDEntityAmout
+ //
+ resources.ApplyResources(this.NUDEntityAmout, "NUDEntityAmout");
+ this.NUDEntityAmout.Maximum = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityAmout.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityAmout.Name = "NUDEntityAmout";
+ this.NUDEntityAmout.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityAmout.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
+ //
+ // NUDEntityLevel
+ //
+ resources.ApplyResources(this.NUDEntityLevel, "NUDEntityLevel");
+ this.NUDEntityLevel.Maximum = new decimal(new int[] {
+ 90,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityLevel.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityLevel.Name = "NUDEntityLevel";
+ this.NUDEntityLevel.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NUDEntityLevel.ValueChanged += new System.EventHandler(this.SpawnEntityInputChanged);
+ //
+ // LblSpawnVersionRequireTip
+ //
+ resources.ApplyResources(this.LblSpawnVersionRequireTip, "LblSpawnVersionRequireTip");
+ this.LblSpawnVersionRequireTip.ForeColor = System.Drawing.SystemColors.GrayText;
+ this.LblSpawnVersionRequireTip.Name = "LblSpawnVersionRequireTip";
+ //
+ // LblInfiniteHpTip
+ //
+ resources.ApplyResources(this.LblInfiniteHpTip, "LblInfiniteHpTip");
+ this.LblInfiniteHpTip.ForeColor = System.Drawing.SystemColors.GrayText;
+ this.LblInfiniteHpTip.Name = "LblInfiniteHpTip";
+ //
+ // LblEntityDef
+ //
+ resources.ApplyResources(this.LblEntityDef, "LblEntityDef");
+ this.LblEntityDef.Name = "LblEntityDef";
+ //
+ // LblEntityAtk
+ //
+ resources.ApplyResources(this.LblEntityAtk, "LblEntityAtk");
+ this.LblEntityAtk.Name = "LblEntityAtk";
+ //
+ // LblEntityHp
+ //
+ resources.ApplyResources(this.LblEntityHp, "LblEntityHp");
+ this.LblEntityHp.Name = "LblEntityHp";
+ //
+ // LblEntityMaxHp
+ //
+ resources.ApplyResources(this.LblEntityMaxHp, "LblEntityMaxHp");
+ this.LblEntityMaxHp.Name = "LblEntityMaxHp";
+ //
+ // LblEntitySpawnPostion
+ //
+ resources.ApplyResources(this.LblEntitySpawnPostion, "LblEntitySpawnPostion");
+ this.LblEntitySpawnPostion.Name = "LblEntitySpawnPostion";
+ //
+ // LblEntityLevel
+ //
+ resources.ApplyResources(this.LblEntityLevel, "LblEntityLevel");
+ this.LblEntityLevel.Name = "LblEntityLevel";
+ //
+ // LblEntityAmount
+ //
+ resources.ApplyResources(this.LblEntityAmount, "LblEntityAmount");
+ this.LblEntityAmount.Name = "LblEntityAmount";
+ //
+ // TPAttackModArgs
+ //
+ resources.ApplyResources(this.TPAttackModArgs, "TPAttackModArgs");
+ this.TPAttackModArgs.Controls.Add(this.LblAMPluginTip);
+ this.TPAttackModArgs.Controls.Add(this.LblAMPluginIntroduction);
+ this.TPAttackModArgs.Controls.Add(this.LblAMPlugin);
+ this.TPAttackModArgs.Controls.Add(this.LnkAMOff);
+ this.TPAttackModArgs.Controls.Add(this.LnkAMOn);
+ this.TPAttackModArgs.Controls.Add(this.BtnAtReload);
+ this.TPAttackModArgs.Controls.Add(this.BtnAtClear);
+ this.TPAttackModArgs.Controls.Add(this.LnkAttackModifierPlugin);
+ this.TPAttackModArgs.Controls.Add(this.GrpAMSkills);
+ this.TPAttackModArgs.Name = "TPAttackModArgs";
+ this.TPAttackModArgs.UseVisualStyleBackColor = true;
+ //
+ // LblAMPluginTip
+ //
+ resources.ApplyResources(this.LblAMPluginTip, "LblAMPluginTip");
+ this.LblAMPluginTip.ForeColor = System.Drawing.SystemColors.GrayText;
+ this.LblAMPluginTip.Name = "LblAMPluginTip";
+ //
+ // LblAMPluginIntroduction
+ //
+ resources.ApplyResources(this.LblAMPluginIntroduction, "LblAMPluginIntroduction");
+ this.LblAMPluginIntroduction.Name = "LblAMPluginIntroduction";
+ //
+ // LblAMPlugin
+ //
+ resources.ApplyResources(this.LblAMPlugin, "LblAMPlugin");
+ this.LblAMPlugin.Name = "LblAMPlugin";
+ //
+ // LnkAMOff
+ //
+ resources.ApplyResources(this.LnkAMOff, "LnkAMOff");
+ this.LnkAMOff.Name = "LnkAMOff";
+ this.LnkAMOff.TabStop = true;
+ this.LnkAMOff.Tag = "off";
+ this.LnkAMOff.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.OnAttackModifierCommand);
+ //
+ // LnkAMOn
+ //
+ resources.ApplyResources(this.LnkAMOn, "LnkAMOn");
+ this.LnkAMOn.Name = "LnkAMOn";
+ this.LnkAMOn.TabStop = true;
+ this.LnkAMOn.Tag = "on";
+ this.LnkAMOn.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.OnAttackModifierCommand);
+ //
+ // BtnAtReload
+ //
+ resources.ApplyResources(this.BtnAtReload, "BtnAtReload");
+ this.BtnAtReload.Name = "BtnAtReload";
+ this.BtnAtReload.Tag = "reload";
+ this.BtnAtReload.UseVisualStyleBackColor = true;
+ //
+ // BtnAtClear
+ //
+ resources.ApplyResources(this.BtnAtClear, "BtnAtClear");
+ this.BtnAtClear.Name = "BtnAtClear";
+ this.BtnAtClear.Tag = "remove";
+ this.BtnAtClear.UseVisualStyleBackColor = true;
+ //
+ // LnkAttackModifierPlugin
+ //
+ resources.ApplyResources(this.LnkAttackModifierPlugin, "LnkAttackModifierPlugin");
+ this.LnkAttackModifierPlugin.Name = "LnkAttackModifierPlugin";
+ this.LnkAttackModifierPlugin.TabStop = true;
+ this.LnkAttackModifierPlugin.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkAttackModifierPlugin_LinkClicked);
+ //
+ // GrpAMSkills
+ //
+ resources.ApplyResources(this.GrpAMSkills, "GrpAMSkills");
+ this.GrpAMSkills.Controls.Add(this.TxtAtEntityQ);
+ this.GrpAMSkills.Controls.Add(this.TxtAtEntityE);
+ this.GrpAMSkills.Controls.Add(this.TxtAtEntityN);
+ this.GrpAMSkills.Controls.Add(this.RbAtQ);
+ this.GrpAMSkills.Controls.Add(this.RbAtE);
+ this.GrpAMSkills.Controls.Add(this.RbAtN);
+ this.GrpAMSkills.Name = "GrpAMSkills";
+ this.GrpAMSkills.TabStop = false;
+ //
+ // TxtAtEntityQ
+ //
+ resources.ApplyResources(this.TxtAtEntityQ, "TxtAtEntityQ");
+ this.TxtAtEntityQ.Name = "TxtAtEntityQ";
+ this.TxtAtEntityQ.ReadOnly = true;
+ //
+ // TxtAtEntityE
+ //
+ resources.ApplyResources(this.TxtAtEntityE, "TxtAtEntityE");
+ this.TxtAtEntityE.Name = "TxtAtEntityE";
+ this.TxtAtEntityE.ReadOnly = true;
+ //
+ // TxtAtEntityN
+ //
+ resources.ApplyResources(this.TxtAtEntityN, "TxtAtEntityN");
+ this.TxtAtEntityN.Name = "TxtAtEntityN";
+ this.TxtAtEntityN.ReadOnly = true;
+ //
+ // RbAtQ
+ //
+ resources.ApplyResources(this.RbAtQ, "RbAtQ");
+ this.RbAtQ.Name = "RbAtQ";
+ this.RbAtQ.UseVisualStyleBackColor = true;
+ this.RbAtQ.CheckedChanged += new System.EventHandler(this.OnAttackModifierInputChanged);
+ //
+ // RbAtE
+ //
+ resources.ApplyResources(this.RbAtE, "RbAtE");
+ this.RbAtE.Name = "RbAtE";
+ this.RbAtE.UseVisualStyleBackColor = true;
+ this.RbAtE.CheckedChanged += new System.EventHandler(this.OnAttackModifierInputChanged);
+ //
+ // RbAtN
+ //
+ resources.ApplyResources(this.RbAtN, "RbAtN");
+ this.RbAtN.Checked = true;
+ this.RbAtN.Name = "RbAtN";
+ this.RbAtN.TabStop = true;
+ this.RbAtN.UseVisualStyleBackColor = true;
+ this.RbAtN.CheckedChanged += new System.EventHandler(this.OnAttackModifierInputChanged);
+ //
+ // TPAttackInfusedArgs
+ //
+ resources.ApplyResources(this.TPAttackInfusedArgs, "TPAttackInfusedArgs");
+ this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiRotateZ);
+ this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiRotateY);
+ this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiRotateX);
+ this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiRotate);
+ this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiSpread);
+ this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiSpread);
+ this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiCount);
+ this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiHeight);
+ this.TPAttackInfusedArgs.Controls.Add(this.NUDAiwiRadius);
+ this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiCount);
+ this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiHeight);
+ this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiRadius);
+ this.TPAttackInfusedArgs.Controls.Add(this.BtnAttackInfuse);
+ this.TPAttackInfusedArgs.Controls.Add(this.BtnAiwiReload);
+ this.TPAttackInfusedArgs.Controls.Add(this.BtnAiwiClear);
+ this.TPAttackInfusedArgs.Controls.Add(this.BtnAiwiReset);
+ this.TPAttackInfusedArgs.Controls.Add(this.LblAiwiPlugin);
+ this.TPAttackInfusedArgs.Controls.Add(this.LnkAttackInfusedWithItem);
+ this.TPAttackInfusedArgs.Name = "TPAttackInfusedArgs";
+ this.TPAttackInfusedArgs.UseVisualStyleBackColor = true;
+ //
+ // NUDAiwiRotateZ
+ //
+ resources.ApplyResources(this.NUDAiwiRotateZ, "NUDAiwiRotateZ");
+ this.NUDAiwiRotateZ.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDAiwiRotateZ.Minimum = new decimal(new int[] {
+ -2147483648,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDAiwiRotateZ.Name = "NUDAiwiRotateZ";
+ //
+ // NUDAiwiRotateY
+ //
+ resources.ApplyResources(this.NUDAiwiRotateY, "NUDAiwiRotateY");
+ this.NUDAiwiRotateY.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDAiwiRotateY.Minimum = new decimal(new int[] {
+ -2147483648,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDAiwiRotateY.Name = "NUDAiwiRotateY";
+ //
+ // NUDAiwiRotateX
+ //
+ resources.ApplyResources(this.NUDAiwiRotateX, "NUDAiwiRotateX");
+ this.NUDAiwiRotateX.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDAiwiRotateX.Minimum = new decimal(new int[] {
+ -2147483648,
+ 0,
+ 0,
+ -2147483648});
+ this.NUDAiwiRotateX.Name = "NUDAiwiRotateX";
+ //
+ // LblAiwiRotate
+ //
+ resources.ApplyResources(this.LblAiwiRotate, "LblAiwiRotate");
+ this.LblAiwiRotate.Name = "LblAiwiRotate";
+ //
+ // NUDAiwiSpread
+ //
+ resources.ApplyResources(this.NUDAiwiSpread, "NUDAiwiSpread");
+ this.NUDAiwiSpread.DecimalPlaces = 2;
+ this.NUDAiwiSpread.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDAiwiSpread.Name = "NUDAiwiSpread";
+ //
+ // LblAiwiSpread
+ //
+ resources.ApplyResources(this.LblAiwiSpread, "LblAiwiSpread");
+ this.LblAiwiSpread.Name = "LblAiwiSpread";
+ //
+ // NUDAiwiCount
+ //
+ resources.ApplyResources(this.NUDAiwiCount, "NUDAiwiCount");
+ this.NUDAiwiCount.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDAiwiCount.Name = "NUDAiwiCount";
+ //
+ // NUDAiwiHeight
+ //
+ resources.ApplyResources(this.NUDAiwiHeight, "NUDAiwiHeight");
+ this.NUDAiwiHeight.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDAiwiHeight.Name = "NUDAiwiHeight";
+ //
+ // NUDAiwiRadius
+ //
+ resources.ApplyResources(this.NUDAiwiRadius, "NUDAiwiRadius");
+ this.NUDAiwiRadius.Maximum = new decimal(new int[] {
+ 2147483647,
+ 0,
+ 0,
+ 0});
+ this.NUDAiwiRadius.Name = "NUDAiwiRadius";
+ //
+ // LblAiwiCount
+ //
+ resources.ApplyResources(this.LblAiwiCount, "LblAiwiCount");
+ this.LblAiwiCount.Name = "LblAiwiCount";
+ //
+ // LblAiwiHeight
+ //
+ resources.ApplyResources(this.LblAiwiHeight, "LblAiwiHeight");
+ this.LblAiwiHeight.Name = "LblAiwiHeight";
+ //
+ // LblAiwiRadius
+ //
+ resources.ApplyResources(this.LblAiwiRadius, "LblAiwiRadius");
+ this.LblAiwiRadius.Name = "LblAiwiRadius";
+ //
+ // BtnAttackInfuse
+ //
+ resources.ApplyResources(this.BtnAttackInfuse, "BtnAttackInfuse");
+ this.BtnAttackInfuse.Name = "BtnAttackInfuse";
+ this.BtnAttackInfuse.UseVisualStyleBackColor = true;
+ this.BtnAttackInfuse.Click += new System.EventHandler(this.BtnAttackInfuse_Click);
+ //
+ // BtnAiwiReload
+ //
+ resources.ApplyResources(this.BtnAiwiReload, "BtnAiwiReload");
+ this.BtnAiwiReload.Name = "BtnAiwiReload";
+ this.BtnAiwiReload.Tag = "config";
+ this.BtnAiwiReload.UseVisualStyleBackColor = true;
+ this.BtnAiwiReload.Click += new System.EventHandler(this.OnAttackInfusedCommand);
+ //
+ // BtnAiwiClear
+ //
+ resources.ApplyResources(this.BtnAiwiClear, "BtnAiwiClear");
+ this.BtnAiwiClear.Name = "BtnAiwiClear";
+ this.BtnAiwiClear.Tag = "clear";
+ this.BtnAiwiClear.UseVisualStyleBackColor = true;
+ this.BtnAiwiClear.Click += new System.EventHandler(this.OnAttackInfusedCommand);
+ //
+ // BtnAiwiReset
+ //
+ resources.ApplyResources(this.BtnAiwiReset, "BtnAiwiReset");
+ this.BtnAiwiReset.Name = "BtnAiwiReset";
+ this.BtnAiwiReset.Tag = "none";
+ this.BtnAiwiReset.UseVisualStyleBackColor = true;
+ this.BtnAiwiReset.Click += new System.EventHandler(this.OnAttackInfusedCommand);
+ //
+ // LblAiwiPlugin
+ //
+ resources.ApplyResources(this.LblAiwiPlugin, "LblAiwiPlugin");
+ this.LblAiwiPlugin.Name = "LblAiwiPlugin";
+ //
+ // LnkAttackInfusedWithItem
+ //
+ resources.ApplyResources(this.LnkAttackInfusedWithItem, "LnkAttackInfusedWithItem");
+ this.LnkAttackInfusedWithItem.Name = "LnkAttackInfusedWithItem";
+ this.LnkAttackInfusedWithItem.TabStop = true;
+ this.LnkAttackInfusedWithItem.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkAttackInfusedWithItem_LinkClicked);
+ //
+ // TCSpawnItems
+ //
+ resources.ApplyResources(this.TCSpawnItems, "TCSpawnItems");
+ this.TCSpawnItems.Controls.Add(this.TPSpawnItems);
+ this.TCSpawnItems.Controls.Add(this.TPSpawnRecords);
+ this.TCSpawnItems.Name = "TCSpawnItems";
+ this.TCSpawnItems.SelectedIndex = 0;
+ //
+ // TPSpawnItems
+ //
+ resources.ApplyResources(this.TPSpawnItems, "TPSpawnItems");
+ this.TPSpawnItems.Controls.Add(this.ListEntity);
+ this.TPSpawnItems.Controls.Add(this.PanelEntityFilterBar);
+ this.TPSpawnItems.Name = "TPSpawnItems";
+ this.TPSpawnItems.UseVisualStyleBackColor = true;
+ //
+ // ListEntity
+ //
+ resources.ApplyResources(this.ListEntity, "ListEntity");
+ this.ListEntity.FormattingEnabled = true;
+ this.ListEntity.Name = "ListEntity";
+ this.ListEntity.SelectedIndexChanged += new System.EventHandler(this.ListEntity_SelectedIndexChanged);
+ //
+ // PanelEntityFilterBar
+ //
+ resources.ApplyResources(this.PanelEntityFilterBar, "PanelEntityFilterBar");
+ this.PanelEntityFilterBar.Controls.Add(this.TxtEntityFilter);
+ this.PanelEntityFilterBar.Controls.Add(this.BtnFilterEntity);
+ this.PanelEntityFilterBar.Name = "PanelEntityFilterBar";
+ //
+ // TxtEntityFilter
+ //
+ resources.ApplyResources(this.TxtEntityFilter, "TxtEntityFilter");
+ this.TxtEntityFilter.Name = "TxtEntityFilter";
+ this.TxtEntityFilter.TextChanged += new System.EventHandler(this.TxtEntityFilter_TextChanged);
+ //
+ // BtnFilterEntity
+ //
+ resources.ApplyResources(this.BtnFilterEntity, "BtnFilterEntity");
+ this.BtnFilterEntity.Name = "BtnFilterEntity";
+ this.BtnFilterEntity.UseVisualStyleBackColor = true;
+ this.BtnFilterEntity.Click += new System.EventHandler(this.BtnFilterEntity_Click);
+ //
+ // TPSpawnRecords
+ //
+ resources.ApplyResources(this.TPSpawnRecords, "TPSpawnRecords");
+ this.TPSpawnRecords.Controls.Add(this.ListSpawnLogs);
+ this.TPSpawnRecords.Controls.Add(this.FLPSpawnRecordControls);
+ this.TPSpawnRecords.Name = "TPSpawnRecords";
+ this.TPSpawnRecords.UseVisualStyleBackColor = true;
+ //
+ // ListSpawnLogs
+ //
+ resources.ApplyResources(this.ListSpawnLogs, "ListSpawnLogs");
+ this.ListSpawnLogs.FormattingEnabled = true;
+ this.ListSpawnLogs.Name = "ListSpawnLogs";
+ this.ListSpawnLogs.SelectedIndexChanged += new System.EventHandler(this.ListSpawnLogs_SelectedIndexChanged);
+ //
+ // FLPSpawnRecordControls
+ //
+ resources.ApplyResources(this.FLPSpawnRecordControls, "FLPSpawnRecordControls");
+ this.FLPSpawnRecordControls.Controls.Add(this.BtnSaveSpawnLog);
+ this.FLPSpawnRecordControls.Controls.Add(this.BtnRemoveSpawnLog);
+ this.FLPSpawnRecordControls.Controls.Add(this.LblClearSpawnLogs);
+ this.FLPSpawnRecordControls.Name = "FLPSpawnRecordControls";
+ //
+ // BtnSaveSpawnLog
+ //
+ resources.ApplyResources(this.BtnSaveSpawnLog, "BtnSaveSpawnLog");
+ this.BtnSaveSpawnLog.Name = "BtnSaveSpawnLog";
+ this.BtnSaveSpawnLog.UseVisualStyleBackColor = true;
+ this.BtnSaveSpawnLog.Click += new System.EventHandler(this.BtnSaveSpawnLog_Click);
+ //
+ // BtnRemoveSpawnLog
+ //
+ resources.ApplyResources(this.BtnRemoveSpawnLog, "BtnRemoveSpawnLog");
+ this.BtnRemoveSpawnLog.Name = "BtnRemoveSpawnLog";
+ this.BtnRemoveSpawnLog.UseVisualStyleBackColor = true;
+ this.BtnRemoveSpawnLog.Click += new System.EventHandler(this.BtnRemoveSpawnLog_Click);
+ //
+ // LblClearSpawnLogs
+ //
+ resources.ApplyResources(this.LblClearSpawnLogs, "LblClearSpawnLogs");
+ this.LblClearSpawnLogs.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.LblClearSpawnLogs.Name = "LblClearSpawnLogs";
+ this.LblClearSpawnLogs.Click += new System.EventHandler(this.LblClearSpawnLogs_Click);
+ //
+ // MenuSpawnEntityFilter
+ //
+ resources.ApplyResources(this.MenuSpawnEntityFilter, "MenuSpawnEntityFilter");
+ this.MenuSpawnEntityFilter.Name = "MenuSpawnEntityFilter";
+ //
+ // PageSpawn
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.TCSpawnSettings);
+ this.Controls.Add(this.TCSpawnItems);
+ this.Name = "PageSpawn";
+ this.TCSpawnSettings.ResumeLayout(false);
+ this.TPSpawnArgs.ResumeLayout(false);
+ this.TPSpawnArgs.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityDef)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityAtk)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityHp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityMaxHp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosZ)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosY)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityPosX)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityAmout)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDEntityLevel)).EndInit();
+ this.TPAttackModArgs.ResumeLayout(false);
+ this.TPAttackModArgs.PerformLayout();
+ this.GrpAMSkills.ResumeLayout(false);
+ this.GrpAMSkills.PerformLayout();
+ this.TPAttackInfusedArgs.ResumeLayout(false);
+ this.TPAttackInfusedArgs.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateZ)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateY)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRotateX)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiSpread)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiCount)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiHeight)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRadius)).EndInit();
+ this.TCSpawnItems.ResumeLayout(false);
+ this.TPSpawnItems.ResumeLayout(false);
+ this.PanelEntityFilterBar.ResumeLayout(false);
+ this.PanelEntityFilterBar.PerformLayout();
+ this.TPSpawnRecords.ResumeLayout(false);
+ this.TPSpawnRecords.PerformLayout();
+ this.FLPSpawnRecordControls.ResumeLayout(false);
+ this.FLPSpawnRecordControls.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TabControl TCSpawnSettings;
+ private System.Windows.Forms.TabPage TPSpawnArgs;
+ private System.Windows.Forms.NumericUpDown NUDEntityDef;
+ private System.Windows.Forms.NumericUpDown NUDEntityAtk;
+ private System.Windows.Forms.NumericUpDown NUDEntityHp;
+ private System.Windows.Forms.NumericUpDown NUDEntityMaxHp;
+ private System.Windows.Forms.NumericUpDown NUDEntityPosZ;
+ private System.Windows.Forms.NumericUpDown NUDEntityPosY;
+ private System.Windows.Forms.NumericUpDown NUDEntityPosX;
+ private System.Windows.Forms.NumericUpDown NUDEntityAmout;
+ private System.Windows.Forms.NumericUpDown NUDEntityLevel;
+ private System.Windows.Forms.Label LblSpawnVersionRequireTip;
+ private System.Windows.Forms.Label LblInfiniteHpTip;
+ private System.Windows.Forms.Label LblEntityDef;
+ private System.Windows.Forms.Label LblEntityAtk;
+ private System.Windows.Forms.Label LblEntityHp;
+ private System.Windows.Forms.Label LblEntityMaxHp;
+ private System.Windows.Forms.Label LblEntitySpawnPostion;
+ private System.Windows.Forms.Label LblEntityLevel;
+ private System.Windows.Forms.Label LblEntityAmount;
+ private System.Windows.Forms.TabPage TPAttackModArgs;
+ private System.Windows.Forms.Label LblAMPluginTip;
+ private System.Windows.Forms.Label LblAMPluginIntroduction;
+ private System.Windows.Forms.Label LblAMPlugin;
+ private System.Windows.Forms.LinkLabel LnkAMOff;
+ private System.Windows.Forms.LinkLabel LnkAMOn;
+ private System.Windows.Forms.Button BtnAtReload;
+ private System.Windows.Forms.Button BtnAtClear;
+ private System.Windows.Forms.LinkLabel LnkAttackModifierPlugin;
+ private System.Windows.Forms.GroupBox GrpAMSkills;
+ private System.Windows.Forms.TextBox TxtAtEntityQ;
+ private System.Windows.Forms.TextBox TxtAtEntityE;
+ private System.Windows.Forms.TextBox TxtAtEntityN;
+ private System.Windows.Forms.RadioButton RbAtQ;
+ private System.Windows.Forms.RadioButton RbAtE;
+ private System.Windows.Forms.RadioButton RbAtN;
+ private System.Windows.Forms.TabPage TPAttackInfusedArgs;
+ private System.Windows.Forms.NumericUpDown NUDAiwiRotateZ;
+ private System.Windows.Forms.NumericUpDown NUDAiwiRotateY;
+ private System.Windows.Forms.NumericUpDown NUDAiwiRotateX;
+ private System.Windows.Forms.Label LblAiwiRotate;
+ private System.Windows.Forms.NumericUpDown NUDAiwiSpread;
+ private System.Windows.Forms.Label LblAiwiSpread;
+ private System.Windows.Forms.NumericUpDown NUDAiwiCount;
+ private System.Windows.Forms.NumericUpDown NUDAiwiHeight;
+ private System.Windows.Forms.NumericUpDown NUDAiwiRadius;
+ private System.Windows.Forms.Label LblAiwiCount;
+ private System.Windows.Forms.Label LblAiwiHeight;
+ private System.Windows.Forms.Label LblAiwiRadius;
+ private System.Windows.Forms.Button BtnAttackInfuse;
+ private System.Windows.Forms.Button BtnAiwiReload;
+ private System.Windows.Forms.Button BtnAiwiClear;
+ private System.Windows.Forms.Button BtnAiwiReset;
+ private System.Windows.Forms.Label LblAiwiPlugin;
+ private System.Windows.Forms.LinkLabel LnkAttackInfusedWithItem;
+ private System.Windows.Forms.TabControl TCSpawnItems;
+ private System.Windows.Forms.TabPage TPSpawnItems;
+ private System.Windows.Forms.ListBox ListEntity;
+ private System.Windows.Forms.Panel PanelEntityFilterBar;
+ private System.Windows.Forms.TextBox TxtEntityFilter;
+ private System.Windows.Forms.Button BtnFilterEntity;
+ private System.Windows.Forms.TabPage TPSpawnRecords;
+ private System.Windows.Forms.ListBox ListSpawnLogs;
+ private System.Windows.Forms.FlowLayoutPanel FLPSpawnRecordControls;
+ private System.Windows.Forms.Button BtnSaveSpawnLog;
+ private System.Windows.Forms.Button BtnRemoveSpawnLog;
+ private System.Windows.Forms.Label LblClearSpawnLogs;
+ private System.Windows.Forms.ContextMenuStrip MenuSpawnEntityFilter;
+ }
+}
diff --git a/Source/GrasscutterTools/Pages/PageSpawn.cs b/Source/GrasscutterTools/Pages/PageSpawn.cs
new file mode 100644
index 0000000..6fdec1f
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageSpawn.cs
@@ -0,0 +1,365 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Windows.Forms;
+
+using GrasscutterTools.Game;
+
+using GrasscutterTools.Properties;
+
+using GrasscutterTools.Utils;
+
+namespace GrasscutterTools.Pages
+{
+ internal partial class PageSpawn : BasePage
+ {
+ public PageSpawn()
+ {
+ InitializeComponent();
+
+ InitSpawnRecord();
+ }
+
+ public override void OnLoad()
+ {
+ InitEntityList();
+ }
+
+ public override void OnClosed()
+ {
+ SaveSpawnRecord();
+ }
+
+ #region -- 实体列表 --
+
+ ///
+ /// 初始化实体列表
+ ///
+ private void InitEntityList()
+ {
+ // 初始化列表类型过滤器
+ MenuSpawnEntityFilter.SuspendLayout();
+ MenuSpawnEntityFilter.Items.Clear();
+ void AddTypes(ItemMapGroup group)
+ {
+ foreach (var kv in group)
+ {
+ var item = new ToolStripMenuItem
+ {
+ Text = kv.Key,
+ Tag = kv.Value.Lines,
+ };
+ item.Click += OnEntityTypeFilterClick;
+ MenuSpawnEntityFilter.Items.Add(item);
+ }
+ }
+ //MenuSpawnEntityFilter.Items.Add(new ToolStripLabel("Monsters"));
+ AddTypes(GameData.Monsters);
+ MenuSpawnEntityFilter.Items.Add(new ToolStripSeparator());
+ //MenuSpawnEntityFilter.Items.Add(new ToolStripLabel("Gadgets"));
+ AddTypes(GameData.Gadgets);
+ MenuSpawnEntityFilter.ResumeLayout();
+
+ // 默认显示所有
+ SelectedEntityTypeLines = GameData.Monsters.AllLines.Concat(GameData.Gadgets.AllLines).ToArray();
+ LoadEntityList();
+ }
+
+ ///
+ /// 当前选中的实体类型行
+ ///
+ private string[] SelectedEntityTypeLines;
+
+ ///
+ /// 实体类型过滤器类型选中时触发
+ ///
+ private void OnEntityTypeFilterClick(object sender, EventArgs e)
+ {
+ var btn = sender as ToolStripMenuItem;
+ SelectedEntityTypeLines = btn.Tag as string[];
+ LoadEntityList();
+ }
+
+ ///
+ /// 加载实体列表
+ ///
+ private void LoadEntityList()
+ {
+ UIUtil.ListBoxFilter(ListEntity, SelectedEntityTypeLines, TxtEntityFilter.Text);
+ }
+
+ ///
+ /// 实体列表过滤器文本改变时触发
+ ///
+ private void TxtEntityFilter_TextChanged(object sender, EventArgs e)
+ {
+ LoadEntityList();
+ }
+
+ ///
+ /// 实体列表类型过滤按钮点击时触发
+ ///
+ private void BtnFilterEntity_Click(object sender, EventArgs e)
+ {
+ MenuSpawnEntityFilter.Show(BtnFilterEntity, 0, BtnFilterEntity.Height);
+ }
+
+ ///
+ /// 实体列表选中项改变时触发
+ ///
+ private void ListEntity_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // 根据当前所在页面确定要做的事情
+
+ // 攻击修改界面
+ if (TCSpawnSettings.SelectedTab == TPAttackModArgs)
+ {
+ OnAttackModifierInputChanged(sender, e);
+ }
+ // 攻击注入界面
+ else if (TCSpawnSettings.SelectedTab == TPAttackInfusedArgs)
+ {
+ // 无事发生,因为要页面上点击按钮才会生成命令
+ }
+ // 生成参数界面 或其它
+ else
+ {
+ // 触发输入改变事件
+ SpawnEntityInputChanged(sender, e);
+ }
+ }
+
+ #endregion -- 实体列表 --
+
+ #region -- 生成记录 --
+
+ ///
+ /// 生成命令记录文件路径
+ ///
+ private readonly string SpawnCommandsRecordPath = Path.Combine(Application.LocalUserAppDataPath, "SpawnCommands.txt");
+
+ ///
+ /// 生成命令记录
+ ///
+ private List SpawnCommands;
+
+ ///
+ /// 初始化生成记录
+ ///
+ private void InitSpawnRecord()
+ {
+ if (File.Exists(SpawnCommandsRecordPath))
+ {
+ SpawnCommands = GameCommand.Parse(File.ReadAllText(SpawnCommandsRecordPath));
+ ListSpawnLogs.Items.AddRange(SpawnCommands.Select(c => c.Name).ToArray());
+ }
+ else
+ {
+ SpawnCommands = new List();
+ }
+ }
+
+ ///
+ /// 保存生成记录
+ ///
+ private void SaveSpawnRecord()
+ {
+ File.WriteAllText(SpawnCommandsRecordPath, GameCommand.ToString(SpawnCommands));
+ }
+
+ ///
+ /// 生成记录列表选中项改变时触发
+ ///
+ private void ListSpawnLogs_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (ListSpawnLogs.SelectedIndex >= 0)
+ {
+ BtnRemoveSpawnLog.Enabled = true;
+ SetCommand(SpawnCommands[ListSpawnLogs.SelectedIndex].Command);
+ }
+ else
+ {
+ BtnRemoveSpawnLog.Enabled = false;
+ }
+ }
+
+ ///
+ /// 点击保存生成记录按钮时触发
+ ///
+ private void BtnSaveSpawnLog_Click(object sender, EventArgs e)
+ {
+ // 不再重新生成,直接记录当前命令行的内容
+ //if (GenSpawnEntityCommand())
+ {
+ var cmdText = GetCommand();
+ var cmd = new GameCommand($"{ListEntity.SelectedItem} | {cmdText}", cmdText);
+ SpawnCommands.Add(cmd);
+ ListSpawnLogs.Items.Add(cmd.Name);
+ SaveSpawnRecord();
+ }
+ }
+
+ ///
+ /// 点击移除生成记录按钮时触发
+ ///
+ private void BtnRemoveSpawnLog_Click(object sender, EventArgs e)
+ {
+ if (ListSpawnLogs.SelectedIndex >= 0)
+ {
+ SpawnCommands.RemoveAt(ListSpawnLogs.SelectedIndex);
+ ListSpawnLogs.Items.RemoveAt(ListSpawnLogs.SelectedIndex);
+ SaveSpawnRecord();
+ }
+ }
+
+ ///
+ /// 点击清空生成记录按钮时触发
+ ///
+ private void LblClearSpawnLogs_Click(object sender, EventArgs e)
+ {
+ if (MessageBox.Show(Resources.AskConfirmDeletion, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
+ {
+ SpawnCommands.Clear();
+ ListSpawnLogs.Items.Clear();
+ SaveSpawnRecord();
+ }
+ }
+
+ #endregion -- 生成记录 --
+
+ #region -- 生成参数 --
+
+ ///
+ /// 生成页面输入改变时触发
+ ///
+ private void SpawnEntityInputChanged(object sender, EventArgs e)
+ {
+ if (ListEntity.SelectedIndex == -1) return;
+ var selectedItem = ListEntity.SelectedItem as string;
+ var id = ItemMap.ToId(selectedItem);
+
+ if (CommandVersion.Check(CommandVersion.V1_3_1))
+ {
+ var args = id.ToString();
+ void CheckAndConnect(NumericUpDown input, int value, string prefix)
+ {
+ if (input.Value > value)
+ args += prefix + input.Value;
+ }
+ CheckAndConnect(NUDEntityAmout, 1, " x");
+ CheckAndConnect(NUDEntityLevel, 1, " lv");
+ CheckAndConnect(NUDEntityHp, -1, " hp");
+ CheckAndConnect(NUDEntityMaxHp, 0, " maxhp");
+ CheckAndConnect(NUDEntityAtk, -1, " atk");
+ CheckAndConnect(NUDEntityDef, -1, " def");
+ if (NUDEntityPosX.Value != 0 || NUDEntityPosY.Value != 0 || NUDEntityPosZ.Value != 0)
+ args += $" {NUDEntityPosX.Value} {NUDEntityPosY.Value} {NUDEntityPosZ.Value}";
+ SetCommand("/spawn", args);
+ }
+ else
+ {
+ SetCommand("/spawn", $"{id} {NUDEntityAmout.Value} {NUDEntityLevel.Value}");
+ }
+ }
+
+ #endregion -- 生成参数 --
+
+ #region -- 攻击修改参数 --
+
+ ///
+ /// 攻击修改插件链接标签点击时触发
+ ///
+ private void LnkAttackModifierPlugin_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ UIUtil.OpenURL("https://github.com/NotThorny/AttackModifier");
+ }
+
+ ///
+ /// 攻击修改输入改变事件
+ ///
+ private void OnAttackModifierInputChanged(object sender, EventArgs e)
+ {
+ if (ListEntity.SelectedIndex == -1) return;
+ var selectedItem = ListEntity.SelectedItem as string;
+ var id = ItemMap.ToId(selectedItem);
+ char skill;
+ if (RbAtE.Checked)
+ {
+ skill = 'e';
+ TxtAtEntityE.Text = selectedItem;
+ }
+ else if (RbAtQ.Checked)
+ {
+ skill = 'q';
+ TxtAtEntityQ.Text = selectedItem;
+ }
+ else
+ {
+ skill = 'n';
+ TxtAtEntityN.Text = selectedItem;
+ }
+ SetCommand("/at", $"set {skill} {id}");
+ }
+
+ ///
+ /// 攻击修改页面命令事件
+ ///
+ private void OnAttackModifierCommand(object sender, EventArgs e)
+ {
+ SetCommand("/at", (sender as Control).Tag as string);
+ }
+
+ #endregion -- 攻击修改参数 --
+
+ #region -- 攻击注入参数 --
+
+ ///
+ /// 攻击注入插件链接标签点击时触发
+ ///
+ private void LnkAttackInfusedWithItem_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ UIUtil.OpenURL("https://github.com/snoobi-seggs/AttackInfusedWithItem");
+ }
+
+ ///
+ /// 攻击注入页面命令事件
+ ///
+ private void OnAttackInfusedCommand(object sender, EventArgs e)
+ {
+ SetCommand("/snoospawn", (sender as Control).Tag as string);
+ }
+
+ ///
+ /// 点击攻击注入按钮时触发
+ ///
+ private void BtnAttackInfuse_Click(object sender, EventArgs e)
+ {
+ if (ListEntity.SelectedIndex == -1) return;
+ var selectedItem = ListEntity.SelectedItem as string;
+ var id = ItemMap.ToId(selectedItem);
+
+ var args = string.Empty;
+ var flag = false;
+ void ConnectArg(NumericUpDown input)
+ {
+ if (flag || input.Value != 0)
+ {
+ flag = true;
+ args = " " + input.Value + args;
+ }
+ }
+ ConnectArg(NUDAiwiRotateZ);
+ ConnectArg(NUDAiwiRotateY);
+ ConnectArg(NUDAiwiRotateX);
+ ConnectArg(NUDAiwiSpread);
+ ConnectArg(NUDAiwiCount);
+ ConnectArg(NUDAiwiHeight);
+ ConnectArg(NUDAiwiRadius);
+ SetCommand("/snoospawn", id.ToString() + args);
+ //SetCommand("/at", $"{id} {NUDAiwiRadius.Value} {NUDAiwiHeight.Value} {NUDAiwiCount.Value} {NUDAiwiSpread.Value} {NUDAiwiRotateX.Value} {NUDAiwiRotateY.Value} {NUDAiwiRotateZ.Value}");
+ }
+
+ #endregion -- 攻击注入参数 --
+ }
+}
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageSpawn.en-US.resx b/Source/GrasscutterTools/Pages/PageSpawn.en-US.resx
new file mode 100644
index 0000000..3ffe436
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageSpawn.en-US.resx
@@ -0,0 +1,292 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Spawn args
+
+
+ AttackModifier
+
+
+ AttackInfused
+
+
+
+ 144, 17
+
+
+ v Require GC > v1.3.1 v
+
+
+ 98, 17
+
+
+ HP 0 for infinite
+
+
+ 55, 17
+
+
+ Defense
+
+
+ 44, 17
+
+
+ Attack
+
+
+ 24, 17
+
+
+ HP
+
+
+ 182, 82
+
+
+ 53, 17
+
+
+ Max HP
+
+
+ Pos: x: y: z:
+
+
+ 200, 27
+
+
+ 37, 17
+
+
+ Level
+
+
+ 53, 17
+
+
+ Amount
+
+
+ 121, 17
+
+
+ Meet the real Thor!
+
+
+ 326, 17
+
+
+ This plugin can use Gadget to replace character attack
+
+
+ 46, 17
+
+
+ Plugin:
+
+
+ 26, 17
+
+
+ Off
+
+
+ 25, 17
+
+
+ On
+
+
+ Reload config
+
+
+ Clear all gadgets
+
+
+ Replace Skill
+
+
+ 238, 17
+
+
+ Rot: x: y: z:
+
+
+ 50, 17
+
+
+ Spread
+
+
+ 42, 17
+
+
+ Count
+
+
+ 46, 17
+
+
+ Height
+
+
+ 47, 17
+
+
+ Radius
+
+
+ Attack Infuse
+
+
+ Reload config
+
+
+ Clear
+
+
+ Reset
+
+
+ 46, 17
+
+
+ Plugin:
+
+
+ Entities
+
+
+ Spawn Records
+
+
+ √ Record
+
+
+ × Delete
+
+
+ 50, 17
+
+
+ X Clear
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageSpawn.resx b/Source/GrasscutterTools/Pages/PageSpawn.resx
new file mode 100644
index 0000000..195cbc4
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageSpawn.resx
@@ -0,0 +1,1914 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ 0
+
+
+ 1
+
+
+ 3
+
+
+ 0
+
+
+
+ 60, 23
+
+
+ 2
+
+
+
+ NoControl
+
+
+ 4
+
+
+ 9
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TxtAtEntityN
+
+
+ TPAttackInfusedArgs
+
+
+ 235, 17
+
+
+ TPAttackInfusedArgs
+
+
+ NoControl
+
+
+ 攻击修改参数
+
+
+ 19, 82
+
+
+ TPAttackInfusedArgs
+
+
+ FLPSpawnRecordControls
+
+
+ 7
+
+
+ NoControl
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 84, 3
+
+
+ AttackModifier
+
+
+ 7
+
+
+ 100, 23
+
+
+ System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Q
+
+
+ 5
+
+
+ 1
+
+
+ 9, 61
+
+
+ 10
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoControl
+
+
+ 20, 17
+
+
+ TPSpawnArgs
+
+
+ 44, 17
+
+
+ 20, 27
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 7
+
+
+ TPAttackModArgs
+
+
+ True
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 5
+
+
+ TPAttackModArgs
+
+
+ 17
+
+
+ TPSpawnRecords
+
+
+ NoControl
+
+
+ 182, 128
+
+
+ TxtAtEntityE
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 1
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ × 删除
+
+
+ 26, 24
+
+
+ 8
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 清空实体
+
+
+ NoControl
+
+
+ True
+
+
+ TPAttackModArgs
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 2
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPSpawnArgs
+
+
+ 44, 17
+
+
+ 1
+
+
+ TPAttackInfusedArgs
+
+
+ TPSpawnArgs
+
+
+ 7, 103
+
+
+ 245, 3
+
+
+ TPAttackModArgs
+
+
+ 150, 30
+
+
+ 80, 23
+
+
+ RbAtQ
+
+
+ TPAttackInfusedArgs
+
+
+ NoControl
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 66, 72
+
+
+ 12
+
+
+ 157, 101
+
+
+ FLPSpawnRecordControls
+
+
+ 69, 25
+
+
+ 7, 45
+
+
+ TPAttackInfusedArgs
+
+
+ 4, 26
+
+
+ LnkAttackModifierPlugin
+
+
+ True
+
+
+ 68, 17
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoControl
+
+
+ 4
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 5
+
+
+ True
+
+
+ 1
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Bottom
+
+
+ BtnFilterEntity
+
+
+ LblAiwiHeight
+
+
+ GrpAMSkills
+
+
+ TPAttackModArgs
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 1
+
+
+ 1
+
+
+ X 清空
+
+
+ 338, 195
+
+
+ TPSpawnArgs
+
+
+ 3, 3
+
+
+ NoControl
+
+
+ 0
+
+
+ Top, Bottom, Left, Right
+
+
+ 6, 3
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 0
+
+
+ 旋转: x: y: z:
+
+
+ 20, 17
+
+
+ TPAttackInfusedArgs
+
+
+ 14, 73
+
+
+ TCSpawnItems
+
+
+ NoControl
+
+
+ 清空实体!!
+
+
+ GrpAMSkills
+
+
+ 80, 23
+
+
+ True
+
+
+ BtnAttackInfuse
+
+
+ True
+
+
+ TPAttackInfusedArgs
+
+
+ 248, 101
+
+
+ 2
+
+
+ 10
+
+
+ 1
+
+
+ 0, 3
+
+
+ TPAttackModArgs
+
+
+ 6
+
+
+ 7, 74
+
+
+ True
+
+
+ TPSpawnArgs
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPSpawnArgs
+
+
+ 78, 155
+
+
+ N
+
+
+ 数量:
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 274, 159
+
+
+ LblEntityMaxHp
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 19, 60
+
+
+ 1
+
+
+ 12
+
+
+ TPAttackModArgs
+
+
+ 44, 17
+
+
+ NoControl
+
+
+ TPSpawnArgs
+
+
+ 44, 17
+
+
+ 94, 130
+
+
+ 80, 23
+
+
+ 56, 17
+
+
+ 2
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ 242, 23
+
+
+ TCSpawnSettings
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 血量为 0 表示无限
+
+
+ TPAttackModArgs
+
+
+ 2
+
+
+ TCSpawnSettings
+
+
+ TPSpawnRecords
+
+
+ 14, 15
+
+
+ 3
+
+
+ 2
+
+
+ 14
+
+
+ NoControl
+
+
+ 2
+
+
+ TxtAtEntityQ
+
+
+ GrpAMSkills
+
+
+ 227, 17
+
+
+ 17
+
+
+ 以下参数至少要求 GC v1.3.1
+
+
+ TPAttackModArgs
+
+
+ 75, 23
+
+
+ 182, 3
+
+
+ 6
+
+
+ System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 7
+
+
+ System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoControl
+
+
+ 4, 26
+
+
+ 250, 23
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoControl
+
+
+ 0
+
+
+ 攻击注入
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ GrpAMSkills
+
+
+ 80, 23
+
+
+ 5
+
+
+ 1
+
+
+ 4, 26
+
+
+ 0
+
+
+ NUDEntityAtk
+
+
+ 139, 17
+
+
+ 178, 45
+
+
+ 0
+
+
+ 防御力:
+
+
+ 250, 23
+
+
+ 1
+
+
+ 16
+
+
+ 3, 3, 3, 3
+
+
+ 3, 3, 3, 3
+
+
+ 6, 24
+
+
+ TPAttackInfusedArgs
+
+
+ 2
+
+
+ 等级:
+
+
+ 12
+
+
+ 最大血量:
+
+
+ System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ LblAiwiRadius
+
+
+ 4, 26
+
+
+ BtnRemoveSpawnLog
+
+
+ 355, 7
+
+
+ 3, 3, 3, 3
+
+
+ 107, 17
+
+
+ GrpAMSkills
+
+
+ NUDEntityPosX
+
+
+ 78, 126
+
+
+ BtnAtClear
+
+
+ 重置
+
+
+ 攻击注入参数
+
+
+ NoControl
+
+
+ 44, 17
+
+
+ 3
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPSpawnItems
+
+
+ 3, 3, 3, 3
+
+
+ 8
+
+
+ 228, 72
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NUDEntityLevel
+
+
+ System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ LblInfiniteHpTip
+
+
+ 0
+
+
+ 11
+
+
+ 4
+
+
+ 9, 170
+
+
+ 17
+
+
+ 2
+
+
+ 14
+
+
+ TPSpawnArgs
+
+
+ TPSpawnArgs
+
+
+ 0
+
+
+ NoControl
+
+
+ LblEntitySpawnPostion
+
+
+ 14, 44
+
+
+ NUDEntityHp
+
+
+ NoControl
+
+
+ LblAiwiRotate
+
+
+ BtnAiwiReset
+
+
+ 0
+
+
+ TPSpawnArgs
+
+
+ 0
+
+
+ ListSpawnLogs
+
+
+ 56, 17
+
+
+ TCSpawnSettings
+
+
+ NoControl
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPSpawnArgs
+
+
+ LblEntityLevel
+
+
+ System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 8
+
+
+ NUDEntityMaxHp
+
+
+ NUDAiwiRotateX
+
+
+ LblSpawnVersionRequireTip
+
+
+ RbAtE
+
+
+ 33, 21
+
+
+ NoControl
+
+
+ 69, 80
+
+
+ LblAiwiCount
+
+
+ 16
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 44, 17
+
+
+ 15
+
+
+ 13
+
+
+ TPSpawnArgs
+
+
+ 274, 160
+
+
+ NUDEntityDef
+
+
+ LnkAMOff
+
+
+ 6
+
+
+ TPAttackInfusedArgs
+
+
+ 44, 17
+
+
+ 13
+
+
+ 4
+
+
+ AttackInfusedWithItem
+
+
+ 338, 195
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 8
+
+
+ PanelEntityFilterBar
+
+
+ PanelEntityFilterBar
+
+
+ 11
+
+
+ 1
+
+
+ 19, 157
+
+
+ TPAttackInfusedArgs
+
+
+ 攻击力:
+
+
+ NUDAiwiSpread
+
+
+ Top, Right
+
+
+ 高度:
+
+
+ ListEntity
+
+
+ True
+
+
+ 开
+
+
+ 这个插件可以使用 Gadget 替换角色攻击
+
+
+ 2
+
+
+ NoControl
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 8
+
+
+ 5
+
+
+ GrpAMSkills
+
+
+ 三
+
+
+ 3, 3
+
+
+ BtnAiwiReload
+
+
+ NUDEntityAmout
+
+
+ TCSpawnItems
+
+
+ 323, 103
+
+
+ 94, 17
+
+
+ 15
+
+
+ LblEntityDef
+
+
+ 44, 17
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 0
+
+
+ NUDEntityPosZ
+
+
+ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 1
+
+
+ True
+
+
+ 重载配置
+
+
+ NoControl
+
+
+ 6, 41
+
+
+ 见识一下真正的雷神吧!
+
+
+ 实体列表
+
+
+ 3
+
+
+ RbAtN
+
+
+ True
+
+
+ 338, 195
+
+
+ 56, 3
+
+
+ 178, 74
+
+
+ TxtEntityFilter
+
+
+ TPAttackInfusedArgs
+
+
+ 60, 23
+
+
+ 7
+
+
+ 6
+
+
+ 6
+
+
+ NoControl
+
+
+ 280, 195
+
+
+ PageSpawn
+
+
+ 13
+
+
+ 8
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ E
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NUDAiwiRotateZ
+
+
+ NoControl
+
+
+ True
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TPAttackInfusedArgs
+
+
+ Fill
+
+
+ 9
+
+
+ FLPSpawnRecordControls
+
+
+ BtnAiwiClear
+
+
+ TPAttackInfusedArgs
+
+
+ 0
+
+
+ Top, Bottom, Left
+
+
+ TPSpawnArgs
+
+
+ 80, 23
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 15
+
+
+ True
+
+
+ NoControl
+
+
+ 80, 23
+
+
+ TPAttackInfusedArgs
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 1
+
+
+ 36, 21
+
+
+ 11
+
+
+ NUDEntityPosY
+
+
+ TCSpawnItems
+
+
+ NoControl
+
+
+ NoControl
+
+
+ NoControl
+
+
+ True
+
+
+ 替换技能
+
+
+ TPAttackInfusedArgs
+
+
+ NoControl
+
+
+ True
+
+
+ 240, 80
+
+
+ 80, 23
+
+
+ 19, 128
+
+
+ True
+
+
+ 240, 25
+
+
+ 10
+
+
+ 169, 155
+
+
+ TPSpawnArgs
+
+
+ TPSpawnArgs
+
+
+ 80, 23
+
+
+ LnkAMOn
+
+
+ 5
+
+
+ TPAttackInfusedArgs
+
+
+ 1
+
+
+ 67, 72
+
+
+ 17
+
+
+ 13, 166
+
+
+ 生成参数
+
+
+ 4
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Fill
+
+
+ TCSpawnSettings
+
+
+ 1
+
+
+ LblAiwiPlugin
+
+
+ True
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ BtnAtReload
+
+
+ TPSpawnArgs
+
+
+ 生成记录本
+
+
+ 1
+
+
+ BtnSaveSpawnLog
+
+
+ TPAttackInfusedArgs
+
+
+ 1
+
+
+ True
+
+
+ NUDAiwiRotateY
+
+
+ 11
+
+
+ LblClearSpawnLogs
+
+
+ 10
+
+
+ 3, 163
+
+
+ 66, 101
+
+
+ 1
+
+
+ LblEntityHp
+
+
+ 0
+
+
+ False
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 60, 23
+
+
+ 170, 82
+
+
+ 119, 166
+
+
+ 0
+
+
+ 60, 23
+
+
+ 插件:
+
+
+ 100, 23
+
+
+ 156, 3
+
+
+ True
+
+
+ 274, 30
+
+
+ 44, 17
+
+
+ 75, 23
+
+
+ LblEntityAtk
+
+
+ 60, 23
+
+
+ True
+
+
+ 3, 3, 3, 3
+
+
+ √ 记录
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 100, 23
+
+
+ NoControl
+
+
+ True
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 6, 3
+
+
+ 4
+
+
+ 0
+
+
+ 20, 106
+
+
+ 250, 23
+
+
+ NoControl
+
+
+ LblAMPlugin
+
+
+ $this
+
+
+ NUDAiwiCount
+
+
+ 16
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoControl
+
+
+ 225, 166
+
+
+ NUDAiwiHeight
+
+
+ 162, 17
+
+
+ 2
+
+
+ 36, 21
+
+
+ TPSpawnArgs
+
+
+ 9
+
+
+ True
+
+
+ 0
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ 80, 23
+
+
+ TPSpawnArgs
+
+
+ 14
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 67, 43
+
+
+ 232, 170
+
+
+ NoControl
+
+
+ 7, 17
+
+
+ 274, 29
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Left
+
+
+ 2
+
+
+ 1
+
+
+ 数量:
+
+
+ TPSpawnRecords
+
+
+ 60, 23
+
+
+ 346, 225
+
+
+ 288, 225
+
+
+ 0
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 12
+
+
+ 重载配置
+
+
+ Top, Left, Right
+
+
+ TPAttackInfusedArgs
+
+
+ NoControl
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 6
+
+
+ 3, 7
+
+
+ 17
+
+
+ 235, 17
+
+
+ $this
+
+
+ 范围:
+
+
+ 3, 3
+
+
+ System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PanelEntityFilterBar
+
+
+ 260, 155
+
+
+ 4
+
+
+ LblAMPluginTip
+
+
+ 14
+
+
+ MenuSpawnEntityFilter
+
+
+ 217, 23
+
+
+ 关
+
+
+ GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.7.4.0, Culture=neutral, PublicKeyToken=de2b1c089621e923
+
+
+ LnkAttackInfusedWithItem
+
+
+ GrpAMSkills
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ FLPSpawnRecordControls
+
+
+ 61, 4
+
+
+ NoControl
+
+
+ 插件:
+
+
+ TPSpawnArgs
+
+
+ 15
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 3
+
+
+ 7
+
+
+ 4, 26
+
+
+ 228, 43
+
+
+ 100, 23
+
+
+ 67, 14
+
+
+ TPSpawnItems
+
+
+ 280, 195
+
+
+ 13
+
+
+ 血量:
+
+
+ 3
+
+
+ LblAiwiSpread
+
+
+ 16
+
+
+ True
+
+
+ NoControl
+
+
+ 3
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 4
+
+
+ 44, 17
+
+
+ 1
+
+
+ Top
+
+
+ 165, 6
+
+
+ NUDAiwiRadius
+
+
+ TPSpawnItems
+
+
+ 0
+
+
+ 66, 43
+
+
+ 56, 3
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 194, 27
+
+
+ 9
+
+
+ 位置: x: y: z:
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 扩散:
+
+
+ 17
+
+
+ 240, 126
+
+
+ 80, 23
+
+
+ 3, 33
+
+
+ 5
+
+
+ TPAttackModArgs
+
+
+ 3
+
+
+ LblEntityAmount
+
+
+ 140, 17
+
+
+ 5
+
+
+ 2
+
+
+ LblAMPluginIntroduction
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ True
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageSpawn.ru-RU.resx b/Source/GrasscutterTools/Pages/PageSpawn.ru-RU.resx
new file mode 100644
index 0000000..e9a48f8
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageSpawn.ru-RU.resx
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Спавн
+
+
+ Изменение атаки
+
+
+ Элем. инфузия
+
+
+
+ 149, 17
+
+
+ Требуется GC >= v1.3.1
+
+
+ 157, 17
+
+
+ HP 0 для бесконечности
+
+
+ 53, 17
+
+
+ Защита
+
+
+ 42, 17
+
+
+ Атака
+
+
+ 24, 17
+
+
+ HP
+
+
+ 63, 17
+
+
+ Макс. HP
+
+
+ 238, 17
+
+
+ Поз x: y: z:
+
+
+ 26, 17
+
+
+ Ур.
+
+
+ 34, 17
+
+
+ Кол.
+
+
+ 190, 17
+
+
+ Встречайте настоящего Тора!
+
+
+ 213, 17
+
+
+ Атаки можно заменить гаджетом
+
+
+ 52, 17
+
+
+ Плагин
+
+
+ 194, 3
+
+
+ 41, 17
+
+
+ выкл.
+
+
+ 32, 17
+
+
+ вкл.
+
+
+ Перезагрузить
+
+
+ Очистить гаджеты
+
+
+ Замена навыков
+
+
+ 241, 17
+
+
+ Повер. x: y: z:
+
+
+ 152, 74
+
+
+ 74, 17
+
+
+ Распростр.
+
+
+ 51, 17
+
+
+ Кол-во
+
+
+ 51, 17
+
+
+ Высота
+
+
+ 49, 17
+
+
+ Радиус
+
+
+ Создать инфузию
+
+
+ Перезагрузка
+
+
+ Очистить
+
+
+ Сбросить
+
+
+ 52, 17
+
+
+ Плагин
+
+
+ Список объектов
+
+
+ Записи спавнов
+
+
+ √ Сохр.
+
+
+ × Удалить
+
+
+ 76, 17
+
+
+ X Очистить
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Pages/PageSpawn.zh-TW.resx b/Source/GrasscutterTools/Pages/PageSpawn.zh-TW.resx
new file mode 100644
index 0000000..d8ae857
--- /dev/null
+++ b/Source/GrasscutterTools/Pages/PageSpawn.zh-TW.resx
@@ -0,0 +1,205 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 以下參數至少要求 GC v1.3.1
+
+
+ 血量為 0 表示無限
+
+
+ 防禦力:
+
+
+ 攻擊力:
+
+
+ 等級:
+
+
+ 數量:
+
+
+ 生成參數
+
+
+ 見識一下真正的雷神吧!
+
+
+ 這個插件可以使用 Gadget 替換角色攻擊
+
+
+ 關
+
+
+ 開
+
+
+ 重載配置
+
+
+ 清空實體!!
+
+
+ 替換技能
+
+
+ 攻擊修改參數
+
+
+ 旋轉: x: y: z:
+
+
+ 擴散:
+
+
+ 數量:
+
+
+ 範圍:
+
+
+ 攻擊注入
+
+
+ 重載配置
+
+
+ 清空實體
+
+
+ 攻擊注入參數
+
+
+ 實體列表
+
+
+ √ 記錄
+
+
+ × 刪除
+
+
+ 生成記錄本
+
+
+
+ 61, 4
+
+
\ No newline at end of file
diff --git a/Source/GrasscutterTools/Utils/Common.cs b/Source/GrasscutterTools/Utils/Common.cs
new file mode 100644
index 0000000..453f34b
--- /dev/null
+++ b/Source/GrasscutterTools/Utils/Common.cs
@@ -0,0 +1,25 @@
+using System;
+
+using GrasscutterTools.Game;
+using GrasscutterTools.OpenCommand;
+
+namespace GrasscutterTools.Utils
+{
+ internal static class Common
+ {
+ ///
+ /// 应用版本
+ ///
+ public static Version AppVersion { get; set; }
+
+ ///
+ /// 命令版本
+ ///
+ public static CommandVersion CommandVersion { get; } = CommandVersion.Latest();
+
+ ///
+ /// 开放命令接口
+ ///
+ public static OpenCommandAPI OC { get; set; }
+ }
+}
diff --git a/Source/GrasscutterTools/Utils/UIUtil.cs b/Source/GrasscutterTools/Utils/UIUtil.cs
index 11e9456..3644f3b 100644
--- a/Source/GrasscutterTools/Utils/UIUtil.cs
+++ b/Source/GrasscutterTools/Utils/UIUtil.cs
@@ -1,7 +1,10 @@
-using System.Linq;
+using System;
+using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
+using GrasscutterTools.Properties;
+
namespace GrasscutterTools.Utils
{
public static class UIUtil
@@ -41,5 +44,39 @@ namespace GrasscutterTools.Utils
}
listBox.EndUpdate();
}
+
+
+ ///
+ /// 使用浏览器打开网址
+ ///
+ /// 网址
+ public static void OpenURL(string url)
+ {
+ try
+ {
+ System.Diagnostics.Process.Start(url);
+ }
+ catch (Exception)
+ {
+ MessageBox.Show(Resources.BrowserOpenFailedTip + "\n " + url,
+ Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ }
+ }
+
+
+ ///
+ /// 提示气泡对象
+ ///
+ private readonly static ToolTip TTip = new ToolTip();
+
+ ///
+ /// 在指定控件上显示提示气泡
+ ///
+ /// 消息
+ /// 控件
+ public static void ShowTip(string message, Control control)
+ {
+ TTip.Show(message, control, 0, control.Size.Height, 3000);
+ }
}
}