sync fork

This commit is contained in:
Egor Bron 2022-11-20 13:39:12 +03:00
commit 734f487cd3
41 changed files with 28039 additions and 6623 deletions

View File

@ -58,6 +58,9 @@
<setting name="MainFormSize" serializeAs="String"> <setting name="MainFormSize" serializeAs="String">
<value>0, 0</value> <value>0, 0</value>
</setting> </setting>
<setting name="BannersJsonPath" serializeAs="String">
<value />
</setting>
</GrasscutterTools.Properties.Settings> </GrasscutterTools.Properties.Settings>
</userSettings> </userSettings>
</configuration> </configuration>

View File

@ -0,0 +1,771 @@

namespace GrasscutterTools.Forms
{
partial class FormGachaBannersEditor3
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormGachaBannersEditor3));
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea9 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend9 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series17 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series18 = new System.Windows.Forms.DataVisualization.Charting.Series();
this.GrpBannerValues = new System.Windows.Forms.GroupBox();
this.BtnAddOrUpdate = new System.Windows.Forms.Button();
this.CmbTitlePath = new System.Windows.Forms.ComboBox();
this.LblTitlePath = new System.Windows.Forms.Label();
this.NUDCostItemAmount10 = new System.Windows.Forms.NumericUpDown();
this.LblCostItemAmount10 = new System.Windows.Forms.Label();
this.NUDCostItemAmount1 = new System.Windows.Forms.NumericUpDown();
this.LblCostItemAmount1 = new System.Windows.Forms.Label();
this.ChkAutoStripRateUpFromFallback = new System.Windows.Forms.CheckBox();
this.LblOptions = new System.Windows.Forms.Label();
this.ChkRemoveC6FormPool = new System.Windows.Forms.CheckBox();
this.LnkOpenOldEditor = new System.Windows.Forms.LinkLabel();
this.DTPEndTime = new System.Windows.Forms.DateTimePicker();
this.DTPBeginTime = new System.Windows.Forms.DateTimePicker();
this.CmbPrefab = new System.Windows.Forms.ComboBox();
this.LblEventChance4Tip = new System.Windows.Forms.Label();
this.LblEventChance5Tip = new System.Windows.Forms.Label();
this.NUDEventChance4 = new System.Windows.Forms.NumericUpDown();
this.NUDEventChance5 = new System.Windows.Forms.NumericUpDown();
this.LblGachaType = new System.Windows.Forms.Label();
this.LblEventChance4 = new System.Windows.Forms.Label();
this.LblEventChance5 = new System.Windows.Forms.Label();
this.LblSortId = new System.Windows.Forms.Label();
this.NUDGachaType = new System.Windows.Forms.NumericUpDown();
this.NUDSortId = new System.Windows.Forms.NumericUpDown();
this.LblGachaTypeTip = new System.Windows.Forms.Label();
this.LblEndTime = new System.Windows.Forms.Label();
this.LblScheduleId = new System.Windows.Forms.Label();
this.LblBeginTime = new System.Windows.Forms.Label();
this.NUDScheduleId = new System.Windows.Forms.NumericUpDown();
this.LblScheduleIdTip = new System.Windows.Forms.Label();
this.CmbBannerType = new System.Windows.Forms.ComboBox();
this.LblSortIdTip = new System.Windows.Forms.Label();
this.LblBannerType = new System.Windows.Forms.Label();
this.RbCostItem224 = new System.Windows.Forms.RadioButton();
this.LblCostItem = new System.Windows.Forms.Label();
this.LblPrefabPath = new System.Windows.Forms.Label();
this.RbCostItem223 = new System.Windows.Forms.RadioButton();
this.GrpFallbackPool = new System.Windows.Forms.GroupBox();
this.ListFallbackItems = new System.Windows.Forms.ListView();
this.ColFallbackId = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.ColFallbackName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.GrpUpPool = new System.Windows.Forms.GroupBox();
this.ListUpItems = new System.Windows.Forms.ListView();
this.ColUpId = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.ColUpName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.GrpWeights = new System.Windows.Forms.GroupBox();
this.LnkWeightHelp = new System.Windows.Forms.LinkLabel();
this.TxtWeight4 = new System.Windows.Forms.TextBox();
this.TxtWeight5 = new System.Windows.Forms.TextBox();
this.LblWeight4 = new System.Windows.Forms.Label();
this.LblWeight5 = new System.Windows.Forms.Label();
this.GrpBalance = new System.Windows.Forms.GroupBox();
this.TxtPoolWeight4 = new System.Windows.Forms.TextBox();
this.TxtPoolWeight5 = new System.Windows.Forms.TextBox();
this.LblPoolWeight4 = new System.Windows.Forms.Label();
this.LblPoolWeight5 = new System.Windows.Forms.Label();
this.ChartWeights = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.GrpBanners = new System.Windows.Forms.GroupBox();
this.ListBanners = new System.Windows.Forms.ListBox();
this.FLPBannersControl = new System.Windows.Forms.FlowLayoutPanel();
this.BtnDelete = new System.Windows.Forms.Button();
this.BtnClear = new System.Windows.Forms.Button();
this.LblBannersJson = new System.Windows.Forms.Label();
this.TxtBannersJsonPath = new System.Windows.Forms.TextBox();
this.BtnLoad = new System.Windows.Forms.Button();
this.BtnSave = new System.Windows.Forms.Button();
this.GrpBannerValues.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDCostItemAmount10)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDCostItemAmount1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance5)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDGachaType)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDSortId)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDScheduleId)).BeginInit();
this.GrpFallbackPool.SuspendLayout();
this.GrpUpPool.SuspendLayout();
this.GrpWeights.SuspendLayout();
this.GrpBalance.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.ChartWeights)).BeginInit();
this.GrpBanners.SuspendLayout();
this.FLPBannersControl.SuspendLayout();
this.SuspendLayout();
//
// GrpBannerValues
//
resources.ApplyResources(this.GrpBannerValues, "GrpBannerValues");
this.GrpBannerValues.Controls.Add(this.BtnAddOrUpdate);
this.GrpBannerValues.Controls.Add(this.CmbTitlePath);
this.GrpBannerValues.Controls.Add(this.LblTitlePath);
this.GrpBannerValues.Controls.Add(this.NUDCostItemAmount10);
this.GrpBannerValues.Controls.Add(this.LblCostItemAmount10);
this.GrpBannerValues.Controls.Add(this.NUDCostItemAmount1);
this.GrpBannerValues.Controls.Add(this.LblCostItemAmount1);
this.GrpBannerValues.Controls.Add(this.ChkAutoStripRateUpFromFallback);
this.GrpBannerValues.Controls.Add(this.LblOptions);
this.GrpBannerValues.Controls.Add(this.ChkRemoveC6FormPool);
this.GrpBannerValues.Controls.Add(this.LnkOpenOldEditor);
this.GrpBannerValues.Controls.Add(this.DTPEndTime);
this.GrpBannerValues.Controls.Add(this.DTPBeginTime);
this.GrpBannerValues.Controls.Add(this.CmbPrefab);
this.GrpBannerValues.Controls.Add(this.LblEventChance4Tip);
this.GrpBannerValues.Controls.Add(this.LblEventChance5Tip);
this.GrpBannerValues.Controls.Add(this.NUDEventChance4);
this.GrpBannerValues.Controls.Add(this.NUDEventChance5);
this.GrpBannerValues.Controls.Add(this.LblGachaType);
this.GrpBannerValues.Controls.Add(this.LblEventChance4);
this.GrpBannerValues.Controls.Add(this.LblEventChance5);
this.GrpBannerValues.Controls.Add(this.LblSortId);
this.GrpBannerValues.Controls.Add(this.NUDGachaType);
this.GrpBannerValues.Controls.Add(this.NUDSortId);
this.GrpBannerValues.Controls.Add(this.LblGachaTypeTip);
this.GrpBannerValues.Controls.Add(this.LblEndTime);
this.GrpBannerValues.Controls.Add(this.LblScheduleId);
this.GrpBannerValues.Controls.Add(this.LblBeginTime);
this.GrpBannerValues.Controls.Add(this.NUDScheduleId);
this.GrpBannerValues.Controls.Add(this.LblScheduleIdTip);
this.GrpBannerValues.Controls.Add(this.CmbBannerType);
this.GrpBannerValues.Controls.Add(this.LblSortIdTip);
this.GrpBannerValues.Controls.Add(this.LblBannerType);
this.GrpBannerValues.Controls.Add(this.RbCostItem224);
this.GrpBannerValues.Controls.Add(this.LblCostItem);
this.GrpBannerValues.Controls.Add(this.LblPrefabPath);
this.GrpBannerValues.Controls.Add(this.RbCostItem223);
this.GrpBannerValues.Name = "GrpBannerValues";
this.GrpBannerValues.TabStop = false;
//
// BtnAddOrUpdate
//
resources.ApplyResources(this.BtnAddOrUpdate, "BtnAddOrUpdate");
this.BtnAddOrUpdate.Name = "BtnAddOrUpdate";
this.BtnAddOrUpdate.UseVisualStyleBackColor = true;
this.BtnAddOrUpdate.Click += new System.EventHandler(this.BtnAddOrUpdate_Click);
//
// CmbTitlePath
//
resources.ApplyResources(this.CmbTitlePath, "CmbTitlePath");
this.CmbTitlePath.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbTitlePath.FormattingEnabled = true;
this.CmbTitlePath.Name = "CmbTitlePath";
//
// LblTitlePath
//
resources.ApplyResources(this.LblTitlePath, "LblTitlePath");
this.LblTitlePath.Name = "LblTitlePath";
//
// NUDCostItemAmount10
//
resources.ApplyResources(this.NUDCostItemAmount10, "NUDCostItemAmount10");
this.NUDCostItemAmount10.Maximum = new decimal(new int[] {
2147483647,
0,
0,
0});
this.NUDCostItemAmount10.Name = "NUDCostItemAmount10";
this.NUDCostItemAmount10.Value = new decimal(new int[] {
10,
0,
0,
0});
//
// LblCostItemAmount10
//
resources.ApplyResources(this.LblCostItemAmount10, "LblCostItemAmount10");
this.LblCostItemAmount10.Name = "LblCostItemAmount10";
//
// NUDCostItemAmount1
//
resources.ApplyResources(this.NUDCostItemAmount1, "NUDCostItemAmount1");
this.NUDCostItemAmount1.Maximum = new decimal(new int[] {
2147483647,
0,
0,
0});
this.NUDCostItemAmount1.Name = "NUDCostItemAmount1";
this.NUDCostItemAmount1.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// LblCostItemAmount1
//
resources.ApplyResources(this.LblCostItemAmount1, "LblCostItemAmount1");
this.LblCostItemAmount1.Name = "LblCostItemAmount1";
//
// ChkAutoStripRateUpFromFallback
//
resources.ApplyResources(this.ChkAutoStripRateUpFromFallback, "ChkAutoStripRateUpFromFallback");
this.ChkAutoStripRateUpFromFallback.Name = "ChkAutoStripRateUpFromFallback";
this.ChkAutoStripRateUpFromFallback.UseVisualStyleBackColor = true;
//
// LblOptions
//
resources.ApplyResources(this.LblOptions, "LblOptions");
this.LblOptions.Name = "LblOptions";
//
// ChkRemoveC6FormPool
//
resources.ApplyResources(this.ChkRemoveC6FormPool, "ChkRemoveC6FormPool");
this.ChkRemoveC6FormPool.Name = "ChkRemoveC6FormPool";
this.ChkRemoveC6FormPool.UseVisualStyleBackColor = true;
//
// LnkOpenOldEditor
//
resources.ApplyResources(this.LnkOpenOldEditor, "LnkOpenOldEditor");
this.LnkOpenOldEditor.Name = "LnkOpenOldEditor";
this.LnkOpenOldEditor.TabStop = true;
this.LnkOpenOldEditor.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkOpenOldEditor_LinkClicked);
//
// DTPEndTime
//
resources.ApplyResources(this.DTPEndTime, "DTPEndTime");
this.DTPEndTime.MaxDate = new System.DateTime(2038, 1, 19, 0, 0, 0, 0);
this.DTPEndTime.MinDate = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
this.DTPEndTime.Name = "DTPEndTime";
//
// DTPBeginTime
//
resources.ApplyResources(this.DTPBeginTime, "DTPBeginTime");
this.DTPBeginTime.MaxDate = new System.DateTime(2038, 1, 19, 0, 0, 0, 0);
this.DTPBeginTime.MinDate = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
this.DTPBeginTime.Name = "DTPBeginTime";
//
// CmbPrefab
//
resources.ApplyResources(this.CmbPrefab, "CmbPrefab");
this.CmbPrefab.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbPrefab.FormattingEnabled = true;
this.CmbPrefab.Name = "CmbPrefab";
//
// LblEventChance4Tip
//
resources.ApplyResources(this.LblEventChance4Tip, "LblEventChance4Tip");
this.LblEventChance4Tip.Name = "LblEventChance4Tip";
//
// LblEventChance5Tip
//
resources.ApplyResources(this.LblEventChance5Tip, "LblEventChance5Tip");
this.LblEventChance5Tip.Name = "LblEventChance5Tip";
//
// NUDEventChance4
//
resources.ApplyResources(this.NUDEventChance4, "NUDEventChance4");
this.NUDEventChance4.Name = "NUDEventChance4";
this.NUDEventChance4.Value = new decimal(new int[] {
50,
0,
0,
0});
//
// NUDEventChance5
//
resources.ApplyResources(this.NUDEventChance5, "NUDEventChance5");
this.NUDEventChance5.Name = "NUDEventChance5";
this.NUDEventChance5.Value = new decimal(new int[] {
50,
0,
0,
0});
//
// LblGachaType
//
resources.ApplyResources(this.LblGachaType, "LblGachaType");
this.LblGachaType.Name = "LblGachaType";
//
// LblEventChance4
//
resources.ApplyResources(this.LblEventChance4, "LblEventChance4");
this.LblEventChance4.Name = "LblEventChance4";
//
// LblEventChance5
//
resources.ApplyResources(this.LblEventChance5, "LblEventChance5");
this.LblEventChance5.Name = "LblEventChance5";
//
// LblSortId
//
resources.ApplyResources(this.LblSortId, "LblSortId");
this.LblSortId.Name = "LblSortId";
//
// NUDGachaType
//
resources.ApplyResources(this.NUDGachaType, "NUDGachaType");
this.NUDGachaType.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.NUDGachaType.Name = "NUDGachaType";
this.NUDGachaType.Value = new decimal(new int[] {
400,
0,
0,
0});
//
// NUDSortId
//
resources.ApplyResources(this.NUDSortId, "NUDSortId");
this.NUDSortId.Maximum = new decimal(new int[] {
9999,
0,
0,
0});
this.NUDSortId.Name = "NUDSortId";
this.NUDSortId.Value = new decimal(new int[] {
1000,
0,
0,
0});
//
// LblGachaTypeTip
//
resources.ApplyResources(this.LblGachaTypeTip, "LblGachaTypeTip");
this.LblGachaTypeTip.Name = "LblGachaTypeTip";
//
// LblEndTime
//
resources.ApplyResources(this.LblEndTime, "LblEndTime");
this.LblEndTime.Name = "LblEndTime";
//
// LblScheduleId
//
resources.ApplyResources(this.LblScheduleId, "LblScheduleId");
this.LblScheduleId.Name = "LblScheduleId";
//
// LblBeginTime
//
resources.ApplyResources(this.LblBeginTime, "LblBeginTime");
this.LblBeginTime.Name = "LblBeginTime";
//
// NUDScheduleId
//
resources.ApplyResources(this.NUDScheduleId, "NUDScheduleId");
this.NUDScheduleId.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.NUDScheduleId.Name = "NUDScheduleId";
this.NUDScheduleId.Value = new decimal(new int[] {
800,
0,
0,
0});
//
// LblScheduleIdTip
//
resources.ApplyResources(this.LblScheduleIdTip, "LblScheduleIdTip");
this.LblScheduleIdTip.Name = "LblScheduleIdTip";
//
// CmbBannerType
//
resources.ApplyResources(this.CmbBannerType, "CmbBannerType");
this.CmbBannerType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbBannerType.FormattingEnabled = true;
this.CmbBannerType.Items.AddRange(new object[] {
resources.GetString("CmbBannerType.Items"),
resources.GetString("CmbBannerType.Items1"),
resources.GetString("CmbBannerType.Items2")});
this.CmbBannerType.Name = "CmbBannerType";
//
// LblSortIdTip
//
resources.ApplyResources(this.LblSortIdTip, "LblSortIdTip");
this.LblSortIdTip.Name = "LblSortIdTip";
//
// LblBannerType
//
resources.ApplyResources(this.LblBannerType, "LblBannerType");
this.LblBannerType.Name = "LblBannerType";
//
// RbCostItem224
//
resources.ApplyResources(this.RbCostItem224, "RbCostItem224");
this.RbCostItem224.Checked = true;
this.RbCostItem224.Name = "RbCostItem224";
this.RbCostItem224.TabStop = true;
this.RbCostItem224.UseVisualStyleBackColor = true;
//
// LblCostItem
//
resources.ApplyResources(this.LblCostItem, "LblCostItem");
this.LblCostItem.Name = "LblCostItem";
//
// LblPrefabPath
//
resources.ApplyResources(this.LblPrefabPath, "LblPrefabPath");
this.LblPrefabPath.Name = "LblPrefabPath";
//
// RbCostItem223
//
resources.ApplyResources(this.RbCostItem223, "RbCostItem223");
this.RbCostItem223.Name = "RbCostItem223";
this.RbCostItem223.TabStop = true;
this.RbCostItem223.UseVisualStyleBackColor = true;
//
// GrpFallbackPool
//
resources.ApplyResources(this.GrpFallbackPool, "GrpFallbackPool");
this.GrpFallbackPool.Controls.Add(this.ListFallbackItems);
this.GrpFallbackPool.Name = "GrpFallbackPool";
this.GrpFallbackPool.TabStop = false;
//
// ListFallbackItems
//
resources.ApplyResources(this.ListFallbackItems, "ListFallbackItems");
this.ListFallbackItems.CheckBoxes = true;
this.ListFallbackItems.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.ColFallbackId,
this.ColFallbackName});
this.ListFallbackItems.FullRowSelect = true;
this.ListFallbackItems.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups"))),
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups1"))),
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups2"))),
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups3"))),
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListFallbackItems.Groups4")))});
this.ListFallbackItems.HideSelection = false;
this.ListFallbackItems.Name = "ListFallbackItems";
this.ListFallbackItems.UseCompatibleStateImageBehavior = false;
this.ListFallbackItems.View = System.Windows.Forms.View.Details;
//
// ColFallbackId
//
resources.ApplyResources(this.ColFallbackId, "ColFallbackId");
//
// ColFallbackName
//
resources.ApplyResources(this.ColFallbackName, "ColFallbackName");
//
// GrpUpPool
//
resources.ApplyResources(this.GrpUpPool, "GrpUpPool");
this.GrpUpPool.Controls.Add(this.ListUpItems);
this.GrpUpPool.Name = "GrpUpPool";
this.GrpUpPool.TabStop = false;
//
// ListUpItems
//
resources.ApplyResources(this.ListUpItems, "ListUpItems");
this.ListUpItems.CheckBoxes = true;
this.ListUpItems.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.ColUpId,
this.ColUpName});
this.ListUpItems.FullRowSelect = true;
this.ListUpItems.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListUpItems.Groups"))),
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListUpItems.Groups1"))),
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListUpItems.Groups2"))),
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListUpItems.Groups3")))});
this.ListUpItems.HideSelection = false;
this.ListUpItems.Name = "ListUpItems";
this.ListUpItems.UseCompatibleStateImageBehavior = false;
this.ListUpItems.View = System.Windows.Forms.View.Details;
//
// ColUpId
//
resources.ApplyResources(this.ColUpId, "ColUpId");
//
// ColUpName
//
resources.ApplyResources(this.ColUpName, "ColUpName");
//
// GrpWeights
//
resources.ApplyResources(this.GrpWeights, "GrpWeights");
this.GrpWeights.Controls.Add(this.LnkWeightHelp);
this.GrpWeights.Controls.Add(this.TxtWeight4);
this.GrpWeights.Controls.Add(this.TxtWeight5);
this.GrpWeights.Controls.Add(this.LblWeight4);
this.GrpWeights.Controls.Add(this.LblWeight5);
this.GrpWeights.Name = "GrpWeights";
this.GrpWeights.TabStop = false;
//
// LnkWeightHelp
//
resources.ApplyResources(this.LnkWeightHelp, "LnkWeightHelp");
this.LnkWeightHelp.Name = "LnkWeightHelp";
this.LnkWeightHelp.TabStop = true;
this.LnkWeightHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkWeightHelp_LinkClicked);
//
// TxtWeight4
//
resources.ApplyResources(this.TxtWeight4, "TxtWeight4");
this.TxtWeight4.Name = "TxtWeight4";
//
// TxtWeight5
//
resources.ApplyResources(this.TxtWeight5, "TxtWeight5");
this.TxtWeight5.Name = "TxtWeight5";
//
// LblWeight4
//
resources.ApplyResources(this.LblWeight4, "LblWeight4");
this.LblWeight4.Name = "LblWeight4";
//
// LblWeight5
//
resources.ApplyResources(this.LblWeight5, "LblWeight5");
this.LblWeight5.Name = "LblWeight5";
//
// GrpBalance
//
resources.ApplyResources(this.GrpBalance, "GrpBalance");
this.GrpBalance.Controls.Add(this.TxtPoolWeight4);
this.GrpBalance.Controls.Add(this.TxtPoolWeight5);
this.GrpBalance.Controls.Add(this.LblPoolWeight4);
this.GrpBalance.Controls.Add(this.LblPoolWeight5);
this.GrpBalance.Name = "GrpBalance";
this.GrpBalance.TabStop = false;
//
// TxtPoolWeight4
//
resources.ApplyResources(this.TxtPoolWeight4, "TxtPoolWeight4");
this.TxtPoolWeight4.Name = "TxtPoolWeight4";
//
// TxtPoolWeight5
//
resources.ApplyResources(this.TxtPoolWeight5, "TxtPoolWeight5");
this.TxtPoolWeight5.Name = "TxtPoolWeight5";
//
// LblPoolWeight4
//
resources.ApplyResources(this.LblPoolWeight4, "LblPoolWeight4");
this.LblPoolWeight4.Name = "LblPoolWeight4";
//
// LblPoolWeight5
//
resources.ApplyResources(this.LblPoolWeight5, "LblPoolWeight5");
this.LblPoolWeight5.Name = "LblPoolWeight5";
//
// ChartWeights
//
resources.ApplyResources(this.ChartWeights, "ChartWeights");
chartArea9.AxisX.Minimum = 0D;
chartArea9.AxisY.Maximum = 100D;
chartArea9.AxisY.Minimum = 0D;
chartArea9.AxisY.Title = "%";
chartArea9.Name = "ChartArea1";
this.ChartWeights.ChartAreas.Add(chartArea9);
legend9.Name = "Legend1";
this.ChartWeights.Legends.Add(legend9);
this.ChartWeights.Name = "ChartWeights";
series17.ChartArea = "ChartArea1";
series17.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series17.Color = System.Drawing.Color.OrangeRed;
series17.Label = "(#VALX, #VAL)";
series17.Legend = "Legend1";
series17.LegendText = "5*";
series17.Name = "SeriesWeight5";
series17.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
series17.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
series18.ChartArea = "ChartArea1";
series18.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series18.Color = System.Drawing.Color.Purple;
series18.Label = "(#VALX, #VAL)";
series18.Legend = "Legend1";
series18.LegendText = "4*";
series18.Name = "SeriesWeight4";
series18.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
series18.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
this.ChartWeights.Series.Add(series17);
this.ChartWeights.Series.Add(series18);
//
// GrpBanners
//
resources.ApplyResources(this.GrpBanners, "GrpBanners");
this.GrpBanners.Controls.Add(this.ListBanners);
this.GrpBanners.Controls.Add(this.FLPBannersControl);
this.GrpBanners.Name = "GrpBanners";
this.GrpBanners.TabStop = false;
//
// ListBanners
//
resources.ApplyResources(this.ListBanners, "ListBanners");
this.ListBanners.FormattingEnabled = true;
this.ListBanners.Name = "ListBanners";
this.ListBanners.SelectedIndexChanged += new System.EventHandler(this.ListBanners_SelectedIndexChanged);
//
// FLPBannersControl
//
resources.ApplyResources(this.FLPBannersControl, "FLPBannersControl");
this.FLPBannersControl.Controls.Add(this.BtnDelete);
this.FLPBannersControl.Controls.Add(this.BtnClear);
this.FLPBannersControl.Name = "FLPBannersControl";
//
// BtnDelete
//
resources.ApplyResources(this.BtnDelete, "BtnDelete");
this.BtnDelete.Name = "BtnDelete";
this.BtnDelete.UseVisualStyleBackColor = true;
this.BtnDelete.Click += new System.EventHandler(this.BtnDelete_Click);
//
// BtnClear
//
resources.ApplyResources(this.BtnClear, "BtnClear");
this.BtnClear.Name = "BtnClear";
this.BtnClear.UseVisualStyleBackColor = true;
this.BtnClear.Click += new System.EventHandler(this.BtnClear_Click);
//
// LblBannersJson
//
resources.ApplyResources(this.LblBannersJson, "LblBannersJson");
this.LblBannersJson.Name = "LblBannersJson";
//
// TxtBannersJsonPath
//
resources.ApplyResources(this.TxtBannersJsonPath, "TxtBannersJsonPath");
this.TxtBannersJsonPath.Name = "TxtBannersJsonPath";
//
// BtnLoad
//
resources.ApplyResources(this.BtnLoad, "BtnLoad");
this.BtnLoad.Name = "BtnLoad";
this.BtnLoad.UseVisualStyleBackColor = true;
this.BtnLoad.Click += new System.EventHandler(this.BtnLoad_Click);
//
// BtnSave
//
resources.ApplyResources(this.BtnSave, "BtnSave");
this.BtnSave.Name = "BtnSave";
this.BtnSave.UseVisualStyleBackColor = true;
this.BtnSave.Click += new System.EventHandler(this.BtnSave_Click);
//
// FormGachaBannersEditor3
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.ChartWeights);
this.Controls.Add(this.BtnSave);
this.Controls.Add(this.BtnLoad);
this.Controls.Add(this.TxtBannersJsonPath);
this.Controls.Add(this.LblBannersJson);
this.Controls.Add(this.GrpBanners);
this.Controls.Add(this.GrpBalance);
this.Controls.Add(this.GrpWeights);
this.Controls.Add(this.GrpFallbackPool);
this.Controls.Add(this.GrpUpPool);
this.Controls.Add(this.GrpBannerValues);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
this.Name = "FormGachaBannersEditor3";
this.GrpBannerValues.ResumeLayout(false);
this.GrpBannerValues.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDCostItemAmount10)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDCostItemAmount1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance5)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDGachaType)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDSortId)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDScheduleId)).EndInit();
this.GrpFallbackPool.ResumeLayout(false);
this.GrpUpPool.ResumeLayout(false);
this.GrpWeights.ResumeLayout(false);
this.GrpWeights.PerformLayout();
this.GrpBalance.ResumeLayout(false);
this.GrpBalance.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.ChartWeights)).EndInit();
this.GrpBanners.ResumeLayout(false);
this.FLPBannersControl.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.GroupBox GrpBannerValues;
private System.Windows.Forms.Label LblEventChance5Tip;
private System.Windows.Forms.NumericUpDown NUDEventChance5;
private System.Windows.Forms.Label LblGachaType;
private System.Windows.Forms.Label LblEventChance5;
private System.Windows.Forms.Label LblSortId;
private System.Windows.Forms.NumericUpDown NUDGachaType;
private System.Windows.Forms.NumericUpDown NUDSortId;
private System.Windows.Forms.Label LblGachaTypeTip;
private System.Windows.Forms.Label LblEndTime;
private System.Windows.Forms.Label LblScheduleId;
private System.Windows.Forms.Label LblBeginTime;
private System.Windows.Forms.NumericUpDown NUDScheduleId;
private System.Windows.Forms.Label LblScheduleIdTip;
private System.Windows.Forms.ComboBox CmbBannerType;
private System.Windows.Forms.Label LblSortIdTip;
private System.Windows.Forms.Label LblBannerType;
private System.Windows.Forms.RadioButton RbCostItem224;
private System.Windows.Forms.Label LblCostItem;
private System.Windows.Forms.Label LblPrefabPath;
private System.Windows.Forms.RadioButton RbCostItem223;
private System.Windows.Forms.GroupBox GrpFallbackPool;
private System.Windows.Forms.GroupBox GrpUpPool;
private System.Windows.Forms.ComboBox CmbPrefab;
private System.Windows.Forms.Label LblEventChance4;
private System.Windows.Forms.Label LblEventChance4Tip;
private System.Windows.Forms.NumericUpDown NUDEventChance4;
private System.Windows.Forms.DateTimePicker DTPEndTime;
private System.Windows.Forms.DateTimePicker DTPBeginTime;
private System.Windows.Forms.ListView ListFallbackItems;
private System.Windows.Forms.ListView ListUpItems;
private System.Windows.Forms.ColumnHeader ColFallbackId;
private System.Windows.Forms.ColumnHeader ColFallbackName;
private System.Windows.Forms.ColumnHeader ColUpId;
private System.Windows.Forms.ColumnHeader ColUpName;
private System.Windows.Forms.GroupBox GrpWeights;
private System.Windows.Forms.GroupBox GrpBalance;
private System.Windows.Forms.TextBox TxtWeight4;
private System.Windows.Forms.TextBox TxtWeight5;
private System.Windows.Forms.Label LblWeight4;
private System.Windows.Forms.Label LblWeight5;
private System.Windows.Forms.LinkLabel LnkWeightHelp;
private System.Windows.Forms.LinkLabel LnkOpenOldEditor;
private System.Windows.Forms.TextBox TxtPoolWeight4;
private System.Windows.Forms.TextBox TxtPoolWeight5;
private System.Windows.Forms.Label LblPoolWeight4;
private System.Windows.Forms.Label LblPoolWeight5;
private System.Windows.Forms.CheckBox ChkRemoveC6FormPool;
private System.Windows.Forms.CheckBox ChkAutoStripRateUpFromFallback;
private System.Windows.Forms.Label LblOptions;
private System.Windows.Forms.DataVisualization.Charting.Chart ChartWeights;
private System.Windows.Forms.GroupBox GrpBanners;
private System.Windows.Forms.Label LblBannersJson;
private System.Windows.Forms.TextBox TxtBannersJsonPath;
private System.Windows.Forms.Button BtnLoad;
private System.Windows.Forms.Button BtnSave;
private System.Windows.Forms.FlowLayoutPanel FLPBannersControl;
private System.Windows.Forms.Button BtnAddOrUpdate;
private System.Windows.Forms.Button BtnDelete;
private System.Windows.Forms.NumericUpDown NUDCostItemAmount10;
private System.Windows.Forms.Label LblCostItemAmount10;
private System.Windows.Forms.NumericUpDown NUDCostItemAmount1;
private System.Windows.Forms.Label LblCostItemAmount1;
private System.Windows.Forms.ListBox ListBanners;
private System.Windows.Forms.ComboBox CmbTitlePath;
private System.Windows.Forms.Label LblTitlePath;
private System.Windows.Forms.Button BtnClear;
}
}

View File

@ -0,0 +1,505 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using GrasscutterTools.Game;
using GrasscutterTools.Game.Drop;
using GrasscutterTools.Game.Gacha;
using GrasscutterTools.Properties;
using Newtonsoft.Json;
namespace GrasscutterTools.Forms
{
/// <summary>
/// 卡池编辑器
/// </summary>
public partial class FormGachaBannersEditor3 : Form
{
#region - -
private List<GachaBanner3> Banners;
#endregion
#region - -
public FormGachaBannersEditor3()
{
InitializeComponent();
Icon = Resources.IconGrasscutter;
CmbBannerType.SelectedIndex = 0;
InitBannerPrefab();
InitCheckedListBoxs();
ShowBanner(new GachaBanner3());
}
private void InitBannerPrefab()
{
CmbPrefab.Items.Clear();
CmbPrefab.Items.AddRange(GameData.GachaBannerPrefabs.Names);
CmbTitlePath.Items.Clear();
CmbTitlePath.Items.AddRange(GameData.GachaBannerTitles.Names);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
try
{
// 加载文件路径
var path = Settings.Default.BannersJsonPath;
TxtBannersJsonPath.Text = path;
if (!string.IsNullOrEmpty(path) && File.Exists(path))
LoadBanners(File.ReadAllText(path));
else
LoadBanners(Encoding.UTF8.GetString(Resources.Banners));
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
protected override void OnFormClosed(FormClosedEventArgs e)
{
// 保存文件路径
Settings.Default.BannersJsonPath = TxtBannersJsonPath.Text;
Settings.Default.Save();
base.OnFormClosed(e);
}
private void LnkWeightHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("https://github.com/Grasscutters/Grasscutter/pull/639");
}
private void LnkOpenOldEditor_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
new FormGachaBannerEditor().ShowDialog();
}
#endregion
#region - Banners.json -
/// <summary>
/// 加载按钮点击时触发
/// </summary>
private void BtnLoad_Click(object sender, EventArgs e)
{
try
{
var path = TxtBannersJsonPath.Text.Trim();
if (path == string.Empty)
{
var dialog = new OpenFileDialog
{
FileName = "Banners.json",
Filter = "Banners.Json (*.json)|*.json|All files (*.*)|*.*",
};
var result = dialog.ShowDialog();
if (result == DialogResult.OK)
path = TxtBannersJsonPath.Text = dialog.FileName;
else
return;
}
LoadBanners(File.ReadAllText(path));
MessageBox.Show("OK", Resources.Tips, MessageBoxButtons.OK);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
/// <summary>
/// 保存按钮点击时触发
/// </summary>
private void BtnSave_Click(object sender, EventArgs e)
{
try
{
var path = TxtBannersJsonPath.Text.Trim();
if (path == string.Empty)
{
var dialog = new SaveFileDialog
{
FileName = "Banners.json",
Filter = "Banners.json (*.json)|*.json|All files (*.*)|*.*",
};
var result = dialog.ShowDialog();
if (result == DialogResult.OK)
path = TxtBannersJsonPath.Text = dialog.FileName;
else
return;
}
var json = JsonConvert.SerializeObject(Banners, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore })
.Replace(",\"", ",\r\n \"").Replace("{\"", "{\r\n \"").Replace("\"}", "\"\r\n}");
File.WriteAllText(path, json);
MessageBox.Show("OK", Resources.Tips, MessageBoxButtons.OK);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion
#region - -
/// <summary>
/// 从指定Json中加载卡池
/// </summary>
/// <param name="bannersJson">Banner.json 内容</param>
private void LoadBanners(string bannersJson)
{
// 反序列化
Banners = JsonConvert.DeserializeObject<List<GachaBanner3>>(bannersJson);
ShowBanners();
}
/// <summary>
/// 显示当前卡池列表
/// </summary>
private void ShowBanners()
{
ListBanners.BeginUpdate();
ListBanners.Items.Clear();
ListBanners.Items.AddRange(Banners.ToArray());
ListBanners.EndUpdate();
}
/// <summary>
/// 卡池列表选中项改变时触发
/// </summary>
private void ListBanners_SelectedIndexChanged(object sender, EventArgs e)
{
if (ListBanners.SelectedIndex < 0) return;
ShowBanner(ListBanners.SelectedItem as GachaBanner3);
}
/// <summary>
/// 点击添加或更新卡池按钮时触发
/// </summary>
private void BtnAddOrUpdate_Click(object sender, EventArgs e)
{
var banner = ParseBanner();
var i = Banners.FindIndex(it => it.GachaType == banner.GachaType && it.ScheduleId == banner.ScheduleId);
if (i >= 0)
{
Banners[i] = banner;
ListBanners.Items[i] = banner;
}
else
{
Banners.Add(banner);
ListBanners.Items.Add(banner);
}
}
/// <summary>
/// 点击删除卡池按钮时触发
/// </summary>
private void BtnDelete_Click(object sender, EventArgs e)
{
if (ListBanners.SelectedIndex < 0) return;
if (MessageBox.Show(Resources.AskConfirmDeletion, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
Banners.RemoveAt(ListBanners.SelectedIndex);
ListBanners.Items.RemoveAt(ListBanners.SelectedIndex);
}
}
/// <summary>
/// 点击清空卡池按钮时触发
/// </summary>
private void BtnClear_Click(object sender, EventArgs e)
{
if (ListBanners.Items.Count < 0) return;
if (MessageBox.Show(Resources.AskConfirmDeletion, Resources.Tips, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
Banners.Clear();
ListBanners.Items.Clear();
}
}
#endregion
#region - -
private void InitCheckedListBoxs()
{
ListFallbackItems.BeginUpdate();
var a5 = ListFallbackItems.Groups["GroupA5"];
var a4 = ListFallbackItems.Groups["GroupA4"];
var w5 = ListFallbackItems.Groups["GroupW5"];
var w4 = ListFallbackItems.Groups["GroupW4"];
var w3 = ListFallbackItems.Groups["GroupW3"];
var avatars = GetAvatarsByColor("5")
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, a5) { ForeColor = Color.OrangeRed })
.Concat(GetAvatarsByColor("4")
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, a4) { ForeColor = Color.Purple }));
var weapons = GetWeaponsByColor("yellow")
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, w5) { ForeColor = Color.OrangeRed })
.Concat(GetWeaponsByColor("purple")
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, w4) { ForeColor = Color.Purple }))
.Concat(GetWeaponsByColor("blue")
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, w3) { ForeColor = Color.Blue }));
ListFallbackItems.Items.Clear();
ListFallbackItems.Items.AddRange(avatars.Concat(weapons).ToArray());
ListUpItems.BeginUpdate();
var ua5 = ListUpItems.Groups["GroupUpA5"];
var ua4 = ListUpItems.Groups["GroupUpA4"];
var uw5 = ListUpItems.Groups["GroupUpW5"];
var uw4 = ListUpItems.Groups["GroupUpW4"];
var upAvatars = GetAvatarsByColor("5")
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, ua5) { ForeColor = Color.OrangeRed })
.Concat(GetAvatarsByColor("4")
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, ua4) { ForeColor = Color.Purple }));
var upWeapons = GetWeaponsByColor("yellow")
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, uw5) { ForeColor = Color.OrangeRed })
.Concat(GetWeaponsByColor("purple")
.Select(it => new ListViewItem(new string[] { it.Item1.ToString(), it.Item2 }, uw4) { ForeColor = Color.Purple }));
ListUpItems.Items.Clear();
ListUpItems.Items.AddRange(upAvatars.Concat(upWeapons).ToArray());
ListFallbackItems.EndUpdate();
ListUpItems.EndUpdate();
}
private IEnumerable<(int, string)> GetAvatarsByColor(string color)
{
for (int i = 0; i < GameData.AvatarColors.Count; i++)
{
if (GameData.AvatarColors.Names[i] == color)
{
var id = GameData.AvatarColors.Ids[i];
var index = Array.IndexOf(GameData.Avatars.Ids, id);
if (index >= 0)
yield return (id, GameData.Avatars.Names[index]);
}
}
}
private IEnumerable<(int, string)> GetWeaponsByColor(string color)
{
for (int i = 0; i < GameData.WeaponColors.Count; i++)
{
if (GameData.WeaponColors.Names[i] == color)
{
var id = GameData.WeaponColors.Ids[i];
var index = Array.IndexOf(GameData.Weapons.Ids, id);
if (index >= 0)
yield return (id, GameData.Weapons.Names[index]);
}
}
}
private void InitItems(GachaBanner3 banner)
{
var f = banner.FallbackItems3
.Concat(banner.FallbackItems4Pool1)
.Concat(banner.FallbackItems4Pool2)
.Concat(banner.FallbackItems5Pool1)
.Concat(banner.FallbackItems5Pool2)
.ToArray();
foreach (ListViewItem item in ListFallbackItems.Items)
item.Checked = Array.IndexOf(f, int.Parse(item.Text)) >= 0;
var u = banner.RateUpItems4.Concat(banner.RateUpItems5).ToArray();
foreach (ListViewItem item in ListUpItems.Items)
item.Checked = Array.IndexOf(u, int.Parse(item.Text)) >= 0;
}
private IEnumerable<int> GetCheckedItems(ListView list, ListViewGroup group)
{
foreach (ListViewItem item in list.CheckedItems)
if (item.Group == group)
yield return int.Parse(item.Text);
}
#endregion - -
#region - -
private struct GachaWeight
{
public int Count;
public int Weight;
public GachaWeight(int count, int weight)
{
Count = count;
Weight = weight;
}
}
private void InitWeights(GachaBanner3 banner)
{
TxtWeight5.Text = '[' + string.Join(", ", SelectWeights(banner.Weights5).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
TxtWeight4.Text = '[' + string.Join(", ", SelectWeights(banner.Weights4).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
TxtPoolWeight5.Text = '[' + string.Join(", ", SelectWeights(banner.PoolBalanceWeights5).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
TxtPoolWeight4.Text = '[' + string.Join(", ", SelectWeights(banner.PoolBalanceWeights4).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
ChartWeights.SuspendLayout();
ChartWeights.Series[0].Points.Clear();
foreach (var w in SelectWeights(banner.Weights5))
ChartWeights.Series[0].Points.AddXY(w.Count, w.Weight / 100.0);
ChartWeights.Series[1].Points.Clear();
foreach (var w in SelectWeights(banner.Weights4))
ChartWeights.Series[1].Points.AddXY(w.Count, w.Weight / 100.0);
ChartWeights.ResumeLayout();
}
private IEnumerable<GachaWeight> SelectWeights(int[,] weights)
{
for (int i = 0; i < weights.GetLength(0); i++)
yield return new GachaWeight(weights[i, 0], weights[i, 1]);
}
private int[,] GetWeights(string weights)
{
return JsonConvert.DeserializeObject<int[,]>(weights);
}
#endregion - -
#region - -
/// <summary>
/// 显示指定卡池参数
/// </summary>
/// <param name="banner">卡池对象</param>
private void ShowBanner(GachaBanner3 banner)
{
try
{
NUDGachaType.Value = banner.GachaType;
NUDScheduleId.Value = banner.ScheduleId;
CmbBannerType.SelectedIndex = (int)banner.BannerType;
if (string.IsNullOrEmpty(banner.PrefabPath) || !int.TryParse(banner.PrefabPath.Substring("GachaShowPanel_A".Length, 3), out int prefabId))
CmbPrefab.SelectedIndex = -1;
else
CmbPrefab.SelectedIndex = Array.IndexOf(GameData.GachaBannerPrefabs.Ids, prefabId);
if (string.IsNullOrEmpty(banner.TitlePath) || !int.TryParse(banner.TitlePath.Substring("UI_GACHA_SHOW_PANEL_A".Length, 3), out int titleId))
CmbTitlePath.SelectedIndex = -1;
else
CmbTitlePath.SelectedIndex = Array.IndexOf(GameData.GachaBannerTitles.Ids, titleId);
RbCostItem224.Checked = banner.CostItemId == 224;
RbCostItem223.Checked = banner.CostItemId == 223;
NUDCostItemAmount1.Value = banner.CoseItemAmount;
NUDCostItemAmount10.Value = banner.CoseItemAmount10;
DTPBeginTime.Value = DateTimeOffset.FromUnixTimeSeconds(banner.BeginTime).DateTime;
DTPEndTime.Value = DateTimeOffset.FromUnixTimeSeconds(banner.EndTime).DateTime;
NUDSortId.Value = banner.SortId;
NUDEventChance5.Value = banner.EventChance5;
NUDEventChance4.Value = banner.EventChance4;
ChkRemoveC6FormPool.Checked = banner.RemoveC6FromPool;
ChkAutoStripRateUpFromFallback.Checked = banner.AutoStripRateUpFromFallback;
InitItems(banner);
InitWeights(banner);
}
catch (Exception ex)
{
MessageBox.Show("UI更新失败" + ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private GachaBanner3 ParseBanner()
{
if (CmbBannerType.SelectedIndex < 0)
{
MessageBox.Show("请选择奖池类型", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
if (CmbPrefab.SelectedIndex < 0 || CmbTitlePath.SelectedIndex < 0)
{
MessageBox.Show("请选择奖池预制", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
var prefabId = GameData.GachaBannerPrefabs.Ids[CmbPrefab.SelectedIndex];
var titleId = GameData.GachaBannerTitles.Ids[CmbTitlePath.SelectedIndex];
var banner = new GachaBanner3
{
GachaType = (int)NUDGachaType.Value,
ScheduleId = (int)NUDScheduleId.Value,
BannerType = (BannerType)CmbBannerType.SelectedIndex,
PrefabPath = $"GachaShowPanel_A{prefabId:000}",
PreviewPrefabPath = $"UI_Tab_GachaShowPanel_A{prefabId:000}",
TitlePath = $"UI_GACHA_SHOW_PANEL_A{titleId:000}_TITLE",
CostItemId = RbCostItem224.Checked ? 224 : 223,
CoseItemAmount = (int)NUDCostItemAmount1.Value,
CostItemId10 = RbCostItem224.Checked ? 224 : 223,
CoseItemAmount10 = (int)NUDCostItemAmount10.Value,
BeginTime = (int)new DateTimeOffset(DTPBeginTime.Value, TimeSpan.Zero).ToUnixTimeSeconds(),
EndTime = (int)new DateTimeOffset(DTPEndTime.Value, TimeSpan.Zero).ToUnixTimeSeconds(),
SortId = (int)NUDSortId.Value,
EventChance5 = (int)NUDEventChance5.Value,
EventChance4 = (int)NUDEventChance4.Value,
RateUpItems4 = GetCheckedItems(ListUpItems, ListUpItems.Groups["GroupUpA4"])
.Concat(GetCheckedItems(ListUpItems, ListUpItems.Groups["GroupUpW4"]))
.ToArray(),
RateUpItems5 = GetCheckedItems(ListUpItems, ListUpItems.Groups["GroupUpA5"])
.Concat(GetCheckedItems(ListUpItems, ListUpItems.Groups["GroupUpW5"]))
.ToArray(),
FallbackItems3 = GetCheckedItems(ListFallbackItems, ListFallbackItems.Groups["GroupA3"])
.Concat(GetCheckedItems(ListFallbackItems, ListFallbackItems.Groups["GroupW3"]))
.ToArray(),
FallbackItems4Pool1 = GetCheckedItems(ListFallbackItems, ListFallbackItems.Groups["GroupA4"]).ToArray(),
FallbackItems4Pool2 = GetCheckedItems(ListFallbackItems, ListFallbackItems.Groups["GroupW4"]).ToArray(),
FallbackItems5Pool1 = GetCheckedItems(ListFallbackItems, ListFallbackItems.Groups["GroupA5"]).ToArray(),
FallbackItems5Pool2 = GetCheckedItems(ListFallbackItems, ListFallbackItems.Groups["GroupW5"]).ToArray(),
RemoveC6FromPool = ChkRemoveC6FormPool.Checked,
AutoStripRateUpFromFallback = ChkAutoStripRateUpFromFallback.Checked,
Weights4 = GetWeights(TxtWeight4.Text),
Weights5 = GetWeights(TxtWeight5.Text),
PoolBalanceWeights4 = GetWeights(TxtPoolWeight4.Text),
PoolBalanceWeights5 = GetWeights(TxtPoolWeight5.Text),
};
return banner;
}
#endregion - -
}
}

View File

@ -0,0 +1,467 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="BtnAddOrUpdate.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
<value>√ Add or Update</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LblTitlePath.Size" type="System.Drawing.Size, System.Drawing">
<value>57, 17</value>
</data>
<data name="LblTitlePath.Text" xml:space="preserve">
<value>TitlePath</value>
</data>
<data name="LblCostItemAmount10.Location" type="System.Drawing.Point, System.Drawing">
<value>225, 175</value>
</data>
<data name="LblCostItemAmount10.Size" type="System.Drawing.Size, System.Drawing">
<value>78, 17</value>
</data>
<data name="LblCostItemAmount10.Text" xml:space="preserve">
<value>Ten Amount</value>
</data>
<data name="LblCostItemAmount1.Location" type="System.Drawing.Point, System.Drawing">
<value>23, 175</value>
</data>
<data name="LblCostItemAmount1.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 17</value>
</data>
<data name="LblCostItemAmount1.Text" xml:space="preserve">
<value>Cost Amount</value>
</data>
<data name="ChkAutoStripRateUpFromFallback.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 307</value>
</data>
<data name="ChkAutoStripRateUpFromFallback.Size" type="System.Drawing.Size, System.Drawing">
<value>225, 21</value>
</data>
<data name="ChkAutoStripRateUpFromFallback.Text" xml:space="preserve">
<value>Auto Strip Rate Up From Fall back</value>
</data>
<data name="LblOptions.Location" type="System.Drawing.Point, System.Drawing">
<value>60, 288</value>
</data>
<data name="LblOptions.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 17</value>
</data>
<data name="LblOptions.Text" xml:space="preserve">
<value>Optins</value>
</data>
<data name="ChkRemoveC6FormPool.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 287</value>
</data>
<data name="ChkRemoveC6FormPool.Size" type="System.Drawing.Size, System.Drawing">
<value>157, 21</value>
</data>
<data name="ChkRemoveC6FormPool.Text" xml:space="preserve">
<value>Remove C6 Form Pool</value>
</data>
<data name="LnkOpenOldEditor.Size" type="System.Drawing.Size, System.Drawing">
<value>102, 17</value>
</data>
<data name="LnkOpenOldEditor.Text" xml:space="preserve">
<value>Open old editor</value>
</data>
<data name="LblEventChance4.Location" type="System.Drawing.Point, System.Drawing">
<value>200, 261</value>
</data>
<data name="LblEventChance4.Size" type="System.Drawing.Size, System.Drawing">
<value>96, 17</value>
</data>
<data name="LblEventChance4.Text" xml:space="preserve">
<value>Event Chance 4</value>
</data>
<data name="LblEventChance5.Location" type="System.Drawing.Point, System.Drawing">
<value>10, 261</value>
</data>
<data name="LblEventChance5.Size" type="System.Drawing.Size, System.Drawing">
<value>96, 17</value>
</data>
<data name="LblEventChance5.Text" xml:space="preserve">
<value>Event Chance 5</value>
</data>
<data name="LblSortId.Location" type="System.Drawing.Point, System.Drawing">
<value>72, 232</value>
</data>
<data name="LblSortId.Text" xml:space="preserve">
<value>Sort</value>
</data>
<data name="LblGachaTypeTip.Size" type="System.Drawing.Size, System.Drawing">
<value>123, 17</value>
</data>
<data name="LblGachaTypeTip.Text" xml:space="preserve">
<value>Increment from 400</value>
</data>
<data name="LblEndTime.Size" type="System.Drawing.Size, System.Drawing">
<value>62, 17</value>
</data>
<data name="LblEndTime.Text" xml:space="preserve">
<value>End Time</value>
</data>
<data name="LblBeginTime.Location" type="System.Drawing.Point, System.Drawing">
<value>32, 203</value>
</data>
<data name="LblBeginTime.Size" type="System.Drawing.Size, System.Drawing">
<value>73, 17</value>
</data>
<data name="LblBeginTime.Text" xml:space="preserve">
<value>Begin Time</value>
</data>
<data name="LblScheduleIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 17</value>
</data>
<data name="LblScheduleIdTip.Text" xml:space="preserve">
<value>Unique</value>
</data>
<data name="CmbBannerType.Items" xml:space="preserve">
<value>Standard Wish</value>
</data>
<data name="CmbBannerType.Items1" xml:space="preserve">
<value>Character Event Wish</value>
</data>
<data name="CmbBannerType.Items2" xml:space="preserve">
<value>Weapon Event Wish</value>
</data>
<data name="LblSortIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 17</value>
</data>
<data name="LblSortIdTip.Text" xml:space="preserve">
<value>Show order</value>
</data>
<data name="LblBannerType.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 87</value>
</data>
<data name="LblBannerType.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 17</value>
</data>
<data name="LblBannerType.Text" xml:space="preserve">
<value>Banner Type</value>
</data>
<data name="RbCostItem224.Size" type="System.Drawing.Size, System.Drawing">
<value>104, 21</value>
</data>
<data name="RbCostItem224.Text" xml:space="preserve">
<value>Acquaint Fate</value>
</data>
<data name="LblCostItem.Location" type="System.Drawing.Point, System.Drawing">
<value>41, 148</value>
</data>
<data name="LblCostItem.Size" type="System.Drawing.Size, System.Drawing">
<value>64, 17</value>
</data>
<data name="LblCostItem.Text" xml:space="preserve">
<value>Cost Item</value>
</data>
<data name="LblPrefabPath.Location" type="System.Drawing.Point, System.Drawing">
<value>59, 118</value>
</data>
<data name="LblPrefabPath.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 17</value>
</data>
<data name="LblPrefabPath.Text" xml:space="preserve">
<value>Prefab</value>
</data>
<data name="RbCostItem223.Location" type="System.Drawing.Point, System.Drawing">
<value>222, 146</value>
</data>
<data name="RbCostItem223.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 21</value>
</data>
<data name="RbCostItem223.Text" xml:space="preserve">
<value>Intertwined Fate</value>
</data>
<data name="GrpBannerValues.Text" xml:space="preserve">
<value>Banner</value>
</data>
<data name="GrpFallbackPool.Text" xml:space="preserve">
<value>Fallback Pool</value>
</data>
<data name="ListFallbackItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA01LXN0YXIgYXZhdGFyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBNQs=
</value>
</data>
<data name="ListFallbackItems.Groups1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA01LXN0YXIgd2VhcG9uBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXNQs=
</value>
</data>
<data name="ListFallbackItems.Groups2" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA00LXN0YXIgYXZhdGFyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBNAs=
</value>
</data>
<data name="ListFallbackItems.Groups3" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA00LXN0YXIgd2VhcG9uBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXNAs=
</value>
</data>
<data name="ListFallbackItems.Groups4" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA0zLXN0YXIgd2VhcG9uBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXMws=
</value>
</data>
<data name="GrpUpPool.Text" xml:space="preserve">
<value>Up Pool</value>
</data>
<data name="ListUpItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA01LXN0YXIgYXZhdGFyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcEE1Cw==
</value>
</data>
<data name="ListUpItems.Groups1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA01LXN0YXIgd2VhcG9uBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc1Cw==
</value>
</data>
<data name="ListUpItems.Groups2" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA00LXN0YXIgYXZhdGFyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcEE0Cw==
</value>
</data>
<data name="ListUpItems.Groups3" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA00LXN0YXIgd2VhcG9uBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc0Cw==
</value>
</data>
<data name="GrpWeights.Text" xml:space="preserve">
<value>Gacha weights</value>
</data>
<data name="LnkWeightHelp.Location" type="System.Drawing.Point, System.Drawing">
<value>399, 0</value>
</data>
<data name="LnkWeightHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>35, 17</value>
</data>
<data name="LnkWeightHelp.Text" xml:space="preserve">
<value>Help</value>
</data>
<data name="LblWeight4.Location" type="System.Drawing.Point, System.Drawing">
<value>40, 61</value>
</data>
<data name="LblWeight4.Size" type="System.Drawing.Size, System.Drawing">
<value>66, 17</value>
</data>
<data name="LblWeight4.Text" xml:space="preserve">
<value>Weights 4</value>
</data>
<data name="LblWeight5.Location" type="System.Drawing.Point, System.Drawing">
<value>40, 32</value>
</data>
<data name="LblWeight5.Size" type="System.Drawing.Size, System.Drawing">
<value>66, 17</value>
</data>
<data name="LblWeight5.Text" xml:space="preserve">
<value>Weights 5</value>
</data>
<data name="GrpBalance.Text" xml:space="preserve">
<value>Character and weapon balance (only mixed pools work)</value>
</data>
<data name="LblPoolWeight4.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 61</value>
</data>
<data name="LblPoolWeight4.Size" type="System.Drawing.Size, System.Drawing">
<value>90, 17</value>
</data>
<data name="LblPoolWeight4.Text" xml:space="preserve">
<value>Pool Weight 4</value>
</data>
<data name="LblPoolWeight5.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 32</value>
</data>
<data name="LblPoolWeight5.Size" type="System.Drawing.Size, System.Drawing">
<value>90, 17</value>
</data>
<data name="LblPoolWeight5.Text" xml:space="preserve">
<value>Pool Weight 5</value>
</data>
<data name="GrpBanners.Text" xml:space="preserve">
<value>Banners</value>
</data>
<data name="BtnDelete.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="BtnClear.Text" xml:space="preserve">
<value>Clear</value>
</data>
<data name="LblBannersJson.Size" type="System.Drawing.Size, System.Drawing">
<value>114, 17</value>
</data>
<data name="LblBannersJson.Text" xml:space="preserve">
<value>Banners.json Path:</value>
</data>
<data name="BtnLoad.Text" xml:space="preserve">
<value>Load</value>
</data>
<data name="BtnSave.Text" xml:space="preserve">
<value>Save</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Gacha Banner Editor</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,490 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BtnAddOrUpdate.Location" type="System.Drawing.Point, System.Drawing">
<value>180, 328</value>
</data>
<data name="BtnAddOrUpdate.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 23</value>
</data>
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
<value>√ Добавить или обновить</value>
</data>
<data name="LblTitlePath.Size" type="System.Drawing.Size, System.Drawing">
<value>32, 17</value>
</data>
<data name="LblTitlePath.Text" xml:space="preserve">
<value>Title</value>
</data>
<data name="LblCostItemAmount10.Location" type="System.Drawing.Point, System.Drawing">
<value>224, 175</value>
</data>
<data name="LblCostItemAmount10.Size" type="System.Drawing.Size, System.Drawing">
<value>78, 17</value>
</data>
<data name="LblCostItemAmount10.Text" xml:space="preserve">
<value>Ten Amount</value>
</data>
<data name="LblCostItemAmount1.Location" type="System.Drawing.Point, System.Drawing">
<value>23, 175</value>
</data>
<data name="LblCostItemAmount1.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 17</value>
</data>
<data name="LblCostItemAmount1.Text" xml:space="preserve">
<value>Cost Amount</value>
</data>
<data name="ChkAutoStripRateUpFromFallback.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 307</value>
</data>
<data name="ChkAutoStripRateUpFromFallback.Size" type="System.Drawing.Size, System.Drawing">
<value>288, 21</value>
</data>
<data name="ChkAutoStripRateUpFromFallback.Text" xml:space="preserve">
<value>Авто возврат шанса выпадения с баннера</value>
</data>
<data name="LblOptions.Location" type="System.Drawing.Point, System.Drawing">
<value>56, 290</value>
</data>
<data name="LblOptions.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 17</value>
</data>
<data name="LblOptions.Text" xml:space="preserve">
<value>Опции</value>
</data>
<data name="ChkRemoveC6FormPool.Size" type="System.Drawing.Size, System.Drawing">
<value>157, 21</value>
</data>
<data name="ChkRemoveC6FormPool.Text" xml:space="preserve">
<value>Удалить пул форм C6</value>
</data>
<data name="LnkOpenOldEditor.Size" type="System.Drawing.Size, System.Drawing">
<value>167, 17</value>
</data>
<data name="LnkOpenOldEditor.Text" xml:space="preserve">
<value>Открыть старый редактор</value>
</data>
<data name="LblGachaType.Location" type="System.Drawing.Point, System.Drawing">
<value>43, 28</value>
</data>
<data name="LblGachaType.Size" type="System.Drawing.Size, System.Drawing">
<value>63, 17</value>
</data>
<data name="LblGachaType.Text" xml:space="preserve">
<value>Тип Гачи</value>
</data>
<data name="LblEventChance4.Location" type="System.Drawing.Point, System.Drawing">
<value>210, 262</value>
</data>
<data name="LblEventChance4.Size" type="System.Drawing.Size, System.Drawing">
<value>86, 17</value>
</data>
<data name="LblEventChance4.Text" xml:space="preserve">
<value>Шанс соб. 4*</value>
</data>
<data name="LblEventChance5.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 262</value>
</data>
<data name="LblEventChance5.Size" type="System.Drawing.Size, System.Drawing">
<value>86, 17</value>
</data>
<data name="LblEventChance5.Text" xml:space="preserve">
<value>Шанс соб. 5*</value>
</data>
<data name="LblSortId.Location" type="System.Drawing.Point, System.Drawing">
<value>66, 233</value>
</data>
<data name="LblSortId.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 17</value>
</data>
<data name="LblSortId.Text" xml:space="preserve">
<value>Сорт.</value>
</data>
<data name="LblGachaTypeTip.Size" type="System.Drawing.Size, System.Drawing">
<value>116, 17</value>
</data>
<data name="LblGachaTypeTip.Text" xml:space="preserve">
<value>Увеличение с 400</value>
</data>
<data name="LblEndTime.Location" type="System.Drawing.Point, System.Drawing">
<value>249, 204</value>
</data>
<data name="LblEndTime.Size" type="System.Drawing.Size, System.Drawing">
<value>47, 17</value>
</data>
<data name="LblEndTime.Text" xml:space="preserve">
<value>Конец</value>
</data>
<data name="LblScheduleId.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 57</value>
</data>
<data name="LblScheduleId.Size" type="System.Drawing.Size, System.Drawing">
<value>98, 17</value>
</data>
<data name="LblScheduleId.Text" xml:space="preserve">
<value>ID расписания</value>
</data>
<data name="LblBeginTime.Location" type="System.Drawing.Point, System.Drawing">
<value>53, 204</value>
</data>
<data name="LblBeginTime.Size" type="System.Drawing.Size, System.Drawing">
<value>53, 17</value>
</data>
<data name="LblBeginTime.Text" xml:space="preserve">
<value>Начало</value>
</data>
<data name="LblScheduleIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>84, 17</value>
</data>
<data name="LblScheduleIdTip.Text" xml:space="preserve">
<value>Уникальный</value>
</data>
<data name="CmbBannerType.Items" xml:space="preserve">
<value>Стандартная Молитва</value>
</data>
<data name="CmbBannerType.Items1" xml:space="preserve">
<value>Молитва события персонажа</value>
</data>
<data name="CmbBannerType.Items2" xml:space="preserve">
<value>Молитва события с оружием</value>
</data>
<data name="LblSortIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>121, 17</value>
</data>
<data name="LblSortIdTip.Text" xml:space="preserve">
<value>Показать порядок</value>
</data>
<data name="LblBannerType.Location" type="System.Drawing.Point, System.Drawing">
<value>18, 87</value>
</data>
<data name="LblBannerType.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 17</value>
</data>
<data name="LblBannerType.Text" xml:space="preserve">
<value>Тип баннера</value>
</data>
<data name="RbCostItem224.Size" type="System.Drawing.Size, System.Drawing">
<value>116, 21</value>
</data>
<data name="RbCostItem224.Text" xml:space="preserve">
<value>Судьбоносные</value>
</data>
<data name="LblCostItem.Location" type="System.Drawing.Point, System.Drawing">
<value>34, 148</value>
</data>
<data name="LblCostItem.Size" type="System.Drawing.Size, System.Drawing">
<value>72, 17</value>
</data>
<data name="LblCostItem.Text" xml:space="preserve">
<value>Стоимость</value>
</data>
<data name="LblPrefabPath.Location" type="System.Drawing.Point, System.Drawing">
<value>47, 118</value>
</data>
<data name="LblPrefabPath.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 17</value>
</data>
<data name="LblPrefabPath.Text" xml:space="preserve">
<value>Готовый</value>
</data>
<data name="RbCostItem223.Location" type="System.Drawing.Point, System.Drawing">
<value>234, 146</value>
</data>
<data name="RbCostItem223.Size" type="System.Drawing.Size, System.Drawing">
<value>141, 21</value>
</data>
<data name="RbCostItem223.Text" xml:space="preserve">
<value>Переплетающиеся</value>
</data>
<data name="GrpBannerValues.Text" xml:space="preserve">
<value>Баннер</value>
</data>
<data name="GrpFallbackPool.Text" xml:space="preserve">
<value>Запасной Пул</value>
</data>
<data name="ListFallbackItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA01LXN0YXIgYXZhdGFyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBNQs=
</value>
</data>
<data name="ListFallbackItems.Groups1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA01LXN0YXIgd2VhcG9uBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXNQs=
</value>
</data>
<data name="ListFallbackItems.Groups2" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA00LXN0YXIgYXZhdGFyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBNAs=
</value>
</data>
<data name="ListFallbackItems.Groups3" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA00LXN0YXIgd2VhcG9uBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXNAs=
</value>
</data>
<data name="ListFallbackItems.Groups4" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA0zLXN0YXIgd2VhcG9uBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXMws=
</value>
</data>
<data name="GrpUpPool.Text" xml:space="preserve">
<value>Верхний Пул</value>
</data>
<data name="ListUpItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA01LXN0YXIgYXZhdGFyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcEE1Cw==
</value>
</data>
<data name="ListUpItems.Groups1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA01LXN0YXIgd2VhcG9uBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc1Cw==
</value>
</data>
<data name="ListUpItems.Groups2" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA00LXN0YXIgYXZhdGFyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcEE0Cw==
</value>
</data>
<data name="ListUpItems.Groups3" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAA00LXN0YXIgd2VhcG9uBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdu
bWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc0Cw==
</value>
</data>
<data name="GrpWeights.Text" xml:space="preserve">
<value>Gacha Веса</value>
</data>
<data name="LnkWeightHelp.Location" type="System.Drawing.Point, System.Drawing">
<value>375, 0</value>
</data>
<data name="LnkWeightHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 17</value>
</data>
<data name="LnkWeightHelp.Text" xml:space="preserve">
<value>Помощь</value>
</data>
<data name="LblWeight4.Location" type="System.Drawing.Point, System.Drawing">
<value>54, 61</value>
</data>
<data name="LblWeight4.Size" type="System.Drawing.Size, System.Drawing">
<value>52, 17</value>
</data>
<data name="LblWeight4.Text" xml:space="preserve">
<value>Веса 5*</value>
</data>
<data name="LblWeight5.Location" type="System.Drawing.Point, System.Drawing">
<value>54, 32</value>
</data>
<data name="LblWeight5.Size" type="System.Drawing.Size, System.Drawing">
<value>52, 17</value>
</data>
<data name="LblWeight5.Text" xml:space="preserve">
<value>Веса 5*</value>
</data>
<data name="GrpBalance.Text" xml:space="preserve">
<value>Баланс персонажа и оружия (работают только смешанные пулы)</value>
</data>
<data name="LblPoolWeight4.Location" type="System.Drawing.Point, System.Drawing">
<value>28, 61</value>
</data>
<data name="LblPoolWeight4.Size" type="System.Drawing.Size, System.Drawing">
<value>78, 17</value>
</data>
<data name="LblPoolWeight4.Text" xml:space="preserve">
<value>Пул Веса 4*</value>
</data>
<data name="LblPoolWeight5.Location" type="System.Drawing.Point, System.Drawing">
<value>28, 29</value>
</data>
<data name="LblPoolWeight5.Size" type="System.Drawing.Size, System.Drawing">
<value>78, 17</value>
</data>
<data name="LblPoolWeight5.Text" xml:space="preserve">
<value>Пул Веса 5*</value>
</data>
<data name="GrpBanners.Text" xml:space="preserve">
<value>Banners</value>
</data>
<data name="BtnDelete.Text" xml:space="preserve">
<value>- Удалить</value>
</data>
<data name="BtnClear.Text" xml:space="preserve">
<value>× Очистить</value>
</data>
<data name="LblBannersJson.Size" type="System.Drawing.Size, System.Drawing">
<value>116, 17</value>
</data>
<data name="LblBannersJson.Text" xml:space="preserve">
<value>Banners.json Путь:</value>
</data>
<data name="BtnLoad.Text" xml:space="preserve">
<value>Нагрузка</value>
</data>
<data name="BtnSave.Text" xml:space="preserve">
<value>Сохранять</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Редактор баннеров Gacha</value>
</data>
</root>

View File

@ -0,0 +1,307 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="LblTitlePath.Text" xml:space="preserve">
<value>封面標題</value>
</data>
<data name="LblCostItemAmount10.Text" xml:space="preserve">
<value>十連消耗</value>
</data>
<data name="LblCostItemAmount1.Text" xml:space="preserve">
<value>單抽消耗</value>
</data>
<data name="ChkAutoStripRateUpFromFallback.Text" xml:space="preserve">
<value>自動避免UP被基礎抽中</value>
</data>
<data name="LblOptions.Text" xml:space="preserve">
<value>選項</value>
</data>
<data name="LnkOpenOldEditor.Text" xml:space="preserve">
<value>打開舊版本編輯器</value>
</data>
<data name="LblEventChance4.Text" xml:space="preserve">
<value>4星活動爆率</value>
</data>
<data name="LblEventChance5.Text" xml:space="preserve">
<value>5星活動爆率</value>
</data>
<data name="LblSortId.Text" xml:space="preserve">
<value>順序</value>
</data>
<data name="LblGachaTypeTip.Text" xml:space="preserve">
<value>從400開始順序遞增</value>
</data>
<data name="LblEndTime.Text" xml:space="preserve">
<value>結束時間</value>
</data>
<data name="LblBeginTime.Text" xml:space="preserve">
<value>開始時間</value>
</data>
<data name="LblSortIdTip.Text" xml:space="preserve">
<value>客戶端中顯示的順序</value>
</data>
<data name="LblBannerType.Text" xml:space="preserve">
<value>獎池類型</value>
</data>
<data name="RbCostItem224.Text" xml:space="preserve">
<value>相遇之緣</value>
</data>
<data name="LblCostItem.Text" xml:space="preserve">
<value>祈願道具</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LblPrefabPath.Size" type="System.Drawing.Size, System.Drawing">
<value>32, 17</value>
</data>
<data name="LblPrefabPath.Text" xml:space="preserve">
<value>預製</value>
</data>
<data name="RbCostItem223.Text" xml:space="preserve">
<value>糾纏之緣</value>
</data>
<data name="GrpBannerValues.Text" xml:space="preserve">
<value>卡池參數</value>
</data>
<data name="GrpFallbackPool.Text" xml:space="preserve">
<value>基礎池</value>
</data>
<data name="ListFallbackItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAo15pif6KeS6ImyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBNQs=
</value>
</data>
<data name="ListFallbackItems.Groups1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAo15pif5q2m5ZmoBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXNQs=
</value>
</data>
<data name="ListFallbackItems.Groups2" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAo05pif6KeS6ImyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBBNAs=
</value>
</data>
<data name="ListFallbackItems.Groups3" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAo05pif5q2m5ZmoBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXNAs=
</value>
</data>
<data name="ListFallbackItems.Groups4" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAoz5pif5q2m5ZmoBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAHR3JvdXBXMws=
</value>
</data>
<data name="ListUpItems.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAo15pif6KeS6ImyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcEE1Cw==
</value>
</data>
<data name="ListUpItems.Groups1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAo15pif5q2m5ZmoBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc1Cw==
</value>
</data>
<data name="ListUpItems.Groups2" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAo05pif6KeS6ImyBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcEE0Cw==
</value>
</data>
<data name="ListUpItems.Groups3" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAo05pif5q2m5ZmoBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAJR3JvdXBVcFc0Cw==
</value>
</data>
<data name="GrpWeights.Text" xml:space="preserve">
<value>卡池權重與保底機制</value>
</data>
<data name="LnkWeightHelp.Text" xml:space="preserve">
<value>幫助</value>
</data>
<data name="LblWeight4.Text" xml:space="preserve">
<value>4星權重</value>
</data>
<data name="LblWeight5.Text" xml:space="preserve">
<value>5星權重</value>
</data>
<data name="GrpBalance.Text" xml:space="preserve">
<value>角色和武器平衡機制(僅混合池有效)</value>
</data>
<data name="LblPoolWeight4.Text" xml:space="preserve">
<value>4星池權重</value>
</data>
<data name="LblPoolWeight5.Text" xml:space="preserve">
<value>5星池權重</value>
</data>
<data name="BtnDelete.Text" xml:space="preserve">
<value>刪除</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>Banners.json 路徑:</value>
</data>
<data name="BtnLoad.Text" xml:space="preserve">
<value>加載</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>卡池編輯器</value>
</data>
</root>

View File

@ -30,7 +30,7 @@ namespace GrasscutterTools.Forms
{ {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
this.TxtCommand = new System.Windows.Forms.TextBox(); this.CmbCommand = new System.Windows.Forms.ComboBox();
this.BtnCopy = new System.Windows.Forms.Button(); this.BtnCopy = new System.Windows.Forms.Button();
this.ChkAutoCopy = new System.Windows.Forms.CheckBox(); this.ChkAutoCopy = new System.Windows.Forms.CheckBox();
this.GrpCommand = new System.Windows.Forms.GroupBox(); this.GrpCommand = new System.Windows.Forms.GroupBox();
@ -224,7 +224,7 @@ namespace GrasscutterTools.Forms
this.TCSpawnItems = new System.Windows.Forms.TabControl(); this.TCSpawnItems = new System.Windows.Forms.TabControl();
this.TPSpawnItems = new System.Windows.Forms.TabPage(); this.TPSpawnItems = new System.Windows.Forms.TabPage();
this.ListEntity = new System.Windows.Forms.ListBox(); this.ListEntity = new System.Windows.Forms.ListBox();
this.panel1 = new System.Windows.Forms.Panel(); this.PanelEntityFilterBar = new System.Windows.Forms.Panel();
this.TxtEntityFilter = new System.Windows.Forms.TextBox(); this.TxtEntityFilter = new System.Windows.Forms.TextBox();
this.BtnFilterEntity = new System.Windows.Forms.Button(); this.BtnFilterEntity = new System.Windows.Forms.Button();
this.TPSpawnRecords = new System.Windows.Forms.TabPage(); this.TPSpawnRecords = new System.Windows.Forms.TabPage();
@ -390,7 +390,7 @@ namespace GrasscutterTools.Forms
((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRadius)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRadius)).BeginInit();
this.TCSpawnItems.SuspendLayout(); this.TCSpawnItems.SuspendLayout();
this.TPSpawnItems.SuspendLayout(); this.TPSpawnItems.SuspendLayout();
this.panel1.SuspendLayout(); this.PanelEntityFilterBar.SuspendLayout();
this.TPSpawnRecords.SuspendLayout(); this.TPSpawnRecords.SuspendLayout();
this.FLPSpawnRecordControls.SuspendLayout(); this.FLPSpawnRecordControls.SuspendLayout();
this.TPQuest.SuspendLayout(); this.TPQuest.SuspendLayout();
@ -417,10 +417,13 @@ namespace GrasscutterTools.Forms
((System.ComponentModel.ISupportInitialize)(this.NUDMailRecipient)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NUDMailRecipient)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// TxtCommand // CmbCommand
// //
resources.ApplyResources(this.TxtCommand, "TxtCommand"); resources.ApplyResources(this.CmbCommand, "CmbCommand");
this.TxtCommand.Name = "TxtCommand"; this.CmbCommand.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
this.CmbCommand.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.CmbCommand.Name = "CmbCommand";
this.CmbCommand.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtCommand_KeyDown);
// //
// BtnCopy // BtnCopy
// //
@ -441,7 +444,7 @@ namespace GrasscutterTools.Forms
this.GrpCommand.Controls.Add(this.BtnInvokeOpenCommand); this.GrpCommand.Controls.Add(this.BtnInvokeOpenCommand);
this.GrpCommand.Controls.Add(this.BtnCopy); this.GrpCommand.Controls.Add(this.BtnCopy);
this.GrpCommand.Controls.Add(this.ChkAutoCopy); this.GrpCommand.Controls.Add(this.ChkAutoCopy);
this.GrpCommand.Controls.Add(this.TxtCommand); this.GrpCommand.Controls.Add(this.CmbCommand);
this.GrpCommand.Name = "GrpCommand"; this.GrpCommand.Name = "GrpCommand";
this.GrpCommand.TabStop = false; this.GrpCommand.TabStop = false;
// //
@ -603,6 +606,7 @@ namespace GrasscutterTools.Forms
0, 0,
0, 0,
0}); 0});
this.NUDRemotePlayerId.KeyDown += new System.Windows.Forms.KeyEventHandler(this.NUDRemotePlayerId_KeyDown);
// //
// BtnConnectOpenCommand // BtnConnectOpenCommand
// //
@ -642,6 +646,7 @@ namespace GrasscutterTools.Forms
0, 0,
0, 0,
0}); 0});
this.NUDVerificationCode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.NUDVerificationCode_KeyDown);
// //
// LblRemotePlayerId // LblRemotePlayerId
// //
@ -669,6 +674,7 @@ namespace GrasscutterTools.Forms
// //
resources.ApplyResources(this.TxtToken, "TxtToken"); resources.ApplyResources(this.TxtToken, "TxtToken");
this.TxtToken.Name = "TxtToken"; this.TxtToken.Name = "TxtToken";
this.TxtToken.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtToken_KeyDown);
// //
// LblToken // LblToken
// //
@ -684,6 +690,7 @@ namespace GrasscutterTools.Forms
// //
resources.ApplyResources(this.TxtHost, "TxtHost"); resources.ApplyResources(this.TxtHost, "TxtHost");
this.TxtHost.Name = "TxtHost"; this.TxtHost.Name = "TxtHost";
this.TxtHost.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtHost_KeyDown);
// //
// BtnQueryServerStatus // BtnQueryServerStatus
// //
@ -2201,7 +2208,7 @@ namespace GrasscutterTools.Forms
// TPSpawnItems // TPSpawnItems
// //
this.TPSpawnItems.Controls.Add(this.ListEntity); this.TPSpawnItems.Controls.Add(this.ListEntity);
this.TPSpawnItems.Controls.Add(this.panel1); this.TPSpawnItems.Controls.Add(this.PanelEntityFilterBar);
resources.ApplyResources(this.TPSpawnItems, "TPSpawnItems"); resources.ApplyResources(this.TPSpawnItems, "TPSpawnItems");
this.TPSpawnItems.Name = "TPSpawnItems"; this.TPSpawnItems.Name = "TPSpawnItems";
this.TPSpawnItems.UseVisualStyleBackColor = true; this.TPSpawnItems.UseVisualStyleBackColor = true;
@ -2213,12 +2220,12 @@ namespace GrasscutterTools.Forms
this.ListEntity.Name = "ListEntity"; this.ListEntity.Name = "ListEntity";
this.ListEntity.SelectedIndexChanged += new System.EventHandler(this.ListEntity_SelectedIndexChanged); this.ListEntity.SelectedIndexChanged += new System.EventHandler(this.ListEntity_SelectedIndexChanged);
// //
// panel1 // PanelEntityFilterBar
// //
this.panel1.Controls.Add(this.TxtEntityFilter); this.PanelEntityFilterBar.Controls.Add(this.TxtEntityFilter);
this.panel1.Controls.Add(this.BtnFilterEntity); this.PanelEntityFilterBar.Controls.Add(this.BtnFilterEntity);
resources.ApplyResources(this.panel1, "panel1"); resources.ApplyResources(this.PanelEntityFilterBar, "PanelEntityFilterBar");
this.panel1.Name = "panel1"; this.PanelEntityFilterBar.Name = "PanelEntityFilterBar";
// //
// TxtEntityFilter // TxtEntityFilter
// //
@ -2618,6 +2625,7 @@ namespace GrasscutterTools.Forms
// //
resources.ApplyResources(this.TxtCustomName, "TxtCustomName"); resources.ApplyResources(this.TxtCustomName, "TxtCustomName");
this.TxtCustomName.Name = "TxtCustomName"; this.TxtCustomName.Name = "TxtCustomName";
this.TxtCustomName.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtCustomName_KeyDown);
// //
// TPHome // TPHome
// //
@ -2823,8 +2831,8 @@ namespace GrasscutterTools.Forms
// //
// TPMailSelectableItemList // TPMailSelectableItemList
// //
this.TPMailSelectableItemList.Controls.Add(this.TxtMailSelectableItemFilter);
this.TPMailSelectableItemList.Controls.Add(this.ListMailSelectableItems); this.TPMailSelectableItemList.Controls.Add(this.ListMailSelectableItems);
this.TPMailSelectableItemList.Controls.Add(this.TxtMailSelectableItemFilter);
this.TPMailSelectableItemList.Controls.Add(this.PanelMailItemArgs); this.TPMailSelectableItemList.Controls.Add(this.PanelMailItemArgs);
resources.ApplyResources(this.TPMailSelectableItemList, "TPMailSelectableItemList"); resources.ApplyResources(this.TPMailSelectableItemList, "TPMailSelectableItemList");
this.TPMailSelectableItemList.Name = "TPMailSelectableItemList"; this.TPMailSelectableItemList.Name = "TPMailSelectableItemList";
@ -3128,8 +3136,8 @@ namespace GrasscutterTools.Forms
((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRadius)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NUDAiwiRadius)).EndInit();
this.TCSpawnItems.ResumeLayout(false); this.TCSpawnItems.ResumeLayout(false);
this.TPSpawnItems.ResumeLayout(false); this.TPSpawnItems.ResumeLayout(false);
this.panel1.ResumeLayout(false); this.PanelEntityFilterBar.ResumeLayout(false);
this.panel1.PerformLayout(); this.PanelEntityFilterBar.PerformLayout();
this.TPSpawnRecords.ResumeLayout(false); this.TPSpawnRecords.ResumeLayout(false);
this.TPSpawnRecords.PerformLayout(); this.TPSpawnRecords.PerformLayout();
this.FLPSpawnRecordControls.ResumeLayout(false); this.FLPSpawnRecordControls.ResumeLayout(false);
@ -3172,7 +3180,7 @@ namespace GrasscutterTools.Forms
#endregion #endregion
private System.Windows.Forms.TextBox TxtCommand; private System.Windows.Forms.ComboBox CmbCommand;
private System.Windows.Forms.Button BtnCopy; private System.Windows.Forms.Button BtnCopy;
private System.Windows.Forms.CheckBox ChkAutoCopy; private System.Windows.Forms.CheckBox ChkAutoCopy;
private System.Windows.Forms.GroupBox GrpCommand; private System.Windows.Forms.GroupBox GrpCommand;
@ -3413,7 +3421,7 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.TabPage TPSpawnArgs; private System.Windows.Forms.TabPage TPSpawnArgs;
private System.Windows.Forms.TabPage TPAttackModArgs; private System.Windows.Forms.TabPage TPAttackModArgs;
private System.Windows.Forms.Button BtnFilterEntity; private System.Windows.Forms.Button BtnFilterEntity;
private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Panel PanelEntityFilterBar;
private System.Windows.Forms.FlowLayoutPanel FLPSpawnRecordControls; private System.Windows.Forms.FlowLayoutPanel FLPSpawnRecordControls;
private System.Windows.Forms.ContextMenuStrip MenuSpawnEntityFilter; private System.Windows.Forms.ContextMenuStrip MenuSpawnEntityFilter;
private System.Windows.Forms.GroupBox GrpAMSkills; private System.Windows.Forms.GroupBox GrpAMSkills;

View File

@ -166,7 +166,11 @@ namespace GrasscutterTools.Forms
// 记录界面状态 // 记录界面状态
Settings.Default.AutoCopy = ChkAutoCopy.Checked; Settings.Default.AutoCopy = ChkAutoCopy.Checked;
Settings.Default.MainFormLocation = Location; Settings.Default.MainFormLocation = Location;
Settings.Default.MainFormSize = Size; // 如果命令窗口已经弹出了,则不要保存多余的高度
if (TxtCommandRunLog != null)
Settings.Default.MainFormSize = new Size(Width, Height - TxtCommandRunLogMinHeight);
else
Settings.Default.MainFormSize = Size;
// 保存自定义命令 // 保存自定义命令
SaveCustomCommands(); SaveCustomCommands();
@ -260,86 +264,43 @@ namespace GrasscutterTools.Forms
form.TopMost = false; form.TopMost = false;
} }
/// <summary> private readonly Dictionary<string, Form> MyForms = new Dictionary<string, Form>();
/// 卡池编辑器窗口实例
/// </summary> private void ShowForm<T>(string tag) where T : Form, new()
private Form GachaBannerEditor; {
if (!MyForms.TryGetValue(tag, out var form) || form.IsDisposed)
form = new T();
MyForms[tag] = form;
if (form.IsHandleCreated)
ToTop(form);
else
form.Show();
}
/// <summary> /// <summary>
/// 点击打开卡池编辑器时触发 /// 点击打开卡池编辑器时触发
/// </summary> /// </summary>
private void BtnOpenGachaBannerEditor_Click(object sender, EventArgs e) private void BtnOpenGachaBannerEditor_Click(object sender, EventArgs e)
{ => ShowForm<FormGachaBannersEditor3>("BannersEditor");
if (GachaBannerEditor == null || GachaBannerEditor.IsDisposed)
{
GachaBannerEditor = new FormGachaBannerEditor2();
GachaBannerEditor.Show();
}
else
{
ToTop(GachaBannerEditor);
}
}
/// <summary> /// <summary>
/// 文本浏览器窗口实例 /// 点击打开文本浏览器时触发
/// </summary> /// </summary>
private FormTextMapBrowser TextMapBrowser;
private void BtnOpenTextMap_Click(object sender, EventArgs e) private void BtnOpenTextMap_Click(object sender, EventArgs e)
{ => ShowForm<FormTextMapBrowser>("TextMapBrowser");
if (TextMapBrowser == null || TextMapBrowser.IsDisposed)
{
TextMapBrowser = new FormTextMapBrowser();
TextMapBrowser.Show();
}
else
{
ToTop(TextMapBrowser);
}
}
/// <summary>
/// 掉落物编辑器窗口实例
/// </summary>
private FormDropEditor DropEditor;
/// <summary> /// <summary>
/// 点击打开掉落物编辑器时触发 /// 点击打开掉落物编辑器时触发
/// </summary> /// </summary>
private void BtnOpenDropEditor_Click(object sender, EventArgs e) private void BtnOpenDropEditor_Click(object sender, EventArgs e)
{ => ShowForm<FormDropEditor>("DropEditor");
if (DropEditor == null || DropEditor.IsDisposed)
{
DropEditor = new FormDropEditor();
DropEditor.Show();
}
else
{
ToTop(DropEditor);
}
}
/// <summary>
/// 商店编辑器窗口实例
/// </summary>
private FormShopEditor ShopEditor;
/// <summary> /// <summary>
/// 点击打开商店编辑器时触发 /// 点击打开商店编辑器时触发
/// </summary> /// </summary>
private void BtnOpenShopEditor_Click(object sender, EventArgs e) private void BtnOpenShopEditor_Click(object sender, EventArgs e)
{ => ShowForm<FormShopEditor>("ShopEditor");
if (ShopEditor == null || ShopEditor.IsDisposed)
{
ShopEditor = new FormShopEditor();
ShopEditor.Show();
}
else
{
ToTop(ShopEditor);
}
}
/// <summary> /// <summary>
/// 语言选中项改变时触发 /// 语言选中项改变时触发
@ -464,6 +425,14 @@ namespace GrasscutterTools.Forms
} }
} }
/// <summary>
/// 自定义命令文本框回车时触发
/// </summary>
private void TxtCustomName_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) BtnSaveCustomCommand_Click(BtnSaveCustomCommand, e);
}
/// <summary> /// <summary>
/// 点击保存自定义命令列表时触发 /// 点击保存自定义命令列表时触发
/// </summary> /// </summary>
@ -476,13 +445,13 @@ namespace GrasscutterTools.Forms
MessageBox.Show(Resources.CommandTagCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(Resources.CommandTagCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return; return;
} }
if (string.IsNullOrWhiteSpace(TxtCommand.Text)) if (string.IsNullOrWhiteSpace(CmbCommand.Text))
{ {
MessageBox.Show(Resources.CommandContentCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(Resources.CommandContentCannotBeEmpty, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return; return;
} }
var name = TxtCustomName.Text.Trim(); var name = TxtCustomName.Text.Trim();
var command = TxtCommand.Text.Trim(); var command = CmbCommand.Text.Trim();
foreach (LinkLabel lnk in FLPCustomCommands.Controls) foreach (LinkLabel lnk in FLPCustomCommands.Controls)
{ {
@ -990,7 +959,7 @@ namespace GrasscutterTools.Forms
{ {
if (GenGiveItemCommand()) if (GenGiveItemCommand())
{ {
var cmd = new GameCommand($"{ListGameItems.SelectedItem} x{NUDGameItemAmout.Value}", TxtCommand.Text); var cmd = new GameCommand($"{ListGameItems.SelectedItem} x{NUDGameItemAmout.Value}", CmbCommand.Text);
GiveItemCommands.Add(cmd); GiveItemCommands.Add(cmd);
ListGiveItemLogs.Items.Add(cmd.Name); ListGiveItemLogs.Items.Add(cmd.Name);
SaveGiveItemRecord(); SaveGiveItemRecord();
@ -1384,7 +1353,7 @@ namespace GrasscutterTools.Forms
// 不再重新生成,直接记录当前命令行的内容 // 不再重新生成,直接记录当前命令行的内容
//if (GenSpawnEntityCommand()) //if (GenSpawnEntityCommand())
{ {
var cmd = new GameCommand($"{ListEntity.SelectedItem} | {TxtCommand.Text}", TxtCommand.Text); var cmd = new GameCommand($"{ListEntity.SelectedItem} | {CmbCommand.Text}", CmbCommand.Text);
SpawnCommands.Add(cmd); SpawnCommands.Add(cmd);
ListSpawnLogs.Items.Add(cmd.Name); ListSpawnLogs.Items.Add(cmd.Name);
SaveSpawnRecord(); SaveSpawnRecord();
@ -1977,15 +1946,36 @@ namespace GrasscutterTools.Forms
/// <param name="command">命令</param> /// <param name="command">命令</param>
private void SetCommand(string command) private void SetCommand(string command)
{ {
if (ModifierKeys == Keys.Shift) var oldCommand = CmbCommand.Text;
TxtCommand.Text += " | " + command; CmbCommand.Text = (ModifierKeys == Keys.Shift) ? $"{oldCommand} | {command}" : command;
else
TxtCommand.Text = command;
if (ChkAutoCopy.Checked) if (ChkAutoCopy.Checked)
CopyCommand(); CopyCommand();
AddCommandToList(command);
if (ModifierKeys == Keys.Control) if (ModifierKeys == Keys.Control)
{
OnOpenCommandInvoke(); OnOpenCommandInvoke();
}
else if (ModifierKeys == Keys.Alt)
{
OnOpenCommandInvoke();
CmbCommand.Text = oldCommand;
}
}
/// <summary>
/// 添加命令到执行记录
/// </summary>
private void AddCommandToList(string command = "")
{
if (string.IsNullOrEmpty(command))
command = CmbCommand.Text;
if (!string.IsNullOrEmpty(command))
{
if (CmbCommand.Items.Count > 19)
CmbCommand.Items.RemoveAt(0);
CmbCommand.Items.Add(command);
}
} }
/// <summary> /// <summary>
@ -2015,8 +2005,16 @@ namespace GrasscutterTools.Forms
/// </summary> /// </summary>
private void CopyCommand() private void CopyCommand()
{ {
if (!string.IsNullOrEmpty(TxtCommand.Text)) if (!string.IsNullOrEmpty(CmbCommand.Text))
Clipboard.SetText(TxtCommand.Text); Clipboard.SetText(CmbCommand.Text);
}
/// <summary>
/// 在命令行内按下回车时直接执行
/// </summary>
private void TxtCommand_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) OnOpenCommandInvoke();
} }
/// <summary> /// <summary>
@ -2033,15 +2031,16 @@ namespace GrasscutterTools.Forms
private async void BtnInvokeOpenCommand_Click(object sender, EventArgs e) private async void BtnInvokeOpenCommand_Click(object sender, EventArgs e)
{ {
if (!BtnInvokeOpenCommand.Enabled) return; if (!BtnInvokeOpenCommand.Enabled) return;
if (TxtCommand.Text.Length < 2) var cmd = CmbCommand.Text;
if (cmd.Length < 2)
{ {
ShowTip(Resources.CommandContentCannotBeEmpty, TxtCommand); ShowTip(Resources.CommandContentCannotBeEmpty, CmbCommand);
return; return;
} }
if (TxtCommand.Text.IndexOf('|') == -1) if (cmd.IndexOf('|') == -1)
await RunCommands(FormatCommand(TxtCommand.Text)); await RunCommands(FormatCommand(cmd));
else else
await RunCommands(TxtCommand.Text.Split('|').Select(it => FormatCommand(it)).ToArray()); await RunCommands(cmd.Split('|').Select(it => FormatCommand(it)).ToArray());
} }
/// <summary> /// <summary>
@ -2311,6 +2310,14 @@ namespace GrasscutterTools.Forms
LblPlayerCount.Text = status.PlayerCount.ToString(); LblPlayerCount.Text = status.PlayerCount.ToString();
} }
/// <summary>
/// 输入服务器地址按下回车时触发
/// </summary>
private void TxtHost_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) BtnQueryServerStatus_Click(BtnQueryServerStatus, e);
}
/// <summary> /// <summary>
/// 点击查询服务器状态按钮时触发 /// 点击查询服务器状态按钮时触发
/// </summary> /// </summary>
@ -2356,6 +2363,14 @@ namespace GrasscutterTools.Forms
} }
} }
/// <summary>
/// 玩家ID输入框按下回车时触发
/// </summary>
private void NUDRemotePlayerId_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) BtnSendVerificationCode_Click(BtnSendVerificationCode, e);
}
/// <summary> /// <summary>
/// 点击发送校验码按钮时触发 /// 点击发送校验码按钮时触发
/// </summary> /// </summary>
@ -2390,6 +2405,14 @@ namespace GrasscutterTools.Forms
} }
} }
/// <summary>
/// 验证码输入框按下回车时触发
/// </summary>
private void NUDVerificationCode_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) BtnConnectOpenCommand_Click(BtnConnectOpenCommand, e);
}
/// <summary> /// <summary>
/// 点击连接到开放命令按钮时触发 /// 点击连接到开放命令按钮时触发
/// </summary> /// </summary>
@ -2418,6 +2441,14 @@ namespace GrasscutterTools.Forms
} }
} }
/// <summary>
/// Token 输入框按下回车时触发
/// </summary>
private void TxtToken_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) BtnConsoleConnect_Click(BtnConsoleConnect, e);
}
/// <summary> /// <summary>
/// 点击控制台连接按钮时触发 /// 点击控制台连接按钮时触发
/// </summary> /// </summary>

View File

@ -127,11 +127,20 @@
<data name="ChkAutoCopy.Text" xml:space="preserve"> <data name="ChkAutoCopy.Text" xml:space="preserve">
<value>Auto</value> <value>Auto</value>
</data> </data>
<data name="GrpCommand.Text" xml:space="preserve">
<value>Command - [Ctrl] Autorun - [Shift] Append - [Alt] Only run - [|] Split multiple commands</value>
</data>
<data name="BtnInvokeOpenCommand.Text" xml:space="preserve"> <data name="BtnInvokeOpenCommand.Text" xml:space="preserve">
<value>Run(F5)</value> <value>Run(F5)</value>
</data> </data>
<data name="GrpCommand.Text" xml:space="preserve"> <data name="TPRemoteCall.Location" type="System.Drawing.Point, System.Drawing">
<value>Command - [Ctrl] Autorun - [|] Split multiple commands</value> <value>4, 26</value>
</data>
<data name="TPRemoteCall.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPRemoteCall.Text" xml:space="preserve">
<value>Remote</value>
</data> </data>
<data name="LnkInventoryKamera.Text" xml:space="preserve"> <data name="LnkInventoryKamera.Text" xml:space="preserve">
<value>InventoryKamera</value> <value>InventoryKamera</value>
@ -151,6 +160,9 @@
<data name="LblHostTip.Text" xml:space="preserve"> <data name="LblHostTip.Text" xml:space="preserve">
<value>Please be sure https:// or http:// is included with the IP address</value> <value>Please be sure https:// or http:// is included with the IP address</value>
</data> </data>
<data name="GrpServerStatus.Text" xml:space="preserve">
<value>Server status</value>
</data>
<data name="LnkOpenCommandLabel.Location" type="System.Drawing.Point, System.Drawing"> <data name="LnkOpenCommandLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 63</value> <value>13, 63</value>
</data> </data>
@ -187,8 +199,17 @@
<data name="LblPlayerCountLabel.Text" xml:space="preserve"> <data name="LblPlayerCountLabel.Text" xml:space="preserve">
<value>Player count</value> <value>Player count</value>
</data> </data>
<data name="GrpServerStatus.Text" xml:space="preserve"> <data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>Server status</value> <value>Remote Cell</value>
</data>
<data name="TPPlayerCheck.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="TPPlayerCheck.Size" type="System.Drawing.Size, System.Drawing">
<value>296, 109</value>
</data>
<data name="TPPlayerCheck.Text" xml:space="preserve">
<value>Player</value>
</data> </data>
<data name="LnkRCHelp.Size" type="System.Drawing.Size, System.Drawing"> <data name="LnkRCHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>35, 17</value> <value>35, 17</value>
@ -208,8 +229,11 @@
<data name="BtnSendVerificationCode.Text" xml:space="preserve"> <data name="BtnSendVerificationCode.Text" xml:space="preserve">
<value>Send Code</value> <value>Send Code</value>
</data> </data>
<data name="TPPlayerCheck.Text" xml:space="preserve"> <data name="TPConsoleCheck.Size" type="System.Drawing.Size, System.Drawing">
<value>Player</value> <value>296, 111</value>
</data>
<data name="TPConsoleCheck.Text" xml:space="preserve">
<value>Console</value>
</data> </data>
<data name="BtnConsoleConnect.Text" xml:space="preserve"> <data name="BtnConsoleConnect.Text" xml:space="preserve">
<value>Connect</value> <value>Connect</value>
@ -217,12 +241,6 @@
<data name="LblConsoleTip.Text" xml:space="preserve"> <data name="LblConsoleTip.Text" xml:space="preserve">
<value>Note that normal commands in the console state must specify the target (set include UID)</value> <value>Note that normal commands in the console state must specify the target (set include UID)</value>
</data> </data>
<data name="TPConsoleCheck.Text" xml:space="preserve">
<value>Console</value>
</data>
<data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>Remote Cell</value>
</data>
<data name="TxtHost.Location" type="System.Drawing.Point, System.Drawing"> <data name="TxtHost.Location" type="System.Drawing.Point, System.Drawing">
<value>136, 36</value> <value>136, 36</value>
</data> </data>
@ -244,8 +262,14 @@
<data name="LblHost.Text" xml:space="preserve"> <data name="LblHost.Text" xml:space="preserve">
<value>Server IP</value> <value>Server IP</value>
</data> </data>
<data name="TPRemoteCall.Text" xml:space="preserve"> <data name="TPAbout.Location" type="System.Drawing.Point, System.Drawing">
<value>Remote</value> <value>4, 26</value>
</data>
<data name="TPAbout.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPAbout.Text" xml:space="preserve">
<value>About</value>
</data> </data>
<data name="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>387, 102</value> <value>387, 102</value>
@ -258,8 +282,17 @@ If you think this is helpful to you, you can give me a free Star.
If there is a problem with the command generation, If there is a problem with the command generation,
or there is a new feature request, you can file an issue on Github.</value> or there is a new feature request, you can file an issue on Github.</value>
</data> </data>
<data name="TPAbout.Text" xml:space="preserve"> <data name="TPManage.Location" type="System.Drawing.Point, System.Drawing">
<value>About</value> <value>4, 26</value>
</data>
<data name="TPManage.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPManage.Text" xml:space="preserve">
<value>Manage</value>
</data>
<data name="GrpBanPlayer.Text" xml:space="preserve">
<value>Ban</value>
</data> </data>
<data name="BtnUnban.Text" xml:space="preserve"> <data name="BtnUnban.Text" xml:space="preserve">
<value>Unban</value> <value>Unban</value>
@ -279,8 +312,8 @@ or there is a new feature request, you can file an issue on Github.</value>
<data name="LblBanUID.Text" xml:space="preserve"> <data name="LblBanUID.Text" xml:space="preserve">
<value>UID</value> <value>UID</value>
</data> </data>
<data name="GrpBanPlayer.Text" xml:space="preserve"> <data name="GrpAccount.Text" xml:space="preserve">
<value>Ban</value> <value>Account</value>
</data> </data>
<data name="ChkAccountSetUid.Size" type="System.Drawing.Size, System.Drawing"> <data name="ChkAccountSetUid.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 21</value> <value>49, 21</value>
@ -315,8 +348,8 @@ or there is a new feature request, you can file an issue on Github.</value>
<data name="TxtAccountUserName.Size" type="System.Drawing.Size, System.Drawing"> <data name="TxtAccountUserName.Size" type="System.Drawing.Size, System.Drawing">
<value>127, 23</value> <value>127, 23</value>
</data> </data>
<data name="GrpAccount.Text" xml:space="preserve"> <data name="GrpPermission.Text" xml:space="preserve">
<value>Account</value> <value>Permissions</value>
</data> </data>
<data name="CmbPerm.Location" type="System.Drawing.Point, System.Drawing"> <data name="CmbPerm.Location" type="System.Drawing.Point, System.Drawing">
<value>262, 21</value> <value>262, 21</value>
@ -351,11 +384,14 @@ or there is a new feature request, you can file an issue on Github.</value>
<data name="LblPermUID.Text" xml:space="preserve"> <data name="LblPermUID.Text" xml:space="preserve">
<value>UID</value> <value>UID</value>
</data> </data>
<data name="GrpPermission.Text" xml:space="preserve"> <data name="TPScene.Location" type="System.Drawing.Point, System.Drawing">
<value>Permissions</value> <value>4, 26</value>
</data> </data>
<data name="TPManage.Text" xml:space="preserve"> <data name="TPScene.Size" type="System.Drawing.Size, System.Drawing">
<value>Manage</value> <value>652, 245</value>
</data>
<data name="TPScene.Text" xml:space="preserve">
<value>Scene</value>
</data> </data>
<data name="ChkIncludeSceneId.Location" type="System.Drawing.Point, System.Drawing"> <data name="ChkIncludeSceneId.Location" type="System.Drawing.Point, System.Drawing">
<value>91, 213</value> <value>91, 213</value>
@ -427,8 +463,14 @@ Tip: Most of the scenes have no effect and cannot be entered.</value>
Tip: You can quickly teleport through the 'fishing hook' pin on the map in-game. 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</value> In the command, you can use ~ to indicate the current position, and ~N to indicate the relative current N</value>
</data> </data>
<data name="TPScene.Text" xml:space="preserve"> <data name="TPItem.Location" type="System.Drawing.Point, System.Drawing">
<value>Scene</value> <value>4, 26</value>
</data>
<data name="TPItem.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPItem.Text" xml:space="preserve">
<value>Items</value>
</data> </data>
<data name="LblClearGiveItemLogs.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblClearGiveItemLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 17</value> <value>50, 17</value>
@ -481,8 +523,14 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="LblGiveCommandDescription.Text" xml:space="preserve"> <data name="LblGiveCommandDescription.Text" xml:space="preserve">
<value>Give item to player</value> <value>Give item to player</value>
</data> </data>
<data name="TPItem.Text" xml:space="preserve"> <data name="TPWeapon.Location" type="System.Drawing.Point, System.Drawing">
<value>Items</value> <value>4, 26</value>
</data>
<data name="TPWeapon.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPWeapon.Text" xml:space="preserve">
<value>Weapons</value>
</data> </data>
<data name="BtnGiveAllWeapons.Text" xml:space="preserve"> <data name="BtnGiveAllWeapons.Text" xml:space="preserve">
<value>Give all Weapons</value> <value>Give all Weapons</value>
@ -526,8 +574,17 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="NUDWeaponLevel.Location" type="System.Drawing.Point, System.Drawing"> <data name="NUDWeaponLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>147, 216</value> <value>147, 216</value>
</data> </data>
<data name="TPWeapon.Text" xml:space="preserve"> <data name="TPAvatar.Location" type="System.Drawing.Point, System.Drawing">
<value>Weapons</value> <value>4, 26</value>
</data>
<data name="TPAvatar.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPAvatar.Text" xml:space="preserve">
<value>Avatar</value>
</data>
<data name="GrpSetConstellation.Text" xml:space="preserve">
<value>Constellation</value>
</data> </data>
<data name="LnkSetAllConst.Size" type="System.Drawing.Size, System.Drawing"> <data name="LnkSetAllConst.Size" type="System.Drawing.Size, System.Drawing">
<value>43, 17</value> <value>43, 17</value>
@ -541,8 +598,8 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="LnkSetConst.Text" xml:space="preserve"> <data name="LnkSetConst.Text" xml:space="preserve">
<value>Set current</value> <value>Set current</value>
</data> </data>
<data name="GrpSetConstellation.Text" xml:space="preserve"> <data name="GrpSetStats.Text" xml:space="preserve">
<value>Constellation</value> <value>Stats</value>
</data> </data>
<data name="BtnUnlockStat.Text" xml:space="preserve"> <data name="BtnUnlockStat.Text" xml:space="preserve">
<value>Unlock</value> <value>Unlock</value>
@ -553,8 +610,8 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="LblStatTip.Text" xml:space="preserve"> <data name="LblStatTip.Text" xml:space="preserve">
<value>Tip</value> <value>Tip</value>
</data> </data>
<data name="GrpSetStats.Text" xml:space="preserve"> <data name="GrpTalentLevel.Text" xml:space="preserve">
<value>Stats</value> <value>Talent Level</value>
</data> </data>
<data name="LnkTalentAll.Location" type="System.Drawing.Point, System.Drawing"> <data name="LnkTalentAll.Location" type="System.Drawing.Point, System.Drawing">
<value>146, 24</value> <value>146, 24</value>
@ -595,9 +652,6 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="NUDTalentLevel.Size" type="System.Drawing.Size, System.Drawing"> <data name="NUDTalentLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>96, 23</value> <value>96, 23</value>
</data> </data>
<data name="GrpTalentLevel.Text" xml:space="preserve">
<value>Talent Level</value>
</data>
<data name="CmbSwitchElement.Items" xml:space="preserve"> <data name="CmbSwitchElement.Items" xml:space="preserve">
<value>White</value> <value>White</value>
</data> </data>
@ -655,8 +709,23 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="LblAvatarConstellation.Text" xml:space="preserve"> <data name="LblAvatarConstellation.Text" xml:space="preserve">
<value>Const.</value> <value>Const.</value>
</data> </data>
<data name="TPAvatar.Text" xml:space="preserve"> <data name="TPSpawn.Location" type="System.Drawing.Point, System.Drawing">
<value>Avatar</value> <value>4, 26</value>
</data>
<data name="TPSpawn.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPSpawn.Text" xml:space="preserve">
<value>Spawn</value>
</data>
<data name="TPSpawnArgs.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="TPSpawnArgs.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 203</value>
</data>
<data name="TPSpawnArgs.Text" xml:space="preserve">
<value>Spawn args</value>
</data> </data>
<data name="NUDEntityAmout.Location" type="System.Drawing.Point, System.Drawing"> <data name="NUDEntityAmout.Location" type="System.Drawing.Point, System.Drawing">
<value>78, 25</value> <value>78, 25</value>
@ -715,8 +784,14 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="LblEntityAmount.Text" xml:space="preserve"> <data name="LblEntityAmount.Text" xml:space="preserve">
<value>Amount</value> <value>Amount</value>
</data> </data>
<data name="TPSpawnArgs.Text" xml:space="preserve"> <data name="TPAttackModArgs.Location" type="System.Drawing.Point, System.Drawing">
<value>Spawn args</value> <value>4, 26</value>
</data>
<data name="TPAttackModArgs.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 203</value>
</data>
<data name="TPAttackModArgs.Text" xml:space="preserve">
<value>AttackModifier</value>
</data> </data>
<data name="LblAMPluginTip.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblAMPluginTip.Size" type="System.Drawing.Size, System.Drawing">
<value>121, 17</value> <value>121, 17</value>
@ -757,8 +832,8 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="GrpAMSkills.Text" xml:space="preserve"> <data name="GrpAMSkills.Text" xml:space="preserve">
<value>Replace Skill</value> <value>Replace Skill</value>
</data> </data>
<data name="TPAttackModArgs.Text" xml:space="preserve"> <data name="TPAttackInfusedArgs.Text" xml:space="preserve">
<value>AttackModifier</value> <value>AttackInfused</value>
</data> </data>
<data name="LblAiwiRotate.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblAiwiRotate.Size" type="System.Drawing.Size, System.Drawing">
<value>238, 17</value> <value>238, 17</value>
@ -808,12 +883,21 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="LblAiwiPlugin.Text" xml:space="preserve"> <data name="LblAiwiPlugin.Text" xml:space="preserve">
<value>Plugin:</value> <value>Plugin:</value>
</data> </data>
<data name="TPAttackInfusedArgs.Text" xml:space="preserve"> <data name="TPSpawnItems.Location" type="System.Drawing.Point, System.Drawing">
<value>AttackInfused</value> <value>4, 26</value>
</data>
<data name="TPSpawnItems.Size" type="System.Drawing.Size, System.Drawing">
<value>280, 203</value>
</data> </data>
<data name="TPSpawnItems.Text" xml:space="preserve"> <data name="TPSpawnItems.Text" xml:space="preserve">
<value>Entities</value> <value>Entities</value>
</data> </data>
<data name="ListEntity.Size" type="System.Drawing.Size, System.Drawing">
<value>274, 167</value>
</data>
<data name="TPSpawnRecords.Text" xml:space="preserve">
<value>Spawn Records</value>
</data>
<data name="BtnSaveSpawnLog.Text" xml:space="preserve"> <data name="BtnSaveSpawnLog.Text" xml:space="preserve">
<value>√ Record</value> <value>√ Record</value>
</data> </data>
@ -826,11 +910,17 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="LblClearSpawnLogs.Text" xml:space="preserve"> <data name="LblClearSpawnLogs.Text" xml:space="preserve">
<value>X Clear</value> <value>X Clear</value>
</data> </data>
<data name="TPSpawnRecords.Text" xml:space="preserve"> <data name="TPQuest.Location" type="System.Drawing.Point, System.Drawing">
<value>Spawn Records</value> <value>4, 26</value>
</data> </data>
<data name="TPSpawn.Text" xml:space="preserve"> <data name="TPQuest.Size" type="System.Drawing.Size, System.Drawing">
<value>Spawn</value> <value>652, 245</value>
</data>
<data name="TPQuest.Text" xml:space="preserve">
<value>Quest</value>
</data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>List Filter</value>
</data> </data>
<data name="ChkQuestFilterTEST.Size" type="System.Drawing.Size, System.Drawing"> <data name="ChkQuestFilterTEST.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 21</value> <value>51, 21</value>
@ -850,9 +940,6 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
<data name="ChkQuestFilterHIDDEN.Text" xml:space="preserve"> <data name="ChkQuestFilterHIDDEN.Text" xml:space="preserve">
<value>Hidden</value> <value>Hidden</value>
</data> </data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>List Filter</value>
</data>
<data name="BtnFinishQuest.Text" xml:space="preserve"> <data name="BtnFinishQuest.Text" xml:space="preserve">
<value>Finish</value> <value>Finish</value>
</data> </data>
@ -864,8 +951,14 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
Tip: Many quest require server-side scripting support Tip: Many quest require server-side scripting support
Therefore, the quest can be added and finished, but not necessarily work.</value> Therefore, the quest can be added and finished, but not necessarily work.</value>
</data> </data>
<data name="TPQuest.Text" xml:space="preserve"> <data name="TPArtifact.Location" type="System.Drawing.Point, System.Drawing">
<value>Quest</value> <value>4, 26</value>
</data>
<data name="TPArtifact.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPArtifact.Text" xml:space="preserve">
<value>Artifacts</value>
</data> </data>
<data name="BtnAddSubAttr.Text" xml:space="preserve"> <data name="BtnAddSubAttr.Text" xml:space="preserve">
<value>+ Add</value> <value>+ Add</value>
@ -924,8 +1017,14 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="LblArtifactStars.Text" xml:space="preserve"> <data name="LblArtifactStars.Text" xml:space="preserve">
<value>Stars</value> <value>Stars</value>
</data> </data>
<data name="TPArtifact.Text" xml:space="preserve"> <data name="TPCustom.Location" type="System.Drawing.Point, System.Drawing">
<value>Artifacts</value> <value>4, 26</value>
</data>
<data name="TPCustom.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPCustom.Text" xml:space="preserve">
<value>Custom</value>
</data> </data>
<data name="BtnExportCustomCommands.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnExportCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>583, 216</value> <value>583, 216</value>
@ -951,6 +1050,9 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="LblCustomName.Text" xml:space="preserve"> <data name="LblCustomName.Text" xml:space="preserve">
<value>Tag</value> <value>Tag</value>
</data> </data>
<data name="groupBox1.Text" xml:space="preserve">
<value>List</value>
</data>
<data name="LnkResetCustomCommands.Location" type="System.Drawing.Point, System.Drawing"> <data name="LnkResetCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>581, -1</value> <value>581, -1</value>
</data> </data>
@ -960,9 +1062,6 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="LnkResetCustomCommands.Text" xml:space="preserve"> <data name="LnkResetCustomCommands.Text" xml:space="preserve">
<value>Restore</value> <value>Restore</value>
</data> </data>
<data name="groupBox1.Text" xml:space="preserve">
<value>List</value>
</data>
<data name="BtnRemoveCustomCommand.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnRemoveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>443, 216</value> <value>443, 216</value>
</data> </data>
@ -984,8 +1083,8 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="TxtCustomName.Size" type="System.Drawing.Size, System.Drawing"> <data name="TxtCustomName.Size" type="System.Drawing.Size, System.Drawing">
<value>317, 23</value> <value>317, 23</value>
</data> </data>
<data name="TPCustom.Text" xml:space="preserve"> <data name="TPHome.Text" xml:space="preserve">
<value>Custom</value> <value>Home</value>
</data> </data>
<data name="BtnOpenShopEditor.Text" xml:space="preserve"> <data name="BtnOpenShopEditor.Text" xml:space="preserve">
<value>Shop Editor</value> <value>Shop Editor</value>
@ -1014,6 +1113,9 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="BtnOpenGachaBannerEditor.Text" xml:space="preserve"> <data name="BtnOpenGachaBannerEditor.Text" xml:space="preserve">
<value>Banner Editor</value> <value>Banner Editor</value>
</data> </data>
<data name="GrpSettings.Text" xml:space="preserve">
<value>Settings</value>
</data>
<data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing"> <data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing">
<value>109, 21</value> <value>109, 21</value>
</data> </data>
@ -1026,11 +1128,14 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="ChkIncludeUID.Text" xml:space="preserve"> <data name="ChkIncludeUID.Text" xml:space="preserve">
<value>Include UID</value> <value>Include UID</value>
</data> </data>
<data name="GrpSettings.Text" xml:space="preserve"> <data name="TPMail.Location" type="System.Drawing.Point, System.Drawing">
<value>Settings</value> <value>4, 26</value>
</data> </data>
<data name="TPHome.Text" xml:space="preserve"> <data name="TPMail.Size" type="System.Drawing.Size, System.Drawing">
<value>Home</value> <value>652, 245</value>
</data>
<data name="TPMail.Text" xml:space="preserve">
<value>Mail</value>
</data> </data>
<data name="BtnAddMailItem.Text" xml:space="preserve"> <data name="BtnAddMailItem.Text" xml:space="preserve">
<value>+ Add</value> <value>+ Add</value>
@ -1038,6 +1143,9 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="BtnDeleteMailItem.Text" xml:space="preserve"> <data name="BtnDeleteMailItem.Text" xml:space="preserve">
<value>- Delete</value> <value>- Delete</value>
</data> </data>
<data name="ListMailSelectableItems.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 140</value>
</data>
<data name="NUDMailItemLevel.Location" type="System.Drawing.Point, System.Drawing"> <data name="NUDMailItemLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>171, 4</value> <value>171, 4</value>
</data> </data>
@ -1062,6 +1170,15 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="LblMailItemLevel.Text" xml:space="preserve"> <data name="LblMailItemLevel.Text" xml:space="preserve">
<value>Level:</value> <value>Level:</value>
</data> </data>
<data name="TPMailList.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="TPMailList.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 204</value>
</data>
<data name="PanelMailListControls.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 173</value>
</data>
<data name="BtnClearMail.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnClearMail.Location" type="System.Drawing.Point, System.Drawing">
<value>84, 4</value> <value>84, 4</value>
</data> </data>
@ -1116,7 +1233,4 @@ Therefore, the quest can be added and finished, but not necessarily work.</value
<data name="LblMailSenderLabel.Text" xml:space="preserve"> <data name="LblMailSenderLabel.Text" xml:space="preserve">
<value>Sender:</value> <value>Sender:</value>
</data> </data>
<data name="TPMail.Text" xml:space="preserve">
<value>Mail</value>
</data>
</root> </root>

File diff suppressed because it is too large Load Diff

View File

@ -118,11 +118,11 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="TxtCommand.Location" type="System.Drawing.Point, System.Drawing"> <data name="CmbCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>132, 22</value> <value>132, 21</value>
</data> </data>
<data name="TxtCommand.Size" type="System.Drawing.Size, System.Drawing"> <data name="CmbCommand.Size" type="System.Drawing.Size, System.Drawing">
<value>359, 23</value> <value>359, 25</value>
</data> </data>
<data name="BtnCopy.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnCopy.Location" type="System.Drawing.Point, System.Drawing">
<value>497, 22</value> <value>497, 22</value>
@ -149,7 +149,7 @@
<value>Выполнить (F5)</value> <value>Выполнить (F5)</value>
</data> </data>
<data name="GrpCommand.Text" xml:space="preserve"> <data name="GrpCommand.Text" xml:space="preserve">
<value>Команды: [Ctrl] - Автозапуск; [|] - Разделить несколько команд</value> <value>Команды - [Ctrl] Запустить и заменить команду - [Shift] Добавить - [Alt] Только запустить - [|] Разделить несколько команд</value>
</data> </data>
<data name="LnkInventoryKamera.Text" xml:space="preserve"> <data name="LnkInventoryKamera.Text" xml:space="preserve">
<value>InventoryKamera</value> <value>InventoryKamera</value>
@ -251,10 +251,10 @@
<value>16, 15</value> <value>16, 15</value>
</data> </data>
<data name="TPPlayerCheck.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPPlayerCheck.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPPlayerCheck.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPPlayerCheck.Size" type="System.Drawing.Size, System.Drawing">
<value>296, 113</value> <value>296, 109</value>
</data> </data>
<data name="TPPlayerCheck.Text" xml:space="preserve"> <data name="TPPlayerCheck.Text" xml:space="preserve">
<value>Игрок</value> <value>Игрок</value>
@ -276,7 +276,7 @@
(установите галочку галочку "Включить UID" на главной)</value> (установите галочку галочку "Включить UID" на главной)</value>
</data> </data>
<data name="TPConsoleCheck.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPConsoleCheck.Size" type="System.Drawing.Size, System.Drawing">
<value>296, 109</value> <value>296, 111</value>
</data> </data>
<data name="TPConsoleCheck.Text" xml:space="preserve"> <data name="TPConsoleCheck.Text" xml:space="preserve">
<value>Консоль</value> <value>Консоль</value>
@ -306,10 +306,10 @@
<value>Хост</value> <value>Хост</value>
</data> </data>
<data name="TPRemoteCall.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPRemoteCall.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPRemoteCall.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPRemoteCall.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPRemoteCall.Text" xml:space="preserve"> <data name="TPRemoteCall.Text" xml:space="preserve">
<value>OpenCommand</value> <value>OpenCommand</value>
@ -331,10 +331,10 @@
</value> </value>
</data> </data>
<data name="TPAbout.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPAbout.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPAbout.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPAbout.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPAbout.Text" xml:space="preserve"> <data name="TPAbout.Text" xml:space="preserve">
<value>Справка</value> <value>Справка</value>
@ -490,10 +490,10 @@
<value>Управление правами</value> <value>Управление правами</value>
</data> </data>
<data name="TPManage.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPManage.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPManage.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPManage.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPManage.Text" xml:space="preserve"> <data name="TPManage.Text" xml:space="preserve">
<value>Аккаунты</value> <value>Аккаунты</value>
@ -572,10 +572,10 @@
В команде вы можете использовать ~, чтобы указать текущую позицию, и ~N, чтобы указать смещение на N относительно текущей позиции</value> В команде вы можете использовать ~, чтобы указать текущую позицию, и ~N, чтобы указать смещение на N относительно текущей позиции</value>
</data> </data>
<data name="TPScene.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPScene.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPScene.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPScene.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPScene.Text" xml:space="preserve"> <data name="TPScene.Text" xml:space="preserve">
<value>Сцена</value> <value>Сцена</value>
@ -653,10 +653,10 @@
<value>Дать предмет игроку</value> <value>Дать предмет игроку</value>
</data> </data>
<data name="TPItem.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPItem.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPItem.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPItem.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPItem.Text" xml:space="preserve"> <data name="TPItem.Text" xml:space="preserve">
<value>Предметы</value> <value>Предметы</value>
@ -704,10 +704,10 @@
<value>151, 216</value> <value>151, 216</value>
</data> </data>
<data name="TPWeapon.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPWeapon.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPWeapon.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPWeapon.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPWeapon.Text" xml:space="preserve"> <data name="TPWeapon.Text" xml:space="preserve">
<value>Оружие</value> <value>Оружие</value>
@ -798,31 +798,34 @@
</data> </data>
<data name="CmbSwitchElement.Items" xml:space="preserve"> <data name="CmbSwitchElement.Items" xml:space="preserve">
<value>Без элемента</value> <value>Без элемента</value>
<value>Без элемента</value>
</data> </data>
<data name="CmbSwitchElement.Items1" xml:space="preserve"> <data name="CmbSwitchElement.Items1" xml:space="preserve">
<value>Пиро</value> <value>Пиро</value>
<value>Пиро</value>
</data> </data>
<data name="CmbSwitchElement.Items2" xml:space="preserve"> <data name="CmbSwitchElement.Items2" xml:space="preserve">
<value>Гидро</value> <value>Гидро</value>
<value>Гидро</value>
</data> </data>
<data name="CmbSwitchElement.Items3" xml:space="preserve"> <data name="CmbSwitchElement.Items3" xml:space="preserve">
<value>Анемо</value> <value>Анемо</value>
<value>Анемо</value>
</data> </data>
<data name="CmbSwitchElement.Items4" xml:space="preserve"> <data name="CmbSwitchElement.Items4" xml:space="preserve">
<value>Крио</value> <value>Крио</value>
<value>Крио</value>
</data> </data>
<data name="CmbSwitchElement.Items5" xml:space="preserve"> <data name="CmbSwitchElement.Items5" xml:space="preserve">
<value>Гео</value> <value>Гео</value>
<value>Гео</value>
</data> </data>
<data name="CmbSwitchElement.Items6" xml:space="preserve"> <data name="CmbSwitchElement.Items6" xml:space="preserve">
<value>Электро</value> <value>Электро</value>
</data> </data>
<data name="CmbSwitchElement.Items7" xml:space="preserve"> <data name="CmbSwitchElement.Items7" xml:space="preserve">
<value>Дендро</value> <value>Дендро</value>
</data> <value>Дендро</value>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LnkSwitchElement.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data> </data>
<data name="LnkSwitchElement.Size" type="System.Drawing.Size, System.Drawing"> <data name="LnkSwitchElement.Size" type="System.Drawing.Size, System.Drawing">
<value>90, 17</value> <value>90, 17</value>
@ -908,6 +911,12 @@
<data name="GrpGiveAvatar.Text" xml:space="preserve"> <data name="GrpGiveAvatar.Text" xml:space="preserve">
<value>Выдать персонажа</value> <value>Выдать персонажа</value>
</data> </data>
<data name="TPAvatar.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="TPAvatar.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPAvatar.Text" xml:space="preserve"> <data name="TPAvatar.Text" xml:space="preserve">
<value>Персонаж</value> <value>Персонаж</value>
</data> </data>
@ -966,13 +975,14 @@
<value>Кол.</value> <value>Кол.</value>
</data> </data>
<data name="TPSpawnArgs.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPSpawnArgs.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPSpawnArgs.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPSpawnArgs.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 207</value> <value>338, 203</value>
</data> </data>
<data name="TPSpawnArgs.Text" xml:space="preserve"> <data name="TPSpawnArgs.Text" xml:space="preserve">
<value>Спавн</value> <value>Спавн</value>
<value>Спавн</value>
</data> </data>
<data name="LblAMPluginTip.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblAMPluginTip.Size" type="System.Drawing.Size, System.Drawing">
<value>190, 17</value> <value>190, 17</value>
@ -1017,13 +1027,14 @@
<value>Замена навыков</value> <value>Замена навыков</value>
</data> </data>
<data name="TPAttackModArgs.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPAttackModArgs.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPAttackModArgs.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPAttackModArgs.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 207</value> <value>338, 203</value>
</data> </data>
<data name="TPAttackModArgs.Text" xml:space="preserve"> <data name="TPAttackModArgs.Text" xml:space="preserve">
<value>Изменение атаки</value> <value>Изменение атаки</value>
<value>Изменение атаки</value>
</data> </data>
<data name="LblAiwiRotate.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblAiwiRotate.Size" type="System.Drawing.Size, System.Drawing">
<value>241, 17</value> <value>241, 17</value>
@ -1041,10 +1052,11 @@
<value>Распростр.</value> <value>Распростр.</value>
</data> </data>
<data name="LblAiwiCount.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblAiwiCount.Size" type="System.Drawing.Size, System.Drawing">
<value>56, 17</value> <value>51, 17</value>
</data> </data>
<data name="LblAiwiCount.Text" xml:space="preserve"> <data name="LblAiwiCount.Text" xml:space="preserve">
<value>Кол-во</value> <value>Кол-во</value>
<value>Кол-во</value>
</data> </data>
<data name="LblAiwiHeight.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblAiwiHeight.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 17</value> <value>51, 17</value>
@ -1060,15 +1072,19 @@
</data> </data>
<data name="BtnAttackInfuse.Text" xml:space="preserve"> <data name="BtnAttackInfuse.Text" xml:space="preserve">
<value>Создать инфузию</value> <value>Создать инфузию</value>
<value>Создать инфузию</value>
</data> </data>
<data name="BtnAiwiReload.Text" xml:space="preserve"> <data name="BtnAiwiReload.Text" xml:space="preserve">
<value>Перезагрузка</value> <value>Перезагрузка</value>
<value>Перезагрузка</value>
</data> </data>
<data name="BtnAiwiClear.Text" xml:space="preserve"> <data name="BtnAiwiClear.Text" xml:space="preserve">
<value>Очистить</value> <value>Очистить</value>
<value>Очистить</value>
</data> </data>
<data name="BtnAiwiReset.Text" xml:space="preserve"> <data name="BtnAiwiReset.Text" xml:space="preserve">
<value>Сбросить</value> <value>Сбросить</value>
<value>Сбросить</value>
</data> </data>
<data name="LblAiwiPlugin.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblAiwiPlugin.Size" type="System.Drawing.Size, System.Drawing">
<value>52, 17</value> <value>52, 17</value>
@ -1078,15 +1094,16 @@
</data> </data>
<data name="TPAttackInfusedArgs.Text" xml:space="preserve"> <data name="TPAttackInfusedArgs.Text" xml:space="preserve">
<value>Элем. инфузия</value> <value>Элем. инфузия</value>
<value>Элем. инфузия</value>
</data> </data>
<data name="ListEntity.Size" type="System.Drawing.Size, System.Drawing"> <data name="ListEntity.Size" type="System.Drawing.Size, System.Drawing">
<value>274, 171</value> <value>274, 167</value>
</data> </data>
<data name="TPSpawnItems.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPSpawnItems.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPSpawnItems.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPSpawnItems.Size" type="System.Drawing.Size, System.Drawing">
<value>280, 207</value> <value>280, 203</value>
</data> </data>
<data name="TPSpawnItems.Text" xml:space="preserve"> <data name="TPSpawnItems.Text" xml:space="preserve">
<value>Список объектов</value> <value>Список объектов</value>
@ -1117,12 +1134,13 @@
</data> </data>
<data name="TPSpawnRecords.Text" xml:space="preserve"> <data name="TPSpawnRecords.Text" xml:space="preserve">
<value>Записи спавнов</value> <value>Записи спавнов</value>
<value>Записи спавнов</value>
</data> </data>
<data name="TPSpawn.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPSpawn.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPSpawn.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPSpawn.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPSpawn.Text" xml:space="preserve"> <data name="TPSpawn.Text" xml:space="preserve">
<value>Спавн</value> <value>Спавн</value>
@ -1160,10 +1178,10 @@
Поэтому квест может быть добавлен или отозван через консоль, но завершён игроком - вряд ли.</value> Поэтому квест может быть добавлен или отозван через консоль, но завершён игроком - вряд ли.</value>
</data> </data>
<data name="TPQuest.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPQuest.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPQuest.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPQuest.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPQuest.Text" xml:space="preserve"> <data name="TPQuest.Text" xml:space="preserve">
<value>Квест</value> <value>Квест</value>
@ -1241,10 +1259,10 @@
<value>Звезды</value> <value>Звезды</value>
</data> </data>
<data name="TPArtifact.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPArtifact.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPArtifact.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPArtifact.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPArtifact.Text" xml:space="preserve"> <data name="TPArtifact.Text" xml:space="preserve">
<value>Артефакт</value> <value>Артефакт</value>
@ -1310,10 +1328,10 @@
<value>204, 23</value> <value>204, 23</value>
</data> </data>
<data name="TPCustom.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPCustom.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPCustom.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPCustom.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPCustom.Text" xml:space="preserve"> <data name="TPCustom.Text" xml:space="preserve">
<value>Кастомное</value> <value>Кастомное</value>
@ -1408,9 +1426,6 @@
<data name="BtnDeleteMailItem.Text" xml:space="preserve"> <data name="BtnDeleteMailItem.Text" xml:space="preserve">
<value>- Удалить</value> <value>- Удалить</value>
</data> </data>
<data name="ListMailSelectableItems.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 106</value>
</data>
<data name="NUDMailItemLevel.Location" type="System.Drawing.Point, System.Drawing"> <data name="NUDMailItemLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>172, 3</value> <value>172, 3</value>
</data> </data>
@ -1435,6 +1450,9 @@
<data name="LblMailItemLevel.Text" xml:space="preserve"> <data name="LblMailItemLevel.Text" xml:space="preserve">
<value>Уровень</value> <value>Уровень</value>
</data> </data>
<data name="TPMailSelectableItemList.Text" xml:space="preserve">
<value>Предметы</value>
</data>
<data name="BtnClearMail.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnClearMail.Location" type="System.Drawing.Point, System.Drawing">
<value>114, 5</value> <value>114, 5</value>
</data> </data>
@ -1454,13 +1472,16 @@
<value>- Удалить</value> <value>- Удалить</value>
</data> </data>
<data name="PanelMailListControls.Location" type="System.Drawing.Point, System.Drawing"> <data name="PanelMailListControls.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 177</value> <value>3, 173</value>
</data> </data>
<data name="TPMailList.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPMailList.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPMailList.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPMailList.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 208</value> <value>228, 204</value>
</data>
<data name="TPMailList.Text" xml:space="preserve">
<value>Список рассылки</value>
</data> </data>
<data name="BtnSendMail.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnSendMail.Location" type="System.Drawing.Point, System.Drawing">
<value>304, 213</value> <value>304, 213</value>
@ -1544,10 +1565,10 @@
<value>Отправитель:</value> <value>Отправитель:</value>
</data> </data>
<data name="TPMail.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPMail.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPMail.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPMail.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPMail.Text" xml:space="preserve"> <data name="TPMail.Text" xml:space="preserve">
<value>Почта</value> <value>Почта</value>

View File

@ -123,11 +123,21 @@
<data name="ChkAutoCopy.Text" xml:space="preserve"> <data name="ChkAutoCopy.Text" xml:space="preserve">
<value>自動</value> <value>自動</value>
</data> </data>
<data name="GrpCommand.Text" xml:space="preserve">
<value>命令 - [Ctrl] 自動執行 - [Shift] 拼接命令 - [Alt] 僅執行 - [|] 分割多條命令</value>
</data>
<data name="BtnInvokeOpenCommand.Text" xml:space="preserve"> <data name="BtnInvokeOpenCommand.Text" xml:space="preserve">
<value>執行(F5)</value> <value>執行(F5)</value>
</data> </data>
<data name="GrpCommand.Text" xml:space="preserve"> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<value>命令 - [Ctrl] 自動執行 - [|] 分割多條命令</value> <data name="TPRemoteCall.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="TPRemoteCall.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPRemoteCall.Text" xml:space="preserve">
<value>遠程</value>
</data> </data>
<data name="LnkInventoryKamera.Text" xml:space="preserve"> <data name="LnkInventoryKamera.Text" xml:space="preserve">
<value>存檔掃描開源工具</value> <value>存檔掃描開源工具</value>
@ -138,13 +148,15 @@
<data name="ButtonOpenGOODImport.Text" xml:space="preserve"> <data name="ButtonOpenGOODImport.Text" xml:space="preserve">
<value>導入GOOD檔案</value> <value>導入GOOD檔案</value>
</data> </data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LblHostTip.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblHostTip.Size" type="System.Drawing.Size, System.Drawing">
<value>206, 17</value> <value>206, 17</value>
</data> </data>
<data name="LblHostTip.Text" xml:space="preserve"> <data name="LblHostTip.Text" xml:space="preserve">
<value>請確保地址中包含 http:// 或 https://</value> <value>請確保地址中包含 http:// 或 https://</value>
</data> </data>
<data name="GrpServerStatus.Text" xml:space="preserve">
<value>伺服器狀態</value>
</data>
<data name="LnkOpenCommandLabel.Text" xml:space="preserve"> <data name="LnkOpenCommandLabel.Text" xml:space="preserve">
<value>遠程執行插件</value> <value>遠程執行插件</value>
</data> </data>
@ -154,8 +166,17 @@
<data name="LblPlayerCountLabel.Text" xml:space="preserve"> <data name="LblPlayerCountLabel.Text" xml:space="preserve">
<value>當前玩家數</value> <value>當前玩家數</value>
</data> </data>
<data name="GrpServerStatus.Text" xml:space="preserve"> <data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>伺服器狀態</value> <value>遠程執行</value>
</data>
<data name="TPPlayerCheck.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="TPPlayerCheck.Size" type="System.Drawing.Size, System.Drawing">
<value>296, 109</value>
</data>
<data name="TPPlayerCheck.Text" xml:space="preserve">
<value>玩家驗證</value>
</data> </data>
<data name="LnkRCHelp.Text" xml:space="preserve"> <data name="LnkRCHelp.Text" xml:space="preserve">
<value>幫助</value> <value>幫助</value>
@ -169,14 +190,8 @@
<data name="BtnSendVerificationCode.Text" xml:space="preserve"> <data name="BtnSendVerificationCode.Text" xml:space="preserve">
<value>發送驗證碼</value> <value>發送驗證碼</value>
</data> </data>
<data name="TPPlayerCheck.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPConsoleCheck.Size" type="System.Drawing.Size, System.Drawing">
<value>4, 22</value> <value>296, 111</value>
</data>
<data name="TPPlayerCheck.Size" type="System.Drawing.Size, System.Drawing">
<value>296, 113</value>
</data>
<data name="TPPlayerCheck.Text" xml:space="preserve">
<value>玩家驗證</value>
</data> </data>
<data name="BtnConsoleConnect.Text" xml:space="preserve"> <data name="BtnConsoleConnect.Text" xml:space="preserve">
<value>連接</value> <value>連接</value>
@ -185,26 +200,20 @@
<value>請注意,控制台狀態下普通命令必須指定目標 <value>請注意,控制台狀態下普通命令必須指定目標
即設置包含UID</value> 即設置包含UID</value>
</data> </data>
<data name="TPConsoleCheck.Size" type="System.Drawing.Size, System.Drawing">
<value>296, 109</value>
</data>
<data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>遠程執行</value>
</data>
<data name="BtnQueryServerStatus.Text" xml:space="preserve"> <data name="BtnQueryServerStatus.Text" xml:space="preserve">
<value>查詢</value> <value>查詢</value>
</data> </data>
<data name="LblHost.Text" xml:space="preserve"> <data name="LblHost.Text" xml:space="preserve">
<value>伺服器地址</value> <value>伺服器地址</value>
</data> </data>
<data name="TPRemoteCall.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPAbout.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPRemoteCall.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPAbout.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPRemoteCall.Text" xml:space="preserve"> <data name="TPAbout.Text" xml:space="preserve">
<value>遠程</value> <value>關於</value>
</data> </data>
<data name="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing"> <data name="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>334, 102</value> <value>334, 102</value>
@ -217,14 +226,11 @@
如果願意請我喝一杯奶茶,那就更好了 : ) 如果願意請我喝一杯奶茶,那就更好了 : )
指令生成有問題或者有新的功能請求都可以來Github提出</value> 指令生成有問題或者有新的功能請求都可以來Github提出</value>
</data> </data>
<data name="TPAbout.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPManage.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPAbout.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPManage.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data>
<data name="TPAbout.Text" xml:space="preserve">
<value>關於</value>
</data> </data>
<data name="BtnBan.Text" xml:space="preserve"> <data name="BtnBan.Text" xml:space="preserve">
<value>封號</value> <value>封號</value>
@ -232,6 +238,9 @@
<data name="LblBanUID.Text" xml:space="preserve"> <data name="LblBanUID.Text" xml:space="preserve">
<value>目標UID</value> <value>目標UID</value>
</data> </data>
<data name="GrpAccount.Text" xml:space="preserve">
<value>賬號管理</value>
</data>
<data name="BtnDeleteAccount.Text" xml:space="preserve"> <data name="BtnDeleteAccount.Text" xml:space="preserve">
<value>- 刪除</value> <value>- 刪除</value>
</data> </data>
@ -241,8 +250,8 @@
<data name="LblAccountUserName.Text" xml:space="preserve"> <data name="LblAccountUserName.Text" xml:space="preserve">
<value>用戶名</value> <value>用戶名</value>
</data> </data>
<data name="GrpAccount.Text" xml:space="preserve"> <data name="GrpPermission.Text" xml:space="preserve">
<value>賬號管理</value> <value>權限管理</value>
</data> </data>
<data name="LblPerm.Text" xml:space="preserve"> <data name="LblPerm.Text" xml:space="preserve">
<value>權限</value> <value>權限</value>
@ -250,14 +259,14 @@
<data name="LblPermUID.Text" xml:space="preserve"> <data name="LblPermUID.Text" xml:space="preserve">
<value>目標UID</value> <value>目標UID</value>
</data> </data>
<data name="GrpPermission.Text" xml:space="preserve"> <data name="TPScene.Location" type="System.Drawing.Point, System.Drawing">
<value>權限管理</value> <value>4, 26</value>
</data> </data>
<data name="TPManage.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPScene.Size" type="System.Drawing.Size, System.Drawing">
<value>4, 22</value> <value>652, 245</value>
</data> </data>
<data name="TPManage.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPScene.Text" xml:space="preserve">
<value>652, 249</value> <value>場景</value>
</data> </data>
<data name="ChkIncludeSceneId.Text" xml:space="preserve"> <data name="ChkIncludeSceneId.Text" xml:space="preserve">
<value>含場景ID</value> <value>含場景ID</value>
@ -281,14 +290,11 @@
提示:遊戲內可以通過小地圖的'魚鉤'標記來快捷傳送 提示:遊戲內可以通過小地圖的'魚鉤'標記來快捷傳送
命令中可以用~表示當前位置,~N 表示相對當前N</value> 命令中可以用~表示當前位置,~N 表示相對當前N</value>
</data> </data>
<data name="TPScene.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPItem.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPScene.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPItem.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data>
<data name="TPScene.Text" xml:space="preserve">
<value>場景</value>
</data> </data>
<data name="BtnSaveGiveItemLog.Text" xml:space="preserve"> <data name="BtnSaveGiveItemLog.Text" xml:space="preserve">
<value>√ 記錄</value> <value>√ 記錄</value>
@ -309,11 +315,11 @@
<value>給玩家指定物品 <value>給玩家指定物品
說明:可選擇直接給到背包或者掉落到世界</value> 說明:可選擇直接給到背包或者掉落到世界</value>
</data> </data>
<data name="TPItem.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPWeapon.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPItem.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPWeapon.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="BtnGiveAllWeapons.Text" xml:space="preserve"> <data name="BtnGiveAllWeapons.Text" xml:space="preserve">
<value>獲得所有武器</value> <value>獲得所有武器</value>
@ -338,17 +344,11 @@
<data name="LblWeaponLevel.Text" xml:space="preserve"> <data name="LblWeaponLevel.Text" xml:space="preserve">
<value>等級</value> <value>等級</value>
</data> </data>
<data name="TPWeapon.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPAvatar.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPWeapon.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPAvatar.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data>
<data name="LnkSetAllConst.Text" xml:space="preserve">
<value>設置所有角色</value>
</data>
<data name="LnkSetConst.Text" xml:space="preserve">
<value>設置當前角色</value>
</data> </data>
<data name="GrpSetConstellation.Location" type="System.Drawing.Point, System.Drawing"> <data name="GrpSetConstellation.Location" type="System.Drawing.Point, System.Drawing">
<value>288, 174</value> <value>288, 174</value>
@ -356,11 +356,11 @@
<data name="GrpSetConstellation.Text" xml:space="preserve"> <data name="GrpSetConstellation.Text" xml:space="preserve">
<value>設置命座</value> <value>設置命座</value>
</data> </data>
<data name="BtnUnlockStat.Text" xml:space="preserve"> <data name="LnkSetAllConst.Text" xml:space="preserve">
<value>解鎖</value> <value>設置所有角色</value>
</data> </data>
<data name="BtnLockStat.Text" xml:space="preserve"> <data name="LnkSetConst.Text" xml:space="preserve">
<value>鎖定</value> <value>設置當前角色</value>
</data> </data>
<data name="GrpSetStats.Location" type="System.Drawing.Point, System.Drawing"> <data name="GrpSetStats.Location" type="System.Drawing.Point, System.Drawing">
<value>288, 11</value> <value>288, 11</value>
@ -368,8 +368,11 @@
<data name="GrpSetStats.Text" xml:space="preserve"> <data name="GrpSetStats.Text" xml:space="preserve">
<value>角色屬性</value> <value>角色屬性</value>
</data> </data>
<data name="LnkTalentNormalATK.Text" xml:space="preserve"> <data name="BtnUnlockStat.Text" xml:space="preserve">
<value>普通攻擊</value> <value>解鎖</value>
</data>
<data name="BtnLockStat.Text" xml:space="preserve">
<value>鎖定</value>
</data> </data>
<data name="GrpTalentLevel.Location" type="System.Drawing.Point, System.Drawing"> <data name="GrpTalentLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>288, 113</value> <value>288, 113</value>
@ -377,16 +380,18 @@
<data name="GrpTalentLevel.Text" xml:space="preserve"> <data name="GrpTalentLevel.Text" xml:space="preserve">
<value>技能等級</value> <value>技能等級</value>
</data> </data>
<data name="LnkTalentNormalATK.Text" xml:space="preserve">
<value>普通攻擊</value>
</data>
<data name="GrpGiveAvatar.Location" type="System.Drawing.Point, System.Drawing">
<value>32, 11</value>
</data>
<data name="CmbSwitchElement.Items" xml:space="preserve"> <data name="CmbSwitchElement.Items" xml:space="preserve">
<value>無</value> <value>無</value>
</data> </data>
<data name="CmbSwitchElement.Items3" xml:space="preserve"> <data name="CmbSwitchElement.Items3" xml:space="preserve">
<value>風</value> <value>風</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LnkSwitchElement.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LnkSwitchElement.Text" xml:space="preserve"> <data name="LnkSwitchElement.Text" xml:space="preserve">
<value>切換主角元素</value> <value>切換主角元素</value>
</data> </data>
@ -399,8 +404,20 @@
<data name="LblAvatarSkillLevelLabel.Text" xml:space="preserve"> <data name="LblAvatarSkillLevelLabel.Text" xml:space="preserve">
<value>技能等級</value> <value>技能等級</value>
</data> </data>
<data name="GrpGiveAvatar.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPSpawn.Location" type="System.Drawing.Point, System.Drawing">
<value>32, 11</value> <value>4, 26</value>
</data>
<data name="TPSpawn.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 245</value>
</data>
<data name="TPSpawnArgs.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="TPSpawnArgs.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 203</value>
</data>
<data name="TPSpawnArgs.Text" xml:space="preserve">
<value>生成參數</value>
</data> </data>
<data name="LblSpawnVersionRequireTip.Text" xml:space="preserve"> <data name="LblSpawnVersionRequireTip.Text" xml:space="preserve">
<value>以下參數至少要求 GC v1.3.1</value> <value>以下參數至少要求 GC v1.3.1</value>
@ -426,14 +443,14 @@
<data name="LblEntityAmount.Text" xml:space="preserve"> <data name="LblEntityAmount.Text" xml:space="preserve">
<value>數量</value> <value>數量</value>
</data> </data>
<data name="TPSpawnArgs.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPAttackModArgs.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPSpawnArgs.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPAttackModArgs.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 207</value> <value>338, 203</value>
</data> </data>
<data name="TPSpawnArgs.Text" xml:space="preserve"> <data name="TPAttackModArgs.Text" xml:space="preserve">
<value>生成參數</value> <value>攻擊修改參數</value>
</data> </data>
<data name="LblAMPluginTip.Text" xml:space="preserve"> <data name="LblAMPluginTip.Text" xml:space="preserve">
<value>見識一下真正的雷神吧!</value> <value>見識一下真正的雷神吧!</value>
@ -456,14 +473,8 @@
<data name="GrpAMSkills.Text" xml:space="preserve"> <data name="GrpAMSkills.Text" xml:space="preserve">
<value>替換技能</value> <value>替換技能</value>
</data> </data>
<data name="TPAttackModArgs.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPAttackInfusedArgs.Text" xml:space="preserve">
<value>4, 22</value> <value>攻擊注入參數</value>
</data>
<data name="TPAttackModArgs.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 207</value>
</data>
<data name="TPAttackModArgs.Text" xml:space="preserve">
<value>攻擊修改參數</value>
</data> </data>
<data name="LblAiwiRotate.Text" xml:space="preserve"> <data name="LblAiwiRotate.Text" xml:space="preserve">
<value>旋轉: x: y: z:</value> <value>旋轉: x: y: z:</value>
@ -486,35 +497,38 @@
<data name="BtnAiwiClear.Text" xml:space="preserve"> <data name="BtnAiwiClear.Text" xml:space="preserve">
<value>清空實體</value> <value>清空實體</value>
</data> </data>
<data name="TPAttackInfusedArgs.Text" xml:space="preserve">
<value>攻擊注入參數</value>
</data>
<data name="ListEntity.Size" type="System.Drawing.Size, System.Drawing">
<value>274, 171</value>
</data>
<data name="TPSpawnItems.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPSpawnItems.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPSpawnItems.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPSpawnItems.Size" type="System.Drawing.Size, System.Drawing">
<value>280, 207</value> <value>280, 203</value>
</data> </data>
<data name="TPSpawnItems.Text" xml:space="preserve"> <data name="TPSpawnItems.Text" xml:space="preserve">
<value>實體列表</value> <value>實體列表</value>
</data> </data>
<data name="ListEntity.Size" type="System.Drawing.Size, System.Drawing">
<value>274, 167</value>
</data>
<data name="TPSpawnRecords.Text" xml:space="preserve">
<value>生成記錄本</value>
</data>
<data name="BtnSaveSpawnLog.Text" xml:space="preserve"> <data name="BtnSaveSpawnLog.Text" xml:space="preserve">
<value>√ 記錄</value> <value>√ 記錄</value>
</data> </data>
<data name="BtnRemoveSpawnLog.Text" xml:space="preserve"> <data name="BtnRemoveSpawnLog.Text" xml:space="preserve">
<value>× 刪除</value> <value>× 刪除</value>
</data> </data>
<data name="TPSpawnRecords.Text" xml:space="preserve"> <data name="TPQuest.Location" type="System.Drawing.Point, System.Drawing">
<value>生成記錄本</value> <value>4, 26</value>
</data> </data>
<data name="TPSpawn.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPQuest.Size" type="System.Drawing.Size, System.Drawing">
<value>4, 22</value> <value>652, 245</value>
</data> </data>
<data name="TPSpawn.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPQuest.Text" xml:space="preserve">
<value>652, 249</value> <value>任務</value>
</data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>列表過濾</value>
</data> </data>
<data name="ChkQuestFilterTEST.Text" xml:space="preserve"> <data name="ChkQuestFilterTEST.Text" xml:space="preserve">
<value>測試任務</value> <value>測試任務</value>
@ -525,9 +539,6 @@
<data name="ChkQuestFilterHIDDEN.Text" xml:space="preserve"> <data name="ChkQuestFilterHIDDEN.Text" xml:space="preserve">
<value>隱藏的任務</value> <value>隱藏的任務</value>
</data> </data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>列表過濾</value>
</data>
<data name="BtnFinishQuest.Text" xml:space="preserve"> <data name="BtnFinishQuest.Text" xml:space="preserve">
<value>完成任務</value> <value>完成任務</value>
</data> </data>
@ -539,14 +550,14 @@
提示:許多任務需要服務端腳本支持 提示:許多任務需要服務端腳本支持
囙此任務可以接,可以完成,但是不一定可以做</value> 囙此任務可以接,可以完成,但是不一定可以做</value>
</data> </data>
<data name="TPQuest.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPArtifact.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPQuest.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPArtifact.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPQuest.Text" xml:space="preserve"> <data name="TPArtifact.Text" xml:space="preserve">
<value>任務</value> <value>聖遺物</value>
</data> </data>
<data name="LblArtifactSet.Text" xml:space="preserve"> <data name="LblArtifactSet.Text" xml:space="preserve">
<value>套裝</value> <value>套裝</value>
@ -563,14 +574,14 @@
<data name="LblArtifactStars.Text" xml:space="preserve"> <data name="LblArtifactStars.Text" xml:space="preserve">
<value>星級</value> <value>星級</value>
</data> </data>
<data name="TPArtifact.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPCustom.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPArtifact.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPCustom.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value> <value>652, 245</value>
</data> </data>
<data name="TPArtifact.Text" xml:space="preserve"> <data name="TPCustom.Text" xml:space="preserve">
<value>聖遺物</value> <value>自定義</value>
</data> </data>
<data name="BtnExportCustomCommands.Text" xml:space="preserve"> <data name="BtnExportCustomCommands.Text" xml:space="preserve">
<value>導出</value> <value>導出</value>
@ -584,63 +595,39 @@
<data name="BtnRemoveCustomCommand.Text" xml:space="preserve"> <data name="BtnRemoveCustomCommand.Text" xml:space="preserve">
<value>× 刪除</value> <value>× 刪除</value>
</data> </data>
<data name="TPCustom.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPHome.Text" xml:space="preserve">
<value>4, 22</value> <value>主頁</value>
</data>
<data name="TPCustom.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value>
</data>
<data name="TPCustom.Text" xml:space="preserve">
<value>自定義</value>
</data>
<data name="BtnOpenShopEditor.Location" type="System.Drawing.Point, System.Drawing">
<value>313, 183</value>
</data> </data>
<data name="BtnOpenShopEditor.Text" xml:space="preserve"> <data name="BtnOpenShopEditor.Text" xml:space="preserve">
<value>商店編輯器</value> <value>商店編輯器</value>
</data> </data>
<data name="BtnOpenDropEditor.Location" type="System.Drawing.Point, System.Drawing">
<value>525, 212</value>
</data>
<data name="BtnOpenDropEditor.Text" xml:space="preserve"> <data name="BtnOpenDropEditor.Text" xml:space="preserve">
<value>掉落物編輯器</value> <value>掉落物編輯器</value>
</data> </data>
<data name="LnkNewVersion.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 104</value>
</data>
<data name="LblAbout.Location" type="System.Drawing.Point, System.Drawing">
<value>88, 34</value>
</data>
<data name="BtnOpenTextMap.Location" type="System.Drawing.Point, System.Drawing">
<value>419, 212</value>
</data>
<data name="BtnOpenTextMap.Text" xml:space="preserve"> <data name="BtnOpenTextMap.Text" xml:space="preserve">
<value>文本瀏覽器</value> <value>文本瀏覽器</value>
</data> </data>
<data name="BtnOpenGachaBannerEditor.Location" type="System.Drawing.Point, System.Drawing">
<value>313, 212</value>
</data>
<data name="BtnOpenGachaBannerEditor.Text" xml:space="preserve"> <data name="BtnOpenGachaBannerEditor.Text" xml:space="preserve">
<value>獎池編輯器</value> <value>獎池編輯器</value>
</data> </data>
<data name="GrasscutterToolsIcon.Size" type="System.Drawing.Size, System.Drawing"> <data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing">
<value>333, 200</value> <value>51, 21</value>
</data> </data>
<data name="ChkTopMost.Text" xml:space="preserve"> <data name="ChkTopMost.Text" xml:space="preserve">
<value>置頂</value> <value>置頂</value>
</data> </data>
<data name="GrpSettings.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPMail.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 124</value> <value>4, 26</value>
</data> </data>
<data name="TPHome.Text" xml:space="preserve"> <data name="TPMail.Size" type="System.Drawing.Size, System.Drawing">
<value>主頁</value> <value>652, 245</value>
</data>
<data name="TPMail.Text" xml:space="preserve">
<value>郵件</value>
</data> </data>
<data name="BtnDeleteMailItem.Text" xml:space="preserve"> <data name="BtnDeleteMailItem.Text" xml:space="preserve">
<value>- 刪除</value> <value>- 刪除</value>
</data> </data>
<data name="ListMailSelectableItems.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 123</value>
</data>
<data name="NUDMailItemLevel.Location" type="System.Drawing.Point, System.Drawing"> <data name="NUDMailItemLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>171, 4</value> <value>171, 4</value>
</data> </data>
@ -659,17 +646,17 @@
<data name="LblMailItemLevel.Text" xml:space="preserve"> <data name="LblMailItemLevel.Text" xml:space="preserve">
<value>等級:</value> <value>等級:</value>
</data> </data>
<data name="BtnRemoveMail.Text" xml:space="preserve">
<value>- 刪除</value>
</data>
<data name="PanelMailListControls.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 177</value>
</data>
<data name="TPMailList.Location" type="System.Drawing.Point, System.Drawing"> <data name="TPMailList.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 26</value>
</data> </data>
<data name="TPMailList.Size" type="System.Drawing.Size, System.Drawing"> <data name="TPMailList.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 208</value> <value>228, 204</value>
</data>
<data name="PanelMailListControls.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 173</value>
</data>
<data name="BtnRemoveMail.Text" xml:space="preserve">
<value>- 刪除</value>
</data> </data>
<data name="BtnSendMail.Text" xml:space="preserve"> <data name="BtnSendMail.Text" xml:space="preserve">
<value>發送</value> <value>發送</value>
@ -683,13 +670,8 @@
<data name="LblMailSenderLabel.Text" xml:space="preserve"> <data name="LblMailSenderLabel.Text" xml:space="preserve">
<value>發件人:</value> <value>發件人:</value>
</data> </data>
<data name="TPMail.Location" type="System.Drawing.Point, System.Drawing"> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<value>4, 22</value> <data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
</data> <value>Inherit</value>
<data name="TPMail.Size" type="System.Drawing.Size, System.Drawing">
<value>652, 249</value>
</data>
<data name="TPMail.Text" xml:space="preserve">
<value>郵件</value>
</data> </data>
</root> </root>

View File

@ -0,0 +1,230 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System.ComponentModel;
using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace GrasscutterTools.Game.Gacha
{
/// <summary>
/// https://github.com/Grasscutters/Grasscutter/pull/639
/// </summary>
public class GachaBanner3
{
/// <summary>
/// 备注
/// </summary>
[JsonProperty("comment")]
public string Comment { get; set; }
/// <summary>
/// 添加卡池请从400开始增加id数值进行添加这个id需要每个池子不一样
/// 如果你想添加大量卡池请按照每次增加固定数值的id进行添加比如411412413....
/// </summary>
[JsonProperty("gachaType")]
public int GachaType { get; set; } = 400;
/// <summary>
/// 这个id需要每个池子不一样如果你想添加大量卡池
/// 请按照每次增加固定数值的id进行添加,比如210022002300....
/// </summary>
[JsonProperty("scheduleId")]
public int ScheduleId { get; set; } = 800;
/// <summary>
/// 这个是卡池的预制路径id
/// </summary>
[JsonProperty("prefabPath")]
public string PrefabPath { get; set; } = "GachaShowPanel_A007";
/// <summary>
/// 这个是抽卡的预览背景路径id
/// </summary>
[JsonProperty("previewPrefabPath")]
public string PreviewPrefabPath { get; set; } = "UI_Tab_GachaShowPanel_A007";
/// <summary>
/// 这个是抽卡的标题路径id有可能与之前两项的id不同
/// 一般这3项的id只需保持一致即可就是A0xxxx为同一id
/// </summary>
[JsonProperty("titlePath")]
public string TitlePath { get; set; } = "UI_GACHA_SHOW_PANEL_A007_TITLE";
/// <summary>
/// 这个表示祈愿用的道具224是相遇之缘223是纠缠之缘 - 选择一个作为该卡池的抽卡道具
/// (提示请不要随便修改祈愿道具除了蓝球和粉球有可能会引发bug比如修改成摩拉抽卡可能导致卡住)
/// </summary>
[JsonProperty("costItemId")]
public int CostItemId { get; set; } = 224;
/// <summary>
/// 抽卡消耗
/// </summary>
[JsonProperty("coseItemAmount"), DefaultValue(1)]
public int CoseItemAmount { get; set; } = 1;
/// <summary>
/// 这个表示十连祈愿用的道具224是相遇之缘223是纠缠之缘 - 选择一个作为该卡池的抽卡道具
/// (提示请不要随便修改祈愿道具除了蓝球和粉球有可能会引发bug比如修改成摩拉抽卡可能导致卡住)
/// </summary>
[JsonProperty("costItemId10")]
public int CostItemId10 { get; set; }
/// <summary>
/// 十连抽卡消耗
/// </summary>
[JsonProperty("coseItemAmount10"), DefaultValue(10)]
public int CoseItemAmount10 { get; set; } = 10;
/// <summary>
/// 开始时间Unix时间戳
/// </summary>
[JsonProperty("beginTime")]
public int BeginTime { get; set; } = 0;
/// <summary>
/// 结束时间Unix时间戳
/// </summary>
[JsonProperty("endTime")]
public int EndTime { get; set; } = 1924992000;
/// <summary>
/// 卡池顺序
/// </summary>
[JsonProperty("sortId")]
public int SortId { get; set; } = 1000;
/// <summary>
/// 抽卡次数限制
/// </summary>
[JsonProperty("gachaTimesLimit"), DefaultValue(int.MaxValue)]
public int GachaTimesLimit { get; set; } = int.MaxValue;
/// <summary>
/// 4星的up角色或物品
/// </summary>
[JsonProperty("rateUpItems4")]
public int[] RateUpItems4 { get; set; } = { };
/// <summary>
/// 5星的up物品或者角色
/// </summary>
[JsonProperty("rateUpItems5")]
public int[] RateUpItems5 { get; set; } = { };
/// <summary>
/// 3星普通池
/// </summary>
[JsonProperty("fallbackItems3")]
public int[] FallbackItems3 { get; set; } = { 11301, 11302, 11306, 12301, 12302, 12305, 13303, 14301, 14302, 14304, 15301, 15302, 15304 };
/// <summary>
/// 4星普通角色池
/// </summary>
[JsonProperty("fallbackItems4Pool1")]
public int[] FallbackItems4Pool1 { get; set; } = { 1014, 1020, 1023, 1024, 1025, 1027, 1031, 1032, 1034, 1036, 1039, 1043, 1044, 1045, 1048, 1053, 1055, 1056, 1064 };
/// <summary>
/// 4星普通武器池
/// </summary>
[JsonProperty("fallbackItems4Pool2")]
public int[] FallbackItems4Pool2 { get; set; } = { 11401, 11402, 11403, 11405, 12401, 12402, 12403, 12405, 13401, 13407, 14401, 14402, 14403, 14409, 15401, 15402, 15403, 15405 };
/// <summary>
/// 5星普通角色池
/// </summary>
[JsonProperty("fallbackItems5Pool1")]
public int[] FallbackItems5Pool1 { get; set; } = { 1003, 1016, 1042, 1035, 1041 };
/// <summary>
/// 5星普通角色池
/// </summary>
[JsonProperty("fallbackItems5Pool2")]
public int[] FallbackItems5Pool2 { get; set; } = { 11501, 11502, 12501, 12502, 13502, 13505, 14501, 14502, 15501, 15502 };
/// <summary>
/// 是否从奖池中移除玩家星座等级6级以上的角色
/// </summary>
[JsonProperty("removeC6FromPool"), DefaultValue(false)]
public bool RemoveC6FromPool { get; set; } = false;
/// <summary>
/// 自动从普通池中移除UP池物品或角色
/// </summary>
[JsonProperty("autoStripRateUpFromFallback"), DefaultValue(true)]
public bool AutoStripRateUpFromFallback { get; set; } = true;
/// <summary>
/// 4星权重
/// </summary>
[JsonProperty("weights4")]
public int[,] Weights4 { get; set; } = { { 1, 510 }, { 8, 510 }, { 10, 10000 } };
/// <summary>
/// 5星权重
/// </summary>
[JsonProperty("weights5")]
public int[,] Weights5 { get; set; } = { { 1, 75 }, { 73, 150 }, { 90, 10000 } };
/// <summary>
/// 4星平衡奖池权重即中的是武器还是角色
/// </summary>
[JsonProperty("poolBalanceWeights4")]
public int[,] PoolBalanceWeights4 { get; set; } = { { 1, 255 }, { 17, 255 }, { 21, 10455 } };
/// <summary>
/// 5星平衡奖池权重即中的是武器还是角色
/// </summary>
[JsonProperty("poolBalanceWeights5")]
public int[,] PoolBalanceWeights5 { get; set; } = { { 1, 30 }, { 147, 150 }, { 181, 10230 } };
/// <summary>
/// 4星事件概率抽中后摇1~100随机数如果大于该值则抽中up池
/// </summary>
[JsonProperty("eventChance4"), DefaultValue(50)]
public int EventChance4 { get; set; } = 50;
/// <summary>
/// 5星事件概率抽中后摇1~100随机数如果大于该值则抽中up池
/// </summary>
[JsonProperty("eventChance5"), DefaultValue(50)]
public int EventChance5 { get; set; } = 50;
/// <summary>
/// 这个有3种类型standard表示常驻池event表示限时角色祈愿池
/// weapon表示限时武器祈愿池选择一种类型的卡池
/// </summary>
[JsonProperty("bannerType"), JsonConverter(typeof(StringEnumConverter)), DefaultValue(BannerType.STANDARD)]
public BannerType BannerType { get; set; } = BannerType.STANDARD;
public override string ToString()
{
return $"[{GachaType}|{ScheduleId}] 5*:[{string.Join(",", RateUpItems5.Select(GetName))}] 4*:[{string.Join(",", RateUpItems4.Select(GetName))}]";
}
private static string GetName(int id)
{
var a = GameData.Avatars[id];
return a == ItemMap.EmptyName ? GameData.Weapons[id] : a;
}
}
}

View File

@ -37,6 +37,7 @@ namespace GrasscutterTools.Game
Weapons = new ItemMap(Resources.Weapon); Weapons = new ItemMap(Resources.Weapon);
WeaponColors = new ItemMap(Resources.WeaponColor); WeaponColors = new ItemMap(Resources.WeaponColor);
GachaBannerPrefabs = new ItemMap(Resources.GachaBennerPrefab); GachaBannerPrefabs = new ItemMap(Resources.GachaBennerPrefab);
GachaBannerTitles = new ItemMap(Resources.GachaBannerTitle);
Quests = new ItemMap(Resources.Quest); Quests = new ItemMap(Resources.Quest);
ShopType = new ItemMap(Resources.ShopType); ShopType = new ItemMap(Resources.ShopType);
} }
@ -67,6 +68,7 @@ namespace GrasscutterTools.Game
public static ItemMap WeaponColors { get; private set; } public static ItemMap WeaponColors { get; private set; }
public static ItemMap GachaBannerPrefabs { get; private set; } public static ItemMap GachaBannerPrefabs { get; private set; }
public static ItemMap GachaBannerTitles { get; private set; }
public static ItemMap Quests { get; private set; } public static ItemMap Quests { get; private set; }

View File

@ -90,6 +90,12 @@
<Compile Include="Forms\FormDropEditor.Designer.cs"> <Compile Include="Forms\FormDropEditor.Designer.cs">
<DependentUpon>FormDropEditor.cs</DependentUpon> <DependentUpon>FormDropEditor.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Forms\FormGachaBannersEditor3.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FormGachaBannersEditor3.Designer.cs">
<DependentUpon>FormGachaBannersEditor3.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FormGachaBannerEditor2.cs"> <Compile Include="Forms\FormGachaBannerEditor2.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@ -123,6 +129,7 @@
<Compile Include="Game\CommandVersion.cs" /> <Compile Include="Game\CommandVersion.cs" />
<Compile Include="Game\Drop\DropData.cs" /> <Compile Include="Game\Drop\DropData.cs" />
<Compile Include="Game\Drop\DropInfo.cs" /> <Compile Include="Game\Drop\DropInfo.cs" />
<Compile Include="Game\Gacha\GachaBanner3.cs" />
<Compile Include="Game\Gacha\GachaBanner2.cs" /> <Compile Include="Game\Gacha\GachaBanner2.cs" />
<Compile Include="Game\GameCommand.cs" /> <Compile Include="Game\GameCommand.cs" />
<Compile Include="Game\Gacha\BannerType.cs" /> <Compile Include="Game\Gacha\BannerType.cs" />
@ -170,6 +177,20 @@
<EmbeddedResource Include="Forms\FormDropEditor.zh-TW.resx"> <EmbeddedResource Include="Forms\FormDropEditor.zh-TW.resx">
<DependentUpon>FormDropEditor.cs</DependentUpon> <DependentUpon>FormDropEditor.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\FormGachaBannersEditor3.en-us.resx">
<DependentUpon>FormGachaBannersEditor3.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormGachaBannersEditor3.resx">
<DependentUpon>FormGachaBannersEditor3.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormGachaBannersEditor3.ru-ru.resx">
<DependentUpon>FormGachaBannersEditor3.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormGachaBannersEditor3.zh-TW.resx">
<DependentUpon>FormGachaBannersEditor3.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormGachaBannerEditor2.en-us.resx"> <EmbeddedResource Include="Forms\FormGachaBannerEditor2.en-us.resx">
<DependentUpon>FormGachaBannerEditor2.cs</DependentUpon> <DependentUpon>FormGachaBannerEditor2.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
@ -278,6 +299,7 @@
<DependentUpon>Settings.settings</DependentUpon> <DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput> <DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile> </Compile>
<None Include="Resources\Banners.json" />
<None Include="Resources\en-us\AvatarStats.json" /> <None Include="Resources\en-us\AvatarStats.json" />
<None Include="Resources\ru-ru\AvatarStats.json" /> <None Include="Resources\ru-ru\AvatarStats.json" />
<None Include="Resources\zh-cn\AvatarStats.json" /> <None Include="Resources\zh-cn\AvatarStats.json" />
@ -293,6 +315,7 @@
<Content Include="Resources\en-us\ArtifactSubAttribution.txt" /> <Content Include="Resources\en-us\ArtifactSubAttribution.txt" />
<Content Include="Resources\en-us\Avatar.txt" /> <Content Include="Resources\en-us\Avatar.txt" />
<Content Include="Resources\en-us\CustomCommands.txt" /> <Content Include="Resources\en-us\CustomCommands.txt" />
<Content Include="Resources\en-us\GachaBennerTitle.txt" />
<Content Include="Resources\en-us\GachaBennerPrefab.txt" /> <Content Include="Resources\en-us\GachaBennerPrefab.txt" />
<Content Include="Resources\en-us\Gadget.txt" /> <Content Include="Resources\en-us\Gadget.txt" />
<Content Include="Resources\en-us\Item.txt" /> <Content Include="Resources\en-us\Item.txt" />
@ -308,6 +331,7 @@
<Content Include="Resources\ru-ru\ArtifactSubAttribution.txt" /> <Content Include="Resources\ru-ru\ArtifactSubAttribution.txt" />
<Content Include="Resources\ru-ru\Avatar.txt" /> <Content Include="Resources\ru-ru\Avatar.txt" />
<Content Include="Resources\ru-ru\CustomCommands.txt" /> <Content Include="Resources\ru-ru\CustomCommands.txt" />
<Content Include="Resources\ru-ru\GachaBennerTitle.txt" />
<Content Include="Resources\ru-ru\GachaBennerPrefab.txt" /> <Content Include="Resources\ru-ru\GachaBennerPrefab.txt" />
<Content Include="Resources\ru-ru\Item.txt" /> <Content Include="Resources\ru-ru\Item.txt" />
<Content Include="Resources\ru-ru\Monsters.txt" /> <Content Include="Resources\ru-ru\Monsters.txt" />
@ -327,6 +351,7 @@
<Content Include="Resources\zh-cn\Avatar.txt" /> <Content Include="Resources\zh-cn\Avatar.txt" />
<Content Include="Resources\zh-cn\CustomCommands.txt" /> <Content Include="Resources\zh-cn\CustomCommands.txt" />
<Content Include="Resources\AvatarColor.txt" /> <Content Include="Resources\AvatarColor.txt" />
<Content Include="Resources\zh-cn\GachaBannerTitle.txt" />
<Content Include="Resources\zh-cn\GachaBennerPrefab.txt" /> <Content Include="Resources\zh-cn\GachaBennerPrefab.txt" />
<Content Include="Resources\zh-cn\Gadget.txt" /> <Content Include="Resources\zh-cn\Gadget.txt" />
<Content Include="Resources\zh-cn\Item.txt" /> <Content Include="Resources\zh-cn\Item.txt" />
@ -341,6 +366,7 @@
<Content Include="Resources\zh-tw\ArtifactSubAttribution.txt" /> <Content Include="Resources\zh-tw\ArtifactSubAttribution.txt" />
<Content Include="Resources\zh-tw\Avatar.txt" /> <Content Include="Resources\zh-tw\Avatar.txt" />
<Content Include="Resources\zh-tw\CustomCommands.txt" /> <Content Include="Resources\zh-tw\CustomCommands.txt" />
<Content Include="Resources\zh-tw\GachaBennerTitle.txt" />
<Content Include="Resources\zh-tw\GachaBennerPrefab.txt" /> <Content Include="Resources\zh-tw\GachaBennerPrefab.txt" />
<Content Include="Resources\zh-tw\Item.txt" /> <Content Include="Resources\zh-tw\Item.txt" />
<Content Include="Resources\zh-tw\Monsters.txt" /> <Content Include="Resources\zh-tw\Monsters.txt" />

View File

@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示: //通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.7.3")] [assembly: AssemblyVersion("1.7.4")]
[assembly: AssemblyFileVersion("1.7.0")] [assembly: AssemblyFileVersion("1.7.0")]

View File

@ -401,6 +401,16 @@ namespace GrasscutterTools.Properties {
} }
} }
/// <summary>
/// 查找 System.Byte[] 类型的本地化资源。
/// </summary>
internal static byte[] Banners {
get {
object obj = ResourceManager.GetObject("Banners", resourceCulture);
return ((byte[])(obj));
}
}
/// <summary> /// <summary>
/// 查找类似 浏览器打开失败,你可以通过以下链接手动访问: 的本地化字符串。 /// 查找类似 浏览器打开失败,你可以通过以下链接手动访问: 的本地化字符串。
/// </summary> /// </summary>
@ -554,6 +564,59 @@ namespace GrasscutterTools.Properties {
} }
} }
/// <summary>
/// 查找类似 007:初行者推荐祈愿
///008:奔行世间
///009:杯装之诗
///010:黎明巡礼
///011:南风之眷
///012:靖妖傩舞
///013:神铸赋形
///015:闪焰的驻足
///016:初行者推荐祈愿
///017:奔行世间
///018:闪焰的驻足
///019:杯装之诗
///020:神铸赋形
///021:神铸赋形
///022:奔行世间
///023:暂别冬都
///024:陵薮市朝
///027:深秘之息
///028:浮生孰来
///031:烟火之邀
///032:鱼龙灯昼
///033:赤团开时
///036:杯装之诗
///037:暂别冬都
///040:陵薮市朝
///041:浪涌之瞬
///045:叶落风随
///048:白鹭之庭
///049:焰色天河
///052:影寂天下人
///053:浮岳虹珠
///061:鬼门斗宴
///065:出尘入世
///071:华紫樱绯
///076:苍流踏花
///081:素霓伣天
///091:巡御蘙荟-提纳里
///092:陵薮市朝-钟离
///093:神铸赋形-猎人贯虹
///097:雳裁冥昭-赛诺
///098:杯装之诗-温迪
///099:神铸赋形-赤沙终末
///100:翩舞歈莲-妮露
///101:深秘之息-阿贝多
///101:神铸赋形-圣显绿箭 的本地化字符串。
/// </summary>
internal static string GachaBannerTitle {
get {
return ResourceManager.GetString("GachaBannerTitle", resourceCulture);
}
}
/// <summary> /// <summary>
/// 查找类似 007:初行者推荐祈愿 /// 查找类似 007:初行者推荐祈愿
///008:奔行世间 ///008:奔行世间

View File

@ -285,4 +285,7 @@ Improvement suggestions have been submitted, please use caution to send emails t
<data name="ShopJsonOverrideWarning" xml:space="preserve"> <data name="ShopJsonOverrideWarning" xml:space="preserve">
<value>Only allowed to save in Shop.json format! Are you sure you want to overwrite the currently specified file?</value> <value>Only allowed to save in Shop.json format! Are you sure you want to overwrite the currently specified file?</value>
</data> </data>
<data name="GachaBennerTitle" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\GachaBennerTitle.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312</value>
</data>
</root> </root>

View File

@ -294,4 +294,10 @@
<data name="ShopJsonOverrideWarning" xml:space="preserve"> <data name="ShopJsonOverrideWarning" xml:space="preserve">
<value>仅允许以 Shop.json 格式保存!确定要覆盖当前指定文件吗?</value> <value>仅允许以 Shop.json 格式保存!确定要覆盖当前指定文件吗?</value>
</data> </data>
<data name="GachaBannerTitle" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\GachaBannerTitle.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Banners" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Banners.json;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root> </root>

View File

@ -273,4 +273,7 @@
<data name="ShopJsonOverrideWarning" xml:space="preserve"> <data name="ShopJsonOverrideWarning" xml:space="preserve">
<value>Разрешено сохранять только в формате Shop.json! Вы уверены, что хотите перезаписать текущий файл?</value> <value>Разрешено сохранять только в формате Shop.json! Вы уверены, что хотите перезаписать текущий файл?</value>
</data> </data>
<data name="GachaBennerTitle" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ru-ru\GachaBennerTitle.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
</root> </root>

View File

@ -279,4 +279,7 @@
<data name="ShopJsonOverrideWarning" xml:space="preserve"> <data name="ShopJsonOverrideWarning" xml:space="preserve">
<value>僅允許以 Shop.json 格式保存!確定要覆蓋當前指定文件嗎?</value> <value>僅允許以 Shop.json 格式保存!確定要覆蓋當前指定文件嗎?</value>
</data> </data>
<data name="GachaBennerTitle" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-tw\GachaBennerTitle.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
</root> </root>

View File

@ -12,7 +12,7 @@ namespace GrasscutterTools.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@ -214,5 +214,17 @@ namespace GrasscutterTools.Properties {
this["MainFormSize"] = value; this["MainFormSize"] = value;
} }
} }
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string BannersJsonPath {
get {
return ((string)(this["BannersJsonPath"]));
}
set {
this["BannersJsonPath"] = value;
}
}
} }
} }

View File

@ -50,5 +50,8 @@
<Setting Name="MainFormSize" Type="System.Drawing.Size" Scope="User"> <Setting Name="MainFormSize" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)">0, 0</Value> <Value Profile="(Default)">0, 0</Value>
</Setting> </Setting>
<Setting Name="BannersJsonPath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View File

@ -0,0 +1,773 @@
[
//
{
"comment": "Beginner's Banner. Do not change for no reason.",
"gachaType": 100,
"scheduleId": 803,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A016",
"titlePath": "UI_GACHA_SHOW_PANEL_A016_TITLE",
"costItemId": 224,
"costItemAmount10": 8,
"gachaTimesLimit": 20,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 100,
"rateUpItems5": [],
"rateUpItems4": [ 1034 ]
},
//1
{
"comment": "Standard",
"gachaType": 200,
"scheduleId": 2000,
"bannerType": "STANDARD",
"prefabPath": "GachaShowPanel_A022",
"titlePath": "UI_GACHA_SHOW_PANEL_A022_TITLE",
"costItemId": 224,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 1,
"fallbackItems4Pool1": [ 1006, 1014, 1015, 1020, 1021, 1023, 1024, 1025, 1027, 1031, 1032, 1034, 1036, 1039, 1043, 1044, 1045, 1048, 1053, 1055, 1056, 1064 ],
"weights5": [
[ 1, 75 ],
[ 73, 150 ],
[ 90, 10000 ]
]
},
//2
{
"comment": "Standard",
"gachaType": 201,
"scheduleId": 2001,
"bannerType": "STANDARD",
"prefabPath": "GachaShowPanel_A017",
"titlePath": "UI_GACHA_SHOW_PANEL_A017_TITLE",
"costItemId": 224,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 1,
"fallbackItems4Pool1": [ 1006, 1014, 1015, 1020, 1021, 1023, 1024, 1025, 1027, 1031, 1032, 1034, 1036, 1039, 1043, 1044, 1045, 1048, 1053, 1055, 1056, 1064 ],
"weights5": [
[ 1, 75 ],
[ 73, 150 ],
[ 90, 10000 ]
]
},
//1.0-
{
"comment": "1.0",
"gachaType": 400,
"scheduleId": 800,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A019",
"titlePath": "UI_GACHA_SHOW_PANEL_A019_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 1000,
"rateUpItems4": [ 1023, 1031, 1014 ],
"rateUpItems5": [ 1022 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.0-
{
"comment": "1.0",
"gachaType": 401,
"scheduleId": 801,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A018",
"titlePath": "UI_GACHA_SHOW_PANEL_A018_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 999,
"rateUpItems4": [ 1025, 1034, 1043 ],
"rateUpItems5": [ 1029 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.1-
{
"comment": "1.0",
"gachaType": 402,
"scheduleId": 802,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A023",
"titlePath": "UI_GACHA_SHOW_PANEL_A023_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 998,
"rateUpItems4": [ 1027, 1024, 1039 ],
"rateUpItems5": [ 1033 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.1-
{
"comment": "1.0",
"gachaType": 403,
"scheduleId": 803,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A024",
"titlePath": "UI_GACHA_SHOW_PANEL_A024_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 997,
"rateUpItems4": [ 1044, 1020, 1036 ],
"rateUpItems5": [ 1030 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.2-
{
"comment": "1.0",
"gachaType": 404,
"scheduleId": 804,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A027",
"titlePath": "UI_GACHA_SHOW_PANEL_A027_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 996,
"rateUpItems4": [ 1031, 1043, 1032 ],
"rateUpItems5": [ 1038 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.2-
{
"comment": "1.0",
"gachaType": 405,
"scheduleId": 805,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A028",
"titlePath": "UI_GACHA_SHOW_PANEL_A028_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 995,
"rateUpItems4": [ 1023, 1025, 1034 ],
"rateUpItems5": [ 1037 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.3-
{
"comment": "1.0",
"gachaType": 406,
"scheduleId": 806,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A031",
"titlePath": "UI_GACHA_SHOW_PANEL_A031_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 994,
"rateUpItems4": [ 1039, 1024, 1044 ],
"rateUpItems5": [ 1026 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.3-
{
"comment": "1.0",
"gachaType": 407,
"scheduleId": 807,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A032",
"titlePath": "UI_GACHA_SHOW_PANEL_A032_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 993,
"rateUpItems4": [ 1027, 1032, 1014 ],
"rateUpItems5": [ 1042 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.3-
{
"comment": "1.0",
"gachaType": 408,
"scheduleId": 808,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A033",
"titlePath": "UI_GACHA_SHOW_PANEL_A033_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 992,
"rateUpItems4": [ 1025, 1036, 1023 ],
"rateUpItems5": [ 1046 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.4-
{
"comment": "1.0",
"gachaType": 409,
"scheduleId": 809,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A036",
"titlePath": "UI_GACHA_SHOW_PANEL_A036_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 991,
"rateUpItems4": [ 1043, 1020, 1034 ],
"rateUpItems5": [ 1022 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.4-
{
"comment": "1.0",
"gachaType": 410,
"scheduleId": 810,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A037",
"titlePath": "UI_GACHA_SHOW_PANEL_A037_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 990,
"rateUpItems4": [ 1045, 1014, 1031 ],
"rateUpItems5": [ 1033 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.5-
{
"comment": "1.0",
"gachaType": 411,
"scheduleId": 811,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A040",
"titlePath": "UI_GACHA_SHOW_PANEL_A040_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 989,
"rateUpItems4": [ 1048, 1034, 1039 ],
"rateUpItems5": [ 1030 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.5-
{
"comment": "1.0",
"gachaType": 412,
"scheduleId": 812,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A041",
"titlePath": "UI_GACHA_SHOW_PANEL_A041_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 988,
"rateUpItems4": [ 1044, 1025, 1024 ],
"rateUpItems5": [ 1051 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.6-
{
"comment": "1.0",
"gachaType": 413,
"scheduleId": 813,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A044",
"titlePath": "UI_GACHA_SHOW_PANEL_A044_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 987,
"rateUpItems4": [ 1014, 1043, 1031 ],
"rateUpItems5": [ 1029 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//1.6-
{
"comment": "1.0",
"gachaType": 414,
"scheduleId": 814,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A045",
"titlePath": "UI_GACHA_SHOW_PANEL_A045_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 986,
"rateUpItems4": [ 1045, 1032, 1020 ],
"rateUpItems5": [ 1047 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.0-
{
"comment": "2.0",
"gachaType": 415,
"scheduleId": 815,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A048",
"titlePath": "UI_GACHA_SHOW_PANEL_A048_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 985,
"rateUpItems4": [ 1027, 1036, 1048 ],
"rateUpItems5": [ 1002 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.0-
{
"comment": "2.0",
"gachaType": 416,
"scheduleId": 816,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A049",
"titlePath": "UI_GACHA_SHOW_PANEL_A049_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 984,
"rateUpItems4": [ 1053, 1039, 1044 ],
"rateUpItems5": [ 1049 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.1-
{
"comment": "2.0",
"gachaType": 417,
"scheduleId": 817,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A052",
"titlePath": "UI_GACHA_SHOW_PANEL_A052_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 983,
"rateUpItems4": [ 1056, 1023, 1043 ],
"rateUpItems5": [ 1052 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.1-
{
"comment": "2.0",
"gachaType": 418,
"scheduleId": 818,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A053",
"titlePath": "UI_GACHA_SHOW_PANEL_A053_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 982,
"rateUpItems4": [ 1045, 1024, 1025 ],
"rateUpItems5": [ 1054 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.2-
{
"comment": "2.0",
"gachaType": 419,
"scheduleId": 819,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A056",
"titlePath": "UI_GACHA_SHOW_PANEL_A056_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 981,
"rateUpItems4": [ 1027, 1036, 1048 ],
"rateUpItems5": [ 1033 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.2-
{
"comment": "2.0",
"gachaType": 420,
"scheduleId": 820,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A057",
"titlePath": "UI_GACHA_SHOW_PANEL_A057_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 980,
"rateUpItems4": [ 1050, 1039, 1053 ],
"rateUpItems5": [ 1046 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.31-
{
"comment": "2.0",
"gachaType": 421,
"scheduleId": 821,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A062",
"titlePath": "UI_GACHA_SHOW_PANEL_A062_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 979,
"rateUpItems4": [ 1032, 1034, 1045 ],
"rateUpItems5": [ 1051 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.32-
{
"comment": "2.0",
"gachaType": 422,
"scheduleId": 822,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A060",
"titlePath": "UI_GACHA_SHOW_PANEL_A060_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 978,
"rateUpItems4": [ 1032, 1034, 1045 ],
"rateUpItems5": [ 1038 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.3-
{
"comment": "2.0",
"gachaType": 423,
"scheduleId": 823,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A061",
"titlePath": "UI_GACHA_SHOW_PANEL_A061_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 977,
"rateUpItems4": [ 1055, 1014, 1023 ],
"rateUpItems5": [ 1057 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.41-
//2.42-
{
"comment": "2.0",
"gachaType": 424,
"scheduleId": 824,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A065",
"titlePath": "UI_GACHA_SHOW_PANEL_A065_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 976,
"rateUpItems4": [ 1027, 1036, 1064 ],
"rateUpItems5": [ 1063 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.41-()
//2.42-()
//2.5-
{
"comment": "2.0",
"gachaType": 425,
"scheduleId": 825,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A071",
"titlePath": "UI_GACHA_SHOW_PANEL_A071_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 975,
"rateUpItems4": [ 1031, 1039, 1050 ],
"rateUpItems5": [ 1058 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.51-()
//2.52-()
//2.61-
{
"comment": "2.0",
"gachaType": 426,
"scheduleId": 826,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A076",
"titlePath": "UI_GACHA_SHOW_PANEL_A076_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 974,
"rateUpItems4": [ 1043, 1023, 1064 ],
"rateUpItems5": [ 1066 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.62-()
//2.6-()
//2.71-
{
"comment": "2.0",
"gachaType": 427,
"scheduleId": 827,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A081",
"titlePath": "UI_GACHA_SHOW_PANEL_A081_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 973,
"rateUpItems4": [ 1034, 1048, 1014 ],
"rateUpItems5": [ 1060 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//2.72-()
//2.7-()
//2.81-鹿()
//2.82-鹿()
//2.8-()
//3.01-
{
"comment": "3.0",
"gachaType": 428,
"scheduleId": 828,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A091",
"titlePath": "UI_GACHA_SHOW_PANEL_A091_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 972,
"rateUpItems4": [ 1031, 1039, 1067 ],
"rateUpItems5": [ 1069 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//3.02-()
//3.01-()
//3.02-()
//3.11-()
//3.12-
{
"comment": "3.0",
"gachaType": 429,
"scheduleId": 829,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A097",
"titlePath": "UI_GACHA_SHOW_PANEL_A097_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 971,
"rateUpItems4": [ 1053, 1065, 1072 ],
"rateUpItems5": [ 1071 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//3.11-
/*{
"comment": "3.0",
"gachaType": 430,
"scheduleId": 830,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A100",
"titlePath": "UI_GACHA_SHOW_PANEL_A0100_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 970,
"rateUpItems4": [1014,1023,1024],
"rateUpItems5": [1070],
"fallbackItems5Pool2": [],
"weights5": [[1,80], [73,80], [90,10000]]
},*/
//3.21-西
{
"comment": "Character Event Banner 1",
"gachaType": 431,
"scheduleId": 831,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A103",
"titlePath": "UI_GACHA_SHOW_PANEL_A0103_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 969,
"rateUpItems4": [ 1034, 1020, 1032 ],
"rateUpItems5": [ 1073 ],
"fallbackItems5Pool2": [],
"weights5": [
[ 1, 80 ],
[ 73, 80 ],
[ 90, 10000 ]
]
},
//3.2-()
//3.2-
{
"comment": "Weapon Event Banner",
"gachaType": 502,
"scheduleId": 602,
"bannerType": "WEAPON",
"prefabPath": "GachaShowPanel_A105",
"titlePath": "UI_GACHA_SHOW_PANEL_A020_TITLE",
"costItemId": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 2,
"rateUpItems4": [ 15405, 11402, 14402, 13407, 12403 ],
"rateUpItems5": [ 114511, 15509 ],
"fallbackItems5Pool1": [],
"weights4": [
[ 1, 600 ],
[ 7, 600 ],
[ 8, 6600 ],
[ 10, 12600 ]
],
"weights5": [
[ 1, 100 ],
[ 62, 100 ],
[ 73, 7800 ],
[ 80, 10000 ]
],
"eventChance4": 75,
"eventChance5": 75
}
//3.12-()
]

View File

@ -50,6 +50,6 @@
097:Cyno 097:Cyno
098:Venti 098:Venti
099:Staff of the Scarlet Sands 099:Staff of the Scarlet Sands
100:Twirling Lotus //100:Twirling Lotus // Error
101:Secretorum Secretorum 101:Secretorum Secretorum
102:Epitome Invocation 102:Epitome Invocation

View File

@ -0,0 +1,55 @@
007:Beginners' wish
008:Wanderlust Invocation
009:Ballad in Goblets
010:Dawn Pilgrimage
011:Grace of Southwind
012:Bane of All Evil
013:Epitome Invocation
015:Sparkling Steps
016:Beginners' wish
017:Wanderlust Invocation
018:Sparkling Steps
019:Ballad in Goblets
020:Amos' Bow and Aquila Favonia
021:Lost Prayer to the Sacred Winds and Wolf's Gravestone
022:Wanderlust Invocation
023:Farewell of Snezhnaya
024:Gentry of Hermitage
025:Skyward Harp and Memory of Dust
026:Vortex Vanquisher and The Unforged
027:Secretum Secretorum
028:Adrift in the Harbor
029:Summit Shaper and Skyward Atlas
030:Amos' Bow and Skyward Pride
031:Invitation to Mundane Life
032:Dance of Lanterns
033:Moment of Bloom
034:Primordial Jade Winged-Spear and Primordial Jade Cutter
035:Staff of Homa and Wolf's Gravestone
036:Ballad in Goblets
037:Farewell of Snezhnaya
038:Elegy for the End and Skyward Blade
039:Skyward Harp and Lost Prayer to the Sacred Winds
040:Gentry of Hermitage
041:Born of Ocean Swell
042:Summit Shaper and Memory of Dust
043:Aquila Favonia and Song of Broken Pines
045:Leaves in the Wind
048:The Heron's Court
049:Tapestry of Golden Flames
052:Reign of Serenity
053:Drifting Luminescence
061:Oni's Royale
065:The Transcendent One Returns
071:Everbloom Violet
076:Azure Excursion
081:Discerner of Enigmas
091:Tighnari
092:Zhongli
093:Hunter's Path
097:Cyno
098:Venti
099:Staff of the Scarlet Sands
//100:Twirling Lotus // Error
101:Secretorum Secretorum
102:Epitome Invocation

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,45 @@
007:Молитва новичка
008:Жажда странствий
009:Стихи из винного кубка
010:Рассветное паломничество
011:Благоволение южного ветра
012:Истребление всего зла
013:Воплощение божества
015:Сверкающая поступь
016:Молитва новичка
017:Жажда странствий
018:Сверкающая поступь
019:Стихи из винного кубка
020:Воплощение божества
021:Воплощение божества
022:Жажда странствий
023:Зимнее расставание
024:Горы и рынки
027:Таинственные секреты
028:Эфемерное недоверие
031:Приглашение к мирской жизни
032:Танец фонарей
033:Момент цветения
036:Стихи из винного кубка
037:Зимнее расставание
040:Горы и рынки
041:Рождённая морской пеной
045:Листья на ветру
048:Сад белой цапли
049:Гобелен золотого пламени
052:Господство безмятежности
053:Дрейфующее свечение
061:Пиршество óни
065:Возвращение в мир смертных
071:Вечноцветущий пурпур
076:Лазурный поход
081:Белая радуга
091:Патруль лесной чащи
092:Горы и рынки
093:Охотничья тропа
097:Сайно
098:Венти
099:Staff of the Scarlet Sands
//100:Twirling Lotus // Error
101:Secretorum Secretorum
102:Epitome Invocation

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,45 @@
007:初行者推荐祈愿
008:奔行世间
009:杯装之诗
010:黎明巡礼
011:南风之眷
012:靖妖傩舞
013:神铸赋形
015:闪焰的驻足
016:初行者推荐祈愿
017:奔行世间
018:闪焰的驻足
019:杯装之诗
020:神铸赋形
021:神铸赋形
022:奔行世间
023:暂别冬都
024:陵薮市朝
027:深秘之息
028:浮生孰来
031:烟火之邀
032:鱼龙灯昼
033:赤团开时
036:杯装之诗
037:暂别冬都
040:陵薮市朝
041:浪涌之瞬
045:叶落风随
048:白鹭之庭
049:焰色天河
052:影寂天下人
053:浮岳虹珠
061:鬼门斗宴
065:出尘入世
071:华紫樱绯
076:苍流踏花
081:素霓伣天
091:巡御蘙荟-提纳里
092:陵薮市朝-钟离
093:神铸赋形-猎人贯虹
097:雳裁冥昭-赛诺
098:杯装之诗-温迪
099:神铸赋形-赤沙终末
//100:翩舞歈莲-妮露 // Error
101:深秘之息-阿贝多
101:神铸赋形-圣显绿箭

View File

@ -40,6 +40,6 @@
097:雳裁冥昭-赛诺 097:雳裁冥昭-赛诺
098:杯装之诗-温迪 098:杯装之诗-温迪
099:神铸赋形-赤沙终末 099:神铸赋形-赤沙终末
100:翩舞歈莲-妮露 //100:翩舞歈莲-妮露 // Error
101:深秘之息-阿贝多 101:深秘之息-阿贝多
101:神铸赋形-圣显绿箭 101:神铸赋形-圣显绿箭

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -40,6 +40,6 @@
097:靂裁冥昭-賽諾 097:靂裁冥昭-賽諾
098:杯裝之詩-溫迪 098:杯裝之詩-溫迪
099:神鑄賦形-赤沙終末 099:神鑄賦形-赤沙終末
100:翩舞歈蓮-妮露 //100:翩舞歈蓮-妮露 // Error
101:深秘之息-阿貝多 101:深秘之息-阿貝多
101:神鑄賦形-聖顯綠箭 101:神鑄賦形-聖顯綠箭

View File

@ -0,0 +1,45 @@
007:初行者推薦祈願
008:奔行世間
009:杯裝之詩
010:黎明巡禮
011:南風之眷
012:靖妖儺舞
013:神鑄賦形
015:閃焰的駐足
016:初行者推薦祈願
017:奔行世間
018:閃焰的駐足
019:杯裝之詩
020:神鑄賦形
021:神鑄賦形
022:奔行世間
023:暫別冬都
024:陵藪市朝
027:深秘之息
028:浮生孰來
031:煙火之邀
032:魚龍燈晝
033:赤團開時
036:杯裝之詩
037:暫別冬都
040:陵藪市朝
041:浪湧之瞬
045:葉落風隨
048:白鷺之庭
049:焰色天河
052:影寂天下人
053:浮岳虹珠
061:鬼門斗宴
065:出塵入世
071:華紫櫻緋
076:蒼流踏花
081:素霓俔天
091:巡禦蘙薈-提納里
092:陵藪市朝-鍾離
093:神鑄賦形-獵人貫虹
097:靂裁冥昭-賽諾
098:杯裝之詩-溫迪
099:神鑄賦形-赤沙終末
//100:翩舞歈蓮-妮露 // Error
101:深秘之息-阿貝多
101:神鑄賦形-聖顯綠箭

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff