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); + } } }