From 984afbdf0b0dc683d5dc42d092300346def8aee3 Mon Sep 17 00:00:00 2001 From: jie65535 Date: Thu, 30 May 2024 23:33:37 +0800 Subject: [PATCH] Update banner titles to 4.6 Fix benner editor format Add banner title update tool --- .../Forms/FormGachaBannerEditor.cs | 30 ++- .../Forms/FormGachaBannerEditor2.cs | 32 ++- .../Forms/FormGachaBannersEditor3.cs | 46 ++-- Source/GrasscutterTools/Game/GameData.cs | 24 ++- .../GrasscutterTools/GrasscutterTools.csproj | 14 +- .../Pages/PageTools.Designer.cs | 13 ++ Source/GrasscutterTools/Pages/PageTools.cs | 56 ++++- .../Properties/Resources.Designer.cs | 4 +- .../Properties/Resources.en-us.resx | 8 +- .../Properties/Resources.resx | 4 +- .../Properties/Resources.ru-ru.resx | 8 +- .../Properties/Resources.zh-TW.resx | 8 +- .../Resources/en-us/GachaBannerPrefab.txt | 194 ++++++++++++----- .../Resources/en-us/GachaBannerTitle.txt | 108 +++++----- .../Resources/ru-ru/GachaBannerPrefab.txt | 174 +++++++++++---- .../Resources/ru-ru/GachaBannerTitle.txt | 98 +++++---- .../Resources/zh-cn/GachaBannerPrefab.txt | 198 ++++++++++++------ .../Resources/zh-cn/GachaBannerTitle.txt | 102 ++++----- .../Resources/zh-tw/GachaBannerPrefab.txt | 173 +++++++++++---- .../Resources/zh-tw/GachaBannerTitle.txt | 98 +++++---- 20 files changed, 921 insertions(+), 471 deletions(-) diff --git a/Source/GrasscutterTools/Forms/FormGachaBannerEditor.cs b/Source/GrasscutterTools/Forms/FormGachaBannerEditor.cs index 6f383dd..edef737 100644 --- a/Source/GrasscutterTools/Forms/FormGachaBannerEditor.cs +++ b/Source/GrasscutterTools/Forms/FormGachaBannerEditor.cs @@ -50,8 +50,10 @@ namespace GrasscutterTools.Forms private void InitBannerPrefab() { - CmbPrefab.Items.Clear(); - CmbPrefab.Items.AddRange(GameData.GachaBannerPrefabs.Names); + CmbPrefab.DisplayMember = "Value"; + CmbPrefab.DataSource = GameData.GachaBannerPrefabs; + //CmbPrefab.Items.Clear(); + //CmbPrefab.Items.AddRange(GameData.GachaBannerPrefabs.Names); } private void InitCheckedListBoxs() @@ -96,6 +98,11 @@ namespace GrasscutterTools.Forms #region - UI - + private static string TrimPrefixAndSuffix(string text, int prefixLength, int suffixLength) + { + return text.Substring(prefixLength, text.Length - prefixLength - suffixLength); + } + private void ShowBanner(GachaBanner banner) { try @@ -103,10 +110,17 @@ namespace GrasscutterTools.Forms NUDGachaType.Value = banner.GachaType; NUDScheduleId.Value = banner.ScheduleId; CmbBannerType.SelectedIndex = (int)banner.BannerType; - if (string.IsNullOrEmpty(banner.TitlePath) || !int.TryParse(banner.TitlePath.Substring("UI_GACHA_SHOW_PANEL_A".Length, 3), out int prefabId)) + const string titlePrefix = "UI_GACHA_SHOW_PANEL_"; + const string suffix = "_TITLE"; + if (string.IsNullOrEmpty(banner.TitlePath) || banner.TitlePath.Length <= titlePrefix.Length + suffix.Length) + { CmbPrefab.SelectedIndex = -1; + } else - CmbPrefab.SelectedIndex = Array.IndexOf(GameData.GachaBannerPrefabs.Ids, prefabId); + { + var titleKey = TrimPrefixAndSuffix(banner.TitlePath, titlePrefix.Length, suffix.Length); + CmbPrefab.SelectedIndex = GameData.GachaBannerTitles.FindIndex(it => it.Key == titleKey); + } RbCostItem224.Checked = banner.CostItem == 224; RbCostItem223.Checked = banner.CostItem == 223; NUDBeginTime.Value = banner.BeginTime; @@ -153,15 +167,15 @@ namespace GrasscutterTools.Forms else purpleIds = TxtRateUpItems2.Text.Split(',').Select(s => int.Parse(s.Trim())).ToArray(); - var prefabId = GameData.GachaBannerPrefabs.Ids[CmbPrefab.SelectedIndex]; + var prefabId = GameData.GachaBannerPrefabs[CmbPrefab.SelectedIndex].Key; GachaBanner banner = new GachaBanner { 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{prefabId:000}_TITLE", + PrefabPath = $"GachaShowPanel_{prefabId}", + PreviewPrefabPath = $"UI_Tab_GachaShowPanel_{prefabId}", + TitlePath = $"UI_GACHA_SHOW_PANEL_{prefabId}_TITLE", CostItem = RbCostItem224.Checked ? 224 : 223, BeginTime = (int)NUDBeginTime.Value, EndTime = (int)NUDEndTime.Value, diff --git a/Source/GrasscutterTools/Forms/FormGachaBannerEditor2.cs b/Source/GrasscutterTools/Forms/FormGachaBannerEditor2.cs index e6c809d..ee9d840 100644 --- a/Source/GrasscutterTools/Forms/FormGachaBannerEditor2.cs +++ b/Source/GrasscutterTools/Forms/FormGachaBannerEditor2.cs @@ -50,8 +50,11 @@ namespace GrasscutterTools.Forms private void InitBannerPrefab() { - CmbPrefab.Items.Clear(); - CmbPrefab.Items.AddRange(GameData.GachaBannerPrefabs.Names); + CmbPrefab.DisplayMember = "Value"; + CmbPrefab.DataSource = GameData.GachaBannerPrefabs; + + //CmbPrefab.Items.Clear(); + //CmbPrefab.Items.AddRange(GameData.GachaBannerPrefabs.Names); } private void LnkWeightHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) @@ -206,6 +209,10 @@ namespace GrasscutterTools.Forms #region - 序列化 - + private static string TrimPrefixAndSuffix(string text, int prefixLength, int suffixLength) + { + return text.Substring(prefixLength, text.Length - prefixLength - suffixLength); + } private void ShowBanner(GachaBanner2 banner) { try @@ -213,10 +220,17 @@ namespace GrasscutterTools.Forms NUDGachaType.Value = banner.GachaType; NUDScheduleId.Value = banner.ScheduleId; CmbBannerType.SelectedIndex = (int)banner.BannerType; - if (string.IsNullOrEmpty(banner.TitlePath) || !int.TryParse(banner.TitlePath.Substring("UI_GACHA_SHOW_PANEL_A".Length, 3), out int prefabId)) + const string titlePrefix = "UI_GACHA_SHOW_PANEL_"; + const string suffix = "_TITLE"; + if (string.IsNullOrEmpty(banner.TitlePath) || banner.TitlePath.Length <= titlePrefix.Length + suffix.Length) + { CmbPrefab.SelectedIndex = -1; + } else - CmbPrefab.SelectedIndex = Array.IndexOf(GameData.GachaBannerPrefabs.Ids, prefabId); + { + var titleKey = TrimPrefixAndSuffix(banner.TitlePath, titlePrefix.Length, suffix.Length); + CmbPrefab.SelectedIndex = GameData.GachaBannerTitles.FindIndex(it => it.Key == titleKey); + } RbCostItem224.Checked = banner.CostItem == 224; RbCostItem223.Checked = banner.CostItem == 223; DTPBeginTime.Value = DateTimeOffset.FromUnixTimeSeconds(banner.BeginTime).DateTime; @@ -248,16 +262,16 @@ namespace GrasscutterTools.Forms MessageBox.Show("请选择奖池预制", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } - - var prefabId = GameData.GachaBannerPrefabs.Ids[CmbPrefab.SelectedIndex]; + + var prefabId = GameData.GachaBannerPrefabs[CmbPrefab.SelectedIndex].Key; var banner = new GachaBanner2 { 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{prefabId:000}_TITLE", + PrefabPath = $"GachaShowPanel_{prefabId}", + PreviewPrefabPath = $"UI_Tab_GachaShowPanel_{prefabId}", + TitlePath = $"UI_GACHA_SHOW_PANEL_{prefabId}_TITLE", CostItem = RbCostItem224.Checked ? 224 : 223, BeginTime = (int)new DateTimeOffset(DTPBeginTime.Value, TimeSpan.Zero).ToUnixTimeSeconds(), EndTime = (int)new DateTimeOffset(DTPEndTime.Value, TimeSpan.Zero).ToUnixTimeSeconds(), diff --git a/Source/GrasscutterTools/Forms/FormGachaBannersEditor3.cs b/Source/GrasscutterTools/Forms/FormGachaBannersEditor3.cs index 6e379ad..725dc93 100644 --- a/Source/GrasscutterTools/Forms/FormGachaBannersEditor3.cs +++ b/Source/GrasscutterTools/Forms/FormGachaBannersEditor3.cs @@ -61,10 +61,10 @@ namespace GrasscutterTools.Forms private void InitBannerPrefab() { - CmbPrefab.Items.Clear(); - CmbPrefab.Items.AddRange(GameData.GachaBannerPrefabs.Names); - CmbTitlePath.Items.Clear(); - CmbTitlePath.Items.AddRange(GameData.GachaBannerTitles.Names); + CmbPrefab.DisplayMember = "Value"; + CmbPrefab.DataSource = GameData.GachaBannerPrefabs; + CmbTitlePath.DisplayMember = "Value"; + CmbTitlePath.DataSource = GameData.GachaBannerTitles; } protected override void OnLoad(EventArgs e) @@ -405,6 +405,12 @@ namespace GrasscutterTools.Forms #region - 卡池参数 - + private static string TrimPrefixAndSuffix(string text, int prefixLength, int suffixLength) + { + return text.Substring(prefixLength, text.Length - prefixLength - suffixLength); + } + + /// /// 显示指定卡池参数 /// @@ -416,14 +422,28 @@ namespace GrasscutterTools.Forms 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)) + const string prefabPrefix = "GachaShowPanel_"; + if (string.IsNullOrEmpty(banner.PrefabPath) || banner.PrefabPath.Length <= prefabPrefix.Length) + { 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)) + { + var prefabKey = banner.PrefabPath.Substring(prefabPrefix.Length); + CmbPrefab.SelectedIndex = GameData.GachaBannerPrefabs.FindIndex(it => it.Key == prefabKey); + } + + const string titlePrefix = "UI_GACHA_SHOW_PANEL_"; + const string suffix = "_TITLE"; + if (string.IsNullOrEmpty(banner.TitlePath) || banner.TitlePath.Length <= titlePrefix.Length + suffix.Length) + { CmbTitlePath.SelectedIndex = -1; + } else - CmbTitlePath.SelectedIndex = Array.IndexOf(GameData.GachaBannerTitles.Ids, titleId); + { + var titleKey = TrimPrefixAndSuffix(banner.TitlePath, titlePrefix.Length, suffix.Length); + CmbTitlePath.SelectedIndex = GameData.GachaBannerTitles.FindIndex(it => it.Key == titleKey); + } RbCostItem224.Checked = banner.CostItemId == 224; RbCostItem223.Checked = banner.CostItemId == 223; NUDCostItemAmount1.Value = banner.CoseItemAmount; @@ -458,16 +478,16 @@ namespace GrasscutterTools.Forms return null; } - var prefabId = GameData.GachaBannerPrefabs.Ids[CmbPrefab.SelectedIndex]; - var titleId = GameData.GachaBannerTitles.Ids[CmbTitlePath.SelectedIndex]; + var prefabId = GameData.GachaBannerPrefabs[CmbPrefab.SelectedIndex].Key; + var titleId = GameData.GachaBannerTitles[CmbTitlePath.SelectedIndex].Key; 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", + PrefabPath = $"GachaShowPanel_{prefabId}", + PreviewPrefabPath = $"UI_Tab_GachaShowPanel_{prefabId}", + TitlePath = $"UI_GACHA_SHOW_PANEL_{titleId}_TITLE", CostItemId = RbCostItem224.Checked ? 224 : 223, CoseItemAmount = (int)NUDCostItemAmount1.Value, CostItemId10 = RbCostItem224.Checked ? 224 : 223, diff --git a/Source/GrasscutterTools/Game/GameData.cs b/Source/GrasscutterTools/Game/GameData.cs index 52c9d66..fcc0dbb 100644 --- a/Source/GrasscutterTools/Game/GameData.cs +++ b/Source/GrasscutterTools/Game/GameData.cs @@ -17,6 +17,7 @@ * **/ +using System.Collections.Generic; using GrasscutterTools.Properties; namespace GrasscutterTools.Game @@ -42,13 +43,28 @@ namespace GrasscutterTools.Game Dungeons = new ItemMap(Resources.Dungeon); Weapons = new ItemMap(Resources.Weapon); WeaponColors = new ItemMap(Resources.WeaponColor); - GachaBannerPrefabs = new ItemMap(Resources.GachaBennerPrefab); - GachaBannerTitles = new ItemMap(Resources.GachaBannerTitle); + GachaBannerPrefabs = ToDictionary(Resources.GachaBannerPrefab); + GachaBannerTitles = ToDictionary(Resources.GachaBannerTitle); Quests = new ItemMap(Resources.Quest); ShopType = new ItemMap(Resources.ShopType); Weathers = new ItemMapGroup(Resources.Weather); } + private static List> ToDictionary(string file) + { + var lines = file.Split('\n'); + var dic = new List>(lines.Length); + foreach (var line in lines) + { + var i = line.IndexOf(':'); + if (i <= 0) continue; + var key = line.Substring(0, i).Trim(); + var value = line.Substring(i + 1).Trim(); + dic.Add(new KeyValuePair(key, value)); + } + return dic; + } + public static ItemMap Achievements { get; private set; } public static ItemMapGroup Activity { get; private set; } @@ -83,9 +99,9 @@ namespace GrasscutterTools.Game public static ItemMap WeaponColors { get; private set; } - public static ItemMap GachaBannerPrefabs { get; private set; } + public static List> GachaBannerPrefabs { get; private set; } - public static ItemMap GachaBannerTitles { get; private set; } + public static List> GachaBannerTitles { get; private set; } public static ItemMap Quests { get; private set; } diff --git a/Source/GrasscutterTools/GrasscutterTools.csproj b/Source/GrasscutterTools/GrasscutterTools.csproj index 186aa74..f1a6b02 100644 --- a/Source/GrasscutterTools/GrasscutterTools.csproj +++ b/Source/GrasscutterTools/GrasscutterTools.csproj @@ -787,8 +787,8 @@ - - + + @@ -810,8 +810,8 @@ - - + + @@ -839,7 +839,7 @@ - + @@ -858,8 +858,8 @@ - - + + diff --git a/Source/GrasscutterTools/Pages/PageTools.Designer.cs b/Source/GrasscutterTools/Pages/PageTools.Designer.cs index 445c806..841ee12 100644 --- a/Source/GrasscutterTools/Pages/PageTools.Designer.cs +++ b/Source/GrasscutterTools/Pages/PageTools.Designer.cs @@ -36,6 +36,7 @@ this.TxtGcResRoot = new System.Windows.Forms.TextBox(); this.BtnUpdateAllResources = new System.Windows.Forms.Button(); this.BtnUpdateActivity = new System.Windows.Forms.Button(); + this.BtnUpdateBannerTitles = new System.Windows.Forms.Button(); this.SuspendLayout(); // // BtnUpdateResources @@ -110,6 +111,16 @@ this.BtnUpdateActivity.UseVisualStyleBackColor = true; this.BtnUpdateActivity.Click += new System.EventHandler(this.BtnUpdateActivity_Click); // + // BtnUpdateBannerTitles + // + this.BtnUpdateBannerTitles.Location = new System.Drawing.Point(353, 100); + this.BtnUpdateBannerTitles.Name = "BtnUpdateBannerTitles"; + this.BtnUpdateBannerTitles.Size = new System.Drawing.Size(150, 30); + this.BtnUpdateBannerTitles.TabIndex = 0; + this.BtnUpdateBannerTitles.Text = "Update Banner Titles"; + this.BtnUpdateBannerTitles.UseVisualStyleBackColor = true; + this.BtnUpdateBannerTitles.Click += new System.EventHandler(this.BtnUpdateBannerTitles_Click); + // // PageTools // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); @@ -118,6 +129,7 @@ this.Controls.Add(this.LblGcResRoot); this.Controls.Add(this.TxtProjectResRoot); this.Controls.Add(this.LblProjectResRoot); + this.Controls.Add(this.BtnUpdateBannerTitles); this.Controls.Add(this.BtnUpdateActivity); this.Controls.Add(this.BtnUpdateAllResources); this.Controls.Add(this.BtnConvertCutScene); @@ -138,5 +150,6 @@ private System.Windows.Forms.TextBox TxtGcResRoot; private System.Windows.Forms.Button BtnUpdateAllResources; private System.Windows.Forms.Button BtnUpdateActivity; + private System.Windows.Forms.Button BtnUpdateBannerTitles; } } diff --git a/Source/GrasscutterTools/Pages/PageTools.cs b/Source/GrasscutterTools/Pages/PageTools.cs index fad8200..b250398 100644 --- a/Source/GrasscutterTools/Pages/PageTools.cs +++ b/Source/GrasscutterTools/Pages/PageTools.cs @@ -22,6 +22,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Windows.Forms; using GrasscutterTools.Game; @@ -151,10 +152,8 @@ namespace GrasscutterTools.Pages { if (!CheckInputPaths()) return; - if (TextMapData == null) - TextMapData = new TextMapData(TxtGcResRoot.Text); - if (GameResources == null) - GameResources = new GameResources(TxtGcResRoot.Text, TextMapData); + TextMapData ??= new TextMapData(TxtGcResRoot.Text); + GameResources ??= new GameResources(TxtGcResRoot.Text, TextMapData); GameResources.ConvertResources(TxtProjectResRoot.Text); MessageBox.Show("OK", Resources.Tips, MessageBoxButtons.OK); @@ -176,8 +175,7 @@ namespace GrasscutterTools.Pages Encoding.UTF8); var activityItems = JsonConvert.DeserializeObject>(json); - if (TextMapData == null) - TextMapData = new TextMapData(TxtGcResRoot.Text); + TextMapData ??= new TextMapData(TxtGcResRoot.Text); UpdateActivityForLanguage(activityItems, "TextMapCHS", "zh-cn"); UpdateActivityForLanguage(activityItems, "TextMapCHT", "zh-tw"); @@ -218,5 +216,51 @@ namespace GrasscutterTools.Pages // activityItems.Select(it => $"{it.ActivityId}:{TextMapData.GetText(it.NameTextMapHash)}"), // Encoding.UTF8); } + + + + private void UpdateGachaResourceForLanguage(string textMap, string language) + { + var i = Array.IndexOf(TextMapData.TextMapFiles, textMap); + TextMapData.LoadTextMap(TextMapData.TextMapFilePaths[i]); + + var titleBuffer = new StringBuilder(); + const string titlePattern = "UI_GACHA_SHOW_PANEL_([^_]+?)_TITLE"; + const string markPattern = "<[^>]+>"; + + foreach (var kv in TextMapData.ManualTextMap) + { + var titleId = Regex.Match(kv.Value, titlePattern); + if (!titleId.Success) continue; + var text = TextMapData.TextMap[kv.Key]; + titleBuffer.Append(titleId.Groups[1].Captures[0].Value) + .Append(":") + .AppendLine(Regex.Replace(text, markPattern, "")); + } + + var titleFilePath = Path.Combine(TxtProjectResRoot.Text, language, "GachaBannerTitle.txt"); + File.WriteAllText(titleFilePath, titleBuffer.ToString(), Encoding.UTF8); + + } + + private void BtnUpdateBannerTitles_Click(object sender, EventArgs e) + { + try + { + if (!CheckInputPaths()) return; + + TextMapData ??= new TextMapData(TxtGcResRoot.Text); + + UpdateGachaResourceForLanguage("TextMapCHS", "zh-cn"); + UpdateGachaResourceForLanguage("TextMapCHT", "zh-tw"); + UpdateGachaResourceForLanguage("TextMapEN", "en-us"); + UpdateGachaResourceForLanguage("TextMapRU", "ru-ru"); + MessageBox.Show("OK", Resources.Tips, MessageBoxButtons.OK); + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } } } \ No newline at end of file diff --git a/Source/GrasscutterTools/Properties/Resources.Designer.cs b/Source/GrasscutterTools/Properties/Resources.Designer.cs index 1bfd81f..a074236 100644 --- a/Source/GrasscutterTools/Properties/Resources.Designer.cs +++ b/Source/GrasscutterTools/Properties/Resources.Designer.cs @@ -837,9 +837,9 @@ namespace GrasscutterTools.Properties { ///103:月草的赐慧-纳西妲 ///104 [字符串的其余部分被截断]"; 的本地化字符串。 /// - internal static string GachaBennerPrefab { + internal static string GachaBannerPrefab { get { - return ResourceManager.GetString("GachaBennerPrefab", resourceCulture); + return ResourceManager.GetString("GachaBannerPrefab", resourceCulture); } } diff --git a/Source/GrasscutterTools/Properties/Resources.en-us.resx b/Source/GrasscutterTools/Properties/Resources.en-us.resx index 060ad2c..666eecf 100644 --- a/Source/GrasscutterTools/Properties/Resources.en-us.resx +++ b/Source/GrasscutterTools/Properties/Resources.en-us.resx @@ -181,8 +181,8 @@ Error - - ..\Resources\en-us\GachaBennerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Resources\en-us\GachaBannerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 Help @@ -285,8 +285,8 @@ Improvement suggestions have been submitted, please use caution to send emails t Only allowed to save in Shop.json format! Are you sure you want to overwrite the currently specified file? - - ..\Resources\en-us\GachaBennerTitle.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 + + ..\Resources\en-us\GachaBannerTitle.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 ..\Resources\en-us\Dungeon.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 diff --git a/Source/GrasscutterTools/Properties/Resources.resx b/Source/GrasscutterTools/Properties/Resources.resx index 86d84a5..694f7b6 100644 --- a/Source/GrasscutterTools/Properties/Resources.resx +++ b/Source/GrasscutterTools/Properties/Resources.resx @@ -178,8 +178,8 @@ 错误 - - ..\Resources\zh-cn\GachaBennerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Resources\zh-cn\GachaBannerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 保存设置时异常: diff --git a/Source/GrasscutterTools/Properties/Resources.ru-ru.resx b/Source/GrasscutterTools/Properties/Resources.ru-ru.resx index 3b8ba5e..1fffd59 100644 --- a/Source/GrasscutterTools/Properties/Resources.ru-ru.resx +++ b/Source/GrasscutterTools/Properties/Resources.ru-ru.resx @@ -181,8 +181,8 @@ Ошибка - - ..\Resources\ru-ru\GachaBennerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Resources\ru-ru\GachaBannerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 Помощь @@ -273,8 +273,8 @@ Разрешено сохранять только в формате Shop.json! Вы уверены, что хотите перезаписать текущий файл? - - ..\Resources\ru-ru\GachaBennerTitle.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Resources\ru-ru\GachaBannerTitle.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 ..\Resources\ru-ru\Dungeon.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 diff --git a/Source/GrasscutterTools/Properties/Resources.zh-TW.resx b/Source/GrasscutterTools/Properties/Resources.zh-TW.resx index 09e360e..4b6f24a 100644 --- a/Source/GrasscutterTools/Properties/Resources.zh-TW.resx +++ b/Source/GrasscutterTools/Properties/Resources.zh-TW.resx @@ -178,8 +178,8 @@ 錯誤 - - ..\Resources\zh-tw\GachaBennerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Resources\zh-tw\GachaBannerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 幫助 @@ -279,8 +279,8 @@ 僅允許以 Shop.json 格式保存!確定要覆蓋當前指定文件嗎? - - ..\Resources\zh-tw\GachaBennerTitle.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Resources\zh-tw\GachaBannerTitle.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 ..\Resources\zh-tw\Dungeon.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 diff --git a/Source/GrasscutterTools/Resources/en-us/GachaBannerPrefab.txt b/Source/GrasscutterTools/Resources/en-us/GachaBannerPrefab.txt index 3ed596d..ecb332c 100644 --- a/Source/GrasscutterTools/Resources/en-us/GachaBannerPrefab.txt +++ b/Source/GrasscutterTools/Resources/en-us/GachaBannerPrefab.txt @@ -1,55 +1,139 @@ -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 \ No newline at end of file +A007:Beginners' wish +A008:Wanderlust Invocation +A009:Ballad in Goblets +A010:Dawn Pilgrimage +A011:Grace of Southwind +A012:Bane of All Evil +A013:Epitome Invocation +A015:Sparkling Steps +A016:Beginners' wish +A017:Wanderlust Invocation +A018:Sparkling Steps +A019:Ballad in Goblets +A020:Amos' Bow and Aquila Favonia +A021:Lost Prayer to the Sacred Winds and Wolf's Gravestone +A022:Wanderlust Invocation +A023:Farewell of Snezhnaya +A024:Gentry of Hermitage +A025:Skyward Harp and Memory of Dust +A026:Vortex Vanquisher and The Unforged +A027:Secretum Secretorum +A028:Adrift in the Harbor +A029:Summit Shaper and Skyward Atlas +A030:Amos' Bow and Skyward Pride +A031:Invitation to Mundane Life +A032:Dance of Lanterns +A033:Moment of Bloom +A034:Primordial Jade Winged-Spear and Primordial Jade Cutter +A035:Staff of Homa and Wolf's Gravestone +A036:Ballad in Goblets +A037:Farewell of Snezhnaya +A038:Elegy for the End and Skyward Blade +A039:Skyward Harp and Lost Prayer to the Sacred Winds +A040:Gentry of Hermitage +A041:Born of Ocean Swell +A042:Summit Shaper and Memory of Dust +A043:Aquila Favonia and Song of Broken Pines +A045:Leaves in the Wind +A048:The Heron's Court +A049:Tapestry of Golden Flames +A052:Reign of Serenity +A053:Drifting Luminescence +A061:Oni's Royale +A065:The Transcendent One Returns +A071:Everbloom Violet +A076:Azure Excursion +A081:Discerner of Enigmas +A091:Tighnari +A092:Zhongli +A093:Hunter's Path +A097:Cyno +A098:Venti +A099:Staff of the Scarlet Sands +A100:Q-¶ +A101:֮Ϣ- +A102:-ʥ̼ +A103:²ݵĴͻ- +A104:ɫ- +A105:-ǧҹ +A106:ӣ- +A107:ݱ𶬶- +A108:-ֶ +A109:- +A110:Ŷ-һ +A111:-ͼ +A112:Ӱ-׵罫 +A113:̤- +A114:-Sݲ +A115:뷽ı-ɭ +A116:̻֮- +A117:-Ҷ͹ +A118:ſʱ- +A119:ށ-ҹ +A120:-Ħˮ +A121:ϣ +A122:ŵ +A123:έű/ɳ֮ +A124: +A125:类 +A126:֮ع/Ϣ +A127: +A128:¶ +A129:ǧҹ/ʥ֮Կ +A130: +A131: +A132:֮/Ī˹֮ +A133: +A134: +A135:֮/֮ +A136:ɭ +A137:ԭҶ +A138:Թ֮/Ҷ͹ +A139:lj +A140: +A141:֮ʱ/ķԭ +A142:ɺĺ +A143: +A144:»/ͼĻ +A145: +A146:ҹ +A147:Ĵħ/ˮ +A148: +A149: +A150:֮/ +A151:ά +A152: +A153:ӿ/Ħ֮ +A154:ŷ˹ +A155:µ +A156:ල/δ֮̾ʫ +A157:ܽ +A158: +A159:ˮӿ֮/֮ +A160:ŵ +A161: +A162:°׾/ɳ֮ +A163:ά +A164:类 +A165:ö/֮ع +A166:׵罫 +A167: +A168:S֮/֮ +A169: +A170: +A171:/ǧҹ +A172: +A173: +A174:/֮ +A175:ǧ֯ +A176:һ +A177:/ʯ +A178:ά +A179:ԭҶ +A180:ӿ/Թ֮ +A181:ŵ +A182: +A183:֮/Ĵħ +A184: +A185: +A186:ͼĻ/֮ \ No newline at end of file diff --git a/Source/GrasscutterTools/Resources/en-us/GachaBannerTitle.txt b/Source/GrasscutterTools/Resources/en-us/GachaBannerTitle.txt index 3ed596d..a266cc3 100644 --- a/Source/GrasscutterTools/Resources/en-us/GachaBannerTitle.txt +++ b/Source/GrasscutterTools/Resources/en-us/GachaBannerTitle.txt @@ -1,55 +1,53 @@ -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 \ No newline at end of file +A007:Beginners' wish +A008:Wanderlust Invocation +A009:Ballad in Goblets +A010:Dawn Pilgrimage +A011:Grace of Southwind +A012:Bane of All Evil +A013:Epitome Invocation +A015:Sparkling Steps +A016:Beginners' wish +A017:Wanderlust Invocation +A018:Sparkling Steps +A019:Ballad in Goblets +A020:Epitome Invocation +A021:Epitome Invocation +A022:Wanderlust Invocation +A023:Farewell of Snezhnaya +A024:Gentry of Hermitage +A027:Secretum Secretorum +A028:Adrift in the Harbor +A031:Invitation to Mundane Life +A032:Dance of Lanterns +A033:Moment of Bloom +A036:Ballad in Goblets +A037:Farewell of Snezhnaya +A040:Gentry of Hermitage +A041:Born of Ocean Swell +A045:Leaves in the Wind +A048:The Heron's Court +A049:Tapestry of Golden Flames +A052:Reign of Serenity +A053:Drifting Luminescence +A061:Oni's Royale +A065:The Transcendent One Returns +A071:Everbloom Violet +A076:Azure Excursion +A081:Discerner of Enigmas +A091:Viridescent Vigil +A097:Twilight Arbiter +A0100:Twirling Lotus +A0103:The Moongrass' Enlightenment +A0109:From Ashes Reborn +A0115:Caution in Confidence +A0121:Auric Blaze +A0130:Immaculate Pulse +A0145:Conjuring Chiaroscuro +A0151:Decree of the Deeps +A0154:Tempestuous Destiny +A0157:Chanson of Many Waters +A0163:In the Name of the Rosula +A0169:The Crane Soars Skyward +A0175:Of Silken Clouds Woven +A0181:The Hearth's Ashen Shadow +B001:Ode to the Dawn Breeze diff --git a/Source/GrasscutterTools/Resources/ru-ru/GachaBannerPrefab.txt b/Source/GrasscutterTools/Resources/ru-ru/GachaBannerPrefab.txt index 5379204..426d505 100644 --- a/Source/GrasscutterTools/Resources/ru-ru/GachaBannerPrefab.txt +++ b/Source/GrasscutterTools/Resources/ru-ru/GachaBannerPrefab.txt @@ -1,45 +1,129 @@ -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:Таинственные секреты -102:Воплощение божества \ No newline at end of file +A007:Молитва новичка +A008:Жажда странствий +A009:Стихи из винного кубка +A010:Рассветное паломничество +A011:Благоволение южного ветра +A012:Истребление всего зла +A013:Воплощение божества +A015:Сверкающая поступь +A016:Молитва новичка +A017:Жажда странствий +A018:Сверкающая поступь +A019:Стихи из винного кубка +A020:Воплощение божества +A021:Воплощение божества +A022:Жажда странствий +A023:Зимнее расставание +A024:Горы и рынки +A027:Таинственные секреты +A028:Эфемерное недоверие +A031:Приглашение к мирской жизни +A032:Танец фонарей +A033:Момент цветения +A036:Стихи из винного кубка +A037:Зимнее расставание +A040:Горы и рынки +A041:Рождённая морской пеной +A045:Листья на ветру +A048:Сад белой цапли +A049:Гобелен золотого пламени +A052:Господство безмятежности +A053:Дрейфующее свечение +A061:Пиршество óни +A065:Возвращение в мир смертных +A071:Вечноцветущий пурпур +A076:Лазурный поход +A081:Белая радуга +A091:Патруль лесной чащи +A092:Горы и рынки +A093:Охотничья тропа +A097:Сумеречный вершитель +A098:Стихи из винного кубка +A099:Посох алых песков +A100:翩舞歈莲-妮露 +A101:深秘之息-阿贝多 +A102:神铸赋形-圣显绿箭 +A103:月草的赐慧-纳西妲 +A104:焰色天河-宵宫 +A105:神铸赋形-千夜飞雷 +A106:华紫樱绯-八重神子 +A107:暂别冬都-达达利亚 +A108:神铸赋形-神乐冬极 +A109:余火变相-流浪者 +A110:鬼门斗宴-荒泷一斗 +A111:神铸赋形-图莱杜拉赤角 +A112:影寂天下人-雷电将军 +A113:苍流踏花-神里绫人 +A114:神铸赋形-薙草波乱 +A115:敕诫枢谋-艾尔海森 +A116:烟火之邀-魈 +A117:神铸赋形-裁叶萃光和璞鸢 +A118:赤团开时-胡桃 +A119:素霓伣天-夜兰 +A120:神铸赋形-护摩若水 +A121:迪希雅 +A122:赛诺 +A123:苇海信标/赤沙之杖 +A124:申鹤 +A125:神里绫华 +A126:雾切之回光/息灾 +A127:纳西妲 +A128:妮露 +A129:千夜浮梦/圣显之钥 +A130:白术 +A131:甘雨 +A132:碧落之珑/阿莫斯之弓 +A133:宵宫 +A134:八重神子 +A135:飞雷之弦振/神乐之真意 +A136:艾尔海森 +A137:枫原万叶 +A138:苍古自由之誓/裁叶萃光 +A139:优菈 +A140:可莉 +A141:松籁响起之时/四风原典 +A142:珊瑚宫心海 +A143:流浪者 +A144:不灭月华/图莱杜拉的回忆 +A145:林尼 +A146:夜兰 +A147:最初的大魔术/若水 +A148:钟离 +A149:公子 +A150:贯虹之槊/冬极白星 +A151:那维莱特 +A152:胡桃 +A153:万世流涌大典/护摩之杖 +A154:莱欧斯利 +A155:温迪 +A156:金流监督/终未嗟叹之诗 +A157:芙宁娜 +A158:白术 +A159:静水流涌之辉/碧落之珑 +A160:赛诺 +A161:神里绫人 +A162:波乱月白经津/赤沙之杖 +A163:娜维娅 +A164:神里绫华 +A165:裁断/雾切之回光 +A166:雷电将军 +A167:宵宫 +A168:薙草之稻光/飞雷之弦振 +A169:闲云 +A170:纳西妲 +A171:鹤鸣余音/千夜浮梦 +A172:魈 +A173:八重神子 +A174:和璞鸢/神乐之真意 +A175:千织 +A176:荒泷一斗 +A177:有乐御簾切/赤角石溃杵 +A178:那维莱特 +A179:枫原万叶 +A180:万世流涌大典/苍古自由之誓 +A181:阿蕾奇诺 +A182:林尼 +A183:赤月之形/最初的大魔术 +A184:流浪者 +A185:白术 +A186:图莱杜拉的回忆/碧落之珑 \ No newline at end of file diff --git a/Source/GrasscutterTools/Resources/ru-ru/GachaBannerTitle.txt b/Source/GrasscutterTools/Resources/ru-ru/GachaBannerTitle.txt index 5379204..7ebfdd1 100644 --- a/Source/GrasscutterTools/Resources/ru-ru/GachaBannerTitle.txt +++ b/Source/GrasscutterTools/Resources/ru-ru/GachaBannerTitle.txt @@ -1,45 +1,53 @@ -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:Таинственные секреты -102:Воплощение божества \ No newline at end of file +A007:Молитва новичка +A008:Жажда странствий +A009:Стихи из винного кубка +A010:Рассветное паломничество +A011:Благоволение южного ветра +A012:Истребление всего зла +A013:Воплощение божества +A015:Сверкающая поступь +A016:Молитва новичка +A017:Жажда странствий +A018:Сверкающая поступь +A019:Стихи из винного кубка +A020:Воплощение божества +A021:Воплощение божества +A022:Жажда странствий +A023:Зимнее расставание +A024:Горы и рынки +A027:Таинственные секреты +A028:Эфемерное недоверие +A031:Приглашение к мирской жизни +A032:Танец фонарей +A033:Момент цветения +A036:Стихи из винного кубка +A037:Зимнее расставание +A040:Горы и рынки +A041:Рождённая морской пеной +A045:Листья на ветру +A048:Сад белой цапли +A049:Гобелен золотого пламени +A052:Господство безмятежности +A053:Дрейфующее свечение +A061:Пиршество óни +A065:Возвращение в мир смертных +A071:Вечноцветущий пурпур +A076:Лазурный поход +A081:Белая радуга +A091:Патруль лесной чащи +A097:Сумеречный вершитель +A0100:Кружащийся лотос +A0103:Озарение лунной травы +A0109:Прах перерождённый +A0115:Сдержанное благоразумие +A0121:Пылающее золото +A0130:Биение мудрого сердца +A0145:Волшебство света и тени +A0151:Завет глубин +A0154:Бушующий рок +A0157:Песнь водам мира +A0163:Во имя розы +A0169:Журавль взлетает в небеса +A0175:Сплетение шёлковых облаков +A0181:Пепельная тень очага +B001:Стихи утреннего ветра diff --git a/Source/GrasscutterTools/Resources/zh-cn/GachaBannerPrefab.txt b/Source/GrasscutterTools/Resources/zh-cn/GachaBannerPrefab.txt index a53fab6..28f2e75 100644 --- a/Source/GrasscutterTools/Resources/zh-cn/GachaBannerPrefab.txt +++ b/Source/GrasscutterTools/Resources/zh-cn/GachaBannerPrefab.txt @@ -1,69 +1,129 @@ -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:深秘之息-阿贝多 -102:神铸赋形-圣显绿箭 -103:月草的赐慧-纳西妲 -104:焰色天河-宵宫 -105:神铸赋形-千夜飞雷 -106:华紫樱绯-八重神子 -107:暂别冬都-达达利亚 -108:神铸赋形-神乐冬极 -109:余火变相-流浪者 -110:鬼门斗宴-荒泷一斗 -111:神铸赋形-图莱杜拉赤角 -112:影寂天下人-雷电将军 -113:苍流踏花-神里绫人 -114:神铸赋形-薙草波乱 -115:敕诫枢谋-艾尔海森 -116:烟火之邀-魈 -117:神铸赋形-裁叶萃光和璞鸢 -118:赤团开时-胡桃 -119:素霓伣天-夜兰 -120:神铸赋形-护摩若水 -121:迪希雅 -122:赛诺 -123:苇海信标/赤沙之杖 -124:申鹤 -125:神里绫华 -126:雾切之回光/息灾 \ No newline at end of file +A007:初行者推荐祈愿 +A008:奔行世间 +A009:杯装之诗 +A010:黎明巡礼 +A011:南风之眷 +A012:靖妖傩舞 +A013:神铸赋形 +A015:闪焰的驻足 +A016:初行者推荐祈愿 +A017:奔行世间 +A018:闪焰的驻足 +A019:杯装之诗 +A020:神铸赋形 +A021:神铸赋形 +A022:奔行世间 +A023:暂别冬都 +A024:陵薮市朝 +A027:深秘之息 +A028:浮生孰来 +A031:烟火之邀 +A032:鱼龙灯昼 +A033:赤团开时 +A036:杯装之诗 +A037:暂别冬都 +A040:陵薮市朝 +A041:浪涌之瞬 +A045:叶落风随 +A048:白鹭之庭 +A049:焰色天河 +A052:影寂天下人 +A053:浮岳虹珠 +A061:鬼门斗宴 +A065:出尘入世 +A071:华紫樱绯 +A076:苍流踏花 +A081:素霓伣天 +A091:巡御蘙荟-提纳里 +A092:陵薮市朝-钟离 +A093:神铸赋形-猎人贯虹 +A097:雳裁冥昭-赛诺 +A098:杯装之诗-温迪 +A099:神铸赋形-赤沙终末 +A100:翩舞歈莲-妮露 +A101:深秘之息-阿贝多 +A102:神铸赋形-圣显绿箭 +A103:月草的赐慧-纳西妲 +A104:焰色天河-宵宫 +A105:神铸赋形-千夜飞雷 +A106:华紫樱绯-八重神子 +A107:暂别冬都-达达利亚 +A108:神铸赋形-神乐冬极 +A109:余火变相-流浪者 +A110:鬼门斗宴-荒泷一斗 +A111:神铸赋形-图莱杜拉赤角 +A112:影寂天下人-雷电将军 +A113:苍流踏花-神里绫人 +A114:神铸赋形-薙草波乱 +A115:敕诫枢谋-艾尔海森 +A116:烟火之邀-魈 +A117:神铸赋形-裁叶萃光和璞鸢 +A118:赤团开时-胡桃 +A119:素霓伣天-夜兰 +A120:神铸赋形-护摩若水 +A121:迪希雅 +A122:赛诺 +A123:苇海信标/赤沙之杖 +A124:申鹤 +A125:神里绫华 +A126:雾切之回光/息灾 +A127:纳西妲 +A128:妮露 +A129:千夜浮梦/圣显之钥 +A130:白术 +A131:甘雨 +A132:碧落之珑/阿莫斯之弓 +A133:宵宫 +A134:八重神子 +A135:飞雷之弦振/神乐之真意 +A136:艾尔海森 +A137:枫原万叶 +A138:苍古自由之誓/裁叶萃光 +A139:优菈 +A140:可莉 +A141:松籁响起之时/四风原典 +A142:珊瑚宫心海 +A143:流浪者 +A144:不灭月华/图莱杜拉的回忆 +A145:林尼 +A146:夜兰 +A147:最初的大魔术/若水 +A148:钟离 +A149:公子 +A150:贯虹之槊/冬极白星 +A151:那维莱特 +A152:胡桃 +A153:万世流涌大典/护摩之杖 +A154:莱欧斯利 +A155:温迪 +A156:金流监督/终未嗟叹之诗 +A157:芙宁娜 +A158:白术 +A159:静水流涌之辉/碧落之珑 +A160:赛诺 +A161:神里绫人 +A162:波乱月白经津/赤沙之杖 +A163:娜维娅 +A164:神里绫华 +A165:裁断/雾切之回光 +A166:雷电将军 +A167:宵宫 +A168:薙草之稻光/飞雷之弦振 +A169:闲云 +A170:纳西妲 +A171:鹤鸣余音/千夜浮梦 +A172:魈 +A173:八重神子 +A174:和璞鸢/神乐之真意 +A175:千织 +A176:荒泷一斗 +A177:有乐御簾切/赤角石溃杵 +A178:那维莱特 +A179:枫原万叶 +A180:万世流涌大典/苍古自由之誓 +A181:阿蕾奇诺 +A182:林尼 +A183:赤月之形/最初的大魔术 +A184:流浪者 +A185:白术 +A186:图莱杜拉的回忆/碧落之珑 \ No newline at end of file diff --git a/Source/GrasscutterTools/Resources/zh-cn/GachaBannerTitle.txt b/Source/GrasscutterTools/Resources/zh-cn/GachaBannerTitle.txt index 6b32345..f14e01d 100644 --- a/Source/GrasscutterTools/Resources/zh-cn/GachaBannerTitle.txt +++ b/Source/GrasscutterTools/Resources/zh-cn/GachaBannerTitle.txt @@ -1,49 +1,53 @@ -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:神铸赋形-赤沙终末 -0100:翩舞歈莲-妮露 -0103:月草的赐慧-纳西妲 -0109:余火变相-流浪者 -0115:敕诫枢谋-艾尔海森 -101:深秘之息-阿贝多 -101:神铸赋形-圣显绿箭 -121:迪希雅 \ No newline at end of file +A007:初行者推荐祈愿 +A008:奔行世间 +A009:杯装之诗 +A010:黎明巡礼 +A011:南风之眷 +A012:靖妖傩舞 +A013:神铸赋形 +A015:闪焰的驻足 +A016:初行者推荐祈愿 +A017:奔行世间 +A018:闪焰的驻足 +A019:杯装之诗 +A020:神铸赋形 +A021:神铸赋形 +A022:奔行世间 +A023:暂别冬都 +A024:陵薮市朝 +A027:深秘之息 +A028:浮生孰来 +A031:烟火之邀 +A032:鱼龙灯昼 +A033:赤团开时 +A036:杯装之诗 +A037:暂别冬都 +A040:陵薮市朝 +A041:浪涌之瞬 +A045:叶落风随 +A048:白鹭之庭 +A049:焰色天河 +A052:影寂天下人 +A053:浮岳虹珠 +A061:鬼门斗宴 +A065:出尘入世 +A071:华紫樱绯 +A076:苍流踏花 +A081:素霓伣天 +A091:巡御蘙荟 +A097:雳裁冥昭 +A0100:翩舞歈莲 +A0103:月草的赐慧 +A0109:余火变相 +A0115:敕诫枢谋 +A0121:烈阳烁金 +A0130:心珠循琅 +A0145:光与影的戏术 +A0151:渊海界令 +A0154:劫中泛滥 +A0157:众水的颂诗 +A0163:刺玫的铭誓 +A0169:云府鹤行 +A0175:千云绘羽织 +A0181:炉边烬影 +B001:晨风之诗 diff --git a/Source/GrasscutterTools/Resources/zh-tw/GachaBannerPrefab.txt b/Source/GrasscutterTools/Resources/zh-tw/GachaBannerPrefab.txt index 5a6678a..2edae03 100644 --- a/Source/GrasscutterTools/Resources/zh-tw/GachaBannerPrefab.txt +++ b/Source/GrasscutterTools/Resources/zh-tw/GachaBannerPrefab.txt @@ -1,45 +1,128 @@ -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:神鑄賦形-聖顯綠箭 \ No newline at end of file +A007:初行者推薦祈願 +A008:奔行世間 +A009:杯裝之詩 +A010:黎明巡禮 +A011:南風之眷 +A012:靖妖儺舞 +A013:神鑄賦形 +A015:閃焰的駐足 +A016:初行者推薦祈願 +A017:奔行世間 +A018:閃焰的駐足 +A019:杯裝之詩 +A020:神鑄賦形 +A021:神鑄賦形 +A022:奔行世間 +A023:暫別冬都 +A024:陵藪市朝 +A027:深秘之息 +A028:浮生孰來 +A031:煙火之邀 +A032:魚龍燈晝 +A033:赤團開時 +A036:杯裝之詩 +A037:暫別冬都 +A040:陵藪市朝 +A041:浪湧之瞬 +A045:葉落風隨 +A048:白鷺之庭 +A049:焰色天河 +A052:影寂天下人 +A053:浮岳虹珠 +A061:鬼門斗宴 +A065:出塵入世 +A071:華紫櫻緋 +A076:蒼流踏花 +A081:素霓俔天 +A091:巡禦蘙薈-提納里 +A092:陵藪市朝-鍾離 +A093:神鑄賦形-獵人貫虹 +A097:靂裁冥昭-賽諾 +A098:杯裝之詩-溫迪 +A099:神鑄賦形-赤沙終末 +A101:深秘之息-阿贝多 +A102:神铸赋形-圣显绿箭 +A103:月草的赐慧-纳西妲 +A104:焰色天河-宵宫 +A105:神铸赋形-千夜飞雷 +A106:华紫樱绯-八重神子 +A107:暂别冬都-达达利亚 +A108:神铸赋形-神乐冬极 +A109:余火变相-流浪者 +A110:鬼门斗宴-荒泷一斗 +A111:神铸赋形-图莱杜拉赤角 +A112:影寂天下人-雷电将军 +A113:苍流踏花-神里绫人 +A114:神铸赋形-薙草波乱 +A115:敕诫枢谋-艾尔海森 +A116:烟火之邀-魈 +A117:神铸赋形-裁叶萃光和璞鸢 +A118:赤团开时-胡桃 +A119:素霓伣天-夜兰 +A120:神铸赋形-护摩若水 +A121:迪希雅 +A122:赛诺 +A123:苇海信标/赤沙之杖 +A124:申鹤 +A125:神里绫华 +A126:雾切之回光/息灾 +A127:纳西妲 +A128:妮露 +A129:千夜浮梦/圣显之钥 +A130:白术 +A131:甘雨 +A132:碧落之珑/阿莫斯之弓 +A133:宵宫 +A134:八重神子 +A135:飞雷之弦振/神乐之真意 +A136:艾尔海森 +A137:枫原万叶 +A138:苍古自由之誓/裁叶萃光 +A139:优菈 +A140:可莉 +A141:松籁响起之时/四风原典 +A142:珊瑚宫心海 +A143:流浪者 +A144:不灭月华/图莱杜拉的回忆 +A145:林尼 +A146:夜兰 +A147:最初的大魔术/若水 +A148:钟离 +A149:公子 +A150:贯虹之槊/冬极白星 +A151:那维莱特 +A152:胡桃 +A153:万世流涌大典/护摩之杖 +A154:莱欧斯利 +A155:温迪 +A156:金流监督/终未嗟叹之诗 +A157:芙宁娜 +A158:白术 +A159:静水流涌之辉/碧落之珑 +A160:赛诺 +A161:神里绫人 +A162:波乱月白经津/赤沙之杖 +A163:娜维娅 +A164:神里绫华 +A165:裁断/雾切之回光 +A166:雷电将军 +A167:宵宫 +A168:薙草之稻光/飞雷之弦振 +A169:闲云 +A170:纳西妲 +A171:鹤鸣余音/千夜浮梦 +A172:魈 +A173:八重神子 +A174:和璞鸢/神乐之真意 +A175:千织 +A176:荒泷一斗 +A177:有乐御簾切/赤角石溃杵 +A178:那维莱特 +A179:枫原万叶 +A180:万世流涌大典/苍古自由之誓 +A181:阿蕾奇诺 +A182:林尼 +A183:赤月之形/最初的大魔术 +A184:流浪者 +A185:白术 +A186:图莱杜拉的回忆/碧落之珑 \ No newline at end of file diff --git a/Source/GrasscutterTools/Resources/zh-tw/GachaBannerTitle.txt b/Source/GrasscutterTools/Resources/zh-tw/GachaBannerTitle.txt index 5a6678a..320d399 100644 --- a/Source/GrasscutterTools/Resources/zh-tw/GachaBannerTitle.txt +++ b/Source/GrasscutterTools/Resources/zh-tw/GachaBannerTitle.txt @@ -1,45 +1,53 @@ -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:神鑄賦形-聖顯綠箭 \ No newline at end of file +A007:初行者推薦祈願 +A008:奔行世間 +A009:杯裝之詩 +A010:黎明巡禮 +A011:南風之眷 +A012:靖妖儺舞 +A013:神鑄賦形 +A015:閃焰的駐足 +A016:初行者推薦祈願 +A017:奔行世間 +A018:閃焰的駐足 +A019:杯裝之詩 +A020:神鑄賦形 +A021:神鑄賦形 +A022:奔行世間 +A023:暫別冬都 +A024:陵藪市朝 +A027:深秘之息 +A028:浮生孰來 +A031:煙火之邀 +A032:魚龍燈晝 +A033:赤團開時 +A036:杯裝之詩 +A037:暫別冬都 +A040:陵藪市朝 +A041:浪湧之瞬 +A045:葉落風隨 +A048:白鷺之庭 +A049:焰色天河 +A052:影寂天下人 +A053:浮嶽虹珠 +A061:鬼門鬥宴 +A065:出塵入世 +A071:華紫櫻緋 +A076:蒼流踏花 +A081:素霓俔天 +A091:巡禦翳薈 +A097:靂裁冥昭 +A0100:翩舞歈蓮 +A0103:月草的賜慧 +A0109:餘火變相 +A0115:敕誡樞謀 +A0121:烈陽爍金 +A0130:心珠循琅 +A0145:光與影的戲術 +A0151:淵海界令 +A0154:劫中泛濫 +A0157:眾水的頌詩 +A0163:刺玫的銘誓 +A0169:雲府鶴行 +A0175:千雲繪羽織 +A0181:爐邊燼影 +B001:晨風之詩